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