1 /* SPDX-License-Identifier: ((GPL-2.0 WITH Lin 1 /* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */ 2 /* Do not edit directly, auto-generated from: 2 /* Do not edit directly, auto-generated from: */ 3 /* Documentation/netlink/specs/netdev.yam 3 /* Documentation/netlink/specs/netdev.yaml */ 4 /* YNL-GEN uapi header */ 4 /* YNL-GEN uapi header */ 5 5 6 #ifndef _UAPI_LINUX_NETDEV_H 6 #ifndef _UAPI_LINUX_NETDEV_H 7 #define _UAPI_LINUX_NETDEV_H 7 #define _UAPI_LINUX_NETDEV_H 8 8 9 #define NETDEV_FAMILY_NAME "netdev" 9 #define NETDEV_FAMILY_NAME "netdev" 10 #define NETDEV_FAMILY_VERSION 1 10 #define NETDEV_FAMILY_VERSION 1 11 11 12 /** 12 /** 13 * enum netdev_xdp_act 13 * enum netdev_xdp_act 14 * @NETDEV_XDP_ACT_BASIC: XDP features set sup !! 14 * @NETDEV_XDP_ACT_BASIC: XDP feautues set supported by all drivers 15 * (XDP_ABORTED, XDP_DROP, XDP_PASS, XDP_TX) 15 * (XDP_ABORTED, XDP_DROP, XDP_PASS, XDP_TX) 16 * @NETDEV_XDP_ACT_REDIRECT: The netdev suppor 16 * @NETDEV_XDP_ACT_REDIRECT: The netdev supports XDP_REDIRECT 17 * @NETDEV_XDP_ACT_NDO_XMIT: This feature info 17 * @NETDEV_XDP_ACT_NDO_XMIT: This feature informs if netdev implements 18 * ndo_xdp_xmit callback. 18 * ndo_xdp_xmit callback. 19 * @NETDEV_XDP_ACT_XSK_ZEROCOPY: This feature 19 * @NETDEV_XDP_ACT_XSK_ZEROCOPY: This feature informs if netdev supports AF_XDP 20 * in zero copy mode. 20 * in zero copy mode. 21 * @NETDEV_XDP_ACT_HW_OFFLOAD: This feature in 21 * @NETDEV_XDP_ACT_HW_OFFLOAD: This feature informs if netdev supports XDP hw 22 * offloading. 22 * offloading. 23 * @NETDEV_XDP_ACT_RX_SG: This feature informs 23 * @NETDEV_XDP_ACT_RX_SG: This feature informs if netdev implements non-linear 24 * XDP buffer support in the driver napi cal 24 * XDP buffer support in the driver napi callback. 25 * @NETDEV_XDP_ACT_NDO_XMIT_SG: This feature i 25 * @NETDEV_XDP_ACT_NDO_XMIT_SG: This feature informs if netdev implements 26 * non-linear XDP buffer support in ndo_xdp_ 26 * non-linear XDP buffer support in ndo_xdp_xmit callback. 27 */ 27 */ 28 enum netdev_xdp_act { 28 enum netdev_xdp_act { 29 NETDEV_XDP_ACT_BASIC = 1, 29 NETDEV_XDP_ACT_BASIC = 1, 30 NETDEV_XDP_ACT_REDIRECT = 2, 30 NETDEV_XDP_ACT_REDIRECT = 2, 31 NETDEV_XDP_ACT_NDO_XMIT = 4, 31 NETDEV_XDP_ACT_NDO_XMIT = 4, 32 NETDEV_XDP_ACT_XSK_ZEROCOPY = 8, 32 NETDEV_XDP_ACT_XSK_ZEROCOPY = 8, 33 NETDEV_XDP_ACT_HW_OFFLOAD = 16, 33 NETDEV_XDP_ACT_HW_OFFLOAD = 16, 34 NETDEV_XDP_ACT_RX_SG = 32, 34 NETDEV_XDP_ACT_RX_SG = 32, 35 NETDEV_XDP_ACT_NDO_XMIT_SG = 64, 35 NETDEV_XDP_ACT_NDO_XMIT_SG = 64, 36 36 37 /* private: */ << 38 NETDEV_XDP_ACT_MASK = 127, 37 NETDEV_XDP_ACT_MASK = 127, 39 }; 38 }; 40 39 41 /** << 42 * enum netdev_xdp_rx_metadata << 43 * @NETDEV_XDP_RX_METADATA_TIMESTAMP: Device i << 44 * timestamp via bpf_xdp_metadata_rx_timesta << 45 * @NETDEV_XDP_RX_METADATA_HASH: Device is cap << 46 * hash via bpf_xdp_metadata_rx_hash(). << 47 * @NETDEV_XDP_RX_METADATA_VLAN_TAG: Device is << 48 * packet VLAN tag via bpf_xdp_metadata_rx_v << 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 timestam << 59 * by the driver. << 60 * @NETDEV_XSK_FLAGS_TX_CHECKSUM: L3 checksum << 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 { 40 enum { 78 NETDEV_A_DEV_IFINDEX = 1, 41 NETDEV_A_DEV_IFINDEX = 1, 79 NETDEV_A_DEV_PAD, 42 NETDEV_A_DEV_PAD, 80 NETDEV_A_DEV_XDP_FEATURES, 43 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 44 85 __NETDEV_A_DEV_MAX, 45 __NETDEV_A_DEV_MAX, 86 NETDEV_A_DEV_MAX = (__NETDEV_A_DEV_MAX 46 NETDEV_A_DEV_MAX = (__NETDEV_A_DEV_MAX - 1) 87 }; 47 }; 88 48 89 enum { 49 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 NETDEV_A_PAGE_POOL_DMABUF, << 97 << 98 __NETDEV_A_PAGE_POOL_MAX, << 99 NETDEV_A_PAGE_POOL_MAX = (__NETDEV_A_P << 100 }; << 101 << 102 enum { << 103 NETDEV_A_PAGE_POOL_STATS_INFO = 1, << 104 NETDEV_A_PAGE_POOL_STATS_ALLOC_FAST = << 105 NETDEV_A_PAGE_POOL_STATS_ALLOC_SLOW, << 106 NETDEV_A_PAGE_POOL_STATS_ALLOC_SLOW_HI << 107 NETDEV_A_PAGE_POOL_STATS_ALLOC_EMPTY, << 108 NETDEV_A_PAGE_POOL_STATS_ALLOC_REFILL, << 109 NETDEV_A_PAGE_POOL_STATS_ALLOC_WAIVE, << 110 NETDEV_A_PAGE_POOL_STATS_RECYCLE_CACHE << 111 NETDEV_A_PAGE_POOL_STATS_RECYCLE_CACHE << 112 NETDEV_A_PAGE_POOL_STATS_RECYCLE_RING, << 113 NETDEV_A_PAGE_POOL_STATS_RECYCLE_RING_ << 114 NETDEV_A_PAGE_POOL_STATS_RECYCLE_RELEA << 115 << 116 __NETDEV_A_PAGE_POOL_STATS_MAX, << 117 NETDEV_A_PAGE_POOL_STATS_MAX = (__NETD << 118 }; << 119 << 120 enum { << 121 NETDEV_A_NAPI_IFINDEX = 1, << 122 NETDEV_A_NAPI_ID, << 123 NETDEV_A_NAPI_IRQ, << 124 NETDEV_A_NAPI_PID, << 125 << 126 __NETDEV_A_NAPI_MAX, << 127 NETDEV_A_NAPI_MAX = (__NETDEV_A_NAPI_M << 128 }; << 129 << 130 enum { << 131 NETDEV_A_QUEUE_ID = 1, << 132 NETDEV_A_QUEUE_IFINDEX, << 133 NETDEV_A_QUEUE_TYPE, << 134 NETDEV_A_QUEUE_NAPI_ID, << 135 NETDEV_A_QUEUE_DMABUF, << 136 << 137 __NETDEV_A_QUEUE_MAX, << 138 NETDEV_A_QUEUE_MAX = (__NETDEV_A_QUEUE << 139 }; << 140 << 141 enum { << 142 NETDEV_A_QSTATS_IFINDEX = 1, << 143 NETDEV_A_QSTATS_QUEUE_TYPE, << 144 NETDEV_A_QSTATS_QUEUE_ID, << 145 NETDEV_A_QSTATS_SCOPE, << 146 NETDEV_A_QSTATS_RX_PACKETS = 8, << 147 NETDEV_A_QSTATS_RX_BYTES, << 148 NETDEV_A_QSTATS_TX_PACKETS, << 149 NETDEV_A_QSTATS_TX_BYTES, << 150 NETDEV_A_QSTATS_RX_ALLOC_FAIL, << 151 NETDEV_A_QSTATS_RX_HW_DROPS, << 152 NETDEV_A_QSTATS_RX_HW_DROP_OVERRUNS, << 153 NETDEV_A_QSTATS_RX_CSUM_COMPLETE, << 154 NETDEV_A_QSTATS_RX_CSUM_UNNECESSARY, << 155 NETDEV_A_QSTATS_RX_CSUM_NONE, << 156 NETDEV_A_QSTATS_RX_CSUM_BAD, << 157 NETDEV_A_QSTATS_RX_HW_GRO_PACKETS, << 158 NETDEV_A_QSTATS_RX_HW_GRO_BYTES, << 159 NETDEV_A_QSTATS_RX_HW_GRO_WIRE_PACKETS << 160 NETDEV_A_QSTATS_RX_HW_GRO_WIRE_BYTES, << 161 NETDEV_A_QSTATS_RX_HW_DROP_RATELIMITS, << 162 NETDEV_A_QSTATS_TX_HW_DROPS, << 163 NETDEV_A_QSTATS_TX_HW_DROP_ERRORS, << 164 NETDEV_A_QSTATS_TX_CSUM_NONE, << 165 NETDEV_A_QSTATS_TX_NEEDS_CSUM, << 166 NETDEV_A_QSTATS_TX_HW_GSO_PACKETS, << 167 NETDEV_A_QSTATS_TX_HW_GSO_BYTES, << 168 NETDEV_A_QSTATS_TX_HW_GSO_WIRE_PACKETS << 169 NETDEV_A_QSTATS_TX_HW_GSO_WIRE_BYTES, << 170 NETDEV_A_QSTATS_TX_HW_DROP_RATELIMITS, << 171 NETDEV_A_QSTATS_TX_STOP, << 172 NETDEV_A_QSTATS_TX_WAKE, << 173 << 174 __NETDEV_A_QSTATS_MAX, << 175 NETDEV_A_QSTATS_MAX = (__NETDEV_A_QSTA << 176 }; << 177 << 178 enum { << 179 NETDEV_A_DMABUF_IFINDEX = 1, << 180 NETDEV_A_DMABUF_QUEUES, << 181 NETDEV_A_DMABUF_FD, << 182 NETDEV_A_DMABUF_ID, << 183 << 184 __NETDEV_A_DMABUF_MAX, << 185 NETDEV_A_DMABUF_MAX = (__NETDEV_A_DMAB << 186 }; << 187 << 188 enum { << 189 NETDEV_CMD_DEV_GET = 1, 50 NETDEV_CMD_DEV_GET = 1, 190 NETDEV_CMD_DEV_ADD_NTF, 51 NETDEV_CMD_DEV_ADD_NTF, 191 NETDEV_CMD_DEV_DEL_NTF, 52 NETDEV_CMD_DEV_DEL_NTF, 192 NETDEV_CMD_DEV_CHANGE_NTF, 53 NETDEV_CMD_DEV_CHANGE_NTF, 193 NETDEV_CMD_PAGE_POOL_GET, << 194 NETDEV_CMD_PAGE_POOL_ADD_NTF, << 195 NETDEV_CMD_PAGE_POOL_DEL_NTF, << 196 NETDEV_CMD_PAGE_POOL_CHANGE_NTF, << 197 NETDEV_CMD_PAGE_POOL_STATS_GET, << 198 NETDEV_CMD_QUEUE_GET, << 199 NETDEV_CMD_NAPI_GET, << 200 NETDEV_CMD_QSTATS_GET, << 201 NETDEV_CMD_BIND_RX, << 202 54 203 __NETDEV_CMD_MAX, 55 __NETDEV_CMD_MAX, 204 NETDEV_CMD_MAX = (__NETDEV_CMD_MAX - 1 56 NETDEV_CMD_MAX = (__NETDEV_CMD_MAX - 1) 205 }; 57 }; 206 58 207 #define NETDEV_MCGRP_MGMT "mgmt" 59 #define NETDEV_MCGRP_MGMT "mgmt" 208 #define NETDEV_MCGRP_PAGE_POOL "page-pool" << 209 60 210 #endif /* _UAPI_LINUX_NETDEV_H */ 61 #endif /* _UAPI_LINUX_NETDEV_H */ 211 62
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.