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 170