1*8d67ca89SAndroid Build Coastguard Worker /* 2*8d67ca89SAndroid Build Coastguard Worker * This file is auto-generated. Modifications will be lost. 3*8d67ca89SAndroid Build Coastguard Worker * 4*8d67ca89SAndroid Build Coastguard Worker * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ 5*8d67ca89SAndroid Build Coastguard Worker * for more information. 6*8d67ca89SAndroid Build Coastguard Worker */ 7*8d67ca89SAndroid Build Coastguard Worker #ifndef _LINUX_IF_XDP_H 8*8d67ca89SAndroid Build Coastguard Worker #define _LINUX_IF_XDP_H 9*8d67ca89SAndroid Build Coastguard Worker #include <linux/types.h> 10*8d67ca89SAndroid Build Coastguard Worker #define XDP_SHARED_UMEM (1 << 0) 11*8d67ca89SAndroid Build Coastguard Worker #define XDP_COPY (1 << 1) 12*8d67ca89SAndroid Build Coastguard Worker #define XDP_ZEROCOPY (1 << 2) 13*8d67ca89SAndroid Build Coastguard Worker #define XDP_USE_NEED_WAKEUP (1 << 3) 14*8d67ca89SAndroid Build Coastguard Worker #define XDP_USE_SG (1 << 4) 15*8d67ca89SAndroid Build Coastguard Worker #define XDP_UMEM_UNALIGNED_CHUNK_FLAG (1 << 0) 16*8d67ca89SAndroid Build Coastguard Worker #define XDP_UMEM_TX_SW_CSUM (1 << 1) 17*8d67ca89SAndroid Build Coastguard Worker #define XDP_UMEM_TX_METADATA_LEN (1 << 2) 18*8d67ca89SAndroid Build Coastguard Worker struct sockaddr_xdp { 19*8d67ca89SAndroid Build Coastguard Worker __u16 sxdp_family; 20*8d67ca89SAndroid Build Coastguard Worker __u16 sxdp_flags; 21*8d67ca89SAndroid Build Coastguard Worker __u32 sxdp_ifindex; 22*8d67ca89SAndroid Build Coastguard Worker __u32 sxdp_queue_id; 23*8d67ca89SAndroid Build Coastguard Worker __u32 sxdp_shared_umem_fd; 24*8d67ca89SAndroid Build Coastguard Worker }; 25*8d67ca89SAndroid Build Coastguard Worker #define XDP_RING_NEED_WAKEUP (1 << 0) 26*8d67ca89SAndroid Build Coastguard Worker struct xdp_ring_offset { 27*8d67ca89SAndroid Build Coastguard Worker __u64 producer; 28*8d67ca89SAndroid Build Coastguard Worker __u64 consumer; 29*8d67ca89SAndroid Build Coastguard Worker __u64 desc; 30*8d67ca89SAndroid Build Coastguard Worker __u64 flags; 31*8d67ca89SAndroid Build Coastguard Worker }; 32*8d67ca89SAndroid Build Coastguard Worker struct xdp_mmap_offsets { 33*8d67ca89SAndroid Build Coastguard Worker struct xdp_ring_offset rx; 34*8d67ca89SAndroid Build Coastguard Worker struct xdp_ring_offset tx; 35*8d67ca89SAndroid Build Coastguard Worker struct xdp_ring_offset fr; 36*8d67ca89SAndroid Build Coastguard Worker struct xdp_ring_offset cr; 37*8d67ca89SAndroid Build Coastguard Worker }; 38*8d67ca89SAndroid Build Coastguard Worker #define XDP_MMAP_OFFSETS 1 39*8d67ca89SAndroid Build Coastguard Worker #define XDP_RX_RING 2 40*8d67ca89SAndroid Build Coastguard Worker #define XDP_TX_RING 3 41*8d67ca89SAndroid Build Coastguard Worker #define XDP_UMEM_REG 4 42*8d67ca89SAndroid Build Coastguard Worker #define XDP_UMEM_FILL_RING 5 43*8d67ca89SAndroid Build Coastguard Worker #define XDP_UMEM_COMPLETION_RING 6 44*8d67ca89SAndroid Build Coastguard Worker #define XDP_STATISTICS 7 45*8d67ca89SAndroid Build Coastguard Worker #define XDP_OPTIONS 8 46*8d67ca89SAndroid Build Coastguard Worker struct xdp_umem_reg { 47*8d67ca89SAndroid Build Coastguard Worker __u64 addr; 48*8d67ca89SAndroid Build Coastguard Worker __u64 len; 49*8d67ca89SAndroid Build Coastguard Worker __u32 chunk_size; 50*8d67ca89SAndroid Build Coastguard Worker __u32 headroom; 51*8d67ca89SAndroid Build Coastguard Worker __u32 flags; 52*8d67ca89SAndroid Build Coastguard Worker __u32 tx_metadata_len; 53*8d67ca89SAndroid Build Coastguard Worker }; 54*8d67ca89SAndroid Build Coastguard Worker struct xdp_statistics { 55*8d67ca89SAndroid Build Coastguard Worker __u64 rx_dropped; 56*8d67ca89SAndroid Build Coastguard Worker __u64 rx_invalid_descs; 57*8d67ca89SAndroid Build Coastguard Worker __u64 tx_invalid_descs; 58*8d67ca89SAndroid Build Coastguard Worker __u64 rx_ring_full; 59*8d67ca89SAndroid Build Coastguard Worker __u64 rx_fill_ring_empty_descs; 60*8d67ca89SAndroid Build Coastguard Worker __u64 tx_ring_empty_descs; 61*8d67ca89SAndroid Build Coastguard Worker }; 62*8d67ca89SAndroid Build Coastguard Worker struct xdp_options { 63*8d67ca89SAndroid Build Coastguard Worker __u32 flags; 64*8d67ca89SAndroid Build Coastguard Worker }; 65*8d67ca89SAndroid Build Coastguard Worker #define XDP_OPTIONS_ZEROCOPY (1 << 0) 66*8d67ca89SAndroid Build Coastguard Worker #define XDP_PGOFF_RX_RING 0 67*8d67ca89SAndroid Build Coastguard Worker #define XDP_PGOFF_TX_RING 0x80000000 68*8d67ca89SAndroid Build Coastguard Worker #define XDP_UMEM_PGOFF_FILL_RING 0x100000000ULL 69*8d67ca89SAndroid Build Coastguard Worker #define XDP_UMEM_PGOFF_COMPLETION_RING 0x180000000ULL 70*8d67ca89SAndroid Build Coastguard Worker #define XSK_UNALIGNED_BUF_OFFSET_SHIFT 48 71*8d67ca89SAndroid Build Coastguard Worker #define XSK_UNALIGNED_BUF_ADDR_MASK ((1ULL << XSK_UNALIGNED_BUF_OFFSET_SHIFT) - 1) 72*8d67ca89SAndroid Build Coastguard Worker #define XDP_TXMD_FLAGS_TIMESTAMP (1 << 0) 73*8d67ca89SAndroid Build Coastguard Worker #define XDP_TXMD_FLAGS_CHECKSUM (1 << 1) 74*8d67ca89SAndroid Build Coastguard Worker struct xsk_tx_metadata { 75*8d67ca89SAndroid Build Coastguard Worker __u64 flags; 76*8d67ca89SAndroid Build Coastguard Worker union { 77*8d67ca89SAndroid Build Coastguard Worker struct { 78*8d67ca89SAndroid Build Coastguard Worker __u16 csum_start; 79*8d67ca89SAndroid Build Coastguard Worker __u16 csum_offset; 80*8d67ca89SAndroid Build Coastguard Worker } request; 81*8d67ca89SAndroid Build Coastguard Worker struct { 82*8d67ca89SAndroid Build Coastguard Worker __u64 tx_timestamp; 83*8d67ca89SAndroid Build Coastguard Worker } completion; 84*8d67ca89SAndroid Build Coastguard Worker }; 85*8d67ca89SAndroid Build Coastguard Worker }; 86*8d67ca89SAndroid Build Coastguard Worker struct xdp_desc { 87*8d67ca89SAndroid Build Coastguard Worker __u64 addr; 88*8d67ca89SAndroid Build Coastguard Worker __u32 len; 89*8d67ca89SAndroid Build Coastguard Worker __u32 options; 90*8d67ca89SAndroid Build Coastguard Worker }; 91*8d67ca89SAndroid Build Coastguard Worker #define XDP_PKT_CONTD (1 << 0) 92*8d67ca89SAndroid Build Coastguard Worker #define XDP_TX_METADATA (1 << 1) 93*8d67ca89SAndroid Build Coastguard Worker #endif 94