Changeset f04e489 for lib/format_erf.c


Ignore:
Timestamp:
10/28/05 16:57:37 (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:
950d54a
Parents:
b190686
Message:

fixed the legacyatm legacypos and legacyeth formats to correctly calculate the framing offset then use that to step into the link layer properly.
Added headers to deal with the link layers.

updated tracedump to be correct now.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • lib/format_erf.c

    r7c8eacf rf04e489  
    6262#include <string.h>
    6363#include <stdlib.h>
     64#include "daglegacy.h"
    6465
    6566#if HAVE_ZLIB
     
    208209}
    209210
     211static int legacyeth_get_framing_length(const struct libtrace_packet_t *packet)
     212{
     213        /* the legacy ethernet format consists of:
     214         * uint64_t ts;
     215         * uint16_t wlen;
     216         * The legacy ethernet framing is therefore five (5) octets;
     217         */
     218        return sizeof(legacy_ether_t);
     219}
     220
     221static int legacypos_get_framing_length(const struct libtrace_packet_t *packet)
     222{
     223        /* the legacy POS format consists of:
     224         * uint64_t ts;
     225         * uint32_t slen;
     226         * uint32_t wlen;
     227         * The legacy pos framing is therefore eight (8) octets;
     228         */
     229        return sizeof(legacy_pos_t);
     230}
     231
     232static int legacyatm_get_framing_length(const struct libtrace_packet_t *packet)
     233{
     234        /* the legacy ATM format consists of:
     235         * uint64_t ts;
     236         * uint32_t crc;
     237         * The legacy atm framing is therefore six (6) octets;
     238         */
     239        return sizeof(legacy_cell_t);
     240}
    210241
    211242static int erf_init_input(struct libtrace_t *libtrace) {
     
    675706
    676707
    677 static void *legacy_get_link(const struct libtrace_packet_t *packet) {
    678         return (void *)packet->buffer;
    679 }
    680 
    681 static libtrace_linktype_t legacy_get_link_type(const struct libtrace_packet_t *packet) {
    682         return TRACE_TYPE_LEGACY;
     708static void *legacypos_get_link(const struct libtrace_packet_t *packet) {
     709        const void *posptr = 0;
     710        posptr = ((uint8_t *)packet->buffer +
     711                        legacypos_get_framing_length(packet));
     712        return (void *)posptr;
     713}
     714
     715static libtrace_linktype_t legacypos_get_link_type(const struct libtrace_packet_t *packet) {
     716        return TRACE_TYPE_LEGACY_POS;
     717}
     718
     719static void *legacyatm_get_link(const struct libtrace_packet_t *packet) {
     720        const void *atmptr = 0;
     721        atmptr = ((uint8_t *)packet->buffer +
     722                        legacyatm_get_framing_length(packet));
     723        return (void *)atmptr;
     724}
     725
     726static libtrace_linktype_t legacyatm_get_link_type(const struct libtrace_packet_t *packet) {
     727        return TRACE_TYPE_LEGACY_ATM;
     728}
     729
     730static void *legacyeth_get_link(const struct libtrace_packet_t *packet) {
     731        const void *ethptr = 0;
     732        ethptr = ((uint8_t *)packet->buffer +
     733                        legacyeth_get_framing_length(packet));
     734        return (void *)ethptr;
    683735}
    684736
     
    687739}
    688740
    689 static libtrace_linktype_t legacyatm_get_link_type(const struct libtrace_packet_t *packet) {
    690         return TRACE_TYPE_LEGACY_ATM;
    691 }
    692 
    693 static libtrace_linktype_t legacypos_get_link_type(const struct libtrace_packet_t *packet) {
    694         return TRACE_TYPE_LEGACY_POS;
    695 }
     741
    696742
    697743static void *erf_get_link(const struct libtrace_packet_t *packet) {
     
    745791}
    746792
    747 static int legacy_get_framing_length(const struct libtrace_packet_t *packet __attribute__((unused))) {
    748        
    749 }
    750793static int legacypos_get_wire_length(const struct libtrace_packet_t *packet) {
    751794        legacy_pos_t *lpos = (legacy_pos_t *)packet->buffer;
     
    896939        legacy_read_packet,             /* read_packet */
    897940        NULL,                           /* write_packet */
    898         legacy_get_link,                /* get_link */
     941        legacyatm_get_link,             /* get_link */
    899942        legacyatm_get_link_type,        /* get_link_type */
    900943        NULL,                           /* get_direction */
     
    905948        legacy_get_capture_length,      /* get_capture_length */
    906949        legacyatm_get_wire_length,      /* get_wire_length */
    907         legacy_get_framing_length,      /* get_framing_length */
     950        legacyatm_get_framing_length,   /* get_framing_length */
    908951        NULL,                           /* set_capture_length */
    909952        NULL,                           /* get_fd */
     
    923966        legacy_read_packet,             /* read_packet */
    924967        NULL,                           /* write_packet */
    925         legacy_get_link,                /* get_link */
     968        legacyeth_get_link,             /* get_link */
    926969        legacyeth_get_link_type,        /* get_link_type */
    927970        NULL,                           /* get_direction */
     
    932975        legacy_get_capture_length,      /* get_capture_length */
    933976        legacyeth_get_wire_length,      /* get_wire_length */
    934         legacy_get_framing_length,      /* get_framing_length */
     977        legacyeth_get_framing_length,   /* get_framing_length */
    935978        NULL,                           /* set_capture_length */
    936979        NULL,                           /* get_fd */
     
    950993        legacy_read_packet,             /* read_packet */
    951994        NULL,                           /* write_packet */
    952         legacy_get_link,                /* get_link */
     995        legacypos_get_link,             /* get_link */
    953996        legacypos_get_link_type,        /* get_link_type */
    954997        NULL,                           /* get_direction */
     
    9591002        legacy_get_capture_length,      /* get_capture_length */
    9601003        legacypos_get_wire_length,      /* get_wire_length */
    961         legacy_get_framing_length,      /* get_framing_length */
     1004        legacypos_get_framing_length,   /* get_framing_length */
    9621005        NULL,                           /* set_capture_length */
    9631006        NULL,                           /* get_fd */
Note: See TracChangeset for help on using the changeset viewer.