git: 8b2c694d3836 - stable/14 - RACK, BBR: handle EACCES like EPERM for IP output handling

From: Michael Tuexen <tuexen_at_FreeBSD.org>
Date: Wed, 17 Apr 2024 13:45:10 UTC
The branch stable/14 has been updated by tuexen:

URL: https://cgit.FreeBSD.org/src/commit/?id=8b2c694d383623a20edc7f64aaefcb28d06be9f6

commit 8b2c694d383623a20edc7f64aaefcb28d06be9f6
Author:     Michael Tuexen <tuexen@FreeBSD.org>
AuthorDate: 2024-02-16 11:19:24 +0000
Commit:     Michael Tuexen <tuexen@FreeBSD.org>
CommitDate: 2024-04-17 13:44:15 +0000

    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
    Sponsored by:           Netflix, Inc.
    Differential Revision:  https://reviews.freebsd.org/D43773
    
    (cherry picked from commit 2f4e46dfdd710c6679f233480c9de430e6c4ef9b)
---
 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 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 354c644bec18..c3460e48329f 100644
--- a/sys/netinet/tcp_stacks/rack.c
+++ b/sys/netinet/tcp_stacks/rack.c
@@ -22371,6 +22371,7 @@ nomore:
 		sendalot = 0;
 		switch (error) {
 		case EPERM:
+		case EACCES:
 			tp->t_softerror = error;
 #ifdef TCP_ACCOUNTING
 			crtsc = get_cyclecount();