From 2e45166856e271f8a981a2c6c35f4738321851fb Mon Sep 17 00:00:00 2001 From: Michael Tuexen Date: Fri, 30 Aug 2024 09:26:41 +0200 Subject: [PATCH] tcp rack, bbr: improve handling of soft errors Do not report an error, if it is stored as a soft error. This avoids, for example, the dropping of TCP connections using an interface, while enabling or disabling LRO on that interface. Reviewed by: cc Sponsored by: Netflix, Inc. Differential Revision: https://reviews.freebsd.org/D46427 (cherry picked from commit b2044c4557443bbce974101f04e2b465d1bbe769) --- sys/netinet/tcp_stacks/bbr.c | 1 + sys/netinet/tcp_stacks/rack.c | 1 + 2 files changed, 2 insertions(+) diff --git a/sys/netinet/tcp_stacks/bbr.c b/sys/netinet/tcp_stacks/bbr.c index c1bbec3800f..2c737360cbe 100644 --- a/sys/netinet/tcp_stacks/bbr.c +++ b/sys/netinet/tcp_stacks/bbr.c @@ -13837,6 +13837,7 @@ nomore: case ENETUNREACH: if (TCPS_HAVERCVDSYN(tp->t_state)) { tp->t_softerror = error; + error = 0; } /* FALLTHROUGH */ default: diff --git a/sys/netinet/tcp_stacks/rack.c b/sys/netinet/tcp_stacks/rack.c index 35ae371a082..8cdb6e1f9ef 100644 --- a/sys/netinet/tcp_stacks/rack.c +++ b/sys/netinet/tcp_stacks/rack.c @@ -22473,6 +22473,7 @@ nomore: case ENETDOWN: if (TCPS_HAVERCVDSYN(tp->t_state)) { tp->t_softerror = error; + error = 0; } /* FALLTHROUGH */ default: