1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux << 2 /* tcp_metrics.h - TCP Metrics Interface */ 1 /* tcp_metrics.h - TCP Metrics Interface */ 3 2 4 #ifndef _UAPI_LINUX_TCP_METRICS_H !! 3 #ifndef _LINUX_TCP_METRICS_H 5 #define _UAPI_LINUX_TCP_METRICS_H !! 4 #define _LINUX_TCP_METRICS_H 6 5 7 #include <linux/types.h> 6 #include <linux/types.h> 8 7 9 /* NETLINK_GENERIC related info 8 /* NETLINK_GENERIC related info 10 */ 9 */ 11 #define TCP_METRICS_GENL_NAME "tcp_m 10 #define TCP_METRICS_GENL_NAME "tcp_metrics" 12 #define TCP_METRICS_GENL_VERSION 0x1 11 #define TCP_METRICS_GENL_VERSION 0x1 13 12 14 enum tcp_metric_index { 13 enum tcp_metric_index { 15 TCP_METRIC_RTT, /* in ms units 14 TCP_METRIC_RTT, /* in ms units */ 16 TCP_METRIC_RTTVAR, /* in ms units 15 TCP_METRIC_RTTVAR, /* in ms units */ 17 TCP_METRIC_SSTHRESH, 16 TCP_METRIC_SSTHRESH, 18 TCP_METRIC_CWND, 17 TCP_METRIC_CWND, 19 TCP_METRIC_REORDERING, 18 TCP_METRIC_REORDERING, 20 19 21 TCP_METRIC_RTT_US, /* in usec uni 20 TCP_METRIC_RTT_US, /* in usec units */ 22 TCP_METRIC_RTTVAR_US, /* in usec uni 21 TCP_METRIC_RTTVAR_US, /* in usec units */ 23 22 24 /* Always last. */ 23 /* Always last. */ 25 __TCP_METRIC_MAX, 24 __TCP_METRIC_MAX, 26 }; 25 }; 27 26 28 #define TCP_METRIC_MAX (__TCP_METRIC_MAX - 1) 27 #define TCP_METRIC_MAX (__TCP_METRIC_MAX - 1) 29 28 30 /* Re-define enum tcp_metric_index, again, usi << 31 * as netlink attribute types. << 32 */ << 33 enum { << 34 TCP_METRICS_A_METRICS_RTT = 1, << 35 TCP_METRICS_A_METRICS_RTTVAR, << 36 TCP_METRICS_A_METRICS_SSTHRESH, << 37 TCP_METRICS_A_METRICS_CWND, << 38 TCP_METRICS_A_METRICS_REODERING, << 39 TCP_METRICS_A_METRICS_RTT_US, << 40 TCP_METRICS_A_METRICS_RTTVAR_US, << 41 << 42 __TCP_METRICS_A_METRICS_MAX << 43 }; << 44 #define TCP_METRICS_A_METRICS_MAX (__TCP_METRI << 45 << 46 enum { 29 enum { 47 TCP_METRICS_ATTR_UNSPEC, 30 TCP_METRICS_ATTR_UNSPEC, 48 TCP_METRICS_ATTR_ADDR_IPV4, 31 TCP_METRICS_ATTR_ADDR_IPV4, /* u32 */ 49 TCP_METRICS_ATTR_ADDR_IPV6, 32 TCP_METRICS_ATTR_ADDR_IPV6, /* binary */ 50 TCP_METRICS_ATTR_AGE, 33 TCP_METRICS_ATTR_AGE, /* msecs */ 51 TCP_METRICS_ATTR_TW_TSVAL, 34 TCP_METRICS_ATTR_TW_TSVAL, /* u32, raw, rcv tsval */ 52 TCP_METRICS_ATTR_TW_TS_STAMP, 35 TCP_METRICS_ATTR_TW_TS_STAMP, /* s32, sec age */ 53 TCP_METRICS_ATTR_VALS, 36 TCP_METRICS_ATTR_VALS, /* nested +1, u32 */ 54 TCP_METRICS_ATTR_FOPEN_MSS, 37 TCP_METRICS_ATTR_FOPEN_MSS, /* u16 */ 55 TCP_METRICS_ATTR_FOPEN_SYN_DROPS, 38 TCP_METRICS_ATTR_FOPEN_SYN_DROPS, /* u16, count of drops */ 56 TCP_METRICS_ATTR_FOPEN_SYN_DROP_TS, 39 TCP_METRICS_ATTR_FOPEN_SYN_DROP_TS, /* msecs age */ 57 TCP_METRICS_ATTR_FOPEN_COOKIE, 40 TCP_METRICS_ATTR_FOPEN_COOKIE, /* binary */ 58 TCP_METRICS_ATTR_SADDR_IPV4, 41 TCP_METRICS_ATTR_SADDR_IPV4, /* u32 */ 59 TCP_METRICS_ATTR_SADDR_IPV6, 42 TCP_METRICS_ATTR_SADDR_IPV6, /* binary */ 60 TCP_METRICS_ATTR_PAD, 43 TCP_METRICS_ATTR_PAD, 61 44 62 __TCP_METRICS_ATTR_MAX, 45 __TCP_METRICS_ATTR_MAX, 63 }; 46 }; 64 47 65 #define TCP_METRICS_ATTR_MAX (__TCP_METRICS 48 #define TCP_METRICS_ATTR_MAX (__TCP_METRICS_ATTR_MAX - 1) 66 49 67 enum { 50 enum { 68 TCP_METRICS_CMD_UNSPEC, 51 TCP_METRICS_CMD_UNSPEC, 69 TCP_METRICS_CMD_GET, 52 TCP_METRICS_CMD_GET, 70 TCP_METRICS_CMD_DEL, 53 TCP_METRICS_CMD_DEL, 71 54 72 __TCP_METRICS_CMD_MAX, 55 __TCP_METRICS_CMD_MAX, 73 }; 56 }; 74 57 75 #define TCP_METRICS_CMD_MAX (__TCP_METRICS 58 #define TCP_METRICS_CMD_MAX (__TCP_METRICS_CMD_MAX - 1) 76 59 77 #endif /* _UAPI_LINUX_TCP_METRICS_H */ !! 60 #endif /* _LINUX_TCP_METRICS_H */ 78 61
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.