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 21enum 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 31int 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 39int 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