Changeset 77f79c7


Ignore:
Timestamp:
03/27/13 14:48:26 (8 years ago)
Author:
Shane Alcock <salcock@…>
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:
593a7c7
Parents:
fc8b322
Message:
  • Added support for the OpenBSD loopback DLT - thanks to Kaio Rafael for submitting a patch to add this (although note the change to the defined names from the original patch)
Location:
lib
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • lib/libtrace.h.in

    rc909fad r77f79c7  
    255255        TRACE_DLT_C_HDLC = 104,
    256256        TRACE_DLT_IEEE802_11 = 105,
     257        TRACE_DLT_OPENBSD_LOOP = 108,
    257258        TRACE_DLT_LINUX_SLL = 113,
    258259        TRACE_DLT_PFLOG = 117,
     
    281282       TRACE_TYPE_PPP = 17,          /**< PPP frames */
    282283       TRACE_TYPE_METADATA = 18,        /**< WDCAP-style meta-data */
    283        TRACE_TYPE_NONDATA = 19          /**< Not a data packet */
     284       TRACE_TYPE_NONDATA = 19,         /**< Not a data packet */
     285       TRACE_TYPE_OPENBSD_LOOP = 20     /**< OpenBSD loopback */
    284286} libtrace_linktype_t;
    285287
  • lib/linktypes.c

    r528eb6e r77f79c7  
    6565                case TRACE_DLT_PPP_SERIAL: return TRACE_TYPE_POS;
    6666                case TRACE_DLT_C_HDLC: return TRACE_TYPE_HDLC_POS;
     67                case TRACE_DLT_OPENBSD_LOOP: return TRACE_TYPE_OPENBSD_LOOP;
    6768                /* Unhandled */
    6869                case TRACE_DLT_NULL:    /* Raw IP frame with a BSD specific
     
    9394                /* Theres more than one type of PPP.  Who knew? */
    9495                case TRACE_TYPE_POS:    return TRACE_DLT_PPP_SERIAL;
     96                case TRACE_TYPE_OPENBSD_LOOP: return TRACE_DLT_OPENBSD_LOOP;
    9597
    9698                /* Below here are unsupported conversions */
     
    200202                case TRACE_TYPE_METADATA:
    201203                case TRACE_TYPE_NONDATA:
     204                case TRACE_TYPE_OPENBSD_LOOP:
    202205                        break;
    203206        }
  • lib/protocols_l2.c

    r979a84f4 r77f79c7  
    381381                case TRACE_TYPE_METADATA:
    382382                case TRACE_TYPE_NONDATA:
     383                case TRACE_TYPE_OPENBSD_LOOP:
    383384                        ((libtrace_packet_t*)packet)->l2_header = meta;
    384385                        ((libtrace_packet_t*)packet)->l2_remaining = *remaining;
     
    413414                                case TRACE_TYPE_METADATA:
    414415                                case TRACE_TYPE_NONDATA:
     416                                case TRACE_TYPE_OPENBSD_LOOP:
    415417                                        ((libtrace_packet_t*)packet)->l2_header = meta;
    416418                                        ((libtrace_packet_t*)packet)->l2_remaining = *remaining;
     
    517519                case TRACE_TYPE_AAL5:
    518520                        return NULL;
     521
     522                case TRACE_TYPE_OPENBSD_LOOP:
     523                        link = link + 4; /* Loopback header is 4 bytes */
     524                        if ((*(char*)link&0xF0) == 0x40)
     525                                *ethertype=TRACE_ETHERTYPE_IP;   /* IPv4 */
     526                        else if ((*(char*)link&0xF0) == 0x60)
     527                                *ethertype=TRACE_ETHERTYPE_IPV6; /* IPv6 */
     528                        return link; /* I love the simplicity */
     529               
     530
    519531        }
    520532        return NULL;
     
    574586                case TRACE_TYPE_PPP:
    575587                case TRACE_TYPE_NONDATA:
     588                case TRACE_TYPE_OPENBSD_LOOP:
    576589                        return NULL;
    577590
     
    621634                case TRACE_TYPE_PPP:   
    622635                case TRACE_TYPE_NONDATA:
     636                case TRACE_TYPE_OPENBSD_LOOP:
    623637                        /* No MAC address */
    624638                        return NULL;
  • lib/protocols_pktmeta.c

    r528eb6e r77f79c7  
    161161                case TRACE_TYPE_METADATA:
    162162                case TRACE_TYPE_NONDATA:
     163                case TRACE_TYPE_OPENBSD_LOOP:
    163164                        return NULL;
    164165        }
     
    216217                case TRACE_TYPE_METADATA:
    217218                case TRACE_TYPE_NONDATA:
     219                case TRACE_TYPE_OPENBSD_LOOP:
    218220                        /* In this case, the pointer passed in does not point
    219221                         * to a metadata header and so we cannot get the
Note: See TracChangeset for help on using the changeset viewer.