From c90e698ec2c82a09e33e5e752bc0260ebc918322 Mon Sep 17 00:00:00 2001 From: liangbotong Date: Mon, 6 May 2024 14:36:52 +0800 Subject: [PATCH] NetiBooster adds threshold judgment Signed-off-by: liangbotong --- include/uapi/linux/tcp.h | 4 ++-- net/ipv4/tcp.c | 13 +++++++++++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/include/uapi/linux/tcp.h b/include/uapi/linux/tcp.h index 27d542fa014b..5b5d2ac8242a 100644 --- a/include/uapi/linux/tcp.h +++ b/include/uapi/linux/tcp.h @@ -136,9 +136,9 @@ enum { struct tcp_nb_urc { __u8 nb_urc_enabled; - __u8 syn_retries; + __u8 tcp_syn_retries; __u16 tcp_retries2; - __u32 nb_urc_rto; + __u32 nb_urc_rto_ms; }; struct tcp_repair_opt { diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c index 066c10dfde2a..efc22f9a46c7 100644 --- a/net/ipv4/tcp.c +++ b/net/ipv4/tcp.c @@ -3163,6 +3163,10 @@ int tcp_sock_set_keepcnt(struct sock *sk, int val) EXPORT_SYMBOL(tcp_sock_set_keepcnt); #ifdef CONFIG_TCP_NB_URC +#define NB_URC_RTO_MS_MIN 200 // 200ms +#define NB_URC_RTO_MS_MAX (120000) // 12s +#define NB_URC_RTO_MS_TO_HZ 1000 + static int tcp_set_nb_urc(struct sock *sk, sockptr_t optval, int optlen) { int err = 0; @@ -3179,10 +3183,15 @@ static int tcp_set_nb_urc(struct sock *sk, sockptr_t optval, int optlen) return err; } - icsk->icsk_syn_retries = opt.syn_retries; + if (opt.nb_urc_rto_ms < NB_URC_RTO_MS_MIN || opt.nb_urc_rto_ms > NB_URC_RTO_MS_MAX) { + err = -EINVAL; + return err; + } + + icsk->icsk_syn_retries = opt.tcp_syn_retries; tcp_sk(sk)->tcp_retries2 = opt.tcp_retries2; icsk->icsk_nb_urc_enabled = opt.nb_urc_enabled; - icsk->icsk_nb_urc_rto = opt.nb_urc_rto; + icsk->icsk_nb_urc_rto = opt.nb_urc_rto_ms * HZ / NB_URC_RTO_MS_TO_HZ; return err; } -- Gitee