Changeset c5ebbaa for lib


Ignore:
Timestamp:
06/23/06 12:00:34 (15 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:
d3fd4d3
Parents:
f875681
Message:

Fix TRACE_TYPE enum (some entries had been reordered since libtrace2)
Add new trace_construct_packet

Location:
lib
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • lib/libtrace.h.in

    ra700713 rc5ebbaa  
    223223/** Enumeration of link layer types supported by libtrace */
    224224typedef enum {
     225    /* TRACE_TYPE_LEGACY = 0            Obsolete */
    225226       TRACE_TYPE_HDLC_POS = 1,
    226        TRACE_TYPE_ETH,                  /**< 802.3 style Ethernet */
    227        TRACE_TYPE_ATM,                  /**< ATM frame */
    228        TRACE_TYPE_AAL5,
    229        TRACE_TYPE_80211,                /**< 802.11 frames */
    230        TRACE_TYPE_NONE,                 /**< Raw IP frames */
    231        TRACE_TYPE_LINUX_SLL,            /**< Linux "null" framing */
    232        TRACE_TYPE_PFLOG,                /**< FreeBSD's PFlug */
    233        TRACE_TYPE_POS,
     227       TRACE_TYPE_ETH = 2,              /**< 802.3 style Ethernet */
     228       TRACE_TYPE_ATM = 3,              /**< ATM frame */
     229       TRACE_TYPE_80211 = 4,            /**< 802.11 frames */
     230       TRACE_TYPE_NONE = 5,             /**< Raw IP frames */
     231       TRACE_TYPE_LINUX_SLL = 6,        /**< Linux "null" framing */
     232       TRACE_TYPE_PFLOG = 7,            /**< FreeBSD's PFlug */
     233    /* TRACE_TYPE_LEGACY_DEFAULT        Obsolete */
     234       TRACE_TYPE_POS = 9,
     235    /* TRACE_TYPE_LEGACY_ATM            Obsolete */
     236    /* TRACE_TYPE_LEGACY_ETH            Obsolete */
    234237       TRACE_TYPE_80211_PRISM = 12,
    235        TRACE_TYPE_DUCK                  /**< Pseudo link layer for DUCK packets */
     238       TRACE_TYPE_AAL5 = 13,
     239       TRACE_TYPE_DUCK = 14             /**< Pseudo link layer for DUCK packets */
    236240     } libtrace_linktype_t;
    237241
     
    12671271enum base_format_t trace_get_format(struct libtrace_packet_t *packet);
    12681272
     1273/** Construct a packet from a buffer.
     1274 * @param packet[in,out]        Libtrace Packet object to update with the new
     1275 *                              data.
     1276 * @param linktype              The linktype of the packet.
     1277 * @param[in] data              The packet data (including linklayer)
     1278 * @param len                   Length of packet data
     1279 */
     1280DLLEXPORT
     1281void trace_construct_packet(libtrace_packet_t *packet,
     1282                libtrace_linktype_t linktype, const void *data, uint16_t len);
     1283
    12691284
    12701285#ifdef __cplusplus
  • lib/trace.c

    r8a1fb3c rc5ebbaa  
    973973                        return -1;
    974974                }
    975                 if (libtrace_to_pcap_dlt(linktype) == -1) {
     975                if (libtrace_to_pcap_dlt(linktype) == ~0U) {
    976976                        trace_set_err(packet->trace,TRACE_ERR_BAD_PACKET,
    977977                                        "Unknown pcap equivilent linktype");
     
    13991399}
    14001400
     1401DLLEXPORT
     1402void trace_construct_packet(libtrace_packet_t *packet,
     1403                libtrace_linktype_t linktype,
     1404                const void *data,
     1405                uint16_t len)
     1406{
     1407        libtrace_t *deadtrace=NULL;
     1408        libtrace_pcapfile_pkt_hdr_t hdr;
     1409        struct timeval tv;
     1410        if (NULL == deadtrace) deadtrace=trace_create_dead("pcapfile");
     1411        gettimeofday(&tv,NULL);
     1412        hdr.ts_sec=tv.tv_sec;
     1413        hdr.ts_usec=tv.tv_usec;
     1414        hdr.caplen=len;
     1415        hdr.wirelen=len;
     1416
     1417        packet->trace=deadtrace;
     1418        packet->size=len+sizeof(hdr);
     1419        if (packet->buf_control==TRACE_CTRL_PACKET) {
     1420                packet->buffer=realloc(packet->buffer,packet->size);
     1421        }
     1422        else {
     1423                packet->buffer=malloc(packet->size);
     1424        }
     1425        packet->buf_control=TRACE_CTRL_PACKET;
     1426        packet->header=packet->buffer;
     1427        packet->payload=(void*)((char*)packet->buffer+sizeof(hdr));
     1428        memcpy(packet->header,&hdr,sizeof(hdr));
     1429        memcpy(packet->payload,data,len);
     1430        packet->type=pcap_dlt_to_rt(libtrace_to_pcap_dlt(linktype));
     1431}
Note: See TracChangeset for help on using the changeset viewer.