Age | Commit message (Collapse) | Author | Files | Lines |
|
Support for generating ICMPv4 headers using the 'icmp4()/icmpv4()'
trafgen generation functions.
Fields supported:
type Set type field (default 0: Echo reply)
Supported keywords: echorequest, echoreply
code Set code field (default 0)
csum Set checksum field (calculated by default)
mtu Set mtu field for destination unreachable (default 0)
seq Set sequence field (default 0)
id Set identifier field (default 0)
addr Set redirect address (default 0.0.0.0)
Example (send ping request):
{ icmpv4(echorequest, seq=1, id=1326) }
Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
[tk: squash commits, consistency between functionality and docu]
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
After splitting etype & type to different tokens it is possible
to use 'type' for ICMP type field which is used by RFC.
Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
Split [e]type to separate 'type' & 'etype' keywords,
the reason is that 'type' might be used in other protocol
headers (e.g. ICMP).
Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
Add Hisao Tanabe to AUTHORS for commit b0230ce4 ("man: netsniff-ng: Fix
usage example description").
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
Fix the input device name that is used in the description of the usage
example.
Signed-off-by: Hisao Tanabe <xtanabe@gmail.com>
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
It might be more understandable to print unsupported
pcap magic number in hexadecimal format.
Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
Fix warnings such as the following, reported by lintian [1]:
usr/share/man/man8/mausezahn.8.gz 106: warning: macro `'own''' not defined
[1]
https://lintian.debian.org/maintainer/daniel.borkmann@alumni.ethz.ch.html#netsniff-ng
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
Update README.devel with information about the Travis CI Coverity
integration.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
Move the coverity_scan configuration to the exisint, otherwise the apt
packages won't get installed it seems.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
Set up Travis CI integration for Coverity scan according to
https://scan.coverity.com/travis_ci
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
The parameters to tpacket_uhdr_vlan_tci() and tpacket_uhdr_vlan_proto()
might be unused, depending on the definition of HAVE_TPACKET3 and
TP_STATUS_VLAN_TPID_VALID. Thus, mark them with __maybe_unused to
prevent -Wunused-parameter warnings.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
setup_ring_layout_generic() takes an "int sock" parameter but never uses
it. Remove it to prevent -Wunused-parameter warnings.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
Mark the nf_conntrack_msg_type parameter to flow_dump_cb with
__maybe_unused to prevent a warning when compiling with
-Wunused-parameter.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
This fixes the following -Wunused-parameter warning:
ifpps.c: In function ‘on_panic_handler’:
ifpps.c:1128:36: warning: unused parameter ‘arg’ [-Wunused-parameter]
static void on_panic_handler(void *arg)
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
The only place where flow_list_update_entry() is called passes the
global flow_list anyway, so use the passed argument instead of the
global. This fixes the following -Wunused-parameter warning:
flowtop.c: In function ‘flow_list_update_entry’:
flowtop.c:1438:53: warning: unused parameter ‘fl’ [-Wunused-parameter]
static int flow_list_update_entry(struct flow_list *fl, struct nf_conntrack *ct)
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
The WINDOW *screen parameter to draw_help() and draw_footer() is unused,
so remove it.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
Remove unused "screen" & "line" parameters from draw_flow_entry().
Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
Use mkstemps() to safely create a unique temporary file instead of using
rand() to manually create a (potentially unsafe) temporary filename.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
Use the mkostemp_or_die() wrapper introduced in commit a87f181bd836
("ioops: Add mkostemp_or_die") to safely create a unique temporary file
instead of using rand() to manually create a (potentially unsafe)
temporary filename.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
Add a panic()ing wrapper for mkostemp(3). This will be used to safely
create unique temporary files.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
Support for generating simple ICMPv6 headers using the 'icmp6()/icmpv6()'
trafgen generation function.
Fields supported:
mtype Message type (default: 0)
Supported keywords: echorequest, echoreply
code Code (default: 0)
csum Message checksum (calculated by default)
Examples:
{ eth(), ipv6(daddr=::1), icmpv6(echorequest), 42, 42, 0, 0 }'
If not explicitely specified, the lower header is initialized as Ethernet.
Suggested-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
Support for generating simple IPv6 headers using the 'ip6()/ipv6()'
trafgen generation function.
Fields supported:
ver|version Version (default: 6)
tc|tclass Traffic class (default: 0)
fl|flow Flow Label (default: 0)
len|length Payload length (calculated by default)
nh|nexthdr Type of next header (default: 0)
hl|hoplimit|ttl Hop Limit, TTL (default: 0)
sa|saddr Source IPv6 address (default: device address)
da|daddr Destination IPv6 address (default: 0:0:0:0:0:0:0:0)
Examples:
{ eth(), ipv6(daddr=1:2:3:4:5:6:7:8) }
{ ipv6(tc=2, hl=3, daddr=::1) }
{ eth(), ipv6(nh=58, sa=2001:db8::, da=::1), 128, 0, 0x52, 0x03, 0, 0, 0, 0 }
If not explicitely specified, the lower header is initialized as Ethernet.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
Show how the trafgen header generation functions can make a trafgen
script much more concise by rewritting Jesper's example using these
functions.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
In some cases we use panic() in situations where the error could only
happen due to an implementation error. Use bug() there as it is more
applicable, as panic() is mainly used to report system call errors.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
There is no point in outputing the true no-op command, as it will only
clutter the logs.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
Add another tip how to activate conntrack mechanism by
loading required kernel modules via modprobe. This info
might be used to make these modules load automatically at startup.
Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
Simplify screen refresh logic by removing tricky delay
logic which freezes a little key pressing.
Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
Don't use refresh() & clear() as we draw entire screen
and flows table will be filled with empty rows.
Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
Fill table with empty rows while clearing.
It will allow to get rid of clear() & refresh() each time
before print the flows list.
Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
Used new UI table API for flows printing to make it more
generic. Also it will allow to have same code to dump
flows in text mode.
Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
Add new module ui.c which is responsible to render
different kinds of UI widgets - tables, etc.
Implemented generic API for print table-like list of elements.
This table API might be used for print flows in curses or text mode.
Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
[tk: change bug_on(true) to bug(), whitespace fix]
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
Add definitions for list structure & functions without cds_/CDS_ prefix.
The purpose of this change is to use such linked-list in sorting or
ordering some kind of items (e.g. flowtop - flows, columns).
Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
In order to catch problems with missing libGeoIP/zlib stubs already in
Travis CI, use the DISABLE_{GEOIP,ZLIB} variables to the configure
script in all possible combinations during the CI build.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
Allow users to explicitely disable linking against libgeoip and zlib, as
they are completely optional, e.g:
DISABLE_GEOIP=1 ./configure && make
DISABLE_ZLIB=1 ./configure && make
This change should also help to increase build coverage once we use
these options in the Travis CI setup.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
When looking at config.h it should be obvious which features were
enabled and disabled, so put a comment there in cased they are disabled.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
Commit f61f39d ("geoip: Allow to get country 3-code") added
new helpers without considering HAVE_GEOIP definition.
Fixed by adding dummy functions for get 3-code country name
in case if HAVE_GEOIP is not defined.
Tested only by manualy disabling HAVE_GEOIP in config.h
and geoip.c compilation in Config file.
Fixes: f61f39d (geoip: Allow to get country 3-code)
Reported-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
proto_lower_header() is the only caller for proto_current_header() which
already checks header_count > 0, so inline proto_current_header() and
omit the additional check and a panic() which thus can never be
triggered.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
Use new colors definitions via enum variables instead of
numbers which helps to undrerstand better which kind
of color is used.
Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
Added macros which allow easy specify color pair like:
INIT_COLOR(YELLOW, BLACK);
COLOR(YELLOW, BLACK);
COLOR_ON(YELLOW, BLACK);
by calculating pair id via generic formula. Added shorter
color names via new enum.
Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
Add 's' key option to toggle source peer info at runtime,
behaviour is the same like for '-s' command line option.
Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
Changed flows list layout to look more a top-like output
with header and in 1 line. When -s option is specified
then layout changes to 2 lines view including with src peer
info and dst under it on next line.
Also shortified flow state names to allocate less space.
Removed presenter_get_port be cause ports are printed for both peers
separately.
The flow duration time is printed in very short form in one of the
units:
XXd - days
XXh - hours
XXm - minutes
XXs - seconds
the reason is that it is enough to have actually generic understanding
about flow time in the biggest time unit.
Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
Add func to get country code-3 name by IPv4/6 address
Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
Add Arch3y for a0f448c and f5ae2cd (PR #156).
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
Fix the following warnings when building with glibc>=2.20:
proc.c:1:0: warning: "_GNU_SOURCE" redefined
ioops.c:1:0: warning: "_GNU_SOURCE" redefined
xmalloc.c:8:0: warning: "_GNU_SOURCE" redefined
Signed-off-by: Arch3y <arch3y@archstrike.org>
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
Fixes depracation issues for glibc>=2.20 if we define _BSD_SOURCE we
must also define _DEFAULT_SOURCE as well
from tprintf.c
warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"
from astraceroute.c
warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"
Signed-off-by: Arch3y <arch3y@archstrike.org>
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
This allows a user to pass a range of IPv6 addresses, either like:
fec0:5000::1-fec0:5000::100
or in CIDR notation:
fec0:5000::0/112
These can be used for the -A and/or -B command-line options.
The largest range that can be used is a /64. In other words, if using CIDR
notation, the masklen must be <= 128 and >= 64.
Signed-off-by: Tommy Beadle <tbeadle@gmail.com>
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
Add syntax & fields description for 'mpls()' function,
also:
1) add line break for VLAN header notes
2) fix ip -> ipv4 in UDP echo example
3) consistent spelling of EtherType
Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
Add 'mpls()' function for creating MPLS header with parameters:
lbl|label MPLS label
last Indicates the last label on MPLS stack
tc|tclass|exp Traffic Class (TC)
ttl TTL (Time To Live)
Currently only unicast MPLS is supported, but multicast might be set
via 'eth()' function.
Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|