Przeglądaj źródła

Merge pull request #381 from aya-rs/codegen

Update libbpf to efd33720cdf4a0049323403df5daad0e9e894b3d
Michal Rostecki 2 lat temu
rodzic
commit
49c5a94aa0

+ 2 - 1
aya/src/generated/btf_internal_bindings.rs

@@ -1,4 +1,4 @@
-/* automatically generated by rust-bindgen 0.59.2 */
+/* automatically generated by rust-bindgen 0.60.1 */
 
 pub type __u8 = ::std::os::raw::c_uchar;
 pub type __u16 = ::std::os::raw::c_ushort;
@@ -17,6 +17,7 @@ pub mod bpf_core_relo_kind {
     pub const BPF_CORE_TYPE_SIZE: Type = 9;
     pub const BPF_CORE_ENUMVAL_EXISTS: Type = 10;
     pub const BPF_CORE_ENUMVAL_VALUE: Type = 11;
+    pub const BPF_CORE_TYPE_MATCHES: Type = 12;
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]

+ 215 - 117
aya/src/generated/linux_bindings_aarch64.rs

@@ -1,4 +1,4 @@
-/* automatically generated by rust-bindgen 0.59.2 */
+/* automatically generated by rust-bindgen 0.60.1 */
 
 #[repr(C)]
 #[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
@@ -392,26 +392,27 @@ pub enum bpf_attach_type {
     BPF_SK_REUSEPORT_SELECT_OR_MIGRATE = 40,
     BPF_PERF_EVENT = 41,
     BPF_TRACE_KPROBE_MULTI = 42,
-    __MAX_BPF_ATTACH_TYPE = 43,
+    BPF_LSM_CGROUP = 43,
+    __MAX_BPF_ATTACH_TYPE = 44,
 }
-pub const BPF_ANY: ::std::os::raw::c_uint = 0;
-pub const BPF_NOEXIST: ::std::os::raw::c_uint = 1;
-pub const BPF_EXIST: ::std::os::raw::c_uint = 2;
-pub const BPF_F_LOCK: ::std::os::raw::c_uint = 4;
+pub const BPF_ANY: _bindgen_ty_2 = 0;
+pub const BPF_NOEXIST: _bindgen_ty_2 = 1;
+pub const BPF_EXIST: _bindgen_ty_2 = 2;
+pub const BPF_F_LOCK: _bindgen_ty_2 = 4;
 pub type _bindgen_ty_2 = ::std::os::raw::c_uint;
-pub const BPF_F_NO_PREALLOC: ::std::os::raw::c_uint = 1;
-pub const BPF_F_NO_COMMON_LRU: ::std::os::raw::c_uint = 2;
-pub const BPF_F_NUMA_NODE: ::std::os::raw::c_uint = 4;
-pub const BPF_F_RDONLY: ::std::os::raw::c_uint = 8;
-pub const BPF_F_WRONLY: ::std::os::raw::c_uint = 16;
-pub const BPF_F_STACK_BUILD_ID: ::std::os::raw::c_uint = 32;
-pub const BPF_F_ZERO_SEED: ::std::os::raw::c_uint = 64;
-pub const BPF_F_RDONLY_PROG: ::std::os::raw::c_uint = 128;
-pub const BPF_F_WRONLY_PROG: ::std::os::raw::c_uint = 256;
-pub const BPF_F_CLONE: ::std::os::raw::c_uint = 512;
-pub const BPF_F_MMAPABLE: ::std::os::raw::c_uint = 1024;
-pub const BPF_F_PRESERVE_ELEMS: ::std::os::raw::c_uint = 2048;
-pub const BPF_F_INNER_MAP: ::std::os::raw::c_uint = 4096;
+pub const BPF_F_NO_PREALLOC: _bindgen_ty_3 = 1;
+pub const BPF_F_NO_COMMON_LRU: _bindgen_ty_3 = 2;
+pub const BPF_F_NUMA_NODE: _bindgen_ty_3 = 4;
+pub const BPF_F_RDONLY: _bindgen_ty_3 = 8;
+pub const BPF_F_WRONLY: _bindgen_ty_3 = 16;
+pub const BPF_F_STACK_BUILD_ID: _bindgen_ty_3 = 32;
+pub const BPF_F_ZERO_SEED: _bindgen_ty_3 = 64;
+pub const BPF_F_RDONLY_PROG: _bindgen_ty_3 = 128;
+pub const BPF_F_WRONLY_PROG: _bindgen_ty_3 = 256;
+pub const BPF_F_CLONE: _bindgen_ty_3 = 512;
+pub const BPF_F_MMAPABLE: _bindgen_ty_3 = 1024;
+pub const BPF_F_PRESERVE_ELEMS: _bindgen_ty_3 = 2048;
+pub const BPF_F_INNER_MAP: _bindgen_ty_3 = 4096;
 pub type _bindgen_ty_3 = ::std::os::raw::c_uint;
 #[repr(C)]
 #[derive(Copy, Clone)]
