git: 04682968c3f7 - main - tcp: expose AccECN mode and TCP FastOpen (TFO) in TCPI
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 20 Jun 2023 21:54:04 UTC
The branch main has been updated by rscheff: URL: https://cgit.FreeBSD.org/src/commit/?id=04682968c3f7993cf9c07d091c9411d38fb5540b commit 04682968c3f7993cf9c07d091c9411d38fb5540b Author: Richard Scheffenegger <rscheff@FreeBSD.org> AuthorDate: 2023-06-20 21:27:11 +0000 Commit: Richard Scheffenegger <rscheff@FreeBSD.org> CommitDate: 2023-06-20 21:48:56 +0000 tcp: expose AccECN mode and TCP FastOpen (TFO) in TCPI Reviewed By: tuexen, #transport Sponsored by: NetApp, Inc. Differential Revision: https://reviews.freebsd.org/D40621 --- sys/netinet/tcp.h | 1 + sys/netinet/tcp_usrreq.c | 16 ++++++++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/sys/netinet/tcp.h b/sys/netinet/tcp.h index 3c3086eabaf4..dbafc96927b2 100644 --- a/sys/netinet/tcp.h +++ b/sys/netinet/tcp.h @@ -336,6 +336,7 @@ struct tcphdr { #define TCPI_OPT_ECN 0x08 #define TCPI_OPT_TOE 0x10 #define TCPI_OPT_TFO 0x20 +#define TCPI_OPT_ACE 0x40 /* Maximum length of log ID. */ #define TCP_LOG_ID_LEN 64 diff --git a/sys/netinet/tcp_usrreq.c b/sys/netinet/tcp_usrreq.c index a9aee98f1332..629b47f04142 100644 --- a/sys/netinet/tcp_usrreq.c +++ b/sys/netinet/tcp_usrreq.c @@ -1556,8 +1556,20 @@ tcp_fill_info(struct tcpcb *tp, struct tcp_info *ti) ti->tcpi_snd_wscale = tp->snd_scale; ti->tcpi_rcv_wscale = tp->rcv_scale; } - if (tp->t_flags2 & (TF2_ECN_PERMIT | TF2_ACE_PERMIT)) - ti->tcpi_options |= TCPI_OPT_ECN; + switch (tp->t_flags2 & (TF2_ECN_PERMIT | TF2_ACE_PERMIT)) { + case TF2_ECN_PERMIT: + ti->tcpi_options |= TCPI_OPT_ECN; + break; + case TF2_ACE_PERMIT: + /* FALLTHROUGH */ + case TF2_ECN_PERMIT | TF2_ACE_PERMIT: + ti->tcpi_options |= TCPI_OPT_ACE; + break; + default: + break; + } + if (IS_FASTOPEN(tp->t_flags)) + ti->tcpi_options |= TCPI_OPT_TFO; ti->tcpi_rto = tp->t_rxtcur * tick; ti->tcpi_last_data_recv = ((uint32_t)ticks - tp->t_rcvtime) * tick;