170 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			170 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| # 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
 |