git: 1241e8e7aed5 - main - siftr: expose t_flags2 in siftr output
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 07 Apr 2022 09:17:32 UTC
The branch main has been updated by thj:
URL: https://cgit.FreeBSD.org/src/commit/?id=1241e8e7aed5d709a6cf62024e9ae750981c03ae
commit 1241e8e7aed5d709a6cf62024e9ae750981c03ae
Author: Tom Jones <thj@FreeBSD.org>
AuthorDate: 2022-04-07 09:12:33 +0000
Commit: Tom Jones <thj@FreeBSD.org>
CommitDate: 2022-04-07 09:17:09 +0000
siftr: expose t_flags2 in siftr output
Replace the old snd_bwnd field which was kept for compatibility with the
t_flags2 field from the tcpcb. This exposes in siftr logs interesting
things such as ECN, PLPMTUD, Accurate ECN and if first bytes are
complete.
Reviewed by: rscheff (transport), chengc_netapp.com, debdrup (manpages)
Sponsored by: NetApp, Inc.
Sponsored by: Klara, Inc.
X-NetApp-PR: #73
Differential Revision: https://reviews.freebsd.org/D34672
---
share/man/man4/siftr.4 | 6 +++---
sys/netinet/siftr.c | 26 +++++++++++++-------------
2 files changed, 16 insertions(+), 16 deletions(-)
diff --git a/share/man/man4/siftr.4 b/share/man/man4/siftr.4
index d26aaec340ea..d06d0bf89e80 100644
--- a/share/man/man4/siftr.4
+++ b/share/man/man4/siftr.4
@@ -30,7 +30,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd October 7, 2019
+.Dd April 7, 2022
.Dt SIFTR 4
.Os
.Sh NAME
@@ -209,7 +209,7 @@ TCP/IP packet.
The data is CSV formatted.
.Bd -literal -offset indent
o,0xbec491a5,1238556193.463551,172.16.7.28,22,172.16.2.5,55931, \\
-1073725440,172312,6144,66560,66608,8,1,4,1448,936,1,996,255, \\
+1073725440,172312,34,66560,66608,8,1,4,1448,936,1,996,255, \\
33304,208,66608,0,208,0
.Ed
.Pp
@@ -262,7 +262,7 @@ The current congestion window for the flow, in bytes.
.El
.Bl -tag -offset indent -width Va
.It Va 10
-The current bandwidth-controlled window for the flow, in bytes.
+The current state of the t_flags2 field for the flow.
.El
.Bl -tag -offset indent -width Va
.It Va 11
diff --git a/sys/netinet/siftr.c b/sys/netinet/siftr.c
index 00a4f477ad2e..1b675b8afe23 100644
--- a/sys/netinet/siftr.c
+++ b/sys/netinet/siftr.c
@@ -132,7 +132,7 @@ __FBSDID("$FreeBSD$");
* Hard upper limit on the length of log messages. Bump this up if you add new
* data fields such that the line length could exceed the below value.
*/
-#define MAX_LOG_MSG_LEN 200
+#define MAX_LOG_MSG_LEN 300
/* XXX: Make this a sysctl tunable. */
#define SIFTR_ALQ_BUFLEN (1000*MAX_LOG_MSG_LEN)
@@ -194,15 +194,15 @@ struct pkt_node {
/* Foreign TCP port. */
uint16_t tcp_foreignport;
/* Congestion Window (bytes). */
- u_long snd_cwnd;
+ uint32_t snd_cwnd;
/* Sending Window (bytes). */
- u_long snd_wnd;
+ uint32_t snd_wnd;
/* Receive Window (bytes). */
- u_long rcv_wnd;
- /* Unused (was: Bandwidth Controlled Window (bytes)). */
- u_long snd_bwnd;
+ uint32_t rcv_wnd;
+ /* More tcpcb flags storage */
+ uint32_t t_flags2;
/* Slow Start Threshold (bytes). */
- u_long snd_ssthresh;
+ uint32_t snd_ssthresh;
/* Current state of the TCP FSM. */
int conn_state;
/* Max Segment Size (bytes). */
@@ -455,7 +455,7 @@ siftr_process_pkt(struct pkt_node * pkt_node)
log_buf->ae_bytesused = snprintf(log_buf->ae_data,
MAX_LOG_MSG_LEN,
"%c,0x%08x,%zd.%06ld,%x:%x:%x:%x:%x:%x:%x:%x,%u,%x:%x:%x:"
- "%x:%x:%x:%x:%x,%u,%ld,%ld,%ld,%ld,%ld,%u,%u,%u,%u,%u,%u,"
+ "%x:%x:%x:%x:%x,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,"
"%u,%d,%u,%u,%u,%u,%u,%u,%u,%u\n",
direction[pkt_node->direction],
pkt_node->hash,
@@ -481,7 +481,7 @@ siftr_process_pkt(struct pkt_node * pkt_node)
ntohs(pkt_node->tcp_foreignport),
pkt_node->snd_ssthresh,
pkt_node->snd_cwnd,
- pkt_node->snd_bwnd,
+ pkt_node->t_flags2,
pkt_node->snd_wnd,
pkt_node->rcv_wnd,
pkt_node->snd_scale,
@@ -514,8 +514,8 @@ siftr_process_pkt(struct pkt_node * pkt_node)
/* Construct an IPv4 log message. */
log_buf->ae_bytesused = snprintf(log_buf->ae_data,
MAX_LOG_MSG_LEN,
- "%c,0x%08x,%jd.%06ld,%u.%u.%u.%u,%u,%u.%u.%u.%u,%u,%ld,%ld,"
- "%ld,%ld,%ld,%u,%u,%u,%u,%u,%u,%u,%d,%u,%u,%u,%u,%u,%u,%u,%u\n",
+ "%c,0x%08x,%jd.%06ld,%u.%u.%u.%u,%u,%u.%u.%u.%u,%u,%u,%u,"
+ "%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%d,%u,%u,%u,%u,%u,%u,%u,%u\n",
direction[pkt_node->direction],
pkt_node->hash,
(intmax_t)pkt_node->tval.tv_sec,
@@ -532,7 +532,7 @@ siftr_process_pkt(struct pkt_node * pkt_node)
ntohs(pkt_node->tcp_foreignport),
pkt_node->snd_ssthresh,
pkt_node->snd_cwnd,
- pkt_node->snd_bwnd,
+ pkt_node->t_flags2,
pkt_node->snd_wnd,
pkt_node->rcv_wnd,
pkt_node->snd_scale,
@@ -782,7 +782,7 @@ siftr_siftdata(struct pkt_node *pn, struct inpcb *inp, struct tcpcb *tp,
pn->snd_cwnd = tp->snd_cwnd;
pn->snd_wnd = tp->snd_wnd;
pn->rcv_wnd = tp->rcv_wnd;
- pn->snd_bwnd = 0; /* Unused, kept for compat. */
+ pn->t_flags2 = tp->t_flags2;
pn->snd_ssthresh = tp->snd_ssthresh;
pn->snd_scale = tp->snd_scale;
pn->rcv_scale = tp->rcv_scale;