xref: /linux/tools/include/uapi/linux/netdev.h (revision 5f7fb89a115d53b4a10bf7ba2733e78df281e98d)
1  /* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */
2  /* Do not edit directly, auto-generated from: */
3  /*	Documentation/netlink/specs/netdev.yaml */
4  /* YNL-GEN uapi header */
5  
6  #ifndef _UAPI_LINUX_NETDEV_H
7  #define _UAPI_LINUX_NETDEV_H
8  
9  #define NETDEV_FAMILY_NAME	"netdev"
10  #define NETDEV_FAMILY_VERSION	1
11  
12  /**
13   * enum netdev_xdp_act
14   * @NETDEV_XDP_ACT_BASIC: XDP features set supported by all drivers
15   *   (XDP_ABORTED, XDP_DROP, XDP_PASS, XDP_TX)
16   * @NETDEV_XDP_ACT_REDIRECT: The netdev supports XDP_REDIRECT
17   * @NETDEV_XDP_ACT_NDO_XMIT: This feature informs if netdev implements
18   *   ndo_xdp_xmit callback.
19   * @NETDEV_XDP_ACT_XSK_ZEROCOPY: This feature informs if netdev supports AF_XDP
20   *   in zero copy mode.
21   * @NETDEV_XDP_ACT_HW_OFFLOAD: This feature informs if netdev supports XDP hw
22   *   offloading.
23   * @NETDEV_XDP_ACT_RX_SG: This feature informs if netdev implements non-linear
24   *   XDP buffer support in the driver napi callback.
25   * @NETDEV_XDP_ACT_NDO_XMIT_SG: This feature informs if netdev implements
26   *   non-linear XDP buffer support in ndo_xdp_xmit callback.
27   */
28  enum netdev_xdp_act {
29  	NETDEV_XDP_ACT_BASIC = 1,
30  	NETDEV_XDP_ACT_REDIRECT = 2,
31  	NETDEV_XDP_ACT_NDO_XMIT = 4,
32  	NETDEV_XDP_ACT_XSK_ZEROCOPY = 8,
33  	NETDEV_XDP_ACT_HW_OFFLOAD = 16,
34  	NETDEV_XDP_ACT_RX_SG = 32,
35  	NETDEV_XDP_ACT_NDO_XMIT_SG = 64,
36  
37  	/* private: */
38  	NETDEV_XDP_ACT_MASK = 127,
39  };
40  
41  /**
42   * enum netdev_xdp_rx_metadata
43   * @NETDEV_XDP_RX_METADATA_TIMESTAMP: Device is capable of exposing receive HW
44   *   timestamp via bpf_xdp_metadata_rx_timestamp().
45   * @NETDEV_XDP_RX_METADATA_HASH: Device is capable of exposing receive packet
46   *   hash via bpf_xdp_metadata_rx_hash().
47   * @NETDEV_XDP_RX_METADATA_VLAN_TAG: Device is capable of exposing receive
48   *   packet VLAN tag via bpf_xdp_metadata_rx_vlan_tag().
49   */
50  enum netdev_xdp_rx_metadata {
51  	NETDEV_XDP_RX_METADATA_TIMESTAMP = 1,
52  	NETDEV_XDP_RX_METADATA_HASH = 2,
53  	NETDEV_XDP_RX_METADATA_VLAN_TAG = 4,
54  };
55  
56  /**
57   * enum netdev_xsk_flags
58   * @NETDEV_XSK_FLAGS_TX_TIMESTAMP: HW timestamping egress packets is supported
59   *   by the driver.
60   * @NETDEV_XSK_FLAGS_TX_CHECKSUM: L3 checksum HW offload is supported by the
61   *   driver.
62   */
63  enum netdev_xsk_flags {
64  	NETDEV_XSK_FLAGS_TX_TIMESTAMP = 1,
65  	NETDEV_XSK_FLAGS_TX_CHECKSUM = 2,
66  };
67  
68  enum netdev_queue_type {
69  	NETDEV_QUEUE_TYPE_RX,
70  	NETDEV_QUEUE_TYPE_TX,
71  };
72  
73  enum netdev_qstats_scope {
74  	NETDEV_QSTATS_SCOPE_QUEUE = 1,
75  };
76  
77  enum {
78  	NETDEV_A_DEV_IFINDEX = 1,
79  	NETDEV_A_DEV_PAD,
80  	NETDEV_A_DEV_XDP_FEATURES,
81  	NETDEV_A_DEV_XDP_ZC_MAX_SEGS,
82  	NETDEV_A_DEV_XDP_RX_METADATA_FEATURES,
83  	NETDEV_A_DEV_XSK_FEATURES,
84  
85  	__NETDEV_A_DEV_MAX,
86  	NETDEV_A_DEV_MAX = (__NETDEV_A_DEV_MAX - 1)
87  };
88  
89  enum {
90  	NETDEV_A_PAGE_POOL_ID = 1,
91  	NETDEV_A_PAGE_POOL_IFINDEX,
92  	NETDEV_A_PAGE_POOL_NAPI_ID,
93  	NETDEV_A_PAGE_POOL_INFLIGHT,
94  	NETDEV_A_PAGE_POOL_INFLIGHT_MEM,
95  	NETDEV_A_PAGE_POOL_DETACH_TIME,
96  
97  	__NETDEV_A_PAGE_POOL_MAX,
98  	NETDEV_A_PAGE_POOL_MAX = (__NETDEV_A_PAGE_POOL_MAX - 1)
99  };
100  
101  enum {
102  	NETDEV_A_PAGE_POOL_STATS_INFO = 1,
103  	NETDEV_A_PAGE_POOL_STATS_ALLOC_FAST = 8,
104  	NETDEV_A_PAGE_POOL_STATS_ALLOC_SLOW,
105  	NETDEV_A_PAGE_POOL_STATS_ALLOC_SLOW_HIGH_ORDER,
106  	NETDEV_A_PAGE_POOL_STATS_ALLOC_EMPTY,
107  	NETDEV_A_PAGE_POOL_STATS_ALLOC_REFILL,
108  	NETDEV_A_PAGE_POOL_STATS_ALLOC_WAIVE,
109  	NETDEV_A_PAGE_POOL_STATS_RECYCLE_CACHED,
110  	NETDEV_A_PAGE_POOL_STATS_RECYCLE_CACHE_FULL,
111  	NETDEV_A_PAGE_POOL_STATS_RECYCLE_RING,
112  	NETDEV_A_PAGE_POOL_STATS_RECYCLE_RING_FULL,
113  	NETDEV_A_PAGE_POOL_STATS_RECYCLE_RELEASED_REFCNT,
114  
115  	__NETDEV_A_PAGE_POOL_STATS_MAX,
116  	NETDEV_A_PAGE_POOL_STATS_MAX = (__NETDEV_A_PAGE_POOL_STATS_MAX - 1)
117  };
118  
119  enum {
120  	NETDEV_A_NAPI_IFINDEX = 1,
121  	NETDEV_A_NAPI_ID,
122  	NETDEV_A_NAPI_IRQ,
123  	NETDEV_A_NAPI_PID,
124  
125  	__NETDEV_A_NAPI_MAX,
126  	NETDEV_A_NAPI_MAX = (__NETDEV_A_NAPI_MAX - 1)
127  };
128  
129  enum {
130  	NETDEV_A_QUEUE_ID = 1,
131  	NETDEV_A_QUEUE_IFINDEX,
132  	NETDEV_A_QUEUE_TYPE,
133  	NETDEV_A_QUEUE_NAPI_ID,
134  
135  	__NETDEV_A_QUEUE_MAX,
136  	NETDEV_A_QUEUE_MAX = (__NETDEV_A_QUEUE_MAX - 1)
137  };
138  
139  enum {
140  	NETDEV_A_QSTATS_IFINDEX = 1,
141  	NETDEV_A_QSTATS_QUEUE_TYPE,
142  	NETDEV_A_QSTATS_QUEUE_ID,
143  	NETDEV_A_QSTATS_SCOPE,
144  	NETDEV_A_QSTATS_RX_PACKETS = 8,
145  	NETDEV_A_QSTATS_RX_BYTES,
146  	NETDEV_A_QSTATS_TX_PACKETS,
147  	NETDEV_A_QSTATS_TX_BYTES,
148  	NETDEV_A_QSTATS_RX_ALLOC_FAIL,
149  	NETDEV_A_QSTATS_RX_HW_DROPS,
150  	NETDEV_A_QSTATS_RX_HW_DROP_OVERRUNS,
151  	NETDEV_A_QSTATS_RX_CSUM_COMPLETE,
152  	NETDEV_A_QSTATS_RX_CSUM_UNNECESSARY,
153  	NETDEV_A_QSTATS_RX_CSUM_NONE,
154  	NETDEV_A_QSTATS_RX_CSUM_BAD,
155  	NETDEV_A_QSTATS_RX_HW_GRO_PACKETS,
156  	NETDEV_A_QSTATS_RX_HW_GRO_BYTES,
157  	NETDEV_A_QSTATS_RX_HW_GRO_WIRE_PACKETS,
158  	NETDEV_A_QSTATS_RX_HW_GRO_WIRE_BYTES,
159  	NETDEV_A_QSTATS_RX_HW_DROP_RATELIMITS,
160  	NETDEV_A_QSTATS_TX_HW_DROPS,
161  	NETDEV_A_QSTATS_TX_HW_DROP_ERRORS,
162  	NETDEV_A_QSTATS_TX_CSUM_NONE,
163  	NETDEV_A_QSTATS_TX_NEEDS_CSUM,
164  	NETDEV_A_QSTATS_TX_HW_GSO_PACKETS,
165  	NETDEV_A_QSTATS_TX_HW_GSO_BYTES,
166  	NETDEV_A_QSTATS_TX_HW_GSO_WIRE_PACKETS,
167  	NETDEV_A_QSTATS_TX_HW_GSO_WIRE_BYTES,
168  	NETDEV_A_QSTATS_TX_HW_DROP_RATELIMITS,
169  	NETDEV_A_QSTATS_TX_STOP,
170  	NETDEV_A_QSTATS_TX_WAKE,
171  
172  	__NETDEV_A_QSTATS_MAX,
173  	NETDEV_A_QSTATS_MAX = (__NETDEV_A_QSTATS_MAX - 1)
174  };
175  
176  enum {
177  	NETDEV_CMD_DEV_GET = 1,
178  	NETDEV_CMD_DEV_ADD_NTF,
179  	NETDEV_CMD_DEV_DEL_NTF,
180  	NETDEV_CMD_DEV_CHANGE_NTF,
181  	NETDEV_CMD_PAGE_POOL_GET,
182  	NETDEV_CMD_PAGE_POOL_ADD_NTF,
183  	NETDEV_CMD_PAGE_POOL_DEL_NTF,
184  	NETDEV_CMD_PAGE_POOL_CHANGE_NTF,
185  	NETDEV_CMD_PAGE_POOL_STATS_GET,
186  	NETDEV_CMD_QUEUE_GET,
187  	NETDEV_CMD_NAPI_GET,
188  	NETDEV_CMD_QSTATS_GET,
189  
190  	__NETDEV_CMD_MAX,
191  	NETDEV_CMD_MAX = (__NETDEV_CMD_MAX - 1)
192  };
193  
194  #define NETDEV_MCGRP_MGMT	"mgmt"
195  #define NETDEV_MCGRP_PAGE_POOL	"page-pool"
196  
197  #endif /* _UAPI_LINUX_NETDEV_H */
198