Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
2
3name: tcp_metrics
4
5protocol: genetlink-legacy
6
7doc: |
8 Management interface for TCP metrics.
9
10c-family-name: tcp-metrics-genl-name
11c-version-name: tcp-metrics-genl-version
12max-by-define: true
13kernel-policy: global
14
15definitions:
16 -
17 name: tcp-fastopen-cookie-max
18 type: const
19 value: 16
20
21attribute-sets:
22 -
23 name: tcp-metrics
24 name-prefix: tcp-metrics-attr-
25 attributes:
26 -
27 name: addr-ipv4
28 type: u32
29 byte-order: big-endian
30 display-hint: ipv4
31 -
32 name: addr-ipv6
33 type: binary
34 checks:
35 min-len: 16
36 byte-order: big-endian
37 display-hint: ipv6
38 -
39 name: age
40 type: u64
41 -
42 name: tw-tsval
43 type: u32
44 doc: unused
45 -
46 name: tw-ts-stamp
47 type: s32
48 doc: unused
49 -
50 name: vals
51 type: nest
52 nested-attributes: metrics
53 -
54 name: fopen-mss
55 type: u16
56 -
57 name: fopen-syn-drops
58 type: u16
59 -
60 name: fopen-syn-drop-ts
61 type: u64
62 -
63 name: fopen-cookie
64 type: binary
65 checks:
66 min-len: tcp-fastopen-cookie-max
67 -
68 name: saddr-ipv4
69 type: u32
70 byte-order: big-endian
71 display-hint: ipv4
72 -
73 name: saddr-ipv6
74 type: binary
75 checks:
76 min-len: 16
77 byte-order: big-endian
78 display-hint: ipv6
79 -
80 name: pad
81 type: pad
82
83 -
84 name: metrics
85 # Intentionally don't define the name-prefix, see below.
86 doc: |
87 Attributes with metrics. Note that the values here do not match
88 the TCP_METRIC_* defines in the kernel, because kernel defines
89 are off-by one (e.g. rtt is defined as enum 0, while netlink carries
90 attribute type 1).
91 attributes:
92 -
93 name: rtt
94 type: u32
95 doc: |
96 Round Trip Time (RTT), in msecs with 3 bits fractional
97 (left-shift by 3 to get the msec value).
98 -
99 name: rttvar
100 type: u32
101 doc: |
102 Round Trip Time VARiance (RTT), in msecs with 2 bits fractional
103 (left-shift by 2 to get the msec value).
104 -
105 name: ssthresh
106 type: u32
107 doc: Slow Start THRESHold.
108 -
109 name: cwnd
110 type: u32
111 doc: Congestion Window.
112 -
113 name: reodering
114 type: u32
115 doc: Reodering metric.
116 -
117 name: rtt-us
118 type: u32
119 doc: |
120 Round Trip Time (RTT), in usecs, with 3 bits fractional
121 (left-shift by 3 to get the msec value).
122 -
123 name: rttvar-us
124 type: u32
125 doc: |
126 Round Trip Time (RTT), in usecs, with 2 bits fractional
127 (left-shift by 3 to get the msec value).
128
129operations:
130 list:
131 -
132 name: get
133 doc: Retrieve metrics.
134 attribute-set: tcp-metrics
135
136 dont-validate: [ strict, dump ]
137
138 do:
139 request: &sel_attrs
140 attributes:
141 - addr-ipv4
142 - addr-ipv6
143 - saddr-ipv4
144 - saddr-ipv6
145 reply: &all_attrs
146 attributes:
147 - addr-ipv4
148 - addr-ipv6
149 - saddr-ipv4
150 - saddr-ipv6
151 - age
152 - vals
153 - fopen-mss
154 - fopen-syn-drops
155 - fopen-syn-drop-ts
156 - fopen-cookie
157 dump:
158 reply: *all_attrs
159
160 -
161 name: del
162 doc: Delete metrics.
163 attribute-set: tcp-metrics
164
165 dont-validate: [ strict, dump ]
166 flags: [ admin-perm ]
167
168 do:
169 request: *sel_attrs