Changeset 2413


Ignore:
Timestamp:
03/12/10 21:31:18 (5 months ago)
Author:
aturner
Message:

add pre-cache support (merge 2404:2407 from branches/3.4)
fixes #410

Location:
trunk/src
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • trunk/src

  • trunk/src/replay.c

    r2404 r2413  
    6262 
    6363    /* read from pcap file if we haven't cached things yet */ 
    64     if (!ctx->options->enable_file_cache) { 
     64    if (!(ctx->options->enable_file_cache || ctx->options->preload_pcap)) { 
    6565        if ((pcap = pcap_open_offline(path, ebuf)) == NULL) { 
    6666            tcpreplay_seterr(ctx, "Error opening pcap file: %s", ebuf); 
  • trunk/src/send_packets.c

    r2404 r2413  
    7474 
    7575/** 
     76 * \brief Preloads the memory cache for the given pcap file_idx  
     77 * 
     78 * Preloading can be used with or without --loop and implies using 
     79 * --enable-file-cache 
     80 */ 
     81void 
     82preload_pcap_file(tcpreplay_t *ctx, int file_idx) 
     83{ 
     84    char *path = ctx->options->sources[file_idx].filename; 
     85    pcap_t *pcap = NULL; 
     86    char ebuf[PCAP_ERRBUF_SIZE]; 
     87    const u_char *pktdata = NULL; 
     88    struct pcap_pkthdr pkthdr; 
     89    packet_cache_t *cached_packet = NULL; 
     90    packet_cache_t **prev_packet = &cached_packet; 
     91    COUNTER packetnum = 0; 
     92 
     93 
     94    /* close stdin if reading from it (needed for some OS's) */ 
     95    if (strncmp(path, "-", 1) == 0) 
     96        if (close(1) == -1) 
     97            warnx("unable to close stdin: %s", strerror(errno)); 
     98 
     99    if ((pcap = pcap_open_offline(path, ebuf)) == NULL) 
     100        errx(-1, "Error opening pcap file: %s", ebuf); 
     101 
     102    /* loop through the pcap.  get_next_packet() builds the cache for us! */ 
     103    while ((pktdata = get_next_packet(ctx, pcap, &pkthdr, file_idx, prev_packet)) != NULL) { 
     104        packetnum++; 
     105    } 
     106 
     107    /* mark this file as cached */ 
     108    ctx->options->file_cache[file_idx].cached = TRUE; 
     109    pcap_close(pcap); 
     110} 
     111 
     112/** 
    76113 * the main loop function for tcpreplay.  This is where we figure out 
    77114 * what to do with each packet 
     
    193230 * will be updated as new entries are added (or retrieved) from the cache list. 
    194231 */ 
    195 static const u_char * 
     232const u_char * 
    196233get_next_packet(tcpreplay_t *ctx, pcap_t *pcap, struct pcap_pkthdr *pkthdr, int file_idx,  
    197234    packet_cache_t **prev_packet) 
  • trunk/src/send_packets.h

    r2404 r2413  
    3939void send_packets(tcpreplay_t *ctx, pcap_t *, int); 
    4040void *cache_mode(tcpreplay_t *ctx, char *, COUNTER); 
     41void preload_pcap_file(tcpreplay_t *ctx, int file_idx); 
    4142 
    4243#endif 
  • trunk/src/tcpprep.c

    • Property svn:mergeinfo changed (with no actual effect on merging)
  • trunk/src/tcpreplay.c

    r2404 r2413  
    7676void usage(void); 
    7777 
     78 
    7879int 
    7980main(int argc, char *argv[]) 
     
    8384 
    8485    ctx = tcpreplay_init(); 
    85  
    86     /* point our globals at our context counters  
    87     bytes_sent = &ctx->bytes_sent; 
    88     pkts_sent = &ctx->pkts_sent; 
    89     failed = &ctx->failed; 
    90     begin = &ctx->begin; 
    91     end = &ctx->end; 
    92     abort = &ctx->abort; 
    93     */ 
    9486    optct = optionProcess(&tcpreplayOptions, argc, argv); 
    9587    argc -= optct; 
     
    123115#endif 
    124116 
    125     if (ctx->options->enable_file_cache && ! HAVE_OPT(QUIET)) { 
     117    if ((ctx->options->enable_file_cache ||  
     118               ctx->options->preload_pcap) && ! HAVE_OPT(QUIET)) { 
    126119        notice("File Cache is enabled"); 
    127120    } 
     
    130123     * Setup up the file cache, if required 
    131124     */ 
    132     if (ctx->options->enable_file_cache) { 
     125    if (ctx->options->enable_file_cache || ctx->options->preload_pcap) { 
    133126        /* Initialise each of the file cache structures */ 
    134127        for (i = 0; i < argc; i++) { 
     
    139132    } 
    140133 
    141     for (i = 0; i < argc; i++) 
     134    for (i = 0; i < argc; i++) { 
    142135        ctx->options->sources[i].filename = safe_strdup(argv[i]); 
     136 
     137        /* preload our pcap file? */ 
     138        if (ctx->options->preload_pcap) { 
     139            preload_pcap_file(ctx, i); 
     140        } 
     141    } 
    143142 
    144143    /* init the signal handlers */ 
     
    182181}   /* main() */ 
    183182 
    184  
    185183/* vim: set tabstop=8 expandtab shiftwidth=4 softtabstop=4: */ 
    186184 
  • trunk/src/tcpreplay_api.h

    r2404 r2413  
    146146    bool enable_file_cache; 
    147147    file_cache_t file_cache[MAX_FILES]; 
     148    int preload_pcap; 
    148149 
    149150    /* pcap files/sources to replay */ 
  • trunk/src/tcpreplay_edit_opts.c

    r2404 r2413  
    33 *  DO NOT EDIT THIS FILE   (tcpreplay_edit_opts.c) 
    44 *   
    5  *  It has been AutoGen-ed  Monday October  5, 2009 at 01:29:53 PM PDT 
     5 *  It has been AutoGen-ed  March 12, 2010 at 11:24:39 AM by AutoGen 5.9.9 
    66 *  From the definitions    tcpreplay_opts.def 
    77 *  and the template file   options 
    88 * 
    9  * Generated from AutoOpts 32:1:7 templates. 
     9 * Generated from AutoOpts 32:2:7 templates. 
    1010 */ 
    1111 
     
    2121 * This source file is copyrighted and licensed under the following terms: 
    2222 * 
    23  * tcpreplay copyright 2000-2008 Aaron Turner - all rights reserved 
     23 * tcpreplay copyright (c) 2000-2008 Aaron Turner - all rights reserved 
    2424 * 
    2525 * tcpreplay is free software copyrighted by Aaron Turner. 
     
    551551 
    552552/* 
     553 *  Preload_Pcap option description: 
     554 */ 
     555tSCC    zPreload_PcapText[] = 
     556        "Preloads packets into RAM before sending"; 
     557tSCC    zPreload_Pcap_NAME[]       = "PRELOAD_PCAP"; 
     558tSCC    zPreload_Pcap_Name[]       = "preload-pcap"; 
     559#define PRELOAD_PCAP_FLAGS       (OPTST_DISABLED) 
     560 
     561/* 
    553562 *  Cachefile option description: 
    554563 */ 
     
    12431252     /* disablement strs */ NULL, NULL }, 
    12441253 
    1245   {  /* entry idx, value */ 37, VALUE_OPT_CACHEFILE, 
    1246      /* equiv idx, value */ 37, VALUE_OPT_CACHEFILE, 
     1254  {  /* entry idx, value */ 37, VALUE_OPT_PRELOAD_PCAP, 
     1255     /* equiv idx, value */ 37, VALUE_OPT_PRELOAD_PCAP, 
     1256     /* equivalenced to  */ NO_EQUIVALENT, 
     1257     /* min, max, act ct */ 0, 1, 0, 
     1258     /* opt state flags  */ PRELOAD_PCAP_FLAGS, 0, 
     1259     /* last opt argumnt */ { NULL }, 
     1260     /* arg list/cookie  */ NULL, 
     1261     /* must/cannot opts */ NULL, NULL, 
     1262     /* option proc      */ NULL, 
     1263     /* desc, NAME, name */ zPreload_PcapText, zPreload_Pcap_NAME, zPreload_Pcap_Name, 
     1264     /* disablement strs */ NULL, NULL }, 
     1265 
     1266  {  /* entry idx, value */ 38, VALUE_OPT_CACHEFILE, 
     1267     /* equiv idx, value */ 38, VALUE_OPT_CACHEFILE, 
    12471268     /* equivalenced to  */ NO_EQUIVALENT, 
    12481269     /* min, max, act ct */ 0, 1, 0, 
     
    12551276     /* disablement strs */ NULL, NULL }, 
    12561277 
    1257   {  /* entry idx, value */ 38, VALUE_OPT_INTF1, 
    1258      /* equiv idx, value */ 38, VALUE_OPT_INTF1, 
     1278  {  /* entry idx, value */ 39, VALUE_OPT_INTF1, 
     1279     /* equiv idx, value */ 39, VALUE_OPT_INTF1, 
    12591280     /* equivalenced to  */ NO_EQUIVALENT, 
    12601281     /* min, max, act ct */ 1, 1, 0, 
     
    12671288     /* disablement strs */ NULL, NULL }, 
    12681289 
    1269   {  /* entry idx, value */ 39, VALUE_OPT_INTF2, 
    1270      /* equiv idx, value */ 39, VALUE_OPT_INTF2, 
     1290  {  /* entry idx, value */ 40, VALUE_OPT_INTF2, 
     1291     /* equiv idx, value */ 40, VALUE_OPT_INTF2, 
    12711292     /* equivalenced to  */ NO_EQUIVALENT, 
    12721293     /* min, max, act ct */ 0, 1, 0, 
     
    12791300     /* disablement strs */ NULL, NULL }, 
    12801301 
    1281   {  /* entry idx, value */ 40, VALUE_OPT_LISTNICS, 
    1282      /* equiv idx, value */ 40, VALUE_OPT_LISTNICS, 
     1302  {  /* entry idx, value */ 41, VALUE_OPT_LISTNICS, 
     1303     /* equiv idx, value */ 41, VALUE_OPT_LISTNICS, 
    12831304     /* equivalenced to  */ NO_EQUIVALENT, 
    12841305     /* min, max, act ct */ 0, 1, 0, 
     
    12911312     /* disablement strs */ NULL, NULL }, 
    12921313 
    1293   {  /* entry idx, value */ 41, VALUE_OPT_LOOP, 
    1294      /* equiv idx, value */ 41, VALUE_OPT_LOOP, 
     1314  {  /* entry idx, value */ 42, VALUE_OPT_LOOP, 
     1315     /* equiv idx, value */ 42, VALUE_OPT_LOOP, 
    12951316     /* equivalenced to  */ NO_EQUIVALENT, 
    12961317     /* min, max, act ct */ 0, 1, 0, 
     
    13031324     /* disablement strs */ NULL, NULL }, 
    13041325 
    1305   {  /* entry idx, value */ 42, VALUE_OPT_PKTLEN, 
    1306      /* equiv idx, value */ 42, VALUE_OPT_PKTLEN, 
     1326  {  /* entry idx, value */ 43, VALUE_OPT_PKTLEN, 
     1327     /* equiv idx, value */ 43, VALUE_OPT_PKTLEN, 
    13071328     /* equivalenced to  */ NO_EQUIVALENT, 
    13081329     /* min, max, act ct */ 0, 1, 0, 
     
    13151336     /* disablement strs */ NULL, NULL }, 
    13161337 
    1317   {  /* entry idx, value */ 43, VALUE_OPT_LIMIT, 
    1318      /* equiv idx, value */ 43, VALUE_OPT_LIMIT, 
     1338  {  /* entry idx, value */ 44, VALUE_OPT_LIMIT, 
     1339     /* equiv idx, value */ 44, VALUE_OPT_LIMIT, 
    13191340     /* equivalenced to  */ NO_EQUIVALENT, 
    13201341     /* min, max, act ct */ 0, 1, 0, 
     
    13271348     /* disablement strs */ NULL, NULL }, 
    13281349 
    1329   {  /* entry idx, value */ 44, VALUE_OPT_MULTIPLIER, 
    1330      /* equiv idx, value */ 44, VALUE_OPT_MULTIPLIER, 
     1350  {  /* entry idx, value */ 45, VALUE_OPT_MULTIPLIER, 
     1351     /* equiv idx, value */ 45, VALUE_OPT_MULTIPLIER, 
    13311352     /* equivalenced to  */ NO_EQUIVALENT, 
    13321353     /* min, max, act ct */ 0, 1, 0, 
     
    13391360     /* disablement strs */ NULL, NULL }, 
    13401361 
    1341   {  /* entry idx, value */ 45, VALUE_OPT_PPS, 
    1342      /* equiv idx, value */ 45, VALUE_OPT_PPS, 
     1362  {  /* entry idx, value */ 46, VALUE_OPT_PPS, 
     1363     /* equiv idx, value */ 46, VALUE_OPT_PPS, 
    13431364     /* equivalenced to  */ NO_EQUIVALENT, 
    13441365     /* min, max, act ct */ 0, 1, 0, 
     
    13511372     /* disablement strs */ NULL, NULL }, 
    13521373 
    1353   {  /* entry idx, value */ 46, VALUE_OPT_MBPS, 
    1354      /* equiv idx, value */ 46, VALUE_OPT_MBPS, 
     1374  {  /* entry idx, value */ 47, VALUE_OPT_MBPS, 
     1375     /* equiv idx, value */ 47, VALUE_OPT_MBPS, 
    13551376     /* equivalenced to  */ NO_EQUIVALENT, 
    13561377     /* min, max, act ct */ 0, 1, 0, 
     
    13631384     /* disablement strs */ NULL, NULL }, 
    13641385 
    1365   {  /* entry idx, value */ 47, VALUE_OPT_TOPSPEED, 
    1366      /* equiv idx, value */ 47, VALUE_OPT_TOPSPEED, 
     1386  {  /* entry idx, value */ 48, VALUE_OPT_TOPSPEED, 
     1387     /* equiv idx, value */ 48, VALUE_OPT_TOPSPEED, 
    13671388     /* equivalenced to  */ NO_EQUIVALENT, 
    13681389     /* min, max, act ct */ 0, 1, 0, 
     
    13751396     /* disablement strs */ NULL, NULL }, 
    13761397 
    1377   {  /* entry idx, value */ 48, VALUE_OPT_ONEATATIME, 
    1378      /* equiv idx, value */ 48, VALUE_OPT_ONEATATIME, 
     1398  {  /* entry idx, value */ 49, VALUE_OPT_ONEATATIME, 
     1399     /* equiv idx, value */ 49, VALUE_OPT_ONEATATIME, 
    13791400     /* equivalenced to  */ NO_EQUIVALENT, 
    13801401     /* min, max, act ct */ 0, 1, 0, 
     
    13871408     /* disablement strs */ NULL, NULL }, 
    13881409 
    1389   {  /* entry idx, value */ 49, VALUE_OPT_PPS_MULTI, 
    1390      /* equiv idx, value */ 49, VALUE_OPT_PPS_MULTI, 
     1410  {  /* entry idx, value */ 50, VALUE_OPT_PPS_MULTI, 
     1411     /* equiv idx, value */ 50, VALUE_OPT_PPS_MULTI, 
    13911412     /* equivalenced to  */ NO_EQUIVALENT, 
    13921413     /* min, max, act ct */ 0, 1, 0, 
     
    13991420     /* disablement strs */ NULL, NULL }, 
    14001421 
    1401   {  /* entry idx, value */ 50, VALUE_OPT_PID, 
    1402      /* equiv idx, value */ 50, VALUE_OPT_PID, 
     1422  {  /* entry idx, value */ 51, VALUE_OPT_PID, 
     1423     /* equiv idx, value */ 51, VALUE_OPT_PID, 
    14031424     /* equivalenced to  */ NO_EQUIVALENT, 
    14041425     /* min, max, act ct */ 0, 1, 0, 
     
    14111432     /* disablement strs */ NULL, NULL }, 
    14121433 
    1413   {  /* entry idx, value */ 51, VALUE_OPT_VERSION, 
    1414      /* equiv idx, value */ 51, VALUE_OPT_VERSION, 
     1434  {  /* entry idx, value */ 52, VALUE_OPT_VERSION, 
     1435     /* equiv idx, value */ 52, VALUE_OPT_VERSION, 
    14151436     /* equivalenced to  */ NO_EQUIVALENT, 
    14161437     /* min, max, act ct */ 0, 1, 0, 
     
    14231444     /* disablement strs */ NULL, NULL }, 
    14241445 
    1425   {  /* entry idx, value */ 52, VALUE_OPT_LESS_HELP, 
    1426      /* equiv idx, value */ 52, VALUE_OPT_LESS_HELP, 
     1446  {  /* entry idx, value */ 53, VALUE_OPT_LESS_HELP, 
     1447     /* equiv idx, value */ 53, VALUE_OPT_LESS_HELP, 
    14271448     /* equivalenced to  */ NO_EQUIVALENT, 
    14281449     /* min, max, act ct */ 0, 1, 0, 
     
    15141535http://tcpreplay.synfin.net/trac/wiki/manual\n"; 
    15151536#define zFullVersion    NULL 
    1516 /* extracted from /opt/local/share/autogen/optcode.tpl near line 501 */ 
     1537/* extracted from /usr/local/share/autogen/optcode.tpl near line 501 */ 
    15171538 
    15181539#if defined(ENABLE_NLS) 
     
    15541575      9 /* index of default opt */ 
    15551576    }, 
    1556     57 /* full option count */, 53 /* user option count */, 
     1577    58 /* full option count */, 54 /* user option count */, 
    15571578    tcpreplay_full_usage, tcpreplay_short_usage, 
    15581579    NULL, NULL 
     
    19812002doOptListnics(tOptions* pOptions, tOptDesc* pOptDesc) 
    19822003{ 
    1983     /* extracted from tcpreplay_opts.def, line 255 */ 
     2004    /* extracted from tcpreplay_opts.def, line 266 */ 
    19842005 
    19852006    interface_list_t *list = get_interface_list(); 
     
    21482169doOptPid(tOptions* pOptions, tOptDesc* pOptDesc) 
    21492170{ 
    2150     /* extracted from tcpreplay_opts.def, line 405 */ 
     2171    /* extracted from tcpreplay_opts.def, line 416 */ 
    21512172 
    21522173    fprintf(stderr, "PID: %hu\n", getpid()); 
     
    21612182doOptVersion(tOptions* pOptions, tOptDesc* pOptDesc) 
    21622183{ 
    2163     /* extracted from tcpreplay_opts.def, line 417 */ 
     2184    /* extracted from tcpreplay_opts.def, line 428 */ 
    21642185 
    21652186    fprintf(stderr, "tcpreplay version: %s (build %s)", VERSION, svn_version()); 
     
    22022223    fprintf(stderr, "Injection method: %s\n", sendpacket_get_method()); 
    22032224    exit(0); 
    2204      
     2225 
    22052226} 
    22062227 
     
    22122233doOptLess_Help(tOptions* pOptions, tOptDesc* pOptDesc) 
    22132234{ 
    2214     /* extracted from tcpreplay_opts.def, line 468 */ 
    2215    
     2235    /* extracted from tcpreplay_opts.def, line 479 */ 
     2236 
    22162237    USAGE(EXIT_FAILURE); 
    22172238 
    22182239} 
    2219 /* extracted from /opt/local/share/autogen/optcode.tpl near line 633 */ 
     2240/* extracted from /usr/local/share/autogen/optcode.tpl near line 633 */ 
    22202241 
    22212242#if ENABLE_NLS 
  • trunk/src/tcpreplay_edit_opts.h

    r2404 r2413  
    33 *  DO NOT EDIT THIS FILE   (tcpreplay_edit_opts.h) 
    44 *   
    5  *  It has been AutoGen-ed  Monday October  5, 2009 at 01:29:53 PM PDT 
     5 *  It has been AutoGen-ed  March 12, 2010 at 11:24:39 AM by AutoGen 5.9.9 
    66 *  From the definitions    tcpreplay_opts.def 
    77 *  and the template file   options 
    88 * 
    9  * Generated from AutoOpts 32:1:7 templates. 
     9 * Generated from AutoOpts 32:2:7 templates. 
    1010 */ 
    1111 
     
    2121 * This source file is copyrighted and licensed under the following terms: 
    2222 * 
    23  * tcpreplay copyright 2000-2008 Aaron Turner - all rights reserved 
     23 * tcpreplay copyright (c) 2000-2008 Aaron Turner - all rights reserved 
    2424 * 
    2525 * tcpreplay is free software copyrighted by Aaron Turner. 
     
    6767 *  template was released. 
    6868 */ 
    69 #define AO_TEMPLATE_VERSION 131073 
     69#define AO_TEMPLATE_VERSION 131074 
    7070#if (AO_TEMPLATE_VERSION < OPTIONS_MINIMUM_VERSION) \ 
    7171 || (AO_TEMPLATE_VERSION > OPTIONS_STRUCT_VERSION) 
     
    114114    INDEX_OPT_DECODE             = 35, 
    115115    INDEX_OPT_ENABLE_FILE_CACHE  = 36, 
    116     INDEX_OPT_CACHEFILE          = 37, 
    117     INDEX_OPT_INTF1              = 38, 
    118     INDEX_OPT_INTF2              = 39, 
    119     INDEX_OPT_LISTNICS           = 40, 
    120     INDEX_OPT_LOOP               = 41, 
    121     INDEX_OPT_PKTLEN             = 42, 
    122     INDEX_OPT_LIMIT              = 43, 
    123     INDEX_OPT_MULTIPLIER         = 44, 
    124     INDEX_OPT_PPS                = 45, 
    125     INDEX_OPT_MBPS               = 46, 
    126     INDEX_OPT_TOPSPEED           = 47, 
    127     INDEX_OPT_ONEATATIME         = 48, 
    128     INDEX_OPT_PPS_MULTI          = 49, 
    129     INDEX_OPT_PID                = 50, 
    130     INDEX_OPT_VERSION            = 51, 
    131     INDEX_OPT_LESS_HELP          = 52, 
    132     INDEX_OPT_HELP               = 53, 
    133     INDEX_OPT_MORE_HELP          = 54, 
    134     INDEX_OPT_SAVE_OPTS          = 55, 
    135     INDEX_OPT_LOAD_OPTS          = 56 
     116    INDEX_OPT_PRELOAD_PCAP       = 37, 
     117    INDEX_OPT_CACHEFILE          = 38, 
     118    INDEX_OPT_INTF1              = 39, 
     119    INDEX_OPT_INTF2              = 40, 
     120    INDEX_OPT_LISTNICS           = 41, 
     121    INDEX_OPT_LOOP               = 42, 
     122    INDEX_OPT_PKTLEN             = 43, 
     123    INDEX_OPT_LIMIT              = 44, 
     124    INDEX_OPT_MULTIPLIER         = 45, 
     125    INDEX_OPT_PPS                = 46, 
     126    INDEX_OPT_MBPS               = 47, 
     127    INDEX_OPT_TOPSPEED           = 48, 
     128    INDEX_OPT_ONEATATIME         = 49, 
     129    INDEX_OPT_PPS_MULTI          = 50, 
     130    INDEX_OPT_PID                = 51, 
     131    INDEX_OPT_VERSION            = 52, 
     132    INDEX_OPT_LESS_HELP          = 53, 
     133    INDEX_OPT_HELP               = 54, 
     134    INDEX_OPT_MORE_HELP          = 55, 
     135    INDEX_OPT_SAVE_OPTS          = 56, 
     136    INDEX_OPT_LOAD_OPTS          = 57 
    136137} teOptIndex; 
    137138 
    138 #define OPTION_CT    57 
     139#define OPTION_CT    58 
    139140 
    140141/* 
     
    226227#endif /* ENABLE_VERBOSE */ 
    227228#define VALUE_OPT_ENABLE_FILE_CACHE 'K' 
     229#define VALUE_OPT_PRELOAD_PCAP   133 
    228230#define VALUE_OPT_CACHEFILE      'c' 
    229231#define VALUE_OPT_INTF1          'i' 
    230232#define VALUE_OPT_INTF2          'I' 
    231233#ifdef ENABLE_PCAP_FINDALLDEVS 
    232 #define VALUE_OPT_LISTNICS       136 
     234#define VALUE_OPT_LISTNICS       137 
    233235#endif /* ENABLE_PCAP_FINDALLDEVS */ 
    234236#define VALUE_OPT_LOOP           'l' 
    235237#define OPT_VALUE_LOOP           (DESC(LOOP).optArg.argInt) 
    236 #define VALUE_OPT_PKTLEN         138 
     238#define VALUE_OPT_PKTLEN         139 
    237239#define VALUE_OPT_LIMIT          'L' 
    238240#define OPT_VALUE_LIMIT          (DESC(LIMIT).optArg.argInt) 
     
    243245#define VALUE_OPT_TOPSPEED       't' 
    244246#define VALUE_OPT_ONEATATIME     'o' 
    245 #define VALUE_OPT_PPS_MULTI      145 
     247#define VALUE_OPT_PPS_MULTI      146 
    246248#define OPT_VALUE_PPS_MULTI      (DESC(PPS_MULTI).optArg.argInt) 
    247249#define VALUE_OPT_PID            'P' 
     
    266268#define START_OPT       RESTART_OPT(1) 
    267269#define USAGE(c)        (*tcpreplayOptions.pUsageProc)( &tcpreplayOptions, c ) 
    268 /* extracted from /opt/local/share/autogen/opthead.tpl near line 409 */ 
     270/* extracted from /usr/local/share/autogen/opthead.tpl near line 409 */ 
    269271 
    270272/* * * * * * 
  • trunk/src/tcpreplay_opts.c

    r2404 r2413  
    33 *  DO NOT EDIT THIS FILE   (tcpreplay_opts.c) 
    44 *   
    5  *  It has been AutoGen-ed  Monday October  5, 2009 at 01:29:52 PM PDT 
     5 *  It has been AutoGen-ed  March 12, 2010 at 11:24:39 AM by AutoGen 5.9.9 
    66 *  From the definitions    tcpreplay_opts.def 
    77 *  and the template file   options 
    88 * 
    9  * Generated from AutoOpts 32:1:7 templates. 
     9 * Generated from AutoOpts 32:2:7 templates. 
    1010 */ 
    1111 
     
    2121 * This source file is copyrighted and licensed under the following terms: 
    2222 * 
    23  * tcpreplay copyright 2000-2008 Aaron Turner - all rights reserved 
     23 * tcpreplay copyright (c) 2000-2008 Aaron Turner - all rights reserved 
    2424 * 
    2525 * tcpreplay is free software copyrighted by Aaron Turner. 
     
    231231 
    232232/* 
     233 *  Preload_Pcap option description: 
     234 */ 
     235tSCC    zPreload_PcapText[] = 
     236        "Preloads packets into RAM before sending"; 
     237tSCC    zPreload_Pcap_NAME[]       = "PRELOAD_PCAP"; 
     238tSCC    zPreload_Pcap_Name[]       = "preload-pcap"; 
     239#define PRELOAD_PCAP_FLAGS       (OPTST_DISABLED) 
     240 
     241/* 
    233242 *  Cachefile option description: 
    234243 */ 
     
    572581     /* disablement strs */ NULL, NULL }, 
    573582 
    574   {  /* entry idx, value */ 8, VALUE_OPT_CACHEFILE, 
    575      /* equiv idx, value */ 8, VALUE_OPT_CACHEFILE, 
     583  {  /* entry idx, value */ 8, VALUE_OPT_PRELOAD_PCAP, 
     584     /* equiv idx, value */ 8, VALUE_OPT_PRELOAD_PCAP, 
     585     /* equivalenced to  */ NO_EQUIVALENT, 
     586     /* min, max, act ct */ 0, 1, 0, 
     587     /* opt state flags  */ PRELOAD_PCAP_FLAGS, 0, 
     588     /* last opt argumnt */ { NULL }, 
     589     /* arg list/cookie  */ NULL, 
     590     /* must/cannot opts */ NULL, NULL, 
     591     /* option proc      */ NULL, 
     592     /* desc, NAME, name */ zPreload_PcapText, zPreload_Pcap_NAME, zPreload_Pcap_Name, 
     593     /* disablement strs */ NULL, NULL }, 
     594 
     595  {  /* entry idx, value */ 9, VALUE_OPT_CACHEFILE, 
     596     /* equiv idx, value */ 9, VALUE_OPT_CACHEFILE, 
    576597     /* equivalenced to  */ NO_EQUIVALENT, 
    577598     /* min, max, act ct */ 0, 1, 0, 
     
    584605     /* disablement strs */ NULL, NULL }, 
    585606 
    586   {  /* entry idx, value */ 9, VALUE_OPT_INTF1, 
    587      /* equiv idx, value */ 9, VALUE_OPT_INTF1, 
     607  {  /* entry idx, value */ 10, VALUE_OPT_INTF1, 
     608     /* equiv idx, value */ 10, VALUE_OPT_INTF1, 
    588609     /* equivalenced to  */ NO_EQUIVALENT, 
    589610     /* min, max, act ct */ 1, 1, 0, 
     
    596617     /* disablement strs */ NULL, NULL }, 
    597618 
    598   {  /* entry idx, value */ 10, VALUE_OPT_INTF2, 
    599      /* equiv idx, value */ 10, VALUE_OPT_INTF2, 
     619  {  /* entry idx, value */ 11, VALUE_OPT_INTF2, 
     620     /* equiv idx, value */ 11, VALUE_OPT_INTF2, 
    600621     /* equivalenced to  */ NO_EQUIVALENT, 
    601622     /* min, max, act ct */ 0, 1, 0, 
     
    608629     /* disablement strs */ NULL, NULL }, 
    609630 
    610   {  /* entry idx, value */ 11, VALUE_OPT_LISTNICS, 
    611      /* equiv idx, value */ 11, VALUE_OPT_LISTNICS, 
     631  {  /* entry idx, value */ 12, VALUE_OPT_LISTNICS, 
     632     /* equiv idx, value */ 12, VALUE_OPT_LISTNICS, 
    612633     /* equivalenced to  */ NO_EQUIVALENT, 
    613634     /* min, max, act ct */ 0, 1, 0, 
     
    620641     /* disablement strs */ NULL, NULL }, 
    621642 
    622   {  /* entry idx, value */ 12, VALUE_OPT_LOOP, 
    623      /* equiv idx, value */ 12, VALUE_OPT_LOOP, 
     643  {  /* entry idx, value */ 13, VALUE_OPT_LOOP, 
     644     /* equiv idx, value */ 13, VALUE_OPT_LOOP, 
    624645     /* equivalenced to  */ NO_EQUIVALENT, 
    625646     /* min, max, act ct */ 0, 1, 0, 
     
    632653     /* disablement strs */ NULL, NULL }, 
    633654 
    634   {  /* entry idx, value */ 13, VALUE_OPT_PKTLEN, 
    635      /* equiv idx, value */ 13, VALUE_OPT_PKTLEN, 
     655  {  /* entry idx, value */ 14, VALUE_OPT_PKTLEN, 
     656     /* equiv idx, value */ 14, VALUE_OPT_PKTLEN, 
    636657     /* equivalenced to  */ NO_EQUIVALENT, 
    637658     /* min, max, act ct */ 0, 1, 0, 
     
    644665     /* disablement strs */ NULL, NULL }, 
    645666 
    646   {  /* entry idx, value */ 14, VALUE_OPT_LIMIT, 
    647      /* equiv idx, value */ 14, VALUE_OPT_LIMIT, 
     667  {  /* entry idx, value */ 15, VALUE_OPT_LIMIT, 
     668     /* equiv idx, value */ 15, VALUE_OPT_LIMIT, 
    648669     /* equivalenced to  */ NO_EQUIVALENT, 
    649670     /* min, max, act ct */ 0, 1, 0, 
     
    656677     /* disablement strs */ NULL, NULL }, 
    657678 
    658   {  /* entry idx, value */ 15, VALUE_OPT_MULTIPLIER, 
    659      /* equiv idx, value */ 15, VALUE_OPT_MULTIPLIER, 
     679  {  /* entry idx, value */ 16, VALUE_OPT_MULTIPLIER, 
     680     /* equiv idx, value */ 16, VALUE_OPT_MULTIPLIER, 
    660681     /* equivalenced to  */ NO_EQUIVALENT, 
    661682     /* min, max, act ct */ 0, 1, 0, 
     
    668689     /* disablement strs */ NULL, NULL }, 
    669690 
    670   {  /* entry idx, value */ 16, VALUE_OPT_PPS, 
    671      /* equiv idx, value */ 16, VALUE_OPT_PPS, 
     691  {  /* entry idx, value */ 17, VALUE_OPT_PPS, 
     692     /* equiv idx, value */ 17, VALUE_OPT_PPS, 
    672693     /* equivalenced to  */ NO_EQUIVALENT, 
    673694     /* min, max, act ct */ 0, 1, 0, 
     
    680701     /* disablement strs */ NULL, NULL }, 
    681702 
    682   {  /* entry idx, value */ 17, VALUE_OPT_MBPS, 
    683      /* equiv idx, value */ 17, VALUE_OPT_MBPS, 
     703  {  /* entry idx, value */ 18, VALUE_OPT_MBPS, 
     704     /* equiv idx, value */ 18, VALUE_OPT_MBPS, 
    684705     /* equivalenced to  */ NO_EQUIVALENT, 
    685706     /* min, max, act ct */ 0, 1, 0, 
     
    692713     /* disablement strs */ NULL, NULL }, 
    693714 
    694   {  /* entry idx, value */ 18, VALUE_OPT_TOPSPEED, 
    695      /* equiv idx, value */ 18, VALUE_OPT_TOPSPEED, 
     715  {  /* entry idx, value */ 19, VALUE_OPT_TOPSPEED, 
     716     /* equiv idx, value */ 19, VALUE_OPT_TOPSPEED, 
    696717     /* equivalenced to  */ NO_EQUIVALENT, 
    697718     /* min, max, act ct */ 0, 1, 0, 
     
    704725     /* disablement strs */ NULL, NULL }, 
    705726 
    706   {  /* entry idx, value */ 19, VALUE_OPT_ONEATATIME, 
    707      /* equiv idx, value */ 19, VALUE_OPT_ONEATATIME, 
     727  {  /* entry idx, value */ 20, VALUE_OPT_ONEATATIME, 
     728     /* equiv idx, value */ 20, VALUE_OPT_ONEATATIME, 
    708729     /* equivalenced to  */ NO_EQUIVALENT, 
    709730     /* min, max, act ct */ 0, 1, 0, 
     
    716737     /* disablement strs */ NULL, NULL }, 
    717738 
    718   {  /* entry idx, value */ 20, VALUE_OPT_PPS_MULTI, 
    719      /* equiv idx, value */ 20, VALUE_OPT_PPS_MULTI, 
     739  {  /* entry idx, value */ 21, VALUE_OPT_PPS_MULTI, 
     740     /* equiv idx, value */ 21, VALUE_OPT_PPS_MULTI, 
    720741     /* equivalenced to  */ NO_EQUIVALENT, 
    721742     /* min, max, act ct */ 0, 1, 0, 
     
    728749     /* disablement strs */ NULL, NULL }, 
    729750 
    730   {  /* entry idx, value */ 21, VALUE_OPT_PID, 
    731      /* equiv idx, value */ 21, VALUE_OPT_PID, 
     751  {  /* entry idx, value */ 22, VALUE_OPT_PID, 
     752     /* equiv idx, value */ 22, VALUE_OPT_PID, 
    732753     /* equivalenced to  */ NO_EQUIVALENT, 
    733754     /* min, max, act ct */ 0, 1, 0, 
     
    740761     /* disablement strs */ NULL, NULL }, 
    741762 
    742   {  /* entry idx, value */ 22, VALUE_OPT_VERSION, 
    743      /* equiv idx, value */ 22, VALUE_OPT_VERSION, 
     763  {  /* entry idx, value */ 23, VALUE_OPT_VERSION, 
     764     /* equiv idx, value */ 23, VALUE_OPT_VERSION, 
    744765     /* equivalenced to  */ NO_EQUIVALENT, 
    745766     /* min, max, act ct */ 0, 1, 0, 
     
    752773     /* disablement strs */ NULL, NULL }, 
    753774 
    754   {  /* entry idx, value */ 23, VALUE_OPT_LESS_HELP, 
    755      /* equiv idx, value */ 23, VALUE_OPT_LESS_HELP, 
     775  {  /* entry idx, value */ 24, VALUE_OPT_LESS_HELP, 
     776     /* equiv idx, value */ 24, VALUE_OPT_LESS_HELP, 
    756777     /* equivalenced to  */ NO_EQUIVALENT, 
    757778     /* min, max, act ct */ 0, 1, 0, 
     
    842863http://tcpreplay.synfin.net/trac/wiki/manual\n"; 
    843864#define zFullVersion    NULL 
    844 /* extracted from /opt/local/share/autogen/optcode.tpl near line 501 */ 
     865/* extracted from /usr/local/share/autogen/optcode.tpl near line 501 */ 
    845866 
    846867#if defined(ENABLE_NLS) 
     
    882903      NO_EQUIVALENT /* index of default opt */ 
    883904    }, 
    884     28 /* full option count */, 24 /* user option count */, 
     905    29 /* full option count */, 25 /* user option count */, 
    885906    tcpreplay_full_usage, tcpreplay_short_usage, 
    886907    NULL, NULL 
     
    959980doOptListnics(tOptions* pOptions, tOptDesc* pOptDesc) 
    960981{ 
    961     /* extracted from tcpreplay_opts.def, line 255 */ 
     982    /* extracted from tcpreplay_opts.def, line 266 */ 
    962983 
    963984    interface_list_t *list = get_interface_list(); 
     
    11261147doOptPid(tOptions* pOptions, tOptDesc* pOptDesc) 
    11271148{ 
    1128     /* extracted from tcpreplay_opts.def, line 405 */ 
     1149    /* extracted from tcpreplay_opts.def, line 416 */ 
    11291150 
    11301151    fprintf(stderr, "PID: %hu\n", getpid()); 
     
    11391160doOptVersion(tOptions* pOptions, tOptDesc* pOptDesc) 
    11401161{ 
    1141     /* extracted from tcpreplay_opts.def, line 417 */ 
     1162    /* extracted from tcpreplay_opts.def, line 428 */ 
    11421163 
    11431164    fprintf(stderr, "tcpreplay version: %s (build %s)", VERSION, svn_version()); 
     
    11801201    fprintf(stderr, "Injection method: %s\n", sendpacket_get_method()); 
    11811202    exit(0); 
    1182      
     1203 
    11831204} 
    11841205 
     
    11901211doOptLess_Help(tOptions* pOptions, tOptDesc* pOptDesc) 
    11911212{ 
    1192     /* extracted from tcpreplay_opts.def, line 468 */ 
    1193    
     1213    /* extracted from tcpreplay_opts.def, line 479 */ 
     1214 
    11941215    USAGE(EXIT_FAILURE); 
    11951216 
    11961217} 
    1197 /* extracted from /opt/local/share/autogen/optcode.tpl near line 633 */ 
     1218/* extracted from /usr/local/share/autogen/optcode.tpl near line 633 */ 
    11981219 
    11991220#if ENABLE_NLS 
  • trunk/src/tcpreplay_opts.def

    r2363 r2413  
    209209}; 
    210210 
     211flag = { 
     212    name        = preload_pcap; 
     213    descrip     = "Preloads packets into RAM before sending"; 
     214    doc         = <<- EOText 
     215This option loads the specified pcap(s) into RAM before starting to send in order 
     216to improve replay performance while introducing a startup performance hit. 
     217Preloading can be used with or without @var{--loop} and implies  
     218@var{--enable-file-cache}. 
     219EOText; 
     220}; 
     221 
    211222/* 
    212223 * Output modifiers: -c 
     
    455466    fprintf(stderr, "Injection method: %s\n", sendpacket_get_method()); 
    456467    exit(0); 
    457      
     468 
    458469EOVersion; 
    459470    doc         = ""; 
     
    466477    descrip     = "Display less usage information and exit"; 
    467478    flag-code   = <<- EOHelp 
    468    
     479 
    469480    USAGE(EXIT_FAILURE); 
    470481 
  • trunk/src/tcpreplay_opts.h

    r2404 r2413  
    33 *  DO NOT EDIT THIS FILE   (tcpreplay_opts.h) 
    44 *   
    5  *  It has been AutoGen-ed  Monday October  5, 2009 at 01:29:52 PM PDT 
     5 *  It has been AutoGen-ed  March 12, 2010 at 11:24:39 AM by AutoGen 5.9.9 
    66 *  From the definitions    tcpreplay_opts.def 
    77 *  and the template file   options 
    88 * 
    9  * Generated from AutoOpts 32:1:7 templates. 
     9 * Generated from AutoOpts 32:2:7 templates. 
    1010 */ 
    1111 
     
    2121 * This source file is copyrighted and licensed under the following terms: 
    2222 * 
    23  * tcpreplay copyright 2000-2008 Aaron Turner - all rights reserved 
     23 * tcpreplay copyright (c) 2000-2008 Aaron Turner - all rights reserved 
    2424 * 
    2525 * tcpreplay is free software copyrighted by Aaron Turner. 
     
    6767 *  template was released. 
    6868 */ 
    69 #define AO_TEMPLATE_VERSION 131073 
     69#define AO_TEMPLATE_VERSION 131074 
    7070#if (AO_TEMPLATE_VERSION < OPTIONS_MINIMUM_VERSION) \ 
    7171 || (AO_TEMPLATE_VERSION > OPTIONS_STRUCT_VERSION) 
     
    8686    INDEX_OPT_DECODE             =  6, 
    8787    INDEX_OPT_ENABLE_FILE_CACHE  =  7, 
    88     INDEX_OPT_CACHEFILE          =  8, 
    89     INDEX_OPT_INTF1              =  9, 
    90     INDEX_OPT_INTF2              = 10, 
    91     INDEX_OPT_LISTNICS           = 11, 
    92     INDEX_OPT_LOOP               = 12, 
    93     INDEX_OPT_PKTLEN             = 13, 
    94     INDEX_OPT_LIMIT              = 14, 
    95     INDEX_OPT_MULTIPLIER         = 15, 
    96     INDEX_OPT_PPS                = 16, 
    97     INDEX_OPT_MBPS               = 17, 
    98     INDEX_OPT_TOPSPEED           = 18, 
    99     INDEX_OPT_ONEATATIME         = 19, 
    100     INDEX_OPT_PPS_MULTI          = 20, 
    101     INDEX_OPT_PID                = 21, 
    102     INDEX_OPT_VERSION            = 22, 
    103     INDEX_OPT_LESS_HELP          = 23, 
    104     INDEX_OPT_HELP               = 24, 
    105     INDEX_OPT_MORE_HELP          = 25, 
    106     INDEX_OPT_SAVE_OPTS          = 26, 
    107     INDEX_OPT_LOAD_OPTS          = 27 
     88    INDEX_OPT_PRELOAD_PCAP       =  8, 
     89    INDEX_OPT_CACHEFILE          =  9, 
     90    INDEX_OPT_INTF1              = 10, 
     91    INDEX_OPT_INTF2              = 11, 
     92    INDEX_OPT_LISTNICS           = 12, 
     93    INDEX_OPT_LOOP               = 13, 
     94    INDEX_OPT_PKTLEN             = 14, 
     95    INDEX_OPT_LIMIT              = 15, 
     96    INDEX_OPT_MULTIPLIER         = 16, 
     97    INDEX_OPT_PPS                = 17, 
     98    INDEX_OPT_MBPS               = 18, 
     99    INDEX_OPT_TOPSPEED           = 19, 
     100    INDEX_OPT_ONEATATIME         = 20, 
     101    INDEX_OPT_PPS_MULTI          = 21, 
     102    INDEX_OPT_PID                = 22, 
     103    INDEX_OPT_VERSION            = 23, 
     104    INDEX_OPT_LESS_HELP          = 24, 
     105    INDEX_OPT_HELP               = 25, 
     106    INDEX_OPT_MORE_HELP          = 26, 
     107    INDEX_OPT_SAVE_OPTS          = 27, 
     108    INDEX_OPT_LOAD_OPTS          = 28 
    108109} teOptIndex; 
    109110 
    110 #define OPTION_CT    28 
     111#define OPTION_CT    29 
    111112 
    112113/* 
     
    157158#endif /* ENABLE_VERBOSE */ 
    158159#define VALUE_OPT_ENABLE_FILE_CACHE 'K' 
     160#define VALUE_OPT_PRELOAD_PCAP   8 
    159161#define VALUE_OPT_CACHEFILE      'c' 
    160162#define VALUE_OPT_INTF1          'i' 
    161163#define VALUE_OPT_INTF2          'I' 
    162164#ifdef ENABLE_PCAP_FINDALLDEVS 
    163 #define VALUE_OPT_LISTNICS       11 
     165#define VALUE_OPT_LISTNICS       12 
    164166#endif /* ENABLE_PCAP_FINDALLDEVS */ 
    165167#define VALUE_OPT_LOOP           'l' 
    166168#define OPT_VALUE_LOOP           (DESC(LOOP).optArg.argInt) 
    167 #define VALUE_OPT_PKTLEN         13 
     169#define VALUE_OPT_PKTLEN         14 
    168170#define VALUE_OPT_LIMIT          'L' 
    169171#define OPT_VALUE_LIMIT          (DESC(LIMIT).optArg.argInt) 
     
    174176#define VALUE_OPT_TOPSPEED       't' 
    175177#define VALUE_OPT_ONEATATIME     'o' 
    176 #define VALUE_OPT_PPS_MULTI      20 
     178#define VALUE_OPT_PPS_MULTI      21 
    177179#define OPT_VALUE_PPS_MULTI      (DESC(PPS_MULTI).optArg.argInt) 
    178180#define VALUE_OPT_PID            'P' 
     
    197199#define START_OPT       RESTART_OPT(1) 
    198200#define USAGE(c)        (*tcpreplayOptions.pUsageProc)( &tcpreplayOptions, c ) 
    199 /* extracted from /opt/local/share/autogen/opthead.tpl near line 409 */ 
     201/* extracted from /usr/local/share/autogen/opthead.tpl near line 409 */ 
    200202 
    201203/* * * * * * 
Note: See TracChangeset for help on using the changeset viewer.