@@ -582,6 +583,7 @@ pub struct bpf_attr__bindgen_ty_10 {
     pub attach_flags: __u32,
     pub prog_ids: __u64,
     pub prog_cnt: __u32,
+    pub prog_attach_flags: __u64,
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
@@ -692,55 +694,55 @@ pub struct bpf_attr__bindgen_ty_19 {
     pub map_fd: __u32,
     pub flags: __u32,
 }
-pub const BPF_F_RECOMPUTE_CSUM: ::std::os::raw::c_uint = 1;
-pub const BPF_F_INVALIDATE_HASH: ::std::os::raw::c_uint = 2;
+pub const BPF_F_RECOMPUTE_CSUM: _bindgen_ty_4 = 1;
+pub const BPF_F_INVALIDATE_HASH: _bindgen_ty_4 = 2;
 pub type _bindgen_ty_4 = ::std::os::raw::c_uint;
-pub const BPF_F_HDR_FIELD_MASK: ::std::os::raw::c_uint = 15;
+pub const BPF_F_HDR_FIELD_MASK: _bindgen_ty_5 = 15;
 pub type _bindgen_ty_5 = ::std::os::raw::c_uint;
-pub const BPF_F_PSEUDO_HDR: ::std::os::raw::c_uint = 16;
-pub const BPF_F_MARK_MANGLED_0: ::std::os::raw::c_uint = 32;
-pub const BPF_F_MARK_ENFORCE: ::std::os::raw::c_uint = 64;
+pub const BPF_F_PSEUDO_HDR: _bindgen_ty_6 = 16;
+pub const BPF_F_MARK_MANGLED_0: _bindgen_ty_6 = 32;
+pub const BPF_F_MARK_ENFORCE: _bindgen_ty_6 = 64;
 pub type _bindgen_ty_6 = ::std::os::raw::c_uint;
-pub const BPF_F_INGRESS: ::std::os::raw::c_uint = 1;
+pub const BPF_F_INGRESS: _bindgen_ty_7 = 1;
 pub type _bindgen_ty_7 = ::std::os::raw::c_uint;
-pub const BPF_F_TUNINFO_IPV6: ::std::os::raw::c_uint = 1;
+pub const BPF_F_TUNINFO_IPV6: _bindgen_ty_8 = 1;
 pub type _bindgen_ty_8 = ::std::os::raw::c_uint;
-pub const BPF_F_SKIP_FIELD_MASK: ::std::os::raw::c_uint = 255;
-pub const BPF_F_USER_STACK: ::std::os::raw::c_uint = 256;
-pub const BPF_F_FAST_STACK_CMP: ::std::os::raw::c_uint = 512;
-pub const BPF_F_REUSE_STACKID: ::std::os::raw::c_uint = 1024;
-pub const BPF_F_USER_BUILD_ID: ::std::os::raw::c_uint = 2048;
+pub const BPF_F_SKIP_FIELD_MASK: _bindgen_ty_9 = 255;
+pub const BPF_F_USER_STACK: _bindgen_ty_9 = 256;
+pub const BPF_F_FAST_STACK_CMP: _bindgen_ty_9 = 512;
+pub const BPF_F_REUSE_STACKID: _bindgen_ty_9 = 1024;
+pub const BPF_F_USER_BUILD_ID: _bindgen_ty_9 = 2048;
 pub type _bindgen_ty_9 = ::std::os::raw::c_uint;
-pub const BPF_F_ZERO_CSUM_TX: ::std::os::raw::c_uint = 2;
-pub const BPF_F_DONT_FRAGMENT: ::std::os::raw::c_uint = 4;
-pub const BPF_F_SEQ_NUMBER: ::std::os::raw::c_uint = 8;
+pub const BPF_F_ZERO_CSUM_TX: _bindgen_ty_10 = 2;
+pub const BPF_F_DONT_FRAGMENT: _bindgen_ty_10 = 4;
+pub const BPF_F_SEQ_NUMBER: _bindgen_ty_10 = 8;
 pub type _bindgen_ty_10 = ::std::os::raw::c_uint;
-pub const BPF_F_INDEX_MASK: ::std::os::raw::c_ulong = 4294967295;
-pub const BPF_F_CURRENT_CPU: ::std::os::raw::c_ulong = 4294967295;
-pub const BPF_F_CTXLEN_MASK: ::std::os::raw::c_ulong = 4503595332403200;
+pub const BPF_F_INDEX_MASK: _bindgen_ty_11 = 4294967295;
+pub const BPF_F_CURRENT_CPU: _bindgen_ty_11 = 4294967295;
+pub const BPF_F_CTXLEN_MASK: _bindgen_ty_11 = 4503595332403200;
 pub type _bindgen_ty_11 = ::std::os::raw::c_ulong;
-pub const BPF_F_CURRENT_NETNS: ::std::os::raw::c_int = -1;
+pub const BPF_F_CURRENT_NETNS: _bindgen_ty_12 = -1;
 pub type _bindgen_ty_12 = ::std::os::raw::c_int;
-pub const BPF_F_ADJ_ROOM_FIXED_GSO: ::std::os::raw::c_uint = 1;
-pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV4: ::std::os::raw::c_uint = 2;
-pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV6: ::std::os::raw::c_uint = 4;
-pub const BPF_F_ADJ_ROOM_ENCAP_L4_GRE: ::std::os::raw::c_uint = 8;
-pub const BPF_F_ADJ_ROOM_ENCAP_L4_UDP: ::std::os::raw::c_uint = 16;
-pub const BPF_F_ADJ_ROOM_NO_CSUM_RESET: ::std::os::raw::c_uint = 32;
-pub const BPF_F_ADJ_ROOM_ENCAP_L2_ETH: ::std::os::raw::c_uint = 64;
+pub const BPF_F_ADJ_ROOM_FIXED_GSO: _bindgen_ty_14 = 1;
+pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV4: _bindgen_ty_14 = 2;
+pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV6: _bindgen_ty_14 = 4;
+pub const BPF_F_ADJ_ROOM_ENCAP_L4_GRE: _bindgen_ty_14 = 8;
+pub const BPF_F_ADJ_ROOM_ENCAP_L4_UDP: _bindgen_ty_14 = 16;
+pub const BPF_F_ADJ_ROOM_NO_CSUM_RESET: _bindgen_ty_14 = 32;
+pub const BPF_F_ADJ_ROOM_ENCAP_L2_ETH: _bindgen_ty_14 = 64;
 pub type _bindgen_ty_14 = ::std::os::raw::c_uint;
-pub const BPF_F_SYSCTL_BASE_NAME: ::std::os::raw::c_uint = 1;
+pub const BPF_F_SYSCTL_BASE_NAME: _bindgen_ty_16 = 1;
 pub type _bindgen_ty_16 = ::std::os::raw::c_uint;
-pub const BPF_F_GET_BRANCH_RECORDS_SIZE: ::std::os::raw::c_uint = 1;
+pub const BPF_F_GET_BRANCH_RECORDS_SIZE: _bindgen_ty_18 = 1;
 pub type _bindgen_ty_18 = ::std::os::raw::c_uint;
-pub const BPF_RINGBUF_BUSY_BIT: ::std::os::raw::c_uint = 2147483648;
-pub const BPF_RINGBUF_DISCARD_BIT: ::std::os::raw::c_uint = 1073741824;
-pub const BPF_RINGBUF_HDR_SZ: ::std::os::raw::c_uint = 8;
+pub const BPF_RINGBUF_BUSY_BIT: _bindgen_ty_21 = 2147483648;
+pub const BPF_RINGBUF_DISCARD_BIT: _bindgen_ty_21 = 1073741824;
+pub const BPF_RINGBUF_HDR_SZ: _bindgen_ty_21 = 8;
 pub type _bindgen_ty_21 = ::std::os::raw::c_uint;
-pub const BPF_F_BPRM_SECUREEXEC: ::std::os::raw::c_uint = 1;
+pub const BPF_F_BPRM_SECUREEXEC: _bindgen_ty_23 = 1;
 pub type _bindgen_ty_23 = ::std::os::raw::c_uint;
-pub const BPF_F_BROADCAST: ::std::os::raw::c_uint = 8;
-pub const BPF_F_EXCLUDE_INGRESS: ::std::os::raw::c_uint = 16;
+pub const BPF_F_BROADCAST: _bindgen_ty_24 = 8;
+pub const BPF_F_EXCLUDE_INGRESS: _bindgen_ty_24 = 16;
 pub type _bindgen_ty_24 = ::std::os::raw::c_uint;
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
@@ -782,6 +784,8 @@ pub struct bpf_prog_info {
     pub run_cnt: __u64,
     pub recursion_misses: __u64,
     pub verified_insns: __u32,
+    pub attach_btf_obj_id: __u32,
+    pub attach_btf_id: __u32,
 }
 impl bpf_prog_info {
     #[inline]
@@ -807,6 +811,34 @@ impl bpf_prog_info {
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
+pub struct bpf_map_info {
+    pub type_: __u32,
+    pub id: __u32,
+    pub key_size: __u32,
+    pub value_size: __u32,
+    pub max_entries: __u32,
+    pub map_flags: __u32,
+    pub name: [::std::os::raw::c_char; 16usize],
+    pub ifindex: __u32,
+    pub btf_vmlinux_value_type_id: __u32,
+    pub netns_dev: __u64,
+    pub netns_ino: __u64,
+    pub btf_id: __u32,
+    pub btf_key_type_id: __u32,
+    pub btf_value_type_id: __u32,
+    pub _bitfield_align_1: [u8; 0],
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+    pub map_extra: __u64,
+}
+impl bpf_map_info {
+    #[inline]
+    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+        __bindgen_bitfield_unit
+    }
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
 pub struct bpf_btf_info {
     pub btf: __u64,
     pub btf_size: __u32,
@@ -816,6 +848,71 @@ pub struct bpf_btf_info {
     pub kernel_btf: __u32,
 }
 #[repr(C)]
+#[derive(Copy, Clone)]
+pub struct bpf_link_info {
+    pub type_: __u32,
+    pub id: __u32,
+    pub prog_id: __u32,
+    pub __bindgen_anon_1: bpf_link_info__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_link_info__bindgen_ty_1 {
+    pub raw_tracepoint: bpf_link_info__bindgen_ty_1__bindgen_ty_1,
+    pub tracing: bpf_link_info__bindgen_ty_1__bindgen_ty_2,
+    pub cgroup: bpf_link_info__bindgen_ty_1__bindgen_ty_3,
+    pub iter: bpf_link_info__bindgen_ty_1__bindgen_ty_4,
+    pub netns: bpf_link_info__bindgen_ty_1__bindgen_ty_5,
+    pub xdp: bpf_link_info__bindgen_ty_1__bindgen_ty_6,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_1 {
+    pub tp_name: __u64,
+    pub tp_name_len: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_2 {
+    pub attach_type: __u32,
+    pub target_obj_id: __u32,
+    pub target_btf_id: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_3 {
+    pub cgroup_id: __u64,
+    pub attach_type: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_4 {
+    pub target_name: __u64,
+    pub target_name_len: __u32,
+    pub __bindgen_anon_1: bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1 {
+    pub map: bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1 {
+    pub map_id: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_5 {
+    pub netns_ino: __u32,
+    pub attach_type: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_6 {
+    pub ifindex: __u32,
+}
+#[repr(C)]
 #[derive(Debug, Copy, Clone)]
 pub struct bpf_func_info {
     pub insn_off: __u32,
@@ -854,27 +951,28 @@ pub union btf_type__bindgen_ty_1 {
     pub size: __u32,
     pub type_: __u32,
 }
-pub const BTF_KIND_UNKN: ::std::os::raw::c_uint = 0;
-pub const BTF_KIND_INT: ::std::os::raw::c_uint = 1;
-pub const BTF_KIND_PTR: ::std::os::raw::c_uint = 2;
-pub const BTF_KIND_ARRAY: ::std::os::raw::c_uint = 3;
-pub const BTF_KIND_STRUCT: ::std::os::raw::c_uint = 4;
-pub const BTF_KIND_UNION: ::std::os::raw::c_uint = 5;
-pub const BTF_KIND_ENUM: ::std::os::raw::c_uint = 6;
-pub const BTF_KIND_FWD: ::std::os::raw::c_uint = 7;
-pub const BTF_KIND_TYPEDEF: ::std::os::raw::c_uint = 8;
-pub const BTF_KIND_VOLATILE: ::std::os::raw::c_uint = 9;
-pub const BTF_KIND_CONST: ::std::os::raw::c_uint = 10;
-pub const BTF_KIND_RESTRICT: ::std::os::raw::c_uint = 11;
-pub const BTF_KIND_FUNC: ::std::os::raw::c_uint = 12;
-pub const BTF_KIND_FUNC_PROTO: ::std::os::raw::c_uint = 13;
-pub const BTF_KIND_VAR: ::std::os::raw::c_uint = 14;
-pub const BTF_KIND_DATASEC: ::std::os::raw::c_uint = 15;
-pub const BTF_KIND_FLOAT: ::std::os::raw::c_uint = 16;
-pub const BTF_KIND_DECL_TAG: ::std::os::raw::c_uint = 17;
-pub const BTF_KIND_TYPE_TAG: ::std::os::raw::c_uint = 18;
-pub const NR_BTF_KINDS: ::std::os::raw::c_uint = 19;
-pub const BTF_KIND_MAX: ::std::os::raw::c_uint = 18;
+pub const BTF_KIND_UNKN: _bindgen_ty_38 = 0;
+pub const BTF_KIND_INT: _bindgen_ty_38 = 1;
+pub const BTF_KIND_PTR: _bindgen_ty_38 = 2;
+pub const BTF_KIND_ARRAY: _bindgen_ty_38 = 3;
+pub const BTF_KIND_STRUCT: _bindgen_ty_38 = 4;
+pub const BTF_KIND_UNION: _bindgen_ty_38 = 5;
+pub const BTF_KIND_ENUM: _bindgen_ty_38 = 6;
+pub const BTF_KIND_FWD: _bindgen_ty_38 = 7;
+pub const BTF_KIND_TYPEDEF: _bindgen_ty_38 = 8;
+pub const BTF_KIND_VOLATILE: _bindgen_ty_38 = 9;
+pub const BTF_KIND_CONST: _bindgen_ty_38 = 10;
+pub const BTF_KIND_RESTRICT: _bindgen_ty_38 = 11;
+pub const BTF_KIND_FUNC: _bindgen_ty_38 = 12;
+pub const BTF_KIND_FUNC_PROTO: _bindgen_ty_38 = 13;
+pub const BTF_KIND_VAR: _bindgen_ty_38 = 14;
+pub const BTF_KIND_DATASEC: _bindgen_ty_38 = 15;
+pub const BTF_KIND_FLOAT: _bindgen_ty_38 = 16;
+pub const BTF_KIND_DECL_TAG: _bindgen_ty_38 = 17;
+pub const BTF_KIND_TYPE_TAG: _bindgen_ty_38 = 18;
+pub const BTF_KIND_ENUM64: _bindgen_ty_38 = 19;
+pub const NR_BTF_KINDS: _bindgen_ty_38 = 20;
+pub const BTF_KIND_MAX: _bindgen_ty_38 = 19;
 pub type _bindgen_ty_38 = ::std::os::raw::c_uint;
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
@@ -902,9 +1000,9 @@ pub struct btf_param {
     pub name_off: __u32,
     pub type_: __u32,
 }
-pub const BTF_VAR_STATIC: ::std::os::raw::c_uint = 0;
-pub const BTF_VAR_GLOBAL_ALLOCATED: ::std::os::raw::c_uint = 1;
-pub const BTF_VAR_GLOBAL_EXTERN: ::std::os::raw::c_uint = 2;
+pub const BTF_VAR_STATIC: _bindgen_ty_39 = 0;
+pub const BTF_VAR_GLOBAL_ALLOCATED: _bindgen_ty_39 = 1;
+pub const BTF_VAR_GLOBAL_EXTERN: _bindgen_ty_39 = 2;
 pub type _bindgen_ty_39 = ::std::os::raw::c_uint;
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
@@ -1901,16 +1999,16 @@ pub enum perf_event_type {
     PERF_RECORD_AUX_OUTPUT_HW_ID = 21,
     PERF_RECORD_MAX = 22,
 }
-pub const IFLA_XDP_UNSPEC: ::std::os::raw::c_uint = 0;
-pub const IFLA_XDP_FD: ::std::os::raw::c_uint = 1;
-pub const IFLA_XDP_ATTACHED: ::std::os::raw::c_uint = 2;
-pub const IFLA_XDP_FLAGS: ::std::os::raw::c_uint = 3;
-pub const IFLA_XDP_PROG_ID: ::std::os::raw::c_uint = 4;
-pub const IFLA_XDP_DRV_PROG_ID: ::std::os::raw::c_uint = 5;
-pub const IFLA_XDP_SKB_PROG_ID: ::std::os::raw::c_uint = 6;
-pub const IFLA_XDP_HW_PROG_ID: ::std::os::raw::c_uint = 7;
-pub const IFLA_XDP_EXPECTED_FD: ::std::os::raw::c_uint = 8;
-pub const __IFLA_XDP_MAX: ::std::os::raw::c_uint = 9;
+pub const IFLA_XDP_UNSPEC: _bindgen_ty_85 = 0;
+pub const IFLA_XDP_FD: _bindgen_ty_85 = 1;
+pub const IFLA_XDP_ATTACHED: _bindgen_ty_85 = 2;
+pub const IFLA_XDP_FLAGS: _bindgen_ty_85 = 3;
+pub const IFLA_XDP_PROG_ID: _bindgen_ty_85 = 4;
+pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_85 = 5;
+pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_85 = 6;
+pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_85 = 7;
+pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_85 = 8;
+pub const __IFLA_XDP_MAX: _bindgen_ty_85 = 9;
 pub type _bindgen_ty_85 = ::std::os::raw::c_uint;
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
@@ -1933,36 +2031,36 @@ pub struct tcmsg {
     pub tcm_parent: __u32,
     pub tcm_info: __u32,
 }
-pub const TCA_UNSPEC: ::std::os::raw::c_uint = 0;
-pub const TCA_KIND: ::std::os::raw::c_uint = 1;
-pub const TCA_OPTIONS: ::std::os::raw::c_uint = 2;
-pub const TCA_STATS: ::std::os::raw::c_uint = 3;
-pub const TCA_XSTATS: ::std::os::raw::c_uint = 4;
-pub const TCA_RATE: ::std::os::raw::c_uint = 5;
-pub const TCA_FCNT: ::std::os::raw::c_uint = 6;
-pub const TCA_STATS2: ::std::os::raw::c_uint = 7;
-pub const TCA_STAB: ::std::os::raw::c_uint = 8;
-pub const TCA_PAD: ::std::os::raw::c_uint = 9;
-pub const TCA_DUMP_INVISIBLE: ::std::os::raw::c_uint = 10;
-pub const TCA_CHAIN: ::std::os::raw::c_uint = 11;
-pub const TCA_HW_OFFLOAD: ::std::os::raw::c_uint = 12;
-pub const TCA_INGRESS_BLOCK: ::std::os::raw::c_uint = 13;
-pub const TCA_EGRESS_BLOCK: ::std::os::raw::c_uint = 14;
-pub const __TCA_MAX: ::std::os::raw::c_uint = 15;
+pub const TCA_UNSPEC: _bindgen_ty_98 = 0;
+pub const TCA_KIND: _bindgen_ty_98 = 1;
+pub const TCA_OPTIONS: _bindgen_ty_98 = 2;
+pub const TCA_STATS: _bindgen_ty_98 = 3;
+pub const TCA_XSTATS: _bindgen_ty_98 = 4;
+pub const TCA_RATE: _bindgen_ty_98 = 5;
+pub const TCA_FCNT: _bindgen_ty_98 = 6;
+pub const TCA_STATS2: _bindgen_ty_98 = 7;
+pub const TCA_STAB: _bindgen_ty_98 = 8;
+pub const TCA_PAD: _bindgen_ty_98 = 9;
+pub const TCA_DUMP_INVISIBLE: _bindgen_ty_98 = 10;
+pub const TCA_CHAIN: _bindgen_ty_98 = 11;
+pub const TCA_HW_OFFLOAD: _bindgen_ty_98 = 12;
+pub const TCA_INGRESS_BLOCK: _bindgen_ty_98 = 13;
+pub const TCA_EGRESS_BLOCK: _bindgen_ty_98 = 14;
+pub const __TCA_MAX: _bindgen_ty_98 = 15;
 pub type _bindgen_ty_98 = ::std::os::raw::c_uint;
-pub const TCA_BPF_UNSPEC: ::std::os::raw::c_uint = 0;
-pub const TCA_BPF_ACT: ::std::os::raw::c_uint = 1;
-pub const TCA_BPF_POLICE: ::std::os::raw::c_uint = 2;
-pub const TCA_BPF_CLASSID: ::std::os::raw::c_uint = 3;
-pub const TCA_BPF_OPS_LEN: ::std::os::raw::c_uint = 4;
-pub const TCA_BPF_OPS: ::std::os::raw::c_uint = 5;
-pub const TCA_BPF_FD: ::std::os::raw::c_uint = 6;
-pub const TCA_BPF_NAME: ::std::os::raw::c_uint = 7;
-pub const TCA_BPF_FLAGS: ::std::os::raw::c_uint = 8;
-pub const TCA_BPF_FLAGS_GEN: ::std::os::raw::c_uint = 9;
-pub const TCA_BPF_TAG: ::std::os::raw::c_uint = 10;
-pub const TCA_BPF_ID: ::std::os::raw::c_uint = 11;
-pub const __TCA_BPF_MAX: ::std::os::raw::c_uint = 12;
+pub const TCA_BPF_UNSPEC: _bindgen_ty_154 = 0;
+pub const TCA_BPF_ACT: _bindgen_ty_154 = 1;
+pub const TCA_BPF_POLICE: _bindgen_ty_154 = 2;
+pub const TCA_BPF_CLASSID: _bindgen_ty_154 = 3;
+pub const TCA_BPF_OPS_LEN: _bindgen_ty_154 = 4;
+pub const TCA_BPF_OPS: _bindgen_ty_154 = 5;
+pub const TCA_BPF_FD: _bindgen_ty_154 = 6;
+pub const TCA_BPF_NAME: _bindgen_ty_154 = 7;
+pub const TCA_BPF_FLAGS: _bindgen_ty_154 = 8;
+pub const TCA_BPF_FLAGS_GEN: _bindgen_ty_154 = 9;
+pub const TCA_BPF_TAG: _bindgen_ty_154 = 10;
+pub const TCA_BPF_ID: _bindgen_ty_154 = 11;
+pub const __TCA_BPF_MAX: _bindgen_ty_154 = 12;
 pub type _bindgen_ty_154 = ::std::os::raw::c_uint;
 pub const AYA_PERF_EVENT_IOC_ENABLE: ::std::os::raw::c_int = 9216;
 pub const AYA_PERF_EVENT_IOC_DISABLE: ::std::os::raw::c_int = 9217;

+ 215 - 117
aya/src/generated/linux_bindings_armv7.rs

@@ -1,4 +1,4 @@
-/* automatically generated by rust-bindgen 0.59.2 */
+/* automatically generated by rust-bindgen 0.60.1 */
 
 #[repr(C)]
 #[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
@@ -392,26 +392,27 @@ pub enum bpf_attach_type {
     BPF_SK_REUSEPORT_SELECT_OR_MIGRATE = 40,
     BPF_PERF_EVENT = 41,
     BPF_TRACE_KPROBE_MULTI = 42,
-    __MAX_BPF_ATTACH_TYPE = 43,
+    BPF_LSM_CGROUP = 43,
+    __MAX_BPF_ATTACH_TYPE = 44,
 }
-pub const BPF_ANY: ::std::os::raw::c_uint = 0;
-pub const BPF_NOEXIST: ::std::os::raw::c_uint = 1;
-pub const BPF_EXIST: ::std::os::raw::c_uint = 2;
-pub const BPF_F_LOCK: ::std::os::raw::c_uint = 4;
+pub const BPF_ANY: _bindgen_ty_2 = 0;
+pub const BPF_NOEXIST: _bindgen_ty_2 = 1;
+pub const BPF_EXIST: _bindgen_ty_2 = 2;
+pub const BPF_F_LOCK: _bindgen_ty_2 = 4;
 pub type _bindgen_ty_2 = ::std::os::raw::c_uint;
-pub const BPF_F_NO_PREALLOC: ::std::os::raw::c_uint = 1;
-pub const BPF_F_NO_COMMON_LRU: ::std::os::raw::c_uint = 2;
-pub const BPF_F_NUMA_NODE: ::std::os::raw::c_uint = 4;
-pub const BPF_F_RDONLY: ::std::os::raw::c_uint = 8;
-pub const BPF_F_WRONLY: ::std::os::raw::c_uint = 16;
-pub const BPF_F_STACK_BUILD_ID: ::std::os::raw::c_uint = 32;
-pub const BPF_F_ZERO_SEED: ::std::os::raw::c_uint = 64;
-pub const BPF_F_RDONLY_PROG: ::std::os::raw::c_uint = 128;
-pub const BPF_F_WRONLY_PROG: ::std::os::raw::c_uint = 256;
-pub const BPF_F_CLONE: ::std::os::raw::c_uint = 512;
-pub const BPF_F_MMAPABLE: ::std::os::raw::c_uint = 1024;
-pub const BPF_F_PRESERVE_ELEMS: ::std::os::raw::c_uint = 2048;
-pub const BPF_F_INNER_MAP: ::std::os::raw::c_uint = 4096;
+pub const BPF_F_NO_PREALLOC: _bindgen_ty_3 = 1;
+pub const BPF_F_NO_COMMON_LRU: _bindgen_ty_3 = 2;
+pub const BPF_F_NUMA_NODE: _bindgen_ty_3 = 4;
+pub const BPF_F_RDONLY: _bindgen_ty_3 = 8;
+pub const BPF_F_WRONLY: _bindgen_ty_3 = 16;
+pub const BPF_F_STACK_BUILD_ID: _bindgen_ty_3 = 32;
+pub const BPF_F_ZERO_SEED: _bindgen_ty_3 = 64;
+pub const BPF_F_RDONLY_PROG: _bindgen_ty_3 = 128;
+pub const BPF_F_WRONLY_PROG: _bindgen_ty_3 = 256;
+pub const BPF_F_CLONE: _bindgen_ty_3 = 512;
+pub const BPF_F_MMAPABLE: _bindgen_ty_3 = 1024;
+pub const BPF_F_PRESERVE_ELEMS: _bindgen_ty_3 = 2048;
+pub const BPF_F_INNER_MAP: _bindgen_ty_3 = 4096;
 pub type _bindgen_ty_3 = ::std::os::raw::c_uint;
 #[repr(C)]
 #[derive(Copy, Clone)]
@@ -582,6 +583,7 @@ pub struct bpf_attr__bindgen_ty_10 {
     pub attach_flags: __u32,
     pub prog_ids: __u64,
     pub prog_cnt: __u32,
+    pub prog_attach_flags: __u64,
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
@@ -692,55 +694,55 @@ pub struct bpf_attr__bindgen_ty_19 {
     pub map_fd: __u32,
     pub flags: __u32,
 }
-pub const BPF_F_RECOMPUTE_CSUM: ::std::os::raw::c_uint = 1;
-pub const BPF_F_INVALIDATE_HASH: ::std::os::raw::c_uint = 2;
+pub const BPF_F_RECOMPUTE_CSUM: _bindgen_ty_4 = 1;
+pub const BPF_F_INVALIDATE_HASH: _bindgen_ty_4 = 2;
 pub type _bindgen_ty_4 = ::std::os::raw::c_uint;
-pub const BPF_F_HDR_FIELD_MASK: ::std::os::raw::c_uint = 15;
+pub const BPF_F_HDR_FIELD_MASK: _bindgen_ty_5 = 15;
 pub type _bindgen_ty_5 = ::std::os::raw::c_uint;
-pub const BPF_F_PSEUDO_HDR: ::std::os::raw::c_uint = 16;
-pub const BPF_F_MARK_MANGLED_0: ::std::os::raw::c_uint = 32;
-pub const BPF_F_MARK_ENFORCE: ::std::os::raw::c_uint = 64;
+pub const BPF_F_PSEUDO_HDR: _bindgen_ty_6 = 16;
+pub const BPF_F_MARK_MANGLED_0: _bindgen_ty_6 = 32;
+pub const BPF_F_MARK_ENFORCE: _bindgen_ty_6 = 64;
 pub type _bindgen_ty_6 = ::std::os::raw::c_uint;
-pub const BPF_F_INGRESS: ::std::os::raw::c_uint = 1;
+pub const BPF_F_INGRESS: _bindgen_ty_7 = 1;
 pub type _bindgen_ty_7 = ::std::os::raw::c_uint;
-pub const BPF_F_TUNINFO_IPV6: ::std::os::raw::c_uint = 1;
+pub const BPF_F_TUNINFO_IPV6: _bindgen_ty_8 = 1;
 pub type _bindgen_ty_8 = ::std::os::raw::c_uint;
-pub const BPF_F_SKIP_FIELD_MASK: ::std::os::raw::c_uint = 255;
-pub const BPF_F_USER_STACK: ::std::os::raw::c_uint = 256;
-pub const BPF_F_FAST_STACK_CMP: ::std::os::raw::c_uint = 512;
-pub const BPF_F_REUSE_STACKID: ::std::os::raw::c_uint = 1024;
-pub const BPF_F_USER_BUILD_ID: ::std::os::raw::c_uint = 2048;
+pub const BPF_F_SKIP_FIELD_MASK: _bindgen_ty_9 = 255;
+pub const BPF_F_USER_STACK: _bindgen_ty_9 = 256;
+pub const BPF_F_FAST_STACK_CMP: _bindgen_ty_9 = 512;
+pub const BPF_F_REUSE_STACKID: _bindgen_ty_9 = 1024;
+pub const BPF_F_USER_BUILD_ID: _bindgen_ty_9 = 2048;
 pub type _bindgen_ty_9 = ::std::os::raw::c_uint;
-pub const BPF_F_ZERO_CSUM_TX: ::std::os::raw::c_uint = 2;
-pub const BPF_F_DONT_FRAGMENT: ::std::os::raw::c_uint = 4;
-pub const BPF_F_SEQ_NUMBER: ::std::os::raw::c_uint = 8;
+pub const BPF_F_ZERO_CSUM_TX: _bindgen_ty_10 = 2;
+pub const BPF_F_DONT_FRAGMENT: _bindgen_ty_10 = 4;
+pub const BPF_F_SEQ_NUMBER: _bindgen_ty_10 = 8;
 pub type _bindgen_ty_10 = ::std::os::raw::c_uint;
-pub const BPF_F_INDEX_MASK: ::std::os::raw::c_ulonglong = 4294967295;
-pub const BPF_F_CURRENT_CPU: ::std::os::raw::c_ulonglong = 4294967295;
-pub const BPF_F_CTXLEN_MASK: ::std::os::raw::c_ulonglong = 4503595332403200;
+pub const BPF_F_INDEX_MASK: _bindgen_ty_11 = 4294967295;
+pub const BPF_F_CURRENT_CPU: _bindgen_ty_11 = 4294967295;
+pub const BPF_F_CTXLEN_MASK: _bindgen_ty_11 = 4503595332403200;
 pub type _bindgen_ty_11 = ::std::os::raw::c_ulonglong;
-pub const BPF_F_CURRENT_NETNS: ::std::os::raw::c_int = -1;
+pub const BPF_F_CURRENT_NETNS: _bindgen_ty_12 = -1;
 pub type _bindgen_ty_12 = ::std::os::raw::c_int;
-pub const BPF_F_ADJ_ROOM_FIXED_GSO: ::std::os::raw::c_uint = 1;
-pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV4: ::std::os::raw::c_uint = 2;
-pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV6: ::std::os::raw::c_uint = 4;
-pub const BPF_F_ADJ_ROOM_ENCAP_L4_GRE: ::std::os::raw::c_uint = 8;
-pub const BPF_F_ADJ_ROOM_ENCAP_L4_UDP: ::std::os::raw::c_uint = 16;
-pub const BPF_F_ADJ_ROOM_NO_CSUM_RESET: ::std::os::raw::c_uint = 32;
-pub const BPF_F_ADJ_ROOM_ENCAP_L2_ETH: ::std::os::raw::c_uint = 64;
+pub const BPF_F_ADJ_ROOM_FIXED_GSO: _bindgen_ty_14 = 1;
+pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV4: _bindgen_ty_14 = 2;
+pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV6: _bindgen_ty_14 = 4;
+pub const BPF_F_ADJ_ROOM_ENCAP_L4_GRE: _bindgen_ty_14 = 8;
+pub const BPF_F_ADJ_ROOM_ENCAP_L4_UDP: _bindgen_ty_14 = 16;
+pub const BPF_F_ADJ_ROOM_NO_CSUM_RESET: _bindgen_ty_14 = 32;
+pub const BPF_F_ADJ_ROOM_ENCAP_L2_ETH: _bindgen_ty_14 = 64;
 pub type _bindgen_ty_14 = ::std::os::raw::c_uint;
-pub const BPF_F_SYSCTL_BASE_NAME: ::std::os::raw::c_uint = 1;
+pub const BPF_F_SYSCTL_BASE_NAME: _bindgen_ty_16 = 1;
 pub type _bindgen_ty_16 = ::std::os::raw::c_uint;
-pub const BPF_F_GET_BRANCH_RECORDS_SIZE: ::std::os::raw::c_uint = 1;
+pub const BPF_F_GET_BRANCH_RECORDS_SIZE: _bindgen_ty_18 = 1;
 pub type _bindgen_ty_18 = ::std::os::raw::c_uint;
-pub const BPF_RINGBUF_BUSY_BIT: ::std::os::raw::c_uint = 2147483648;
-pub const BPF_RINGBUF_DISCARD_BIT: ::std::os::raw::c_uint = 1073741824;
-pub const BPF_RINGBUF_HDR_SZ: ::std::os::raw::c_uint = 8;
+pub const BPF_RINGBUF_BUSY_BIT: _bindgen_ty_21 = 2147483648;
+pub const BPF_RINGBUF_DISCARD_BIT: _bindgen_ty_21 = 1073741824;
+pub const BPF_RINGBUF_HDR_SZ: _bindgen_ty_21 = 8;
 pub type _bindgen_ty_21 = ::std::os::raw::c_uint;
-pub const BPF_F_BPRM_SECUREEXEC: ::std::os::raw::c_uint = 1;
+pub const BPF_F_BPRM_SECUREEXEC: _bindgen_ty_23 = 1;
 pub type _bindgen_ty_23 = ::std::os::raw::c_uint;
-pub const BPF_F_BROADCAST: ::std::os::raw::c_uint = 8;
-pub const BPF_F_EXCLUDE_INGRESS: ::std::os::raw::c_uint = 16;
+pub const BPF_F_BROADCAST: _bindgen_ty_24 = 8;
+pub const BPF_F_EXCLUDE_INGRESS: _bindgen_ty_24 = 16;
 pub type _bindgen_ty_24 = ::std::os::raw::c_uint;
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
@@ -782,6 +784,8 @@ pub struct bpf_prog_info {
     pub run_cnt: __u64,
     pub recursion_misses: __u64,
     pub verified_insns: __u32,
+    pub attach_btf_obj_id: __u32,
+    pub attach_btf_id: __u32,
 }
 impl bpf_prog_info {
     #[inline]
@@ -807,6 +811,34 @@ impl bpf_prog_info {
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
+pub struct bpf_map_info {
+    pub type_: __u32,
+    pub id: __u32,
+    pub key_size: __u32,
+    pub value_size: __u32,
+    pub max_entries: __u32,
+    pub map_flags: __u32,
+    pub name: [::std::os::raw::c_char; 16usize],
+    pub ifindex: __u32,
+    pub btf_vmlinux_value_type_id: __u32,
+    pub netns_dev: __u64,
+    pub netns_ino: __u64,
+    pub btf_id: __u32,
+    pub btf_key_type_id: __u32,
+    pub btf_value_type_id: __u32,
+    pub _bitfield_align_1: [u8; 0],
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+    pub map_extra: __u64,
+}
+impl bpf_map_info {
+    #[inline]
+    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+        __bindgen_bitfield_unit
+    }
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
 pub struct bpf_btf_info {
     pub btf: __u64,
     pub btf_size: __u32,
@@ -816,6 +848,71 @@ pub struct bpf_btf_info {
     pub kernel_btf: __u32,
 }
 #[repr(C)]
+#[derive(Copy, Clone)]
+pub struct bpf_link_info {
+    pub type_: __u32,
+    pub id: __u32,
+    pub prog_id: __u32,
+    pub __bindgen_anon_1: bpf_link_info__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_link_info__bindgen_ty_1 {
+    pub raw_tracepoint: bpf_link_info__bindgen_ty_1__bindgen_ty_1,
+    pub tracing: bpf_link_info__bindgen_ty_1__bindgen_ty_2,
+    pub cgroup: bpf_link_info__bindgen_ty_1__bindgen_ty_3,
+    pub iter: bpf_link_info__bindgen_ty_1__bindgen_ty_4,
+    pub netns: bpf_link_info__bindgen_ty_1__bindgen_ty_5,
+    pub xdp: bpf_link_info__bindgen_ty_1__bindgen_ty_6,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_1 {
+    pub tp_name: __u64,
+    pub tp_name_len: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_2 {
+    pub attach_type: __u32,
+    pub target_obj_id: __u32,
+    pub target_btf_id: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_3 {
+    pub cgroup_id: __u64,
+    pub attach_type: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_4 {
+    pub target_name: __u64,
+    pub target_name_len: __u32,
+    pub __bindgen_anon_1: bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1 {
+    pub map: bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1 {
+    pub map_id: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_5 {
+    pub netns_ino: __u32,
+    pub attach_type: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_6 {
+    pub ifindex: __u32,
+}
+#[repr(C)]
 #[derive(Debug, Copy, Clone)]
 pub struct bpf_func_info {
     pub insn_off: __u32,
@@ -854,27 +951,28 @@ pub union btf_type__bindgen_ty_1 {
     pub size: __u32,
     pub type_: __u32,
 }
-pub const BTF_KIND_UNKN: ::std::os::raw::c_uint = 0;
-pub const BTF_KIND_INT: ::std::os::raw::c_uint = 1;
-pub const BTF_KIND_PTR: ::std::os::raw::c_uint = 2;
-pub const BTF_KIND_ARRAY: ::std::os::raw::c_uint = 3;
-pub const BTF_KIND_STRUCT: ::std::os::raw::c_uint = 4;
-pub const BTF_KIND_UNION: ::std::os::raw::c_uint = 5;
-pub const BTF_KIND_ENUM: ::std::os::raw::c_uint = 6;
-pub const BTF_KIND_FWD: ::std::os::raw::c_uint = 7;
-pub const BTF_KIND_TYPEDEF: ::std::os::raw::c_uint = 8;
-pub const BTF_KIND_VOLATILE: ::std::os::raw::c_uint = 9;
-pub const BTF_KIND_CONST: ::std::os::raw::c_uint = 10;
-pub const BTF_KIND_RESTRICT: ::std::os::raw::c_uint = 11;
-pub const BTF_KIND_FUNC: ::std::os::raw::c_uint = 12;
-pub const BTF_KIND_FUNC_PROTO: ::std::os::raw::c_uint = 13;
-pub const BTF_KIND_VAR: ::std::os::raw::c_uint = 14;
-pub const BTF_KIND_DATASEC: ::std::os::raw::c_uint = 15;
-pub const BTF_KIND_FLOAT: ::std::os::raw::c_uint = 16;
-pub const BTF_KIND_DECL_TAG: ::std::os::raw::c_uint = 17;
-pub const BTF_KIND_TYPE_TAG: ::std::os::raw::c_uint = 18;
-pub const NR_BTF_KINDS: ::std::os::raw::c_uint = 19;
-pub const BTF_KIND_MAX: ::std::os::raw::c_uint = 18;
+pub const BTF_KIND_UNKN: _bindgen_ty_38 = 0;
+pub const BTF_KIND_INT: _bindgen_ty_38 = 1;
+pub const BTF_KIND_PTR: _bindgen_ty_38 = 2;
+pub const BTF_KIND_ARRAY: _bindgen_ty_38 = 3;
+pub const BTF_KIND_STRUCT: _bindgen_ty_38 = 4;
+pub const BTF_KIND_UNION: _bindgen_ty_38 = 5;
+pub const BTF_KIND_ENUM: _bindgen_ty_38 = 6;
+pub const BTF_KIND_FWD: _bindgen_ty_38 = 7;
+pub const BTF_KIND_TYPEDEF: _bindgen_ty_38 = 8;
+pub const BTF_KIND_VOLATILE: _bindgen_ty_38 = 9;
+pub const BTF_KIND_CONST: _bindgen_ty_38 = 10;
+pub const BTF_KIND_RESTRICT: _bindgen_ty_38 = 11;
+pub const BTF_KIND_FUNC: _bindgen_ty_38 = 12;
+pub const BTF_KIND_FUNC_PROTO: _bindgen_ty_38 = 13;
+pub const BTF_KIND_VAR: _bindgen_ty_38 = 14;
+pub const BTF_KIND_DATASEC: _bindgen_ty_38 = 15;
+pub const BTF_KIND_FLOAT: _bindgen_ty_38 = 16;
+pub const BTF_KIND_DECL_TAG: _bindgen_ty_38 = 17;
+pub const BTF_KIND_TYPE_TAG: _bindgen_ty_38 = 18;
+pub const BTF_KIND_ENUM64: _bindgen_ty_38 = 19;
+pub const NR_BTF_KINDS: _bindgen_ty_38 = 20;
+pub const BTF_KIND_MAX: _bindgen_ty_38 = 19;
 pub type _bindgen_ty_38 = ::std::os::raw::c_uint;
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
@@ -902,9 +1000,9 @@ pub struct btf_param {
     pub name_off: __u32,
     pub type_: __u32,
 }
-pub const BTF_VAR_STATIC: ::std::os::raw::c_uint = 0;
-pub const BTF_VAR_GLOBAL_ALLOCATED: ::std::os::raw::c_uint = 1;
-pub const BTF_VAR_GLOBAL_EXTERN: ::std::os::raw::c_uint = 2;
+pub const BTF_VAR_STATIC: _bindgen_ty_39 = 0;
+pub const BTF_VAR_GLOBAL_ALLOCATED: _bindgen_ty_39 = 1;
+pub const BTF_VAR_GLOBAL_EXTERN: _bindgen_ty_39 = 2;
 pub type _bindgen_ty_39 = ::std::os::raw::c_uint;
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
@@ -1901,16 +1999,16 @@ pub enum perf_event_type {
     PERF_RECORD_AUX_OUTPUT_HW_ID = 21,
     PERF_RECORD_MAX = 22,
 }
-pub const IFLA_XDP_UNSPEC: ::std::os::raw::c_uint = 0;
-pub const IFLA_XDP_FD: ::std::os::raw::c_uint = 1;
-pub const IFLA_XDP_ATTACHED: ::std::os::raw::c_uint = 2;
-pub const IFLA_XDP_FLAGS: ::std::os::raw::c_uint = 3;
-pub const IFLA_XDP_PROG_ID: ::std::os::raw::c_uint = 4;
-pub const IFLA_XDP_DRV_PROG_ID: ::std::os::raw::c_uint = 5;
-pub const IFLA_XDP_SKB_PROG_ID: ::std::os::raw::c_uint = 6;
-pub const IFLA_XDP_HW_PROG_ID: ::std::os::raw::c_uint = 7;
-pub const IFLA_XDP_EXPECTED_FD: ::std::os::raw::c_uint = 8;
-pub const __IFLA_XDP_MAX: ::std::os::raw::c_uint = 9;
+pub const IFLA_XDP_UNSPEC: _bindgen_ty_85 = 0;
+pub const IFLA_XDP_FD: _bindgen_ty_85 = 1;
+pub const IFLA_XDP_ATTACHED: _bindgen_ty_85 = 2;
+pub const IFLA_XDP_FLAGS: _bindgen_ty_85 = 3;
+pub const IFLA_XDP_PROG_ID: _bindgen_ty_85 = 4;
+pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_85 = 5;
+pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_85 = 6;
+pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_85 = 7;
+pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_85 = 8;
+pub const __IFLA_XDP_MAX: _bindgen_ty_85 = 9;
 pub type _bindgen_ty_85 = ::std::os::raw::c_uint;
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
@@ -1933,36 +2031,36 @@ pub struct tcmsg {
     pub tcm_parent: __u32,
     pub tcm_info: __u32,
 }
-pub const TCA_UNSPEC: ::std::os::raw::c_uint = 0;
-pub const TCA_KIND: ::std::os::raw::c_uint = 1;
-pub const TCA_OPTIONS: ::std::os::raw::c_uint = 2;
-pub const TCA_STATS: ::std::os::raw::c_uint = 3;
-pub const TCA_XSTATS: ::std::os::raw::c_uint = 4;
-pub const TCA_RATE: ::std::os::raw::c_uint = 5;
-pub const TCA_FCNT: ::std::os::raw::c_uint = 6;
-pub const TCA_STATS2: ::std::os::raw::c_uint = 7;
-pub const TCA_STAB: ::std::os::raw::c_uint = 8;
-pub const TCA_PAD: ::std::os::raw::c_uint = 9;
-pub const TCA_DUMP_INVISIBLE: ::std::os::raw::c_uint = 10;
-pub const TCA_CHAIN: ::std::os::raw::c_uint = 11;
-pub const TCA_HW_OFFLOAD: ::std::os::raw::c_uint = 12;
-pub const TCA_INGRESS_BLOCK: ::std::os::raw::c_uint = 13;
-pub const TCA_EGRESS_BLOCK: ::std::os::raw::c_uint = 14;
-pub const __TCA_MAX: ::std::os::raw::c_uint = 15;
+pub const TCA_UNSPEC: _bindgen_ty_98 = 0;
+pub const TCA_KIND: _bindgen_ty_98 = 1;
+pub const TCA_OPTIONS: _bindgen_ty_98 = 2;
+pub const TCA_STATS: _bindgen_ty_98 = 3;
+pub const TCA_XSTATS: _bindgen_ty_98 = 4;
+pub const TCA_RATE: _bindgen_ty_98 = 5;
+pub const TCA_FCNT: _bindgen_ty_98 = 6;
+pub const TCA_STATS2: _bindgen_ty_98 = 7;
+pub const TCA_STAB: _bindgen_ty_98 = 8;
+pub const TCA_PAD: _bindgen_ty_98 = 9;
+pub const TCA_DUMP_INVISIBLE: _bindgen_ty_98 = 10;
+pub const TCA_CHAIN: _bindgen_ty_98 = 11;
+pub const TCA_HW_OFFLOAD: _bindgen_ty_98 = 12;
+pub const TCA_INGRESS_BLOCK: _bindgen_ty_98 = 13;
+pub const TCA_EGRESS_BLOCK: _bindgen_ty_98 = 14;
+pub const __TCA_MAX: _bindgen_ty_98 = 15;
 pub type _bindgen_ty_98 = ::std::os::raw::c_uint;
-pub const TCA_BPF_UNSPEC: ::std::os::raw::c_uint = 0;
-pub const TCA_BPF_ACT: ::std::os::raw::c_uint = 1;
-pub const TCA_BPF_POLICE: ::std::os::raw::c_uint = 2;
-pub const TCA_BPF_CLASSID: ::std::os::raw::c_uint = 3;
-pub const TCA_BPF_OPS_LEN: ::std::os::raw::c_uint = 4;
-pub const TCA_BPF_OPS: ::std::os::raw::c_uint = 5;
-pub const TCA_BPF_FD: ::std::os::raw::c_uint = 6;
-pub const TCA_BPF_NAME: ::std::os::raw::c_uint = 7;
-pub const TCA_BPF_FLAGS: ::std::os::raw::c_uint = 8;
-pub const TCA_BPF_FLAGS_GEN: ::std::os::raw::c_uint = 9;
-pub const TCA_BPF_TAG: ::std::os::raw::c_uint = 10;
-pub const TCA_BPF_ID: ::std::os::raw::c_uint = 11;
-pub const __TCA_BPF_MAX: ::std::os::raw::c_uint = 12;
+pub const TCA_BPF_UNSPEC: _bindgen_ty_154 = 0;
+pub const TCA_BPF_ACT: _bindgen_ty_154 = 1;
+pub const TCA_BPF_POLICE: _bindgen_ty_154 = 2;
+pub const TCA_BPF_CLASSID: _bindgen_ty_154 = 3;
+pub const TCA_BPF_OPS_LEN: _bindgen_ty_154 = 4;
+pub const TCA_BPF_OPS: _bindgen_ty_154 = 5;
+pub const TCA_BPF_FD: _bindgen_ty_154 = 6;
+pub const TCA_BPF_NAME: _bindgen_ty_154 = 7;
+pub const TCA_BPF_FLAGS: _bindgen_ty_154 = 8;
+pub const TCA_BPF_FLAGS_GEN: _bindgen_ty_154 = 9;
+pub const TCA_BPF_TAG: _bindgen_ty_154 = 10;
+pub const TCA_BPF_ID: _bindgen_ty_154 = 11;
+pub const __TCA_BPF_MAX: _bindgen_ty_154 = 12;
 pub type _bindgen_ty_154 = ::std::os::raw::c_uint;
 pub const AYA_PERF_EVENT_IOC_ENABLE: ::std::os::raw::c_int = 9216;
 pub const AYA_PERF_EVENT_IOC_DISABLE: ::std::os::raw::c_int = 9217;

+ 215 - 117
aya/src/generated/linux_bindings_riscv64.rs

@@ -1,4 +1,4 @@
-/* automatically generated by rust-bindgen 0.59.2 */
+/* automatically generated by rust-bindgen 0.60.1 */
 
 #[repr(C)]
 #[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
@@ -392,26 +392,27 @@ pub enum bpf_attach_type {
     BPF_SK_REUSEPORT_SELECT_OR_MIGRATE = 40,
     BPF_PERF_EVENT = 41,
     BPF_TRACE_KPROBE_MULTI = 42,
-    __MAX_BPF_ATTACH_TYPE = 43,
+    BPF_LSM_CGROUP = 43,
+    __MAX_BPF_ATTACH_TYPE = 44,
 }
-pub const BPF_ANY: ::std::os::raw::c_uint = 0;
-pub const BPF_NOEXIST: ::std::os::raw::c_uint = 1;
-pub const BPF_EXIST: ::std::os::raw::c_uint = 2;
-pub const BPF_F_LOCK: ::std::os::raw::c_uint = 4;
+pub const BPF_ANY: _bindgen_ty_2 = 0;
+pub const BPF_NOEXIST: _bindgen_ty_2 = 1;
+pub const BPF_EXIST: _bindgen_ty_2 = 2;
+pub const BPF_F_LOCK: _bindgen_ty_2 = 4;
 pub type _bindgen_ty_2 = ::std::os::raw::c_uint;
-pub const BPF_F_NO_PREALLOC: ::std::os::raw::c_uint = 1;
-pub const BPF_F_NO_COMMON_LRU: ::std::os::raw::c_uint = 2;
-pub const BPF_F_NUMA_NODE: ::std::os::raw::c_uint = 4;
-pub const BPF_F_RDONLY: ::std::os::raw::c_uint = 8;
-pub const BPF_F_WRONLY: ::std::os::raw::c_uint = 16;
-pub const BPF_F_STACK_BUILD_ID: ::std::os::raw::c_uint = 32;
-pub const BPF_F_ZERO_SEED: ::std::os::raw::c_uint = 64;
-pub const BPF_F_RDONLY_PROG: ::std::os::raw::c_uint = 128;
-pub const BPF_F_WRONLY_PROG: ::std::os::raw::c_uint = 256;
-pub const BPF_F_CLONE: ::std::os::raw::c_uint = 512;
-pub const BPF_F_MMAPABLE: ::std::os::raw::c_uint = 1024;
-pub const BPF_F_PRESERVE_ELEMS: ::std::os::raw::c_uint = 2048;
-pub const BPF_F_INNER_MAP: ::std::os::raw::c_uint = 4096;
+pub const BPF_F_NO_PREALLOC: _bindgen_ty_3 = 1;
+pub const BPF_F_NO_COMMON_LRU: _bindgen_ty_3 = 2;
+pub const BPF_F_NUMA_NODE: _bindgen_ty_3 = 4;
+pub const BPF_F_RDONLY: _bindgen_ty_3 = 8;
+pub const BPF_F_WRONLY: _bindgen_ty_3 = 16;
+pub const BPF_F_STACK_BUILD_ID: _bindgen_ty_3 = 32;
+pub const BPF_F_ZERO_SEED: _bindgen_ty_3 = 64;
+pub const BPF_F_RDONLY_PROG: _bindgen_ty_3 = 128;
+pub const BPF_F_WRONLY_PROG: _bindgen_ty_3 = 256;
+pub const BPF_F_CLONE: _bindgen_ty_3 = 512;
+pub const BPF_F_MMAPABLE: _bindgen_ty_3 = 1024;
+pub const BPF_F_PRESERVE_ELEMS: _bindgen_ty_3 = 2048;
+pub const BPF_F_INNER_MAP: _bindgen_ty_3 = 4096;
 pub type _bindgen_ty_3 = ::std::os::raw::c_uint;
 #[repr(C)]
 #[derive(Copy, Clone)]
@@ -582,6 +583,7 @@ pub struct bpf_attr__bindgen_ty_10 {
     pub attach_flags: __u32,
     pub prog_ids: __u64,
     pub prog_cnt: __u32,
+    pub prog_attach_flags: __u64,
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
@@ -692,55 +694,55 @@ pub struct bpf_attr__bindgen_ty_19 {
     pub map_fd: __u32,
     pub flags: __u32,
 }
-pub const BPF_F_RECOMPUTE_CSUM: ::std::os::raw::c_uint = 1;
-pub const BPF_F_INVALIDATE_HASH: ::std::os::raw::c_uint = 2;
+pub const BPF_F_RECOMPUTE_CSUM: _bindgen_ty_4 = 1;
+pub const BPF_F_INVALIDATE_HASH: _bindgen_ty_4 = 2;
 pub type _bindgen_ty_4 = ::std::os::raw::c_uint;
-pub const BPF_F_HDR_FIELD_MASK: ::std::os::raw::c_uint = 15;
+pub const BPF_F_HDR_FIELD_MASK: _bindgen_ty_5 = 15;
 pub type _bindgen_ty_5 = ::std::os::raw::c_uint;
-pub const BPF_F_PSEUDO_HDR: ::std::os::raw::c_uint = 16;
-pub const BPF_F_MARK_MANGLED_0: ::std::os::raw::c_uint = 32;
-pub const BPF_F_MARK_ENFORCE: ::std::os::raw::c_uint = 64;
+pub const BPF_F_PSEUDO_HDR: _bindgen_ty_6 = 16;
+pub const BPF_F_MARK_MANGLED_0: _bindgen_ty_6 = 32;
+pub const BPF_F_MARK_ENFORCE: _bindgen_ty_6 = 64;
 pub type _bindgen_ty_6 = ::std::os::raw::c_uint;
-pub const BPF_F_INGRESS: ::std::os::raw::c_uint = 1;
+pub const BPF_F_INGRESS: _bindgen_ty_7 = 1;
 pub type _bindgen_ty_7 = ::std::os::raw::c_uint;
-pub const BPF_F_TUNINFO_IPV6: ::std::os::raw::c_uint = 1;
+pub const BPF_F_TUNINFO_IPV6: _bindgen_ty_8 = 1;
 pub type _bindgen_ty_8 = ::std::os::raw::c_uint;
-pub const BPF_F_SKIP_FIELD_MASK: ::std::os::raw::c_uint = 255;
-pub const BPF_F_USER_STACK: ::std::os::raw::c_uint = 256;
-pub const BPF_F_FAST_STACK_CMP: ::std::os::raw::c_uint = 512;
-pub const BPF_F_REUSE_STACKID: ::std::os::raw::c_uint = 1024;
-pub const BPF_F_USER_BUILD_ID: ::std::os::raw::c_uint = 2048;
+pub const BPF_F_SKIP_FIELD_MASK: _bindgen_ty_9 = 255;
+pub const BPF_F_USER_STACK: _bindgen_ty_9 = 256;
+pub const BPF_F_FAST_STACK_CMP: _bindgen_ty_9 = 512;
+pub const BPF_F_REUSE_STACKID: _bindgen_ty_9 = 1024;
+pub const BPF_F_USER_BUILD_ID: _bindgen_ty_9 = 2048;
 pub type _bindgen_ty_9 = ::std::os::raw::c_uint;
-pub const BPF_F_ZERO_CSUM_TX: ::std::os::raw::c_uint = 2;
-pub const BPF_F_DONT_FRAGMENT: ::std::os::raw::c_uint = 4;
-pub const BPF_F_SEQ_NUMBER: ::std::os::raw::c_uint = 8;
+pub const BPF_F_ZERO_CSUM_TX: _bindgen_ty_10 = 2;
+pub const BPF_F_DONT_FRAGMENT: _bindgen_ty_10 = 4;
+pub const BPF_F_SEQ_NUMBER: _bindgen_ty_10 = 8;
 pub type _bindgen_ty_10 = ::std::os::raw::c_uint;
-pub const BPF_F_INDEX_MASK: ::std::os::raw::c_ulong = 4294967295;
-pub const BPF_F_CURRENT_CPU: ::std::os::raw::c_ulong = 4294967295;
-pub const BPF_F_CTXLEN_MASK: ::std::os::raw::c_ulong = 4503595332403200;
+pub const BPF_F_INDEX_MASK: _bindgen_ty_11 = 4294967295;
+pub const BPF_F_CURRENT_CPU: _bindgen_ty_11 = 4294967295;
+pub const BPF_F_CTXLEN_MASK: _bindgen_ty_11 = 4503595332403200;
 pub type _bindgen_ty_11 = ::std::os::raw::c_ulong;
-pub const BPF_F_CURRENT_NETNS: ::std::os::raw::c_int = -1;
+pub const BPF_F_CURRENT_NETNS: _bindgen_ty_12 = -1;
 pub type _bindgen_ty_12 = ::std::os::raw::c_int;
-pub const BPF_F_ADJ_ROOM_FIXED_GSO: ::std::os::raw::c_uint = 1;
-pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV4: ::std::os::raw::c_uint = 2;
-pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV6: ::std::os::raw::c_uint = 4;
-pub const BPF_F_ADJ_ROOM_ENCAP_L4_GRE: ::std::os::raw::c_uint = 8;
-pub const BPF_F_ADJ_ROOM_ENCAP_L4_UDP: ::std::os::raw::c_uint = 16;
-pub const BPF_F_ADJ_ROOM_NO_CSUM_RESET: ::std::os::raw::c_uint = 32;
-pub const BPF_F_ADJ_ROOM_ENCAP_L2_ETH: ::std::os::raw::c_uint = 64;
+pub const BPF_F_ADJ_ROOM_FIXED_GSO: _bindgen_ty_14 = 1;
+pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV4: _bindgen_ty_14 = 2;
+pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV6: _bindgen_ty_14 = 4;
+pub const BPF_F_ADJ_ROOM_ENCAP_L4_GRE: _bindgen_ty_14 = 8;
+pub const BPF_F_ADJ_ROOM_ENCAP_L4_UDP: _bindgen_ty_14 = 16;
+pub const BPF_F_ADJ_ROOM_NO_CSUM_RESET: _bindgen_ty_14 = 32;
+pub const BPF_F_ADJ_ROOM_ENCAP_L2_ETH: _bindgen_ty_14 = 64;
 pub type _bindgen_ty_14 = ::std::os::raw::c_uint;
-pub const BPF_F_SYSCTL_BASE_NAME: ::std::os::raw::c_uint = 1;
+pub const BPF_F_SYSCTL_BASE_NAME: _bindgen_ty_16 = 1;
 pub type _bindgen_ty_16 = ::std::os::raw::c_uint;
-pub const BPF_F_GET_BRANCH_RECORDS_SIZE: ::std::os::raw::c_uint = 1;
+pub const BPF_F_GET_BRANCH_RECORDS_SIZE: _bindgen_ty_18 = 1;
 pub type _bindgen_ty_18 = ::std::os::raw::c_uint;
-pub const BPF_RINGBUF_BUSY_BIT: ::std::os::raw::c_uint = 2147483648;
-pub const BPF_RINGBUF_DISCARD_BIT: ::std::os::raw::c_uint = 1073741824;
-pub const BPF_RINGBUF_HDR_SZ: ::std::os::raw::c_uint = 8;
+pub const BPF_RINGBUF_BUSY_BIT: _bindgen_ty_21 = 2147483648;
+pub const BPF_RINGBUF_DISCARD_BIT: _bindgen_ty_21 = 1073741824;
+pub const BPF_RINGBUF_HDR_SZ: _bindgen_ty_21 = 8;
 pub type _bindgen_ty_21 = ::std::os::raw::c_uint;
-pub const BPF_F_BPRM_SECUREEXEC: ::std::os::raw::c_uint = 1;
+pub const BPF_F_BPRM_SECUREEXEC: _bindgen_ty_23 = 1;
 pub type _bindgen_ty_23 = ::std::os::raw::c_uint;
-pub const BPF_F_BROADCAST: ::std::os::raw::c_uint = 8;
-pub const BPF_F_EXCLUDE_INGRESS: ::std::os::raw::c_uint = 16;
+pub const BPF_F_BROADCAST: _bindgen_ty_24 = 8;
+pub const BPF_F_EXCLUDE_INGRESS: _bindgen_ty_24 = 16;
 pub type _bindgen_ty_24 = ::std::os::raw::c_uint;
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
@@ -782,6 +784,8 @@ pub struct bpf_prog_info {
     pub run_cnt: __u64,
     pub recursion_misses: __u64,
     pub verified_insns: __u32,
+    pub attach_btf_obj_id: __u32,
+    pub attach_btf_id: __u32,
 }
 impl bpf_prog_info {
     #[inline]
@@ -807,6 +811,34 @@ impl bpf_prog_info {
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
+pub struct bpf_map_info {
+    pub type_: __u32,
+    pub id: __u32,
+    pub key_size: __u32,
+    pub value_size: __u32,
+    pub max_entries: __u32,
+    pub map_flags: __u32,
+    pub name: [::std::os::raw::c_char; 16usize],
+    pub ifindex: __u32,
+    pub btf_vmlinux_value_type_id: __u32,
+    pub netns_dev: __u64,
+    pub netns_ino: __u64,
+    pub btf_id: __u32,
+    pub btf_key_type_id: __u32,
+    pub btf_value_type_id: __u32,
+    pub _bitfield_align_1: [u8; 0],
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+    pub map_extra: __u64,
+}
+impl bpf_map_info {
+    #[inline]
+    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+        __bindgen_bitfield_unit
+    }
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
 pub struct bpf_btf_info {
     pub btf: __u64,
     pub btf_size: __u32,
@@ -816,6 +848,71 @@ pub struct bpf_btf_info {
     pub kernel_btf: __u32,
 }
 #[repr(C)]
+#[derive(Copy, Clone)]
+pub struct bpf_link_info {
+    pub type_: __u32,
+    pub id: __u32,
+    pub prog_id: __u32,
+    pub __bindgen_anon_1: bpf_link_info__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_link_info__bindgen_ty_1 {
+    pub raw_tracepoint: bpf_link_info__bindgen_ty_1__bindgen_ty_1,
+    pub tracing: bpf_link_info__bindgen_ty_1__bindgen_ty_2,
+    pub cgroup: bpf_link_info__bindgen_ty_1__bindgen_ty_3,
+    pub iter: bpf_link_info__bindgen_ty_1__bindgen_ty_4,
+    pub netns: bpf_link_info__bindgen_ty_1__bindgen_ty_5,
+    pub xdp: bpf_link_info__bindgen_ty_1__bindgen_ty_6,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_1 {
+    pub tp_name: __u64,
+    pub tp_name_len: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_2 {
+    pub attach_type: __u32,
+    pub target_obj_id: __u32,
+    pub target_btf_id: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_3 {
+    pub cgroup_id: __u64,
+    pub attach_type: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_4 {
+    pub target_name: __u64,
+    pub target_name_len: __u32,
+    pub __bindgen_anon_1: bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1 {
+    pub map: bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1 {
+    pub map_id: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_5 {
+    pub netns_ino: __u32,
+    pub attach_type: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_6 {
+    pub ifindex: __u32,
+}
+#[repr(C)]
 #[derive(Debug, Copy, Clone)]
 pub struct bpf_func_info {
     pub insn_off: __u32,
@@ -854,27 +951,28 @@ pub union btf_type__bindgen_ty_1 {
     pub size: __u32,
     pub type_: __u32,
 }
-pub const BTF_KIND_UNKN: ::std::os::raw::c_uint = 0;
-pub const BTF_KIND_INT: ::std::os::raw::c_uint = 1;
-pub const BTF_KIND_PTR: ::std::os::raw::c_uint = 2;
-pub const BTF_KIND_ARRAY: ::std::os::raw::c_uint = 3;
-pub const BTF_KIND_STRUCT: ::std::os::raw::c_uint = 4;
-pub const BTF_KIND_UNION: ::std::os::raw::c_uint = 5;
-pub const BTF_KIND_ENUM: ::std::os::raw::c_uint = 6;
-pub const BTF_KIND_FWD: ::std::os::raw::c_uint = 7;
-pub const BTF_KIND_TYPEDEF: ::std::os::raw::c_uint = 8;
-pub const BTF_KIND_VOLATILE: ::std::os::raw::c_uint = 9;
-pub const BTF_KIND_CONST: ::std::os::raw::c_uint = 10;
-pub const BTF_KIND_RESTRICT: ::std::os::raw::c_uint = 11;
-pub const BTF_KIND_FUNC: ::std::os::raw::c_uint = 12;
-pub const BTF_KIND_FUNC_PROTO: ::std::os::raw::c_uint = 13;
-pub const BTF_KIND_VAR: ::std::os::raw::c_uint = 14;
-pub const BTF_KIND_DATASEC: ::std::os::raw::c_uint = 15;
-pub const BTF_KIND_FLOAT: ::std::os::raw::c_uint = 16;
-pub const BTF_KIND_DECL_TAG: ::std::os::raw::c_uint = 17;
-pub const BTF_KIND_TYPE_TAG: ::std::os::raw::c_uint = 18;
-pub const NR_BTF_KINDS: ::std::os::raw::c_uint = 19;
-pub const BTF_KIND_MAX: ::std::os::raw::c_uint = 18;
+pub const BTF_KIND_UNKN: _bindgen_ty_38 = 0;
+pub const BTF_KIND_INT: _bindgen_ty_38 = 1;
+pub const BTF_KIND_PTR: _bindgen_ty_38 = 2;
+pub const BTF_KIND_ARRAY: _bindgen_ty_38 = 3;
+pub const BTF_KIND_STRUCT: _bindgen_ty_38 = 4;
+pub const BTF_KIND_UNION: _bindgen_ty_38 = 5;
+pub const BTF_KIND_ENUM: _bindgen_ty_38 = 6;
+pub const BTF_KIND_FWD: _bindgen_ty_38 = 7;
+pub const BTF_KIND_TYPEDEF: _bindgen_ty_38 = 8;
+pub const BTF_KIND_VOLATILE: _bindgen_ty_38 = 9;
+pub const BTF_KIND_CONST: _bindgen_ty_38 = 10;
+pub const BTF_KIND_RESTRICT: _bindgen_ty_38 = 11;
+pub const BTF_KIND_FUNC: _bindgen_ty_38 = 12;
+pub const BTF_KIND_FUNC_PROTO: _bindgen_ty_38 = 13;
+pub const BTF_KIND_VAR: _bindgen_ty_38 = 14;
+pub const BTF_KIND_DATASEC: _bindgen_ty_38 = 15;
+pub const BTF_KIND_FLOAT: _bindgen_ty_38 = 16;
+pub const BTF_KIND_DECL_TAG: _bindgen_ty_38 = 17;
+pub const BTF_KIND_TYPE_TAG: _bindgen_ty_38 = 18;
+pub const BTF_KIND_ENUM64: _bindgen_ty_38 = 19;
+pub const NR_BTF_KINDS: _bindgen_ty_38 = 20;
+pub const BTF_KIND_MAX: _bindgen_ty_38 = 19;
 pub type _bindgen_ty_38 = ::std::os::raw::c_uint;
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
@@ -902,9 +1000,9 @@ pub struct btf_param {
     pub name_off: __u32,
     pub type_: __u32,
 }
-pub const BTF_VAR_STATIC: ::std::os::raw::c_uint = 0;
-pub const BTF_VAR_GLOBAL_ALLOCATED: ::std::os::raw::c_uint = 1;
-pub const BTF_VAR_GLOBAL_EXTERN: ::std::os::raw::c_uint = 2;
+pub const BTF_VAR_STATIC: _bindgen_ty_39 = 0;
+pub const BTF_VAR_GLOBAL_ALLOCATED: _bindgen_ty_39 = 1;
+pub const BTF_VAR_GLOBAL_EXTERN: _bindgen_ty_39 = 2;
 pub type _bindgen_ty_39 = ::std::os::raw::c_uint;
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
@@ -1901,16 +1999,16 @@ pub enum perf_event_type {
     PERF_RECORD_AUX_OUTPUT_HW_ID = 21,
     PERF_RECORD_MAX = 22,
 }
-pub const IFLA_XDP_UNSPEC: ::std::os::raw::c_uint = 0;
-pub const IFLA_XDP_FD: ::std::os::raw::c_uint = 1;
-pub const IFLA_XDP_ATTACHED: ::std::os::raw::c_uint = 2;
-pub const IFLA_XDP_FLAGS: ::std::os::raw::c_uint = 3;
-pub const IFLA_XDP_PROG_ID: ::std::os::raw::c_uint = 4;
-pub const IFLA_XDP_DRV_PROG_ID: ::std::os::raw::c_uint = 5;
-pub const IFLA_XDP_SKB_PROG_ID: ::std::os::raw::c_uint = 6;
-pub const IFLA_XDP_HW_PROG_ID: ::std::os::raw::c_uint = 7;
-pub const IFLA_XDP_EXPECTED_FD: ::std::os::raw::c_uint = 8;
-pub const __IFLA_XDP_MAX: ::std::os::raw::c_uint = 9;
+pub const IFLA_XDP_UNSPEC: _bindgen_ty_85 = 0;
+pub const IFLA_XDP_FD: _bindgen_ty_85 = 1;
+pub const IFLA_XDP_ATTACHED: _bindgen_ty_85 = 2;
+pub const IFLA_XDP_FLAGS: _bindgen_ty_85 = 3;
+pub const IFLA_XDP_PROG_ID: _bindgen_ty_85 = 4;
+pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_85 = 5;
+pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_85 = 6;
+pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_85 = 7;
+pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_85 = 8;
+pub const __IFLA_XDP_MAX: _bindgen_ty_85 = 9;
 pub type _bindgen_ty_85 = ::std::os::raw::c_uint;
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
@@ -1933,36 +2031,36 @@ pub struct tcmsg {
     pub tcm_parent: __u32,
     pub tcm_info: __u32,
 }
-pub const TCA_UNSPEC: ::std::os::raw::c_uint = 0;
-pub const TCA_KIND: ::std::os::raw::c_uint = 1;
-pub const TCA_OPTIONS: ::std::os::raw::c_uint = 2;
-pub const TCA_STATS: ::std::os::raw::c_uint = 3;
-pub const TCA_XSTATS: ::std::os::raw::c_uint = 4;
-pub const TCA_RATE: ::std::os::raw::c_uint = 5;
-pub const TCA_FCNT: ::std::os::raw::c_uint = 6;
-pub const TCA_STATS2: ::std::os::raw::c_uint = 7;
-pub const TCA_STAB: ::std::os::raw::c_uint = 8;
-pub const TCA_PAD: ::std::os::raw::c_uint = 9;
-pub const TCA_DUMP_INVISIBLE: ::std::os::raw::c_uint = 10;
-pub const TCA_CHAIN: ::std::os::raw::c_uint = 11;
-pub const TCA_HW_OFFLOAD: ::std::os::raw::c_uint = 12;
-pub const TCA_INGRESS_BLOCK: ::std::os::raw::c_uint = 13;
-pub const TCA_EGRESS_BLOCK: ::std::os::raw::c_uint = 14;
-pub const __TCA_MAX: ::std::os::raw::c_uint = 15;
+pub const TCA_UNSPEC: _bindgen_ty_98 = 0;
+pub const TCA_KIND: _bindgen_ty_98 = 1;
+pub const TCA_OPTIONS: _bindgen_ty_98 = 2;
+pub const TCA_STATS: _bindgen_ty_98 = 3;
+pub const TCA_XSTATS: _bindgen_ty_98 = 4;
+pub const TCA_RATE: _bindgen_ty_98 = 5;
+pub const TCA_FCNT: _bindgen_ty_98 = 6;
+pub const TCA_STATS2: _bindgen_ty_98 = 7;
+pub const TCA_STAB: _bindgen_ty_98 = 8;
+pub const TCA_PAD: _bindgen_ty_98 = 9;
+pub const TCA_DUMP_INVISIBLE: _bindgen_ty_98 = 10;
+pub const TCA_CHAIN: _bindgen_ty_98 = 11;
+pub const TCA_HW_OFFLOAD: _bindgen_ty_98 = 12;
+pub const TCA_INGRESS_BLOCK: _bindgen_ty_98 = 13;
+pub const TCA_EGRESS_BLOCK: _bindgen_ty_98 = 14;
+pub const __TCA_MAX: _bindgen_ty_98 = 15;
 pub type _bindgen_ty_98 = ::std::os::raw::c_uint;
-pub const TCA_BPF_UNSPEC: ::std::os::raw::c_uint = 0;
-pub const TCA_BPF_ACT: ::std::os::raw::c_uint = 1;
-pub const TCA_BPF_POLICE: ::std::os::raw::c_uint = 2;
-pub const TCA_BPF_CLASSID: ::std::os::raw::c_uint = 3;
-pub const TCA_BPF_OPS_LEN: ::std::os::raw::c_uint = 4;
-pub const TCA_BPF_OPS: ::std::os::raw::c_uint = 5;
-pub const TCA_BPF_FD: ::std::os::raw::c_uint = 6;
-pub const TCA_BPF_NAME: ::std::os::raw::c_uint = 7;
-pub const TCA_BPF_FLAGS: ::std::os::raw::c_uint = 8;
-pub const TCA_BPF_FLAGS_GEN: ::std::os::raw::c_uint = 9;
-pub const TCA_BPF_TAG: ::std::os::raw::c_uint = 10;
-pub const TCA_BPF_ID: ::std::os::raw::c_uint = 11;
-pub const __TCA_BPF_MAX: ::std::os::raw::c_uint = 12;
+pub const TCA_BPF_UNSPEC: _bindgen_ty_154 = 0;
+pub const TCA_BPF_ACT: _bindgen_ty_154 = 1;
+pub const TCA_BPF_POLICE: _bindgen_ty_154 = 2;
+pub const TCA_BPF_CLASSID: _bindgen_ty_154 = 3;
+pub const TCA_BPF_OPS_LEN: _bindgen_ty_154 = 4;
+pub const TCA_BPF_OPS: _bindgen_ty_154 = 5;
+pub const TCA_BPF_FD: _bindgen_ty_154 = 6;
+pub const TCA_BPF_NAME: _bindgen_ty_154 = 7;
+pub const TCA_BPF_FLAGS: _bindgen_ty_154 = 8;
+pub const TCA_BPF_FLAGS_GEN: _bindgen_ty_154 = 9;
+pub const TCA_BPF_TAG: _bindgen_ty_154 = 10;
+pub const TCA_BPF_ID: _bindgen_ty_154 = 11;
+pub const __TCA_BPF_MAX: _bindgen_ty_154 = 12;
 pub type _bindgen_ty_154 = ::std::os::raw::c_uint;
 pub const AYA_PERF_EVENT_IOC_ENABLE: ::std::os::raw::c_int = 9216;
 pub const AYA_PERF_EVENT_IOC_DISABLE: ::std::os::raw::c_int = 9217;

+ 215 - 117
aya/src/generated/linux_bindings_x86_64.rs

@@ -1,4 +1,4 @@
-/* automatically generated by rust-bindgen 0.59.2 */
+/* automatically generated by rust-bindgen 0.60.1 */
 
 #[repr(C)]
 #[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
@@ -392,26 +392,27 @@ pub enum bpf_attach_type {
     BPF_SK_REUSEPORT_SELECT_OR_MIGRATE = 40,
     BPF_PERF_EVENT = 41,
     BPF_TRACE_KPROBE_MULTI = 42,
-    __MAX_BPF_ATTACH_TYPE = 43,
+    BPF_LSM_CGROUP = 43,
+    __MAX_BPF_ATTACH_TYPE = 44,
 }
-pub const BPF_ANY: ::std::os::raw::c_uint = 0;
-pub const BPF_NOEXIST: ::std::os::raw::c_uint = 1;
-pub const BPF_EXIST: ::std::os::raw::c_uint = 2;
-pub const BPF_F_LOCK: ::std::os::raw::c_uint = 4;
+pub const BPF_ANY: _bindgen_ty_2 = 0;
+pub const BPF_NOEXIST: _bindgen_ty_2 = 1;
+pub const BPF_EXIST: _bindgen_ty_2 = 2;
+pub const BPF_F_LOCK: _bindgen_ty_2 = 4;
 pub type _bindgen_ty_2 = ::std::os::raw::c_uint;
-pub const BPF_F_NO_PREALLOC: ::std::os::raw::c_uint = 1;
-pub const BPF_F_NO_COMMON_LRU: ::std::os::raw::c_uint = 2;
-pub const BPF_F_NUMA_NODE: ::std::os::raw::c_uint = 4;
-pub const BPF_F_RDONLY: ::std::os::raw::c_uint = 8;
-pub const BPF_F_WRONLY: ::std::os::raw::c_uint = 16;
-pub const BPF_F_STACK_BUILD_ID: ::std::os::raw::c_uint = 32;
-pub const BPF_F_ZERO_SEED: ::std::os::raw::c_uint = 64;
-pub const BPF_F_RDONLY_PROG: ::std::os::raw::c_uint = 128;
-pub const BPF_F_WRONLY_PROG: ::std::os::raw::c_uint = 256;
-pub const BPF_F_CLONE: ::std::os::raw::c_uint = 512;
-pub const BPF_F_MMAPABLE: ::std::os::raw::c_uint = 1024;
-pub const BPF_F_PRESERVE_ELEMS: ::std::os::raw::c_uint = 2048;
-pub const BPF_F_INNER_MAP: ::std::os::raw::c_uint = 4096;
+pub const BPF_F_NO_PREALLOC: _bindgen_ty_3 = 1;
+pub const BPF_F_NO_COMMON_LRU: _bindgen_ty_3 = 2;
+pub const BPF_F_NUMA_NODE: _bindgen_ty_3 = 4;
+pub const BPF_F_RDONLY: _bindgen_ty_3 = 8;
+pub const BPF_F_WRONLY: _bindgen_ty_3 = 16;
+pub const BPF_F_STACK_BUILD_ID: _bindgen_ty_3 = 32;
+pub const BPF_F_ZERO_SEED: _bindgen_ty_3 = 64;
+pub const BPF_F_RDONLY_PROG: _bindgen_ty_3 = 128;
+pub const BPF_F_WRONLY_PROG: _bindgen_ty_3 = 256;
+pub const BPF_F_CLONE: _bindgen_ty_3 = 512;
+pub const BPF_F_MMAPABLE: _bindgen_ty_3 = 1024;
+pub const BPF_F_PRESERVE_ELEMS: _bindgen_ty_3 = 2048;
+pub const BPF_F_INNER_MAP: _bindgen_ty_3 = 4096;
 pub type _bindgen_ty_3 = ::std::os::raw::c_uint;
 #[repr(C)]
 #[derive(Copy, Clone)]
@@ -582,6 +583,7 @@ pub struct bpf_attr__bindgen_ty_10 {
     pub attach_flags: __u32,
     pub prog_ids: __u64,
     pub prog_cnt: __u32,
+    pub prog_attach_flags: __u64,
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
@@ -692,55 +694,55 @@ pub struct bpf_attr__bindgen_ty_19 {
     pub map_fd: __u32,
     pub flags: __u32,
 }
-pub const BPF_F_RECOMPUTE_CSUM: ::std::os::raw::c_uint = 1;
-pub const BPF_F_INVALIDATE_HASH: ::std::os::raw::c_uint = 2;
+pub const BPF_F_RECOMPUTE_CSUM: _bindgen_ty_4 = 1;
+pub const BPF_F_INVALIDATE_HASH: _bindgen_ty_4 = 2;
 pub type _bindgen_ty_4 = ::std::os::raw::c_uint;
-pub const BPF_F_HDR_FIELD_MASK: ::std::os::raw::c_uint = 15;
+pub const BPF_F_HDR_FIELD_MASK: _bindgen_ty_5 = 15;
 pub type _bindgen_ty_5 = ::std::os::raw::c_uint;
-pub const BPF_F_PSEUDO_HDR: ::std::os::raw::c_uint = 16;
-pub const BPF_F_MARK_MANGLED_0: ::std::os::raw::c_uint = 32;
-pub const BPF_F_MARK_ENFORCE: ::std::os::raw::c_uint = 64;
+pub const BPF_F_PSEUDO_HDR: _bindgen_ty_6 = 16;
+pub const BPF_F_MARK_MANGLED_0: _bindgen_ty_6 = 32;
+pub const BPF_F_MARK_ENFORCE: _bindgen_ty_6 = 64;
 pub type _bindgen_ty_6 = ::std::os::raw::c_uint;
-pub const BPF_F_INGRESS: ::std::os::raw::c_uint = 1;
+pub const BPF_F_INGRESS: _bindgen_ty_7 = 1;
 pub type _bindgen_ty_7 = ::std::os::raw::c_uint;
-pub const BPF_F_TUNINFO_IPV6: ::std::os::raw::c_uint = 1;
+pub const BPF_F_TUNINFO_IPV6: _bindgen_ty_8 = 1;
 pub type _bindgen_ty_8 = ::std::os::raw::c_uint;
-pub const BPF_F_SKIP_FIELD_MASK: ::std::os::raw::c_uint = 255;
-pub const BPF_F_USER_STACK: ::std::os::raw::c_uint = 256;
-pub const BPF_F_FAST_STACK_CMP: ::std::os::raw::c_uint = 512;
-pub const BPF_F_REUSE_STACKID: ::std::os::raw::c_uint = 1024;
-pub const BPF_F_USER_BUILD_ID: ::std::os::raw::c_uint = 2048;
+pub const BPF_F_SKIP_FIELD_MASK: _bindgen_ty_9 = 255;
+pub const BPF_F_USER_STACK: _bindgen_ty_9 = 256;
+pub const BPF_F_FAST_STACK_CMP: _bindgen_ty_9 = 512;
+pub const BPF_F_REUSE_STACKID: _bindgen_ty_9 = 1024;
+pub const BPF_F_USER_BUILD_ID: _bindgen_ty_9 = 2048;
 pub type _bindgen_ty_9 = ::std::os::raw::c_uint;
-pub const BPF_F_ZERO_CSUM_TX: ::std::os::raw::c_uint = 2;
-pub const BPF_F_DONT_FRAGMENT: ::std::os::raw::c_uint = 4;
-pub const BPF_F_SEQ_NUMBER: ::std::os::raw::c_uint = 8;
+pub const BPF_F_ZERO_CSUM_TX: _bindgen_ty_10 = 2;
+pub const BPF_F_DONT_FRAGMENT: _bindgen_ty_10 = 4;
+pub const BPF_F_SEQ_NUMBER: _bindgen_ty_10 = 8;
 pub type _bindgen_ty_10 = ::std::os::raw::c_uint;
-pub const BPF_F_INDEX_MASK: ::std::os::raw::c_ulong = 4294967295;
-pub const BPF_F_CURRENT_CPU: ::std::os::raw::c_ulong = 4294967295;
-pub const BPF_F_CTXLEN_MASK: ::std::os::raw::c_ulong = 4503595332403200;
+pub const BPF_F_INDEX_MASK: _bindgen_ty_11 = 4294967295;
+pub const BPF_F_CURRENT_CPU: _bindgen_ty_11 = 4294967295;
+pub const BPF_F_CTXLEN_MASK: _bindgen_ty_11 = 4503595332403200;
 pub type _bindgen_ty_11 = ::std::os::raw::c_ulong;
-pub const BPF_F_CURRENT_NETNS: ::std::os::raw::c_int = -1;
+pub const BPF_F_CURRENT_NETNS: _bindgen_ty_12 = -1;
 pub type _bindgen_ty_12 = ::std::os::raw::c_int;
-pub const BPF_F_ADJ_ROOM_FIXED_GSO: ::std::os::raw::c_uint = 1;
-pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV4: ::std::os::raw::c_uint = 2;
-pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV6: ::std::os::raw::c_uint = 4;
-pub const BPF_F_ADJ_ROOM_ENCAP_L4_GRE: ::std::os::raw::c_uint = 8;
-pub const BPF_F_ADJ_ROOM_ENCAP_L4_UDP: ::std::os::raw::c_uint = 16;
-pub const BPF_F_ADJ_ROOM_NO_CSUM_RESET: ::std::os::raw::c_uint = 32;
-pub const BPF_F_ADJ_ROOM_ENCAP_L2_ETH: ::std::os::raw::c_uint = 64;
+pub const BPF_F_ADJ_ROOM_FIXED_GSO: _bindgen_ty_14 = 1;
+pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV4: _bindgen_ty_14 = 2;
+pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV6: _bindgen_ty_14 = 4;
+pub const BPF_F_ADJ_ROOM_ENCAP_L4_GRE: _bindgen_ty_14 = 8;
+pub const BPF_F_ADJ_ROOM_ENCAP_L4_UDP: _bindgen_ty_14 = 16;
+pub const BPF_F_ADJ_ROOM_NO_CSUM_RESET: _bindgen_ty_14 = 32;
+pub const BPF_F_ADJ_ROOM_ENCAP_L2_ETH: _bindgen_ty_14 = 64;
 pub type _bindgen_ty_14 = ::std::os::raw::c_uint;
-pub const BPF_F_SYSCTL_BASE_NAME: ::std::os::raw::c_uint = 1;
+pub const BPF_F_SYSCTL_BASE_NAME: _bindgen_ty_16 = 1;
 pub type _bindgen_ty_16 = ::std::os::raw::c_uint;
-pub const BPF_F_GET_BRANCH_RECORDS_SIZE: ::std::os::raw::c_uint = 1;
+pub const BPF_F_GET_BRANCH_RECORDS_SIZE: _bindgen_ty_18 = 1;
 pub type _bindgen_ty_18 = ::std::os::raw::c_uint;
-pub const BPF_RINGBUF_BUSY_BIT: ::std::os::raw::c_uint = 2147483648;
-pub const BPF_RINGBUF_DISCARD_BIT: ::std::os::raw::c_uint = 1073741824;
-pub const BPF_RINGBUF_HDR_SZ: ::std::os::raw::c_uint = 8;
+pub const BPF_RINGBUF_BUSY_BIT: _bindgen_ty_21 = 2147483648;
+pub const BPF_RINGBUF_DISCARD_BIT: _bindgen_ty_21 = 1073741824;
+pub const BPF_RINGBUF_HDR_SZ: _bindgen_ty_21 = 8;
 pub type _bindgen_ty_21 = ::std::os::raw::c_uint;
-pub const BPF_F_BPRM_SECUREEXEC: ::std::os::raw::c_uint = 1;
+pub const BPF_F_BPRM_SECUREEXEC: _bindgen_ty_23 = 1;
 pub type _bindgen_ty_23 = ::std::os::raw::c_uint;
-pub const BPF_F_BROADCAST: ::std::os::raw::c_uint = 8;
-pub const BPF_F_EXCLUDE_INGRESS: ::std::os::raw::c_uint = 16;
+pub const BPF_F_BROADCAST: _bindgen_ty_24 = 8;
+pub const BPF_F_EXCLUDE_INGRESS: _bindgen_ty_24 = 16;
 pub type _bindgen_ty_24 = ::std::os::raw::c_uint;
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
@@ -782,6 +784,8 @@ pub struct bpf_prog_info {
     pub run_cnt: __u64,
     pub recursion_misses: __u64,
     pub verified_insns: __u32,
+    pub attach_btf_obj_id: __u32,
+    pub attach_btf_id: __u32,
 }
 impl bpf_prog_info {
     #[inline]
@@ -807,6 +811,34 @@ impl bpf_prog_info {
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
+pub struct bpf_map_info {
+    pub type_: __u32,
+    pub id: __u32,
+    pub key_size: __u32,
+    pub value_size: __u32,
+    pub max_entries: __u32,
+    pub map_flags: __u32,
+    pub name: [::std::os::raw::c_char; 16usize],
+    pub ifindex: __u32,
+    pub btf_vmlinux_value_type_id: __u32,
+    pub netns_dev: __u64,
+    pub netns_ino: __u64,
+    pub btf_id: __u32,
+    pub btf_key_type_id: __u32,
+    pub btf_value_type_id: __u32,
+    pub _bitfield_align_1: [u8; 0],
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+    pub map_extra: __u64,
+}
+impl bpf_map_info {
+    #[inline]
+    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+        __bindgen_bitfield_unit
+    }
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
 pub struct bpf_btf_info {
     pub btf: __u64,
     pub btf_size: __u32,
@@ -816,6 +848,71 @@ pub struct bpf_btf_info {
     pub kernel_btf: __u32,
 }
 #[repr(C)]
+#[derive(Copy, Clone)]
+pub struct bpf_link_info {
+    pub type_: __u32,
+    pub id: __u32,
+    pub prog_id: __u32,
+    pub __bindgen_anon_1: bpf_link_info__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_link_info__bindgen_ty_1 {
+    pub raw_tracepoint: bpf_link_info__bindgen_ty_1__bindgen_ty_1,
+    pub tracing: bpf_link_info__bindgen_ty_1__bindgen_ty_2,
+    pub cgroup: bpf_link_info__bindgen_ty_1__bindgen_ty_3,
+    pub iter: bpf_link_info__bindgen_ty_1__bindgen_ty_4,
+    pub netns: bpf_link_info__bindgen_ty_1__bindgen_ty_5,
+    pub xdp: bpf_link_info__bindgen_ty_1__bindgen_ty_6,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_1 {
+    pub tp_name: __u64,
+    pub tp_name_len: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_2 {
+    pub attach_type: __u32,
+    pub target_obj_id: __u32,
+    pub target_btf_id: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_3 {
+    pub cgroup_id: __u64,
+    pub attach_type: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_4 {
+    pub target_name: __u64,
+    pub target_name_len: __u32,
+    pub __bindgen_anon_1: bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1 {
+    pub map: bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1 {
+    pub map_id: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_5 {
+    pub netns_ino: __u32,
+    pub attach_type: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_6 {
+    pub ifindex: __u32,
+}
+#[repr(C)]
 #[derive(Debug, Copy, Clone)]
 pub struct bpf_func_info {
     pub insn_off: __u32,
@@ -854,27 +951,28 @@ pub union btf_type__bindgen_ty_1 {
     pub size: __u32,
     pub type_: __u32,
 }
-pub const BTF_KIND_UNKN: ::std::os::raw::c_uint = 0;
-pub const BTF_KIND_INT: ::std::os::raw::c_uint = 1;
-pub const BTF_KIND_PTR: ::std::os::raw::c_uint = 2;
-pub const BTF_KIND_ARRAY: ::std::os::raw::c_uint = 3;
-pub const BTF_KIND_STRUCT: ::std::os::raw::c_uint = 4;
-pub const BTF_KIND_UNION: ::std::os::raw::c_uint = 5;
-pub const BTF_KIND_ENUM: ::std::os::raw::c_uint = 6;
-pub const BTF_KIND_FWD: ::std::os::raw::c_uint = 7;
-pub const BTF_KIND_TYPEDEF: ::std::os::raw::c_uint = 8;
-pub const BTF_KIND_VOLATILE: ::std::os::raw::c_uint = 9;
-pub const BTF_KIND_CONST: ::std::os::raw::c_uint = 10;
-pub const BTF_KIND_RESTRICT: ::std::os::raw::c_uint = 11;
-pub const BTF_KIND_FUNC: ::std::os::raw::c_uint = 12;
-pub const BTF_KIND_FUNC_PROTO: ::std::os::raw::c_uint = 13;
-pub const BTF_KIND_VAR: ::std::os::raw::c_uint = 14;
-pub const BTF_KIND_DATASEC: ::std::os::raw::c_uint = 15;
-pub const BTF_KIND_FLOAT: ::std::os::raw::c_uint = 16;
-pub const BTF_KIND_DECL_TAG: ::std::os::raw::c_uint = 17;
-pub const BTF_KIND_TYPE_TAG: ::std::os::raw::c_uint = 18;
-pub const NR_BTF_KINDS: ::std::os::raw::c_uint = 19;
-pub const BTF_KIND_MAX: ::std::os::raw::c_uint = 18;
+pub const BTF_KIND_UNKN: _bindgen_ty_38 = 0;
+pub const BTF_KIND_INT: _bindgen_ty_38 = 1;
+pub const BTF_KIND_PTR: _bindgen_ty_38 = 2;
+pub const BTF_KIND_ARRAY: _bindgen_ty_38 = 3;
+pub const BTF_KIND_STRUCT: _bindgen_ty_38 = 4;
+pub const BTF_KIND_UNION: _bindgen_ty_38 = 5;
+pub const BTF_KIND_ENUM: _bindgen_ty_38 = 6;
+pub const BTF_KIND_FWD: _bindgen_ty_38 = 7;
+pub const BTF_KIND_TYPEDEF: _bindgen_ty_38 = 8;
+pub const BTF_KIND_VOLATILE: _bindgen_ty_38 = 9;
+pub const BTF_KIND_CONST: _bindgen_ty_38 = 10;
+pub const BTF_KIND_RESTRICT: _bindgen_ty_38 = 11;
+pub const BTF_KIND_FUNC: _bindgen_ty_38 = 12;
+pub const BTF_KIND_FUNC_PROTO: _bindgen_ty_38 = 13;
+pub const BTF_KIND_VAR: _bindgen_ty_38 = 14;
+pub const BTF_KIND_DATASEC: _bindgen_ty_38 = 15;
+pub const BTF_KIND_FLOAT: _bindgen_ty_38 = 16;
+pub const BTF_KIND_DECL_TAG: _bindgen_ty_38 = 17;
+pub const BTF_KIND_TYPE_TAG: _bindgen_ty_38 = 18;
+pub const BTF_KIND_ENUM64: _bindgen_ty_38 = 19;
+pub const NR_BTF_KINDS: _bindgen_ty_38 = 20;
+pub const BTF_KIND_MAX: _bindgen_ty_38 = 19;
 pub type _bindgen_ty_38 = ::std::os::raw::c_uint;
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
@@ -902,9 +1000,9 @@ pub struct btf_param {
     pub name_off: __u32,
     pub type_: __u32,
 }
-pub const BTF_VAR_STATIC: ::std::os::raw::c_uint = 0;
-pub const BTF_VAR_GLOBAL_ALLOCATED: ::std::os::raw::c_uint = 1;
-pub const BTF_VAR_GLOBAL_EXTERN: ::std::os::raw::c_uint = 2;
+pub const BTF_VAR_STATIC: _bindgen_ty_39 = 0;
+pub const BTF_VAR_GLOBAL_ALLOCATED: _bindgen_ty_39 = 1;
+pub const BTF_VAR_GLOBAL_EXTERN: _bindgen_ty_39 = 2;
 pub type _bindgen_ty_39 = ::std::os::raw::c_uint;
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
@@ -1901,16 +1999,16 @@ pub enum perf_event_type {
     PERF_RECORD_AUX_OUTPUT_HW_ID = 21,
     PERF_RECORD_MAX = 22,
 }
-pub const IFLA_XDP_UNSPEC: ::std::os::raw::c_uint = 0;
-pub const IFLA_XDP_FD: ::std::os::raw::c_uint = 1;
-pub const IFLA_XDP_ATTACHED: ::std::os::raw::c_uint = 2;
-pub const IFLA_XDP_FLAGS: ::std::os::raw::c_uint = 3;
-pub const IFLA_XDP_PROG_ID: ::std::os::raw::c_uint = 4;
-pub const IFLA_XDP_DRV_PROG_ID: ::std::os::raw::c_uint = 5;
-pub const IFLA_XDP_SKB_PROG_ID: ::std::os::raw::c_uint = 6;
-pub const IFLA_XDP_HW_PROG_ID: ::std::os::raw::c_uint = 7;
-pub const IFLA_XDP_EXPECTED_FD: ::std::os::raw::c_uint = 8;
-pub const __IFLA_XDP_MAX: ::std::os::raw::c_uint = 9;
+pub const IFLA_XDP_UNSPEC: _bindgen_ty_85 = 0;
+pub const IFLA_XDP_FD: _bindgen_ty_85 = 1;
+pub const IFLA_XDP_ATTACHED: _bindgen_ty_85 = 2;
+pub const IFLA_XDP_FLAGS: _bindgen_ty_85 = 3;
+pub const IFLA_XDP_PROG_ID: _bindgen_ty_85 = 4;
+pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_85 = 5;
+pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_85 = 6;
+pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_85 = 7;
+pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_85 = 8;
+pub const __IFLA_XDP_MAX: _bindgen_ty_85 = 9;
 pub type _bindgen_ty_85 = ::std::os::raw::c_uint;
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
@@ -1933,36 +2031,36 @@ pub struct tcmsg {
     pub tcm_parent: __u32,
     pub tcm_info: __u32,
 }
-pub const TCA_UNSPEC: ::std::os::raw::c_uint = 0;
-pub const TCA_KIND: ::std::os::raw::c_uint = 1;
-pub const TCA_OPTIONS: ::std::os::raw::c_uint = 2;
-pub const TCA_STATS: ::std::os::raw::c_uint = 3;
-pub const TCA_XSTATS: ::std::os::raw::c_uint = 4;
-pub const TCA_RATE: ::std::os::raw::c_uint = 5;
-pub const TCA_FCNT: ::std::os::raw::c_uint = 6;
-pub const TCA_STATS2: ::std::os::raw::c_uint = 7;
-pub const TCA_STAB: ::std::os::raw::c_uint = 8;
-pub const TCA_PAD: ::std::os::raw::c_uint = 9;
-pub const TCA_DUMP_INVISIBLE: ::std::os::raw::c_uint = 10;
-pub const TCA_CHAIN: ::std::os::raw::c_uint = 11;
-pub const TCA_HW_OFFLOAD: ::std::os::raw::c_uint = 12;
-pub const TCA_INGRESS_BLOCK: ::std::os::raw::c_uint = 13;
-pub const TCA_EGRESS_BLOCK: ::std::os::raw::c_uint = 14;
-pub const __TCA_MAX: ::std::os::raw::c_uint = 15;
+pub const TCA_UNSPEC: _bindgen_ty_98 = 0;
+pub const TCA_KIND: _bindgen_ty_98 = 1;
+pub const TCA_OPTIONS: _bindgen_ty_98 = 2;
+pub const TCA_STATS: _bindgen_ty_98 = 3;
+pub const TCA_XSTATS: _bindgen_ty_98 = 4;
+pub const TCA_RATE: _bindgen_ty_98 = 5;
+pub const TCA_FCNT: _bindgen_ty_98 = 6;
+pub const TCA_STATS2: _bindgen_ty_98 = 7;
+pub const TCA_STAB: _bindgen_ty_98 = 8;
+pub const TCA_PAD: _bindgen_ty_98 = 9;
+pub const TCA_DUMP_INVISIBLE: _bindgen_ty_98 = 10;
+pub const TCA_CHAIN: _bindgen_ty_98 = 11;
+pub const TCA_HW_OFFLOAD: _bindgen_ty_98 = 12;
+pub const TCA_INGRESS_BLOCK: _bindgen_ty_98 = 13;
+pub const TCA_EGRESS_BLOCK: _bindgen_ty_98 = 14;
+pub const __TCA_MAX: _bindgen_ty_98 = 15;
 pub type _bindgen_ty_98 = ::std::os::raw::c_uint;
-pub const TCA_BPF_UNSPEC: ::std::os::raw::c_uint = 0;
-pub const TCA_BPF_ACT: ::std::os::raw::c_uint = 1;
-pub const TCA_BPF_POLICE: ::std::os::raw::c_uint = 2;
-pub const TCA_BPF_CLASSID: ::std::os::raw::c_uint = 3;
-pub const TCA_BPF_OPS_LEN: ::std::os::raw::c_uint = 4;
-pub const TCA_BPF_OPS: ::std::os::raw::c_uint = 5;
-pub const TCA_BPF_FD: ::std::os::raw::c_uint = 6;
-pub const TCA_BPF_NAME: ::std::os::raw::c_uint = 7;
-pub const TCA_BPF_FLAGS: ::std::os::raw::c_uint = 8;
-pub const TCA_BPF_FLAGS_GEN: ::std::os::raw::c_uint = 9;
-pub const TCA_BPF_TAG: ::std::os::raw::c_uint = 10;
-pub const TCA_BPF_ID: ::std::os::raw::c_uint = 11;
-pub const __TCA_BPF_MAX: ::std::os::raw::c_uint = 12;
+pub const TCA_BPF_UNSPEC: _bindgen_ty_154 = 0;
+pub const TCA_BPF_ACT: _bindgen_ty_154 = 1;
+pub const TCA_BPF_POLICE: _bindgen_ty_154 = 2;
+pub const TCA_BPF_CLASSID: _bindgen_ty_154 = 3;
+pub const TCA_BPF_OPS_LEN: _bindgen_ty_154 = 4;
+pub const TCA_BPF_OPS: _bindgen_ty_154 = 5;
+pub const TCA_BPF_FD: _bindgen_ty_154 = 6;
+pub const TCA_BPF_NAME: _bindgen_ty_154 = 7;
+pub const TCA_BPF_FLAGS: _bindgen_ty_154 = 8;
+pub const TCA_BPF_FLAGS_GEN: _bindgen_ty_154 = 9;
+pub const TCA_BPF_TAG: _bindgen_ty_154 = 10;
+pub const TCA_BPF_ID: _bindgen_ty_154 = 11;
+pub const __TCA_BPF_MAX: _bindgen_ty_154 = 12;
 pub type _bindgen_ty_154 = ::std::os::raw::c_uint;
 pub const AYA_PERF_EVENT_IOC_ENABLE: ::std::os::raw::c_int = 9216;
 pub const AYA_PERF_EVENT_IOC_DISABLE: ::std::os::raw::c_int = 9217;

+ 186 - 139
bpf/aya-bpf-bindings/src/aarch64/bindings.rs

@@ -288,18 +288,18 @@ pub type __u64 = ::aya_bpf_cty::c_ulonglong;
 pub type __be16 = __u16;
 pub type __be32 = __u32;
 pub type __wsum = __u32;
-pub const BPF_REG_0: ::aya_bpf_cty::c_uint = 0;
-pub const BPF_REG_1: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_REG_2: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_REG_3: ::aya_bpf_cty::c_uint = 3;
-pub const BPF_REG_4: ::aya_bpf_cty::c_uint = 4;
-pub const BPF_REG_5: ::aya_bpf_cty::c_uint = 5;
-pub const BPF_REG_6: ::aya_bpf_cty::c_uint = 6;
-pub const BPF_REG_7: ::aya_bpf_cty::c_uint = 7;
-pub const BPF_REG_8: ::aya_bpf_cty::c_uint = 8;
-pub const BPF_REG_9: ::aya_bpf_cty::c_uint = 9;
-pub const BPF_REG_10: ::aya_bpf_cty::c_uint = 10;
-pub const __MAX_BPF_REG: ::aya_bpf_cty::c_uint = 11;
+pub const BPF_REG_0: _bindgen_ty_1 = 0;
+pub const BPF_REG_1: _bindgen_ty_1 = 1;
+pub const BPF_REG_2: _bindgen_ty_1 = 2;
+pub const BPF_REG_3: _bindgen_ty_1 = 3;
+pub const BPF_REG_4: _bindgen_ty_1 = 4;
+pub const BPF_REG_5: _bindgen_ty_1 = 5;
+pub const BPF_REG_6: _bindgen_ty_1 = 6;
+pub const BPF_REG_7: _bindgen_ty_1 = 7;
+pub const BPF_REG_8: _bindgen_ty_1 = 8;
+pub const BPF_REG_9: _bindgen_ty_1 = 9;
+pub const BPF_REG_10: _bindgen_ty_1 = 10;
+pub const __MAX_BPF_REG: _bindgen_ty_1 = 11;
 pub type _bindgen_ty_1 = ::aya_bpf_cty::c_uint;
 #[repr(C)]
 #[derive(Copy, Clone)]
@@ -522,7 +522,8 @@ pub mod bpf_attach_type {
     pub const BPF_SK_REUSEPORT_SELECT_OR_MIGRATE: Type = 40;
     pub const BPF_PERF_EVENT: Type = 41;
     pub const BPF_TRACE_KPROBE_MULTI: Type = 42;
-    pub const __MAX_BPF_ATTACH_TYPE: Type = 43;
+    pub const BPF_LSM_CGROUP: Type = 43;
+    pub const __MAX_BPF_ATTACH_TYPE: Type = 44;
 }
 pub mod bpf_link_type {
     pub type Type = ::aya_bpf_cty::c_uint;
@@ -538,24 +539,24 @@ pub mod bpf_link_type {
     pub const BPF_LINK_TYPE_STRUCT_OPS: Type = 9;
     pub const MAX_BPF_LINK_TYPE: Type = 10;
 }
-pub const BPF_ANY: ::aya_bpf_cty::c_uint = 0;
-pub const BPF_NOEXIST: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_EXIST: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_F_LOCK: ::aya_bpf_cty::c_uint = 4;
+pub const BPF_ANY: _bindgen_ty_2 = 0;
+pub const BPF_NOEXIST: _bindgen_ty_2 = 1;
+pub const BPF_EXIST: _bindgen_ty_2 = 2;
+pub const BPF_F_LOCK: _bindgen_ty_2 = 4;
 pub type _bindgen_ty_2 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_NO_PREALLOC: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_F_NO_COMMON_LRU: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_F_NUMA_NODE: ::aya_bpf_cty::c_uint = 4;
-pub const BPF_F_RDONLY: ::aya_bpf_cty::c_uint = 8;
-pub const BPF_F_WRONLY: ::aya_bpf_cty::c_uint = 16;
-pub const BPF_F_STACK_BUILD_ID: ::aya_bpf_cty::c_uint = 32;
-pub const BPF_F_ZERO_SEED: ::aya_bpf_cty::c_uint = 64;
-pub const BPF_F_RDONLY_PROG: ::aya_bpf_cty::c_uint = 128;
-pub const BPF_F_WRONLY_PROG: ::aya_bpf_cty::c_uint = 256;
-pub const BPF_F_CLONE: ::aya_bpf_cty::c_uint = 512;
-pub const BPF_F_MMAPABLE: ::aya_bpf_cty::c_uint = 1024;
-pub const BPF_F_PRESERVE_ELEMS: ::aya_bpf_cty::c_uint = 2048;
-pub const BPF_F_INNER_MAP: ::aya_bpf_cty::c_uint = 4096;
+pub const BPF_F_NO_PREALLOC: _bindgen_ty_3 = 1;
+pub const BPF_F_NO_COMMON_LRU: _bindgen_ty_3 = 2;
+pub const BPF_F_NUMA_NODE: _bindgen_ty_3 = 4;
+pub const BPF_F_RDONLY: _bindgen_ty_3 = 8;
+pub const BPF_F_WRONLY: _bindgen_ty_3 = 16;
+pub const BPF_F_STACK_BUILD_ID: _bindgen_ty_3 = 32;
+pub const BPF_F_ZERO_SEED: _bindgen_ty_3 = 64;
+pub const BPF_F_RDONLY_PROG: _bindgen_ty_3 = 128;
+pub const BPF_F_WRONLY_PROG: _bindgen_ty_3 = 256;
+pub const BPF_F_CLONE: _bindgen_ty_3 = 512;
+pub const BPF_F_MMAPABLE: _bindgen_ty_3 = 1024;
+pub const BPF_F_PRESERVE_ELEMS: _bindgen_ty_3 = 2048;
+pub const BPF_F_INNER_MAP: _bindgen_ty_3 = 4096;
 pub type _bindgen_ty_3 = ::aya_bpf_cty::c_uint;
 pub mod bpf_stats_type {
     pub type Type = ::aya_bpf_cty::c_uint;
@@ -749,6 +750,7 @@ pub struct bpf_attr__bindgen_ty_10 {
     pub attach_flags: __u32,
     pub prog_ids: __u64,
     pub prog_cnt: __u32,
+    pub prog_attach_flags: __u64,
 }
 #[repr(C)]
 #[derive(Copy, Clone)]
@@ -1057,74 +1059,87 @@ pub mod bpf_func_id {
     pub const BPF_FUNC_ima_file_hash: Type = 193;
     pub const BPF_FUNC_kptr_xchg: Type = 194;
     pub const BPF_FUNC_map_lookup_percpu_elem: Type = 195;
-    pub const __BPF_FUNC_MAX_ID: Type = 196;
-}
-pub const BPF_F_RECOMPUTE_CSUM: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_F_INVALIDATE_HASH: ::aya_bpf_cty::c_uint = 2;
+    pub const BPF_FUNC_skc_to_mptcp_sock: Type = 196;
+    pub const BPF_FUNC_dynptr_from_mem: Type = 197;
+    pub const BPF_FUNC_ringbuf_reserve_dynptr: Type = 198;
+    pub const BPF_FUNC_ringbuf_submit_dynptr: Type = 199;
+    pub const BPF_FUNC_ringbuf_discard_dynptr: Type = 200;
+    pub const BPF_FUNC_dynptr_read: Type = 201;
+    pub const BPF_FUNC_dynptr_write: Type = 202;
+    pub const BPF_FUNC_dynptr_data: Type = 203;
+    pub const BPF_FUNC_tcp_raw_gen_syncookie_ipv4: Type = 204;
+    pub const BPF_FUNC_tcp_raw_gen_syncookie_ipv6: Type = 205;
+    pub const BPF_FUNC_tcp_raw_check_syncookie_ipv4: Type = 206;
+    pub const BPF_FUNC_tcp_raw_check_syncookie_ipv6: Type = 207;
+    pub const BPF_FUNC_ktime_get_tai_ns: Type = 208;
+    pub const __BPF_FUNC_MAX_ID: Type = 209;
+}
+pub const BPF_F_RECOMPUTE_CSUM: _bindgen_ty_4 = 1;
+pub const BPF_F_INVALIDATE_HASH: _bindgen_ty_4 = 2;
 pub type _bindgen_ty_4 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_HDR_FIELD_MASK: ::aya_bpf_cty::c_uint = 15;
+pub const BPF_F_HDR_FIELD_MASK: _bindgen_ty_5 = 15;
 pub type _bindgen_ty_5 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_PSEUDO_HDR: ::aya_bpf_cty::c_uint = 16;
-pub const BPF_F_MARK_MANGLED_0: ::aya_bpf_cty::c_uint = 32;
-pub const BPF_F_MARK_ENFORCE: ::aya_bpf_cty::c_uint = 64;
+pub const BPF_F_PSEUDO_HDR: _bindgen_ty_6 = 16;
+pub const BPF_F_MARK_MANGLED_0: _bindgen_ty_6 = 32;
+pub const BPF_F_MARK_ENFORCE: _bindgen_ty_6 = 64;
 pub type _bindgen_ty_6 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_INGRESS: ::aya_bpf_cty::c_uint = 1;
+pub const BPF_F_INGRESS: _bindgen_ty_7 = 1;
 pub type _bindgen_ty_7 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_TUNINFO_IPV6: ::aya_bpf_cty::c_uint = 1;
+pub const BPF_F_TUNINFO_IPV6: _bindgen_ty_8 = 1;
 pub type _bindgen_ty_8 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_SKIP_FIELD_MASK: ::aya_bpf_cty::c_uint = 255;
-pub const BPF_F_USER_STACK: ::aya_bpf_cty::c_uint = 256;
-pub const BPF_F_FAST_STACK_CMP: ::aya_bpf_cty::c_uint = 512;
-pub const BPF_F_REUSE_STACKID: ::aya_bpf_cty::c_uint = 1024;
-pub const BPF_F_USER_BUILD_ID: ::aya_bpf_cty::c_uint = 2048;
+pub const BPF_F_SKIP_FIELD_MASK: _bindgen_ty_9 = 255;
+pub const BPF_F_USER_STACK: _bindgen_ty_9 = 256;
+pub const BPF_F_FAST_STACK_CMP: _bindgen_ty_9 = 512;
+pub const BPF_F_REUSE_STACKID: _bindgen_ty_9 = 1024;
+pub const BPF_F_USER_BUILD_ID: _bindgen_ty_9 = 2048;
 pub type _bindgen_ty_9 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_ZERO_CSUM_TX: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_F_DONT_FRAGMENT: ::aya_bpf_cty::c_uint = 4;
-pub const BPF_F_SEQ_NUMBER: ::aya_bpf_cty::c_uint = 8;
+pub const BPF_F_ZERO_CSUM_TX: _bindgen_ty_10 = 2;
+pub const BPF_F_DONT_FRAGMENT: _bindgen_ty_10 = 4;
+pub const BPF_F_SEQ_NUMBER: _bindgen_ty_10 = 8;
 pub type _bindgen_ty_10 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_INDEX_MASK: ::aya_bpf_cty::c_ulong = 4294967295;
-pub const BPF_F_CURRENT_CPU: ::aya_bpf_cty::c_ulong = 4294967295;
-pub const BPF_F_CTXLEN_MASK: ::aya_bpf_cty::c_ulong = 4503595332403200;
+pub const BPF_F_INDEX_MASK: _bindgen_ty_11 = 4294967295;
+pub const BPF_F_CURRENT_CPU: _bindgen_ty_11 = 4294967295;
+pub const BPF_F_CTXLEN_MASK: _bindgen_ty_11 = 4503595332403200;
 pub type _bindgen_ty_11 = ::aya_bpf_cty::c_ulong;
-pub const BPF_F_CURRENT_NETNS: ::aya_bpf_cty::c_int = -1;
+pub const BPF_F_CURRENT_NETNS: _bindgen_ty_12 = -1;
 pub type _bindgen_ty_12 = ::aya_bpf_cty::c_int;
-pub const BPF_CSUM_LEVEL_QUERY: ::aya_bpf_cty::c_uint = 0;
-pub const BPF_CSUM_LEVEL_INC: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_CSUM_LEVEL_DEC: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_CSUM_LEVEL_RESET: ::aya_bpf_cty::c_uint = 3;
+pub const BPF_CSUM_LEVEL_QUERY: _bindgen_ty_13 = 0;
+pub const BPF_CSUM_LEVEL_INC: _bindgen_ty_13 = 1;
+pub const BPF_CSUM_LEVEL_DEC: _bindgen_ty_13 = 2;
+pub const BPF_CSUM_LEVEL_RESET: _bindgen_ty_13 = 3;
 pub type _bindgen_ty_13 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_ADJ_ROOM_FIXED_GSO: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV4: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV6: ::aya_bpf_cty::c_uint = 4;
-pub const BPF_F_ADJ_ROOM_ENCAP_L4_GRE: ::aya_bpf_cty::c_uint = 8;
-pub const BPF_F_ADJ_ROOM_ENCAP_L4_UDP: ::aya_bpf_cty::c_uint = 16;
-pub const BPF_F_ADJ_ROOM_NO_CSUM_RESET: ::aya_bpf_cty::c_uint = 32;
-pub const BPF_F_ADJ_ROOM_ENCAP_L2_ETH: ::aya_bpf_cty::c_uint = 64;
+pub const BPF_F_ADJ_ROOM_FIXED_GSO: _bindgen_ty_14 = 1;
+pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV4: _bindgen_ty_14 = 2;
+pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV6: _bindgen_ty_14 = 4;
+pub const BPF_F_ADJ_ROOM_ENCAP_L4_GRE: _bindgen_ty_14 = 8;
+pub const BPF_F_ADJ_ROOM_ENCAP_L4_UDP: _bindgen_ty_14 = 16;
+pub const BPF_F_ADJ_ROOM_NO_CSUM_RESET: _bindgen_ty_14 = 32;
+pub const BPF_F_ADJ_ROOM_ENCAP_L2_ETH: _bindgen_ty_14 = 64;
 pub type _bindgen_ty_14 = ::aya_bpf_cty::c_uint;
-pub const BPF_ADJ_ROOM_ENCAP_L2_MASK: ::aya_bpf_cty::c_uint = 255;
-pub const BPF_ADJ_ROOM_ENCAP_L2_SHIFT: ::aya_bpf_cty::c_uint = 56;
+pub const BPF_ADJ_ROOM_ENCAP_L2_MASK: _bindgen_ty_15 = 255;
+pub const BPF_ADJ_ROOM_ENCAP_L2_SHIFT: _bindgen_ty_15 = 56;
 pub type _bindgen_ty_15 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_SYSCTL_BASE_NAME: ::aya_bpf_cty::c_uint = 1;
+pub const BPF_F_SYSCTL_BASE_NAME: _bindgen_ty_16 = 1;
 pub type _bindgen_ty_16 = ::aya_bpf_cty::c_uint;
-pub const BPF_LOCAL_STORAGE_GET_F_CREATE: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_SK_STORAGE_GET_F_CREATE: ::aya_bpf_cty::c_uint = 1;
+pub const BPF_LOCAL_STORAGE_GET_F_CREATE: _bindgen_ty_17 = 1;
+pub const BPF_SK_STORAGE_GET_F_CREATE: _bindgen_ty_17 = 1;
 pub type _bindgen_ty_17 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_GET_BRANCH_RECORDS_SIZE: ::aya_bpf_cty::c_uint = 1;
+pub const BPF_F_GET_BRANCH_RECORDS_SIZE: _bindgen_ty_18 = 1;
 pub type _bindgen_ty_18 = ::aya_bpf_cty::c_uint;
-pub const BPF_RB_NO_WAKEUP: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_RB_FORCE_WAKEUP: ::aya_bpf_cty::c_uint = 2;
+pub const BPF_RB_NO_WAKEUP: _bindgen_ty_19 = 1;
+pub const BPF_RB_FORCE_WAKEUP: _bindgen_ty_19 = 2;
 pub type _bindgen_ty_19 = ::aya_bpf_cty::c_uint;
-pub const BPF_RB_AVAIL_DATA: ::aya_bpf_cty::c_uint = 0;
-pub const BPF_RB_RING_SIZE: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_RB_CONS_POS: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_RB_PROD_POS: ::aya_bpf_cty::c_uint = 3;
+pub const BPF_RB_AVAIL_DATA: _bindgen_ty_20 = 0;
+pub const BPF_RB_RING_SIZE: _bindgen_ty_20 = 1;
+pub const BPF_RB_CONS_POS: _bindgen_ty_20 = 2;
+pub const BPF_RB_PROD_POS: _bindgen_ty_20 = 3;
 pub type _bindgen_ty_20 = ::aya_bpf_cty::c_uint;
-pub const BPF_RINGBUF_BUSY_BIT: ::aya_bpf_cty::c_uint = 2147483648;
-pub const BPF_RINGBUF_DISCARD_BIT: ::aya_bpf_cty::c_uint = 1073741824;
-pub const BPF_RINGBUF_HDR_SZ: ::aya_bpf_cty::c_uint = 8;
+pub const BPF_RINGBUF_BUSY_BIT: _bindgen_ty_21 = 2147483648;
+pub const BPF_RINGBUF_DISCARD_BIT: _bindgen_ty_21 = 1073741824;
+pub const BPF_RINGBUF_HDR_SZ: _bindgen_ty_21 = 8;
 pub type _bindgen_ty_21 = ::aya_bpf_cty::c_uint;
-pub const BPF_SK_LOOKUP_F_REPLACE: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_SK_LOOKUP_F_NO_REUSEPORT: ::aya_bpf_cty::c_uint = 2;
+pub const BPF_SK_LOOKUP_F_REPLACE: _bindgen_ty_22 = 1;
+pub const BPF_SK_LOOKUP_F_NO_REUSEPORT: _bindgen_ty_22 = 2;
 pub type _bindgen_ty_22 = ::aya_bpf_cty::c_uint;
 pub mod bpf_adj_room_mode {
     pub type Type = ::aya_bpf_cty::c_uint;
@@ -1142,10 +1157,10 @@ pub mod bpf_lwt_encap_mode {
     pub const BPF_LWT_ENCAP_SEG6_INLINE: Type = 1;
     pub const BPF_LWT_ENCAP_IP: Type = 2;
 }
-pub const BPF_F_BPRM_SECUREEXEC: ::aya_bpf_cty::c_uint = 1;
+pub const BPF_F_BPRM_SECUREEXEC: _bindgen_ty_23 = 1;
 pub type _bindgen_ty_23 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_BROADCAST: ::aya_bpf_cty::c_uint = 8;
-pub const BPF_F_EXCLUDE_INGRESS: ::aya_bpf_cty::c_uint = 16;
+pub const BPF_F_BROADCAST: _bindgen_ty_24 = 8;
+pub const BPF_F_EXCLUDE_INGRESS: _bindgen_ty_24 = 16;
 pub type _bindgen_ty_24 = ::aya_bpf_cty::c_uint;
 pub mod _bindgen_ty_25 {
     pub type Type = ::aya_bpf_cty::c_uint;
@@ -1574,6 +1589,8 @@ pub struct bpf_prog_info {
     pub run_cnt: __u64,
     pub recursion_misses: __u64,
     pub verified_insns: __u32,
+    pub attach_btf_obj_id: __u32,
+    pub attach_btf_id: __u32,
 }
 impl bpf_prog_info {
     #[inline]
@@ -1821,45 +1838,45 @@ impl bpf_sock_ops__bindgen_ty_4 {
         __bindgen_bitfield_unit
     }
 }
-pub const BPF_SOCK_OPS_RTO_CB_FLAG: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_SOCK_OPS_RETRANS_CB_FLAG: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_SOCK_OPS_STATE_CB_FLAG: ::aya_bpf_cty::c_uint = 4;
-pub const BPF_SOCK_OPS_RTT_CB_FLAG: ::aya_bpf_cty::c_uint = 8;
-pub const BPF_SOCK_OPS_PARSE_ALL_HDR_OPT_CB_FLAG: ::aya_bpf_cty::c_uint = 16;
-pub const BPF_SOCK_OPS_PARSE_UNKNOWN_HDR_OPT_CB_FLAG: ::aya_bpf_cty::c_uint = 32;
-pub const BPF_SOCK_OPS_WRITE_HDR_OPT_CB_FLAG: ::aya_bpf_cty::c_uint = 64;
-pub const BPF_SOCK_OPS_ALL_CB_FLAGS: ::aya_bpf_cty::c_uint = 127;
+pub const BPF_SOCK_OPS_RTO_CB_FLAG: _bindgen_ty_26 = 1;
+pub const BPF_SOCK_OPS_RETRANS_CB_FLAG: _bindgen_ty_26 = 2;
+pub const BPF_SOCK_OPS_STATE_CB_FLAG: _bindgen_ty_26 = 4;
+pub const BPF_SOCK_OPS_RTT_CB_FLAG: _bindgen_ty_26 = 8;
+pub const BPF_SOCK_OPS_PARSE_ALL_HDR_OPT_CB_FLAG: _bindgen_ty_26 = 16;
+pub const BPF_SOCK_OPS_PARSE_UNKNOWN_HDR_OPT_CB_FLAG: _bindgen_ty_26 = 32;
+pub const BPF_SOCK_OPS_WRITE_HDR_OPT_CB_FLAG: _bindgen_ty_26 = 64;
+pub const BPF_SOCK_OPS_ALL_CB_FLAGS: _bindgen_ty_26 = 127;
 pub type _bindgen_ty_26 = ::aya_bpf_cty::c_uint;
-pub const BPF_SOCK_OPS_VOID: ::aya_bpf_cty::c_uint = 0;
-pub const BPF_SOCK_OPS_TIMEOUT_INIT: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_SOCK_OPS_RWND_INIT: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_SOCK_OPS_TCP_CONNECT_CB: ::aya_bpf_cty::c_uint = 3;
-pub const BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB: ::aya_bpf_cty::c_uint = 4;
-pub const BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB: ::aya_bpf_cty::c_uint = 5;
-pub const BPF_SOCK_OPS_NEEDS_ECN: ::aya_bpf_cty::c_uint = 6;
-pub const BPF_SOCK_OPS_BASE_RTT: ::aya_bpf_cty::c_uint = 7;
-pub const BPF_SOCK_OPS_RTO_CB: ::aya_bpf_cty::c_uint = 8;
-pub const BPF_SOCK_OPS_RETRANS_CB: ::aya_bpf_cty::c_uint = 9;
-pub const BPF_SOCK_OPS_STATE_CB: ::aya_bpf_cty::c_uint = 10;
-pub const BPF_SOCK_OPS_TCP_LISTEN_CB: ::aya_bpf_cty::c_uint = 11;
-pub const BPF_SOCK_OPS_RTT_CB: ::aya_bpf_cty::c_uint = 12;
-pub const BPF_SOCK_OPS_PARSE_HDR_OPT_CB: ::aya_bpf_cty::c_uint = 13;
-pub const BPF_SOCK_OPS_HDR_OPT_LEN_CB: ::aya_bpf_cty::c_uint = 14;
-pub const BPF_SOCK_OPS_WRITE_HDR_OPT_CB: ::aya_bpf_cty::c_uint = 15;
+pub const BPF_SOCK_OPS_VOID: _bindgen_ty_27 = 0;
+pub const BPF_SOCK_OPS_TIMEOUT_INIT: _bindgen_ty_27 = 1;
+pub const BPF_SOCK_OPS_RWND_INIT: _bindgen_ty_27 = 2;
+pub const BPF_SOCK_OPS_TCP_CONNECT_CB: _bindgen_ty_27 = 3;
+pub const BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB: _bindgen_ty_27 = 4;
+pub const BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB: _bindgen_ty_27 = 5;
+pub const BPF_SOCK_OPS_NEEDS_ECN: _bindgen_ty_27 = 6;
+pub const BPF_SOCK_OPS_BASE_RTT: _bindgen_ty_27 = 7;
+pub const BPF_SOCK_OPS_RTO_CB: _bindgen_ty_27 = 8;
+pub const BPF_SOCK_OPS_RETRANS_CB: _bindgen_ty_27 = 9;
+pub const BPF_SOCK_OPS_STATE_CB: _bindgen_ty_27 = 10;
+pub const BPF_SOCK_OPS_TCP_LISTEN_CB: _bindgen_ty_27 = 11;
+pub const BPF_SOCK_OPS_RTT_CB: _bindgen_ty_27 = 12;
+pub const BPF_SOCK_OPS_PARSE_HDR_OPT_CB: _bindgen_ty_27 = 13;
+pub const BPF_SOCK_OPS_HDR_OPT_LEN_CB: _bindgen_ty_27 = 14;
+pub const BPF_SOCK_OPS_WRITE_HDR_OPT_CB: _bindgen_ty_27 = 15;
 pub type _bindgen_ty_27 = ::aya_bpf_cty::c_uint;
-pub const BPF_TCP_ESTABLISHED: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_TCP_SYN_SENT: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_TCP_SYN_RECV: ::aya_bpf_cty::c_uint = 3;
-pub const BPF_TCP_FIN_WAIT1: ::aya_bpf_cty::c_uint = 4;
-pub const BPF_TCP_FIN_WAIT2: ::aya_bpf_cty::c_uint = 5;
-pub const BPF_TCP_TIME_WAIT: ::aya_bpf_cty::c_uint = 6;
-pub const BPF_TCP_CLOSE: ::aya_bpf_cty::c_uint = 7;
-pub const BPF_TCP_CLOSE_WAIT: ::aya_bpf_cty::c_uint = 8;
-pub const BPF_TCP_LAST_ACK: ::aya_bpf_cty::c_uint = 9;
-pub const BPF_TCP_LISTEN: ::aya_bpf_cty::c_uint = 10;
-pub const BPF_TCP_CLOSING: ::aya_bpf_cty::c_uint = 11;
-pub const BPF_TCP_NEW_SYN_RECV: ::aya_bpf_cty::c_uint = 12;
-pub const BPF_TCP_MAX_STATES: ::aya_bpf_cty::c_uint = 13;
+pub const BPF_TCP_ESTABLISHED: _bindgen_ty_28 = 1;
+pub const BPF_TCP_SYN_SENT: _bindgen_ty_28 = 2;
+pub const BPF_TCP_SYN_RECV: _bindgen_ty_28 = 3;
+pub const BPF_TCP_FIN_WAIT1: _bindgen_ty_28 = 4;
+pub const BPF_TCP_FIN_WAIT2: _bindgen_ty_28 = 5;
+pub const BPF_TCP_TIME_WAIT: _bindgen_ty_28 = 6;
+pub const BPF_TCP_CLOSE: _bindgen_ty_28 = 7;
+pub const BPF_TCP_CLOSE_WAIT: _bindgen_ty_28 = 8;
+pub const BPF_TCP_LAST_ACK: _bindgen_ty_28 = 9;
+pub const BPF_TCP_LISTEN: _bindgen_ty_28 = 10;
+pub const BPF_TCP_CLOSING: _bindgen_ty_28 = 11;
+pub const BPF_TCP_NEW_SYN_RECV: _bindgen_ty_28 = 12;
+pub const BPF_TCP_MAX_STATES: _bindgen_ty_28 = 13;
 pub type _bindgen_ty_28 = ::aya_bpf_cty::c_uint;
 pub mod _bindgen_ty_30 {
     pub type Type = ::aya_bpf_cty::c_uint;
@@ -1877,12 +1894,12 @@ pub struct bpf_perf_event_value {
     pub enabled: __u64,
     pub running: __u64,
 }
-pub const BPF_DEVCG_ACC_MKNOD: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_DEVCG_ACC_READ: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_DEVCG_ACC_WRITE: ::aya_bpf_cty::c_uint = 4;
+pub const BPF_DEVCG_ACC_MKNOD: _bindgen_ty_32 = 1;
+pub const BPF_DEVCG_ACC_READ: _bindgen_ty_32 = 2;
+pub const BPF_DEVCG_ACC_WRITE: _bindgen_ty_32 = 4;
 pub type _bindgen_ty_32 = ::aya_bpf_cty::c_uint;
-pub const BPF_DEVCG_DEV_BLOCK: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_DEVCG_DEV_CHAR: ::aya_bpf_cty::c_uint = 2;
+pub const BPF_DEVCG_DEV_BLOCK: _bindgen_ty_33 = 1;
+pub const BPF_DEVCG_DEV_CHAR: _bindgen_ty_33 = 2;
 pub type _bindgen_ty_33 = ::aya_bpf_cty::c_uint;
 #[repr(C)]
 #[derive(Copy, Clone)]
@@ -1895,18 +1912,18 @@ pub struct bpf_cgroup_dev_ctx {
 pub struct bpf_raw_tracepoint_args {
     pub args: __IncompleteArrayField<__u64>,
 }
-pub const BPF_FIB_LOOKUP_DIRECT: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_FIB_LOOKUP_OUTPUT: ::aya_bpf_cty::c_uint = 2;
+pub const BPF_FIB_LOOKUP_DIRECT: _bindgen_ty_34 = 1;
+pub const BPF_FIB_LOOKUP_OUTPUT: _bindgen_ty_34 = 2;
 pub type _bindgen_ty_34 = ::aya_bpf_cty::c_uint;
-pub const BPF_FIB_LKUP_RET_SUCCESS: ::aya_bpf_cty::c_uint = 0;
-pub const BPF_FIB_LKUP_RET_BLACKHOLE: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_FIB_LKUP_RET_UNREACHABLE: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_FIB_LKUP_RET_PROHIBIT: ::aya_bpf_cty::c_uint = 3;
-pub const BPF_FIB_LKUP_RET_NOT_FWDED: ::aya_bpf_cty::c_uint = 4;
-pub const BPF_FIB_LKUP_RET_FWD_DISABLED: ::aya_bpf_cty::c_uint = 5;
-pub const BPF_FIB_LKUP_RET_UNSUPP_LWT: ::aya_bpf_cty::c_uint = 6;
-pub const BPF_FIB_LKUP_RET_NO_NEIGH: ::aya_bpf_cty::c_uint = 7;
-pub const BPF_FIB_LKUP_RET_FRAG_NEEDED: ::aya_bpf_cty::c_uint = 8;
+pub const BPF_FIB_LKUP_RET_SUCCESS: _bindgen_ty_35 = 0;
+pub const BPF_FIB_LKUP_RET_BLACKHOLE: _bindgen_ty_35 = 1;
+pub const BPF_FIB_LKUP_RET_UNREACHABLE: _bindgen_ty_35 = 2;
+pub const BPF_FIB_LKUP_RET_PROHIBIT: _bindgen_ty_35 = 3;
+pub const BPF_FIB_LKUP_RET_NOT_FWDED: _bindgen_ty_35 = 4;
+pub const BPF_FIB_LKUP_RET_FWD_DISABLED: _bindgen_ty_35 = 5;
+pub const BPF_FIB_LKUP_RET_UNSUPP_LWT: _bindgen_ty_35 = 6;
+pub const BPF_FIB_LKUP_RET_NO_NEIGH: _bindgen_ty_35 = 7;
+pub const BPF_FIB_LKUP_RET_FRAG_NEEDED: _bindgen_ty_35 = 8;
 pub type _bindgen_ty_35 = ::aya_bpf_cty::c_uint;
 #[repr(C)]
 #[derive(Copy, Clone)]
@@ -1981,9 +1998,9 @@ pub mod bpf_task_fd_type {
     pub const BPF_FD_TYPE_UPROBE: Type = 4;
     pub const BPF_FD_TYPE_URETPROBE: Type = 5;
 }
-pub const BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP: ::aya_bpf_cty::c_uint = 4;
+pub const BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG: _bindgen_ty_36 = 1;
+pub const BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL: _bindgen_ty_36 = 2;
+pub const BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP: _bindgen_ty_36 = 4;
 pub type _bindgen_ty_36 = ::aya_bpf_cty::c_uint;
 #[repr(C)]
 #[derive(Copy, Clone)]
@@ -2054,6 +2071,20 @@ impl bpf_timer {
     }
 }
 #[repr(C)]
+#[repr(align(8))]
+#[derive(Copy, Clone)]
+pub struct bpf_dynptr {
+    pub _bitfield_align_1: [u8; 0],
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 16usize]>,
+}
+impl bpf_dynptr {
+    #[inline]
+    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 16usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default();
+        __bindgen_bitfield_unit
+    }
+}
+#[repr(C)]
 #[derive(Copy, Clone)]
 pub struct bpf_sysctl {
     pub write: __u32,
@@ -2182,6 +2213,7 @@ pub mod bpf_core_relo_kind {
     pub const BPF_CORE_TYPE_SIZE: Type = 9;
     pub const BPF_CORE_ENUMVAL_EXISTS: Type = 10;
     pub const BPF_CORE_ENUMVAL_VALUE: Type = 11;
+    pub const BPF_CORE_TYPE_MATCHES: Type = 12;
 }
 #[repr(C)]
 #[derive(Copy, Clone)]
@@ -2286,3 +2318,18 @@ pub struct socket {
 pub struct file {
     _unused: [u8; 0],
 }
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct mptcp_sock {
+    _unused: [u8; 0],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct iphdr {
+    _unused: [u8; 0],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr {
+    _unused: [u8; 0],
+}

+ 125 - 0
bpf/aya-bpf-bindings/src/aarch64/helpers.rs

@@ -1981,3 +1981,128 @@ pub unsafe fn bpf_map_lookup_percpu_elem(
     ) -> *mut ::aya_bpf_cty::c_void = ::core::mem::transmute(195usize);
     fun(map, key, cpu)
 }
+pub unsafe fn bpf_skc_to_mptcp_sock(sk: *mut ::aya_bpf_cty::c_void) -> *mut mptcp_sock {
+    let fun: unsafe extern "C" fn(sk: *mut ::aya_bpf_cty::c_void) -> *mut mptcp_sock =
+        ::core::mem::transmute(196usize);
+    fun(sk)
+}
+pub unsafe fn bpf_dynptr_from_mem(
+    data: *mut ::aya_bpf_cty::c_void,
+    size: __u32,
+    flags: __u64,
+    ptr: *mut bpf_dynptr,
+) -> ::aya_bpf_cty::c_long {
+    let fun: unsafe extern "C" fn(
+        data: *mut ::aya_bpf_cty::c_void,
+        size: __u32,
+        flags: __u64,
+        ptr: *mut bpf_dynptr,
+    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(197usize);
+    fun(data, size, flags, ptr)
+}
+pub unsafe fn bpf_ringbuf_reserve_dynptr(
+    ringbuf: *mut ::aya_bpf_cty::c_void,
+    size: __u32,
+    flags: __u64,
+    ptr: *mut bpf_dynptr,
+) -> ::aya_bpf_cty::c_long {
+    let fun: unsafe extern "C" fn(
+        ringbuf: *mut ::aya_bpf_cty::c_void,
+        size: __u32,
+        flags: __u64,
+        ptr: *mut bpf_dynptr,
+    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(198usize);
+    fun(ringbuf, size, flags, ptr)
+}
+pub unsafe fn bpf_ringbuf_submit_dynptr(ptr: *mut bpf_dynptr, flags: __u64) {
+    let fun: unsafe extern "C" fn(ptr: *mut bpf_dynptr, flags: __u64) =
+        ::core::mem::transmute(199usize);
+    fun(ptr, flags)
+}
+pub unsafe fn bpf_ringbuf_discard_dynptr(ptr: *mut bpf_dynptr, flags: __u64) {
+    let fun: unsafe extern "C" fn(ptr: *mut bpf_dynptr, flags: __u64) =
+        ::core::mem::transmute(200usize);
+    fun(ptr, flags)
+}
+pub unsafe fn bpf_dynptr_read(
+    dst: *mut ::aya_bpf_cty::c_void,
+    len: __u32,
+    src: *mut bpf_dynptr,
+    offset: __u32,
+    flags: __u64,
+) -> ::aya_bpf_cty::c_long {
+    let fun: unsafe extern "C" fn(
+        dst: *mut ::aya_bpf_cty::c_void,
+        len: __u32,
+        src: *mut bpf_dynptr,
+        offset: __u32,
+        flags: __u64,
+    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(201usize);
+    fun(dst, len, src, offset, flags)
+}
+pub unsafe fn bpf_dynptr_write(
+    dst: *mut bpf_dynptr,
+    offset: __u32,
+    src: *mut ::aya_bpf_cty::c_void,
+    len: __u32,
+    flags: __u64,
+) -> ::aya_bpf_cty::c_long {
+    let fun: unsafe extern "C" fn(
+        dst: *mut bpf_dynptr,
+        offset: __u32,
+        src: *mut ::aya_bpf_cty::c_void,
+        len: __u32,
+        flags: __u64,
+    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(202usize);
+    fun(dst, offset, src, len, flags)
+}
+pub unsafe fn bpf_dynptr_data(
+    ptr: *mut bpf_dynptr,
+    offset: __u32,
+    len: __u32,
+) -> *mut ::aya_bpf_cty::c_void {
+    let fun: unsafe extern "C" fn(
+        ptr: *mut bpf_dynptr,
+        offset: __u32,
+        len: __u32,
+    ) -> *mut ::aya_bpf_cty::c_void = ::core::mem::transmute(203usize);
+    fun(ptr, offset, len)
+}
+pub unsafe fn bpf_tcp_raw_gen_syncookie_ipv4(
+    iph: *mut iphdr,
+    th: *mut tcphdr,
+    th_len: __u32,
+) -> __s64 {
+    let fun: unsafe extern "C" fn(iph: *mut iphdr, th: *mut tcphdr, th_len: __u32) -> __s64 =
+        ::core::mem::transmute(204usize);
+    fun(iph, th, th_len)
+}
+pub unsafe fn bpf_tcp_raw_gen_syncookie_ipv6(
+    iph: *mut ipv6hdr,
+    th: *mut tcphdr,
+    th_len: __u32,
+) -> __s64 {
+    let fun: unsafe extern "C" fn(iph: *mut ipv6hdr, th: *mut tcphdr, th_len: __u32) -> __s64 =
+        ::core::mem::transmute(205usize);
+    fun(iph, th, th_len)
+}
+pub unsafe fn bpf_tcp_raw_check_syncookie_ipv4(
+    iph: *mut iphdr,
+    th: *mut tcphdr,
+) -> ::aya_bpf_cty::c_long {
+    let fun: unsafe extern "C" fn(iph: *mut iphdr, th: *mut tcphdr) -> ::aya_bpf_cty::c_long =
+        ::core::mem::transmute(206usize);
+    fun(iph, th)
+}
+pub unsafe fn bpf_tcp_raw_check_syncookie_ipv6(
+    iph: *mut ipv6hdr,
+    th: *mut tcphdr,
+) -> ::aya_bpf_cty::c_long {
+    let fun: unsafe extern "C" fn(iph: *mut ipv6hdr, th: *mut tcphdr) -> ::aya_bpf_cty::c_long =
+        ::core::mem::transmute(207usize);
+    fun(iph, th)
+}
+pub unsafe fn bpf_ktime_get_tai_ns() -> __u64 {
+    let fun: unsafe extern "C" fn() -> __u64 = ::core::mem::transmute(208usize);
+    fun()
+}

+ 186 - 139
bpf/aya-bpf-bindings/src/armv7/bindings.rs

@@ -283,18 +283,18 @@ pub type __u64 = ::aya_bpf_cty::c_ulonglong;
 pub type __be16 = __u16;
 pub type __be32 = __u32;
 pub type __wsum = __u32;
-pub const BPF_REG_0: ::aya_bpf_cty::c_uint = 0;
-pub const BPF_REG_1: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_REG_2: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_REG_3: ::aya_bpf_cty::c_uint = 3;
-pub const BPF_REG_4: ::aya_bpf_cty::c_uint = 4;
-pub const BPF_REG_5: ::aya_bpf_cty::c_uint = 5;
-pub const BPF_REG_6: ::aya_bpf_cty::c_uint = 6;
-pub const BPF_REG_7: ::aya_bpf_cty::c_uint = 7;
-pub const BPF_REG_8: ::aya_bpf_cty::c_uint = 8;
-pub const BPF_REG_9: ::aya_bpf_cty::c_uint = 9;
-pub const BPF_REG_10: ::aya_bpf_cty::c_uint = 10;
-pub const __MAX_BPF_REG: ::aya_bpf_cty::c_uint = 11;
+pub const BPF_REG_0: _bindgen_ty_1 = 0;
+pub const BPF_REG_1: _bindgen_ty_1 = 1;
+pub const BPF_REG_2: _bindgen_ty_1 = 2;
+pub const BPF_REG_3: _bindgen_ty_1 = 3;
+pub const BPF_REG_4: _bindgen_ty_1 = 4;
+pub const BPF_REG_5: _bindgen_ty_1 = 5;
+pub const BPF_REG_6: _bindgen_ty_1 = 6;
+pub const BPF_REG_7: _bindgen_ty_1 = 7;
+pub const BPF_REG_8: _bindgen_ty_1 = 8;
+pub const BPF_REG_9: _bindgen_ty_1 = 9;
+pub const BPF_REG_10: _bindgen_ty_1 = 10;
+pub const __MAX_BPF_REG: _bindgen_ty_1 = 11;
 pub type _bindgen_ty_1 = ::aya_bpf_cty::c_uint;
 #[repr(C)]
 #[derive(Copy, Clone)]
@@ -517,7 +517,8 @@ pub mod bpf_attach_type {
     pub const BPF_SK_REUSEPORT_SELECT_OR_MIGRATE: Type = 40;
     pub const BPF_PERF_EVENT: Type = 41;
     pub const BPF_TRACE_KPROBE_MULTI: Type = 42;
-    pub const __MAX_BPF_ATTACH_TYPE: Type = 43;
+    pub const BPF_LSM_CGROUP: Type = 43;
+    pub const __MAX_BPF_ATTACH_TYPE: Type = 44;
 }
 pub mod bpf_link_type {
     pub type Type = ::aya_bpf_cty::c_uint;
@@ -533,24 +534,24 @@ pub mod bpf_link_type {
     pub const BPF_LINK_TYPE_STRUCT_OPS: Type = 9;
     pub const MAX_BPF_LINK_TYPE: Type = 10;
 }
-pub const BPF_ANY: ::aya_bpf_cty::c_uint = 0;
-pub const BPF_NOEXIST: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_EXIST: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_F_LOCK: ::aya_bpf_cty::c_uint = 4;
+pub const BPF_ANY: _bindgen_ty_2 = 0;
+pub const BPF_NOEXIST: _bindgen_ty_2 = 1;
+pub const BPF_EXIST: _bindgen_ty_2 = 2;
+pub const BPF_F_LOCK: _bindgen_ty_2 = 4;
 pub type _bindgen_ty_2 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_NO_PREALLOC: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_F_NO_COMMON_LRU: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_F_NUMA_NODE: ::aya_bpf_cty::c_uint = 4;
-pub const BPF_F_RDONLY: ::aya_bpf_cty::c_uint = 8;
-pub const BPF_F_WRONLY: ::aya_bpf_cty::c_uint = 16;
-pub const BPF_F_STACK_BUILD_ID: ::aya_bpf_cty::c_uint = 32;
-pub const BPF_F_ZERO_SEED: ::aya_bpf_cty::c_uint = 64;
-pub const BPF_F_RDONLY_PROG: ::aya_bpf_cty::c_uint = 128;
-pub const BPF_F_WRONLY_PROG: ::aya_bpf_cty::c_uint = 256;
-pub const BPF_F_CLONE: ::aya_bpf_cty::c_uint = 512;
-pub const BPF_F_MMAPABLE: ::aya_bpf_cty::c_uint = 1024;
-pub const BPF_F_PRESERVE_ELEMS: ::aya_bpf_cty::c_uint = 2048;
-pub const BPF_F_INNER_MAP: ::aya_bpf_cty::c_uint = 4096;
+pub const BPF_F_NO_PREALLOC: _bindgen_ty_3 = 1;
+pub const BPF_F_NO_COMMON_LRU: _bindgen_ty_3 = 2;
+pub const BPF_F_NUMA_NODE: _bindgen_ty_3 = 4;
+pub const BPF_F_RDONLY: _bindgen_ty_3 = 8;
+pub const BPF_F_WRONLY: _bindgen_ty_3 = 16;
+pub const BPF_F_STACK_BUILD_ID: _bindgen_ty_3 = 32;
+pub const BPF_F_ZERO_SEED: _bindgen_ty_3 = 64;
+pub const BPF_F_RDONLY_PROG: _bindgen_ty_3 = 128;
+pub const BPF_F_WRONLY_PROG: _bindgen_ty_3 = 256;
+pub const BPF_F_CLONE: _bindgen_ty_3 = 512;
+pub const BPF_F_MMAPABLE: _bindgen_ty_3 = 1024;
+pub const BPF_F_PRESERVE_ELEMS: _bindgen_ty_3 = 2048;
+pub const BPF_F_INNER_MAP: _bindgen_ty_3 = 4096;
 pub type _bindgen_ty_3 = ::aya_bpf_cty::c_uint;
 pub mod bpf_stats_type {
     pub type Type = ::aya_bpf_cty::c_uint;
@@ -744,6 +745,7 @@ pub struct bpf_attr__bindgen_ty_10 {
     pub attach_flags: __u32,
     pub prog_ids: __u64,
     pub prog_cnt: __u32,
+    pub prog_attach_flags: __u64,
 }
 #[repr(C)]
 #[derive(Copy, Clone)]
@@ -1052,74 +1054,87 @@ pub mod bpf_func_id {
     pub const BPF_FUNC_ima_file_hash: Type = 193;
     pub const BPF_FUNC_kptr_xchg: Type = 194;
     pub const BPF_FUNC_map_lookup_percpu_elem: Type = 195;
-    pub const __BPF_FUNC_MAX_ID: Type = 196;
-}
-pub const BPF_F_RECOMPUTE_CSUM: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_F_INVALIDATE_HASH: ::aya_bpf_cty::c_uint = 2;
+    pub const BPF_FUNC_skc_to_mptcp_sock: Type = 196;
+    pub const BPF_FUNC_dynptr_from_mem: Type = 197;
+    pub const BPF_FUNC_ringbuf_reserve_dynptr: Type = 198;
+    pub const BPF_FUNC_ringbuf_submit_dynptr: Type = 199;
+    pub const BPF_FUNC_ringbuf_discard_dynptr: Type = 200;
+    pub const BPF_FUNC_dynptr_read: Type = 201;
+    pub const BPF_FUNC_dynptr_write: Type = 202;
+    pub const BPF_FUNC_dynptr_data: Type = 203;
+    pub const BPF_FUNC_tcp_raw_gen_syncookie_ipv4: Type = 204;
+    pub const BPF_FUNC_tcp_raw_gen_syncookie_ipv6: Type = 205;
+    pub const BPF_FUNC_tcp_raw_check_syncookie_ipv4: Type = 206;
+    pub const BPF_FUNC_tcp_raw_check_syncookie_ipv6: Type = 207;
+    pub const BPF_FUNC_ktime_get_tai_ns: Type = 208;
+    pub const __BPF_FUNC_MAX_ID: Type = 209;
+}
+pub const BPF_F_RECOMPUTE_CSUM: _bindgen_ty_4 = 1;
+pub const BPF_F_INVALIDATE_HASH: _bindgen_ty_4 = 2;
 pub type _bindgen_ty_4 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_HDR_FIELD_MASK: ::aya_bpf_cty::c_uint = 15;
+pub const BPF_F_HDR_FIELD_MASK: _bindgen_ty_5 = 15;
 pub type _bindgen_ty_5 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_PSEUDO_HDR: ::aya_bpf_cty::c_uint = 16;
-pub const BPF_F_MARK_MANGLED_0: ::aya_bpf_cty::c_uint = 32;
-pub const BPF_F_MARK_ENFORCE: ::aya_bpf_cty::c_uint = 64;
+pub const BPF_F_PSEUDO_HDR: _bindgen_ty_6 = 16;
+pub const BPF_F_MARK_MANGLED_0: _bindgen_ty_6 = 32;
+pub const BPF_F_MARK_ENFORCE: _bindgen_ty_6 = 64;
 pub type _bindgen_ty_6 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_INGRESS: ::aya_bpf_cty::c_uint = 1;
+pub const BPF_F_INGRESS: _bindgen_ty_7 = 1;
 pub type _bindgen_ty_7 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_TUNINFO_IPV6: ::aya_bpf_cty::c_uint = 1;
+pub const BPF_F_TUNINFO_IPV6: _bindgen_ty_8 = 1;
 pub type _bindgen_ty_8 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_SKIP_FIELD_MASK: ::aya_bpf_cty::c_uint = 255;
-pub const BPF_F_USER_STACK: ::aya_bpf_cty::c_uint = 256;
-pub const BPF_F_FAST_STACK_CMP: ::aya_bpf_cty::c_uint = 512;
-pub const BPF_F_REUSE_STACKID: ::aya_bpf_cty::c_uint = 1024;
-pub const BPF_F_USER_BUILD_ID: ::aya_bpf_cty::c_uint = 2048;
+pub const BPF_F_SKIP_FIELD_MASK: _bindgen_ty_9 = 255;
+pub const BPF_F_USER_STACK: _bindgen_ty_9 = 256;
+pub const BPF_F_FAST_STACK_CMP: _bindgen_ty_9 = 512;
+pub const BPF_F_REUSE_STACKID: _bindgen_ty_9 = 1024;
+pub const BPF_F_USER_BUILD_ID: _bindgen_ty_9 = 2048;
 pub type _bindgen_ty_9 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_ZERO_CSUM_TX: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_F_DONT_FRAGMENT: ::aya_bpf_cty::c_uint = 4;
-pub const BPF_F_SEQ_NUMBER: ::aya_bpf_cty::c_uint = 8;
+pub const BPF_F_ZERO_CSUM_TX: _bindgen_ty_10 = 2;
+pub const BPF_F_DONT_FRAGMENT: _bindgen_ty_10 = 4;
+pub const BPF_F_SEQ_NUMBER: _bindgen_ty_10 = 8;
 pub type _bindgen_ty_10 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_INDEX_MASK: ::aya_bpf_cty::c_ulonglong = 4294967295;
-pub const BPF_F_CURRENT_CPU: ::aya_bpf_cty::c_ulonglong = 4294967295;
-pub const BPF_F_CTXLEN_MASK: ::aya_bpf_cty::c_ulonglong = 4503595332403200;
+pub const BPF_F_INDEX_MASK: _bindgen_ty_11 = 4294967295;
+pub const BPF_F_CURRENT_CPU: _bindgen_ty_11 = 4294967295;
+pub const BPF_F_CTXLEN_MASK: _bindgen_ty_11 = 4503595332403200;
 pub type _bindgen_ty_11 = ::aya_bpf_cty::c_ulonglong;
-pub const BPF_F_CURRENT_NETNS: ::aya_bpf_cty::c_int = -1;
+pub const BPF_F_CURRENT_NETNS: _bindgen_ty_12 = -1;
 pub type _bindgen_ty_12 = ::aya_bpf_cty::c_int;
-pub const BPF_CSUM_LEVEL_QUERY: ::aya_bpf_cty::c_uint = 0;
-pub const BPF_CSUM_LEVEL_INC: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_CSUM_LEVEL_DEC: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_CSUM_LEVEL_RESET: ::aya_bpf_cty::c_uint = 3;
+pub const BPF_CSUM_LEVEL_QUERY: _bindgen_ty_13 = 0;
+pub const BPF_CSUM_LEVEL_INC: _bindgen_ty_13 = 1;
+pub const BPF_CSUM_LEVEL_DEC: _bindgen_ty_13 = 2;
+pub const BPF_CSUM_LEVEL_RESET: _bindgen_ty_13 = 3;
 pub type _bindgen_ty_13 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_ADJ_ROOM_FIXED_GSO: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV4: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV6: ::aya_bpf_cty::c_uint = 4;
-pub const BPF_F_ADJ_ROOM_ENCAP_L4_GRE: ::aya_bpf_cty::c_uint = 8;
-pub const BPF_F_ADJ_ROOM_ENCAP_L4_UDP: ::aya_bpf_cty::c_uint = 16;
-pub const BPF_F_ADJ_ROOM_NO_CSUM_RESET: ::aya_bpf_cty::c_uint = 32;
-pub const BPF_F_ADJ_ROOM_ENCAP_L2_ETH: ::aya_bpf_cty::c_uint = 64;
+pub const BPF_F_ADJ_ROOM_FIXED_GSO: _bindgen_ty_14 = 1;
+pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV4: _bindgen_ty_14 = 2;
+pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV6: _bindgen_ty_14 = 4;
+pub const BPF_F_ADJ_ROOM_ENCAP_L4_GRE: _bindgen_ty_14 = 8;
+pub const BPF_F_ADJ_ROOM_ENCAP_L4_UDP: _bindgen_ty_14 = 16;
+pub const BPF_F_ADJ_ROOM_NO_CSUM_RESET: _bindgen_ty_14 = 32;
+pub const BPF_F_ADJ_ROOM_ENCAP_L2_ETH: _bindgen_ty_14 = 64;
 pub type _bindgen_ty_14 = ::aya_bpf_cty::c_uint;
-pub const BPF_ADJ_ROOM_ENCAP_L2_MASK: ::aya_bpf_cty::c_uint = 255;
-pub const BPF_ADJ_ROOM_ENCAP_L2_SHIFT: ::aya_bpf_cty::c_uint = 56;
+pub const BPF_ADJ_ROOM_ENCAP_L2_MASK: _bindgen_ty_15 = 255;
+pub const BPF_ADJ_ROOM_ENCAP_L2_SHIFT: _bindgen_ty_15 = 56;
 pub type _bindgen_ty_15 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_SYSCTL_BASE_NAME: ::aya_bpf_cty::c_uint = 1;
+pub const BPF_F_SYSCTL_BASE_NAME: _bindgen_ty_16 = 1;
 pub type _bindgen_ty_16 = ::aya_bpf_cty::c_uint;
-pub const BPF_LOCAL_STORAGE_GET_F_CREATE: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_SK_STORAGE_GET_F_CREATE: ::aya_bpf_cty::c_uint = 1;
+pub const BPF_LOCAL_STORAGE_GET_F_CREATE: _bindgen_ty_17 = 1;
+pub const BPF_SK_STORAGE_GET_F_CREATE: _bindgen_ty_17 = 1;
 pub type _bindgen_ty_17 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_GET_BRANCH_RECORDS_SIZE: ::aya_bpf_cty::c_uint = 1;
+pub const BPF_F_GET_BRANCH_RECORDS_SIZE: _bindgen_ty_18 = 1;
 pub type _bindgen_ty_18 = ::aya_bpf_cty::c_uint;
-pub const BPF_RB_NO_WAKEUP: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_RB_FORCE_WAKEUP: ::aya_bpf_cty::c_uint = 2;
+pub const BPF_RB_NO_WAKEUP: _bindgen_ty_19 = 1;
+pub const BPF_RB_FORCE_WAKEUP: _bindgen_ty_19 = 2;
 pub type _bindgen_ty_19 = ::aya_bpf_cty::c_uint;
-pub const BPF_RB_AVAIL_DATA: ::aya_bpf_cty::c_uint = 0;
-pub const BPF_RB_RING_SIZE: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_RB_CONS_POS: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_RB_PROD_POS: ::aya_bpf_cty::c_uint = 3;
+pub const BPF_RB_AVAIL_DATA: _bindgen_ty_20 = 0;
+pub const BPF_RB_RING_SIZE: _bindgen_ty_20 = 1;
+pub const BPF_RB_CONS_POS: _bindgen_ty_20 = 2;
+pub const BPF_RB_PROD_POS: _bindgen_ty_20 = 3;
 pub type _bindgen_ty_20 = ::aya_bpf_cty::c_uint;
-pub const BPF_RINGBUF_BUSY_BIT: ::aya_bpf_cty::c_uint = 2147483648;
-pub const BPF_RINGBUF_DISCARD_BIT: ::aya_bpf_cty::c_uint = 1073741824;
-pub const BPF_RINGBUF_HDR_SZ: ::aya_bpf_cty::c_uint = 8;
+pub const BPF_RINGBUF_BUSY_BIT: _bindgen_ty_21 = 2147483648;
+pub const BPF_RINGBUF_DISCARD_BIT: _bindgen_ty_21 = 1073741824;
+pub const BPF_RINGBUF_HDR_SZ: _bindgen_ty_21 = 8;
 pub type _bindgen_ty_21 = ::aya_bpf_cty::c_uint;
-pub const BPF_SK_LOOKUP_F_REPLACE: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_SK_LOOKUP_F_NO_REUSEPORT: ::aya_bpf_cty::c_uint = 2;
+pub const BPF_SK_LOOKUP_F_REPLACE: _bindgen_ty_22 = 1;
+pub const BPF_SK_LOOKUP_F_NO_REUSEPORT: _bindgen_ty_22 = 2;
 pub type _bindgen_ty_22 = ::aya_bpf_cty::c_uint;
 pub mod bpf_adj_room_mode {
     pub type Type = ::aya_bpf_cty::c_uint;
@@ -1137,10 +1152,10 @@ pub mod bpf_lwt_encap_mode {
     pub const BPF_LWT_ENCAP_SEG6_INLINE: Type = 1;
     pub const BPF_LWT_ENCAP_IP: Type = 2;
 }
-pub const BPF_F_BPRM_SECUREEXEC: ::aya_bpf_cty::c_uint = 1;
+pub const BPF_F_BPRM_SECUREEXEC: _bindgen_ty_23 = 1;
 pub type _bindgen_ty_23 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_BROADCAST: ::aya_bpf_cty::c_uint = 8;
-pub const BPF_F_EXCLUDE_INGRESS: ::aya_bpf_cty::c_uint = 16;
+pub const BPF_F_BROADCAST: _bindgen_ty_24 = 8;
+pub const BPF_F_EXCLUDE_INGRESS: _bindgen_ty_24 = 16;
 pub type _bindgen_ty_24 = ::aya_bpf_cty::c_uint;
 pub mod _bindgen_ty_25 {
     pub type Type = ::aya_bpf_cty::c_uint;
@@ -1578,6 +1593,8 @@ pub struct bpf_prog_info {
     pub run_cnt: __u64,
     pub recursion_misses: __u64,
     pub verified_insns: __u32,
+    pub attach_btf_obj_id: __u32,
+    pub attach_btf_id: __u32,
 }
 impl bpf_prog_info {
     #[inline]
@@ -1829,45 +1846,45 @@ impl bpf_sock_ops__bindgen_ty_4 {
         __bindgen_bitfield_unit
     }
 }
-pub const BPF_SOCK_OPS_RTO_CB_FLAG: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_SOCK_OPS_RETRANS_CB_FLAG: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_SOCK_OPS_STATE_CB_FLAG: ::aya_bpf_cty::c_uint = 4;
-pub const BPF_SOCK_OPS_RTT_CB_FLAG: ::aya_bpf_cty::c_uint = 8;
-pub const BPF_SOCK_OPS_PARSE_ALL_HDR_OPT_CB_FLAG: ::aya_bpf_cty::c_uint = 16;
-pub const BPF_SOCK_OPS_PARSE_UNKNOWN_HDR_OPT_CB_FLAG: ::aya_bpf_cty::c_uint = 32;
-pub const BPF_SOCK_OPS_WRITE_HDR_OPT_CB_FLAG: ::aya_bpf_cty::c_uint = 64;
-pub const BPF_SOCK_OPS_ALL_CB_FLAGS: ::aya_bpf_cty::c_uint = 127;
+pub const BPF_SOCK_OPS_RTO_CB_FLAG: _bindgen_ty_26 = 1;
+pub const BPF_SOCK_OPS_RETRANS_CB_FLAG: _bindgen_ty_26 = 2;
+pub const BPF_SOCK_OPS_STATE_CB_FLAG: _bindgen_ty_26 = 4;
+pub const BPF_SOCK_OPS_RTT_CB_FLAG: _bindgen_ty_26 = 8;
+pub const BPF_SOCK_OPS_PARSE_ALL_HDR_OPT_CB_FLAG: _bindgen_ty_26 = 16;
+pub const BPF_SOCK_OPS_PARSE_UNKNOWN_HDR_OPT_CB_FLAG: _bindgen_ty_26 = 32;
+pub const BPF_SOCK_OPS_WRITE_HDR_OPT_CB_FLAG: _bindgen_ty_26 = 64;
+pub const BPF_SOCK_OPS_ALL_CB_FLAGS: _bindgen_ty_26 = 127;
 pub type _bindgen_ty_26 = ::aya_bpf_cty::c_uint;
-pub const BPF_SOCK_OPS_VOID: ::aya_bpf_cty::c_uint = 0;
-pub const BPF_SOCK_OPS_TIMEOUT_INIT: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_SOCK_OPS_RWND_INIT: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_SOCK_OPS_TCP_CONNECT_CB: ::aya_bpf_cty::c_uint = 3;
-pub const BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB: ::aya_bpf_cty::c_uint = 4;
-pub const BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB: ::aya_bpf_cty::c_uint = 5;
-pub const BPF_SOCK_OPS_NEEDS_ECN: ::aya_bpf_cty::c_uint = 6;
-pub const BPF_SOCK_OPS_BASE_RTT: ::aya_bpf_cty::c_uint = 7;
-pub const BPF_SOCK_OPS_RTO_CB: ::aya_bpf_cty::c_uint = 8;
-pub const BPF_SOCK_OPS_RETRANS_CB: ::aya_bpf_cty::c_uint = 9;
-pub const BPF_SOCK_OPS_STATE_CB: ::aya_bpf_cty::c_uint = 10;
-pub const BPF_SOCK_OPS_TCP_LISTEN_CB: ::aya_bpf_cty::c_uint = 11;
-pub const BPF_SOCK_OPS_RTT_CB: ::aya_bpf_cty::c_uint = 12;
-pub const BPF_SOCK_OPS_PARSE_HDR_OPT_CB: ::aya_bpf_cty::c_uint = 13;
-pub const BPF_SOCK_OPS_HDR_OPT_LEN_CB: ::aya_bpf_cty::c_uint = 14;
-pub const BPF_SOCK_OPS_WRITE_HDR_OPT_CB: ::aya_bpf_cty::c_uint = 15;
+pub const BPF_SOCK_OPS_VOID: _bindgen_ty_27 = 0;
+pub const BPF_SOCK_OPS_TIMEOUT_INIT: _bindgen_ty_27 = 1;
+pub const BPF_SOCK_OPS_RWND_INIT: _bindgen_ty_27 = 2;
+pub const BPF_SOCK_OPS_TCP_CONNECT_CB: _bindgen_ty_27 = 3;
+pub const BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB: _bindgen_ty_27 = 4;
+pub const BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB: _bindgen_ty_27 = 5;
+pub const BPF_SOCK_OPS_NEEDS_ECN: _bindgen_ty_27 = 6;
+pub const BPF_SOCK_OPS_BASE_RTT: _bindgen_ty_27 = 7;
+pub const BPF_SOCK_OPS_RTO_CB: _bindgen_ty_27 = 8;
+pub const BPF_SOCK_OPS_RETRANS_CB: _bindgen_ty_27 = 9;
+pub const BPF_SOCK_OPS_STATE_CB: _bindgen_ty_27 = 10;
+pub const BPF_SOCK_OPS_TCP_LISTEN_CB: _bindgen_ty_27 = 11;
+pub const BPF_SOCK_OPS_RTT_CB: _bindgen_ty_27 = 12;
+pub const BPF_SOCK_OPS_PARSE_HDR_OPT_CB: _bindgen_ty_27 = 13;
+pub const BPF_SOCK_OPS_HDR_OPT_LEN_CB: _bindgen_ty_27 = 14;
+pub const BPF_SOCK_OPS_WRITE_HDR_OPT_CB: _bindgen_ty_27 = 15;
 pub type _bindgen_ty_27 = ::aya_bpf_cty::c_uint;
-pub const BPF_TCP_ESTABLISHED: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_TCP_SYN_SENT: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_TCP_SYN_RECV: ::aya_bpf_cty::c_uint = 3;
-pub const BPF_TCP_FIN_WAIT1: ::aya_bpf_cty::c_uint = 4;
-pub const BPF_TCP_FIN_WAIT2: ::aya_bpf_cty::c_uint = 5;
-pub const BPF_TCP_TIME_WAIT: ::aya_bpf_cty::c_uint = 6;
-pub const BPF_TCP_CLOSE: ::aya_bpf_cty::c_uint = 7;
-pub const BPF_TCP_CLOSE_WAIT: ::aya_bpf_cty::c_uint = 8;
-pub const BPF_TCP_LAST_ACK: ::aya_bpf_cty::c_uint = 9;
-pub const BPF_TCP_LISTEN: ::aya_bpf_cty::c_uint = 10;
-pub const BPF_TCP_CLOSING: ::aya_bpf_cty::c_uint = 11;
-pub const BPF_TCP_NEW_SYN_RECV: ::aya_bpf_cty::c_uint = 12;
-pub const BPF_TCP_MAX_STATES: ::aya_bpf_cty::c_uint = 13;
+pub const BPF_TCP_ESTABLISHED: _bindgen_ty_28 = 1;
+pub const BPF_TCP_SYN_SENT: _bindgen_ty_28 = 2;
+pub const BPF_TCP_SYN_RECV: _bindgen_ty_28 = 3;
+pub const BPF_TCP_FIN_WAIT1: _bindgen_ty_28 = 4;
+pub const BPF_TCP_FIN_WAIT2: _bindgen_ty_28 = 5;
+pub const BPF_TCP_TIME_WAIT: _bindgen_ty_28 = 6;
+pub const BPF_TCP_CLOSE: _bindgen_ty_28 = 7;
+pub const BPF_TCP_CLOSE_WAIT: _bindgen_ty_28 = 8;
+pub const BPF_TCP_LAST_ACK: _bindgen_ty_28 = 9;
+pub const BPF_TCP_LISTEN: _bindgen_ty_28 = 10;
+pub const BPF_TCP_CLOSING: _bindgen_ty_28 = 11;
+pub const BPF_TCP_NEW_SYN_RECV: _bindgen_ty_28 = 12;
+pub const BPF_TCP_MAX_STATES: _bindgen_ty_28 = 13;
 pub type _bindgen_ty_28 = ::aya_bpf_cty::c_uint;
 pub mod _bindgen_ty_30 {
     pub type Type = ::aya_bpf_cty::c_uint;
@@ -1885,12 +1902,12 @@ pub struct bpf_perf_event_value {
     pub enabled: __u64,
     pub running: __u64,
 }
-pub const BPF_DEVCG_ACC_MKNOD: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_DEVCG_ACC_READ: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_DEVCG_ACC_WRITE: ::aya_bpf_cty::c_uint = 4;
+pub const BPF_DEVCG_ACC_MKNOD: _bindgen_ty_32 = 1;
+pub const BPF_DEVCG_ACC_READ: _bindgen_ty_32 = 2;
+pub const BPF_DEVCG_ACC_WRITE: _bindgen_ty_32 = 4;
 pub type _bindgen_ty_32 = ::aya_bpf_cty::c_uint;
-pub const BPF_DEVCG_DEV_BLOCK: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_DEVCG_DEV_CHAR: ::aya_bpf_cty::c_uint = 2;
+pub const BPF_DEVCG_DEV_BLOCK: _bindgen_ty_33 = 1;
+pub const BPF_DEVCG_DEV_CHAR: _bindgen_ty_33 = 2;
 pub type _bindgen_ty_33 = ::aya_bpf_cty::c_uint;
 #[repr(C)]
 #[derive(Copy, Clone)]
@@ -1903,18 +1920,18 @@ pub struct bpf_cgroup_dev_ctx {
 pub struct bpf_raw_tracepoint_args {
     pub args: __IncompleteArrayField<__u64>,
 }
-pub const BPF_FIB_LOOKUP_DIRECT: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_FIB_LOOKUP_OUTPUT: ::aya_bpf_cty::c_uint = 2;
+pub const BPF_FIB_LOOKUP_DIRECT: _bindgen_ty_34 = 1;
+pub const BPF_FIB_LOOKUP_OUTPUT: _bindgen_ty_34 = 2;
 pub type _bindgen_ty_34 = ::aya_bpf_cty::c_uint;
-pub const BPF_FIB_LKUP_RET_SUCCESS: ::aya_bpf_cty::c_uint = 0;
-pub const BPF_FIB_LKUP_RET_BLACKHOLE: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_FIB_LKUP_RET_UNREACHABLE: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_FIB_LKUP_RET_PROHIBIT: ::aya_bpf_cty::c_uint = 3;
-pub const BPF_FIB_LKUP_RET_NOT_FWDED: ::aya_bpf_cty::c_uint = 4;
-pub const BPF_FIB_LKUP_RET_FWD_DISABLED: ::aya_bpf_cty::c_uint = 5;
-pub const BPF_FIB_LKUP_RET_UNSUPP_LWT: ::aya_bpf_cty::c_uint = 6;
-pub const BPF_FIB_LKUP_RET_NO_NEIGH: ::aya_bpf_cty::c_uint = 7;
-pub const BPF_FIB_LKUP_RET_FRAG_NEEDED: ::aya_bpf_cty::c_uint = 8;
+pub const BPF_FIB_LKUP_RET_SUCCESS: _bindgen_ty_35 = 0;
+pub const BPF_FIB_LKUP_RET_BLACKHOLE: _bindgen_ty_35 = 1;
+pub const BPF_FIB_LKUP_RET_UNREACHABLE: _bindgen_ty_35 = 2;
+pub const BPF_FIB_LKUP_RET_PROHIBIT: _bindgen_ty_35 = 3;
+pub const BPF_FIB_LKUP_RET_NOT_FWDED: _bindgen_ty_35 = 4;
+pub const BPF_FIB_LKUP_RET_FWD_DISABLED: _bindgen_ty_35 = 5;
+pub const BPF_FIB_LKUP_RET_UNSUPP_LWT: _bindgen_ty_35 = 6;
+pub const BPF_FIB_LKUP_RET_NO_NEIGH: _bindgen_ty_35 = 7;
+pub const BPF_FIB_LKUP_RET_FRAG_NEEDED: _bindgen_ty_35 = 8;
 pub type _bindgen_ty_35 = ::aya_bpf_cty::c_uint;
 #[repr(C)]
 #[derive(Copy, Clone)]
@@ -1989,9 +2006,9 @@ pub mod bpf_task_fd_type {
     pub const BPF_FD_TYPE_UPROBE: Type = 4;
     pub const BPF_FD_TYPE_URETPROBE: Type = 5;
 }
-pub const BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP: ::aya_bpf_cty::c_uint = 4;
+pub const BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG: _bindgen_ty_36 = 1;
+pub const BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL: _bindgen_ty_36 = 2;
+pub const BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP: _bindgen_ty_36 = 4;
 pub type _bindgen_ty_36 = ::aya_bpf_cty::c_uint;
 #[repr(C)]
 #[derive(Copy, Clone)]
@@ -2062,6 +2079,20 @@ impl bpf_timer {
     }
 }
 #[repr(C)]
+#[repr(align(8))]
+#[derive(Copy, Clone)]
+pub struct bpf_dynptr {
+    pub _bitfield_align_1: [u8; 0],
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 16usize]>,
+}
+impl bpf_dynptr {
+    #[inline]
+    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 16usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default();
+        __bindgen_bitfield_unit
+    }
+}
+#[repr(C)]
 #[derive(Copy, Clone)]
 pub struct bpf_sysctl {
     pub write: __u32,
@@ -2194,6 +2225,7 @@ pub mod bpf_core_relo_kind {
     pub const BPF_CORE_TYPE_SIZE: Type = 9;
     pub const BPF_CORE_ENUMVAL_EXISTS: Type = 10;
     pub const BPF_CORE_ENUMVAL_VALUE: Type = 11;
+    pub const BPF_CORE_TYPE_MATCHES: Type = 12;
 }
 #[repr(C)]
 #[derive(Copy, Clone)]
@@ -2290,3 +2322,18 @@ pub struct socket {
 pub struct file {
     _unused: [u8; 0],
 }
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct mptcp_sock {
+    _unused: [u8; 0],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct iphdr {
+    _unused: [u8; 0],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr {
+    _unused: [u8; 0],
+}

+ 125 - 0
bpf/aya-bpf-bindings/src/armv7/helpers.rs

@@ -1981,3 +1981,128 @@ pub unsafe fn bpf_map_lookup_percpu_elem(
     ) -> *mut ::aya_bpf_cty::c_void = ::core::mem::transmute(195usize);
     fun(map, key, cpu)
 }
+pub unsafe fn bpf_skc_to_mptcp_sock(sk: *mut ::aya_bpf_cty::c_void) -> *mut mptcp_sock {
+    let fun: unsafe extern "C" fn(sk: *mut ::aya_bpf_cty::c_void) -> *mut mptcp_sock =
+        ::core::mem::transmute(196usize);
+    fun(sk)
+}
+pub unsafe fn bpf_dynptr_from_mem(
+    data: *mut ::aya_bpf_cty::c_void,
+    size: __u32,
+    flags: __u64,
+    ptr: *mut bpf_dynptr,
+) -> ::aya_bpf_cty::c_long {
+    let fun: unsafe extern "C" fn(
+        data: *mut ::aya_bpf_cty::c_void,
+        size: __u32,
+        flags: __u64,
+        ptr: *mut bpf_dynptr,
+    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(197usize);
+    fun(data, size, flags, ptr)
+}
+pub unsafe fn bpf_ringbuf_reserve_dynptr(
+    ringbuf: *mut ::aya_bpf_cty::c_void,
+    size: __u32,
+    flags: __u64,
+    ptr: *mut bpf_dynptr,
+) -> ::aya_bpf_cty::c_long {
+    let fun: unsafe extern "C" fn(
+        ringbuf: *mut ::aya_bpf_cty::c_void,
+        size: __u32,
+        flags: __u64,
+        ptr: *mut bpf_dynptr,
+    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(198usize);
+    fun(ringbuf, size, flags, ptr)
+}
+pub unsafe fn bpf_ringbuf_submit_dynptr(ptr: *mut bpf_dynptr, flags: __u64) {
+    let fun: unsafe extern "C" fn(ptr: *mut bpf_dynptr, flags: __u64) =
+        ::core::mem::transmute(199usize);
+    fun(ptr, flags)
+}
+pub unsafe fn bpf_ringbuf_discard_dynptr(ptr: *mut bpf_dynptr, flags: __u64) {
+    let fun: unsafe extern "C" fn(ptr: *mut bpf_dynptr, flags: __u64) =
+        ::core::mem::transmute(200usize);
+    fun(ptr, flags)
+}
+pub unsafe fn bpf_dynptr_read(
+    dst: *mut ::aya_bpf_cty::c_void,
+    len: __u32,
+    src: *mut bpf_dynptr,
+    offset: __u32,
+    flags: __u64,
+) -> ::aya_bpf_cty::c_long {
+    let fun: unsafe extern "C" fn(
+        dst: *mut ::aya_bpf_cty::c_void,
+        len: __u32,
+        src: *mut bpf_dynptr,
+        offset: __u32,
+        flags: __u64,
+    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(201usize);
+    fun(dst, len, src, offset, flags)
+}
+pub unsafe fn bpf_dynptr_write(
+    dst: *mut bpf_dynptr,
+    offset: __u32,
+    src: *mut ::aya_bpf_cty::c_void,
+    len: __u32,
+    flags: __u64,
+) -> ::aya_bpf_cty::c_long {
+    let fun: unsafe extern "C" fn(
+        dst: *mut bpf_dynptr,
+        offset: __u32,
+        src: *mut ::aya_bpf_cty::c_void,
+        len: __u32,
+        flags: __u64,
+    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(202usize);
+    fun(dst, offset, src, len, flags)
+}
+pub unsafe fn bpf_dynptr_data(
+    ptr: *mut bpf_dynptr,
+    offset: __u32,
+    len: __u32,
+) -> *mut ::aya_bpf_cty::c_void {
+    let fun: unsafe extern "C" fn(
+        ptr: *mut bpf_dynptr,
+        offset: __u32,
+        len: __u32,
+    ) -> *mut ::aya_bpf_cty::c_void = ::core::mem::transmute(203usize);
+    fun(ptr, offset, len)
+}
+pub unsafe fn bpf_tcp_raw_gen_syncookie_ipv4(
+    iph: *mut iphdr,
+    th: *mut tcphdr,
+    th_len: __u32,
+) -> __s64 {
+    let fun: unsafe extern "C" fn(iph: *mut iphdr, th: *mut tcphdr, th_len: __u32) -> __s64 =
+        ::core::mem::transmute(204usize);
+    fun(iph, th, th_len)
+}
+pub unsafe fn bpf_tcp_raw_gen_syncookie_ipv6(
+    iph: *mut ipv6hdr,
+    th: *mut tcphdr,
+    th_len: __u32,
+) -> __s64 {
+    let fun: unsafe extern "C" fn(iph: *mut ipv6hdr, th: *mut tcphdr, th_len: __u32) -> __s64 =
+        ::core::mem::transmute(205usize);
+    fun(iph, th, th_len)
+}
+pub unsafe fn bpf_tcp_raw_check_syncookie_ipv4(
+    iph: *mut iphdr,
+    th: *mut tcphdr,
+) -> ::aya_bpf_cty::c_long {
+    let fun: unsafe extern "C" fn(iph: *mut iphdr, th: *mut tcphdr) -> ::aya_bpf_cty::c_long =
+        ::core::mem::transmute(206usize);
+    fun(iph, th)
+}
+pub unsafe fn bpf_tcp_raw_check_syncookie_ipv6(
+    iph: *mut ipv6hdr,
+    th: *mut tcphdr,
+) -> ::aya_bpf_cty::c_long {
+    let fun: unsafe extern "C" fn(iph: *mut ipv6hdr, th: *mut tcphdr) -> ::aya_bpf_cty::c_long =
+        ::core::mem::transmute(207usize);
+    fun(iph, th)
+}
+pub unsafe fn bpf_ktime_get_tai_ns() -> __u64 {
+    let fun: unsafe extern "C" fn() -> __u64 = ::core::mem::transmute(208usize);
+    fun()
+}

+ 186 - 139
bpf/aya-bpf-bindings/src/riscv64/bindings.rs

@@ -288,18 +288,18 @@ pub type __u64 = ::aya_bpf_cty::c_ulonglong;
 pub type __be16 = __u16;
 pub type __be32 = __u32;
 pub type __wsum = __u32;
-pub const BPF_REG_0: ::aya_bpf_cty::c_uint = 0;
-pub const BPF_REG_1: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_REG_2: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_REG_3: ::aya_bpf_cty::c_uint = 3;
-pub const BPF_REG_4: ::aya_bpf_cty::c_uint = 4;
-pub const BPF_REG_5: ::aya_bpf_cty::c_uint = 5;
-pub const BPF_REG_6: ::aya_bpf_cty::c_uint = 6;
-pub const BPF_REG_7: ::aya_bpf_cty::c_uint = 7;
-pub const BPF_REG_8: ::aya_bpf_cty::c_uint = 8;
-pub const BPF_REG_9: ::aya_bpf_cty::c_uint = 9;
-pub const BPF_REG_10: ::aya_bpf_cty::c_uint = 10;
-pub const __MAX_BPF_REG: ::aya_bpf_cty::c_uint = 11;
+pub const BPF_REG_0: _bindgen_ty_1 = 0;
+pub const BPF_REG_1: _bindgen_ty_1 = 1;
+pub const BPF_REG_2: _bindgen_ty_1 = 2;
+pub const BPF_REG_3: _bindgen_ty_1 = 3;
+pub const BPF_REG_4: _bindgen_ty_1 = 4;
+pub const BPF_REG_5: _bindgen_ty_1 = 5;
+pub const BPF_REG_6: _bindgen_ty_1 = 6;
+pub const BPF_REG_7: _bindgen_ty_1 = 7;
+pub const BPF_REG_8: _bindgen_ty_1 = 8;
+pub const BPF_REG_9: _bindgen_ty_1 = 9;
+pub const BPF_REG_10: _bindgen_ty_1 = 10;
+pub const __MAX_BPF_REG: _bindgen_ty_1 = 11;
 pub type _bindgen_ty_1 = ::aya_bpf_cty::c_uint;
 #[repr(C)]
 #[derive(Copy, Clone)]
@@ -522,7 +522,8 @@ pub mod bpf_attach_type {
     pub const BPF_SK_REUSEPORT_SELECT_OR_MIGRATE: Type = 40;
     pub const BPF_PERF_EVENT: Type = 41;
     pub const BPF_TRACE_KPROBE_MULTI: Type = 42;
-    pub const __MAX_BPF_ATTACH_TYPE: Type = 43;
+    pub const BPF_LSM_CGROUP: Type = 43;
+    pub const __MAX_BPF_ATTACH_TYPE: Type = 44;
 }
 pub mod bpf_link_type {
     pub type Type = ::aya_bpf_cty::c_uint;
@@ -538,24 +539,24 @@ pub mod bpf_link_type {
     pub const BPF_LINK_TYPE_STRUCT_OPS: Type = 9;
     pub const MAX_BPF_LINK_TYPE: Type = 10;
 }
-pub const BPF_ANY: ::aya_bpf_cty::c_uint = 0;
-pub const BPF_NOEXIST: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_EXIST: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_F_LOCK: ::aya_bpf_cty::c_uint = 4;
+pub const BPF_ANY: _bindgen_ty_2 = 0;
+pub const BPF_NOEXIST: _bindgen_ty_2 = 1;
+pub const BPF_EXIST: _bindgen_ty_2 = 2;
+pub const BPF_F_LOCK: _bindgen_ty_2 = 4;
 pub type _bindgen_ty_2 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_NO_PREALLOC: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_F_NO_COMMON_LRU: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_F_NUMA_NODE: ::aya_bpf_cty::c_uint = 4;
-pub const BPF_F_RDONLY: ::aya_bpf_cty::c_uint = 8;
-pub const BPF_F_WRONLY: ::aya_bpf_cty::c_uint = 16;
-pub const BPF_F_STACK_BUILD_ID: ::aya_bpf_cty::c_uint = 32;
-pub const BPF_F_ZERO_SEED: ::aya_bpf_cty::c_uint = 64;
-pub const BPF_F_RDONLY_PROG: ::aya_bpf_cty::c_uint = 128;
-pub const BPF_F_WRONLY_PROG: ::aya_bpf_cty::c_uint = 256;
-pub const BPF_F_CLONE: ::aya_bpf_cty::c_uint = 512;
-pub const BPF_F_MMAPABLE: ::aya_bpf_cty::c_uint = 1024;
-pub const BPF_F_PRESERVE_ELEMS: ::aya_bpf_cty::c_uint = 2048;
-pub const BPF_F_INNER_MAP: ::aya_bpf_cty::c_uint = 4096;
+pub const BPF_F_NO_PREALLOC: _bindgen_ty_3 = 1;
+pub const BPF_F_NO_COMMON_LRU: _bindgen_ty_3 = 2;
+pub const BPF_F_NUMA_NODE: _bindgen_ty_3 = 4;
+pub const BPF_F_RDONLY: _bindgen_ty_3 = 8;
+pub const BPF_F_WRONLY: _bindgen_ty_3 = 16;
+pub const BPF_F_STACK_BUILD_ID: _bindgen_ty_3 = 32;
+pub const BPF_F_ZERO_SEED: _bindgen_ty_3 = 64;
+pub const BPF_F_RDONLY_PROG: _bindgen_ty_3 = 128;
+pub const BPF_F_WRONLY_PROG: _bindgen_ty_3 = 256;
+pub const BPF_F_CLONE: _bindgen_ty_3 = 512;
+pub const BPF_F_MMAPABLE: _bindgen_ty_3 = 1024;
+pub const BPF_F_PRESERVE_ELEMS: _bindgen_ty_3 = 2048;
+pub const BPF_F_INNER_MAP: _bindgen_ty_3 = 4096;
 pub type _bindgen_ty_3 = ::aya_bpf_cty::c_uint;
 pub mod bpf_stats_type {
     pub type Type = ::aya_bpf_cty::c_uint;
@@ -749,6 +750,7 @@ pub struct bpf_attr__bindgen_ty_10 {
     pub attach_flags: __u32,
     pub prog_ids: __u64,
     pub prog_cnt: __u32,
+    pub prog_attach_flags: __u64,
 }
 #[repr(C)]
 #[derive(Copy, Clone)]
@@ -1057,74 +1059,87 @@ pub mod bpf_func_id {
     pub const BPF_FUNC_ima_file_hash: Type = 193;
     pub const BPF_FUNC_kptr_xchg: Type = 194;
     pub const BPF_FUNC_map_lookup_percpu_elem: Type = 195;
-    pub const __BPF_FUNC_MAX_ID: Type = 196;
-}
-pub const BPF_F_RECOMPUTE_CSUM: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_F_INVALIDATE_HASH: ::aya_bpf_cty::c_uint = 2;
+    pub const BPF_FUNC_skc_to_mptcp_sock: Type = 196;
+    pub const BPF_FUNC_dynptr_from_mem: Type = 197;
+    pub const BPF_FUNC_ringbuf_reserve_dynptr: Type = 198;
+    pub const BPF_FUNC_ringbuf_submit_dynptr: Type = 199;
+    pub const BPF_FUNC_ringbuf_discard_dynptr: Type = 200;
+    pub const BPF_FUNC_dynptr_read: Type = 201;
+    pub const BPF_FUNC_dynptr_write: Type = 202;
+    pub const BPF_FUNC_dynptr_data: Type = 203;
+    pub const BPF_FUNC_tcp_raw_gen_syncookie_ipv4: Type = 204;
+    pub const BPF_FUNC_tcp_raw_gen_syncookie_ipv6: Type = 205;
+    pub const BPF_FUNC_tcp_raw_check_syncookie_ipv4: Type = 206;
+    pub const BPF_FUNC_tcp_raw_check_syncookie_ipv6: Type = 207;
+    pub const BPF_FUNC_ktime_get_tai_ns: Type = 208;
+    pub const __BPF_FUNC_MAX_ID: Type = 209;
+}
+pub const BPF_F_RECOMPUTE_CSUM: _bindgen_ty_4 = 1;
+pub const BPF_F_INVALIDATE_HASH: _bindgen_ty_4 = 2;
 pub type _bindgen_ty_4 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_HDR_FIELD_MASK: ::aya_bpf_cty::c_uint = 15;
+pub const BPF_F_HDR_FIELD_MASK: _bindgen_ty_5 = 15;
 pub type _bindgen_ty_5 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_PSEUDO_HDR: ::aya_bpf_cty::c_uint = 16;
-pub const BPF_F_MARK_MANGLED_0: ::aya_bpf_cty::c_uint = 32;
-pub const BPF_F_MARK_ENFORCE: ::aya_bpf_cty::c_uint = 64;
+pub const BPF_F_PSEUDO_HDR: _bindgen_ty_6 = 16;
+pub const BPF_F_MARK_MANGLED_0: _bindgen_ty_6 = 32;
+pub const BPF_F_MARK_ENFORCE: _bindgen_ty_6 = 64;
 pub type _bindgen_ty_6 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_INGRESS: ::aya_bpf_cty::c_uint = 1;
+pub const BPF_F_INGRESS: _bindgen_ty_7 = 1;
 pub type _bindgen_ty_7 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_TUNINFO_IPV6: ::aya_bpf_cty::c_uint = 1;
+pub const BPF_F_TUNINFO_IPV6: _bindgen_ty_8 = 1;
 pub type _bindgen_ty_8 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_SKIP_FIELD_MASK: ::aya_bpf_cty::c_uint = 255;
-pub const BPF_F_USER_STACK: ::aya_bpf_cty::c_uint = 256;
-pub const BPF_F_FAST_STACK_CMP: ::aya_bpf_cty::c_uint = 512;
-pub const BPF_F_REUSE_STACKID: ::aya_bpf_cty::c_uint = 1024;
-pub const BPF_F_USER_BUILD_ID: ::aya_bpf_cty::c_uint = 2048;
+pub const BPF_F_SKIP_FIELD_MASK: _bindgen_ty_9 = 255;
+pub const BPF_F_USER_STACK: _bindgen_ty_9 = 256;
+pub const BPF_F_FAST_STACK_CMP: _bindgen_ty_9 = 512;
+pub const BPF_F_REUSE_STACKID: _bindgen_ty_9 = 1024;
+pub const BPF_F_USER_BUILD_ID: _bindgen_ty_9 = 2048;
 pub type _bindgen_ty_9 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_ZERO_CSUM_TX: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_F_DONT_FRAGMENT: ::aya_bpf_cty::c_uint = 4;
-pub const BPF_F_SEQ_NUMBER: ::aya_bpf_cty::c_uint = 8;
+pub const BPF_F_ZERO_CSUM_TX: _bindgen_ty_10 = 2;
+pub const BPF_F_DONT_FRAGMENT: _bindgen_ty_10 = 4;
+pub const BPF_F_SEQ_NUMBER: _bindgen_ty_10 = 8;
 pub type _bindgen_ty_10 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_INDEX_MASK: ::aya_bpf_cty::c_ulong = 4294967295;
-pub const BPF_F_CURRENT_CPU: ::aya_bpf_cty::c_ulong = 4294967295;
-pub const BPF_F_CTXLEN_MASK: ::aya_bpf_cty::c_ulong = 4503595332403200;
+pub const BPF_F_INDEX_MASK: _bindgen_ty_11 = 4294967295;
+pub const BPF_F_CURRENT_CPU: _bindgen_ty_11 = 4294967295;
+pub const BPF_F_CTXLEN_MASK: _bindgen_ty_11 = 4503595332403200;
 pub type _bindgen_ty_11 = ::aya_bpf_cty::c_ulong;
-pub const BPF_F_CURRENT_NETNS: ::aya_bpf_cty::c_int = -1;
+pub const BPF_F_CURRENT_NETNS: _bindgen_ty_12 = -1;
 pub type _bindgen_ty_12 = ::aya_bpf_cty::c_int;
-pub const BPF_CSUM_LEVEL_QUERY: ::aya_bpf_cty::c_uint = 0;
-pub const BPF_CSUM_LEVEL_INC: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_CSUM_LEVEL_DEC: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_CSUM_LEVEL_RESET: ::aya_bpf_cty::c_uint = 3;
+pub const BPF_CSUM_LEVEL_QUERY: _bindgen_ty_13 = 0;
+pub const BPF_CSUM_LEVEL_INC: _bindgen_ty_13 = 1;
+pub const BPF_CSUM_LEVEL_DEC: _bindgen_ty_13 = 2;
+pub const BPF_CSUM_LEVEL_RESET: _bindgen_ty_13 = 3;
 pub type _bindgen_ty_13 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_ADJ_ROOM_FIXED_GSO: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV4: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV6: ::aya_bpf_cty::c_uint = 4;
-pub const BPF_F_ADJ_ROOM_ENCAP_L4_GRE: ::aya_bpf_cty::c_uint = 8;
-pub const BPF_F_ADJ_ROOM_ENCAP_L4_UDP: ::aya_bpf_cty::c_uint = 16;
-pub const BPF_F_ADJ_ROOM_NO_CSUM_RESET: ::aya_bpf_cty::c_uint = 32;
-pub const BPF_F_ADJ_ROOM_ENCAP_L2_ETH: ::aya_bpf_cty::c_uint = 64;
+pub const BPF_F_ADJ_ROOM_FIXED_GSO: _bindgen_ty_14 = 1;
+pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV4: _bindgen_ty_14 = 2;
+pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV6: _bindgen_ty_14 = 4;
+pub const BPF_F_ADJ_ROOM_ENCAP_L4_GRE: _bindgen_ty_14 = 8;
+pub const BPF_F_ADJ_ROOM_ENCAP_L4_UDP: _bindgen_ty_14 = 16;
+pub const BPF_F_ADJ_ROOM_NO_CSUM_RESET: _bindgen_ty_14 = 32;
+pub const BPF_F_ADJ_ROOM_ENCAP_L2_ETH: _bindgen_ty_14 = 64;
 pub type _bindgen_ty_14 = ::aya_bpf_cty::c_uint;
-pub const BPF_ADJ_ROOM_ENCAP_L2_MASK: ::aya_bpf_cty::c_uint = 255;
-pub const BPF_ADJ_ROOM_ENCAP_L2_SHIFT: ::aya_bpf_cty::c_uint = 56;
+pub const BPF_ADJ_ROOM_ENCAP_L2_MASK: _bindgen_ty_15 = 255;
+pub const BPF_ADJ_ROOM_ENCAP_L2_SHIFT: _bindgen_ty_15 = 56;
 pub type _bindgen_ty_15 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_SYSCTL_BASE_NAME: ::aya_bpf_cty::c_uint = 1;
+pub const BPF_F_SYSCTL_BASE_NAME: _bindgen_ty_16 = 1;
 pub type _bindgen_ty_16 = ::aya_bpf_cty::c_uint;
-pub const BPF_LOCAL_STORAGE_GET_F_CREATE: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_SK_STORAGE_GET_F_CREATE: ::aya_bpf_cty::c_uint = 1;
+pub const BPF_LOCAL_STORAGE_GET_F_CREATE: _bindgen_ty_17 = 1;
+pub const BPF_SK_STORAGE_GET_F_CREATE: _bindgen_ty_17 = 1;
 pub type _bindgen_ty_17 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_GET_BRANCH_RECORDS_SIZE: ::aya_bpf_cty::c_uint = 1;
+pub const BPF_F_GET_BRANCH_RECORDS_SIZE: _bindgen_ty_18 = 1;
 pub type _bindgen_ty_18 = ::aya_bpf_cty::c_uint;
-pub const BPF_RB_NO_WAKEUP: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_RB_FORCE_WAKEUP: ::aya_bpf_cty::c_uint = 2;
+pub const BPF_RB_NO_WAKEUP: _bindgen_ty_19 = 1;
+pub const BPF_RB_FORCE_WAKEUP: _bindgen_ty_19 = 2;
 pub type _bindgen_ty_19 = ::aya_bpf_cty::c_uint;
-pub const BPF_RB_AVAIL_DATA: ::aya_bpf_cty::c_uint = 0;
-pub const BPF_RB_RING_SIZE: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_RB_CONS_POS: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_RB_PROD_POS: ::aya_bpf_cty::c_uint = 3;
+pub const BPF_RB_AVAIL_DATA: _bindgen_ty_20 = 0;
+pub const BPF_RB_RING_SIZE: _bindgen_ty_20 = 1;
+pub const BPF_RB_CONS_POS: _bindgen_ty_20 = 2;
+pub const BPF_RB_PROD_POS: _bindgen_ty_20 = 3;
 pub type _bindgen_ty_20 = ::aya_bpf_cty::c_uint;
-pub const BPF_RINGBUF_BUSY_BIT: ::aya_bpf_cty::c_uint = 2147483648;
-pub const BPF_RINGBUF_DISCARD_BIT: ::aya_bpf_cty::c_uint = 1073741824;
-pub const BPF_RINGBUF_HDR_SZ: ::aya_bpf_cty::c_uint = 8;
+pub const BPF_RINGBUF_BUSY_BIT: _bindgen_ty_21 = 2147483648;
+pub const BPF_RINGBUF_DISCARD_BIT: _bindgen_ty_21 = 1073741824;
+pub const BPF_RINGBUF_HDR_SZ: _bindgen_ty_21 = 8;
 pub type _bindgen_ty_21 = ::aya_bpf_cty::c_uint;
-pub const BPF_SK_LOOKUP_F_REPLACE: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_SK_LOOKUP_F_NO_REUSEPORT: ::aya_bpf_cty::c_uint = 2;
+pub const BPF_SK_LOOKUP_F_REPLACE: _bindgen_ty_22 = 1;
+pub const BPF_SK_LOOKUP_F_NO_REUSEPORT: _bindgen_ty_22 = 2;
 pub type _bindgen_ty_22 = ::aya_bpf_cty::c_uint;
 pub mod bpf_adj_room_mode {
     pub type Type = ::aya_bpf_cty::c_uint;
@@ -1142,10 +1157,10 @@ pub mod bpf_lwt_encap_mode {
     pub const BPF_LWT_ENCAP_SEG6_INLINE: Type = 1;
     pub const BPF_LWT_ENCAP_IP: Type = 2;
 }
-pub const BPF_F_BPRM_SECUREEXEC: ::aya_bpf_cty::c_uint = 1;
+pub const BPF_F_BPRM_SECUREEXEC: _bindgen_ty_23 = 1;
 pub type _bindgen_ty_23 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_BROADCAST: ::aya_bpf_cty::c_uint = 8;
-pub const BPF_F_EXCLUDE_INGRESS: ::aya_bpf_cty::c_uint = 16;
+pub const BPF_F_BROADCAST: _bindgen_ty_24 = 8;
+pub const BPF_F_EXCLUDE_INGRESS: _bindgen_ty_24 = 16;
 pub type _bindgen_ty_24 = ::aya_bpf_cty::c_uint;
 pub mod _bindgen_ty_25 {
     pub type Type = ::aya_bpf_cty::c_uint;
@@ -1574,6 +1589,8 @@ pub struct bpf_prog_info {
     pub run_cnt: __u64,
     pub recursion_misses: __u64,
     pub verified_insns: __u32,
+    pub attach_btf_obj_id: __u32,
+    pub attach_btf_id: __u32,
 }
 impl bpf_prog_info {
     #[inline]
@@ -1821,45 +1838,45 @@ impl bpf_sock_ops__bindgen_ty_4 {
         __bindgen_bitfield_unit
     }
 }
-pub const BPF_SOCK_OPS_RTO_CB_FLAG: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_SOCK_OPS_RETRANS_CB_FLAG: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_SOCK_OPS_STATE_CB_FLAG: ::aya_bpf_cty::c_uint = 4;
-pub const BPF_SOCK_OPS_RTT_CB_FLAG: ::aya_bpf_cty::c_uint = 8;
-pub const BPF_SOCK_OPS_PARSE_ALL_HDR_OPT_CB_FLAG: ::aya_bpf_cty::c_uint = 16;
-pub const BPF_SOCK_OPS_PARSE_UNKNOWN_HDR_OPT_CB_FLAG: ::aya_bpf_cty::c_uint = 32;
-pub const BPF_SOCK_OPS_WRITE_HDR_OPT_CB_FLAG: ::aya_bpf_cty::c_uint = 64;
-pub const BPF_SOCK_OPS_ALL_CB_FLAGS: ::aya_bpf_cty::c_uint = 127;
+pub const BPF_SOCK_OPS_RTO_CB_FLAG: _bindgen_ty_26 = 1;
+pub const BPF_SOCK_OPS_RETRANS_CB_FLAG: _bindgen_ty_26 = 2;
+pub const BPF_SOCK_OPS_STATE_CB_FLAG: _bindgen_ty_26 = 4;
+pub const BPF_SOCK_OPS_RTT_CB_FLAG: _bindgen_ty_26 = 8;
+pub const BPF_SOCK_OPS_PARSE_ALL_HDR_OPT_CB_FLAG: _bindgen_ty_26 = 16;
+pub const BPF_SOCK_OPS_PARSE_UNKNOWN_HDR_OPT_CB_FLAG: _bindgen_ty_26 = 32;
+pub const BPF_SOCK_OPS_WRITE_HDR_OPT_CB_FLAG: _bindgen_ty_26 = 64;
+pub const BPF_SOCK_OPS_ALL_CB_FLAGS: _bindgen_ty_26 = 127;
 pub type _bindgen_ty_26 = ::aya_bpf_cty::c_uint;
-pub const BPF_SOCK_OPS_VOID: ::aya_bpf_cty::c_uint = 0;
-pub const BPF_SOCK_OPS_TIMEOUT_INIT: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_SOCK_OPS_RWND_INIT: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_SOCK_OPS_TCP_CONNECT_CB: ::aya_bpf_cty::c_uint = 3;
-pub const BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB: ::aya_bpf_cty::c_uint = 4;
-pub const BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB: ::aya_bpf_cty::c_uint = 5;
-pub const BPF_SOCK_OPS_NEEDS_ECN: ::aya_bpf_cty::c_uint = 6;
-pub const BPF_SOCK_OPS_BASE_RTT: ::aya_bpf_cty::c_uint = 7;
-pub const BPF_SOCK_OPS_RTO_CB: ::aya_bpf_cty::c_uint = 8;
-pub const BPF_SOCK_OPS_RETRANS_CB: ::aya_bpf_cty::c_uint = 9;
-pub const BPF_SOCK_OPS_STATE_CB: ::aya_bpf_cty::c_uint = 10;
-pub const BPF_SOCK_OPS_TCP_LISTEN_CB: ::aya_bpf_cty::c_uint = 11;
-pub const BPF_SOCK_OPS_RTT_CB: ::aya_bpf_cty::c_uint = 12;
-pub const BPF_SOCK_OPS_PARSE_HDR_OPT_CB: ::aya_bpf_cty::c_uint = 13;
-pub const BPF_SOCK_OPS_HDR_OPT_LEN_CB: ::aya_bpf_cty::c_uint = 14;
-pub const BPF_SOCK_OPS_WRITE_HDR_OPT_CB: ::aya_bpf_cty::c_uint = 15;
+pub const BPF_SOCK_OPS_VOID: _bindgen_ty_27 = 0;
+pub const BPF_SOCK_OPS_TIMEOUT_INIT: _bindgen_ty_27 = 1;
+pub const BPF_SOCK_OPS_RWND_INIT: _bindgen_ty_27 = 2;
+pub const BPF_SOCK_OPS_TCP_CONNECT_CB: _bindgen_ty_27 = 3;
+pub const BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB: _bindgen_ty_27 = 4;
+pub const BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB: _bindgen_ty_27 = 5;
+pub const BPF_SOCK_OPS_NEEDS_ECN: _bindgen_ty_27 = 6;
+pub const BPF_SOCK_OPS_BASE_RTT: _bindgen_ty_27 = 7;
+pub const BPF_SOCK_OPS_RTO_CB: _bindgen_ty_27 = 8;
+pub const BPF_SOCK_OPS_RETRANS_CB: _bindgen_ty_27 = 9;
+pub const BPF_SOCK_OPS_STATE_CB: _bindgen_ty_27 = 10;
+pub const BPF_SOCK_OPS_TCP_LISTEN_CB: _bindgen_ty_27 = 11;
+pub const BPF_SOCK_OPS_RTT_CB: _bindgen_ty_27 = 12;
+pub const BPF_SOCK_OPS_PARSE_HDR_OPT_CB: _bindgen_ty_27 = 13;
+pub const BPF_SOCK_OPS_HDR_OPT_LEN_CB: _bindgen_ty_27 = 14;
+pub const BPF_SOCK_OPS_WRITE_HDR_OPT_CB: _bindgen_ty_27 = 15;
 pub type _bindgen_ty_27 = ::aya_bpf_cty::c_uint;
-pub const BPF_TCP_ESTABLISHED: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_TCP_SYN_SENT: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_TCP_SYN_RECV: ::aya_bpf_cty::c_uint = 3;
-pub const BPF_TCP_FIN_WAIT1: ::aya_bpf_cty::c_uint = 4;
-pub const BPF_TCP_FIN_WAIT2: ::aya_bpf_cty::c_uint = 5;
-pub const BPF_TCP_TIME_WAIT: ::aya_bpf_cty::c_uint = 6;
-pub const BPF_TCP_CLOSE: ::aya_bpf_cty::c_uint = 7;
-pub const BPF_TCP_CLOSE_WAIT: ::aya_bpf_cty::c_uint = 8;
-pub const BPF_TCP_LAST_ACK: ::aya_bpf_cty::c_uint = 9;
-pub const BPF_TCP_LISTEN: ::aya_bpf_cty::c_uint = 10;
-pub const BPF_TCP_CLOSING: ::aya_bpf_cty::c_uint = 11;
-pub const BPF_TCP_NEW_SYN_RECV: ::aya_bpf_cty::c_uint = 12;
-pub const BPF_TCP_MAX_STATES: ::aya_bpf_cty::c_uint = 13;
+pub const BPF_TCP_ESTABLISHED: _bindgen_ty_28 = 1;
+pub const BPF_TCP_SYN_SENT: _bindgen_ty_28 = 2;
+pub const BPF_TCP_SYN_RECV: _bindgen_ty_28 = 3;
+pub const BPF_TCP_FIN_WAIT1: _bindgen_ty_28 = 4;
+pub const BPF_TCP_FIN_WAIT2: _bindgen_ty_28 = 5;
+pub const BPF_TCP_TIME_WAIT: _bindgen_ty_28 = 6;
+pub const BPF_TCP_CLOSE: _bindgen_ty_28 = 7;
+pub const BPF_TCP_CLOSE_WAIT: _bindgen_ty_28 = 8;
+pub const BPF_TCP_LAST_ACK: _bindgen_ty_28 = 9;
+pub const BPF_TCP_LISTEN: _bindgen_ty_28 = 10;
+pub const BPF_TCP_CLOSING: _bindgen_ty_28 = 11;
+pub const BPF_TCP_NEW_SYN_RECV: _bindgen_ty_28 = 12;
+pub const BPF_TCP_MAX_STATES: _bindgen_ty_28 = 13;
 pub type _bindgen_ty_28 = ::aya_bpf_cty::c_uint;
 pub mod _bindgen_ty_30 {
     pub type Type = ::aya_bpf_cty::c_uint;
@@ -1877,12 +1894,12 @@ pub struct bpf_perf_event_value {
     pub enabled: __u64,
     pub running: __u64,
 }
-pub const BPF_DEVCG_ACC_MKNOD: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_DEVCG_ACC_READ: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_DEVCG_ACC_WRITE: ::aya_bpf_cty::c_uint = 4;
+pub const BPF_DEVCG_ACC_MKNOD: _bindgen_ty_32 = 1;
+pub const BPF_DEVCG_ACC_READ: _bindgen_ty_32 = 2;
+pub const BPF_DEVCG_ACC_WRITE: _bindgen_ty_32 = 4;
 pub type _bindgen_ty_32 = ::aya_bpf_cty::c_uint;
-pub const BPF_DEVCG_DEV_BLOCK: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_DEVCG_DEV_CHAR: ::aya_bpf_cty::c_uint = 2;
+pub const BPF_DEVCG_DEV_BLOCK: _bindgen_ty_33 = 1;
+pub const BPF_DEVCG_DEV_CHAR: _bindgen_ty_33 = 2;
 pub type _bindgen_ty_33 = ::aya_bpf_cty::c_uint;
 #[repr(C)]
 #[derive(Copy, Clone)]
@@ -1895,18 +1912,18 @@ pub struct bpf_cgroup_dev_ctx {
 pub struct bpf_raw_tracepoint_args {
     pub args: __IncompleteArrayField<__u64>,
 }
-pub const BPF_FIB_LOOKUP_DIRECT: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_FIB_LOOKUP_OUTPUT: ::aya_bpf_cty::c_uint = 2;
+pub const BPF_FIB_LOOKUP_DIRECT: _bindgen_ty_34 = 1;
+pub const BPF_FIB_LOOKUP_OUTPUT: _bindgen_ty_34 = 2;
 pub type _bindgen_ty_34 = ::aya_bpf_cty::c_uint;
-pub const BPF_FIB_LKUP_RET_SUCCESS: ::aya_bpf_cty::c_uint = 0;
-pub const BPF_FIB_LKUP_RET_BLACKHOLE: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_FIB_LKUP_RET_UNREACHABLE: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_FIB_LKUP_RET_PROHIBIT: ::aya_bpf_cty::c_uint = 3;
-pub const BPF_FIB_LKUP_RET_NOT_FWDED: ::aya_bpf_cty::c_uint = 4;
-pub const BPF_FIB_LKUP_RET_FWD_DISABLED: ::aya_bpf_cty::c_uint = 5;
-pub const BPF_FIB_LKUP_RET_UNSUPP_LWT: ::aya_bpf_cty::c_uint = 6;
-pub const BPF_FIB_LKUP_RET_NO_NEIGH: ::aya_bpf_cty::c_uint = 7;
-pub const BPF_FIB_LKUP_RET_FRAG_NEEDED: ::aya_bpf_cty::c_uint = 8;
+pub const BPF_FIB_LKUP_RET_SUCCESS: _bindgen_ty_35 = 0;
+pub const BPF_FIB_LKUP_RET_BLACKHOLE: _bindgen_ty_35 = 1;
+pub const BPF_FIB_LKUP_RET_UNREACHABLE: _bindgen_ty_35 = 2;
+pub const BPF_FIB_LKUP_RET_PROHIBIT: _bindgen_ty_35 = 3;
+pub const BPF_FIB_LKUP_RET_NOT_FWDED: _bindgen_ty_35 = 4;
+pub const BPF_FIB_LKUP_RET_FWD_DISABLED: _bindgen_ty_35 = 5;
+pub const BPF_FIB_LKUP_RET_UNSUPP_LWT: _bindgen_ty_35 = 6;
+pub const BPF_FIB_LKUP_RET_NO_NEIGH: _bindgen_ty_35 = 7;
+pub const BPF_FIB_LKUP_RET_FRAG_NEEDED: _bindgen_ty_35 = 8;
 pub type _bindgen_ty_35 = ::aya_bpf_cty::c_uint;
 #[repr(C)]
 #[derive(Copy, Clone)]
@@ -1981,9 +1998,9 @@ pub mod bpf_task_fd_type {
     pub const BPF_FD_TYPE_UPROBE: Type = 4;
     pub const BPF_FD_TYPE_URETPROBE: Type = 5;
 }
-pub const BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP: ::aya_bpf_cty::c_uint = 4;
+pub const BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG: _bindgen_ty_36 = 1;
+pub const BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL: _bindgen_ty_36 = 2;
+pub const BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP: _bindgen_ty_36 = 4;
 pub type _bindgen_ty_36 = ::aya_bpf_cty::c_uint;
 #[repr(C)]
 #[derive(Copy, Clone)]
@@ -2054,6 +2071,20 @@ impl bpf_timer {
     }
 }
 #[repr(C)]
+#[repr(align(8))]
+#[derive(Copy, Clone)]
+pub struct bpf_dynptr {
+    pub _bitfield_align_1: [u8; 0],
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 16usize]>,
+}
+impl bpf_dynptr {
+    #[inline]
+    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 16usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default();
+        __bindgen_bitfield_unit
+    }
+}
+#[repr(C)]
 #[derive(Copy, Clone)]
 pub struct bpf_sysctl {
     pub write: __u32,
@@ -2182,6 +2213,7 @@ pub mod bpf_core_relo_kind {
     pub const BPF_CORE_TYPE_SIZE: Type = 9;
     pub const BPF_CORE_ENUMVAL_EXISTS: Type = 10;
     pub const BPF_CORE_ENUMVAL_VALUE: Type = 11;
+    pub const BPF_CORE_TYPE_MATCHES: Type = 12;
 }
 #[repr(C)]
 #[derive(Copy, Clone)]
@@ -2278,3 +2310,18 @@ pub struct socket {
 pub struct file {
     _unused: [u8; 0],
 }
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct mptcp_sock {
+    _unused: [u8; 0],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct iphdr {
+    _unused: [u8; 0],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr {
+    _unused: [u8; 0],
+}

+ 125 - 0
bpf/aya-bpf-bindings/src/riscv64/helpers.rs

@@ -1981,3 +1981,128 @@ pub unsafe fn bpf_map_lookup_percpu_elem(
     ) -> *mut ::aya_bpf_cty::c_void = ::core::mem::transmute(195usize);
     fun(map, key, cpu)
 }
+pub unsafe fn bpf_skc_to_mptcp_sock(sk: *mut ::aya_bpf_cty::c_void) -> *mut mptcp_sock {
+    let fun: unsafe extern "C" fn(sk: *mut ::aya_bpf_cty::c_void) -> *mut mptcp_sock =
+        ::core::mem::transmute(196usize);
+    fun(sk)
+}
+pub unsafe fn bpf_dynptr_from_mem(
+    data: *mut ::aya_bpf_cty::c_void,
+    size: __u32,
+    flags: __u64,
+    ptr: *mut bpf_dynptr,
+) -> ::aya_bpf_cty::c_long {
+    let fun: unsafe extern "C" fn(
+        data: *mut ::aya_bpf_cty::c_void,
+        size: __u32,
+        flags: __u64,
+        ptr: *mut bpf_dynptr,
+    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(197usize);
+    fun(data, size, flags, ptr)
+}
+pub unsafe fn bpf_ringbuf_reserve_dynptr(
+    ringbuf: *mut ::aya_bpf_cty::c_void,
+    size: __u32,
+    flags: __u64,
+    ptr: *mut bpf_dynptr,
+) -> ::aya_bpf_cty::c_long {
+    let fun: unsafe extern "C" fn(
+        ringbuf: *mut ::aya_bpf_cty::c_void,
+        size: __u32,
+        flags: __u64,
+        ptr: *mut bpf_dynptr,
+    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(198usize);
+    fun(ringbuf, size, flags, ptr)
+}
+pub unsafe fn bpf_ringbuf_submit_dynptr(ptr: *mut bpf_dynptr, flags: __u64) {
+    let fun: unsafe extern "C" fn(ptr: *mut bpf_dynptr, flags: __u64) =
+        ::core::mem::transmute(199usize);
+    fun(ptr, flags)
+}
+pub unsafe fn bpf_ringbuf_discard_dynptr(ptr: *mut bpf_dynptr, flags: __u64) {
+    let fun: unsafe extern "C" fn(ptr: *mut bpf_dynptr, flags: __u64) =
+        ::core::mem::transmute(200usize);
+    fun(ptr, flags)
+}
+pub unsafe fn bpf_dynptr_read(
+    dst: *mut ::aya_bpf_cty::c_void,
+    len: __u32,
+    src: *mut bpf_dynptr,
+    offset: __u32,
+    flags: __u64,
+) -> ::aya_bpf_cty::c_long {
+    let fun: unsafe extern "C" fn(
+        dst: *mut ::aya_bpf_cty::c_void,
+        len: __u32,
+        src: *mut bpf_dynptr,
+        offset: __u32,
+        flags: __u64,
+    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(201usize);
+    fun(dst, len, src, offset, flags)
+}
+pub unsafe fn bpf_dynptr_write(
+    dst: *mut bpf_dynptr,
+    offset: __u32,
+    src: *mut ::aya_bpf_cty::c_void,
+    len: __u32,
+    flags: __u64,
+) -> ::aya_bpf_cty::c_long {
+    let fun: unsafe extern "C" fn(
+        dst: *mut bpf_dynptr,
+        offset: __u32,
+        src: *mut ::aya_bpf_cty::c_void,
+        len: __u32,
+        flags: __u64,
+    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(202usize);
+    fun(dst, offset, src, len, flags)
+}
+pub unsafe fn bpf_dynptr_data(
+    ptr: *mut bpf_dynptr,
+    offset: __u32,
+    len: __u32,
+) -> *mut ::aya_bpf_cty::c_void {
+    let fun: unsafe extern "C" fn(
+        ptr: *mut bpf_dynptr,
+        offset: __u32,
+        len: __u32,
+    ) -> *mut ::aya_bpf_cty::c_void = ::core::mem::transmute(203usize);
+    fun(ptr, offset, len)
+}
+pub unsafe fn bpf_tcp_raw_gen_syncookie_ipv4(
+    iph: *mut iphdr,
+    th: *mut tcphdr,
+    th_len: __u32,
+) -> __s64 {
+    let fun: unsafe extern "C" fn(iph: *mut iphdr, th: *mut tcphdr, th_len: __u32) -> __s64 =
+        ::core::mem::transmute(204usize);
+    fun(iph, th, th_len)
+}
+pub unsafe fn bpf_tcp_raw_gen_syncookie_ipv6(
+    iph: *mut ipv6hdr,
+    th: *mut tcphdr,
+    th_len: __u32,
+) -> __s64 {
+    let fun: unsafe extern "C" fn(iph: *mut ipv6hdr, th: *mut tcphdr, th_len: __u32) -> __s64 =
+        ::core::mem::transmute(205usize);
+    fun(iph, th, th_len)
+}
+pub unsafe fn bpf_tcp_raw_check_syncookie_ipv4(
+    iph: *mut iphdr,
+    th: *mut tcphdr,
+) -> ::aya_bpf_cty::c_long {
+    let fun: unsafe extern "C" fn(iph: *mut iphdr, th: *mut tcphdr) -> ::aya_bpf_cty::c_long =
+        ::core::mem::transmute(206usize);
+    fun(iph, th)
+}
+pub unsafe fn bpf_tcp_raw_check_syncookie_ipv6(
+    iph: *mut ipv6hdr,
+    th: *mut tcphdr,
+) -> ::aya_bpf_cty::c_long {
+    let fun: unsafe extern "C" fn(iph: *mut ipv6hdr, th: *mut tcphdr) -> ::aya_bpf_cty::c_long =
+        ::core::mem::transmute(207usize);
+    fun(iph, th)
+}
+pub unsafe fn bpf_ktime_get_tai_ns() -> __u64 {
+    let fun: unsafe extern "C" fn() -> __u64 = ::core::mem::transmute(208usize);
+    fun()
+}

+ 186 - 139
bpf/aya-bpf-bindings/src/x86_64/bindings.rs

@@ -288,18 +288,18 @@ pub type __u64 = ::aya_bpf_cty::c_ulonglong;
 pub type __be16 = __u16;
 pub type __be32 = __u32;
 pub type __wsum = __u32;
-pub const BPF_REG_0: ::aya_bpf_cty::c_uint = 0;
-pub const BPF_REG_1: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_REG_2: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_REG_3: ::aya_bpf_cty::c_uint = 3;
-pub const BPF_REG_4: ::aya_bpf_cty::c_uint = 4;
-pub const BPF_REG_5: ::aya_bpf_cty::c_uint = 5;
-pub const BPF_REG_6: ::aya_bpf_cty::c_uint = 6;
-pub const BPF_REG_7: ::aya_bpf_cty::c_uint = 7;
-pub const BPF_REG_8: ::aya_bpf_cty::c_uint = 8;
-pub const BPF_REG_9: ::aya_bpf_cty::c_uint = 9;
-pub const BPF_REG_10: ::aya_bpf_cty::c_uint = 10;
-pub const __MAX_BPF_REG: ::aya_bpf_cty::c_uint = 11;
+pub const BPF_REG_0: _bindgen_ty_1 = 0;
+pub const BPF_REG_1: _bindgen_ty_1 = 1;
+pub const BPF_REG_2: _bindgen_ty_1 = 2;
+pub const BPF_REG_3: _bindgen_ty_1 = 3;
+pub const BPF_REG_4: _bindgen_ty_1 = 4;
+pub const BPF_REG_5: _bindgen_ty_1 = 5;
+pub const BPF_REG_6: _bindgen_ty_1 = 6;
+pub const BPF_REG_7: _bindgen_ty_1 = 7;
+pub const BPF_REG_8: _bindgen_ty_1 = 8;
+pub const BPF_REG_9: _bindgen_ty_1 = 9;
+pub const BPF_REG_10: _bindgen_ty_1 = 10;
+pub const __MAX_BPF_REG: _bindgen_ty_1 = 11;
 pub type _bindgen_ty_1 = ::aya_bpf_cty::c_uint;
 #[repr(C)]
 #[derive(Copy, Clone)]
@@ -522,7 +522,8 @@ pub mod bpf_attach_type {
     pub const BPF_SK_REUSEPORT_SELECT_OR_MIGRATE: Type = 40;
     pub const BPF_PERF_EVENT: Type = 41;
     pub const BPF_TRACE_KPROBE_MULTI: Type = 42;
-    pub const __MAX_BPF_ATTACH_TYPE: Type = 43;
+    pub const BPF_LSM_CGROUP: Type = 43;
+    pub const __MAX_BPF_ATTACH_TYPE: Type = 44;
 }
 pub mod bpf_link_type {
     pub type Type = ::aya_bpf_cty::c_uint;
@@ -538,24 +539,24 @@ pub mod bpf_link_type {
     pub const BPF_LINK_TYPE_STRUCT_OPS: Type = 9;
     pub const MAX_BPF_LINK_TYPE: Type = 10;
 }
-pub const BPF_ANY: ::aya_bpf_cty::c_uint = 0;
-pub const BPF_NOEXIST: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_EXIST: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_F_LOCK: ::aya_bpf_cty::c_uint = 4;
+pub const BPF_ANY: _bindgen_ty_2 = 0;
+pub const BPF_NOEXIST: _bindgen_ty_2 = 1;
+pub const BPF_EXIST: _bindgen_ty_2 = 2;
+pub const BPF_F_LOCK: _bindgen_ty_2 = 4;
 pub type _bindgen_ty_2 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_NO_PREALLOC: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_F_NO_COMMON_LRU: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_F_NUMA_NODE: ::aya_bpf_cty::c_uint = 4;
-pub const BPF_F_RDONLY: ::aya_bpf_cty::c_uint = 8;
-pub const BPF_F_WRONLY: ::aya_bpf_cty::c_uint = 16;
-pub const BPF_F_STACK_BUILD_ID: ::aya_bpf_cty::c_uint = 32;
-pub const BPF_F_ZERO_SEED: ::aya_bpf_cty::c_uint = 64;
-pub const BPF_F_RDONLY_PROG: ::aya_bpf_cty::c_uint = 128;
-pub const BPF_F_WRONLY_PROG: ::aya_bpf_cty::c_uint = 256;
-pub const BPF_F_CLONE: ::aya_bpf_cty::c_uint = 512;
-pub const BPF_F_MMAPABLE: ::aya_bpf_cty::c_uint = 1024;
-pub const BPF_F_PRESERVE_ELEMS: ::aya_bpf_cty::c_uint = 2048;
-pub const BPF_F_INNER_MAP: ::aya_bpf_cty::c_uint = 4096;
+pub const BPF_F_NO_PREALLOC: _bindgen_ty_3 = 1;
+pub const BPF_F_NO_COMMON_LRU: _bindgen_ty_3 = 2;
+pub const BPF_F_NUMA_NODE: _bindgen_ty_3 = 4;
+pub const BPF_F_RDONLY: _bindgen_ty_3 = 8;
+pub const BPF_F_WRONLY: _bindgen_ty_3 = 16;
+pub const BPF_F_STACK_BUILD_ID: _bindgen_ty_3 = 32;
+pub const BPF_F_ZERO_SEED: _bindgen_ty_3 = 64;
+pub const BPF_F_RDONLY_PROG: _bindgen_ty_3 = 128;
+pub const BPF_F_WRONLY_PROG: _bindgen_ty_3 = 256;
+pub const BPF_F_CLONE: _bindgen_ty_3 = 512;
+pub const BPF_F_MMAPABLE: _bindgen_ty_3 = 1024;
+pub const BPF_F_PRESERVE_ELEMS: _bindgen_ty_3 = 2048;
+pub const BPF_F_INNER_MAP: _bindgen_ty_3 = 4096;
 pub type _bindgen_ty_3 = ::aya_bpf_cty::c_uint;
 pub mod bpf_stats_type {
     pub type Type = ::aya_bpf_cty::c_uint;
@@ -749,6 +750,7 @@ pub struct bpf_attr__bindgen_ty_10 {
     pub attach_flags: __u32,
     pub prog_ids: __u64,
     pub prog_cnt: __u32,
+    pub prog_attach_flags: __u64,
 }
 #[repr(C)]
 #[derive(Copy, Clone)]
@@ -1057,74 +1059,87 @@ pub mod bpf_func_id {
     pub const BPF_FUNC_ima_file_hash: Type = 193;
     pub const BPF_FUNC_kptr_xchg: Type = 194;
     pub const BPF_FUNC_map_lookup_percpu_elem: Type = 195;
-    pub const __BPF_FUNC_MAX_ID: Type = 196;
-}
-pub const BPF_F_RECOMPUTE_CSUM: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_F_INVALIDATE_HASH: ::aya_bpf_cty::c_uint = 2;
+    pub const BPF_FUNC_skc_to_mptcp_sock: Type = 196;
+    pub const BPF_FUNC_dynptr_from_mem: Type = 197;
+    pub const BPF_FUNC_ringbuf_reserve_dynptr: Type = 198;
+    pub const BPF_FUNC_ringbuf_submit_dynptr: Type = 199;
+    pub const BPF_FUNC_ringbuf_discard_dynptr: Type = 200;
+    pub const BPF_FUNC_dynptr_read: Type = 201;
+    pub const BPF_FUNC_dynptr_write: Type = 202;
+    pub const BPF_FUNC_dynptr_data: Type = 203;
+    pub const BPF_FUNC_tcp_raw_gen_syncookie_ipv4: Type = 204;
+    pub const BPF_FUNC_tcp_raw_gen_syncookie_ipv6: Type = 205;
+    pub const BPF_FUNC_tcp_raw_check_syncookie_ipv4: Type = 206;
+    pub const BPF_FUNC_tcp_raw_check_syncookie_ipv6: Type = 207;
+    pub const BPF_FUNC_ktime_get_tai_ns: Type = 208;
+    pub const __BPF_FUNC_MAX_ID: Type = 209;
+}
+pub const BPF_F_RECOMPUTE_CSUM: _bindgen_ty_4 = 1;
+pub const BPF_F_INVALIDATE_HASH: _bindgen_ty_4 = 2;
 pub type _bindgen_ty_4 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_HDR_FIELD_MASK: ::aya_bpf_cty::c_uint = 15;
+pub const BPF_F_HDR_FIELD_MASK: _bindgen_ty_5 = 15;
 pub type _bindgen_ty_5 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_PSEUDO_HDR: ::aya_bpf_cty::c_uint = 16;
-pub const BPF_F_MARK_MANGLED_0: ::aya_bpf_cty::c_uint = 32;
-pub const BPF_F_MARK_ENFORCE: ::aya_bpf_cty::c_uint = 64;
+pub const BPF_F_PSEUDO_HDR: _bindgen_ty_6 = 16;
+pub const BPF_F_MARK_MANGLED_0: _bindgen_ty_6 = 32;
+pub const BPF_F_MARK_ENFORCE: _bindgen_ty_6 = 64;
 pub type _bindgen_ty_6 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_INGRESS: ::aya_bpf_cty::c_uint = 1;
+pub const BPF_F_INGRESS: _bindgen_ty_7 = 1;
 pub type _bindgen_ty_7 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_TUNINFO_IPV6: ::aya_bpf_cty::c_uint = 1;
+pub const BPF_F_TUNINFO_IPV6: _bindgen_ty_8 = 1;
 pub type _bindgen_ty_8 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_SKIP_FIELD_MASK: ::aya_bpf_cty::c_uint = 255;
-pub const BPF_F_USER_STACK: ::aya_bpf_cty::c_uint = 256;
-pub const BPF_F_FAST_STACK_CMP: ::aya_bpf_cty::c_uint = 512;
-pub const BPF_F_REUSE_STACKID: ::aya_bpf_cty::c_uint = 1024;
-pub const BPF_F_USER_BUILD_ID: ::aya_bpf_cty::c_uint = 2048;
+pub const BPF_F_SKIP_FIELD_MASK: _bindgen_ty_9 = 255;
+pub const BPF_F_USER_STACK: _bindgen_ty_9 = 256;
+pub const BPF_F_FAST_STACK_CMP: _bindgen_ty_9 = 512;
+pub const BPF_F_REUSE_STACKID: _bindgen_ty_9 = 1024;
+pub const BPF_F_USER_BUILD_ID: _bindgen_ty_9 = 2048;
 pub type _bindgen_ty_9 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_ZERO_CSUM_TX: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_F_DONT_FRAGMENT: ::aya_bpf_cty::c_uint = 4;
-pub const BPF_F_SEQ_NUMBER: ::aya_bpf_cty::c_uint = 8;
+pub const BPF_F_ZERO_CSUM_TX: _bindgen_ty_10 = 2;
+pub const BPF_F_DONT_FRAGMENT: _bindgen_ty_10 = 4;
+pub const BPF_F_SEQ_NUMBER: _bindgen_ty_10 = 8;
 pub type _bindgen_ty_10 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_INDEX_MASK: ::aya_bpf_cty::c_ulong = 4294967295;
-pub const BPF_F_CURRENT_CPU: ::aya_bpf_cty::c_ulong = 4294967295;
-pub const BPF_F_CTXLEN_MASK: ::aya_bpf_cty::c_ulong = 4503595332403200;
+pub const BPF_F_INDEX_MASK: _bindgen_ty_11 = 4294967295;
+pub const BPF_F_CURRENT_CPU: _bindgen_ty_11 = 4294967295;
+pub const BPF_F_CTXLEN_MASK: _bindgen_ty_11 = 4503595332403200;
 pub type _bindgen_ty_11 = ::aya_bpf_cty::c_ulong;
-pub const BPF_F_CURRENT_NETNS: ::aya_bpf_cty::c_int = -1;
+pub const BPF_F_CURRENT_NETNS: _bindgen_ty_12 = -1;
 pub type _bindgen_ty_12 = ::aya_bpf_cty::c_int;
-pub const BPF_CSUM_LEVEL_QUERY: ::aya_bpf_cty::c_uint = 0;
-pub const BPF_CSUM_LEVEL_INC: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_CSUM_LEVEL_DEC: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_CSUM_LEVEL_RESET: ::aya_bpf_cty::c_uint = 3;
+pub const BPF_CSUM_LEVEL_QUERY: _bindgen_ty_13 = 0;
+pub const BPF_CSUM_LEVEL_INC: _bindgen_ty_13 = 1;
+pub const BPF_CSUM_LEVEL_DEC: _bindgen_ty_13 = 2;
+pub const BPF_CSUM_LEVEL_RESET: _bindgen_ty_13 = 3;
 pub type _bindgen_ty_13 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_ADJ_ROOM_FIXED_GSO: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV4: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV6: ::aya_bpf_cty::c_uint = 4;
-pub const BPF_F_ADJ_ROOM_ENCAP_L4_GRE: ::aya_bpf_cty::c_uint = 8;
-pub const BPF_F_ADJ_ROOM_ENCAP_L4_UDP: ::aya_bpf_cty::c_uint = 16;
-pub const BPF_F_ADJ_ROOM_NO_CSUM_RESET: ::aya_bpf_cty::c_uint = 32;
-pub const BPF_F_ADJ_ROOM_ENCAP_L2_ETH: ::aya_bpf_cty::c_uint = 64;
+pub const BPF_F_ADJ_ROOM_FIXED_GSO: _bindgen_ty_14 = 1;
+pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV4: _bindgen_ty_14 = 2;
+pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV6: _bindgen_ty_14 = 4;
+pub const BPF_F_ADJ_ROOM_ENCAP_L4_GRE: _bindgen_ty_14 = 8;
+pub const BPF_F_ADJ_ROOM_ENCAP_L4_UDP: _bindgen_ty_14 = 16;
+pub const BPF_F_ADJ_ROOM_NO_CSUM_RESET: _bindgen_ty_14 = 32;
+pub const BPF_F_ADJ_ROOM_ENCAP_L2_ETH: _bindgen_ty_14 = 64;
 pub type _bindgen_ty_14 = ::aya_bpf_cty::c_uint;
-pub const BPF_ADJ_ROOM_ENCAP_L2_MASK: ::aya_bpf_cty::c_uint = 255;
-pub const BPF_ADJ_ROOM_ENCAP_L2_SHIFT: ::aya_bpf_cty::c_uint = 56;
+pub const BPF_ADJ_ROOM_ENCAP_L2_MASK: _bindgen_ty_15 = 255;
+pub const BPF_ADJ_ROOM_ENCAP_L2_SHIFT: _bindgen_ty_15 = 56;
 pub type _bindgen_ty_15 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_SYSCTL_BASE_NAME: ::aya_bpf_cty::c_uint = 1;
+pub const BPF_F_SYSCTL_BASE_NAME: _bindgen_ty_16 = 1;
 pub type _bindgen_ty_16 = ::aya_bpf_cty::c_uint;
-pub const BPF_LOCAL_STORAGE_GET_F_CREATE: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_SK_STORAGE_GET_F_CREATE: ::aya_bpf_cty::c_uint = 1;
+pub const BPF_LOCAL_STORAGE_GET_F_CREATE: _bindgen_ty_17 = 1;
+pub const BPF_SK_STORAGE_GET_F_CREATE: _bindgen_ty_17 = 1;
 pub type _bindgen_ty_17 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_GET_BRANCH_RECORDS_SIZE: ::aya_bpf_cty::c_uint = 1;
+pub const BPF_F_GET_BRANCH_RECORDS_SIZE: _bindgen_ty_18 = 1;
 pub type _bindgen_ty_18 = ::aya_bpf_cty::c_uint;
-pub const BPF_RB_NO_WAKEUP: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_RB_FORCE_WAKEUP: ::aya_bpf_cty::c_uint = 2;
+pub const BPF_RB_NO_WAKEUP: _bindgen_ty_19 = 1;
+pub const BPF_RB_FORCE_WAKEUP: _bindgen_ty_19 = 2;
 pub type _bindgen_ty_19 = ::aya_bpf_cty::c_uint;
-pub const BPF_RB_AVAIL_DATA: ::aya_bpf_cty::c_uint = 0;
-pub const BPF_RB_RING_SIZE: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_RB_CONS_POS: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_RB_PROD_POS: ::aya_bpf_cty::c_uint = 3;
+pub const BPF_RB_AVAIL_DATA: _bindgen_ty_20 = 0;
+pub const BPF_RB_RING_SIZE: _bindgen_ty_20 = 1;
+pub const BPF_RB_CONS_POS: _bindgen_ty_20 = 2;
+pub const BPF_RB_PROD_POS: _bindgen_ty_20 = 3;
 pub type _bindgen_ty_20 = ::aya_bpf_cty::c_uint;
-pub const BPF_RINGBUF_BUSY_BIT: ::aya_bpf_cty::c_uint = 2147483648;
-pub const BPF_RINGBUF_DISCARD_BIT: ::aya_bpf_cty::c_uint = 1073741824;
-pub const BPF_RINGBUF_HDR_SZ: ::aya_bpf_cty::c_uint = 8;
+pub const BPF_RINGBUF_BUSY_BIT: _bindgen_ty_21 = 2147483648;
+pub const BPF_RINGBUF_DISCARD_BIT: _bindgen_ty_21 = 1073741824;
+pub const BPF_RINGBUF_HDR_SZ: _bindgen_ty_21 = 8;
 pub type _bindgen_ty_21 = ::aya_bpf_cty::c_uint;
-pub const BPF_SK_LOOKUP_F_REPLACE: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_SK_LOOKUP_F_NO_REUSEPORT: ::aya_bpf_cty::c_uint = 2;
+pub const BPF_SK_LOOKUP_F_REPLACE: _bindgen_ty_22 = 1;
+pub const BPF_SK_LOOKUP_F_NO_REUSEPORT: _bindgen_ty_22 = 2;
 pub type _bindgen_ty_22 = ::aya_bpf_cty::c_uint;
 pub mod bpf_adj_room_mode {
     pub type Type = ::aya_bpf_cty::c_uint;
@@ -1142,10 +1157,10 @@ pub mod bpf_lwt_encap_mode {
     pub const BPF_LWT_ENCAP_SEG6_INLINE: Type = 1;
     pub const BPF_LWT_ENCAP_IP: Type = 2;
 }
-pub const BPF_F_BPRM_SECUREEXEC: ::aya_bpf_cty::c_uint = 1;
+pub const BPF_F_BPRM_SECUREEXEC: _bindgen_ty_23 = 1;
 pub type _bindgen_ty_23 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_BROADCAST: ::aya_bpf_cty::c_uint = 8;
-pub const BPF_F_EXCLUDE_INGRESS: ::aya_bpf_cty::c_uint = 16;
+pub const BPF_F_BROADCAST: _bindgen_ty_24 = 8;
+pub const BPF_F_EXCLUDE_INGRESS: _bindgen_ty_24 = 16;
 pub type _bindgen_ty_24 = ::aya_bpf_cty::c_uint;
 pub mod _bindgen_ty_25 {
     pub type Type = ::aya_bpf_cty::c_uint;
@@ -1574,6 +1589,8 @@ pub struct bpf_prog_info {
     pub run_cnt: __u64,
     pub recursion_misses: __u64,
     pub verified_insns: __u32,
+    pub attach_btf_obj_id: __u32,
+    pub attach_btf_id: __u32,
 }
 impl bpf_prog_info {
     #[inline]
@@ -1821,45 +1838,45 @@ impl bpf_sock_ops__bindgen_ty_4 {
         __bindgen_bitfield_unit
     }
 }
-pub const BPF_SOCK_OPS_RTO_CB_FLAG: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_SOCK_OPS_RETRANS_CB_FLAG: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_SOCK_OPS_STATE_CB_FLAG: ::aya_bpf_cty::c_uint = 4;
-pub const BPF_SOCK_OPS_RTT_CB_FLAG: ::aya_bpf_cty::c_uint = 8;
-pub const BPF_SOCK_OPS_PARSE_ALL_HDR_OPT_CB_FLAG: ::aya_bpf_cty::c_uint = 16;
-pub const BPF_SOCK_OPS_PARSE_UNKNOWN_HDR_OPT_CB_FLAG: ::aya_bpf_cty::c_uint = 32;
-pub const BPF_SOCK_OPS_WRITE_HDR_OPT_CB_FLAG: ::aya_bpf_cty::c_uint = 64;
-pub const BPF_SOCK_OPS_ALL_CB_FLAGS: ::aya_bpf_cty::c_uint = 127;
+pub const BPF_SOCK_OPS_RTO_CB_FLAG: _bindgen_ty_26 = 1;
+pub const BPF_SOCK_OPS_RETRANS_CB_FLAG: _bindgen_ty_26 = 2;
+pub const BPF_SOCK_OPS_STATE_CB_FLAG: _bindgen_ty_26 = 4;
+pub const BPF_SOCK_OPS_RTT_CB_FLAG: _bindgen_ty_26 = 8;
+pub const BPF_SOCK_OPS_PARSE_ALL_HDR_OPT_CB_FLAG: _bindgen_ty_26 = 16;
+pub const BPF_SOCK_OPS_PARSE_UNKNOWN_HDR_OPT_CB_FLAG: _bindgen_ty_26 = 32;
+pub const BPF_SOCK_OPS_WRITE_HDR_OPT_CB_FLAG: _bindgen_ty_26 = 64;
+pub const BPF_SOCK_OPS_ALL_CB_FLAGS: _bindgen_ty_26 = 127;
 pub type _bindgen_ty_26 = ::aya_bpf_cty::c_uint;
-pub const BPF_SOCK_OPS_VOID: ::aya_bpf_cty::c_uint = 0;
-pub const BPF_SOCK_OPS_TIMEOUT_INIT: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_SOCK_OPS_RWND_INIT: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_SOCK_OPS_TCP_CONNECT_CB: ::aya_bpf_cty::c_uint = 3;
-pub const BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB: ::aya_bpf_cty::c_uint = 4;
-pub const BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB: ::aya_bpf_cty::c_uint = 5;
-pub const BPF_SOCK_OPS_NEEDS_ECN: ::aya_bpf_cty::c_uint = 6;
-pub const BPF_SOCK_OPS_BASE_RTT: ::aya_bpf_cty::c_uint = 7;
-pub const BPF_SOCK_OPS_RTO_CB: ::aya_bpf_cty::c_uint = 8;
-pub const BPF_SOCK_OPS_RETRANS_CB: ::aya_bpf_cty::c_uint = 9;
-pub const BPF_SOCK_OPS_STATE_CB: ::aya_bpf_cty::c_uint = 10;
-pub const BPF_SOCK_OPS_TCP_LISTEN_CB: ::aya_bpf_cty::c_uint = 11;
-pub const BPF_SOCK_OPS_RTT_CB: ::aya_bpf_cty::c_uint = 12;
-pub const BPF_SOCK_OPS_PARSE_HDR_OPT_CB: ::aya_bpf_cty::c_uint = 13;
-pub const BPF_SOCK_OPS_HDR_OPT_LEN_CB: ::aya_bpf_cty::c_uint = 14;
-pub const BPF_SOCK_OPS_WRITE_HDR_OPT_CB: ::aya_bpf_cty::c_uint = 15;
+pub const BPF_SOCK_OPS_VOID: _bindgen_ty_27 = 0;
+pub const BPF_SOCK_OPS_TIMEOUT_INIT: _bindgen_ty_27 = 1;
+pub const BPF_SOCK_OPS_RWND_INIT: _bindgen_ty_27 = 2;
+pub const BPF_SOCK_OPS_TCP_CONNECT_CB: _bindgen_ty_27 = 3;
+pub const BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB: _bindgen_ty_27 = 4;
+pub const BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB: _bindgen_ty_27 = 5;
+pub const BPF_SOCK_OPS_NEEDS_ECN: _bindgen_ty_27 = 6;
+pub const BPF_SOCK_OPS_BASE_RTT: _bindgen_ty_27 = 7;
+pub const BPF_SOCK_OPS_RTO_CB: _bindgen_ty_27 = 8;
+pub const BPF_SOCK_OPS_RETRANS_CB: _bindgen_ty_27 = 9;
+pub const BPF_SOCK_OPS_STATE_CB: _bindgen_ty_27 = 10;
+pub const BPF_SOCK_OPS_TCP_LISTEN_CB: _bindgen_ty_27 = 11;
+pub const BPF_SOCK_OPS_RTT_CB: _bindgen_ty_27 = 12;
+pub const BPF_SOCK_OPS_PARSE_HDR_OPT_CB: _bindgen_ty_27 = 13;
+pub const BPF_SOCK_OPS_HDR_OPT_LEN_CB: _bindgen_ty_27 = 14;
+pub const BPF_SOCK_OPS_WRITE_HDR_OPT_CB: _bindgen_ty_27 = 15;
 pub type _bindgen_ty_27 = ::aya_bpf_cty::c_uint;
-pub const BPF_TCP_ESTABLISHED: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_TCP_SYN_SENT: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_TCP_SYN_RECV: ::aya_bpf_cty::c_uint = 3;
-pub const BPF_TCP_FIN_WAIT1: ::aya_bpf_cty::c_uint = 4;
-pub const BPF_TCP_FIN_WAIT2: ::aya_bpf_cty::c_uint = 5;
-pub const BPF_TCP_TIME_WAIT: ::aya_bpf_cty::c_uint = 6;
-pub const BPF_TCP_CLOSE: ::aya_bpf_cty::c_uint = 7;
-pub const BPF_TCP_CLOSE_WAIT: ::aya_bpf_cty::c_uint = 8;
-pub const BPF_TCP_LAST_ACK: ::aya_bpf_cty::c_uint = 9;
-pub const BPF_TCP_LISTEN: ::aya_bpf_cty::c_uint = 10;
-pub const BPF_TCP_CLOSING: ::aya_bpf_cty::c_uint = 11;
-pub const BPF_TCP_NEW_SYN_RECV: ::aya_bpf_cty::c_uint = 12;
-pub const BPF_TCP_MAX_STATES: ::aya_bpf_cty::c_uint = 13;
+pub const BPF_TCP_ESTABLISHED: _bindgen_ty_28 = 1;
+pub const BPF_TCP_SYN_SENT: _bindgen_ty_28 = 2;
+pub const BPF_TCP_SYN_RECV: _bindgen_ty_28 = 3;
+pub const BPF_TCP_FIN_WAIT1: _bindgen_ty_28 = 4;
+pub const BPF_TCP_FIN_WAIT2: _bindgen_ty_28 = 5;
+pub const BPF_TCP_TIME_WAIT: _bindgen_ty_28 = 6;
+pub const BPF_TCP_CLOSE: _bindgen_ty_28 = 7;
+pub const BPF_TCP_CLOSE_WAIT: _bindgen_ty_28 = 8;
+pub const BPF_TCP_LAST_ACK: _bindgen_ty_28 = 9;
+pub const BPF_TCP_LISTEN: _bindgen_ty_28 = 10;
+pub const BPF_TCP_CLOSING: _bindgen_ty_28 = 11;
+pub const BPF_TCP_NEW_SYN_RECV: _bindgen_ty_28 = 12;
+pub const BPF_TCP_MAX_STATES: _bindgen_ty_28 = 13;
 pub type _bindgen_ty_28 = ::aya_bpf_cty::c_uint;
 pub mod _bindgen_ty_30 {
     pub type Type = ::aya_bpf_cty::c_uint;
@@ -1877,12 +1894,12 @@ pub struct bpf_perf_event_value {
     pub enabled: __u64,
     pub running: __u64,
 }
-pub const BPF_DEVCG_ACC_MKNOD: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_DEVCG_ACC_READ: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_DEVCG_ACC_WRITE: ::aya_bpf_cty::c_uint = 4;
+pub const BPF_DEVCG_ACC_MKNOD: _bindgen_ty_32 = 1;
+pub const BPF_DEVCG_ACC_READ: _bindgen_ty_32 = 2;
+pub const BPF_DEVCG_ACC_WRITE: _bindgen_ty_32 = 4;
 pub type _bindgen_ty_32 = ::aya_bpf_cty::c_uint;
-pub const BPF_DEVCG_DEV_BLOCK: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_DEVCG_DEV_CHAR: ::aya_bpf_cty::c_uint = 2;
+pub const BPF_DEVCG_DEV_BLOCK: _bindgen_ty_33 = 1;
+pub const BPF_DEVCG_DEV_CHAR: _bindgen_ty_33 = 2;
 pub type _bindgen_ty_33 = ::aya_bpf_cty::c_uint;
 #[repr(C)]
 #[derive(Copy, Clone)]
@@ -1895,18 +1912,18 @@ pub struct bpf_cgroup_dev_ctx {
 pub struct bpf_raw_tracepoint_args {
     pub args: __IncompleteArrayField<__u64>,
 }
-pub const BPF_FIB_LOOKUP_DIRECT: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_FIB_LOOKUP_OUTPUT: ::aya_bpf_cty::c_uint = 2;
+pub const BPF_FIB_LOOKUP_DIRECT: _bindgen_ty_34 = 1;
+pub const BPF_FIB_LOOKUP_OUTPUT: _bindgen_ty_34 = 2;
 pub type _bindgen_ty_34 = ::aya_bpf_cty::c_uint;
-pub const BPF_FIB_LKUP_RET_SUCCESS: ::aya_bpf_cty::c_uint = 0;
-pub const BPF_FIB_LKUP_RET_BLACKHOLE: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_FIB_LKUP_RET_UNREACHABLE: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_FIB_LKUP_RET_PROHIBIT: ::aya_bpf_cty::c_uint = 3;
-pub const BPF_FIB_LKUP_RET_NOT_FWDED: ::aya_bpf_cty::c_uint = 4;
-pub const BPF_FIB_LKUP_RET_FWD_DISABLED: ::aya_bpf_cty::c_uint = 5;
-pub const BPF_FIB_LKUP_RET_UNSUPP_LWT: ::aya_bpf_cty::c_uint = 6;
-pub const BPF_FIB_LKUP_RET_NO_NEIGH: ::aya_bpf_cty::c_uint = 7;
-pub const BPF_FIB_LKUP_RET_FRAG_NEEDED: ::aya_bpf_cty::c_uint = 8;
+pub const BPF_FIB_LKUP_RET_SUCCESS: _bindgen_ty_35 = 0;
+pub const BPF_FIB_LKUP_RET_BLACKHOLE: _bindgen_ty_35 = 1;
+pub const BPF_FIB_LKUP_RET_UNREACHABLE: _bindgen_ty_35 = 2;
+pub const BPF_FIB_LKUP_RET_PROHIBIT: _bindgen_ty_35 = 3;
+pub const BPF_FIB_LKUP_RET_NOT_FWDED: _bindgen_ty_35 = 4;
+pub const BPF_FIB_LKUP_RET_FWD_DISABLED: _bindgen_ty_35 = 5;
+pub const BPF_FIB_LKUP_RET_UNSUPP_LWT: _bindgen_ty_35 = 6;
+pub const BPF_FIB_LKUP_RET_NO_NEIGH: _bindgen_ty_35 = 7;
+pub const BPF_FIB_LKUP_RET_FRAG_NEEDED: _bindgen_ty_35 = 8;
 pub type _bindgen_ty_35 = ::aya_bpf_cty::c_uint;
 #[repr(C)]
 #[derive(Copy, Clone)]
@@ -1981,9 +1998,9 @@ pub mod bpf_task_fd_type {
     pub const BPF_FD_TYPE_UPROBE: Type = 4;
     pub const BPF_FD_TYPE_URETPROBE: Type = 5;
 }
-pub const BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP: ::aya_bpf_cty::c_uint = 4;
+pub const BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG: _bindgen_ty_36 = 1;
+pub const BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL: _bindgen_ty_36 = 2;
+pub const BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP: _bindgen_ty_36 = 4;
 pub type _bindgen_ty_36 = ::aya_bpf_cty::c_uint;
 #[repr(C)]
 #[derive(Copy, Clone)]
@@ -2054,6 +2071,20 @@ impl bpf_timer {
     }
 }
 #[repr(C)]
+#[repr(align(8))]
+#[derive(Copy, Clone)]
+pub struct bpf_dynptr {
+    pub _bitfield_align_1: [u8; 0],
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 16usize]>,
+}
+impl bpf_dynptr {
+    #[inline]
+    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 16usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default();
+        __bindgen_bitfield_unit
+    }
+}
+#[repr(C)]
 #[derive(Copy, Clone)]
 pub struct bpf_sysctl {
     pub write: __u32,
@@ -2182,6 +2213,7 @@ pub mod bpf_core_relo_kind {
     pub const BPF_CORE_TYPE_SIZE: Type = 9;
     pub const BPF_CORE_ENUMVAL_EXISTS: Type = 10;
     pub const BPF_CORE_ENUMVAL_VALUE: Type = 11;
+    pub const BPF_CORE_TYPE_MATCHES: Type = 12;
 }
 #[repr(C)]
 #[derive(Copy, Clone)]
@@ -2298,3 +2330,18 @@ pub struct socket {
 pub struct file {
     _unused: [u8; 0],
 }
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct mptcp_sock {
+    _unused: [u8; 0],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct iphdr {
+    _unused: [u8; 0],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr {
+    _unused: [u8; 0],
+}

+ 125 - 0
bpf/aya-bpf-bindings/src/x86_64/helpers.rs

@@ -1981,3 +1981,128 @@ pub unsafe fn bpf_map_lookup_percpu_elem(
     ) -> *mut ::aya_bpf_cty::c_void = ::core::mem::transmute(195usize);
     fun(map, key, cpu)
 }
+pub unsafe fn bpf_skc_to_mptcp_sock(sk: *mut ::aya_bpf_cty::c_void) -> *mut mptcp_sock {
+    let fun: unsafe extern "C" fn(sk: *mut ::aya_bpf_cty::c_void) -> *mut mptcp_sock =
+        ::core::mem::transmute(196usize);
+    fun(sk)
+}
+pub unsafe fn bpf_dynptr_from_mem(
+    data: *mut ::aya_bpf_cty::c_void,
+    size: __u32,
+    flags: __u64,
+    ptr: *mut bpf_dynptr,
+) -> ::aya_bpf_cty::c_long {
+    let fun: unsafe extern "C" fn(
+        data: *mut ::aya_bpf_cty::c_void,
+        size: __u32,
+        flags: __u64,
+        ptr: *mut bpf_dynptr,
+    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(197usize);
+    fun(data, size, flags, ptr)
+}
+pub unsafe fn bpf_ringbuf_reserve_dynptr(
+    ringbuf: *mut ::aya_bpf_cty::c_void,
+    size: __u32,
+    flags: __u64,
+    ptr: *mut bpf_dynptr,
+) -> ::aya_bpf_cty::c_long {
+    let fun: unsafe extern "C" fn(
+        ringbuf: *mut ::aya_bpf_cty::c_void,
+        size: __u32,
+        flags: __u64,
+        ptr: *mut bpf_dynptr,
+    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(198usize);
+    fun(ringbuf, size, flags, ptr)
+}
+pub unsafe fn bpf_ringbuf_submit_dynptr(ptr: *mut bpf_dynptr, flags: __u64) {
+    let fun: unsafe extern "C" fn(ptr: *mut bpf_dynptr, flags: __u64) =
+        ::core::mem::transmute(199usize);
+    fun(ptr, flags)
+}
+pub unsafe fn bpf_ringbuf_discard_dynptr(ptr: *mut bpf_dynptr, flags: __u64) {
+    let fun: unsafe extern "C" fn(ptr: *mut bpf_dynptr, flags: __u64) =
+        ::core::mem::transmute(200usize);
+    fun(ptr, flags)
+}
+pub unsafe fn bpf_dynptr_read(
+    dst: *mut ::aya_bpf_cty::c_void,
+    len: __u32,
+    src: *mut bpf_dynptr,
+    offset: __u32,
+    flags: __u64,
+) -> ::aya_bpf_cty::c_long {
+    let fun: unsafe extern "C" fn(
+        dst: *mut ::aya_bpf_cty::c_void,
+        len: __u32,
+        src: *mut bpf_dynptr,
+        offset: __u32,
+        flags: __u64,
+    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(201usize);
+    fun(dst, len, src, offset, flags)
+}
+pub unsafe fn bpf_dynptr_write(
+    dst: *mut bpf_dynptr,
+    offset: __u32,
+    src: *mut ::aya_bpf_cty::c_void,
+    len: __u32,
+    flags: __u64,
+) -> ::aya_bpf_cty::c_long {
+    let fun: unsafe extern "C" fn(
+        dst: *mut bpf_dynptr,
+        offset: __u32,
+        src: *mut ::aya_bpf_cty::c_void,
+        len: __u32,
+        flags: __u64,
+    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(202usize);
+    fun(dst, offset, src, len, flags)
+}
+pub unsafe fn bpf_dynptr_data(
+    ptr: *mut bpf_dynptr,
+    offset: __u32,
+    len: __u32,
+) -> *mut ::aya_bpf_cty::c_void {
+    let fun: unsafe extern "C" fn(
+        ptr: *mut bpf_dynptr,
+        offset: __u32,
+        len: __u32,
+    ) -> *mut ::aya_bpf_cty::c_void = ::core::mem::transmute(203usize);
+    fun(ptr, offset, len)
+}
+pub unsafe fn bpf_tcp_raw_gen_syncookie_ipv4(
+    iph: *mut iphdr,
+    th: *mut tcphdr,
+    th_len: __u32,
+) -> __s64 {
+    let fun: unsafe extern "C" fn(iph: *mut iphdr, th: *mut tcphdr, th_len: __u32) -> __s64 =
+        ::core::mem::transmute(204usize);
+    fun(iph, th, th_len)
+}
+pub unsafe fn bpf_tcp_raw_gen_syncookie_ipv6(
+    iph: *mut ipv6hdr,
+    th: *mut tcphdr,
+    th_len: __u32,
+) -> __s64 {
+    let fun: unsafe extern "C" fn(iph: *mut ipv6hdr, th: *mut tcphdr, th_len: __u32) -> __s64 =
+        ::core::mem::transmute(205usize);
+    fun(iph, th, th_len)
+}
+pub unsafe fn bpf_tcp_raw_check_syncookie_ipv4(
+    iph: *mut iphdr,
+    th: *mut tcphdr,
+) -> ::aya_bpf_cty::c_long {
+    let fun: unsafe extern "C" fn(iph: *mut iphdr, th: *mut tcphdr) -> ::aya_bpf_cty::c_long =
+        ::core::mem::transmute(206usize);
+    fun(iph, th)
+}
+pub unsafe fn bpf_tcp_raw_check_syncookie_ipv6(
+    iph: *mut ipv6hdr,
+    th: *mut tcphdr,
+) -> ::aya_bpf_cty::c_long {
+    let fun: unsafe extern "C" fn(iph: *mut ipv6hdr, th: *mut tcphdr) -> ::aya_bpf_cty::c_long =
+        ::core::mem::transmute(207usize);
+    fun(iph, th)
+}
+pub unsafe fn bpf_ktime_get_tai_ns() -> __u64 {
+    let fun: unsafe extern "C" fn() -> __u64 = ::core::mem::transmute(208usize);
+    fun()
+}