Changeset eaa5529 for lib/trace.c


Ignore:
Timestamp:
10/12/05 14:13:39 (16 years ago)
Author:
Daniel Lawson <dlawson@…>
Branches:
4.0.1-hotfixes, cachetimestamps, develop, dpdk-ndag, etsilive, getfragoff, help, libtrace4, master, ndag_format, pfring, rc-4.0.1, rc-4.0.2, rc-4.0.3, rc-4.0.4, ringdecrementfix, ringperformance, ringtimestampfixes
Children:
2cc187b
Parents:
57bbf89
Message:

legacy pos, atm, eth support

File:
1 edited

Legend:

Unmodified
Added
Removed
  • lib/trace.c

    r9c6aa95 reaa5529  
    528528        return (void *)ethptr;
    529529}
     530
     531typedef struct legacy_framing {
     532        uint64_t        ts;
     533        uint32_t        crc;
     534        uint32_t        header;
     535        uint32_t        data[12]; /* pad to 64 bytes */
     536} legacy_framing_t;
    530537
    531538/* get a pointer to the IP header (if any)
     
    636643                                break;
    637644                        }
     645                case TRACE_TYPE_LEGACY_POS:
     646                        {
     647                                // 64 byte capture.
     648                                legacy_framing_t *cell =
     649                                        trace_get_link(packet);
     650                                // check ethertype
     651                                uint16_t *etype = (uint16_t *)cell->data + 1;
     652                                if (*etype == 0x0008) {
     653                                        ipptr = (void *)&cell->data[1];
     654                                } else {
     655                                        ipptr = NULL;
     656                                }
     657                                break;
     658                               
     659                        }
     660                case TRACE_TYPE_LEGACY_ATM:
     661                case TRACE_TYPE_LEGACY_ETH:
     662                case TRACE_TYPE_LEGACY:
     663                        {
     664                                // 64 byte capture.
     665                                legacy_framing_t *cell =
     666                                        trace_get_link(packet);
     667                                uint16_t *etype = (uint16_t *)cell->data + 3;
     668                                if (*etype == 0x0008) {
     669                                        ipptr = (void *)&cell->data[2];
     670                                } else {
     671                                        ipptr = NULL;
     672                                }
     673                        }
    638674                default:
    639675                        fprintf(stderr,"Don't understand link layer type %i in trace_get_ip()\n",
Note: See TracChangeset for help on using the changeset viewer.