aya, aya-bpf-bindings: regenerate bindings

pull/25/head
Alessandro Decina 3 years ago
parent a847d6d53b
commit 122a5306e7

@ -94,7 +94,9 @@ pub const BPF_ALU64: u32 = 7;
pub const BPF_DW: u32 = 24; pub const BPF_DW: u32 = 24;
pub const BPF_CALL: u32 = 128; pub const BPF_CALL: u32 = 128;
pub const BPF_PSEUDO_MAP_FD: u32 = 1; pub const BPF_PSEUDO_MAP_FD: u32 = 1;
pub const BPF_PSEUDO_MAP_IDX: u32 = 5;
pub const BPF_PSEUDO_MAP_VALUE: u32 = 2; pub const BPF_PSEUDO_MAP_VALUE: u32 = 2;
pub const BPF_PSEUDO_MAP_IDX_VALUE: u32 = 6;
pub const BPF_PSEUDO_BTF_ID: u32 = 3; pub const BPF_PSEUDO_BTF_ID: u32 = 3;
pub const BPF_PSEUDO_FUNC: u32 = 4; pub const BPF_PSEUDO_FUNC: u32 = 4;
pub const BPF_PSEUDO_CALL: u32 = 1; pub const BPF_PSEUDO_CALL: u32 = 1;
@ -199,6 +201,9 @@ impl bpf_insn {
__bindgen_bitfield_unit __bindgen_bitfield_unit
} }
} }
impl bpf_cmd {
pub const BPF_PROG_RUN: bpf_cmd = bpf_cmd::BPF_PROG_TEST_RUN;
}
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum bpf_cmd { pub enum bpf_cmd {
@ -307,6 +312,7 @@ pub enum bpf_prog_type {
BPF_PROG_TYPE_EXT = 28, BPF_PROG_TYPE_EXT = 28,
BPF_PROG_TYPE_LSM = 29, BPF_PROG_TYPE_LSM = 29,
BPF_PROG_TYPE_SK_LOOKUP = 30, BPF_PROG_TYPE_SK_LOOKUP = 30,
BPF_PROG_TYPE_SYSCALL = 31,
} }
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
@ -350,7 +356,9 @@ pub enum bpf_attach_type {
BPF_SK_LOOKUP = 36, BPF_SK_LOOKUP = 36,
BPF_XDP = 37, BPF_XDP = 37,
BPF_SK_SKB_VERDICT = 38, BPF_SK_SKB_VERDICT = 38,
__MAX_BPF_ATTACH_TYPE = 39, BPF_SK_REUSEPORT_SELECT = 39,
BPF_SK_REUSEPORT_SELECT_OR_MIGRATE = 40,
__MAX_BPF_ATTACH_TYPE = 41,
} }
#[repr(C)] #[repr(C)]
#[derive(Copy, Clone)] #[derive(Copy, Clone)]
@ -374,7 +382,7 @@ pub union bpf_attr {
pub enable_stats: bpf_attr__bindgen_ty_17, pub enable_stats: bpf_attr__bindgen_ty_17,
pub iter_create: bpf_attr__bindgen_ty_18, pub iter_create: bpf_attr__bindgen_ty_18,
pub prog_bind_map: bpf_attr__bindgen_ty_19, pub prog_bind_map: bpf_attr__bindgen_ty_19,
_bindgen_union_align: [u64; 15usize], _bindgen_union_align: [u64; 16usize],
} }
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy, Clone)] #[derive(Debug, Copy, Clone)]
@ -444,6 +452,9 @@ pub struct bpf_attr__bindgen_ty_4 {
pub line_info_cnt: __u32, pub line_info_cnt: __u32,
pub attach_btf_id: __u32, pub attach_btf_id: __u32,
pub __bindgen_anon_1: bpf_attr__bindgen_ty_4__bindgen_ty_1, pub __bindgen_anon_1: bpf_attr__bindgen_ty_4__bindgen_ty_1,
pub _bitfield_align_1: [u8; 0],
pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
pub fd_array: __u64,
} }
#[repr(C)] #[repr(C)]
#[derive(Copy, Clone)] #[derive(Copy, Clone)]
@ -452,6 +463,13 @@ pub union bpf_attr__bindgen_ty_4__bindgen_ty_1 {
pub attach_btf_obj_fd: __u32, pub attach_btf_obj_fd: __u32,
_bindgen_union_align: u32, _bindgen_union_align: u32,
} }
impl bpf_attr__bindgen_ty_4 {
#[inline]
pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> {
let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
__bindgen_bitfield_unit
}
}
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy, Clone)] #[derive(Debug, Copy, Clone)]
pub struct bpf_attr__bindgen_ty_5 { pub struct bpf_attr__bindgen_ty_5 {
@ -761,7 +779,7 @@ pub enum perf_sw_ids {
PERF_COUNT_SW_BPF_OUTPUT = 10, PERF_COUNT_SW_BPF_OUTPUT = 10,
PERF_COUNT_SW_MAX = 11, PERF_COUNT_SW_MAX = 11,
} }
#[repr(u32)] #[repr(u64)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum perf_event_sample_format { pub enum perf_event_sample_format {
PERF_SAMPLE_IP = 1, PERF_SAMPLE_IP = 1,
@ -785,6 +803,7 @@ pub enum perf_event_sample_format {
PERF_SAMPLE_REGS_INTR = 262144, PERF_SAMPLE_REGS_INTR = 262144,
PERF_SAMPLE_PHYS_ADDR = 524288, PERF_SAMPLE_PHYS_ADDR = 524288,
PERF_SAMPLE_MAX = 1048576, PERF_SAMPLE_MAX = 1048576,
__PERF_SAMPLE_CALLCHAIN_EARLY = 9223372036854775808,
} }
#[repr(C)] #[repr(C)]
#[derive(Copy, Clone)] #[derive(Copy, Clone)]
@ -795,7 +814,7 @@ pub struct perf_event_attr {
pub __bindgen_anon_1: perf_event_attr__bindgen_ty_1, pub __bindgen_anon_1: perf_event_attr__bindgen_ty_1,
pub sample_type: __u64, pub sample_type: __u64,
pub read_format: __u64, pub read_format: __u64,
pub _bitfield_align_1: [u64; 0], pub _bitfield_align_1: [u32; 0],
pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
pub __bindgen_anon_2: perf_event_attr__bindgen_ty_2, pub __bindgen_anon_2: perf_event_attr__bindgen_ty_2,
pub bp_type: __u32, pub bp_type: __u32,
@ -828,6 +847,8 @@ pub union perf_event_attr__bindgen_ty_2 {
#[derive(Copy, Clone)] #[derive(Copy, Clone)]
pub union perf_event_attr__bindgen_ty_3 { pub union perf_event_attr__bindgen_ty_3 {
pub bp_addr: __u64, pub bp_addr: __u64,
pub kprobe_func: __u64,
pub uprobe_path: __u64,
pub config1: __u64, pub config1: __u64,
_bindgen_union_align: u64, _bindgen_union_align: u64,
} }
@ -835,6 +856,8 @@ pub union perf_event_attr__bindgen_ty_3 {
#[derive(Copy, Clone)] #[derive(Copy, Clone)]
pub union perf_event_attr__bindgen_ty_4 { pub union perf_event_attr__bindgen_ty_4 {
pub bp_len: __u64, pub bp_len: __u64,
pub kprobe_addr: __u64,
pub probe_offset: __u64,
pub config2: __u64, pub config2: __u64,
_bindgen_union_align: u64, _bindgen_union_align: u64,
} }
@ -1148,14 +1171,47 @@ impl perf_event_attr {
} }
} }
#[inline] #[inline]
pub fn ksymbol(&self) -> __u64 {
unsafe { ::std::mem::transmute(self._bitfield_1.get(29usize, 1u8) as u64) }
}
#[inline]
pub fn set_ksymbol(&mut self, val: __u64) {
unsafe {
let val: u64 = ::std::mem::transmute(val);
self._bitfield_1.set(29usize, 1u8, val as u64)
}
}
#[inline]
pub fn bpf_event(&self) -> __u64 {
unsafe { ::std::mem::transmute(self._bitfield_1.get(30usize, 1u8) as u64) }
}
#[inline]
pub fn set_bpf_event(&mut self, val: __u64) {
unsafe {
let val: u64 = ::std::mem::transmute(val);
self._bitfield_1.set(30usize, 1u8, val as u64)
}
}
#[inline]
pub fn aux_output(&self) -> __u64 {
unsafe { ::std::mem::transmute(self._bitfield_1.get(31usize, 1u8) as u64) }
}
#[inline]
pub fn set_aux_output(&mut self, val: __u64) {
unsafe {
let val: u64 = ::std::mem::transmute(val);
self._bitfield_1.set(31usize, 1u8, val as u64)
}
}
#[inline]
pub fn __reserved_1(&self) -> __u64 { pub fn __reserved_1(&self) -> __u64 {
unsafe { ::std::mem::transmute(self._bitfield_1.get(29usize, 35u8) as u64) } unsafe { ::std::mem::transmute(self._bitfield_1.get(32usize, 32u8) as u64) }
} }
#[inline] #[inline]
pub fn set___reserved_1(&mut self, val: __u64) { pub fn set___reserved_1(&mut self, val: __u64) {
unsafe { unsafe {
let val: u64 = ::std::mem::transmute(val); let val: u64 = ::std::mem::transmute(val);
self._bitfield_1.set(29usize, 35u8, val as u64) self._bitfield_1.set(32usize, 32u8, val as u64)
} }
} }
#[inline] #[inline]
@ -1188,6 +1244,9 @@ impl perf_event_attr {
context_switch: __u64, context_switch: __u64,
write_backward: __u64, write_backward: __u64,
namespaces: __u64, namespaces: __u64,
ksymbol: __u64,
bpf_event: __u64,
aux_output: __u64,
__reserved_1: __u64, __reserved_1: __u64,
) -> __BindgenBitfieldUnit<[u8; 8usize]> { ) -> __BindgenBitfieldUnit<[u8; 8usize]> {
let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
@ -1305,7 +1364,19 @@ impl perf_event_attr {
let namespaces: u64 = unsafe { ::std::mem::transmute(namespaces) }; let namespaces: u64 = unsafe { ::std::mem::transmute(namespaces) };
namespaces as u64 namespaces as u64
}); });
__bindgen_bitfield_unit.set(29usize, 35u8, { __bindgen_bitfield_unit.set(29usize, 1u8, {
let ksymbol: u64 = unsafe { ::std::mem::transmute(ksymbol) };
ksymbol as u64
});
__bindgen_bitfield_unit.set(30usize, 1u8, {
let bpf_event: u64 = unsafe { ::std::mem::transmute(bpf_event) };
bpf_event as u64
});
__bindgen_bitfield_unit.set(31usize, 1u8, {
let aux_output: u64 = unsafe { ::std::mem::transmute(aux_output) };
aux_output as u64
});
__bindgen_bitfield_unit.set(32usize, 32u8, {
let __reserved_1: u64 = unsafe { ::std::mem::transmute(__reserved_1) }; let __reserved_1: u64 = unsafe { ::std::mem::transmute(__reserved_1) };
__reserved_1 as u64 __reserved_1 as u64
}); });
@ -1484,21 +1555,23 @@ pub enum perf_event_type {
PERF_RECORD_SWITCH = 14, PERF_RECORD_SWITCH = 14,
PERF_RECORD_SWITCH_CPU_WIDE = 15, PERF_RECORD_SWITCH_CPU_WIDE = 15,
PERF_RECORD_NAMESPACES = 16, PERF_RECORD_NAMESPACES = 16,
PERF_RECORD_MAX = 17, PERF_RECORD_KSYMBOL = 17,
} PERF_RECORD_BPF_EVENT = 18,
pub const IFLA_XDP_UNSPEC: _bindgen_ty_79 = _bindgen_ty_79::IFLA_XDP_UNSPEC; PERF_RECORD_MAX = 19,
pub const IFLA_XDP_FD: _bindgen_ty_79 = _bindgen_ty_79::IFLA_XDP_FD; }
pub const IFLA_XDP_ATTACHED: _bindgen_ty_79 = _bindgen_ty_79::IFLA_XDP_ATTACHED; pub const IFLA_XDP_UNSPEC: _bindgen_ty_80 = _bindgen_ty_80::IFLA_XDP_UNSPEC;
pub const IFLA_XDP_FLAGS: _bindgen_ty_79 = _bindgen_ty_79::IFLA_XDP_FLAGS; pub const IFLA_XDP_FD: _bindgen_ty_80 = _bindgen_ty_80::IFLA_XDP_FD;
pub const IFLA_XDP_PROG_ID: _bindgen_ty_79 = _bindgen_ty_79::IFLA_XDP_PROG_ID; pub const IFLA_XDP_ATTACHED: _bindgen_ty_80 = _bindgen_ty_80::IFLA_XDP_ATTACHED;
pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_79 = _bindgen_ty_79::IFLA_XDP_DRV_PROG_ID; pub const IFLA_XDP_FLAGS: _bindgen_ty_80 = _bindgen_ty_80::IFLA_XDP_FLAGS;
pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_79 = _bindgen_ty_79::IFLA_XDP_SKB_PROG_ID; pub const IFLA_XDP_PROG_ID: _bindgen_ty_80 = _bindgen_ty_80::IFLA_XDP_PROG_ID;
pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_79 = _bindgen_ty_79::IFLA_XDP_HW_PROG_ID; pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_80 = _bindgen_ty_80::IFLA_XDP_DRV_PROG_ID;
pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_79 = _bindgen_ty_79::IFLA_XDP_EXPECTED_FD; pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_80 = _bindgen_ty_80::IFLA_XDP_SKB_PROG_ID;
pub const __IFLA_XDP_MAX: _bindgen_ty_79 = _bindgen_ty_79::__IFLA_XDP_MAX; pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_80 = _bindgen_ty_80::IFLA_XDP_HW_PROG_ID;
pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_80 = _bindgen_ty_80::IFLA_XDP_EXPECTED_FD;
pub const __IFLA_XDP_MAX: _bindgen_ty_80 = _bindgen_ty_80::__IFLA_XDP_MAX;
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum _bindgen_ty_79 { pub enum _bindgen_ty_80 {
IFLA_XDP_UNSPEC = 0, IFLA_XDP_UNSPEC = 0,
IFLA_XDP_FD = 1, IFLA_XDP_FD = 1,
IFLA_XDP_ATTACHED = 2, IFLA_XDP_ATTACHED = 2,
@ -1531,23 +1604,25 @@ pub struct tcmsg {
pub tcm_parent: __u32, pub tcm_parent: __u32,
pub tcm_info: __u32, pub tcm_info: __u32,
} }
pub const TCA_UNSPEC: _bindgen_ty_91 = _bindgen_ty_91::TCA_UNSPEC; pub const TCA_UNSPEC: _bindgen_ty_92 = _bindgen_ty_92::TCA_UNSPEC;
pub const TCA_KIND: _bindgen_ty_91 = _bindgen_ty_91::TCA_KIND; pub const TCA_KIND: _bindgen_ty_92 = _bindgen_ty_92::TCA_KIND;
pub const TCA_OPTIONS: _bindgen_ty_91 = _bindgen_ty_91::TCA_OPTIONS; pub const TCA_OPTIONS: _bindgen_ty_92 = _bindgen_ty_92::TCA_OPTIONS;
pub const TCA_STATS: _bindgen_ty_91 = _bindgen_ty_91::TCA_STATS; pub const TCA_STATS: _bindgen_ty_92 = _bindgen_ty_92::TCA_STATS;
pub const TCA_XSTATS: _bindgen_ty_91 = _bindgen_ty_91::TCA_XSTATS; pub const TCA_XSTATS: _bindgen_ty_92 = _bindgen_ty_92::TCA_XSTATS;
pub const TCA_RATE: _bindgen_ty_91 = _bindgen_ty_91::TCA_RATE; pub const TCA_RATE: _bindgen_ty_92 = _bindgen_ty_92::TCA_RATE;
pub const TCA_FCNT: _bindgen_ty_91 = _bindgen_ty_91::TCA_FCNT; pub const TCA_FCNT: _bindgen_ty_92 = _bindgen_ty_92::TCA_FCNT;
pub const TCA_STATS2: _bindgen_ty_91 = _bindgen_ty_91::TCA_STATS2; pub const TCA_STATS2: _bindgen_ty_92 = _bindgen_ty_92::TCA_STATS2;
pub const TCA_STAB: _bindgen_ty_91 = _bindgen_ty_91::TCA_STAB; pub const TCA_STAB: _bindgen_ty_92 = _bindgen_ty_92::TCA_STAB;
pub const TCA_PAD: _bindgen_ty_91 = _bindgen_ty_91::TCA_PAD; pub const TCA_PAD: _bindgen_ty_92 = _bindgen_ty_92::TCA_PAD;
pub const TCA_DUMP_INVISIBLE: _bindgen_ty_91 = _bindgen_ty_91::TCA_DUMP_INVISIBLE; pub const TCA_DUMP_INVISIBLE: _bindgen_ty_92 = _bindgen_ty_92::TCA_DUMP_INVISIBLE;
pub const TCA_CHAIN: _bindgen_ty_91 = _bindgen_ty_91::TCA_CHAIN; pub const TCA_CHAIN: _bindgen_ty_92 = _bindgen_ty_92::TCA_CHAIN;
pub const TCA_HW_OFFLOAD: _bindgen_ty_91 = _bindgen_ty_91::TCA_HW_OFFLOAD; pub const TCA_HW_OFFLOAD: _bindgen_ty_92 = _bindgen_ty_92::TCA_HW_OFFLOAD;
pub const __TCA_MAX: _bindgen_ty_91 = _bindgen_ty_91::__TCA_MAX; pub const TCA_INGRESS_BLOCK: _bindgen_ty_92 = _bindgen_ty_92::TCA_INGRESS_BLOCK;
pub const TCA_EGRESS_BLOCK: _bindgen_ty_92 = _bindgen_ty_92::TCA_EGRESS_BLOCK;
pub const __TCA_MAX: _bindgen_ty_92 = _bindgen_ty_92::__TCA_MAX;
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum _bindgen_ty_91 { pub enum _bindgen_ty_92 {
TCA_UNSPEC = 0, TCA_UNSPEC = 0,
TCA_KIND = 1, TCA_KIND = 1,
TCA_OPTIONS = 2, TCA_OPTIONS = 2,
@ -1561,24 +1636,26 @@ pub enum _bindgen_ty_91 {
TCA_DUMP_INVISIBLE = 10, TCA_DUMP_INVISIBLE = 10,
TCA_CHAIN = 11, TCA_CHAIN = 11,
TCA_HW_OFFLOAD = 12, TCA_HW_OFFLOAD = 12,
__TCA_MAX = 13, TCA_INGRESS_BLOCK = 13,
} TCA_EGRESS_BLOCK = 14,
pub const TCA_BPF_UNSPEC: _bindgen_ty_133 = _bindgen_ty_133::TCA_BPF_UNSPEC; __TCA_MAX = 15,
pub const TCA_BPF_ACT: _bindgen_ty_133 = _bindgen_ty_133::TCA_BPF_ACT; }
pub const TCA_BPF_POLICE: _bindgen_ty_133 = _bindgen_ty_133::TCA_BPF_POLICE; pub const TCA_BPF_UNSPEC: _bindgen_ty_147 = _bindgen_ty_147::TCA_BPF_UNSPEC;
pub const TCA_BPF_CLASSID: _bindgen_ty_133 = _bindgen_ty_133::TCA_BPF_CLASSID; pub const TCA_BPF_ACT: _bindgen_ty_147 = _bindgen_ty_147::TCA_BPF_ACT;
pub const TCA_BPF_OPS_LEN: _bindgen_ty_133 = _bindgen_ty_133::TCA_BPF_OPS_LEN; pub const TCA_BPF_POLICE: _bindgen_ty_147 = _bindgen_ty_147::TCA_BPF_POLICE;
pub const TCA_BPF_OPS: _bindgen_ty_133 = _bindgen_ty_133::TCA_BPF_OPS; pub const TCA_BPF_CLASSID: _bindgen_ty_147 = _bindgen_ty_147::TCA_BPF_CLASSID;
pub const TCA_BPF_FD: _bindgen_ty_133 = _bindgen_ty_133::TCA_BPF_FD; pub const TCA_BPF_OPS_LEN: _bindgen_ty_147 = _bindgen_ty_147::TCA_BPF_OPS_LEN;
pub const TCA_BPF_NAME: _bindgen_ty_133 = _bindgen_ty_133::TCA_BPF_NAME; pub const TCA_BPF_OPS: _bindgen_ty_147 = _bindgen_ty_147::TCA_BPF_OPS;
pub const TCA_BPF_FLAGS: _bindgen_ty_133 = _bindgen_ty_133::TCA_BPF_FLAGS; pub const TCA_BPF_FD: _bindgen_ty_147 = _bindgen_ty_147::TCA_BPF_FD;
pub const TCA_BPF_FLAGS_GEN: _bindgen_ty_133 = _bindgen_ty_133::TCA_BPF_FLAGS_GEN; pub const TCA_BPF_NAME: _bindgen_ty_147 = _bindgen_ty_147::TCA_BPF_NAME;
pub const TCA_BPF_TAG: _bindgen_ty_133 = _bindgen_ty_133::TCA_BPF_TAG; pub const TCA_BPF_FLAGS: _bindgen_ty_147 = _bindgen_ty_147::TCA_BPF_FLAGS;
pub const TCA_BPF_ID: _bindgen_ty_133 = _bindgen_ty_133::TCA_BPF_ID; pub const TCA_BPF_FLAGS_GEN: _bindgen_ty_147 = _bindgen_ty_147::TCA_BPF_FLAGS_GEN;
pub const __TCA_BPF_MAX: _bindgen_ty_133 = _bindgen_ty_133::__TCA_BPF_MAX; pub const TCA_BPF_TAG: _bindgen_ty_147 = _bindgen_ty_147::TCA_BPF_TAG;
pub const TCA_BPF_ID: _bindgen_ty_147 = _bindgen_ty_147::TCA_BPF_ID;
pub const __TCA_BPF_MAX: _bindgen_ty_147 = _bindgen_ty_147::__TCA_BPF_MAX;
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum _bindgen_ty_133 { pub enum _bindgen_ty_147 {
TCA_BPF_UNSPEC = 0, TCA_BPF_UNSPEC = 0,
TCA_BPF_ACT = 1, TCA_BPF_ACT = 1,
TCA_BPF_POLICE = 2, TCA_BPF_POLICE = 2,

@ -94,7 +94,9 @@ pub const BPF_ALU64: u32 = 7;
pub const BPF_DW: u32 = 24; pub const BPF_DW: u32 = 24;
pub const BPF_CALL: u32 = 128; pub const BPF_CALL: u32 = 128;
pub const BPF_PSEUDO_MAP_FD: u32 = 1; pub const BPF_PSEUDO_MAP_FD: u32 = 1;
pub const BPF_PSEUDO_MAP_IDX: u32 = 5;
pub const BPF_PSEUDO_MAP_VALUE: u32 = 2; pub const BPF_PSEUDO_MAP_VALUE: u32 = 2;
pub const BPF_PSEUDO_MAP_IDX_VALUE: u32 = 6;
pub const BPF_PSEUDO_BTF_ID: u32 = 3; pub const BPF_PSEUDO_BTF_ID: u32 = 3;
pub const BPF_PSEUDO_FUNC: u32 = 4; pub const BPF_PSEUDO_FUNC: u32 = 4;
pub const BPF_PSEUDO_CALL: u32 = 1; pub const BPF_PSEUDO_CALL: u32 = 1;
@ -199,6 +201,9 @@ impl bpf_insn {
__bindgen_bitfield_unit __bindgen_bitfield_unit
} }
} }
impl bpf_cmd {
pub const BPF_PROG_RUN: bpf_cmd = bpf_cmd::BPF_PROG_TEST_RUN;
}
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum bpf_cmd { pub enum bpf_cmd {
@ -307,6 +312,7 @@ pub enum bpf_prog_type {
BPF_PROG_TYPE_EXT = 28, BPF_PROG_TYPE_EXT = 28,
BPF_PROG_TYPE_LSM = 29, BPF_PROG_TYPE_LSM = 29,
BPF_PROG_TYPE_SK_LOOKUP = 30, BPF_PROG_TYPE_SK_LOOKUP = 30,
BPF_PROG_TYPE_SYSCALL = 31,
} }
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
@ -350,7 +356,9 @@ pub enum bpf_attach_type {
BPF_SK_LOOKUP = 36, BPF_SK_LOOKUP = 36,
BPF_XDP = 37, BPF_XDP = 37,
BPF_SK_SKB_VERDICT = 38, BPF_SK_SKB_VERDICT = 38,
__MAX_BPF_ATTACH_TYPE = 39, BPF_SK_REUSEPORT_SELECT = 39,
BPF_SK_REUSEPORT_SELECT_OR_MIGRATE = 40,
__MAX_BPF_ATTACH_TYPE = 41,
} }
#[repr(C)] #[repr(C)]
#[derive(Copy, Clone)] #[derive(Copy, Clone)]
@ -374,7 +382,7 @@ pub union bpf_attr {
pub enable_stats: bpf_attr__bindgen_ty_17, pub enable_stats: bpf_attr__bindgen_ty_17,
pub iter_create: bpf_attr__bindgen_ty_18, pub iter_create: bpf_attr__bindgen_ty_18,
pub prog_bind_map: bpf_attr__bindgen_ty_19, pub prog_bind_map: bpf_attr__bindgen_ty_19,
_bindgen_union_align: [u64; 15usize], _bindgen_union_align: [u64; 16usize],
} }
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy, Clone)] #[derive(Debug, Copy, Clone)]
@ -444,6 +452,9 @@ pub struct bpf_attr__bindgen_ty_4 {
pub line_info_cnt: __u32, pub line_info_cnt: __u32,
pub attach_btf_id: __u32, pub attach_btf_id: __u32,
pub __bindgen_anon_1: bpf_attr__bindgen_ty_4__bindgen_ty_1, pub __bindgen_anon_1: bpf_attr__bindgen_ty_4__bindgen_ty_1,
pub _bitfield_align_1: [u8; 0],
pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
pub fd_array: __u64,
} }
#[repr(C)] #[repr(C)]
#[derive(Copy, Clone)] #[derive(Copy, Clone)]
@ -452,6 +463,13 @@ pub union bpf_attr__bindgen_ty_4__bindgen_ty_1 {
pub attach_btf_obj_fd: __u32, pub attach_btf_obj_fd: __u32,
_bindgen_union_align: u32, _bindgen_union_align: u32,
} }
impl bpf_attr__bindgen_ty_4 {
#[inline]
pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> {
let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
__bindgen_bitfield_unit
}
}
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy, Clone)] #[derive(Debug, Copy, Clone)]
pub struct bpf_attr__bindgen_ty_5 { pub struct bpf_attr__bindgen_ty_5 {
@ -761,7 +779,7 @@ pub enum perf_sw_ids {
PERF_COUNT_SW_BPF_OUTPUT = 10, PERF_COUNT_SW_BPF_OUTPUT = 10,
PERF_COUNT_SW_MAX = 11, PERF_COUNT_SW_MAX = 11,
} }
#[repr(u32)] #[repr(u64)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum perf_event_sample_format { pub enum perf_event_sample_format {
PERF_SAMPLE_IP = 1, PERF_SAMPLE_IP = 1,
@ -785,6 +803,7 @@ pub enum perf_event_sample_format {
PERF_SAMPLE_REGS_INTR = 262144, PERF_SAMPLE_REGS_INTR = 262144,
PERF_SAMPLE_PHYS_ADDR = 524288, PERF_SAMPLE_PHYS_ADDR = 524288,
PERF_SAMPLE_MAX = 1048576, PERF_SAMPLE_MAX = 1048576,
__PERF_SAMPLE_CALLCHAIN_EARLY = 9223372036854775808,
} }
#[repr(C)] #[repr(C)]
#[derive(Copy, Clone)] #[derive(Copy, Clone)]
@ -795,7 +814,7 @@ pub struct perf_event_attr {
pub __bindgen_anon_1: perf_event_attr__bindgen_ty_1, pub __bindgen_anon_1: perf_event_attr__bindgen_ty_1,
pub sample_type: __u64, pub sample_type: __u64,
pub read_format: __u64, pub read_format: __u64,
pub _bitfield_align_1: [u64; 0], pub _bitfield_align_1: [u32; 0],
pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
pub __bindgen_anon_2: perf_event_attr__bindgen_ty_2, pub __bindgen_anon_2: perf_event_attr__bindgen_ty_2,
pub bp_type: __u32, pub bp_type: __u32,
@ -828,6 +847,8 @@ pub union perf_event_attr__bindgen_ty_2 {
#[derive(Copy, Clone)] #[derive(Copy, Clone)]
pub union perf_event_attr__bindgen_ty_3 { pub union perf_event_attr__bindgen_ty_3 {
pub bp_addr: __u64, pub bp_addr: __u64,
pub kprobe_func: __u64,
pub uprobe_path: __u64,
pub config1: __u64, pub config1: __u64,
_bindgen_union_align: u64, _bindgen_union_align: u64,
} }
@ -835,6 +856,8 @@ pub union perf_event_attr__bindgen_ty_3 {
#[derive(Copy, Clone)] #[derive(Copy, Clone)]
pub union perf_event_attr__bindgen_ty_4 { pub union perf_event_attr__bindgen_ty_4 {
pub bp_len: __u64, pub bp_len: __u64,
pub kprobe_addr: __u64,
pub probe_offset: __u64,
pub config2: __u64, pub config2: __u64,
_bindgen_union_align: u64, _bindgen_union_align: u64,
} }
@ -1148,14 +1171,47 @@ impl perf_event_attr {
} }
} }
#[inline] #[inline]
pub fn ksymbol(&self) -> __u64 {
unsafe { ::std::mem::transmute(self._bitfield_1.get(29usize, 1u8) as u64) }
}
#[inline]
pub fn set_ksymbol(&mut self, val: __u64) {
unsafe {
let val: u64 = ::std::mem::transmute(val);
self._bitfield_1.set(29usize, 1u8, val as u64)
}
}
#[inline]
pub fn bpf_event(&self) -> __u64 {
unsafe { ::std::mem::transmute(self._bitfield_1.get(30usize, 1u8) as u64) }
}
#[inline]
pub fn set_bpf_event(&mut self, val: __u64) {
unsafe {
let val: u64 = ::std::mem::transmute(val);
self._bitfield_1.set(30usize, 1u8, val as u64)
}
}
#[inline]
pub fn aux_output(&self) -> __u64 {
unsafe { ::std::mem::transmute(self._bitfield_1.get(31usize, 1u8) as u64) }
}
#[inline]
pub fn set_aux_output(&mut self, val: __u64) {
unsafe {
let val: u64 = ::std::mem::transmute(val);
self._bitfield_1.set(31usize, 1u8, val as u64)
}
}
#[inline]
pub fn __reserved_1(&self) -> __u64 { pub fn __reserved_1(&self) -> __u64 {
unsafe { ::std::mem::transmute(self._bitfield_1.get(29usize, 35u8) as u64) } unsafe { ::std::mem::transmute(self._bitfield_1.get(32usize, 32u8) as u64) }
} }
#[inline] #[inline]
pub fn set___reserved_1(&mut self, val: __u64) { pub fn set___reserved_1(&mut self, val: __u64) {
unsafe { unsafe {
let val: u64 = ::std::mem::transmute(val); let val: u64 = ::std::mem::transmute(val);
self._bitfield_1.set(29usize, 35u8, val as u64) self._bitfield_1.set(32usize, 32u8, val as u64)
} }
} }
#[inline] #[inline]
@ -1188,6 +1244,9 @@ impl perf_event_attr {
context_switch: __u64, context_switch: __u64,
write_backward: __u64, write_backward: __u64,
namespaces: __u64, namespaces: __u64,
ksymbol: __u64,
bpf_event: __u64,
aux_output: __u64,
__reserved_1: __u64, __reserved_1: __u64,
) -> __BindgenBitfieldUnit<[u8; 8usize]> { ) -> __BindgenBitfieldUnit<[u8; 8usize]> {
let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
@ -1305,7 +1364,19 @@ impl perf_event_attr {
let namespaces: u64 = unsafe { ::std::mem::transmute(namespaces) }; let namespaces: u64 = unsafe { ::std::mem::transmute(namespaces) };
namespaces as u64 namespaces as u64
}); });
__bindgen_bitfield_unit.set(29usize, 35u8, { __bindgen_bitfield_unit.set(29usize, 1u8, {
let ksymbol: u64 = unsafe { ::std::mem::transmute(ksymbol) };
ksymbol as u64
});
__bindgen_bitfield_unit.set(30usize, 1u8, {
let bpf_event: u64 = unsafe { ::std::mem::transmute(bpf_event) };
bpf_event as u64
});
__bindgen_bitfield_unit.set(31usize, 1u8, {
let aux_output: u64 = unsafe { ::std::mem::transmute(aux_output) };
aux_output as u64
});
__bindgen_bitfield_unit.set(32usize, 32u8, {
let __reserved_1: u64 = unsafe { ::std::mem::transmute(__reserved_1) }; let __reserved_1: u64 = unsafe { ::std::mem::transmute(__reserved_1) };
__reserved_1 as u64 __reserved_1 as u64
}); });
@ -1484,21 +1555,23 @@ pub enum perf_event_type {
PERF_RECORD_SWITCH = 14, PERF_RECORD_SWITCH = 14,
PERF_RECORD_SWITCH_CPU_WIDE = 15, PERF_RECORD_SWITCH_CPU_WIDE = 15,
PERF_RECORD_NAMESPACES = 16, PERF_RECORD_NAMESPACES = 16,
PERF_RECORD_MAX = 17, PERF_RECORD_KSYMBOL = 17,
} PERF_RECORD_BPF_EVENT = 18,
pub const IFLA_XDP_UNSPEC: _bindgen_ty_79 = _bindgen_ty_79::IFLA_XDP_UNSPEC; PERF_RECORD_MAX = 19,
pub const IFLA_XDP_FD: _bindgen_ty_79 = _bindgen_ty_79::IFLA_XDP_FD; }
pub const IFLA_XDP_ATTACHED: _bindgen_ty_79 = _bindgen_ty_79::IFLA_XDP_ATTACHED; pub const IFLA_XDP_UNSPEC: _bindgen_ty_80 = _bindgen_ty_80::IFLA_XDP_UNSPEC;
pub const IFLA_XDP_FLAGS: _bindgen_ty_79 = _bindgen_ty_79::IFLA_XDP_FLAGS; pub const IFLA_XDP_FD: _bindgen_ty_80 = _bindgen_ty_80::IFLA_XDP_FD;
pub const IFLA_XDP_PROG_ID: _bindgen_ty_79 = _bindgen_ty_79::IFLA_XDP_PROG_ID; pub const IFLA_XDP_ATTACHED: _bindgen_ty_80 = _bindgen_ty_80::IFLA_XDP_ATTACHED;
pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_79 = _bindgen_ty_79::IFLA_XDP_DRV_PROG_ID; pub const IFLA_XDP_FLAGS: _bindgen_ty_80 = _bindgen_ty_80::IFLA_XDP_FLAGS;
pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_79 = _bindgen_ty_79::IFLA_XDP_SKB_PROG_ID; pub const IFLA_XDP_PROG_ID: _bindgen_ty_80 = _bindgen_ty_80::IFLA_XDP_PROG_ID;
pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_79 = _bindgen_ty_79::IFLA_XDP_HW_PROG_ID; pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_80 = _bindgen_ty_80::IFLA_XDP_DRV_PROG_ID;
pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_79 = _bindgen_ty_79::IFLA_XDP_EXPECTED_FD; pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_80 = _bindgen_ty_80::IFLA_XDP_SKB_PROG_ID;
pub const __IFLA_XDP_MAX: _bindgen_ty_79 = _bindgen_ty_79::__IFLA_XDP_MAX; pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_80 = _bindgen_ty_80::IFLA_XDP_HW_PROG_ID;
pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_80 = _bindgen_ty_80::IFLA_XDP_EXPECTED_FD;
pub const __IFLA_XDP_MAX: _bindgen_ty_80 = _bindgen_ty_80::__IFLA_XDP_MAX;
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum _bindgen_ty_79 { pub enum _bindgen_ty_80 {
IFLA_XDP_UNSPEC = 0, IFLA_XDP_UNSPEC = 0,
IFLA_XDP_FD = 1, IFLA_XDP_FD = 1,
IFLA_XDP_ATTACHED = 2, IFLA_XDP_ATTACHED = 2,
@ -1531,23 +1604,25 @@ pub struct tcmsg {
pub tcm_parent: __u32, pub tcm_parent: __u32,
pub tcm_info: __u32, pub tcm_info: __u32,
} }
pub const TCA_UNSPEC: _bindgen_ty_91 = _bindgen_ty_91::TCA_UNSPEC; pub const TCA_UNSPEC: _bindgen_ty_92 = _bindgen_ty_92::TCA_UNSPEC;
pub const TCA_KIND: _bindgen_ty_91 = _bindgen_ty_91::TCA_KIND; pub const TCA_KIND: _bindgen_ty_92 = _bindgen_ty_92::TCA_KIND;
pub const TCA_OPTIONS: _bindgen_ty_91 = _bindgen_ty_91::TCA_OPTIONS; pub const TCA_OPTIONS: _bindgen_ty_92 = _bindgen_ty_92::TCA_OPTIONS;
pub const TCA_STATS: _bindgen_ty_91 = _bindgen_ty_91::TCA_STATS; pub const TCA_STATS: _bindgen_ty_92 = _bindgen_ty_92::TCA_STATS;
pub const TCA_XSTATS: _bindgen_ty_91 = _bindgen_ty_91::TCA_XSTATS; pub const TCA_XSTATS: _bindgen_ty_92 = _bindgen_ty_92::TCA_XSTATS;
pub const TCA_RATE: _bindgen_ty_91 = _bindgen_ty_91::TCA_RATE; pub const TCA_RATE: _bindgen_ty_92 = _bindgen_ty_92::TCA_RATE;
pub const TCA_FCNT: _bindgen_ty_91 = _bindgen_ty_91::TCA_FCNT; pub const TCA_FCNT: _bindgen_ty_92 = _bindgen_ty_92::TCA_FCNT;
pub const TCA_STATS2: _bindgen_ty_91 = _bindgen_ty_91::TCA_STATS2; pub const TCA_STATS2: _bindgen_ty_92 = _bindgen_ty_92::TCA_STATS2;
pub const TCA_STAB: _bindgen_ty_91 = _bindgen_ty_91::TCA_STAB; pub const TCA_STAB: _bindgen_ty_92 = _bindgen_ty_92::TCA_STAB;
pub const TCA_PAD: _bindgen_ty_91 = _bindgen_ty_91::TCA_PAD; pub const TCA_PAD: _bindgen_ty_92 = _bindgen_ty_92::TCA_PAD;
pub const TCA_DUMP_INVISIBLE: _bindgen_ty_91 = _bindgen_ty_91::TCA_DUMP_INVISIBLE; pub const TCA_DUMP_INVISIBLE: _bindgen_ty_92 = _bindgen_ty_92::TCA_DUMP_INVISIBLE;
pub const TCA_CHAIN: _bindgen_ty_91 = _bindgen_ty_91::TCA_CHAIN; pub const TCA_CHAIN: _bindgen_ty_92 = _bindgen_ty_92::TCA_CHAIN;
pub const TCA_HW_OFFLOAD: _bindgen_ty_91 = _bindgen_ty_91::TCA_HW_OFFLOAD; pub const TCA_HW_OFFLOAD: _bindgen_ty_92 = _bindgen_ty_92::TCA_HW_OFFLOAD;
pub const __TCA_MAX: _bindgen_ty_91 = _bindgen_ty_91::__TCA_MAX; pub const TCA_INGRESS_BLOCK: _bindgen_ty_92 = _bindgen_ty_92::TCA_INGRESS_BLOCK;
pub const TCA_EGRESS_BLOCK: _bindgen_ty_92 = _bindgen_ty_92::TCA_EGRESS_BLOCK;
pub const __TCA_MAX: _bindgen_ty_92 = _bindgen_ty_92::__TCA_MAX;
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum _bindgen_ty_91 { pub enum _bindgen_ty_92 {
TCA_UNSPEC = 0, TCA_UNSPEC = 0,
TCA_KIND = 1, TCA_KIND = 1,
TCA_OPTIONS = 2, TCA_OPTIONS = 2,
@ -1561,24 +1636,26 @@ pub enum _bindgen_ty_91 {
TCA_DUMP_INVISIBLE = 10, TCA_DUMP_INVISIBLE = 10,
TCA_CHAIN = 11, TCA_CHAIN = 11,
TCA_HW_OFFLOAD = 12, TCA_HW_OFFLOAD = 12,
__TCA_MAX = 13, TCA_INGRESS_BLOCK = 13,
} TCA_EGRESS_BLOCK = 14,
pub const TCA_BPF_UNSPEC: _bindgen_ty_133 = _bindgen_ty_133::TCA_BPF_UNSPEC; __TCA_MAX = 15,
pub const TCA_BPF_ACT: _bindgen_ty_133 = _bindgen_ty_133::TCA_BPF_ACT; }
pub const TCA_BPF_POLICE: _bindgen_ty_133 = _bindgen_ty_133::TCA_BPF_POLICE; pub const TCA_BPF_UNSPEC: _bindgen_ty_147 = _bindgen_ty_147::TCA_BPF_UNSPEC;
pub const TCA_BPF_CLASSID: _bindgen_ty_133 = _bindgen_ty_133::TCA_BPF_CLASSID; pub const TCA_BPF_ACT: _bindgen_ty_147 = _bindgen_ty_147::TCA_BPF_ACT;
pub const TCA_BPF_OPS_LEN: _bindgen_ty_133 = _bindgen_ty_133::TCA_BPF_OPS_LEN; pub const TCA_BPF_POLICE: _bindgen_ty_147 = _bindgen_ty_147::TCA_BPF_POLICE;
pub const TCA_BPF_OPS: _bindgen_ty_133 = _bindgen_ty_133::TCA_BPF_OPS; pub const TCA_BPF_CLASSID: _bindgen_ty_147 = _bindgen_ty_147::TCA_BPF_CLASSID;
pub const TCA_BPF_FD: _bindgen_ty_133 = _bindgen_ty_133::TCA_BPF_FD; pub const TCA_BPF_OPS_LEN: _bindgen_ty_147 = _bindgen_ty_147::TCA_BPF_OPS_LEN;
pub const TCA_BPF_NAME: _bindgen_ty_133 = _bindgen_ty_133::TCA_BPF_NAME; pub const TCA_BPF_OPS: _bindgen_ty_147 = _bindgen_ty_147::TCA_BPF_OPS;
pub const TCA_BPF_FLAGS: _bindgen_ty_133 = _bindgen_ty_133::TCA_BPF_FLAGS; pub const TCA_BPF_FD: _bindgen_ty_147 = _bindgen_ty_147::TCA_BPF_FD;
pub const TCA_BPF_FLAGS_GEN: _bindgen_ty_133 = _bindgen_ty_133::TCA_BPF_FLAGS_GEN; pub const TCA_BPF_NAME: _bindgen_ty_147 = _bindgen_ty_147::TCA_BPF_NAME;
pub const TCA_BPF_TAG: _bindgen_ty_133 = _bindgen_ty_133::TCA_BPF_TAG; pub const TCA_BPF_FLAGS: _bindgen_ty_147 = _bindgen_ty_147::TCA_BPF_FLAGS;
pub const TCA_BPF_ID: _bindgen_ty_133 = _bindgen_ty_133::TCA_BPF_ID; pub const TCA_BPF_FLAGS_GEN: _bindgen_ty_147 = _bindgen_ty_147::TCA_BPF_FLAGS_GEN;
pub const __TCA_BPF_MAX: _bindgen_ty_133 = _bindgen_ty_133::__TCA_BPF_MAX; pub const TCA_BPF_TAG: _bindgen_ty_147 = _bindgen_ty_147::TCA_BPF_TAG;
pub const TCA_BPF_ID: _bindgen_ty_147 = _bindgen_ty_147::TCA_BPF_ID;
pub const __TCA_BPF_MAX: _bindgen_ty_147 = _bindgen_ty_147::__TCA_BPF_MAX;
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum _bindgen_ty_133 { pub enum _bindgen_ty_147 {
TCA_BPF_UNSPEC = 0, TCA_BPF_UNSPEC = 0,
TCA_BPF_ACT = 1, TCA_BPF_ACT = 1,
TCA_BPF_POLICE = 2, TCA_BPF_POLICE = 2,

@ -10,11 +10,9 @@ use libc::{
use crate::{ use crate::{
generated::{ generated::{
_bindgen_ty_133::{TCA_BPF_FD, TCA_BPF_FLAGS, TCA_BPF_NAME}, ifinfomsg, tcmsg, IFLA_XDP_EXPECTED_FD, IFLA_XDP_FD, IFLA_XDP_FLAGS, NLMSG_ALIGNTO,
_bindgen_ty_79::{IFLA_XDP_EXPECTED_FD, IFLA_XDP_FD, IFLA_XDP_FLAGS}, TCA_BPF_FD, TCA_BPF_FLAGS, TCA_BPF_FLAG_ACT_DIRECT, TCA_BPF_NAME, TCA_KIND, TCA_OPTIONS,
_bindgen_ty_91::{TCA_KIND, TCA_OPTIONS}, TC_H_CLSACT, TC_H_INGRESS, TC_H_MAJ_MASK, TC_H_UNSPEC, XDP_FLAGS_REPLACE,
ifinfomsg, tcmsg, NLMSG_ALIGNTO, TCA_BPF_FLAG_ACT_DIRECT, TC_H_CLSACT, TC_H_INGRESS,
TC_H_MAJ_MASK, TC_H_UNSPEC, XDP_FLAGS_REPLACE,
}, },
programs::TcAttachType, programs::TcAttachType,
util::tc_handler_make, util::tc_handler_make,

@ -117,6 +117,7 @@ pub const BPF_MAXINSNS: u32 = 4096;
pub const BPF_JMP32: u32 = 6; pub const BPF_JMP32: u32 = 6;
pub const BPF_ALU64: u32 = 7; pub const BPF_ALU64: u32 = 7;
pub const BPF_DW: u32 = 24; pub const BPF_DW: u32 = 24;
pub const BPF_ATOMIC: u32 = 192;
pub const BPF_XADD: u32 = 192; pub const BPF_XADD: u32 = 192;
pub const BPF_MOV: u32 = 176; pub const BPF_MOV: u32 = 176;
pub const BPF_ARSH: u32 = 192; pub const BPF_ARSH: u32 = 192;
@ -134,77 +135,30 @@ pub const BPF_JSLT: u32 = 192;
pub const BPF_JSLE: u32 = 208; pub const BPF_JSLE: u32 = 208;
pub const BPF_CALL: u32 = 128; pub const BPF_CALL: u32 = 128;
pub const BPF_EXIT: u32 = 144; pub const BPF_EXIT: u32 = 144;
pub const BPF_FETCH: u32 = 1;
pub const BPF_XCHG: u32 = 225;
pub const BPF_CMPXCHG: u32 = 241;
pub const BPF_F_ALLOW_OVERRIDE: u32 = 1; pub const BPF_F_ALLOW_OVERRIDE: u32 = 1;
pub const BPF_F_ALLOW_MULTI: u32 = 2; pub const BPF_F_ALLOW_MULTI: u32 = 2;
pub const BPF_F_REPLACE: u32 = 4;
pub const BPF_F_STRICT_ALIGNMENT: u32 = 1; pub const BPF_F_STRICT_ALIGNMENT: u32 = 1;
pub const BPF_F_ANY_ALIGNMENT: u32 = 2; pub const BPF_F_ANY_ALIGNMENT: u32 = 2;
pub const BPF_F_TEST_RND_HI32: u32 = 4; pub const BPF_F_TEST_RND_HI32: u32 = 4;
pub const BPF_F_TEST_STATE_FREQ: u32 = 8; pub const BPF_F_TEST_STATE_FREQ: u32 = 8;
pub const BPF_F_SLEEPABLE: u32 = 16;
pub const BPF_PSEUDO_MAP_FD: u32 = 1; pub const BPF_PSEUDO_MAP_FD: u32 = 1;
pub const BPF_PSEUDO_MAP_IDX: u32 = 5;
pub const BPF_PSEUDO_MAP_VALUE: u32 = 2; pub const BPF_PSEUDO_MAP_VALUE: u32 = 2;
pub const BPF_PSEUDO_MAP_IDX_VALUE: u32 = 6;
pub const BPF_PSEUDO_BTF_ID: u32 = 3;
pub const BPF_PSEUDO_FUNC: u32 = 4;
pub const BPF_PSEUDO_CALL: u32 = 1; pub const BPF_PSEUDO_CALL: u32 = 1;
pub const BPF_ANY: u32 = 0; pub const BPF_PSEUDO_KFUNC_CALL: u32 = 2;
pub const BPF_NOEXIST: u32 = 1;
pub const BPF_EXIST: u32 = 2;
pub const BPF_F_LOCK: u32 = 4;
pub const BPF_F_NO_PREALLOC: u32 = 1;
pub const BPF_F_NO_COMMON_LRU: u32 = 2;
pub const BPF_F_NUMA_NODE: u32 = 4;
pub const BPF_OBJ_NAME_LEN: u32 = 16;
pub const BPF_F_RDONLY: u32 = 8;
pub const BPF_F_WRONLY: u32 = 16;
pub const BPF_F_STACK_BUILD_ID: u32 = 32;
pub const BPF_F_ZERO_SEED: u32 = 64;
pub const BPF_F_RDONLY_PROG: u32 = 128;
pub const BPF_F_WRONLY_PROG: u32 = 256;
pub const BPF_F_CLONE: u32 = 512;
pub const BPF_F_QUERY_EFFECTIVE: u32 = 1; pub const BPF_F_QUERY_EFFECTIVE: u32 = 1;
pub const BPF_F_TEST_RUN_ON_CPU: u32 = 1;
pub const BPF_BUILD_ID_SIZE: u32 = 20; pub const BPF_BUILD_ID_SIZE: u32 = 20;
pub const BPF_F_RECOMPUTE_CSUM: u32 = 1; pub const BPF_OBJ_NAME_LEN: u32 = 16;
pub const BPF_F_INVALIDATE_HASH: u32 = 2;
pub const BPF_F_HDR_FIELD_MASK: u32 = 15;
pub const BPF_F_PSEUDO_HDR: u32 = 16;
pub const BPF_F_MARK_MANGLED_0: u32 = 32;
pub const BPF_F_MARK_ENFORCE: u32 = 64;
pub const BPF_F_INGRESS: u32 = 1;
pub const BPF_F_TUNINFO_IPV6: u32 = 1;
pub const BPF_F_SKIP_FIELD_MASK: u32 = 255;
pub const BPF_F_USER_STACK: u32 = 256;
pub const BPF_F_FAST_STACK_CMP: u32 = 512;
pub const BPF_F_REUSE_STACKID: u32 = 1024;
pub const BPF_F_USER_BUILD_ID: u32 = 2048;
pub const BPF_F_ZERO_CSUM_TX: u32 = 2;
pub const BPF_F_DONT_FRAGMENT: u32 = 4;
pub const BPF_F_SEQ_NUMBER: u32 = 8;
pub const BPF_F_INDEX_MASK: u32 = 4294967295;
pub const BPF_F_CURRENT_CPU: u32 = 4294967295;
pub const BPF_F_CTXLEN_MASK: u64 = 4503595332403200;
pub const BPF_F_CURRENT_NETNS: i32 = -1;
pub const BPF_F_ADJ_ROOM_FIXED_GSO: u32 = 1;
pub const BPF_ADJ_ROOM_ENCAP_L2_MASK: u32 = 255;
pub const BPF_ADJ_ROOM_ENCAP_L2_SHIFT: u32 = 56;
pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV4: u32 = 2;
pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV6: u32 = 4;
pub const BPF_F_ADJ_ROOM_ENCAP_L4_GRE: u32 = 8;
pub const BPF_F_ADJ_ROOM_ENCAP_L4_UDP: u32 = 16;
pub const BPF_F_SYSCTL_BASE_NAME: u32 = 1;
pub const BPF_SK_STORAGE_GET_F_CREATE: u32 = 1;
pub const BPF_TAG_SIZE: u32 = 8; pub const BPF_TAG_SIZE: u32 = 8;
pub const BPF_SOCK_OPS_RTO_CB_FLAG: u32 = 1;
pub const BPF_SOCK_OPS_RETRANS_CB_FLAG: u32 = 2;
pub const BPF_SOCK_OPS_STATE_CB_FLAG: u32 = 4;
pub const BPF_SOCK_OPS_RTT_CB_FLAG: u32 = 8;
pub const BPF_SOCK_OPS_ALL_CB_FLAGS: u32 = 15;
pub const BPF_DEVCG_ACC_MKNOD: u32 = 1;
pub const BPF_DEVCG_ACC_READ: u32 = 2;
pub const BPF_DEVCG_ACC_WRITE: u32 = 4;
pub const BPF_DEVCG_DEV_BLOCK: u32 = 1;
pub const BPF_DEVCG_DEV_CHAR: u32 = 2;
pub const BPF_FIB_LOOKUP_DIRECT: u32 = 1;
pub const BPF_FIB_LOOKUP_OUTPUT: u32 = 2;
pub const BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG: u32 = 1;
pub const BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL: u32 = 2;
pub const BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP: u32 = 4;
pub const SOL_SOCKET: u32 = 1; pub const SOL_SOCKET: u32 = 1;
pub const SO_DEBUG: u32 = 1; pub const SO_DEBUG: u32 = 1;
pub const SO_REUSEADDR: u32 = 2; pub const SO_REUSEADDR: u32 = 2;
@ -341,7 +295,107 @@ pub mod bpf_map_type {
pub const BPF_MAP_TYPE_STACK: Type = 23; pub const BPF_MAP_TYPE_STACK: Type = 23;
pub const BPF_MAP_TYPE_SK_STORAGE: Type = 24; pub const BPF_MAP_TYPE_SK_STORAGE: Type = 24;
pub const BPF_MAP_TYPE_DEVMAP_HASH: Type = 25; pub const BPF_MAP_TYPE_DEVMAP_HASH: Type = 25;
} pub const BPF_MAP_TYPE_STRUCT_OPS: Type = 26;
pub const BPF_MAP_TYPE_RINGBUF: Type = 27;
pub const BPF_MAP_TYPE_INODE_STORAGE: Type = 28;
pub const BPF_MAP_TYPE_TASK_STORAGE: Type = 29;
}
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 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 type _bindgen_ty_3 = ::aya_bpf_cty::c_uint;
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 type _bindgen_ty_4 = ::aya_bpf_cty::c_uint;
pub const BPF_F_HDR_FIELD_MASK: ::aya_bpf_cty::c_uint = 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 type _bindgen_ty_6 = ::aya_bpf_cty::c_uint;
pub const BPF_F_INGRESS: ::aya_bpf_cty::c_uint = 1;
pub type _bindgen_ty_7 = ::aya_bpf_cty::c_uint;
pub const BPF_F_TUNINFO_IPV6: ::aya_bpf_cty::c_uint = 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 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 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 type _bindgen_ty_11 = ::aya_bpf_cty::c_ulong;
pub const BPF_F_CURRENT_NETNS: ::aya_bpf_cty::c_int = -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 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 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 type _bindgen_ty_15 = ::aya_bpf_cty::c_uint;
pub const BPF_F_SYSCTL_BASE_NAME: ::aya_bpf_cty::c_uint = 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 type _bindgen_ty_17 = ::aya_bpf_cty::c_uint;
pub const BPF_F_GET_BRANCH_RECORDS_SIZE: ::aya_bpf_cty::c_uint = 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 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 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 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 type _bindgen_ty_22 = ::aya_bpf_cty::c_uint;
pub mod bpf_adj_room_mode {
pub type Type = ::aya_bpf_cty::c_uint;
pub const BPF_ADJ_ROOM_NET: Type = 0;
pub const BPF_ADJ_ROOM_MAC: Type = 1;
}
pub const BPF_F_BPRM_SECUREEXEC: ::aya_bpf_cty::c_uint = 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 type _bindgen_ty_24 = ::aya_bpf_cty::c_uint;
#[repr(C)] #[repr(C)]
#[derive(Copy, Clone)] #[derive(Copy, Clone)]
pub struct __sk_buff { pub struct __sk_buff {
@ -376,6 +430,7 @@ pub struct __sk_buff {
pub wire_len: __u32, pub wire_len: __u32,
pub gso_segs: __u32, pub gso_segs: __u32,
pub __bindgen_anon_2: __sk_buff__bindgen_ty_2, pub __bindgen_anon_2: __sk_buff__bindgen_ty_2,
pub gso_size: __u32,
} }
#[repr(C)] #[repr(C)]
#[derive(Copy, Clone)] #[derive(Copy, Clone)]
@ -456,6 +511,7 @@ pub struct bpf_sock {
pub dst_ip4: __u32, pub dst_ip4: __u32,
pub dst_ip6: [__u32; 4usize], pub dst_ip6: [__u32; 4usize],
pub state: __u32, pub state: __u32,
pub rx_queue_mapping: __s32,
} }
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy, Clone)] #[derive(Debug, Copy, Clone)]
@ -531,6 +587,7 @@ pub struct xdp_md {
pub data_meta: __u32, pub data_meta: __u32,
pub ingress_ifindex: __u32, pub ingress_ifindex: __u32,
pub rx_queue_index: __u32, pub rx_queue_index: __u32,
pub egress_ifindex: __u32,
} }
pub mod sk_action { pub mod sk_action {
pub type Type = ::aya_bpf_cty::c_uint; pub type Type = ::aya_bpf_cty::c_uint;
@ -550,6 +607,7 @@ pub struct sk_msg_md {
pub remote_port: __u32, pub remote_port: __u32,
pub local_port: __u32, pub local_port: __u32,
pub size: __u32, pub size: __u32,
pub __bindgen_anon_3: sk_msg_md__bindgen_ty_3,
} }
#[repr(C)] #[repr(C)]
#[derive(Copy, Clone)] #[derive(Copy, Clone)]
@ -583,6 +641,21 @@ impl sk_msg_md__bindgen_ty_2 {
} }
#[repr(C)] #[repr(C)]
#[derive(Copy, Clone)] #[derive(Copy, Clone)]
pub union sk_msg_md__bindgen_ty_3 {
pub sk: *mut bpf_sock,
pub _bitfield_align_1: [u8; 0],
pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
_bindgen_union_align: u64,
}
impl sk_msg_md__bindgen_ty_3 {
#[inline]
pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
__bindgen_bitfield_unit
}
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct sk_reuseport_md { pub struct sk_reuseport_md {
pub __bindgen_anon_1: sk_reuseport_md__bindgen_ty_1, pub __bindgen_anon_1: sk_reuseport_md__bindgen_ty_1,
pub __bindgen_anon_2: sk_reuseport_md__bindgen_ty_2, pub __bindgen_anon_2: sk_reuseport_md__bindgen_ty_2,
@ -591,6 +664,8 @@ pub struct sk_reuseport_md {
pub ip_protocol: __u32, pub ip_protocol: __u32,
pub bind_inany: __u32, pub bind_inany: __u32,
pub hash: __u32, pub hash: __u32,
pub __bindgen_anon_3: sk_reuseport_md__bindgen_ty_3,
pub __bindgen_anon_4: sk_reuseport_md__bindgen_ty_4,
} }
#[repr(C)] #[repr(C)]
#[derive(Copy, Clone)] #[derive(Copy, Clone)]
@ -623,6 +698,36 @@ impl sk_reuseport_md__bindgen_ty_2 {
} }
} }
#[repr(C)] #[repr(C)]
#[derive(Copy, Clone)]
pub union sk_reuseport_md__bindgen_ty_3 {
pub sk: *mut bpf_sock,
pub _bitfield_align_1: [u8; 0],
pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
_bindgen_union_align: u64,
}
impl sk_reuseport_md__bindgen_ty_3 {
#[inline]
pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
__bindgen_bitfield_unit
}
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union sk_reuseport_md__bindgen_ty_4 {
pub migrating_sk: *mut bpf_sock,
pub _bitfield_align_1: [u8; 0],
pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
_bindgen_union_align: u64,
}
impl sk_reuseport_md__bindgen_ty_4 {
#[inline]
pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
__bindgen_bitfield_unit
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)] #[derive(Debug, Copy, Clone)]
pub struct bpf_map_info { pub struct bpf_map_info {
pub type_: __u32, pub type_: __u32,
@ -633,21 +738,13 @@ pub struct bpf_map_info {
pub map_flags: __u32, pub map_flags: __u32,
pub name: [::aya_bpf_cty::c_char; 16usize], pub name: [::aya_bpf_cty::c_char; 16usize],
pub ifindex: __u32, pub ifindex: __u32,
pub _bitfield_align_1: [u8; 0], pub btf_vmlinux_value_type_id: __u32,
pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
pub netns_dev: __u64, pub netns_dev: __u64,
pub netns_ino: __u64, pub netns_ino: __u64,
pub btf_id: __u32, pub btf_id: __u32,
pub btf_key_type_id: __u32, pub btf_key_type_id: __u32,
pub btf_value_type_id: __u32, pub btf_value_type_id: __u32,
} }
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)] #[repr(C)]
#[derive(Copy, Clone)] #[derive(Copy, Clone)]
pub struct bpf_sock_addr { pub struct bpf_sock_addr {
@ -716,6 +813,10 @@ pub struct bpf_sock_ops {
pub bytes_received: __u64, pub bytes_received: __u64,
pub bytes_acked: __u64, pub bytes_acked: __u64,
pub __bindgen_anon_2: bpf_sock_ops__bindgen_ty_2, pub __bindgen_anon_2: bpf_sock_ops__bindgen_ty_2,
pub __bindgen_anon_3: bpf_sock_ops__bindgen_ty_3,
pub __bindgen_anon_4: bpf_sock_ops__bindgen_ty_4,
pub skb_len: __u32,
pub skb_tcp_flags: __u32,
} }
#[repr(C)] #[repr(C)]
#[derive(Copy, Clone)] #[derive(Copy, Clone)]
@ -740,6 +841,45 @@ impl bpf_sock_ops__bindgen_ty_2 {
__bindgen_bitfield_unit __bindgen_bitfield_unit
} }
} }
#[repr(C)]
#[derive(Copy, Clone)]
pub union bpf_sock_ops__bindgen_ty_3 {
pub skb_data: *mut ::aya_bpf_cty::c_void,
pub _bitfield_align_1: [u8; 0],
pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
_bindgen_union_align: u64,
}
impl bpf_sock_ops__bindgen_ty_3 {
#[inline]
pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
__bindgen_bitfield_unit
}
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union bpf_sock_ops__bindgen_ty_4 {
pub skb_data_end: *mut ::aya_bpf_cty::c_void,
pub _bitfield_align_1: [u8; 0],
pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
_bindgen_union_align: u64,
}
impl bpf_sock_ops__bindgen_ty_4 {
#[inline]
pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
__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 type _bindgen_ty_25 = ::aya_bpf_cty::c_uint;
pub const BPF_SOCK_OPS_VOID: ::aya_bpf_cty::c_uint = 0; 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_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_RWND_INIT: ::aya_bpf_cty::c_uint = 2;
@ -753,7 +893,10 @@ 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_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_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_RTT_CB: ::aya_bpf_cty::c_uint = 12;
pub type _bindgen_ty_2 = ::aya_bpf_cty::c_uint; 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 type _bindgen_ty_26 = ::aya_bpf_cty::c_uint;
pub const BPF_TCP_ESTABLISHED: ::aya_bpf_cty::c_uint = 1; 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_SENT: ::aya_bpf_cty::c_uint = 2;
pub const BPF_TCP_SYN_RECV: ::aya_bpf_cty::c_uint = 3; pub const BPF_TCP_SYN_RECV: ::aya_bpf_cty::c_uint = 3;
@ -767,7 +910,16 @@ 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_CLOSING: ::aya_bpf_cty::c_uint = 11;
pub const BPF_TCP_NEW_SYN_RECV: ::aya_bpf_cty::c_uint = 12; 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_MAX_STATES: ::aya_bpf_cty::c_uint = 13;
pub type _bindgen_ty_3 = ::aya_bpf_cty::c_uint; pub type _bindgen_ty_27 = ::aya_bpf_cty::c_uint;
pub mod _bindgen_ty_29 {
pub type Type = ::aya_bpf_cty::c_uint;
pub const BPF_LOAD_HDR_OPT_TCP_SYN: Type = 1;
}
pub mod _bindgen_ty_30 {
pub type Type = ::aya_bpf_cty::c_uint;
pub const BPF_WRITE_HDR_TCP_CURRENT_MSS: Type = 1;
pub const BPF_WRITE_HDR_TCP_SYNACK_COOKIE: Type = 2;
}
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy, Clone)] #[derive(Debug, Copy, Clone)]
pub struct bpf_perf_event_value { pub struct bpf_perf_event_value {
@ -775,6 +927,16 @@ pub struct bpf_perf_event_value {
pub enabled: __u64, pub enabled: __u64,
pub running: __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 type _bindgen_ty_31 = ::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 type _bindgen_ty_32 = ::aya_bpf_cty::c_uint;
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 type _bindgen_ty_33 = ::aya_bpf_cty::c_uint;
pub const BPF_FIB_LKUP_RET_SUCCESS: ::aya_bpf_cty::c_uint = 0; 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_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_UNREACHABLE: ::aya_bpf_cty::c_uint = 2;
@ -784,7 +946,7 @@ 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_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_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_FRAG_NEEDED: ::aya_bpf_cty::c_uint = 8;
pub type _bindgen_ty_4 = ::aya_bpf_cty::c_uint; pub type _bindgen_ty_34 = ::aya_bpf_cty::c_uint;
#[repr(C)] #[repr(C)]
#[derive(Copy, Clone)] #[derive(Copy, Clone)]
pub struct bpf_fib_lookup { pub struct bpf_fib_lookup {
@ -792,11 +954,11 @@ pub struct bpf_fib_lookup {
pub l4_protocol: __u8, pub l4_protocol: __u8,
pub sport: __be16, pub sport: __be16,
pub dport: __be16, pub dport: __be16,
pub tot_len: __u16,
pub ifindex: __u32,
pub __bindgen_anon_1: bpf_fib_lookup__bindgen_ty_1, pub __bindgen_anon_1: bpf_fib_lookup__bindgen_ty_1,
pub ifindex: __u32,
pub __bindgen_anon_2: bpf_fib_lookup__bindgen_ty_2, pub __bindgen_anon_2: bpf_fib_lookup__bindgen_ty_2,
pub __bindgen_anon_3: bpf_fib_lookup__bindgen_ty_3, pub __bindgen_anon_3: bpf_fib_lookup__bindgen_ty_3,
pub __bindgen_anon_4: bpf_fib_lookup__bindgen_ty_4,
pub h_vlan_proto: __be16, pub h_vlan_proto: __be16,
pub h_vlan_TCI: __be16, pub h_vlan_TCI: __be16,
pub smac: [__u8; 6usize], pub smac: [__u8; 6usize],
@ -805,6 +967,13 @@ pub struct bpf_fib_lookup {
#[repr(C)] #[repr(C)]
#[derive(Copy, Clone)] #[derive(Copy, Clone)]
pub union bpf_fib_lookup__bindgen_ty_1 { pub union bpf_fib_lookup__bindgen_ty_1 {
pub tot_len: __u16,
pub mtu_result: __u16,
_bindgen_union_align: u16,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union bpf_fib_lookup__bindgen_ty_2 {
pub tos: __u8, pub tos: __u8,
pub flowinfo: __be32, pub flowinfo: __be32,
pub rt_metric: __u32, pub rt_metric: __u32,
@ -812,20 +981,37 @@ pub union bpf_fib_lookup__bindgen_ty_1 {
} }
#[repr(C)] #[repr(C)]
#[derive(Copy, Clone)] #[derive(Copy, Clone)]
pub union bpf_fib_lookup__bindgen_ty_2 { pub union bpf_fib_lookup__bindgen_ty_3 {
pub ipv4_src: __be32, pub ipv4_src: __be32,
pub ipv6_src: [__u32; 4usize], pub ipv6_src: [__u32; 4usize],
_bindgen_union_align: [u32; 4usize], _bindgen_union_align: [u32; 4usize],
} }
#[repr(C)] #[repr(C)]
#[derive(Copy, Clone)] #[derive(Copy, Clone)]
pub union bpf_fib_lookup__bindgen_ty_3 { pub union bpf_fib_lookup__bindgen_ty_4 {
pub ipv4_dst: __be32, pub ipv4_dst: __be32,
pub ipv6_dst: [__u32; 4usize], pub ipv6_dst: [__u32; 4usize],
_bindgen_union_align: [u32; 4usize], _bindgen_union_align: [u32; 4usize],
} }
#[repr(C)] #[repr(C)]
#[derive(Copy, Clone)] #[derive(Copy, Clone)]
pub struct bpf_redir_neigh {
pub nh_family: __u32,
pub __bindgen_anon_1: bpf_redir_neigh__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union bpf_redir_neigh__bindgen_ty_1 {
pub ipv4_nh: __be32,
pub ipv6_nh: [__u32; 4usize],
_bindgen_union_align: [u32; 4usize],
}
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 type _bindgen_ty_35 = ::aya_bpf_cty::c_uint;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct bpf_flow_keys { pub struct bpf_flow_keys {
pub nhoff: __u16, pub nhoff: __u16,
pub thoff: __u16, pub thoff: __u16,
@ -873,6 +1059,19 @@ pub struct bpf_sysctl {
} }
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy, Clone)] #[derive(Debug, Copy, Clone)]
pub struct bpf_pidns_info {
pub pid: __u32,
pub tgid: __u32,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct btf_ptr {
pub ptr: *mut ::aya_bpf_cty::c_void,
pub type_id: __u32,
pub flags: __u32,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct pt_regs { pub struct pt_regs {
pub r15: ::aya_bpf_cty::c_ulong, pub r15: ::aya_bpf_cty::c_ulong,
pub r14: ::aya_bpf_cty::c_ulong, pub r14: ::aya_bpf_cty::c_ulong,
@ -910,16 +1109,6 @@ pub struct bpf_perf_event_data {
} }
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy, Clone)] #[derive(Debug, Copy, Clone)]
pub struct bpf_pidns_info {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct bpf_redir_neigh {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct linux_binprm { pub struct linux_binprm {
_unused: [u8; 0], _unused: [u8; 0],
} }
@ -970,11 +1159,6 @@ pub struct path {
} }
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy, Clone)] #[derive(Debug, Copy, Clone)]
pub struct btf_ptr {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct inode { pub struct inode {
_unused: [u8; 0], _unused: [u8; 0],
} }

@ -104,6 +104,9 @@ impl __sk_buff {
Some(v) Some(v)
} }
} }
pub fn gso_size(&self) -> Option<__u32> {
unsafe { crate::bpf_probe_read(&self.gso_size) }.ok()
}
} }
impl __sk_buff__bindgen_ty_1 { impl __sk_buff__bindgen_ty_1 {
pub fn flow_keys(&self) -> Option<*mut bpf_flow_keys> { pub fn flow_keys(&self) -> Option<*mut bpf_flow_keys> {
@ -224,6 +227,9 @@ impl bpf_sock {
pub fn state(&self) -> Option<__u32> { pub fn state(&self) -> Option<__u32> {
unsafe { crate::bpf_probe_read(&self.state) }.ok() unsafe { crate::bpf_probe_read(&self.state) }.ok()
} }
pub fn rx_queue_mapping(&self) -> Option<__s32> {
unsafe { crate::bpf_probe_read(&self.rx_queue_mapping) }.ok()
}
} }
impl bpf_tcp_sock { impl bpf_tcp_sock {
pub fn snd_cwnd(&self) -> Option<__u32> { pub fn snd_cwnd(&self) -> Option<__u32> {
@ -365,6 +371,9 @@ impl xdp_md {
pub fn rx_queue_index(&self) -> Option<__u32> { pub fn rx_queue_index(&self) -> Option<__u32> {
unsafe { crate::bpf_probe_read(&self.rx_queue_index) }.ok() unsafe { crate::bpf_probe_read(&self.rx_queue_index) }.ok()
} }
pub fn egress_ifindex(&self) -> Option<__u32> {
unsafe { crate::bpf_probe_read(&self.egress_ifindex) }.ok()
}
} }
impl sk_msg_md { impl sk_msg_md {
pub fn data(&self) -> Option<*mut ::aya_bpf_cty::c_void> { pub fn data(&self) -> Option<*mut ::aya_bpf_cty::c_void> {
@ -407,6 +416,14 @@ impl sk_msg_md {
pub fn size(&self) -> Option<__u32> { pub fn size(&self) -> Option<__u32> {
unsafe { crate::bpf_probe_read(&self.size) }.ok() unsafe { crate::bpf_probe_read(&self.size) }.ok()
} }
pub fn sk(&self) -> Option<*mut bpf_sock> {
let v = unsafe { crate::bpf_probe_read(&self.__bindgen_anon_3.sk) }.ok()?;
if v.is_null() {
None
} else {
Some(v)
}
}
} }
impl sk_msg_md__bindgen_ty_1 { impl sk_msg_md__bindgen_ty_1 {
pub fn data(&self) -> Option<*mut ::aya_bpf_cty::c_void> { pub fn data(&self) -> Option<*mut ::aya_bpf_cty::c_void> {
@ -428,6 +445,16 @@ impl sk_msg_md__bindgen_ty_2 {
} }
} }
} }
impl sk_msg_md__bindgen_ty_3 {
pub fn sk(&self) -> Option<*mut bpf_sock> {
let v = unsafe { crate::bpf_probe_read(&self.sk) }.ok()?;
if v.is_null() {
None
} else {
Some(v)
}
}
}
impl sk_reuseport_md { impl sk_reuseport_md {
pub fn data(&self) -> Option<*mut ::aya_bpf_cty::c_void> { pub fn data(&self) -> Option<*mut ::aya_bpf_cty::c_void> {
let v = unsafe { crate::bpf_probe_read(&self.__bindgen_anon_1.data) }.ok()?; let v = unsafe { crate::bpf_probe_read(&self.__bindgen_anon_1.data) }.ok()?;
@ -460,6 +487,22 @@ impl sk_reuseport_md {
pub fn hash(&self) -> Option<__u32> { pub fn hash(&self) -> Option<__u32> {
unsafe { crate::bpf_probe_read(&self.hash) }.ok() unsafe { crate::bpf_probe_read(&self.hash) }.ok()
} }
pub fn sk(&self) -> Option<*mut bpf_sock> {
let v = unsafe { crate::bpf_probe_read(&self.__bindgen_anon_3.sk) }.ok()?;
if v.is_null() {
None
} else {
Some(v)
}
}
pub fn migrating_sk(&self) -> Option<*mut bpf_sock> {
let v = unsafe { crate::bpf_probe_read(&self.__bindgen_anon_4.migrating_sk) }.ok()?;
if v.is_null() {
None
} else {
Some(v)
}
}
} }
impl sk_reuseport_md__bindgen_ty_1 { impl sk_reuseport_md__bindgen_ty_1 {
pub fn data(&self) -> Option<*mut ::aya_bpf_cty::c_void> { pub fn data(&self) -> Option<*mut ::aya_bpf_cty::c_void> {
@ -481,6 +524,26 @@ impl sk_reuseport_md__bindgen_ty_2 {
} }
} }
} }
impl sk_reuseport_md__bindgen_ty_3 {
pub fn sk(&self) -> Option<*mut bpf_sock> {
let v = unsafe { crate::bpf_probe_read(&self.sk) }.ok()?;
if v.is_null() {
None
} else {
Some(v)
}
}
}
impl sk_reuseport_md__bindgen_ty_4 {
pub fn migrating_sk(&self) -> Option<*mut bpf_sock> {
let v = unsafe { crate::bpf_probe_read(&self.migrating_sk) }.ok()?;
if v.is_null() {
None
} else {
Some(v)
}
}
}
impl bpf_map_info { impl bpf_map_info {
pub fn type_(&self) -> Option<__u32> { pub fn type_(&self) -> Option<__u32> {
unsafe { crate::bpf_probe_read(&self.type_) }.ok() unsafe { crate::bpf_probe_read(&self.type_) }.ok()
@ -506,6 +569,9 @@ impl bpf_map_info {
pub fn ifindex(&self) -> Option<__u32> { pub fn ifindex(&self) -> Option<__u32> {
unsafe { crate::bpf_probe_read(&self.ifindex) }.ok() unsafe { crate::bpf_probe_read(&self.ifindex) }.ok()
} }
pub fn btf_vmlinux_value_type_id(&self) -> Option<__u32> {
unsafe { crate::bpf_probe_read(&self.btf_vmlinux_value_type_id) }.ok()
}
pub fn netns_dev(&self) -> Option<__u64> { pub fn netns_dev(&self) -> Option<__u64> {
unsafe { crate::bpf_probe_read(&self.netns_dev) }.ok() unsafe { crate::bpf_probe_read(&self.netns_dev) }.ok()
} }
@ -689,6 +755,28 @@ impl bpf_sock_ops {
Some(v) Some(v)
} }
} }
pub fn skb_data(&self) -> Option<*mut ::aya_bpf_cty::c_void> {
let v = unsafe { crate::bpf_probe_read(&self.__bindgen_anon_3.skb_data) }.ok()?;
if v.is_null() {
None
} else {
Some(v)
}
}
pub fn skb_data_end(&self) -> Option<*mut ::aya_bpf_cty::c_void> {
let v = unsafe { crate::bpf_probe_read(&self.__bindgen_anon_4.skb_data_end) }.ok()?;
if v.is_null() {
None
} else {
Some(v)
}
}
pub fn skb_len(&self) -> Option<__u32> {
unsafe { crate::bpf_probe_read(&self.skb_len) }.ok()
}
pub fn skb_tcp_flags(&self) -> Option<__u32> {
unsafe { crate::bpf_probe_read(&self.skb_tcp_flags) }.ok()
}
} }
impl bpf_sock_ops__bindgen_ty_1 { impl bpf_sock_ops__bindgen_ty_1 {
pub fn args(&self) -> Option<[__u32; 4usize]> { pub fn args(&self) -> Option<[__u32; 4usize]> {
@ -711,6 +799,26 @@ impl bpf_sock_ops__bindgen_ty_2 {
} }
} }
} }
impl bpf_sock_ops__bindgen_ty_3 {
pub fn skb_data(&self) -> Option<*mut ::aya_bpf_cty::c_void> {
let v = unsafe { crate::bpf_probe_read(&self.skb_data) }.ok()?;
if v.is_null() {
None
} else {
Some(v)
}
}
}
impl bpf_sock_ops__bindgen_ty_4 {
pub fn skb_data_end(&self) -> Option<*mut ::aya_bpf_cty::c_void> {
let v = unsafe { crate::bpf_probe_read(&self.skb_data_end) }.ok()?;
if v.is_null() {
None
} else {
Some(v)
}
}
}
impl bpf_perf_event_value { impl bpf_perf_event_value {
pub fn counter(&self) -> Option<__u64> { pub fn counter(&self) -> Option<__u64> {
unsafe { crate::bpf_probe_read(&self.counter) }.ok() unsafe { crate::bpf_probe_read(&self.counter) }.ok()
@ -736,31 +844,34 @@ impl bpf_fib_lookup {
unsafe { crate::bpf_probe_read(&self.dport) }.ok() unsafe { crate::bpf_probe_read(&self.dport) }.ok()
} }
pub fn tot_len(&self) -> Option<__u16> { pub fn tot_len(&self) -> Option<__u16> {
unsafe { crate::bpf_probe_read(&self.tot_len) }.ok() unsafe { crate::bpf_probe_read(&self.__bindgen_anon_1.tot_len) }.ok()
}
pub fn mtu_result(&self) -> Option<__u16> {
unsafe { crate::bpf_probe_read(&self.__bindgen_anon_1.mtu_result) }.ok()
} }
pub fn ifindex(&self) -> Option<__u32> { pub fn ifindex(&self) -> Option<__u32> {
unsafe { crate::bpf_probe_read(&self.ifindex) }.ok() unsafe { crate::bpf_probe_read(&self.ifindex) }.ok()
} }
pub fn tos(&self) -> Option<__u8> { pub fn tos(&self) -> Option<__u8> {
unsafe { crate::bpf_probe_read(&self.__bindgen_anon_1.tos) }.ok() unsafe { crate::bpf_probe_read(&self.__bindgen_anon_2.tos) }.ok()
} }
pub fn flowinfo(&self) -> Option<__be32> { pub fn flowinfo(&self) -> Option<__be32> {
unsafe { crate::bpf_probe_read(&self.__bindgen_anon_1.flowinfo) }.ok() unsafe { crate::bpf_probe_read(&self.__bindgen_anon_2.flowinfo) }.ok()
} }
pub fn rt_metric(&self) -> Option<__u32> { pub fn rt_metric(&self) -> Option<__u32> {
unsafe { crate::bpf_probe_read(&self.__bindgen_anon_1.rt_metric) }.ok() unsafe { crate::bpf_probe_read(&self.__bindgen_anon_2.rt_metric) }.ok()
} }
pub fn ipv4_src(&self) -> Option<__be32> { pub fn ipv4_src(&self) -> Option<__be32> {
unsafe { crate::bpf_probe_read(&self.__bindgen_anon_2.ipv4_src) }.ok() unsafe { crate::bpf_probe_read(&self.__bindgen_anon_3.ipv4_src) }.ok()
} }
pub fn ipv6_src(&self) -> Option<[__u32; 4usize]> { pub fn ipv6_src(&self) -> Option<[__u32; 4usize]> {
unsafe { crate::bpf_probe_read(&self.__bindgen_anon_2.ipv6_src) }.ok() unsafe { crate::bpf_probe_read(&self.__bindgen_anon_3.ipv6_src) }.ok()
} }
pub fn ipv4_dst(&self) -> Option<__be32> { pub fn ipv4_dst(&self) -> Option<__be32> {
unsafe { crate::bpf_probe_read(&self.__bindgen_anon_3.ipv4_dst) }.ok() unsafe { crate::bpf_probe_read(&self.__bindgen_anon_4.ipv4_dst) }.ok()
} }
pub fn ipv6_dst(&self) -> Option<[__u32; 4usize]> { pub fn ipv6_dst(&self) -> Option<[__u32; 4usize]> {
unsafe { crate::bpf_probe_read(&self.__bindgen_anon_3.ipv6_dst) }.ok() unsafe { crate::bpf_probe_read(&self.__bindgen_anon_4.ipv6_dst) }.ok()
} }
pub fn h_vlan_proto(&self) -> Option<__be16> { pub fn h_vlan_proto(&self) -> Option<__be16> {
unsafe { crate::bpf_probe_read(&self.h_vlan_proto) }.ok() unsafe { crate::bpf_probe_read(&self.h_vlan_proto) }.ok()
@ -776,6 +887,14 @@ impl bpf_fib_lookup {
} }
} }
impl bpf_fib_lookup__bindgen_ty_1 { impl bpf_fib_lookup__bindgen_ty_1 {
pub fn tot_len(&self) -> Option<__u16> {
unsafe { crate::bpf_probe_read(&self.tot_len) }.ok()
}
pub fn mtu_result(&self) -> Option<__u16> {
unsafe { crate::bpf_probe_read(&self.mtu_result) }.ok()
}
}
impl bpf_fib_lookup__bindgen_ty_2 {
pub fn tos(&self) -> Option<__u8> { pub fn tos(&self) -> Option<__u8> {
unsafe { crate::bpf_probe_read(&self.tos) }.ok() unsafe { crate::bpf_probe_read(&self.tos) }.ok()
} }
@ -786,7 +905,7 @@ impl bpf_fib_lookup__bindgen_ty_1 {
unsafe { crate::bpf_probe_read(&self.rt_metric) }.ok() unsafe { crate::bpf_probe_read(&self.rt_metric) }.ok()
} }
} }
impl bpf_fib_lookup__bindgen_ty_2 { impl bpf_fib_lookup__bindgen_ty_3 {
pub fn ipv4_src(&self) -> Option<__be32> { pub fn ipv4_src(&self) -> Option<__be32> {
unsafe { crate::bpf_probe_read(&self.ipv4_src) }.ok() unsafe { crate::bpf_probe_read(&self.ipv4_src) }.ok()
} }
@ -794,7 +913,7 @@ impl bpf_fib_lookup__bindgen_ty_2 {
unsafe { crate::bpf_probe_read(&self.ipv6_src) }.ok() unsafe { crate::bpf_probe_read(&self.ipv6_src) }.ok()
} }
} }
impl bpf_fib_lookup__bindgen_ty_3 { impl bpf_fib_lookup__bindgen_ty_4 {
pub fn ipv4_dst(&self) -> Option<__be32> { pub fn ipv4_dst(&self) -> Option<__be32> {
unsafe { crate::bpf_probe_read(&self.ipv4_dst) }.ok() unsafe { crate::bpf_probe_read(&self.ipv4_dst) }.ok()
} }
@ -802,6 +921,25 @@ impl bpf_fib_lookup__bindgen_ty_3 {
unsafe { crate::bpf_probe_read(&self.ipv6_dst) }.ok() unsafe { crate::bpf_probe_read(&self.ipv6_dst) }.ok()
} }
} }
impl bpf_redir_neigh {
pub fn nh_family(&self) -> Option<__u32> {
unsafe { crate::bpf_probe_read(&self.nh_family) }.ok()
}
pub fn ipv4_nh(&self) -> Option<__be32> {
unsafe { crate::bpf_probe_read(&self.__bindgen_anon_1.ipv4_nh) }.ok()
}
pub fn ipv6_nh(&self) -> Option<[__u32; 4usize]> {
unsafe { crate::bpf_probe_read(&self.__bindgen_anon_1.ipv6_nh) }.ok()
}
}
impl bpf_redir_neigh__bindgen_ty_1 {
pub fn ipv4_nh(&self) -> Option<__be32> {
unsafe { crate::bpf_probe_read(&self.ipv4_nh) }.ok()
}
pub fn ipv6_nh(&self) -> Option<[__u32; 4usize]> {
unsafe { crate::bpf_probe_read(&self.ipv6_nh) }.ok()
}
}
impl bpf_flow_keys { impl bpf_flow_keys {
pub fn nhoff(&self) -> Option<__u16> { pub fn nhoff(&self) -> Option<__u16> {
unsafe { crate::bpf_probe_read(&self.nhoff) }.ok() unsafe { crate::bpf_probe_read(&self.nhoff) }.ok()
@ -895,6 +1033,30 @@ impl bpf_sysctl {
unsafe { crate::bpf_probe_read(&self.file_pos) }.ok() unsafe { crate::bpf_probe_read(&self.file_pos) }.ok()
} }
} }
impl bpf_pidns_info {
pub fn pid(&self) -> Option<__u32> {
unsafe { crate::bpf_probe_read(&self.pid) }.ok()
}
pub fn tgid(&self) -> Option<__u32> {
unsafe { crate::bpf_probe_read(&self.tgid) }.ok()
}
}
impl btf_ptr {
pub fn ptr(&self) -> Option<*mut ::aya_bpf_cty::c_void> {
let v = unsafe { crate::bpf_probe_read(&self.ptr) }.ok()?;
if v.is_null() {
None
} else {
Some(v)
}
}
pub fn type_id(&self) -> Option<__u32> {
unsafe { crate::bpf_probe_read(&self.type_id) }.ok()
}
pub fn flags(&self) -> Option<__u32> {
unsafe { crate::bpf_probe_read(&self.flags) }.ok()
}
}
impl pt_regs { impl pt_regs {
pub fn r15(&self) -> Option<::aya_bpf_cty::c_ulong> { pub fn r15(&self) -> Option<::aya_bpf_cty::c_ulong> {
unsafe { crate::bpf_probe_read(&self.r15) }.ok() unsafe { crate::bpf_probe_read(&self.r15) }.ok()
@ -969,8 +1131,6 @@ impl sockaddr {
} }
} }
impl bpf_perf_event_data {} impl bpf_perf_event_data {}
impl bpf_pidns_info {}
impl bpf_redir_neigh {}
impl linux_binprm {} impl linux_binprm {}
impl tcphdr {} impl tcphdr {}
impl seq_file {} impl seq_file {}
@ -981,7 +1141,6 @@ impl tcp_request_sock {}
impl udp6_sock {} impl udp6_sock {}
impl task_struct {} impl task_struct {}
impl path {} impl path {}
impl btf_ptr {}
impl inode {} impl inode {}
impl socket {} impl socket {}
impl file {} impl file {}

@ -1679,3 +1679,34 @@ pub unsafe fn bpf_snprintf(
) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(165usize); ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(165usize);
fun(str_, str_size, fmt, data, data_len) fun(str_, str_size, fmt, data, data_len)
} }
pub unsafe fn bpf_sys_bpf(
cmd: __u32,
attr: *mut ::aya_bpf_cty::c_void,
attr_size: __u32,
) -> ::aya_bpf_cty::c_long {
let fun: unsafe extern "C" fn(
cmd: __u32,
attr: *mut ::aya_bpf_cty::c_void,
attr_size: __u32,
) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(166usize);
fun(cmd, attr, attr_size)
}
pub unsafe fn bpf_btf_find_by_name_kind(
name: *mut ::aya_bpf_cty::c_char,
name_sz: ::aya_bpf_cty::c_int,
kind: __u32,
flags: ::aya_bpf_cty::c_int,
) -> ::aya_bpf_cty::c_long {
let fun: unsafe extern "C" fn(
name: *mut ::aya_bpf_cty::c_char,
name_sz: ::aya_bpf_cty::c_int,
kind: __u32,
flags: ::aya_bpf_cty::c_int,
) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(167usize);
fun(name, name_sz, kind, flags)
}
pub unsafe fn bpf_sys_close(fd: __u32) -> ::aya_bpf_cty::c_long {
let fun: unsafe extern "C" fn(fd: __u32) -> ::aya_bpf_cty::c_long =
::core::mem::transmute(168usize);
fun(fd)
}

@ -117,6 +117,7 @@ pub const BPF_MAXINSNS: u32 = 4096;
pub const BPF_JMP32: u32 = 6; pub const BPF_JMP32: u32 = 6;
pub const BPF_ALU64: u32 = 7; pub const BPF_ALU64: u32 = 7;
pub const BPF_DW: u32 = 24; pub const BPF_DW: u32 = 24;
pub const BPF_ATOMIC: u32 = 192;
pub const BPF_XADD: u32 = 192; pub const BPF_XADD: u32 = 192;
pub const BPF_MOV: u32 = 176; pub const BPF_MOV: u32 = 176;
pub const BPF_ARSH: u32 = 192; pub const BPF_ARSH: u32 = 192;
@ -134,77 +135,30 @@ pub const BPF_JSLT: u32 = 192;
pub const BPF_JSLE: u32 = 208; pub const BPF_JSLE: u32 = 208;
pub const BPF_CALL: u32 = 128; pub const BPF_CALL: u32 = 128;
pub const BPF_EXIT: u32 = 144; pub const BPF_EXIT: u32 = 144;
pub const BPF_FETCH: u32 = 1;
pub const BPF_XCHG: u32 = 225;
pub const BPF_CMPXCHG: u32 = 241;
pub const BPF_F_ALLOW_OVERRIDE: u32 = 1; pub const BPF_F_ALLOW_OVERRIDE: u32 = 1;
pub const BPF_F_ALLOW_MULTI: u32 = 2; pub const BPF_F_ALLOW_MULTI: u32 = 2;
pub const BPF_F_REPLACE: u32 = 4;
pub const BPF_F_STRICT_ALIGNMENT: u32 = 1; pub const BPF_F_STRICT_ALIGNMENT: u32 = 1;
pub const BPF_F_ANY_ALIGNMENT: u32 = 2; pub const BPF_F_ANY_ALIGNMENT: u32 = 2;
pub const BPF_F_TEST_RND_HI32: u32 = 4; pub const BPF_F_TEST_RND_HI32: u32 = 4;
pub const BPF_F_TEST_STATE_FREQ: u32 = 8; pub const BPF_F_TEST_STATE_FREQ: u32 = 8;
pub const BPF_F_SLEEPABLE: u32 = 16;
pub const BPF_PSEUDO_MAP_FD: u32 = 1; pub const BPF_PSEUDO_MAP_FD: u32 = 1;
pub const BPF_PSEUDO_MAP_IDX: u32 = 5;
pub const BPF_PSEUDO_MAP_VALUE: u32 = 2; pub const BPF_PSEUDO_MAP_VALUE: u32 = 2;
pub const BPF_PSEUDO_MAP_IDX_VALUE: u32 = 6;
pub const BPF_PSEUDO_BTF_ID: u32 = 3;
pub const BPF_PSEUDO_FUNC: u32 = 4;
pub const BPF_PSEUDO_CALL: u32 = 1; pub const BPF_PSEUDO_CALL: u32 = 1;
pub const BPF_ANY: u32 = 0; pub const BPF_PSEUDO_KFUNC_CALL: u32 = 2;
pub const BPF_NOEXIST: u32 = 1;
pub const BPF_EXIST: u32 = 2;
pub const BPF_F_LOCK: u32 = 4;
pub const BPF_F_NO_PREALLOC: u32 = 1;
pub const BPF_F_NO_COMMON_LRU: u32 = 2;
pub const BPF_F_NUMA_NODE: u32 = 4;
pub const BPF_OBJ_NAME_LEN: u32 = 16;
pub const BPF_F_RDONLY: u32 = 8;
pub const BPF_F_WRONLY: u32 = 16;
pub const BPF_F_STACK_BUILD_ID: u32 = 32;
pub const BPF_F_ZERO_SEED: u32 = 64;
pub const BPF_F_RDONLY_PROG: u32 = 128;
pub const BPF_F_WRONLY_PROG: u32 = 256;
pub const BPF_F_CLONE: u32 = 512;
pub const BPF_F_QUERY_EFFECTIVE: u32 = 1; pub const BPF_F_QUERY_EFFECTIVE: u32 = 1;
pub const BPF_F_TEST_RUN_ON_CPU: u32 = 1;
pub const BPF_BUILD_ID_SIZE: u32 = 20; pub const BPF_BUILD_ID_SIZE: u32 = 20;
pub const BPF_F_RECOMPUTE_CSUM: u32 = 1; pub const BPF_OBJ_NAME_LEN: u32 = 16;
pub const BPF_F_INVALIDATE_HASH: u32 = 2;
pub const BPF_F_HDR_FIELD_MASK: u32 = 15;
pub const BPF_F_PSEUDO_HDR: u32 = 16;
pub const BPF_F_MARK_MANGLED_0: u32 = 32;
pub const BPF_F_MARK_ENFORCE: u32 = 64;
pub const BPF_F_INGRESS: u32 = 1;
pub const BPF_F_TUNINFO_IPV6: u32 = 1;
pub const BPF_F_SKIP_FIELD_MASK: u32 = 255;
pub const BPF_F_USER_STACK: u32 = 256;
pub const BPF_F_FAST_STACK_CMP: u32 = 512;
pub const BPF_F_REUSE_STACKID: u32 = 1024;
pub const BPF_F_USER_BUILD_ID: u32 = 2048;
pub const BPF_F_ZERO_CSUM_TX: u32 = 2;
pub const BPF_F_DONT_FRAGMENT: u32 = 4;
pub const BPF_F_SEQ_NUMBER: u32 = 8;
pub const BPF_F_INDEX_MASK: u32 = 4294967295;
pub const BPF_F_CURRENT_CPU: u32 = 4294967295;
pub const BPF_F_CTXLEN_MASK: u64 = 4503595332403200;
pub const BPF_F_CURRENT_NETNS: i32 = -1;
pub const BPF_F_ADJ_ROOM_FIXED_GSO: u32 = 1;
pub const BPF_ADJ_ROOM_ENCAP_L2_MASK: u32 = 255;
pub const BPF_ADJ_ROOM_ENCAP_L2_SHIFT: u32 = 56;
pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV4: u32 = 2;
pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV6: u32 = 4;
pub const BPF_F_ADJ_ROOM_ENCAP_L4_GRE: u32 = 8;
pub const BPF_F_ADJ_ROOM_ENCAP_L4_UDP: u32 = 16;
pub const BPF_F_SYSCTL_BASE_NAME: u32 = 1;
pub const BPF_SK_STORAGE_GET_F_CREATE: u32 = 1;
pub const BPF_TAG_SIZE: u32 = 8; pub const BPF_TAG_SIZE: u32 = 8;
pub const BPF_SOCK_OPS_RTO_CB_FLAG: u32 = 1;
pub const BPF_SOCK_OPS_RETRANS_CB_FLAG: u32 = 2;
pub const BPF_SOCK_OPS_STATE_CB_FLAG: u32 = 4;
pub const BPF_SOCK_OPS_RTT_CB_FLAG: u32 = 8;
pub const BPF_SOCK_OPS_ALL_CB_FLAGS: u32 = 15;
pub const BPF_DEVCG_ACC_MKNOD: u32 = 1;
pub const BPF_DEVCG_ACC_READ: u32 = 2;
pub const BPF_DEVCG_ACC_WRITE: u32 = 4;
pub const BPF_DEVCG_DEV_BLOCK: u32 = 1;
pub const BPF_DEVCG_DEV_CHAR: u32 = 2;
pub const BPF_FIB_LOOKUP_DIRECT: u32 = 1;
pub const BPF_FIB_LOOKUP_OUTPUT: u32 = 2;
pub const BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG: u32 = 1;
pub const BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL: u32 = 2;
pub const BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP: u32 = 4;
pub const SOL_SOCKET: u32 = 1; pub const SOL_SOCKET: u32 = 1;
pub const SO_DEBUG: u32 = 1; pub const SO_DEBUG: u32 = 1;
pub const SO_REUSEADDR: u32 = 2; pub const SO_REUSEADDR: u32 = 2;
@ -341,7 +295,107 @@ pub mod bpf_map_type {
pub const BPF_MAP_TYPE_STACK: Type = 23; pub const BPF_MAP_TYPE_STACK: Type = 23;
pub const BPF_MAP_TYPE_SK_STORAGE: Type = 24; pub const BPF_MAP_TYPE_SK_STORAGE: Type = 24;
pub const BPF_MAP_TYPE_DEVMAP_HASH: Type = 25; pub const BPF_MAP_TYPE_DEVMAP_HASH: Type = 25;
} pub const BPF_MAP_TYPE_STRUCT_OPS: Type = 26;
pub const BPF_MAP_TYPE_RINGBUF: Type = 27;
pub const BPF_MAP_TYPE_INODE_STORAGE: Type = 28;
pub const BPF_MAP_TYPE_TASK_STORAGE: Type = 29;
}
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 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 type _bindgen_ty_3 = ::aya_bpf_cty::c_uint;
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 type _bindgen_ty_4 = ::aya_bpf_cty::c_uint;
pub const BPF_F_HDR_FIELD_MASK: ::aya_bpf_cty::c_uint = 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 type _bindgen_ty_6 = ::aya_bpf_cty::c_uint;
pub const BPF_F_INGRESS: ::aya_bpf_cty::c_uint = 1;
pub type _bindgen_ty_7 = ::aya_bpf_cty::c_uint;
pub const BPF_F_TUNINFO_IPV6: ::aya_bpf_cty::c_uint = 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 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 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 type _bindgen_ty_11 = ::aya_bpf_cty::c_ulong;
pub const BPF_F_CURRENT_NETNS: ::aya_bpf_cty::c_int = -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 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 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 type _bindgen_ty_15 = ::aya_bpf_cty::c_uint;
pub const BPF_F_SYSCTL_BASE_NAME: ::aya_bpf_cty::c_uint = 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 type _bindgen_ty_17 = ::aya_bpf_cty::c_uint;
pub const BPF_F_GET_BRANCH_RECORDS_SIZE: ::aya_bpf_cty::c_uint = 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 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 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 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 type _bindgen_ty_22 = ::aya_bpf_cty::c_uint;
pub mod bpf_adj_room_mode {
pub type Type = ::aya_bpf_cty::c_uint;
pub const BPF_ADJ_ROOM_NET: Type = 0;
pub const BPF_ADJ_ROOM_MAC: Type = 1;
}
pub const BPF_F_BPRM_SECUREEXEC: ::aya_bpf_cty::c_uint = 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 type _bindgen_ty_24 = ::aya_bpf_cty::c_uint;
#[repr(C)] #[repr(C)]
#[derive(Copy, Clone)] #[derive(Copy, Clone)]
pub struct __sk_buff { pub struct __sk_buff {
@ -376,6 +430,7 @@ pub struct __sk_buff {
pub wire_len: __u32, pub wire_len: __u32,
pub gso_segs: __u32, pub gso_segs: __u32,
pub __bindgen_anon_2: __sk_buff__bindgen_ty_2, pub __bindgen_anon_2: __sk_buff__bindgen_ty_2,
pub gso_size: __u32,
} }
#[repr(C)] #[repr(C)]
#[derive(Copy, Clone)] #[derive(Copy, Clone)]
@ -456,6 +511,7 @@ pub struct bpf_sock {
pub dst_ip4: __u32, pub dst_ip4: __u32,
pub dst_ip6: [__u32; 4usize], pub dst_ip6: [__u32; 4usize],
pub state: __u32, pub state: __u32,
pub rx_queue_mapping: __s32,
} }
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy, Clone)] #[derive(Debug, Copy, Clone)]
@ -531,6 +587,7 @@ pub struct xdp_md {
pub data_meta: __u32, pub data_meta: __u32,
pub ingress_ifindex: __u32, pub ingress_ifindex: __u32,
pub rx_queue_index: __u32, pub rx_queue_index: __u32,
pub egress_ifindex: __u32,
} }
pub mod sk_action { pub mod sk_action {
pub type Type = ::aya_bpf_cty::c_uint; pub type Type = ::aya_bpf_cty::c_uint;
@ -550,6 +607,7 @@ pub struct sk_msg_md {
pub remote_port: __u32, pub remote_port: __u32,
pub local_port: __u32, pub local_port: __u32,
pub size: __u32, pub size: __u32,
pub __bindgen_anon_3: sk_msg_md__bindgen_ty_3,
} }
#[repr(C)] #[repr(C)]
#[derive(Copy, Clone)] #[derive(Copy, Clone)]
@ -583,6 +641,21 @@ impl sk_msg_md__bindgen_ty_2 {
} }
#[repr(C)] #[repr(C)]
#[derive(Copy, Clone)] #[derive(Copy, Clone)]
pub union sk_msg_md__bindgen_ty_3 {
pub sk: *mut bpf_sock,
pub _bitfield_align_1: [u8; 0],
pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
_bindgen_union_align: u64,
}
impl sk_msg_md__bindgen_ty_3 {
#[inline]
pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
__bindgen_bitfield_unit
}
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct sk_reuseport_md { pub struct sk_reuseport_md {
pub __bindgen_anon_1: sk_reuseport_md__bindgen_ty_1, pub __bindgen_anon_1: sk_reuseport_md__bindgen_ty_1,
pub __bindgen_anon_2: sk_reuseport_md__bindgen_ty_2, pub __bindgen_anon_2: sk_reuseport_md__bindgen_ty_2,
@ -591,6 +664,8 @@ pub struct sk_reuseport_md {
pub ip_protocol: __u32, pub ip_protocol: __u32,
pub bind_inany: __u32, pub bind_inany: __u32,
pub hash: __u32, pub hash: __u32,
pub __bindgen_anon_3: sk_reuseport_md__bindgen_ty_3,
pub __bindgen_anon_4: sk_reuseport_md__bindgen_ty_4,
} }
#[repr(C)] #[repr(C)]
#[derive(Copy, Clone)] #[derive(Copy, Clone)]
@ -623,6 +698,36 @@ impl sk_reuseport_md__bindgen_ty_2 {
} }
} }
#[repr(C)] #[repr(C)]
#[derive(Copy, Clone)]
pub union sk_reuseport_md__bindgen_ty_3 {
pub sk: *mut bpf_sock,
pub _bitfield_align_1: [u8; 0],
pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
_bindgen_union_align: u64,
}
impl sk_reuseport_md__bindgen_ty_3 {
#[inline]
pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
__bindgen_bitfield_unit
}
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union sk_reuseport_md__bindgen_ty_4 {
pub migrating_sk: *mut bpf_sock,
pub _bitfield_align_1: [u8; 0],
pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
_bindgen_union_align: u64,
}
impl sk_reuseport_md__bindgen_ty_4 {
#[inline]
pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
__bindgen_bitfield_unit
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)] #[derive(Debug, Copy, Clone)]
pub struct bpf_map_info { pub struct bpf_map_info {
pub type_: __u32, pub type_: __u32,
@ -633,21 +738,13 @@ pub struct bpf_map_info {
pub map_flags: __u32, pub map_flags: __u32,
pub name: [::aya_bpf_cty::c_char; 16usize], pub name: [::aya_bpf_cty::c_char; 16usize],
pub ifindex: __u32, pub ifindex: __u32,
pub _bitfield_align_1: [u8; 0], pub btf_vmlinux_value_type_id: __u32,
pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
pub netns_dev: __u64, pub netns_dev: __u64,
pub netns_ino: __u64, pub netns_ino: __u64,
pub btf_id: __u32, pub btf_id: __u32,
pub btf_key_type_id: __u32, pub btf_key_type_id: __u32,
pub btf_value_type_id: __u32, pub btf_value_type_id: __u32,
} }
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)] #[repr(C)]
#[derive(Copy, Clone)] #[derive(Copy, Clone)]
pub struct bpf_sock_addr { pub struct bpf_sock_addr {
@ -716,6 +813,10 @@ pub struct bpf_sock_ops {
pub bytes_received: __u64, pub bytes_received: __u64,
pub bytes_acked: __u64, pub bytes_acked: __u64,
pub __bindgen_anon_2: bpf_sock_ops__bindgen_ty_2, pub __bindgen_anon_2: bpf_sock_ops__bindgen_ty_2,
pub __bindgen_anon_3: bpf_sock_ops__bindgen_ty_3,
pub __bindgen_anon_4: bpf_sock_ops__bindgen_ty_4,
pub skb_len: __u32,
pub skb_tcp_flags: __u32,
} }
#[repr(C)] #[repr(C)]
#[derive(Copy, Clone)] #[derive(Copy, Clone)]
@ -740,6 +841,45 @@ impl bpf_sock_ops__bindgen_ty_2 {
__bindgen_bitfield_unit __bindgen_bitfield_unit
} }
} }
#[repr(C)]
#[derive(Copy, Clone)]
pub union bpf_sock_ops__bindgen_ty_3 {
pub skb_data: *mut ::aya_bpf_cty::c_void,
pub _bitfield_align_1: [u8; 0],
pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
_bindgen_union_align: u64,
}
impl bpf_sock_ops__bindgen_ty_3 {
#[inline]
pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
__bindgen_bitfield_unit
}
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union bpf_sock_ops__bindgen_ty_4 {
pub skb_data_end: *mut ::aya_bpf_cty::c_void,
pub _bitfield_align_1: [u8; 0],
pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
_bindgen_union_align: u64,
}
impl bpf_sock_ops__bindgen_ty_4 {
#[inline]
pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
__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 type _bindgen_ty_25 = ::aya_bpf_cty::c_uint;
pub const BPF_SOCK_OPS_VOID: ::aya_bpf_cty::c_uint = 0; 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_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_RWND_INIT: ::aya_bpf_cty::c_uint = 2;
@ -753,7 +893,10 @@ 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_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_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_RTT_CB: ::aya_bpf_cty::c_uint = 12;
pub type _bindgen_ty_2 = ::aya_bpf_cty::c_uint; 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 type _bindgen_ty_26 = ::aya_bpf_cty::c_uint;
pub const BPF_TCP_ESTABLISHED: ::aya_bpf_cty::c_uint = 1; 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_SENT: ::aya_bpf_cty::c_uint = 2;
pub const BPF_TCP_SYN_RECV: ::aya_bpf_cty::c_uint = 3; pub const BPF_TCP_SYN_RECV: ::aya_bpf_cty::c_uint = 3;
@ -767,7 +910,16 @@ 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_CLOSING: ::aya_bpf_cty::c_uint = 11;
pub const BPF_TCP_NEW_SYN_RECV: ::aya_bpf_cty::c_uint = 12; 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_MAX_STATES: ::aya_bpf_cty::c_uint = 13;
pub type _bindgen_ty_3 = ::aya_bpf_cty::c_uint; pub type _bindgen_ty_27 = ::aya_bpf_cty::c_uint;
pub mod _bindgen_ty_29 {
pub type Type = ::aya_bpf_cty::c_uint;
pub const BPF_LOAD_HDR_OPT_TCP_SYN: Type = 1;
}
pub mod _bindgen_ty_30 {
pub type Type = ::aya_bpf_cty::c_uint;
pub const BPF_WRITE_HDR_TCP_CURRENT_MSS: Type = 1;
pub const BPF_WRITE_HDR_TCP_SYNACK_COOKIE: Type = 2;
}
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy, Clone)] #[derive(Debug, Copy, Clone)]
pub struct bpf_perf_event_value { pub struct bpf_perf_event_value {
@ -775,6 +927,16 @@ pub struct bpf_perf_event_value {
pub enabled: __u64, pub enabled: __u64,
pub running: __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 type _bindgen_ty_31 = ::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 type _bindgen_ty_32 = ::aya_bpf_cty::c_uint;
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 type _bindgen_ty_33 = ::aya_bpf_cty::c_uint;
pub const BPF_FIB_LKUP_RET_SUCCESS: ::aya_bpf_cty::c_uint = 0; 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_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_UNREACHABLE: ::aya_bpf_cty::c_uint = 2;
@ -784,7 +946,7 @@ 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_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_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_FRAG_NEEDED: ::aya_bpf_cty::c_uint = 8;
pub type _bindgen_ty_4 = ::aya_bpf_cty::c_uint; pub type _bindgen_ty_34 = ::aya_bpf_cty::c_uint;
#[repr(C)] #[repr(C)]
#[derive(Copy, Clone)] #[derive(Copy, Clone)]
pub struct bpf_fib_lookup { pub struct bpf_fib_lookup {
@ -792,11 +954,11 @@ pub struct bpf_fib_lookup {
pub l4_protocol: __u8, pub l4_protocol: __u8,
pub sport: __be16, pub sport: __be16,
pub dport: __be16, pub dport: __be16,
pub tot_len: __u16,
pub ifindex: __u32,
pub __bindgen_anon_1: bpf_fib_lookup__bindgen_ty_1, pub __bindgen_anon_1: bpf_fib_lookup__bindgen_ty_1,
pub ifindex: __u32,
pub __bindgen_anon_2: bpf_fib_lookup__bindgen_ty_2, pub __bindgen_anon_2: bpf_fib_lookup__bindgen_ty_2,
pub __bindgen_anon_3: bpf_fib_lookup__bindgen_ty_3, pub __bindgen_anon_3: bpf_fib_lookup__bindgen_ty_3,
pub __bindgen_anon_4: bpf_fib_lookup__bindgen_ty_4,
pub h_vlan_proto: __be16, pub h_vlan_proto: __be16,
pub h_vlan_TCI: __be16, pub h_vlan_TCI: __be16,
pub smac: [__u8; 6usize], pub smac: [__u8; 6usize],
@ -805,6 +967,13 @@ pub struct bpf_fib_lookup {
#[repr(C)] #[repr(C)]
#[derive(Copy, Clone)] #[derive(Copy, Clone)]
pub union bpf_fib_lookup__bindgen_ty_1 { pub union bpf_fib_lookup__bindgen_ty_1 {
pub tot_len: __u16,
pub mtu_result: __u16,
_bindgen_union_align: u16,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union bpf_fib_lookup__bindgen_ty_2 {
pub tos: __u8, pub tos: __u8,
pub flowinfo: __be32, pub flowinfo: __be32,
pub rt_metric: __u32, pub rt_metric: __u32,
@ -812,20 +981,37 @@ pub union bpf_fib_lookup__bindgen_ty_1 {
} }
#[repr(C)] #[repr(C)]
#[derive(Copy, Clone)] #[derive(Copy, Clone)]
pub union bpf_fib_lookup__bindgen_ty_2 { pub union bpf_fib_lookup__bindgen_ty_3 {
pub ipv4_src: __be32, pub ipv4_src: __be32,
pub ipv6_src: [__u32; 4usize], pub ipv6_src: [__u32; 4usize],
_bindgen_union_align: [u32; 4usize], _bindgen_union_align: [u32; 4usize],
} }
#[repr(C)] #[repr(C)]
#[derive(Copy, Clone)] #[derive(Copy, Clone)]
pub union bpf_fib_lookup__bindgen_ty_3 { pub union bpf_fib_lookup__bindgen_ty_4 {
pub ipv4_dst: __be32, pub ipv4_dst: __be32,
pub ipv6_dst: [__u32; 4usize], pub ipv6_dst: [__u32; 4usize],
_bindgen_union_align: [u32; 4usize], _bindgen_union_align: [u32; 4usize],
} }
#[repr(C)] #[repr(C)]
#[derive(Copy, Clone)] #[derive(Copy, Clone)]
pub struct bpf_redir_neigh {
pub nh_family: __u32,
pub __bindgen_anon_1: bpf_redir_neigh__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union bpf_redir_neigh__bindgen_ty_1 {
pub ipv4_nh: __be32,
pub ipv6_nh: [__u32; 4usize],
_bindgen_union_align: [u32; 4usize],
}
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 type _bindgen_ty_35 = ::aya_bpf_cty::c_uint;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct bpf_flow_keys { pub struct bpf_flow_keys {
pub nhoff: __u16, pub nhoff: __u16,
pub thoff: __u16, pub thoff: __u16,
@ -873,6 +1059,19 @@ pub struct bpf_sysctl {
} }
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy, Clone)] #[derive(Debug, Copy, Clone)]
pub struct bpf_pidns_info {
pub pid: __u32,
pub tgid: __u32,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct btf_ptr {
pub ptr: *mut ::aya_bpf_cty::c_void,
pub type_id: __u32,
pub flags: __u32,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct pt_regs { pub struct pt_regs {
pub r15: ::aya_bpf_cty::c_ulong, pub r15: ::aya_bpf_cty::c_ulong,
pub r14: ::aya_bpf_cty::c_ulong, pub r14: ::aya_bpf_cty::c_ulong,
@ -910,16 +1109,6 @@ pub struct bpf_perf_event_data {
} }
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy, Clone)] #[derive(Debug, Copy, Clone)]
pub struct bpf_pidns_info {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct bpf_redir_neigh {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct linux_binprm { pub struct linux_binprm {
_unused: [u8; 0], _unused: [u8; 0],
} }
@ -970,11 +1159,6 @@ pub struct path {
} }
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy, Clone)] #[derive(Debug, Copy, Clone)]
pub struct btf_ptr {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct inode { pub struct inode {
_unused: [u8; 0], _unused: [u8; 0],
} }
@ -996,6 +1180,4 @@ pub struct bpf_map_def {
pub value_size: ::aya_bpf_cty::c_uint, pub value_size: ::aya_bpf_cty::c_uint,
pub max_entries: ::aya_bpf_cty::c_uint, pub max_entries: ::aya_bpf_cty::c_uint,
pub map_flags: ::aya_bpf_cty::c_uint, pub map_flags: ::aya_bpf_cty::c_uint,
pub id: ::aya_bpf_cty::c_uint,
pub pinning: ::aya_bpf_cty::c_uint,
} }

@ -104,6 +104,9 @@ impl __sk_buff {
Some(v) Some(v)
} }
} }
pub fn gso_size(&self) -> Option<__u32> {
unsafe { crate::bpf_probe_read(&self.gso_size) }.ok()
}
} }
impl __sk_buff__bindgen_ty_1 { impl __sk_buff__bindgen_ty_1 {
pub fn flow_keys(&self) -> Option<*mut bpf_flow_keys> { pub fn flow_keys(&self) -> Option<*mut bpf_flow_keys> {
@ -224,6 +227,9 @@ impl bpf_sock {
pub fn state(&self) -> Option<__u32> { pub fn state(&self) -> Option<__u32> {
unsafe { crate::bpf_probe_read(&self.state) }.ok() unsafe { crate::bpf_probe_read(&self.state) }.ok()
} }
pub fn rx_queue_mapping(&self) -> Option<__s32> {
unsafe { crate::bpf_probe_read(&self.rx_queue_mapping) }.ok()
}
} }
impl bpf_tcp_sock { impl bpf_tcp_sock {
pub fn snd_cwnd(&self) -> Option<__u32> { pub fn snd_cwnd(&self) -> Option<__u32> {
@ -365,6 +371,9 @@ impl xdp_md {
pub fn rx_queue_index(&self) -> Option<__u32> { pub fn rx_queue_index(&self) -> Option<__u32> {
unsafe { crate::bpf_probe_read(&self.rx_queue_index) }.ok() unsafe { crate::bpf_probe_read(&self.rx_queue_index) }.ok()
} }
pub fn egress_ifindex(&self) -> Option<__u32> {
unsafe { crate::bpf_probe_read(&self.egress_ifindex) }.ok()
}
} }
impl sk_msg_md { impl sk_msg_md {
pub fn data(&self) -> Option<*mut ::aya_bpf_cty::c_void> { pub fn data(&self) -> Option<*mut ::aya_bpf_cty::c_void> {
@ -407,6 +416,14 @@ impl sk_msg_md {
pub fn size(&self) -> Option<__u32> { pub fn size(&self) -> Option<__u32> {
unsafe { crate::bpf_probe_read(&self.size) }.ok() unsafe { crate::bpf_probe_read(&self.size) }.ok()
} }
pub fn sk(&self) -> Option<*mut bpf_sock> {
let v = unsafe { crate::bpf_probe_read(&self.__bindgen_anon_3.sk) }.ok()?;
if v.is_null() {
None
} else {
Some(v)
}
}
} }
impl sk_msg_md__bindgen_ty_1 { impl sk_msg_md__bindgen_ty_1 {
pub fn data(&self) -> Option<*mut ::aya_bpf_cty::c_void> { pub fn data(&self) -> Option<*mut ::aya_bpf_cty::c_void> {
@ -428,6 +445,16 @@ impl sk_msg_md__bindgen_ty_2 {
} }
} }
} }
impl sk_msg_md__bindgen_ty_3 {
pub fn sk(&self) -> Option<*mut bpf_sock> {
let v = unsafe { crate::bpf_probe_read(&self.sk) }.ok()?;
if v.is_null() {
None
} else {
Some(v)
}
}
}
impl sk_reuseport_md { impl sk_reuseport_md {
pub fn data(&self) -> Option<*mut ::aya_bpf_cty::c_void> { pub fn data(&self) -> Option<*mut ::aya_bpf_cty::c_void> {
let v = unsafe { crate::bpf_probe_read(&self.__bindgen_anon_1.data) }.ok()?; let v = unsafe { crate::bpf_probe_read(&self.__bindgen_anon_1.data) }.ok()?;
@ -460,6 +487,22 @@ impl sk_reuseport_md {
pub fn hash(&self) -> Option<__u32> { pub fn hash(&self) -> Option<__u32> {
unsafe { crate::bpf_probe_read(&self.hash) }.ok() unsafe { crate::bpf_probe_read(&self.hash) }.ok()
} }
pub fn sk(&self) -> Option<*mut bpf_sock> {
let v = unsafe { crate::bpf_probe_read(&self.__bindgen_anon_3.sk) }.ok()?;
if v.is_null() {
None
} else {
Some(v)
}
}
pub fn migrating_sk(&self) -> Option<*mut bpf_sock> {
let v = unsafe { crate::bpf_probe_read(&self.__bindgen_anon_4.migrating_sk) }.ok()?;
if v.is_null() {
None
} else {
Some(v)
}
}
} }
impl sk_reuseport_md__bindgen_ty_1 { impl sk_reuseport_md__bindgen_ty_1 {
pub fn data(&self) -> Option<*mut ::aya_bpf_cty::c_void> { pub fn data(&self) -> Option<*mut ::aya_bpf_cty::c_void> {
@ -481,6 +524,26 @@ impl sk_reuseport_md__bindgen_ty_2 {
} }
} }
} }
impl sk_reuseport_md__bindgen_ty_3 {
pub fn sk(&self) -> Option<*mut bpf_sock> {
let v = unsafe { crate::bpf_probe_read(&self.sk) }.ok()?;
if v.is_null() {
None
} else {
Some(v)
}
}
}
impl sk_reuseport_md__bindgen_ty_4 {
pub fn migrating_sk(&self) -> Option<*mut bpf_sock> {
let v = unsafe { crate::bpf_probe_read(&self.migrating_sk) }.ok()?;
if v.is_null() {
None
} else {
Some(v)
}
}
}
impl bpf_map_info { impl bpf_map_info {
pub fn type_(&self) -> Option<__u32> { pub fn type_(&self) -> Option<__u32> {
unsafe { crate::bpf_probe_read(&self.type_) }.ok() unsafe { crate::bpf_probe_read(&self.type_) }.ok()
@ -506,6 +569,9 @@ impl bpf_map_info {
pub fn ifindex(&self) -> Option<__u32> { pub fn ifindex(&self) -> Option<__u32> {
unsafe { crate::bpf_probe_read(&self.ifindex) }.ok() unsafe { crate::bpf_probe_read(&self.ifindex) }.ok()
} }
pub fn btf_vmlinux_value_type_id(&self) -> Option<__u32> {
unsafe { crate::bpf_probe_read(&self.btf_vmlinux_value_type_id) }.ok()
}
pub fn netns_dev(&self) -> Option<__u64> { pub fn netns_dev(&self) -> Option<__u64> {
unsafe { crate::bpf_probe_read(&self.netns_dev) }.ok() unsafe { crate::bpf_probe_read(&self.netns_dev) }.ok()
} }
@ -689,6 +755,28 @@ impl bpf_sock_ops {
Some(v) Some(v)
} }
} }
pub fn skb_data(&self) -> Option<*mut ::aya_bpf_cty::c_void> {
let v = unsafe { crate::bpf_probe_read(&self.__bindgen_anon_3.skb_data) }.ok()?;
if v.is_null() {
None
} else {
Some(v)
}
}
pub fn skb_data_end(&self) -> Option<*mut ::aya_bpf_cty::c_void> {
let v = unsafe { crate::bpf_probe_read(&self.__bindgen_anon_4.skb_data_end) }.ok()?;
if v.is_null() {
None
} else {
Some(v)
}
}
pub fn skb_len(&self) -> Option<__u32> {
unsafe { crate::bpf_probe_read(&self.skb_len) }.ok()
}
pub fn skb_tcp_flags(&self) -> Option<__u32> {
unsafe { crate::bpf_probe_read(&self.skb_tcp_flags) }.ok()
}
} }
impl bpf_sock_ops__bindgen_ty_1 { impl bpf_sock_ops__bindgen_ty_1 {
pub fn args(&self) -> Option<[__u32; 4usize]> { pub fn args(&self) -> Option<[__u32; 4usize]> {
@ -711,6 +799,26 @@ impl bpf_sock_ops__bindgen_ty_2 {
} }
} }
} }
impl bpf_sock_ops__bindgen_ty_3 {
pub fn skb_data(&self) -> Option<*mut ::aya_bpf_cty::c_void> {
let v = unsafe { crate::bpf_probe_read(&self.skb_data) }.ok()?;
if v.is_null() {
None
} else {
Some(v)
}
}
}
impl bpf_sock_ops__bindgen_ty_4 {
pub fn skb_data_end(&self) -> Option<*mut ::aya_bpf_cty::c_void> {
let v = unsafe { crate::bpf_probe_read(&self.skb_data_end) }.ok()?;
if v.is_null() {
None
} else {
Some(v)
}
}
}
impl bpf_perf_event_value { impl bpf_perf_event_value {
pub fn counter(&self) -> Option<__u64> { pub fn counter(&self) -> Option<__u64> {
unsafe { crate::bpf_probe_read(&self.counter) }.ok() unsafe { crate::bpf_probe_read(&self.counter) }.ok()
@ -736,31 +844,34 @@ impl bpf_fib_lookup {
unsafe { crate::bpf_probe_read(&self.dport) }.ok() unsafe { crate::bpf_probe_read(&self.dport) }.ok()
} }
pub fn tot_len(&self) -> Option<__u16> { pub fn tot_len(&self) -> Option<__u16> {
unsafe { crate::bpf_probe_read(&self.tot_len) }.ok() unsafe { crate::bpf_probe_read(&self.__bindgen_anon_1.tot_len) }.ok()
}
pub fn mtu_result(&self) -> Option<__u16> {
unsafe { crate::bpf_probe_read(&self.__bindgen_anon_1.mtu_result) }.ok()
} }
pub fn ifindex(&self) -> Option<__u32> { pub fn ifindex(&self) -> Option<__u32> {
unsafe { crate::bpf_probe_read(&self.ifindex) }.ok() unsafe { crate::bpf_probe_read(&self.ifindex) }.ok()
} }
pub fn tos(&self) -> Option<__u8> { pub fn tos(&self) -> Option<__u8> {
unsafe { crate::bpf_probe_read(&self.__bindgen_anon_1.tos) }.ok() unsafe { crate::bpf_probe_read(&self.__bindgen_anon_2.tos) }.ok()
} }
pub fn flowinfo(&self) -> Option<__be32> { pub fn flowinfo(&self) -> Option<__be32> {
unsafe { crate::bpf_probe_read(&self.__bindgen_anon_1.flowinfo) }.ok() unsafe { crate::bpf_probe_read(&self.__bindgen_anon_2.flowinfo) }.ok()
} }
pub fn rt_metric(&self) -> Option<__u32> { pub fn rt_metric(&self) -> Option<__u32> {
unsafe { crate::bpf_probe_read(&self.__bindgen_anon_1.rt_metric) }.ok() unsafe { crate::bpf_probe_read(&self.__bindgen_anon_2.rt_metric) }.ok()
} }
pub fn ipv4_src(&self) -> Option<__be32> { pub fn ipv4_src(&self) -> Option<__be32> {
unsafe { crate::bpf_probe_read(&self.__bindgen_anon_2.ipv4_src) }.ok() unsafe { crate::bpf_probe_read(&self.__bindgen_anon_3.ipv4_src) }.ok()
} }
pub fn ipv6_src(&self) -> Option<[__u32; 4usize]> { pub fn ipv6_src(&self) -> Option<[__u32; 4usize]> {
unsafe { crate::bpf_probe_read(&self.__bindgen_anon_2.ipv6_src) }.ok() unsafe { crate::bpf_probe_read(&self.__bindgen_anon_3.ipv6_src) }.ok()
} }
pub fn ipv4_dst(&self) -> Option<__be32> { pub fn ipv4_dst(&self) -> Option<__be32> {
unsafe { crate::bpf_probe_read(&self.__bindgen_anon_3.ipv4_dst) }.ok() unsafe { crate::bpf_probe_read(&self.__bindgen_anon_4.ipv4_dst) }.ok()
} }
pub fn ipv6_dst(&self) -> Option<[__u32; 4usize]> { pub fn ipv6_dst(&self) -> Option<[__u32; 4usize]> {
unsafe { crate::bpf_probe_read(&self.__bindgen_anon_3.ipv6_dst) }.ok() unsafe { crate::bpf_probe_read(&self.__bindgen_anon_4.ipv6_dst) }.ok()
} }
pub fn h_vlan_proto(&self) -> Option<__be16> { pub fn h_vlan_proto(&self) -> Option<__be16> {
unsafe { crate::bpf_probe_read(&self.h_vlan_proto) }.ok() unsafe { crate::bpf_probe_read(&self.h_vlan_proto) }.ok()
@ -776,6 +887,14 @@ impl bpf_fib_lookup {
} }
} }
impl bpf_fib_lookup__bindgen_ty_1 { impl bpf_fib_lookup__bindgen_ty_1 {
pub fn tot_len(&self) -> Option<__u16> {
unsafe { crate::bpf_probe_read(&self.tot_len) }.ok()
}
pub fn mtu_result(&self) -> Option<__u16> {
unsafe { crate::bpf_probe_read(&self.mtu_result) }.ok()
}
}
impl bpf_fib_lookup__bindgen_ty_2 {
pub fn tos(&self) -> Option<__u8> { pub fn tos(&self) -> Option<__u8> {
unsafe { crate::bpf_probe_read(&self.tos) }.ok() unsafe { crate::bpf_probe_read(&self.tos) }.ok()
} }
@ -786,7 +905,7 @@ impl bpf_fib_lookup__bindgen_ty_1 {
unsafe { crate::bpf_probe_read(&self.rt_metric) }.ok() unsafe { crate::bpf_probe_read(&self.rt_metric) }.ok()
} }
} }
impl bpf_fib_lookup__bindgen_ty_2 { impl bpf_fib_lookup__bindgen_ty_3 {
pub fn ipv4_src(&self) -> Option<__be32> { pub fn ipv4_src(&self) -> Option<__be32> {
unsafe { crate::bpf_probe_read(&self.ipv4_src) }.ok() unsafe { crate::bpf_probe_read(&self.ipv4_src) }.ok()
} }
@ -794,7 +913,7 @@ impl bpf_fib_lookup__bindgen_ty_2 {
unsafe { crate::bpf_probe_read(&self.ipv6_src) }.ok() unsafe { crate::bpf_probe_read(&self.ipv6_src) }.ok()
} }
} }
impl bpf_fib_lookup__bindgen_ty_3 { impl bpf_fib_lookup__bindgen_ty_4 {
pub fn ipv4_dst(&self) -> Option<__be32> { pub fn ipv4_dst(&self) -> Option<__be32> {
unsafe { crate::bpf_probe_read(&self.ipv4_dst) }.ok() unsafe { crate::bpf_probe_read(&self.ipv4_dst) }.ok()
} }
@ -802,6 +921,25 @@ impl bpf_fib_lookup__bindgen_ty_3 {
unsafe { crate::bpf_probe_read(&self.ipv6_dst) }.ok() unsafe { crate::bpf_probe_read(&self.ipv6_dst) }.ok()
} }
} }
impl bpf_redir_neigh {
pub fn nh_family(&self) -> Option<__u32> {
unsafe { crate::bpf_probe_read(&self.nh_family) }.ok()
}
pub fn ipv4_nh(&self) -> Option<__be32> {
unsafe { crate::bpf_probe_read(&self.__bindgen_anon_1.ipv4_nh) }.ok()
}
pub fn ipv6_nh(&self) -> Option<[__u32; 4usize]> {
unsafe { crate::bpf_probe_read(&self.__bindgen_anon_1.ipv6_nh) }.ok()
}
}
impl bpf_redir_neigh__bindgen_ty_1 {
pub fn ipv4_nh(&self) -> Option<__be32> {
unsafe { crate::bpf_probe_read(&self.ipv4_nh) }.ok()
}
pub fn ipv6_nh(&self) -> Option<[__u32; 4usize]> {
unsafe { crate::bpf_probe_read(&self.ipv6_nh) }.ok()
}
}
impl bpf_flow_keys { impl bpf_flow_keys {
pub fn nhoff(&self) -> Option<__u16> { pub fn nhoff(&self) -> Option<__u16> {
unsafe { crate::bpf_probe_read(&self.nhoff) }.ok() unsafe { crate::bpf_probe_read(&self.nhoff) }.ok()
@ -895,6 +1033,30 @@ impl bpf_sysctl {
unsafe { crate::bpf_probe_read(&self.file_pos) }.ok() unsafe { crate::bpf_probe_read(&self.file_pos) }.ok()
} }
} }
impl bpf_pidns_info {
pub fn pid(&self) -> Option<__u32> {
unsafe { crate::bpf_probe_read(&self.pid) }.ok()
}
pub fn tgid(&self) -> Option<__u32> {
unsafe { crate::bpf_probe_read(&self.tgid) }.ok()
}
}
impl btf_ptr {
pub fn ptr(&self) -> Option<*mut ::aya_bpf_cty::c_void> {
let v = unsafe { crate::bpf_probe_read(&self.ptr) }.ok()?;
if v.is_null() {
None
} else {
Some(v)
}
}
pub fn type_id(&self) -> Option<__u32> {
unsafe { crate::bpf_probe_read(&self.type_id) }.ok()
}
pub fn flags(&self) -> Option<__u32> {
unsafe { crate::bpf_probe_read(&self.flags) }.ok()
}
}
impl pt_regs { impl pt_regs {
pub fn r15(&self) -> Option<::aya_bpf_cty::c_ulong> { pub fn r15(&self) -> Option<::aya_bpf_cty::c_ulong> {
unsafe { crate::bpf_probe_read(&self.r15) }.ok() unsafe { crate::bpf_probe_read(&self.r15) }.ok()
@ -969,8 +1131,6 @@ impl sockaddr {
} }
} }
impl bpf_perf_event_data {} impl bpf_perf_event_data {}
impl bpf_pidns_info {}
impl bpf_redir_neigh {}
impl linux_binprm {} impl linux_binprm {}
impl tcphdr {} impl tcphdr {}
impl seq_file {} impl seq_file {}
@ -981,7 +1141,6 @@ impl tcp_request_sock {}
impl udp6_sock {} impl udp6_sock {}
impl task_struct {} impl task_struct {}
impl path {} impl path {}
impl btf_ptr {}
impl inode {} impl inode {}
impl socket {} impl socket {}
impl file {} impl file {}

@ -1679,3 +1679,34 @@ pub unsafe fn bpf_snprintf(
) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(165usize); ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(165usize);
fun(str_, str_size, fmt, data, data_len) fun(str_, str_size, fmt, data, data_len)
} }
pub unsafe fn bpf_sys_bpf(
cmd: __u32,
attr: *mut ::aya_bpf_cty::c_void,
attr_size: __u32,
) -> ::aya_bpf_cty::c_long {
let fun: unsafe extern "C" fn(
cmd: __u32,
attr: *mut ::aya_bpf_cty::c_void,
attr_size: __u32,
) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(166usize);
fun(cmd, attr, attr_size)
}
pub unsafe fn bpf_btf_find_by_name_kind(
name: *mut ::aya_bpf_cty::c_char,
name_sz: ::aya_bpf_cty::c_int,
kind: __u32,
flags: ::aya_bpf_cty::c_int,
) -> ::aya_bpf_cty::c_long {
let fun: unsafe extern "C" fn(
name: *mut ::aya_bpf_cty::c_char,
name_sz: ::aya_bpf_cty::c_int,
kind: __u32,
flags: ::aya_bpf_cty::c_int,
) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(167usize);
fun(name, name_sz, kind, flags)
}
pub unsafe fn bpf_sys_close(fd: __u32) -> ::aya_bpf_cty::c_long {
let fun: unsafe extern "C" fn(fd: __u32) -> ::aya_bpf_cty::c_long =
::core::mem::transmute(168usize);
fun(fd)
}

@ -43,7 +43,7 @@ impl<T> PerfMap<T> {
data: &T, data: &T,
flags: u32, flags: u32,
) { ) {
let index = index.unwrap_or(BPF_F_CURRENT_CPU.into()) as u64; let index = index.unwrap_or(BPF_F_CURRENT_CPU as u32) as u64;
let flags = (flags as u64) << 32 | index; let flags = (flags as u64) << 32 | index;
unsafe { unsafe {
bpf_perf_event_output( bpf_perf_event_output(

Loading…
Cancel
Save