aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Tuexen <tuexen@FreeBSD.org>2024-02-16 11:19:24 +0000
committerMichael Tuexen <tuexen@FreeBSD.org>2024-02-16 11:19:24 +0000
commit2f4e46dfdd710c6679f233480c9de430e6c4ef9b (patch)
treeb7b30ea1c6030f1f29888dcaf4f134ddd903446c
parente5d1a21e500142c02fd44ce2f7822f2815a74fcc (diff)
downloadsrc-2f4e46dfdd710c6679f233480c9de430e6c4ef9b.tar.gz
src-2f4e46dfdd710c6679f233480c9de430e6c4ef9b.zip
RACK, BBR: handle EACCES like EPERM for IP output handling
The FreeBSD TCP base stack handles them also the same way. In case of packet filters dropping packets in the output path, this avoids retranmitting the dropped packet every 10ms or so. Reviewed by: rscheff MFC after: 1 week Sponsored by: Netflix, Inc. Differential Revision: https://reviews.freebsd.org/D43773
-rw-r--r--sys/netinet/tcp_stacks/bbr.c1
-rw-r--r--sys/netinet/tcp_stacks/rack.c1
2 files changed, 2 insertions, 0 deletions
diff --git a/sys/netinet/tcp_stacks/bbr.c b/sys/netinet/tcp_stacks/bbr.c
index c643f0321099..931beba7a262 100644
--- a/sys/netinet/tcp_stacks/bbr.c
+++ b/sys/netinet/tcp_stacks/bbr.c
@@ -13809,6 +13809,7 @@ nomore:
return (error);
}
case EPERM:
+ case EACCES:
tp->t_softerror = error;
/* FALLTHROUGH */
case EHOSTDOWN:
diff --git a/sys/netinet/tcp_stacks/rack.c b/sys/netinet/tcp_stacks/rack.c
index 0ec50bb5e5c5..49d946dbb63b 100644
--- a/sys/netinet/tcp_stacks/rack.c
+++ b/sys/netinet/tcp_stacks/rack.c
@@ -22376,6 +22376,7 @@ nomore:
sendalot = 0;
switch (error) {
case EPERM:
+ case EACCES:
tp->t_softerror = error;
#ifdef TCP_ACCOUNTING
crtsc = get_cyclecount();