Changeset eaa5529 for lib/format_erf.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/format_erf.c

    r9c6aa95 reaa5529  
    7272static struct libtrace_format_t *dag_ptr = 0;
    7373#endif
     74static struct libtrace_format_t *legacypos_ptr = 0;
     75static struct libtrace_format_t *legacyeth_ptr = 0;
     76static struct libtrace_format_t *legacyatm_ptr = 0;
    7477
    7578#define CONNINFO libtrace->format_data->conn_info
     
    439442
    440443        if ( size  > LIBTRACE_PACKET_BUFSIZE) {
    441                 printf("%d\n",size);
    442444                assert( size < LIBTRACE_PACKET_BUFSIZE);
    443445        }
     
    457459#endif
    458460
     461static int legacy_read_packet(struct libtrace_t *libtrace, struct libtrace_packet_t *packet) {
     462        int numbytes;
     463        int size;
     464        void *buffer = packet->buffer;
     465        void *buffer2 = buffer;
     466        dag_record_t *erfptr = (dag_record_t *)buffer;
     467        int rlen;
     468
     469#if HAVE_ZLIB
     470        if ((numbytes=gzread(INPUT.file,
     471                                        buffer,
     472                                        dag_record_size)) == -1) {
     473                perror("gzread");
     474                return -1;
     475        }
     476#else
     477        if ((numbytes = read(INPUT.file, buffer, dag_record_size)) == -1) {
     478                perror("read");
     479                return -1;
     480        }
     481#endif
     482        if (numbytes == 0) {
     483                return 0;
     484        }
     485
     486        // legacy - 64byte captures
     487        // type is TYPE_LEGACY
     488        rlen = 64;
     489        size = rlen - dag_record_size;
     490        buffer2 = buffer + dag_record_size;
     491       
     492#ifdef HAVE_ZLIB
     493        if ((numbytes=gzread(INPUT.file,
     494                                        buffer2,
     495                                        size)) == -1) {
     496                perror("gzread");
     497                return -1;
     498        }
     499#else
     500        if ((numbytes = read(INPUT.file,buffer2,size)) == -1) {
     501                perror("gzread");
     502                return -1;
     503        }
     504#endif
     505        packet->status = 0;
     506        packet->size = rlen;
     507        return rlen;
     508}
    459509static int erf_read_packet(struct libtrace_t *libtrace, struct libtrace_packet_t *packet) {
    460510        int numbytes;
     
    485535       
    486536        // read in the rest of the packet
     537#ifdef HAVE_ZLIB
    487538        if ((numbytes=gzread(INPUT.file,
    488539                                        buffer2,
     
    491542                return -1;
    492543        }
     544#else
     545        if ((numbytes = read(INPUT.file,buffer2,size)) == -1) {
     546                perror("gzread");
     547                return -1;
     548        }
     549#endif
    493550        packet->status = 0;
    494551        packet->size = rlen;
     
    650707
    651708
     709static void *legacy_get_link(const struct libtrace_packet_t *packet) {
     710        const void *posptr = 0;
     711        posptr = ((uint8_t *)packet->buffer);
     712        return (void *)posptr;
     713}
     714
     715static libtrace_linktype_t legacy_get_link_type(const struct libtrace_packet_t *packet) {
     716        return TRACE_TYPE_LEGACY;
     717}
     718
     719static libtrace_linktype_t legacyeth_get_link_type(const struct libtrace_packet_t *packet) {
     720        return TRACE_TYPE_LEGACY_ETH;
     721}
     722
     723static libtrace_linktype_t legacyatm_get_link_type(const struct libtrace_packet_t *packet) {
     724        return TRACE_TYPE_LEGACY_ATM;
     725}
     726
     727static libtrace_linktype_t legacypos_get_link_type(const struct libtrace_packet_t *packet) {
     728        return TRACE_TYPE_LEGACY_POS;
     729}
     730
    652731static void *erf_get_link(const struct libtrace_packet_t *packet) {
    653732        const void *ethptr = 0;
     
    693772}
    694773
     774static int legacy_get_capture_length(const struct libtrace_packet_t *packet __attribute__((unused))) {
     775        return 64;
     776}
     777
     778static int legacypos_get_wire_length(const struct libtrace_packet_t *packet) {
     779       
     780}
    695781static int erf_get_capture_length(const struct libtrace_packet_t *packet) {
    696782        dag_record_t *erfptr = 0;
     
    740826#endif
    741827
     828static void legacypos_help() {
     829        printf("legacypos format module: $Revision$\n");
     830        printf("Supported input URIs:\n");
     831        printf("\tlegacypos:/path/to/file\t(uncompressed)\n");
     832        printf("\tlegacypos:/path/to/file.gz\t(gzip-compressed)\n");
     833        printf("\tlegacypos:-\t(stdin, either compressed or not)\n");
     834        printf("\n");
     835        printf("\te.g.: legacypos:/tmp/trace.gz\n");
     836        printf("\n");
     837}
     838
     839static void legacyatm_help() {
     840        printf("legacyatm format module: $Revision$\n");
     841        printf("Supported input URIs:\n");
     842        printf("\tlegacyatm:/path/to/file\t(uncompressed)\n");
     843        printf("\tlegacyatm:/path/to/file.gz\t(gzip-compressed)\n");
     844        printf("\tlegacyatm:-\t(stdin, either compressed or not)\n");
     845        printf("\n");
     846        printf("\te.g.: legacyatm:/tmp/trace.gz\n");
     847        printf("\n");
     848}
     849
     850static void legacyeth_help() {
     851        printf("legacyeth format module: $Revision$\n");
     852        printf("Supported input URIs:\n");
     853        printf("\tlegacyeth:/path/to/file\t(uncompressed)\n");
     854        printf("\tlegacyeth:/path/to/file.gz\t(gzip-compressed)\n");
     855        printf("\tlegacyeth:-\t(stdin, either compressed or not)\n");
     856        printf("\n");
     857        printf("\te.g.: legacyeth:/tmp/trace.gz\n");
     858        printf("\n");
     859}
    742860
    743861static void erf_help() {
     
    784902
    785903}
     904
     905static struct libtrace_format_t legacyatm = {
     906        "legacyatm",
     907        "$Id$",
     908        "legacyatm",
     909        erf_init_input,                 /* init_input */       
     910        NULL,                           /* init_output */
     911        NULL,                           /* config_output */
     912        erf_fin_input,                  /* fin_input */
     913        NULL,                           /* fin_output */
     914        legacy_read_packet,             /* read_packet */
     915        NULL,                           /* write_packet */
     916        legacy_get_link,                /* get_link */
     917        legacyatm_get_link_type,        /* get_link_type */
     918        NULL,                           /* get_direction */
     919        NULL,                           /* set_direction */
     920        erf_get_erf_timestamp,          /* get_erf_timestamp */
     921        NULL,                           /* get_timeval */
     922        NULL,                           /* get_seconds */
     923        legacy_get_capture_length,      /* get_capture_length */
     924        NULL,                           /* get_wire_length */
     925        NULL,                           /* set_capture_length */
     926        NULL,                           /* get_fd */
     927        trace_event_trace,              /* trace_event */
     928        legacyatm_help                  /* help */
     929};
     930
     931static struct libtrace_format_t legacyeth = {
     932        "legacyeth",
     933        "$Id$",
     934        "legacyeth",
     935        erf_init_input,                 /* init_input */       
     936        NULL,                           /* init_output */
     937        NULL,                           /* config_output */
     938        erf_fin_input,                  /* fin_input */
     939        NULL,                           /* fin_output */
     940        legacy_read_packet,             /* read_packet */
     941        NULL,                           /* write_packet */
     942        legacy_get_link,                /* get_link */
     943        legacyeth_get_link_type,        /* get_link_type */
     944        NULL,                           /* get_direction */
     945        NULL,                           /* set_direction */
     946        erf_get_erf_timestamp,          /* get_erf_timestamp */
     947        NULL,                           /* get_timeval */
     948        NULL,                           /* get_seconds */
     949        legacy_get_capture_length,      /* get_capture_length */
     950        NULL,                           /* get_wire_length */
     951        NULL,                           /* set_capture_length */
     952        NULL,                           /* get_fd */
     953        trace_event_trace,              /* trace_event */
     954        legacyatm_help                  /* help */
     955};
     956
     957static struct libtrace_format_t legacypos = {
     958        "legacypos",
     959        "$Id$",
     960        "legacypos",
     961        erf_init_input,                 /* init_input */       
     962        NULL,                           /* init_output */
     963        NULL,                           /* config_output */
     964        erf_fin_input,                  /* fin_input */
     965        NULL,                           /* fin_output */
     966        legacy_read_packet,             /* read_packet */
     967        NULL,                           /* write_packet */
     968        legacy_get_link,                /* get_link */
     969        legacypos_get_link_type,        /* get_link_type */
     970        NULL,                           /* get_direction */
     971        NULL,                           /* set_direction */
     972        erf_get_erf_timestamp,          /* get_erf_timestamp */
     973        NULL,                           /* get_timeval */
     974        NULL,                           /* get_seconds */
     975        legacy_get_capture_length,      /* get_capture_length */
     976        NULL,                           /* get_wire_length */
     977        NULL,                           /* set_capture_length */
     978        NULL,                           /* get_fd */
     979        trace_event_trace,              /* trace_event */
     980        legacypos_help                  /* help */
     981};
    786982
    787983       
     
    8751071        rtclient_ptr = &rtclient;
    8761072        register_format(rtclient_ptr);
    877 }
     1073
     1074        legacypos_ptr = &legacypos;
     1075        register_format(legacypos_ptr);
     1076
     1077        legacyeth_ptr = &legacyeth;
     1078        register_format(legacyeth_ptr);
     1079
     1080        legacyatm_ptr = &legacyatm;
     1081        register_format(legacyatm_ptr);
     1082
     1083}
Note: See TracChangeset for help on using the changeset viewer.