Changeset 90fd6b6


Ignore:
Timestamp:
08/28/06 14:31:34 (14 years ago)
Author:
Perry Lorier <perry@…>
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:
e2b0232
Parents:
5593016
Message:

If libpacketdump doesn't understand a linklayer, ask libtrace how to decode it.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libpacketdump/libpacketdump.cc

    r9d6b5cd r90fd6b6  
    174174        }
    175175
     176        if (decoders[sname][type].func->decode_n == generic_decode) {
     177                /* We can't decode a link, so lets skip that and see if libtrace
     178                 * knows how to find us the ip header
     179                 */
     180                if (sname=="link") {
     181                        uint16_t newtype;
     182                        uint32_t newlen=len;
     183                        void *network=trace_get_payload_from_link(packet,
     184                                        (libtrace_linktype_t)type,
     185                                        &newtype,&newlen);
     186                        if (network) {
     187                                printf("skipping unknown link header of type %i to %i\n",type,newtype);
     188                                decode_next((char*)network,newlen,"eth",newtype);
     189                                return;
     190                        }
     191                }
     192                else {
     193                        printf("unknown protocol %s/%i\n",sname.c_str(),type);
     194                }
     195        }
     196
    176197        // decode using the appropriate function
    177198        switch(decoders[sname][type].style)
Note: See TracChangeset for help on using the changeset viewer.