summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2016-01-05trafgen: Add option to specify packets sending rateVadim Kochan2-9/+135
Added -b,--rate option in units of: pps/B/kB/MB/kBit/Mbit/Gbit/KiB/MiB/GiB to specify rate at which packets will be sent. Similarly to -t,--gap option the packets will be sent in slow mode with 1 CPU. Tested with ifpps. Signed-off-by: Vadim Kochan <vadim4j@gmail.com> Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2015-12-27build: Use busybox compatible gzip command line optionTobias Klauser1-1/+1
gzip from busybox does not understand the '--best' command line option. Use '-9' instead which is understood by all gzip flavours (checked with GNU, BSD and busybox). Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2015-12-21flowtop: Refresh flows if filter was changed while flows loadingVadim Kochan1-2/+2
Reset do_reload_flows flag before dump flows. It allows to change filter state more dynamically Signed-off-by: Vadim Kochan <vadim4j@gmail.com> Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2015-12-21flowtop: Indicate if 'active' flows mode is selectedVadim Kochan1-0/+4
Show 'Active' filter status if 'a' was pressed. Signed-off-by: Vadim Kochan <vadim4j@gmail.com> Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2015-12-21flowtop: Show selected proto familyVadim Kochan1-9/+18
Show family name in the filter status line. Signed-off-by: Vadim Kochan <vadim4j@gmail.com> Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2015-12-17zsh: trafgen: Add completion for -D/--defineTobias Klauser1-0/+1
Add zsh completion for -D/--define command line option added in commit 126e0038a73b ("trafgen: Added option to pass macro/define for C preprocessor") Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2015-12-17zsh: bpfc: Add completion for -D/--defineTobias Klauser1-0/+1
Add zsh completion for -D/--define command line option added in commit 121119215276 ("bpfc: Add option to pass macro/define for C preprocessor") Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2015-12-17cpp: Constify cpp argv passed to cpp_execTobias Klauser5-8/+8
Pass argv as char *const argv[] as execvp expects it. Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2015-12-17trafgen: Added option to pass macro/define for C preprocessorVadim Kochan4-7/+24
Add -D,--define option which allows to pass multiple macro/defines which can be used in trafgen script (e.g. by #ifdef ). Signed-off-by: Vadim Kochan <vadim4j@gmail.com> Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2015-12-17bpfc: Add option to pass macro/define for C preprocessorVadim Kochan3-6/+20
Add -D,--define option to pass macro/define for C preprocessor (e.g. to use #ifdef's within bpf file). Option allows to pass multiple -D,--define options. Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
2015-12-17str: Add helper to extend dynamically argv listVadim Kochan2-0/+22
Add argv_insert function to dynamically insert string into argv list. Also added argv_free func to easy free dynamically allocated argv list. Signed-off-by: Vadim Kochan <vadim4j@gmail.com> Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2015-12-17cpp: Allow to pass additional cpp optionsVadim Kochan4-12/+33
Extend cpp_exec function with args parameter to specify additional cpp options (like -D). Signed-off-by: Vadim Kochan <vadim4j@gmail.com> Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2015-12-17cpp: Use new proc_exec function to invoke cppVadim Kochan2-5/+11
Replace 'system' call by proc_exec function from proc.c module. It allows to easy extend cpp invoking with additional options (like -D) in more secure way. Signed-off-by: Vadim Kochan <vadim4j@gmail.com> Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2015-12-17proc: Add function to execute process with argv listVadim Kochan2-0/+28
Add proc_exec function which executes given process with argv list via fork + execvp. It allows to replace 'system' call approach which is used for invoking cpp and securely extend it with additional options like -D. Signed-off-by: Vadim Kochan <vadim4j@gmail.com> Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2015-12-14astraceroute: Use proper type for ctx.sd_lenTobias Klauser1-1/+2
The sd_len member of struct ctx stores a copy of struct addrinfo member ai_addrlen which is of type socklen_t. Also it is used in a sendto() call which also expects a socklen_t. Adjust sd_len to be socklen_t too. Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2015-12-14zsh: trafgen: Add missing backspaceTobias Klauser1-1/+1
The zsh completion of trafgen is missing a backspace after the -t/--gap option which leads to the completion not working correctly. Fix it. Signed-off-by: Tobias Klauser <tobias.klauser@zhinst.com>
2015-12-10build: misc: Adjust coverity scanner URLTobias Klauser1-4/+8
The URL and one form name for the coverity scanner changed, adjust our coverity target accordingly. Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2015-11-29AUTHORS: Add Reiner for his contributionTobias Klauser1-0/+1
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2015-11-29build: Make the build reproducibleReiner Herrmann1-1/+1
Ensure a stable link order independent of the configured locale in order to make the build reproducible. Patch from Reiner Herrmann, submitted via the Debian Bug Tracker (#806547). Reference: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=806547 Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2015-11-27netsniff-ng: nlmsg: Remove unnecessary empty linesTobias Klauser1-7/+0
Remove empty lines in switch/case after break in genl_print_ctrl_attrs to be consistent with coding style in the rest of the file. Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2015-11-27netsniff-ng: nlmsg: Print genl ops & mcast groups attributesVadim Kochan1-14/+92
Dump Generic netlink ops & mcast groups nested attributes. Signed-off-by: Vadim Kochan <vadim4j@gmail.com> Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2015-11-25bpfc: Check yyin against NULL before calling fclose() on itTobias Klauser1-1/+1
Follow 3f2f363485d3 ("trafgen: Make sure yyin is set before close it") and check the yyin pointer against NULL before attempting to call fclose() with it. Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2015-11-25trafgen: Make sure yyin is set before close itVadim Kochan1-1/+1
In case if cpp failed then it is possible that trafgen may hang on closing uninitialized yyin. Signed-off-by: Vadim Kochan <vadim4j@gmail.com> Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2015-11-24trafgen: Preprocess packets directly after compilingTobias Klauser1-4/+2
No need to duplicate the call to preprocess_packets(), just call it directly after compile_packets()/compile_packets_str(). Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2015-11-24trafgen: Fix error message if no packet configuration is givenTobias Klauser1-1/+1
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2015-11-24cpp: Use /tmp folder for output filesVadim Kochan1-8/+5
There might be a case when input file is located in read-only directory and cpp fails when it tries to create output file there, so use /tmp folder for that as usually it should be writeable for any user. Signed-off-by: Vadim Kochan <vadim4j@gmail.com> Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2015-11-24trafgen: Invoke C preprocessor from cpp.c moduleVadim Kochan2-12/+3
Use cpp_exec func to invoke C preprocesor. Signed-off-by: Vadim Kochan <vadim4j@gmail.com> Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2015-11-24bpfc: Invoke C preprocessor from cpp.c moduleVadim Kochan2-12/+7
Use cpp_exec func from cpp.c module to invoke C preprocessor. Signed-off-by: Vadim Kochan <vadim4j@gmail.com> Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2015-11-24cpp: Add cpp.c module to invoke C preprocessorVadim Kochan2-0/+33
Add cpp_exec func to invoke C preprocessor which allow to change the logic in one place only. Signed-off-by: Vadim Kochan <vadim4j@gmail.com> Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2015-11-24flowtop: Add runtime commands to filter flows by protoVadim Kochan1-6/+65
Add U/T/I/D/S runtime commands (same like for command line) to filter flows by UDP/TCP/ICMP/DCCP/SCTP proto. Signed-off-by: Vadim Kochan <vadim4j@gmail.com> Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2015-11-16AUTHORS: Add two new contributorsTobias Klauser1-0/+2
Add Ken-ichirou MATSUZAWA and Martin Hauke to the list of contributors. Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2015-11-16bpfc: Do not panic if bpf file is not validVadim Kochan1-4/+9
If bpf file is not valid then cpp generated file is not deleted because panic() func is invoked. Signed-off-by: Vadim Kochan <vadim4j@gmail.com> [tk: Move exit label to the correct place] Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2015-11-16netsniff-ng: nlmsg: Check message length before dissect rtnlVadim Kochan1-0/+12
Do not print rtnl message if there is only nlmsg header, which is happen when dump all rtnl table. Signed-off-by: Vadim Kochan <vadim4j@gmail.com> Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2015-11-16netsniff-ng: nlmsg: Rename attr_fmt to rta_fmtTobias Klauser1-38/+37
Rename attr_fmt to rta_fmt as it uses rtattr struct. Signed-off-by: Vadim Kochan <vadim4j@gmail.com> Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2015-11-16netsniff-ng: nlmsg: Print generic netlink ctrl family infoVadim Kochan1-13/+158
Add dissection of basic Netlink Generic Controller family info. Signed-off-by: Vadim Kochan <vadim4j@gmail.com> Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2015-11-16netsniff-ng: nlmsg: Print not dissected attribute type numberVadim Kochan1-1/+12
Print not handled attributes which will be helpful to indicate such attributes and add dissection code. Signed-off-by: Vadim Kochan <vadim4j@gmail.com> Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2015-11-16flowtop: Add header line with tool name & versionVadim Kochan1-6/+21
Add header bar to be symmetric to the footer. Signed-off-by: Vadim Kochan <vadim4j@gmail.com> Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2015-11-16lookup: Return const char * from all lookup functionsTobias Klauser7-16/+17
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2015-11-16lookup: Convert __do_lookup_inline to functionTobias Klauser1-13/+13
Make __do_lookup_inline an inline function and shorten its name to __lookup_inline. Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2015-11-16lookup: Use lookup module for OUI lookup as wellTobias Klauser12-148/+23
Do not needlessly duplicate code between the oui and the lookup module. Instead, add an additional lookup table for OUIs to the lookup module. Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2015-11-15lookup: Keep track of lookup table initialization stateTobias Klauser1-8/+15
Make sure every lookup table is only initialized once. Preparatory patch before moving OUI lookup. Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2015-11-15lookup: Make lookup type and function names more genericTobias Klauser4-41/+43
It's not only ports we look up, make the names a bit more generic. Preparatory patch before moving OUI lookup to the lookup module. Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2015-11-11geoip: Use correct line endings in HTTP requestTobias Klauser1-2/+2
The lines in an HTTP request should all end with \r\n (CRLF) according to RFC 2616, so use these consistently. Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2015-11-11geoip: Don't NULL-terminate download bufferTobias Klauser1-2/+0
The end of the buffer might already contain part of the data payload. Setting the last byte to 0 will thus corrupt the gz file, leading to failed decompression (or previously, to invalid GeoIP database files). The NULL-termination is not necessary in this case, so just omit it. Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2015-11-11geoip: Error out if file is not inflated completelyTobias Klauser1-0/+3
In case the downloaded gzip file got corrupted somehow, the gzread would fail, leaving part of the file uninflated and thus leading to a corrupted GeoIP database. This can in the worst case lead to a crash in libgeoip which in turn causes netsniff-ng/flowtop/astraceroute to crash. So better panic() if we fail to uncompress. Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2015-11-11netsniff-ng: nlmsg: Explicitly cast RTA_LEN to an intTobias Klauser1-4/+4
It looks like the result of RTA_PAYLOAD() can be of different type depending on architecture/kernel header version/... In order to prevent warnings related to non-matching types, just explicitly cast RTA_LEN to an int, since it can't possible be larger than the unsigned short of rta_len anyhow and it is used as an in in the call to device_addr2str(). Fixes: 664dcf4217 ("netsniff-ng: nlmsg: Use correct pritnf format specifier for int") Reported-by: Vadim Kochan <vadim4j@gmail.com> Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2015-11-10netsniff-ng: tcp: Don't print trailing space after last TCP flag nameTobias Klauser1-16/+18
Check whether there were flags printed before and if this is the case, add a space before printing the next flag. Nicely wrap this all in a macro. Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2015-11-10netsniff-ng: nlmsg: Use correct pritnf format specifier for intTobias Klauser1-1/+1
RTA_LEN is defined as an alias of RTA_PAYLOAD which is defined as: #define RTA_PAYLOAD(rta) ((int)((rta)->rta_len) - RTA_LENGTH(0)) Thus use the correct format specifier %d for int instead of %lu. Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2015-11-10netsniff-ng: Use correct printf format specifier for uint64_tTobias Klauser1-1/+1
ctx->pkts_recvd_last and ctx->pkts_drops_last are uint64_t, so use the PRIu64 format specifier to print them. Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2015-11-10bpfc: man: Add example how to filter rtnetlink by attributesVadim Kochan1-0/+24
Example shows how to filter rtnetlink messages by ifindex & oper state. Signed-off-by: Vadim Kochan <vadim4j@gmail.com> Signed-off-by: Tobias Klauser <tklauser@distanz.ch>