170 lines · yaml
1# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)2 3name: tcp_metrics4 5protocol: genetlink-legacy6 7doc: |8 Management interface for TCP metrics.9 10c-family-name: tcp-metrics-genl-name11c-version-name: tcp-metrics-genl-version12max-by-define: true13kernel-policy: global14 15definitions:16 -17 name: tcp-fastopen-cookie-max18 type: const19 value: 1620 21attribute-sets:22 -23 name: tcp-metrics24 name-prefix: tcp-metrics-attr-25 attributes:26 -27 name: addr-ipv428 type: u3229 byte-order: big-endian30 display-hint: ipv431 -32 name: addr-ipv633 type: binary34 checks:35 min-len: 1636 byte-order: big-endian37 display-hint: ipv638 -39 name: age40 type: u6441 -42 name: tw-tsval43 type: u3244 doc: unused45 -46 name: tw-ts-stamp47 type: s3248 doc: unused49 -50 name: vals51 type: nest52 nested-attributes: metrics53 -54 name: fopen-mss55 type: u1656 -57 name: fopen-syn-drops58 type: u1659 -60 name: fopen-syn-drop-ts61 type: u6462 -63 name: fopen-cookie64 type: binary65 checks:66 min-len: tcp-fastopen-cookie-max67 -68 name: saddr-ipv469 type: u3270 byte-order: big-endian71 display-hint: ipv472 -73 name: saddr-ipv674 type: binary75 checks:76 min-len: 1677 byte-order: big-endian78 display-hint: ipv679 -80 name: pad81 type: pad82 83 -84 name: metrics85 # Intentionally don't define the name-prefix, see below.86 doc: |87 Attributes with metrics. Note that the values here do not match88 the TCP_METRIC_* defines in the kernel, because kernel defines89 are off-by one (e.g. rtt is defined as enum 0, while netlink carries90 attribute type 1).91 attributes:92 -93 name: rtt94 type: u3295 doc: |96 Round Trip Time (RTT), in msecs with 3 bits fractional97 (left-shift by 3 to get the msec value).98 -99 name: rttvar100 type: u32101 doc: |102 Round Trip Time VARiance (RTT), in msecs with 2 bits fractional103 (left-shift by 2 to get the msec value).104 -105 name: ssthresh106 type: u32107 doc: Slow Start THRESHold.108 -109 name: cwnd110 type: u32111 doc: Congestion Window.112 -113 name: reodering114 type: u32115 doc: Reodering metric.116 -117 name: rtt-us118 type: u32119 doc: |120 Round Trip Time (RTT), in usecs, with 3 bits fractional121 (left-shift by 3 to get the msec value).122 -123 name: rttvar-us124 type: u32125 doc: |126 Round Trip Time (RTT), in usecs, with 2 bits fractional127 (left-shift by 3 to get the msec value).128 129operations:130 list:131 -132 name: get133 doc: Retrieve metrics.134 attribute-set: tcp-metrics135 136 dont-validate: [ strict, dump ]137 138 do:139 request: &sel_attrs140 attributes:141 - addr-ipv4142 - addr-ipv6143 - saddr-ipv4144 - saddr-ipv6145 reply: &all_attrs146 attributes:147 - addr-ipv4148 - addr-ipv6149 - saddr-ipv4150 - saddr-ipv6151 - age152 - vals153 - fopen-mss154 - fopen-syn-drops155 - fopen-syn-drop-ts156 - fopen-cookie157 dump:158 reply: *all_attrs159 160 -161 name: del162 doc: Delete metrics.163 attribute-set: tcp-metrics164 165 dont-validate: [ strict, dump ]166 flags: [ admin-perm ]167 168 do:169 request: *sel_attrs170