1 // SPDX-License-Identifier: GPL-2.0+ 2 /* 3 * Copyright (c) 2024 Huawei Device Co., Ltd. 4 * 5 * Network and Application-driven Transport Augmentation (NATA). 6 * Authors: yangyanjun 7 */ 8 #ifndef _INET_NATA_H 9 #define _INET_NATA_H 10 #if defined(CONFIG_TCP_NATA_URC) || defined(CONFIG_TCP_NATA_STL) 11 #include <net/inet_sock.h> 12 #include <net/sock.h> 13 14 #define NATA_DATA_RETRIES_MAX 50 15 #define NATA_SYN_RETRIES_MAX 50 16 #define BITS_PRE_BYTE 8 17 #define NATA_RTO_MAX_SHIFT 17 18 #define NATA_RTO_MAX ((unsigned)(120*HZ)) 19 #define MAX_SHIFT (sizeof(unsigned long) * BITS_PER_BYTE - NATA_RTO_MAX_SHIFT) 20 21 enum nata_retries_type_t { 22 NATA_NA = 0, 23 NATA_URC = 1, 24 NATA_STL = 2, 25 }; 26 27 #ifdef CONFIG_TCP_NATA_URC 28 #define NATA_URC_RTO_MS_MIN 200 // 200ms 29 #define NATA_URC_RTO_MS_MAX 120000 // 120s 30 #define NATA_URC_RTO_MS_TO_HZ 1000 31 int tcp_set_nata_urc(struct sock *sk, sockptr_t optval, int optlen); 32 #endif /* CONFIG_TCP_NATA_URC */ 33 34 #ifdef CONFIG_TCP_NATA_STL 35 #define NATA_STL_SYN_RTO_MS_MIN 800 // 800ms 36 #define NATA_STL_DATA_RTO_MS_MIN 1800 // 1800ms 37 #define NATA_STL_RTO_MS_MAX 120000 // 120s 38 #define NATA_STL_RTO_MS_TO_HZ 1000 39 int tcp_set_nata_stl(struct sock *sk, sockptr_t optval, int optlen); 40 #endif /* CONFIG_TCP_NATA_STL */ 41 42 #endif 43 #endif /* _INET_NATA_H */ 44