@@ -1211,6 +1211,83 @@ s! {
1211
1211
}
1212
1212
1213
1213
// 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
+
1214
1291
pub struct xsk_tx_metadata_completion {
1215
1292
pub tx_timestamp: crate :: __u64,
1216
1293
}
@@ -5639,13 +5716,46 @@ pub const SCHED_FLAG_UTIL_CLAMP_MIN: c_int = 0x20;
5639
5716
pub const SCHED_FLAG_UTIL_CLAMP_MAX : c_int = 0x40 ;
5640
5717
5641
5718
// 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 ;
5644
5755
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 ;
5647
5757
5648
- pub const XDP_TX_METADATA : __u32 = 1 << 1 ;
5758
+ pub const SOL_XDP : c_int = 283 ;
5649
5759
5650
5760
// linux/mount.h
5651
5761
pub const MOUNT_ATTR_RDONLY : crate :: __u64 = 0x00000001 ;
0 commit comments