freebsd-skq/usr.bin/netstat
Jonathan T. Looney 2529f56ed3 Add the "TCP Blackbox Recorder" which we discussed at the developer
summits at BSDCan and BSDCam in 2017.

The TCP Blackbox Recorder allows you to capture events on a TCP connection
in a ring buffer. It stores metadata with the event. It optionally stores
the TCP header associated with an event (if the event is associated with a
packet) and also optionally stores information on the sockets.

It supports setting a log ID on a TCP connection and using this to correlate
multiple connections that share a common log ID.

You can log connections in different modes. If you are doing a coordinated
test with a particular connection, you may tell the system to put it in
mode 4 (continuous dump). Or, if you just want to monitor for errors, you
can put it in mode 1 (ring buffer) and dump all the ring buffers associated
with the connection ID when we receive an error signal for that connection
ID. You can set a default mode that will be applied to a particular ratio
of incoming connections. You can also manually set a mode using a socket
option.

This commit includes only basic probes. rrs@ has added quite an abundance
of probes in his TCP development work. He plans to commit those soon.

There are user-space programs which we plan to commit as ports. These read
the data from the log device and output pcapng files, and then let you
analyze the data (and metadata) in the pcapng files.

Reviewed by:	gnn (previous version)
Obtained from:	Netflix, Inc.
Relnotes:	yes
Differential Revision:	https://reviews.freebsd.org/D11085
2018-03-22 09:40:08 +00:00
..
bpf.c various: general adoption of SPDX licensing ID tags. 2017-11-27 15:37:16 +00:00
if.c General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
inet6.c General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
inet.c Add the "TCP Blackbox Recorder" which we discussed at the developer 2018-03-22 09:40:08 +00:00
ipsec.c General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
main.c Add the "TCP Blackbox Recorder" which we discussed at the developer 2018-03-22 09:40:08 +00:00
Makefile After inpcb route caching was put back in place there is no need for 2017-07-27 13:03:36 +00:00
Makefile.depend DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
mbuf.c spdx: initial adoption of licensing ID tags. 2017-11-18 14:26:50 +00:00
mroute6.c spdx: initial adoption of licensing ID tags. 2017-11-18 14:26:50 +00:00
mroute.c spdx: initial adoption of licensing ID tags. 2017-11-18 14:26:50 +00:00
netgraph.c Hide struct socket and struct unpcb from the userland. 2017-10-02 23:29:56 +00:00
netisr.c various: general adoption of SPDX licensing ID tags. 2017-11-27 15:37:16 +00:00
netstat.1 Add the "TCP Blackbox Recorder" which we discussed at the developer 2018-03-22 09:40:08 +00:00
netstat.h Add the "TCP Blackbox Recorder" which we discussed at the developer 2018-03-22 09:40:08 +00:00
nlist_symbols Print running TCP connection counts with TCP statistics. 2016-03-15 00:19:30 +00:00
pfkey.c General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
route.c General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
sctp.c General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
unix.c General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00