| # 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 |