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