1*6f52b16cSGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2607ca46eSDavid Howells /* tcp_metrics.h - TCP Metrics Interface */ 3607ca46eSDavid Howells 4607ca46eSDavid Howells #ifndef _LINUX_TCP_METRICS_H 5607ca46eSDavid Howells #define _LINUX_TCP_METRICS_H 6607ca46eSDavid Howells 7607ca46eSDavid Howells #include <linux/types.h> 8607ca46eSDavid Howells 9607ca46eSDavid Howells /* NETLINK_GENERIC related info 10607ca46eSDavid Howells */ 11607ca46eSDavid Howells #define TCP_METRICS_GENL_NAME "tcp_metrics" 12607ca46eSDavid Howells #define TCP_METRICS_GENL_VERSION 0x1 13607ca46eSDavid Howells 14607ca46eSDavid Howells enum tcp_metric_index { 15740b0f18SEric Dumazet TCP_METRIC_RTT, /* in ms units */ 16740b0f18SEric Dumazet TCP_METRIC_RTTVAR, /* in ms units */ 17607ca46eSDavid Howells TCP_METRIC_SSTHRESH, 18607ca46eSDavid Howells TCP_METRIC_CWND, 19607ca46eSDavid Howells TCP_METRIC_REORDERING, 20607ca46eSDavid Howells 21740b0f18SEric Dumazet TCP_METRIC_RTT_US, /* in usec units */ 22740b0f18SEric Dumazet TCP_METRIC_RTTVAR_US, /* in usec units */ 23740b0f18SEric Dumazet 24607ca46eSDavid Howells /* Always last. */ 25607ca46eSDavid Howells __TCP_METRIC_MAX, 26607ca46eSDavid Howells }; 27607ca46eSDavid Howells 28607ca46eSDavid Howells #define TCP_METRIC_MAX (__TCP_METRIC_MAX - 1) 29607ca46eSDavid Howells 30607ca46eSDavid Howells enum { 31607ca46eSDavid Howells TCP_METRICS_ATTR_UNSPEC, 32607ca46eSDavid Howells TCP_METRICS_ATTR_ADDR_IPV4, /* u32 */ 33607ca46eSDavid Howells TCP_METRICS_ATTR_ADDR_IPV6, /* binary */ 34607ca46eSDavid Howells TCP_METRICS_ATTR_AGE, /* msecs */ 35607ca46eSDavid Howells TCP_METRICS_ATTR_TW_TSVAL, /* u32, raw, rcv tsval */ 36607ca46eSDavid Howells TCP_METRICS_ATTR_TW_TS_STAMP, /* s32, sec age */ 37607ca46eSDavid Howells TCP_METRICS_ATTR_VALS, /* nested +1, u32 */ 38607ca46eSDavid Howells TCP_METRICS_ATTR_FOPEN_MSS, /* u16 */ 39607ca46eSDavid Howells TCP_METRICS_ATTR_FOPEN_SYN_DROPS, /* u16, count of drops */ 40607ca46eSDavid Howells TCP_METRICS_ATTR_FOPEN_SYN_DROP_TS, /* msecs age */ 41607ca46eSDavid Howells TCP_METRICS_ATTR_FOPEN_COOKIE, /* binary */ 428a59359cSChristoph Paasch TCP_METRICS_ATTR_SADDR_IPV4, /* u32 */ 438a59359cSChristoph Paasch TCP_METRICS_ATTR_SADDR_IPV6, /* binary */ 442175d87cSNicolas Dichtel TCP_METRICS_ATTR_PAD, 45607ca46eSDavid Howells 46607ca46eSDavid Howells __TCP_METRICS_ATTR_MAX, 47607ca46eSDavid Howells }; 48607ca46eSDavid Howells 49607ca46eSDavid Howells #define TCP_METRICS_ATTR_MAX (__TCP_METRICS_ATTR_MAX - 1) 50607ca46eSDavid Howells 51607ca46eSDavid Howells enum { 52607ca46eSDavid Howells TCP_METRICS_CMD_UNSPEC, 53607ca46eSDavid Howells TCP_METRICS_CMD_GET, 54607ca46eSDavid Howells TCP_METRICS_CMD_DEL, 55607ca46eSDavid Howells 56607ca46eSDavid Howells __TCP_METRICS_CMD_MAX, 57607ca46eSDavid Howells }; 58607ca46eSDavid Howells 59607ca46eSDavid Howells #define TCP_METRICS_CMD_MAX (__TCP_METRICS_CMD_MAX - 1) 60607ca46eSDavid Howells 61607ca46eSDavid Howells #endif /* _LINUX_TCP_METRICS_H */ 62