Ignore:
Timestamp:
09/15/15 11:24:14 (5 years ago)
Author:
Shane Alcock <salcock@…>
Branches:
4.0.1-hotfixes, cachetimestamps, develop, dpdk-ndag, etsilive, 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:
5765044
Parents:
ebb54a5
Message:

Add BPF filtering back into traceanon

File:
1 edited

Legend:

Unmodified
Added
Removed
  • tools/traceanon/traceanon.cc

    rebb54a5 raafdc55  
    4848        "                       compression algorithm\n"
    4949        "-t --threads=max       Use this number of threads for packet processing\n"
     50        "-f --filter=expr       Discard all packets that do not match the\n"
     51        "                       provided BPF expression\n"
    5052        ,argv0);
    5153        exit(1);
     
    286288        libtrace_callback_set_t *repcbs = NULL;
    287289        int exitcode = 0;
     290        char *filterstring = NULL;
     291        libtrace_filter_t *filter = NULL;
    288292
    289293        if (argc<2)
     
    299303                        { "prefix",             1, 0, 'p' },
    300304                        { "threads",            1, 0, 't' },
     305                        { "filter",             1, 0, 'f' },
    301306                        { "compress-level",     1, 0, 'z' },
    302307                        { "compress-type",      1, 0, 'Z' },
     
    305310                };
    306311
    307                 int c=getopt_long(argc, argv, "Z:z:sc:f:dp:ht:",
     312                int c=getopt_long(argc, argv, "Z:z:sc:f:dp:ht:f:",
    308313                                long_options, &option_index);
    309314
     
    344349                                  break;
    345350                        }
     351                        case 'f':
     352                                  filterstring = optarg;
     353                                  break;
    346354                        case 'p':
    347355                                  if (key!=NULL) {
     
    431439        trace_set_perpkt_threads(trace, maxthreads);
    432440
     441        if (filterstring) {
     442                filter = trace_create_filter(filterstring);
     443        }
     444
     445        if (filter && trace_config(trace, TRACE_OPTION_FILTER, filter) == -1)
     446        {
     447                trace_perror(trace, "Configuring input filter");
     448                exitcode = 1;
     449                goto exitanon;
     450        }
     451
    433452        if (trace_pstart(trace, output, pktcbs, repcbs)==-1) {
    434453                trace_perror(trace,"trace_start");
Note: See TracChangeset for help on using the changeset viewer.