git: b638491bb878 - stable/14 - TCP BBR: fix getsockopt() for TCP_BBR_USEDEL_RATE
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 05 Feb 2025 19:52:45 UTC
The branch stable/14 has been updated by tuexen:
URL: https://cgit.FreeBSD.org/src/commit/?id=b638491bb8786b3093f291caf6e881d54ee1799a
commit b638491bb8786b3093f291caf6e881d54ee1799a
Author: Michael Tuexen <tuexen@FreeBSD.org>
AuthorDate: 2024-12-31 16:29:04 +0000
Commit: Michael Tuexen <tuexen@FreeBSD.org>
CommitDate: 2025-02-05 08:53:05 +0000
TCP BBR: fix getsockopt() for TCP_BBR_USEDEL_RATE
Actually implement the IPPROTO_TCP-level socket option
TCP_BBR_USEDEL_RATE.
Reviewed by: rrs
CID: 1523813
CID: 1523814
Sponsored by: Netflix, Inc.
Differential Revision: https://reviews.freebsd.org/D48261
(cherry picked from commit b47dcb4b1ff16e6af2e07798f6fe06580b4eddf0)
---
sys/netinet/tcp_stacks/bbr.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/sys/netinet/tcp_stacks/bbr.c b/sys/netinet/tcp_stacks/bbr.c
index eb4fd75bac3a..47b4a1bddc6c 100644
--- a/sys/netinet/tcp_stacks/bbr.c
+++ b/sys/netinet/tcp_stacks/bbr.c
@@ -14560,6 +14560,7 @@ bbr_get_sockopt(struct tcpcb *tp, struct sockopt *sopt)
{
struct inpcb *inp = tptoinpcb(tp);
struct tcp_bbr *bbr;
+ uint64_t loptval;
int32_t error, optval;
bbr = (struct tcp_bbr *)tp->t_fb_ptr;
@@ -14620,7 +14621,7 @@ bbr_get_sockopt(struct tcpcb *tp, struct sockopt *sopt)
optval = bbr->rc_loss_exit;
break;
case TCP_BBR_USEDEL_RATE:
- error = EINVAL;
+ loptval = get_filter_value(&bbr->r_ctl.rc_delrate);
break;
case TCP_BBR_MIN_RTO:
optval = bbr->r_ctl.rc_min_rto_ms;
@@ -14704,7 +14705,10 @@ bbr_get_sockopt(struct tcpcb *tp, struct sockopt *sopt)
break;
}
INP_WUNLOCK(inp);
- error = sooptcopyout(sopt, &optval, sizeof optval);
+ if (sopt->sopt_name == TCP_BBR_USEDEL_RATE)
+ error = sooptcopyout(sopt, &loptval, sizeof loptval);
+ else
+ error = sooptcopyout(sopt, &optval, sizeof optval);
return (error);
}