mirror of
https://github.com/torvalds/linux.git
synced 2024-12-02 09:01:34 +00:00
Merge branch 'tcp_metrics-netlink-specs' into main
Jakub Kicinski says: ==================== tcp_metrics: add netlink protocol spec in YAML Add a netlink protocol spec for the tcp_metrics generic netlink family. First patch adjusts the uAPI header guards to make it easier to build tools/ with non-system headers. v1: https://lore.kernel.org/all/20240626201133.2572487-1-kuba@kernel.org ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
commit
a051091cc3
169
Documentation/netlink/specs/tcp_metrics.yaml
Normal file
169
Documentation/netlink/specs/tcp_metrics.yaml
Normal file
@ -0,0 +1,169 @@
|
||||
# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
|
||||
|
||||
name: tcp_metrics
|
||||
|
||||
protocol: genetlink-legacy
|
||||
|
||||
doc: |
|
||||
Management interface for TCP metrics.
|
||||
|
||||
c-family-name: tcp-metrics-genl-name
|
||||
c-version-name: tcp-metrics-genl-version
|
||||
max-by-define: true
|
||||
kernel-policy: global
|
||||
|
||||
definitions:
|
||||
-
|
||||
name: tcp-fastopen-cookie-max
|
||||
type: const
|
||||
value: 16
|
||||
|
||||
attribute-sets:
|
||||
-
|
||||
name: tcp-metrics
|
||||
name-prefix: tcp-metrics-attr-
|
||||
attributes:
|
||||
-
|
||||
name: addr-ipv4
|
||||
type: u32
|
||||
byte-order: big-endian
|
||||
display-hint: ipv4
|
||||
-
|
||||
name: addr-ipv6
|
||||
type: binary
|
||||
checks:
|
||||
min-len: 16
|
||||
byte-order: big-endian
|
||||
display-hint: ipv6
|
||||
-
|
||||
name: age
|
||||
type: u64
|
||||
-
|
||||
name: tw-tsval
|
||||
type: u32
|
||||
doc: unused
|
||||
-
|
||||
name: tw-ts-stamp
|
||||
type: s32
|
||||
doc: unused
|
||||
-
|
||||
name: vals
|
||||
type: nest
|
||||
nested-attributes: metrics
|
||||
-
|
||||
name: fopen-mss
|
||||
type: u16
|
||||
-
|
||||
name: fopen-syn-drops
|
||||
type: u16
|
||||
-
|
||||
name: fopen-syn-drop-ts
|
||||
type: u64
|
||||
-
|
||||
name: fopen-cookie
|
||||
type: binary
|
||||
checks:
|
||||
min-len: tcp-fastopen-cookie-max
|
||||
-
|
||||
name: saddr-ipv4
|
||||
type: u32
|
||||
byte-order: big-endian
|
||||
display-hint: ipv4
|
||||
-
|
||||
name: saddr-ipv6
|
||||
type: binary
|
||||
checks:
|
||||
min-len: 16
|
||||
byte-order: big-endian
|
||||
display-hint: ipv6
|
||||
-
|
||||
name: pad
|
||||
type: pad
|
||||
|
||||
-
|
||||
name: metrics
|
||||
# Intentionally don't define the name-prefix, see below.
|
||||
doc: |
|
||||
Attributes with metrics. Note that the values here do not match
|
||||
the TCP_METRIC_* defines in the kernel, because kernel defines
|
||||
are off-by one (e.g. rtt is defined as enum 0, while netlink carries
|
||||
attribute type 1).
|
||||
attributes:
|
||||
-
|
||||
name: rtt
|
||||
type: u32
|
||||
doc: |
|
||||
Round Trip Time (RTT), in msecs with 3 bits fractional
|
||||
(left-shift by 3 to get the msec value).
|
||||
-
|
||||
name: rttvar
|
||||
type: u32
|
||||
doc: |
|
||||
Round Trip Time VARiance (RTT), in msecs with 2 bits fractional
|
||||
(left-shift by 2 to get the msec value).
|
||||
-
|
||||
name: ssthresh
|
||||
type: u32
|
||||
doc: Slow Start THRESHold.
|
||||
-
|
||||
name: cwnd
|
||||
type: u32
|
||||
doc: Congestion Window.
|
||||
-
|
||||
name: reodering
|
||||
type: u32
|
||||
doc: Reodering metric.
|
||||
-
|
||||
name: rtt-us
|
||||
type: u32
|
||||
doc: |
|
||||
Round Trip Time (RTT), in usecs, with 3 bits fractional
|
||||
(left-shift by 3 to get the msec value).
|
||||
-
|
||||
name: rttvar-us
|
||||
type: u32
|
||||
doc: |
|
||||
Round Trip Time (RTT), in usecs, with 2 bits fractional
|
||||
(left-shift by 3 to get the msec value).
|
||||
|
||||
operations:
|
||||
list:
|
||||
-
|
||||
name: get
|
||||
doc: Retrieve metrics.
|
||||
attribute-set: tcp-metrics
|
||||
|
||||
dont-validate: [ strict, dump ]
|
||||
|
||||
do:
|
||||
request: &sel_attrs
|
||||
attributes:
|
||||
- addr-ipv4
|
||||
- addr-ipv6
|
||||
- saddr-ipv4
|
||||
- saddr-ipv6
|
||||
reply: &all_attrs
|
||||
attributes:
|
||||
- addr-ipv4
|
||||
- addr-ipv6
|
||||
- saddr-ipv4
|
||||
- saddr-ipv6
|
||||
- age
|
||||
- vals
|
||||
- fopen-mss
|
||||
- fopen-syn-drops
|
||||
- fopen-syn-drop-ts
|
||||
- fopen-cookie
|
||||
dump:
|
||||
reply: *all_attrs
|
||||
|
||||
-
|
||||
name: del
|
||||
doc: Delete metrics.
|
||||
attribute-set: tcp-metrics
|
||||
|
||||
dont-validate: [ strict, dump ]
|
||||
flags: [ admin-perm ]
|
||||
|
||||
do:
|
||||
request: *sel_attrs
|
@ -1,8 +1,8 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
||||
/* tcp_metrics.h - TCP Metrics Interface */
|
||||
|
||||
#ifndef _LINUX_TCP_METRICS_H
|
||||
#define _LINUX_TCP_METRICS_H
|
||||
#ifndef _UAPI_LINUX_TCP_METRICS_H
|
||||
#define _UAPI_LINUX_TCP_METRICS_H
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
@ -27,6 +27,22 @@ enum tcp_metric_index {
|
||||
|
||||
#define TCP_METRIC_MAX (__TCP_METRIC_MAX - 1)
|
||||
|
||||
/* Re-define enum tcp_metric_index, again, using the values carried
|
||||
* as netlink attribute types.
|
||||
*/
|
||||
enum {
|
||||
TCP_METRICS_A_METRICS_RTT = 1,
|
||||
TCP_METRICS_A_METRICS_RTTVAR,
|
||||
TCP_METRICS_A_METRICS_SSTHRESH,
|
||||
TCP_METRICS_A_METRICS_CWND,
|
||||
TCP_METRICS_A_METRICS_REODERING,
|
||||
TCP_METRICS_A_METRICS_RTT_US,
|
||||
TCP_METRICS_A_METRICS_RTTVAR_US,
|
||||
|
||||
__TCP_METRICS_A_METRICS_MAX
|
||||
};
|
||||
#define TCP_METRICS_A_METRICS_MAX (__TCP_METRICS_A_METRICS_MAX - 1)
|
||||
|
||||
enum {
|
||||
TCP_METRICS_ATTR_UNSPEC,
|
||||
TCP_METRICS_ATTR_ADDR_IPV4, /* u32 */
|
||||
@ -58,4 +74,4 @@ enum {
|
||||
|
||||
#define TCP_METRICS_CMD_MAX (__TCP_METRICS_CMD_MAX - 1)
|
||||
|
||||
#endif /* _LINUX_TCP_METRICS_H */
|
||||
#endif /* _UAPI_LINUX_TCP_METRICS_H */
|
||||
|
@ -26,3 +26,4 @@ CFLAGS_nfsd:=$(call get_hdr_inc,_LINUX_NFSD_NETLINK_H,nfsd_netlink.h)
|
||||
CFLAGS_ovs_datapath:=$(call get_hdr_inc,__LINUX_OPENVSWITCH_H,openvswitch.h)
|
||||
CFLAGS_ovs_flow:=$(call get_hdr_inc,__LINUX_OPENVSWITCH_H,openvswitch.h)
|
||||
CFLAGS_ovs_vport:=$(call get_hdr_inc,__LINUX_OPENVSWITCH_H,openvswitch.h)
|
||||
CFLAGS_tcp_metrics:=$(call get_hdr_inc,_LINUX_TCP_METRICS_H,tcp_metrics.h)
|
||||
|
Loading…
Reference in New Issue
Block a user