It has been almost a year now since our last release, we realize this is
quite some time, but it has paid off. As most development on netsniff-ng
happened during spare time, we really haven't been lazy. ;-) Furthermore,
Tobias Klauser has joined as a new maintainer for netsniff-ng. It is now
maintained by Tobias Klauser and Daniel Borkmann together.
So here's a rc1 release that we throw at you with more than 1,000 changes.
During that time, netsniff-ng has matured quite a lot. Expect a few smaller
follow-up rc releases in the near future before the final 0.5.8 will be
released. There's still some work on curvetun that we need to do. In case
you don't need curvetun, feel free to use this one already. We hope we
haven't forgotten some of the highlights to mention. In any case, just go
ahead and try it out.
Thanks !
--
netsniff-ng 0.5.8-rc1 has been released to the public (
http://netsniff-ng.org/).
It can be fetched via Git:
git clone git://
github.com/borkmann/netsniff-ng.git
git checkout v0.5.8-rc1
Or via HTTP:
wget
http://pub.netsniff-ng.org/netsniff-ng/netsniff-ng-0.5.8-rc1.tar.gz
The release can be verified via Git (see README):
git tag -v v0.5.8-rc1
Major high-level changes since the last release are:
1) Introduction of a new build system based on classical make and a customized
configure file, which eventually removes the previous cmake system once and
for all and avoids using autotools. Support for cross-compilation and
various other options such as debug, distribution or hardening builds.
From Tobias Klauser and Daniel Borkmann.
2) Inclusion of the mausezahn high-level traffic generator. This one is
unmaintained, so we decided to take up maintainer-ship and continue
development on it. It's currently in our staging area as the code is
not yet in a quality that we accept, but that will change over the next
releases. From Tobias Klauser and Daniel Borkmann.
3) Complete rewrite of all man-pages and removal of Documentation section.
All important things that need to be said can now be found in our man-pages.
Written by Daniel Borkmann, many many improvements by Tobias Klauser,
Jon Schipp, Kartik Mistry and Stephen Wadeley.
4) Initial zsh autocompletion support for all tools. From Hideo Hattori.
5) PF_PACKET TPACKET_V3 conversion of netsniff-ng pcap capturing handler.
This results in a better capturing throughout as zero-copy data is stored
linear instead of slot-wise, which will result in fewer page cache misses.
From Daniel Borkmann.
6) ifpps now can handle an arbitrary number of CPUs and no longer fails on
systems with more than 32 CPUs. By default now only the data for the 5
most-used CPUs is displayed, as well as the least-used CPU and average
values (median can optionally be displayed). From Tobias Klauser and
Daniel Borkmann.
7) Support for different pcap types (tcpdump-capable, tcpdump-capable with ns
resolution, Alexey Kuznetzov's pcap format, netsniff-ng's pcap format),
introduction of a netsniff-ng internal pcap format with the following
features: timeval in nanoseconds, the original packet length, the captured
packet length, the timestamp hw/sw source, the interface index (sll_ifindex),
the packet's protocol (sll_protocol), the packet type (sll_pkttype) and
the hardware type (sll_hatype) and support for multiple link-types, from
Daniel Borkmann.
8) Add support for raw 802.11 in netsniff-ng and in trafgen, which also allows
injection, from Daniel Borkmann. Next to that we have added a packet dissector
for raw 802.11 frames. It is currently in an initial stage and will be
further developed, from Markus Amend.
9) Add a new dissector for the Link Layer Discovery protocol, from
Tobias Klauser.
10) Make astraceroute independant of active geoip lookups to Team CYMRU and
rather use geoip library in order to not "leak" any traffic, from Daniel
Borkmann.
11) Geoip database update mechanism for astraceroute, flowtop and netsniff-ng,
from Daniel Borkmann.
12) Let netsniff-ng's dissector use geoip libary, from Daniel Borkmann.
13) Added several Linux extensions for bpfc and the possibility to use
cpp as a preprocessor like in trafgen. Moreover, added support for
different output formats (e.g. for usage with xt_bpf). From Daniel
Borkmann.
14) Minimal stand-alone BPF JIT image disassembler, from Daniel Borkmann.
15) Support for tcpdump-like high-level filter expressions next to bpfc
filters in netsniff-ng, from Daniel Borkmann.
16) trafgen got a new, powerful configuration language, it's configs can
be passed through cpp, and it is now multithreaded. Moreover, trafgen
also got a built-in protocol fuzzer. From Daniel Borkmann.
17) Last but not least, numerous code cleanups and code simplifications all
over the place as well as smaller features not mentioned here, from Tobias
Klauser and Daniel Borkmann, and smaller fixes by Stefan Seering, Jesper
Dangaard Brouer, Jim Binder, Peter Stuge, Teguh, Scott Moeller, Jon Schipp.
Contributions since last release:
914 Daniel Borkmann
158 Tobias Klauser
49 Markus Amend
16 Stephen Wadeley
13 Jon Schipp
6 Scott Moeller
4 Kartik Mistry
2 Hideo Hattori
2 Teguh
1 Peter Stuge
1 Stefan Seering
1 Jesper Dangaard Brouer
1 Jim Binder
Git changelog since last release (note: only since new Git history):
Daniel Borkmann (313):
all: import netsniff-ng 0.5.8-rc0 source
build: Find libncurses by using pkg-config
build: add make release target
docs: add initial workflow document
build: get latest release tag via git-describe
build: minor: do announcement before tagging
docs: update git mirror urls
geoip: make sure we null-terminate after read
netsniff-ng: do not leak file descriptors on exit
geoip: reorder statements, so that file handles are closed first
flowtop: close dir handle first before returning back
astraceroute: fix getnameinfo arguments
netsniff-ng trafgen: check return value of pull_and_flush_ring
netsniff-ng: if we cannot get intermediate pcap statistics, panic
ring: check return value of setsockopt
xutils: check various return values
flowtop: rcu: omit rcu_assign_pointer
misc: remove dead/unreachable code from switch statements
hash: simplify code and fix whitespacing
ifpps: remove state from enum, since never used
ring: don't care if we cannot active hw timestamping
build: respect PREFIX_STRING on config file locations
docs: AUTHORS: add Peter Stuge for his commit
bpfc: support different output formats
trafgen: add csumicmp for ICMP checksum calculation
dissector_fuzz: minor: add header file description
nacl scripts: include common header and rename build_nacl.sh
bpfc: filter: add poff ancillary operation
ring: first unmap, then destroy ring buffer
trafgen: fix bug in packet scheduling
trafgen: lexer/parser: fix cpu() selection and whitespacing
trafgen: parser: add possibility for negative numbers
trafgen: update help description
trafgen: lexer: return if no needle found
trafgen: parser: do not enforce whitesapce
ring: purge timer before we unmap tx ring buffers
make: when mrproper, also remove Git tree unrelated files
make: also credit involved people in mail message
man: add ifpps.8 man page
netsniff-ng: also capture if NIC is currently down
man: man page updates for bpfc, curvetun
man: finish bpfc man page
man: start netsniff-ng.8 man page
man: netsniff-ng: finish usage examples and add filter examples
man: netsniff-ng: add description paragraph and some options
man: finish netsniff-ng man page
man: ifpps: add bugs section
trafgen: do not care if device is running yet
pcap_io: introduce init_once helper that is called with priviledges
trafgen: parser: fix regression on last pkt element
netsniff-ng: mlock: only lock current and future pages when root
man: netsniff-ng: include known bug from docs
docs: move some of them to the root directory
docs: readme: add steps to verify a Git release
build: currently do not copy docs to shared docs
docs: install: update mausezahn location
gitignore: minor: remove obsolete file
man: netsniff-ng: add geoip db mirror conf file
man: add flowtop's man page
ring_tx: user_may_pull_from_tx: fix check for user frame
man: netsniff-ng: refine ethtool section
netsniff-ng: remove set_sockopt_hwtimestamp call
ring: tstamp: no need for tx ts
dissector: show sw/hw timestamp source
man: netsniff-ng: add documentation for option
man: trafgen: add initial version
man: trafgen: finish options section
man: trafgen: configuration syntax section
man: trafgen: finish syntax section
man: trafgen: finish trafgen manpage
misc: move file to source root
oui: minor: rename update file
make: rename trafgen stddef.h file
bpf_comp: minor: fix linebreak
man: start man page of astraceroute
man: finish astraceroute man page
docs: install: mention recommended tools
make: force to overwrite symlink
pcap: let netsniff-ng also record pkt timestamp source
man: add description about different pcap formats
pcap_io: minor: fix some quirks
trafgen: lexer: also allow short forms for hex and binary
man: trafgen: update documentation for hex, bin forms
docs: minor: fix mentioning of Documentation/
make: allow to overwrite CFLAGS, CCACHE
vim: add bpf syntax highlighting file
trafgen: lexer: return original string if no shellcode
ring: break out timestamping since not directly related
zsh: add netsniff-ng zsh auto completion support
staging: add mausezahn staging directory
docs: update install document to current repo status
build: remove some unused stuff and clean up a bit
docs: add note about zsh and vim files
build: install man pages
man: add mausezahn man-page
Merge branch 'master' of github.com:borkmann/netsniff-ng
docs: authors: add Stephen Wadeley for his man page patches
mac802.11: only wait for nl ack if unfinished
mausezahn: do not show version in prompt
man: mausezahn: add howto for interactive mode
man: mausezahn: minor updates all over
man: curvetun: add option and usage example section
man: curvetun: finish up initial draft of curvetun
curvetun: use free instead of xfree
docs: minor: say it's staging area, not a branch
bpfc: allow bpf programs to be passed to cpp
bpfc: minor: do a line-break before 80-column
make: include build name
misc: fix some minor compile warnings all over
make: minor update in cflags
make: add HARDENING build option
man: netsniff-ng: add note about multithreading
make: minor cleanups in Makefile
mausezahn: show long version on cli
man: minor: astraceroute: add .PPs
man: minor: flowtop: add .PPs
man: minor: trafgen: add .PPs and modify BUGS section
man: mausezahn: initial formatting and fixups
bpf: add minimal BPF JIT emitted image disassembler
docs: readme: just shortly also mention JIT disassembler
ifpps: beautify output with > 10 cpus
ifpps: fix bug_on trigger when parsing irq number
man: ifpps: document ifpps behaviour when CPU > 10
ifpps: minor: minor output formatting adaption
ifpps: remove unused function snr_to_str
ifpps: also show total number of cpus
ifpps: support mq devices in /proc/interrupts
ifpps: fix segfault in terminal mode
make: allow to append CFLAGS in addition to overwrite
make: add DISTRO=1 for compilation on distributions
docs: move sponsor names into authors
docs: minor: fix whitespacing in copying file
conf: oui: run oui-update.py script over config file
ring: remove fanout related bits
ring: set_sockopt_tpacket: rename to set_sockopt_tpacket_v2
Merge branch 'master' of github.com:borkmann/netsniff-ng
ring: add set_sockopt_tpacket_v3 and refactor others
ring: minor: remove define since only used once
ring: move poll related fallback define to built_in.h
ring: add necessary structures and helper functions for v3
ring: prepare setup_rx_ring_layout for support in v2/v3
ring: setup_{rx,tx}_ring_layout: use bool for jumbo_support
ring: implement setup of tpacket v3 ring
ring: fix wrong error message text in __get_sockopt_tpacket
ring: move duplicate/generic code parts from rx/tx into ring.c
ring: setup frame structure for v2/v3 in a generic way
ring: netsniff-ng: migrate capture only to TPACKET_V3
ring_rx: if v3, free it in kernel space during close
netsniff-ng: enable jumbo frames on default in tpacket_v3
man: netsniff-ng: update man page to document when -J is needed
netsniff-ng: minor: update help description
irq: break out from xutils and save + restore
netsniff-ng: v3: fix packet accounting on --num
iosched: break out io scheduling functions from xutils
xutils: break out string handling and locking
cpus: break out cpu related functions from xutils
xutils: remove unused declaration
corking: break out udp/tcp cork functions
cpusched: remove useless header comment
trie: remove useless header comment
corking: use bool instead of int
rnd: break out prng from xutils
xio: refactor fopencookie related functions
xio: add ioexact operations
xio: rename xio to ioops and reduce its includes
irq: rename device_bind_irq_to_cpu to device_set_irq_affinity
xutils: break out promisc mode functions
xutils: move device management functions out of xutils
privs: move drop_privileges out of xutils
proc: move out process specific management functions
sock: add socket management functions
link: add link management functions
sig: add signal handling functions
timer: add time management functions
xutils: eliminate xutils, move rest to epoll2
stun: add header file
rnd: move entropy source definition to rnd
tstamping: add header file for packet timestamping
misc: cleanup header comments
crypto: add crypto header with includes and defines
rnd: add gen_key_bytes to generate key from good entropy source
ioops: Add {read,write}_blob_or_die for reading/writing binary blobs
keypair: Add routines to generate and verify a keypair
ioops: fix build error by renaming 'len' variable
bpf: split up instructions and extensions from header
curve: move taia related functions into own header
taia: move taia evaluation out of curve.
curve: also really remove taia functions from here
bpfc: also allow to load skb len into X
ifpps: minor: fix ncurses alignment
taia: minor: small cleanup and comment
taia: minor: add comment about window
irq: do not process non-existant irq number of lo
curve: move selftest to own file
keypair: do selftest before generating and verifying keypair
man: astraceroute: minor: remove two trailing whitespaces
stun: memset saddr before binding
keypair: add missing include file
stun: close socket before returning in error case
cpus: let it always return an unsigned int and bail out on error
flowtop: set bug if screen is NULL
netsniff-ng: walk_t3_block: prevent fd from double close
ioops: misc: add dup{,2}_or_die to ioops
ioops: mark failure path as unlikely
man: curvetun.8: minor: fix typo adress
man: mausezahn.8: minor: fix trailing whitespace
Merge branch 'man'
man: trafgen: fix remaining `` occurences
trafgen: fix -n1 bug for packet scheduling
trafgen: check offsets for all kind of csums
trafgen: fix checksumming in trafgen example config
bpf: add missing decode for poff
man: bpf: also mention that bpfc can be used for seccomp-BPF
man: bpfc: add example of loadable x86_64 seccomp-BPF filter
bpfc: stress that also seccomp-BPF can be generated with bpfc
docs: readme: also stress bpf seccomp in the README page
bpf: very minor style fixups and paths marked unlikely
misc: remove two header comments
cpusched: cleanups, refactoring and fix one bug
curve: rename encode/decode buffers
curve: simplify curve25519_proto_init and others
curve: curve25519_encode/curve25519_decode: simplify crypto transforms
curve: fix crypto_box_beforenmbytes length
curve: minor: fix up formatting
curve: minor: fix typo in variable
curve: directly include config.h for FILE_PRIVKEY
curve: curve25519_tfm_alloc/curve25519_tfm_free helpers
curve: free buffers in reverse order to allocation
bpf: use Linux' define of BPF_MAXINSNS
dev: bail out if ifindex could not be retrieved
dev: make paths unlikely, simplify code
die: minor: simplify code a bit
dissector: explicitly init array
man: add colophon to the end of each document.
ioexact: make mayexit a bool
dev: mark paths likely/unlikely
man: netsniff-ng: add section about netlink traffic debugging
netsniff-ng: tpacketv3: 'fix' packet accounting output
man: bpfc: add netlink arp header
man: netsniff-ng: elaborate on capturing netlink traffic
pcap_io: add LINKTYPE_NETLINK for netlink pcaps
pcap: support for various linktypes
dissector: do not panic on unknown hatype
pcap: fix build error
pcap: invoke dev->type to pcap linktype mapper
netsniff-ng: ctx: init and destruct methods for ctx
dev: linktype: use ARPHRD_ETHER for "any" device
conntrack: consolidate all conntrack header includes into conntrack.h
config: check for available databases
config: execute check_libnf_ct function to check for conntrack
config: check for libz
config: check for liburcu
configure: two fixes on dependencies
configure: test also tpacket flags e.g. used in TX_RING
configure: make: misc: update header comment
configure: netsniff-ng: libpcap is not a hard dependency
configure: when we have all deps rather tell "all tools will be built"
configure: let configure script generate config.h file
all: show git id in --version information
configure: fix multiple issues in build configuration
configure: check for flex and bison
dissector: print hex_ascii combination in unkown linktypes
curvetun: renamed client, server, and management files
curvetun_client: include crypto instead of single nacl header
curvetun_mgmt: consolidate the two mgmt include files into one
docs: authors: move Tobias one position higher
docs: authors: minor: fix spelling mistake
docs: install: simplify dependency description
docs: describe how to build bpf_jit_disasm
make: help: consolidate <toolnames> to <tool>
oui: update oui file from oui-update.py
docs: install: state that we do have an option for distro build
docs: install: recommend gnuplot for ifpps
configure, netsniff-ng: make netsniff-ng's geoip dependency optional
netsniff-ng: fix recognition of -U command line option
configure, netsniff-ng: if no libgeopip, do not link against libz
curvetun: give short note in version info
build: for an -rc release exclude curvetun for now
build: refactor tool specific flags into <tool>/Makefile
dissector: rename __WITH_PROTOS into HAVE_DISSECTOR_PROTOS
man: ifpps: emphasize gnuplot output format
ifpps: align string to format string
ifpps: align avg numbers and remove unit
ifpps: make '+' to '-' sort more clear
link: allow future ethtool speed formats to be supported
ifpps: show kernel version and machine type
ifpps: show machine type only if not in already release name
ifpps: warn about increase -t when high speed
ifpps: align avg on systems with >8 CPUs
configure: fix libnetfilter_conntrack dependency removal
configure: do not use bash's expr match
configure: redirect all compile output to our local config.log
configure: fix wrong whitespacing
bpf_comp: pass NEED_TCPDUMP_LIKE_FILTER through gcc
gitignore: add config.log file to git ignore
ifpps: median: add whitespace padding in one occurence
ifpps: warn when 1Gbit/s and interval < 1sec
ifpps: release stats on exit
ifpps: help: reduce option description to one line
dissector_eth: sparse: fix sparse warning
misc: fix multiple NULL pointer sparse warnings
ring_rx: fix format string sparse warning
trafgen: setup_shared_var: fix couple of things
trafgen: sparse: make seed static
proto_80211_mac_hdr: fix sparse warning
trafgen: setup_shared_var: fix reamainders
sparse: netsniff-ng, trafgen: fix remaining time(0) warnings
trafgen: switch for skipping cpu time statistics on exit
oui-update.py: oui: minor config updates
build: use git describe --always
make: put newline after Git people
ifpps: update options for zsh completion
trafgen: update options for zsh completion
Tobias Klauser (110):
flowtop: Omit return value in flow_entry_get_sain{4,6}_obj()
curvetun: Only close() file descriptor if open
man: netsniff-ng: Fix a typo
man: netsniff-ng: Fix typo of 'privileges'
man: netsniff-ng: Do some wordsmithing
man: flowtop: Fix typo of flowtop's name
dissector: ip_authentication_hdr: Remove trailing whitespaces
dissector: ip_ipv6_mobility_hdr: NULL check before dereference
flowtop: Use size of destination buffer in memcpy
dissector: lldp: NULL check before dereference
geoip: Don't leak file/socket descriptor in error case
xmalloc: Make xfree a two part macro/inline
dissector: igmp: Fix erroneous null pointer check
xutils: Make set_nonblocking() void
man: netsniff-ng: Minor fixes
man: trafgen: Complete documentation for option -p/--cpp
man: trafgen: Minor fixes
man: astraceroute: Make wording in description for --version consistent
man: flowtop: Make wording in description for --version consistent
astraceroute: Mention exit after printing information in built-in help
curvetun: Mention exit after printing information in built-in help
dissector: igmp: Fix another erroneous null pointer check
built_in: Add __noreturn marker
die.h: Add __noreturn attribute to exiting functions
netsniff-ng: Add __noreturn attribute to exiting functions
trafgen: Add __noreturn attribute to exiting functions
astraceroute: Add __noreturn attribute to exiting functions
bpfc: Add __noreturn attribute to exiting functions
curvetun: Add __noreturn attribute to exiting functions
ifpps: Add __noreturn attribute to exiting functions
trafgen: Add __noreturn attribute previously missed
misc: Ignore files generated by cscope/ctags
trafgen: Remove unnecessary reinitialization of icmp packet
tprintf: Rename parameter to avoid shadowing global declaration
ifpps: Convert mem_free/mem_total members of struct ifstat to uint64_t
man: netsniff-ng: Reword a few sentences
ifpps: Don't assume a maximum of 32 CPUs
ifpps: Add myself to the copyright holders in --version/--help
ifpps: Use strtoul() to convert unsigned value
ifpps: Properly zero out allocated stats
ifpps: Allocate cpu dependent stats in one place
netsniff-ng: Add __maybe_unused attribute to timer functions
ifpps: Allow to select number of top hitter CPUs by command line option
man: ifpps: Mention CPU limit in first section and remove BUGS section
ifpps: Rename variable containing top number of CPUs
ifpps: Always display the least heavy hitter CPU
ifpps: Also display min hitter for IRQs
ifpps: Don't re-initialize stats value index counter in CSV mode
ifpps: Don't diff tx_bytes twice
ifpps: Don't calculate diff for stats values not used for relative values
ifpps: Report more detailed memory stats and number of total processes
man: ifpps: Reword a few sentences or make them shorter
ifpps: Rename cpu number parameter to stats_top()
ifpps: Remove unused 'forks' member from struct ifstat
oui: Make parsing of oui.conf more robust
oui: minor: Fix comments
dissector: eth: Make port file parsing more robust
oui: Free allocated record if line is skipped
dissector: eth: Free allocated record if line is skipped
dissector: icmpv6: Fix possible null pointer dereferences
dissector: ip_auth_hdr: Fix possible null pointer dereference
dissector: icmpv6: Fix another possible null pointer dereference
flowtop: Remove unnecessary bug_on() and rework presenter_screen_init()
dissector: icmpv6: Fix yet another possible null pointer dereference
sock: Check return value of setsockopt() in set_tcp_nodelay()
dissector: lldp: Rework capability printing
die: minor: Remove trailing whitespace
conf: oui: run oui-update.py script to update OUI config file
netsniff-ng: Report if HW timestamping is enabled
configure: Add configure script used to detect NaCl
README, INSTALL: minor: Remove trailing whitespaces
gitignore: Ignore generated Config
configure: Check for tpacket, ncurses, libgeoip
ifpps, flowtop: Move ncurses init and end to common module
configure: Add linker flags for ncursestest to correct position
configure: Check for presence of pkg-config and ccache binaries
configure: Improve check for libnl/libnl-genl
Merge branch 'config'
configure: Silence pkg-config calls
configure, Makefile: Fail in Makefile if Config is not complete
INSTALL: minor: Fix typo 'mainling list'
Makefile, INSTALL: Simplify clean/uninstall Makefile targets
configure: Don't redirect output of pkg-config
configure: Fix check for libnetfilter-conntrack
configure: Call a function from zlib in check_zlib()
configure: Call a function from libgeoip in check_libgeoip()
configure: Add check for libpcap
configure, Makefile: Conditionally build tools
README: Adjust mention of sponsors
ifpps: Calculate and show average values across all CPUs
ifpps: Reduce default number of top hitter CPUs to 5
ifpps: Remove unecessary whitespaces in mvwprintw() calls
ifpps: Remove unnecessary memset()
configure: Redirect pkg-config errors to log file
ifpps: Optionally display median values for CPU load and interrupts
ifpps: Update usage with respect to median values
ifpps: Consistently list command line options
ifpps: Correct calculation of median values for CPU load
ifpps: Use unsigned int to store number of CPUs
ifpps: Remove unused parameter to term_csv()
bpf: Use iterator variable of correct type
dissector: Mark unused parameters with __maybe_unused
tprintf: Fix compiler warnings
pcap_mm: Mark unused parameters with __maybe_unused
pcap_io: Use iterator variable of correct type
pcap_io: Remove unused parameter sll from pcap_pkthdr_to_tpacket_hdr()
astraceroute.zsh: Fix typo of ``numeric''
geoip: Fix sign compare warnings
flowtop: Mark unused parameters with __maybe_unused
pcap_sg: Fix various compiler warnings
Stephen Wadeley (16):
man: improvements to language and markup for bpfc.8
man: improvements to language and markup for curvetun.8
man: improvements to bpfc.8, inconsistent use of `` and ''
man: improvements to curvetun.8, inconsistent use of `` and ''
man: improvements to language and markup for ifpps.8
man: improvements to language and markup for netsniff-ng.8
man: improvements to language for astraceroute.8
man: improvements to astraceroute.8, inconsistent use of and ''
man: improvements to language for curvetun.8
man: improvements to curvetun.8, inconsistent use of `` and '' marks.
man: improvements to language for flowtop.8
man: improvements to language for mausezahn.8
man: improvements to mausezahn.8, inconsistent use of `` and '' marks.
man: improvements to mausezahn.8: 802.1D not 802.1d
man: improvements to mausezahn.8: No need to mention CST or STP for BPDU
man: improvements to mausezahn.8: CoS (PCP), DEI (CFI)
Jon Schipp (9):
man: minor fixups in flowtop's man page
docs: minor: Add missing word 'it'
man: netsniff-ng: edits to the netsniff-ng man page
man: astraceroute: minor edits all over
man: trafgen: corrections and various edits to manual page
man: curvetun: grammer, spelling, and other minor corrections
mausezahn: man: fixed typo and minor sentence edits
mausezahn: man: various updates
man: edits to ifpps man page
Kartik Mistry (4):
misc: Fixed spelling mistakes
man: manpages hyphen and spelling mistakes
man: manpage hyphen fixes, take two
man: manpage hyphen fixes, take three
Hideo Hattori (2):
zsh: update zsh autocompletion functions to implementation
zsh: add zsh completion function for mausezahn
Peter Stuge (1):
netsniff-ng trafgen: Find libnl-3.0 and libnl-genl-3.0 using pkg-config