@@ -1211,6 +1211,83 @@ s! {
12111211 }
12121212
12131213 // linux/if_xdp.h
1214+
1215+ pub struct sockaddr_xdp {
1216+ pub sxdp_family: crate :: __u16,
1217+ pub sxdp_flags: crate :: __u16,
1218+ pub sxdp_ifindex: crate :: __u32,
1219+ pub sxdp_queue_id: crate :: __u32,
1220+ pub sxdp_shared_umem_fd: crate :: __u32,
1221+ }
1222+
1223+ pub struct xdp_ring_offset {
1224+ pub producer: crate :: __u64,
1225+ pub consumer: crate :: __u64,
1226+ pub desc: crate :: __u64,
1227+ pub flags: crate :: __u64,
1228+ }
1229+
1230+ pub struct xdp_mmap_offsets {
1231+ pub rx: xdp_ring_offset,
1232+ pub tx: xdp_ring_offset,
1233+ pub fr: xdp_ring_offset,
1234+ pub cr: xdp_ring_offset,
1235+ }
1236+
1237+ pub struct xdp_ring_offset_v1 {
1238+ pub producer: crate :: __u64,
1239+ pub consumer: crate :: __u64,
1240+ pub desc: crate :: __u64,
1241+ }
1242+
1243+ pub struct xdp_mmap_offsets_v1 {
1244+ pub rx: xdp_ring_offset_v1,
1245+ pub tx: xdp_ring_offset_v1,
1246+ pub fr: xdp_ring_offset_v1,
1247+ pub cr: xdp_ring_offset_v1,
1248+ }
1249+
1250+ pub struct xdp_umem_reg {
1251+ pub addr: crate :: __u64,
1252+ pub len: crate :: __u64,
1253+ pub chunk_size: crate :: __u32,
1254+ pub headroom: crate :: __u32,
1255+ pub flags: crate :: __u32,
1256+ pub tx_metadata_len: crate :: __u32,
1257+ }
1258+
1259+ pub struct xdp_umem_reg_v1 {
1260+ pub addr: crate :: __u64,
1261+ pub len: crate :: __u64,
1262+ pub chunk_size: crate :: __u32,
1263+ pub headroom: crate :: __u32,
1264+ }
1265+
1266+ pub struct xdp_statistics {
1267+ pub rx_dropped: crate :: __u64,
1268+ pub rx_invalid_descs: crate :: __u64,
1269+ pub tx_invalid_descs: crate :: __u64,
1270+ pub rx_ring_full: crate :: __u64,
1271+ pub rx_fill_ring_empty_descs: crate :: __u64,
1272+ pub tx_ring_empty_descs: crate :: __u64,
1273+ }
1274+
1275+ pub struct xdp_statistics_v1 {
1276+ pub rx_dropped: crate :: __u64,
1277+ pub rx_invalid_descs: crate :: __u64,
1278+ pub tx_invalid_descs: crate :: __u64,
1279+ }
1280+
1281+ pub struct xdp_options {
1282+ pub flags: crate :: __u32,
1283+ }
1284+
1285+ pub struct xdp_desc {
1286+ pub addr: crate :: __u64,
1287+ pub len: crate :: __u32,
1288+ pub options: crate :: __u32,
1289+ }
1290+
12141291 pub struct xsk_tx_metadata_completion {
12151292 pub tx_timestamp: crate :: __u64,
12161293 }
@@ -5639,13 +5716,46 @@ pub const SCHED_FLAG_UTIL_CLAMP_MIN: c_int = 0x20;
56395716pub const SCHED_FLAG_UTIL_CLAMP_MAX : c_int = 0x40 ;
56405717
56415718// linux/if_xdp.h
5642- pub const XDP_UMEM_TX_SW_CSUM : __u32 = 1 << 1 ;
5643- pub const XDP_UMEM_TX_METADATA_LEN : __u32 = 1 << 2 ;
5719+ pub const XDP_SHARED_UMEM : crate :: __u16 = 1 << 0 ;
5720+ pub const XDP_COPY : crate :: __u16 = 1 << 1 ;
5721+ pub const XDP_ZEROCOPY : crate :: __u16 = 1 << 2 ;
5722+ pub const XDP_USE_NEED_WAKEUP : crate :: __u16 = 1 << 3 ;
5723+ pub const XDP_USE_SG : crate :: __u16 = 1 << 4 ;
5724+
5725+ pub const XDP_UMEM_UNALIGNED_CHUNK_FLAG : crate :: __u32 = 1 << 0 ;
5726+
5727+ pub const XDP_RING_NEED_WAKEUP : crate :: __u32 = 1 << 0 ;
5728+
5729+ pub const XDP_MMAP_OFFSETS : c_int = 1 ;
5730+ pub const XDP_RX_RING : c_int = 2 ;
5731+ pub const XDP_TX_RING : c_int = 3 ;
5732+ pub const XDP_UMEM_REG : c_int = 4 ;
5733+ pub const XDP_UMEM_FILL_RING : c_int = 5 ;
5734+ pub const XDP_UMEM_COMPLETION_RING : c_int = 6 ;
5735+ pub const XDP_STATISTICS : c_int = 7 ;
5736+ pub const XDP_OPTIONS : c_int = 8 ;
5737+
5738+ pub const XDP_OPTIONS_ZEROCOPY : crate :: __u32 = 1 << 0 ;
5739+
5740+ pub const XDP_PGOFF_RX_RING : crate :: off_t = 0 ;
5741+ pub const XDP_PGOFF_TX_RING : crate :: off_t = 0x80000000 ;
5742+ pub const XDP_UMEM_PGOFF_FILL_RING : crate :: c_ulonglong = 0x100000000 ;
5743+ pub const XDP_UMEM_PGOFF_COMPLETION_RING : crate :: c_ulonglong = 0x180000000 ;
5744+
5745+ pub const XSK_UNALIGNED_BUF_OFFSET_SHIFT : crate :: c_int = 48 ;
5746+ pub const XSK_UNALIGNED_BUF_ADDR_MASK : crate :: c_ulonglong = ( 1 << XSK_UNALIGNED_BUF_OFFSET_SHIFT ) - 1 ;
5747+
5748+ pub const XDP_PKT_CONTD : crate :: __u32 = 1 << 0 ;
5749+
5750+ pub const XDP_UMEM_TX_SW_CSUM : crate :: __u32 = 1 << 1 ;
5751+ pub const XDP_UMEM_TX_METADATA_LEN : crate :: __u32 = 1 << 2 ;
5752+
5753+ pub const XDP_TXMD_FLAGS_TIMESTAMP : crate :: __u32 = 1 << 0 ;
5754+ pub const XDP_TXMD_FLAGS_CHECKSUM : crate :: __u32 = 1 << 1 ;
56445755
5645- pub const XDP_TXMD_FLAGS_TIMESTAMP : __u32 = 1 << 0 ;
5646- pub const XDP_TXMD_FLAGS_CHECKSUM : __u32 = 1 << 1 ;
5756+ pub const XDP_TX_METADATA : crate :: __u32 = 1 << 1 ;
56475757
5648- pub const XDP_TX_METADATA : __u32 = 1 << 1 ;
5758+ pub const SOL_XDP : c_int = 283 ;
56495759
56505760// linux/mount.h
56515761pub const MOUNT_ATTR_RDONLY : crate :: __u64 = 0x00000001 ;
0 commit comments