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