aboutsummaryrefslogtreecommitdiff
path: root/sys/netinet/tcp_usrreq.c
diff options
context:
space:
mode:
authorRandall Stewart <rrs@FreeBSD.org>2024-03-11 11:36:54 +0000
committerRandall Stewart <rrs@FreeBSD.org>2024-03-11 11:36:54 +0000
commitf6d489f402c320f1a6eaa473491a0b8c3878113e (patch)
tree2dea3d4feebe19952d9fe3beec0c8ace1aeedc63 /sys/netinet/tcp_usrreq.c
parent96c567f972e05c47cd239b6c9226354e808f039b (diff)
downloadsrc-f6d489f402c320f1a6eaa473491a0b8c3878113e.tar.gz
src-f6d489f402c320f1a6eaa473491a0b8c3878113e.zip
Update to bring the rack stack with all its fixes in.
This brings the rack stack up to the current level used at NF. Many fixes and improvements have been added. I also add in a fix to BBR to deal with the changes that have been in hpts for a while i.e. only one call no matter if mbuf queue or tcp_output. Note there is a new file that I can't figure out how to get in rack_pcm.c It basically does little except BBlogs and is a placemark for future work on doing path capacity measurements. Reviewed by: tuexen, glebius Sponsored by: Netflix Inc. Differential Revision:https://reviews.freebsd.org/D43986
Diffstat (limited to 'sys/netinet/tcp_usrreq.c')
-rw-r--r--sys/netinet/tcp_usrreq.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/sys/netinet/tcp_usrreq.c b/sys/netinet/tcp_usrreq.c
index 9bb953617d99..a73d2a15c1d5 100644
--- a/sys/netinet/tcp_usrreq.c
+++ b/sys/netinet/tcp_usrreq.c
@@ -179,6 +179,12 @@ tcp_usr_attach(struct socket *so, int proto, struct thread *td)
goto out;
}
tp->t_state = TCPS_CLOSED;
+ /* Can we inherit anything from the listener? */
+ if ((so->so_listen != NULL) &&
+ (so->so_listen->so_pcb != NULL) &&
+ (tp->t_fb->tfb_inherit != NULL)) {
+ (*tp->t_fb->tfb_inherit)(tp, sotoinpcb(so->so_listen));
+ }
tcp_bblog_pru(tp, PRU_ATTACH, error);
INP_WUNLOCK(inp);
TCPSTATES_INC(TCPS_CLOSED);
@@ -1601,6 +1607,7 @@ tcp_fill_info(const struct tcpcb *tp, struct tcp_info *ti)
ti->tcpi_rcv_numsacks = tp->rcv_numsacks;
ti->tcpi_rcv_adv = tp->rcv_adv;
ti->tcpi_dupacks = tp->t_dupacks;
+ ti->tcpi_rttmin = tp->t_rttlow;
#ifdef TCP_OFFLOAD
if (tp->t_flags & TF_TOE) {
ti->tcpi_options |= TCPI_OPT_TOE;