Skip to content

Commit

Permalink
aya: remove unwrap and NonZero* in info
Browse files Browse the repository at this point in the history
Addresses the feedback from aya-rs#1007:
- remove panic from `unwrap` and `expect`
- Option<NonZero*> => Option<int> with `0` mapping to `None`
- use `aya_ebpf::binding` in `u32` conversion in prog, link, and attach type for
  more straightforward matching

Refs: aya-rs#1007
  • Loading branch information
tyrone-wu committed Sep 6, 2024
1 parent 635ed3b commit f277811
Show file tree
Hide file tree
Showing 10 changed files with 196 additions and 247 deletions.
8 changes: 4 additions & 4 deletions aya-log/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -136,21 +136,21 @@ impl EbpfLogger {
) -> Result<EbpfLogger, Error> {
let program_info = loaded_programs()
.filter_map(|info| info.ok())
.find(|info| info.id().is_some_and(|id| id.get() == program_id))
.find(|info| info.id() == program_id)
.ok_or(Error::ProgramNotFound)?;

let map = program_info
.map_ids()
.map_err(Error::ProgramError)?
.expect("`map_ids` field in `bpf_prog_info` not available")
.ok_or_else(|| Error::MapNotFound)?
.iter()
.filter_map(|id| MapInfo::from_id(id.get()).ok())
.filter_map(|id| MapInfo::from_id(*id).ok())
.find(|map_info| match map_info.name_as_str() {
Some(name) => name == MAP_NAME,
None => false,
})
.ok_or(Error::MapNotFound)?;
let map = MapData::from_id(map.id().unwrap().get()).map_err(Error::MapError)?;
let map = MapData::from_id(map.id()).map_err(Error::MapError)?;

Self::read_logs_async(Map::PerfEventArray(map), logger)?;

Expand Down
1 change: 1 addition & 0 deletions aya-obj/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ homepage.workspace = true
edition.workspace = true

[dependencies]
aya-ebpf = { path = "../ebpf/aya-ebpf", version = "^0.1.0", default-features = false }
bytes = { workspace = true }
core-error = { workspace = true, default-features = true }
hashbrown = { workspace = true, default-features = true }
Expand Down
142 changes: 72 additions & 70 deletions aya-obj/src/links.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,22 +9,23 @@ impl TryFrom<u32> for bpf_link_type {
type Error = InvalidTypeBinding<u32>;

fn try_from(link_type: u32) -> Result<Self, Self::Error> {
use aya_ebpf::bindings::bpf_link_type as link_binding;
use bpf_link_type::*;
Ok(match link_type {
x if x == BPF_LINK_TYPE_UNSPEC as u32 => BPF_LINK_TYPE_UNSPEC,
x if x == BPF_LINK_TYPE_RAW_TRACEPOINT as u32 => BPF_LINK_TYPE_RAW_TRACEPOINT,
x if x == BPF_LINK_TYPE_TRACING as u32 => BPF_LINK_TYPE_TRACING,
x if x == BPF_LINK_TYPE_CGROUP as u32 => BPF_LINK_TYPE_CGROUP,
x if x == BPF_LINK_TYPE_ITER as u32 => BPF_LINK_TYPE_ITER,
x if x == BPF_LINK_TYPE_NETNS as u32 => BPF_LINK_TYPE_NETNS,
x if x == BPF_LINK_TYPE_XDP as u32 => BPF_LINK_TYPE_XDP,
x if x == BPF_LINK_TYPE_PERF_EVENT as u32 => BPF_LINK_TYPE_PERF_EVENT,
x if x == BPF_LINK_TYPE_KPROBE_MULTI as u32 => BPF_LINK_TYPE_KPROBE_MULTI,
x if x == BPF_LINK_TYPE_STRUCT_OPS as u32 => BPF_LINK_TYPE_STRUCT_OPS,
x if x == BPF_LINK_TYPE_NETFILTER as u32 => BPF_LINK_TYPE_NETFILTER,
x if x == BPF_LINK_TYPE_TCX as u32 => BPF_LINK_TYPE_TCX,
x if x == BPF_LINK_TYPE_UPROBE_MULTI as u32 => BPF_LINK_TYPE_UPROBE_MULTI,
x if x == BPF_LINK_TYPE_NETKIT as u32 => BPF_LINK_TYPE_NETKIT,
link_binding::BPF_LINK_TYPE_UNSPEC => BPF_LINK_TYPE_UNSPEC,
link_binding::BPF_LINK_TYPE_RAW_TRACEPOINT => BPF_LINK_TYPE_RAW_TRACEPOINT,
link_binding::BPF_LINK_TYPE_TRACING => BPF_LINK_TYPE_TRACING,
link_binding::BPF_LINK_TYPE_CGROUP => BPF_LINK_TYPE_CGROUP,
link_binding::BPF_LINK_TYPE_ITER => BPF_LINK_TYPE_ITER,
link_binding::BPF_LINK_TYPE_NETNS => BPF_LINK_TYPE_NETNS,
link_binding::BPF_LINK_TYPE_XDP => BPF_LINK_TYPE_XDP,
link_binding::BPF_LINK_TYPE_PERF_EVENT => BPF_LINK_TYPE_PERF_EVENT,
link_binding::BPF_LINK_TYPE_KPROBE_MULTI => BPF_LINK_TYPE_KPROBE_MULTI,
link_binding::BPF_LINK_TYPE_STRUCT_OPS => BPF_LINK_TYPE_STRUCT_OPS,
link_binding::BPF_LINK_TYPE_NETFILTER => BPF_LINK_TYPE_NETFILTER,
link_binding::BPF_LINK_TYPE_TCX => BPF_LINK_TYPE_TCX,
link_binding::BPF_LINK_TYPE_UPROBE_MULTI => BPF_LINK_TYPE_UPROBE_MULTI,
link_binding::BPF_LINK_TYPE_NETKIT => BPF_LINK_TYPE_NETKIT,
_ => return Err(InvalidTypeBinding { value: link_type }),
})
}
Expand All @@ -34,66 +35,67 @@ impl TryFrom<u32> for bpf_attach_type {
type Error = InvalidTypeBinding<u32>;

fn try_from(attach_type: u32) -> Result<Self, Self::Error> {
use aya_ebpf::bindings::bpf_attach_type as attach_binding;
use bpf_attach_type::*;
Ok(match attach_type {
x if x == BPF_CGROUP_INET_INGRESS as u32 => BPF_CGROUP_INET_INGRESS,
x if x == BPF_CGROUP_INET_EGRESS as u32 => BPF_CGROUP_INET_EGRESS,
x if x == BPF_CGROUP_INET_SOCK_CREATE as u32 => BPF_CGROUP_INET_SOCK_CREATE,
x if x == BPF_CGROUP_SOCK_OPS as u32 => BPF_CGROUP_SOCK_OPS,
x if x == BPF_SK_SKB_STREAM_PARSER as u32 => BPF_SK_SKB_STREAM_PARSER,
x if x == BPF_SK_SKB_STREAM_VERDICT as u32 => BPF_SK_SKB_STREAM_VERDICT,
x if x == BPF_CGROUP_DEVICE as u32 => BPF_CGROUP_DEVICE,
x if x == BPF_SK_MSG_VERDICT as u32 => BPF_SK_MSG_VERDICT,
x if x == BPF_CGROUP_INET4_BIND as u32 => BPF_CGROUP_INET4_BIND,
x if x == BPF_CGROUP_INET6_BIND as u32 => BPF_CGROUP_INET6_BIND,
x if x == BPF_CGROUP_INET4_CONNECT as u32 => BPF_CGROUP_INET4_CONNECT,
x if x == BPF_CGROUP_INET6_CONNECT as u32 => BPF_CGROUP_INET6_CONNECT,
x if x == BPF_CGROUP_INET4_POST_BIND as u32 => BPF_CGROUP_INET4_POST_BIND,
x if x == BPF_CGROUP_INET6_POST_BIND as u32 => BPF_CGROUP_INET6_POST_BIND,
x if x == BPF_CGROUP_UDP4_SENDMSG as u32 => BPF_CGROUP_UDP4_SENDMSG,
x if x == BPF_CGROUP_UDP6_SENDMSG as u32 => BPF_CGROUP_UDP6_SENDMSG,
x if x == BPF_LIRC_MODE2 as u32 => BPF_LIRC_MODE2,
x if x == BPF_FLOW_DISSECTOR as u32 => BPF_FLOW_DISSECTOR,
x if x == BPF_CGROUP_SYSCTL as u32 => BPF_CGROUP_SYSCTL,
x if x == BPF_CGROUP_UDP4_RECVMSG as u32 => BPF_CGROUP_UDP4_RECVMSG,
x if x == BPF_CGROUP_UDP6_RECVMSG as u32 => BPF_CGROUP_UDP6_RECVMSG,
x if x == BPF_CGROUP_GETSOCKOPT as u32 => BPF_CGROUP_GETSOCKOPT,
x if x == BPF_CGROUP_SETSOCKOPT as u32 => BPF_CGROUP_SETSOCKOPT,
x if x == BPF_TRACE_RAW_TP as u32 => BPF_TRACE_RAW_TP,
x if x == BPF_TRACE_FENTRY as u32 => BPF_TRACE_FENTRY,
x if x == BPF_TRACE_FEXIT as u32 => BPF_TRACE_FEXIT,
x if x == BPF_MODIFY_RETURN as u32 => BPF_MODIFY_RETURN,
x if x == BPF_LSM_MAC as u32 => BPF_LSM_MAC,
x if x == BPF_TRACE_ITER as u32 => BPF_TRACE_ITER,
x if x == BPF_CGROUP_INET4_GETPEERNAME as u32 => BPF_CGROUP_INET4_GETPEERNAME,
x if x == BPF_CGROUP_INET6_GETPEERNAME as u32 => BPF_CGROUP_INET6_GETPEERNAME,
x if x == BPF_CGROUP_INET4_GETSOCKNAME as u32 => BPF_CGROUP_INET4_GETSOCKNAME,
x if x == BPF_CGROUP_INET6_GETSOCKNAME as u32 => BPF_CGROUP_INET6_GETSOCKNAME,
x if x == BPF_XDP_DEVMAP as u32 => BPF_XDP_DEVMAP,
x if x == BPF_CGROUP_INET_SOCK_RELEASE as u32 => BPF_CGROUP_INET_SOCK_RELEASE,
x if x == BPF_XDP_CPUMAP as u32 => BPF_XDP_CPUMAP,
x if x == BPF_SK_LOOKUP as u32 => BPF_SK_LOOKUP,
x if x == BPF_XDP as u32 => BPF_XDP,
x if x == BPF_SK_SKB_VERDICT as u32 => BPF_SK_SKB_VERDICT,
x if x == BPF_SK_REUSEPORT_SELECT as u32 => BPF_SK_REUSEPORT_SELECT,
x if x == BPF_SK_REUSEPORT_SELECT_OR_MIGRATE as u32 => {
attach_binding::BPF_CGROUP_INET_INGRESS => BPF_CGROUP_INET_INGRESS,
attach_binding::BPF_CGROUP_INET_EGRESS => BPF_CGROUP_INET_EGRESS,
attach_binding::BPF_CGROUP_INET_SOCK_CREATE => BPF_CGROUP_INET_SOCK_CREATE,
attach_binding::BPF_CGROUP_SOCK_OPS => BPF_CGROUP_SOCK_OPS,
attach_binding::BPF_SK_SKB_STREAM_PARSER => BPF_SK_SKB_STREAM_PARSER,
attach_binding::BPF_SK_SKB_STREAM_VERDICT => BPF_SK_SKB_STREAM_VERDICT,
attach_binding::BPF_CGROUP_DEVICE => BPF_CGROUP_DEVICE,
attach_binding::BPF_SK_MSG_VERDICT => BPF_SK_MSG_VERDICT,
attach_binding::BPF_CGROUP_INET4_BIND => BPF_CGROUP_INET4_BIND,
attach_binding::BPF_CGROUP_INET6_BIND => BPF_CGROUP_INET6_BIND,
attach_binding::BPF_CGROUP_INET4_CONNECT => BPF_CGROUP_INET4_CONNECT,
attach_binding::BPF_CGROUP_INET6_CONNECT => BPF_CGROUP_INET6_CONNECT,
attach_binding::BPF_CGROUP_INET4_POST_BIND => BPF_CGROUP_INET4_POST_BIND,
attach_binding::BPF_CGROUP_INET6_POST_BIND => BPF_CGROUP_INET6_POST_BIND,
attach_binding::BPF_CGROUP_UDP4_SENDMSG => BPF_CGROUP_UDP4_SENDMSG,
attach_binding::BPF_CGROUP_UDP6_SENDMSG => BPF_CGROUP_UDP6_SENDMSG,
attach_binding::BPF_LIRC_MODE2 => BPF_LIRC_MODE2,
attach_binding::BPF_FLOW_DISSECTOR => BPF_FLOW_DISSECTOR,
attach_binding::BPF_CGROUP_SYSCTL => BPF_CGROUP_SYSCTL,
attach_binding::BPF_CGROUP_UDP4_RECVMSG => BPF_CGROUP_UDP4_RECVMSG,
attach_binding::BPF_CGROUP_UDP6_RECVMSG => BPF_CGROUP_UDP6_RECVMSG,
attach_binding::BPF_CGROUP_GETSOCKOPT => BPF_CGROUP_GETSOCKOPT,
attach_binding::BPF_CGROUP_SETSOCKOPT => BPF_CGROUP_SETSOCKOPT,
attach_binding::BPF_TRACE_RAW_TP => BPF_TRACE_RAW_TP,
attach_binding::BPF_TRACE_FENTRY => BPF_TRACE_FENTRY,
attach_binding::BPF_TRACE_FEXIT => BPF_TRACE_FEXIT,
attach_binding::BPF_MODIFY_RETURN => BPF_MODIFY_RETURN,
attach_binding::BPF_LSM_MAC => BPF_LSM_MAC,
attach_binding::BPF_TRACE_ITER => BPF_TRACE_ITER,
attach_binding::BPF_CGROUP_INET4_GETPEERNAME => BPF_CGROUP_INET4_GETPEERNAME,
attach_binding::BPF_CGROUP_INET6_GETPEERNAME => BPF_CGROUP_INET6_GETPEERNAME,
attach_binding::BPF_CGROUP_INET4_GETSOCKNAME => BPF_CGROUP_INET4_GETSOCKNAME,
attach_binding::BPF_CGROUP_INET6_GETSOCKNAME => BPF_CGROUP_INET6_GETSOCKNAME,
attach_binding::BPF_XDP_DEVMAP => BPF_XDP_DEVMAP,
attach_binding::BPF_CGROUP_INET_SOCK_RELEASE => BPF_CGROUP_INET_SOCK_RELEASE,
attach_binding::BPF_XDP_CPUMAP => BPF_XDP_CPUMAP,
attach_binding::BPF_SK_LOOKUP => BPF_SK_LOOKUP,
attach_binding::BPF_XDP => BPF_XDP,
attach_binding::BPF_SK_SKB_VERDICT => BPF_SK_SKB_VERDICT,
attach_binding::BPF_SK_REUSEPORT_SELECT => BPF_SK_REUSEPORT_SELECT,
attach_binding::BPF_SK_REUSEPORT_SELECT_OR_MIGRATE => {
BPF_SK_REUSEPORT_SELECT_OR_MIGRATE
}
x if x == BPF_PERF_EVENT as u32 => BPF_PERF_EVENT,
x if x == BPF_TRACE_KPROBE_MULTI as u32 => BPF_TRACE_KPROBE_MULTI,
x if x == BPF_LSM_CGROUP as u32 => BPF_LSM_CGROUP,
x if x == BPF_STRUCT_OPS as u32 => BPF_STRUCT_OPS,
x if x == BPF_NETFILTER as u32 => BPF_NETFILTER,
x if x == BPF_TCX_INGRESS as u32 => BPF_TCX_INGRESS,
x if x == BPF_TCX_EGRESS as u32 => BPF_TCX_EGRESS,
x if x == BPF_TRACE_UPROBE_MULTI as u32 => BPF_TRACE_UPROBE_MULTI,
x if x == BPF_CGROUP_UNIX_CONNECT as u32 => BPF_CGROUP_UNIX_CONNECT,
x if x == BPF_CGROUP_UNIX_SENDMSG as u32 => BPF_CGROUP_UNIX_SENDMSG,
x if x == BPF_CGROUP_UNIX_RECVMSG as u32 => BPF_CGROUP_UNIX_RECVMSG,
x if x == BPF_CGROUP_UNIX_GETPEERNAME as u32 => BPF_CGROUP_UNIX_GETPEERNAME,
x if x == BPF_CGROUP_UNIX_GETSOCKNAME as u32 => BPF_CGROUP_UNIX_GETSOCKNAME,
x if x == BPF_NETKIT_PRIMARY as u32 => BPF_NETKIT_PRIMARY,
x if x == BPF_NETKIT_PEER as u32 => BPF_NETKIT_PEER,
attach_binding::BPF_PERF_EVENT => BPF_PERF_EVENT,
attach_binding::BPF_TRACE_KPROBE_MULTI => BPF_TRACE_KPROBE_MULTI,
attach_binding::BPF_LSM_CGROUP => BPF_LSM_CGROUP,
attach_binding::BPF_STRUCT_OPS => BPF_STRUCT_OPS,
attach_binding::BPF_NETFILTER => BPF_NETFILTER,
attach_binding::BPF_TCX_INGRESS => BPF_TCX_INGRESS,
attach_binding::BPF_TCX_EGRESS => BPF_TCX_EGRESS,
attach_binding::BPF_TRACE_UPROBE_MULTI => BPF_TRACE_UPROBE_MULTI,
attach_binding::BPF_CGROUP_UNIX_CONNECT => BPF_CGROUP_UNIX_CONNECT,
attach_binding::BPF_CGROUP_UNIX_SENDMSG => BPF_CGROUP_UNIX_SENDMSG,
attach_binding::BPF_CGROUP_UNIX_RECVMSG => BPF_CGROUP_UNIX_RECVMSG,
attach_binding::BPF_CGROUP_UNIX_GETPEERNAME => BPF_CGROUP_UNIX_GETPEERNAME,
attach_binding::BPF_CGROUP_UNIX_GETSOCKNAME => BPF_CGROUP_UNIX_GETSOCKNAME,
attach_binding::BPF_NETKIT_PRIMARY => BPF_NETKIT_PRIMARY,
attach_binding::BPF_NETKIT_PEER => BPF_NETKIT_PEER,
_ => return Err(InvalidTypeBinding { value: attach_type }),
})
}
Expand Down
73 changes: 36 additions & 37 deletions aya-obj/src/programs/types.rs
Original file line number Diff line number Diff line change
@@ -1,50 +1,49 @@
//! Program type bindings.

use crate::{
generated::bpf_prog_type::{self, *},
InvalidTypeBinding,
};
use crate::{generated::bpf_prog_type, InvalidTypeBinding};

impl TryFrom<u32> for bpf_prog_type {
type Error = InvalidTypeBinding<u32>;

fn try_from(prog_type: u32) -> Result<Self, Self::Error> {
use aya_ebpf::bindings::bpf_prog_type as prog_binding;
use bpf_prog_type::*;
Ok(match prog_type {
x if x == BPF_PROG_TYPE_UNSPEC as u32 => BPF_PROG_TYPE_UNSPEC,
x if x == BPF_PROG_TYPE_SOCKET_FILTER as u32 => BPF_PROG_TYPE_SOCKET_FILTER,
x if x == BPF_PROG_TYPE_KPROBE as u32 => BPF_PROG_TYPE_KPROBE,
x if x == BPF_PROG_TYPE_SCHED_CLS as u32 => BPF_PROG_TYPE_SCHED_CLS,
x if x == BPF_PROG_TYPE_SCHED_ACT as u32 => BPF_PROG_TYPE_SCHED_ACT,
x if x == BPF_PROG_TYPE_TRACEPOINT as u32 => BPF_PROG_TYPE_TRACEPOINT,
x if x == BPF_PROG_TYPE_XDP as u32 => BPF_PROG_TYPE_XDP,
x if x == BPF_PROG_TYPE_PERF_EVENT as u32 => BPF_PROG_TYPE_PERF_EVENT,
x if x == BPF_PROG_TYPE_CGROUP_SKB as u32 => BPF_PROG_TYPE_CGROUP_SKB,
x if x == BPF_PROG_TYPE_CGROUP_SOCK as u32 => BPF_PROG_TYPE_CGROUP_SOCK,
x if x == BPF_PROG_TYPE_LWT_IN as u32 => BPF_PROG_TYPE_LWT_IN,
x if x == BPF_PROG_TYPE_LWT_OUT as u32 => BPF_PROG_TYPE_LWT_OUT,
x if x == BPF_PROG_TYPE_LWT_XMIT as u32 => BPF_PROG_TYPE_LWT_XMIT,
x if x == BPF_PROG_TYPE_SOCK_OPS as u32 => BPF_PROG_TYPE_SOCK_OPS,
x if x == BPF_PROG_TYPE_SK_SKB as u32 => BPF_PROG_TYPE_SK_SKB,
x if x == BPF_PROG_TYPE_CGROUP_DEVICE as u32 => BPF_PROG_TYPE_CGROUP_DEVICE,
x if x == BPF_PROG_TYPE_SK_MSG as u32 => BPF_PROG_TYPE_SK_MSG,
x if x == BPF_PROG_TYPE_RAW_TRACEPOINT as u32 => BPF_PROG_TYPE_RAW_TRACEPOINT,
x if x == BPF_PROG_TYPE_CGROUP_SOCK_ADDR as u32 => BPF_PROG_TYPE_CGROUP_SOCK_ADDR,
x if x == BPF_PROG_TYPE_LWT_SEG6LOCAL as u32 => BPF_PROG_TYPE_LWT_SEG6LOCAL,
x if x == BPF_PROG_TYPE_LIRC_MODE2 as u32 => BPF_PROG_TYPE_LIRC_MODE2,
x if x == BPF_PROG_TYPE_SK_REUSEPORT as u32 => BPF_PROG_TYPE_SK_REUSEPORT,
x if x == BPF_PROG_TYPE_FLOW_DISSECTOR as u32 => BPF_PROG_TYPE_FLOW_DISSECTOR,
x if x == BPF_PROG_TYPE_CGROUP_SYSCTL as u32 => BPF_PROG_TYPE_CGROUP_SYSCTL,
x if x == BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE as u32 => {
prog_binding::BPF_PROG_TYPE_UNSPEC => BPF_PROG_TYPE_UNSPEC,
prog_binding::BPF_PROG_TYPE_SOCKET_FILTER => BPF_PROG_TYPE_SOCKET_FILTER,
prog_binding::BPF_PROG_TYPE_KPROBE => BPF_PROG_TYPE_KPROBE,
prog_binding::BPF_PROG_TYPE_SCHED_CLS => BPF_PROG_TYPE_SCHED_CLS,
prog_binding::BPF_PROG_TYPE_SCHED_ACT => BPF_PROG_TYPE_SCHED_ACT,
prog_binding::BPF_PROG_TYPE_TRACEPOINT => BPF_PROG_TYPE_TRACEPOINT,
prog_binding::BPF_PROG_TYPE_XDP => BPF_PROG_TYPE_XDP,
prog_binding::BPF_PROG_TYPE_PERF_EVENT => BPF_PROG_TYPE_PERF_EVENT,
prog_binding::BPF_PROG_TYPE_CGROUP_SKB => BPF_PROG_TYPE_CGROUP_SKB,
prog_binding::BPF_PROG_TYPE_CGROUP_SOCK => BPF_PROG_TYPE_CGROUP_SOCK,
prog_binding::BPF_PROG_TYPE_LWT_IN => BPF_PROG_TYPE_LWT_IN,
prog_binding::BPF_PROG_TYPE_LWT_OUT => BPF_PROG_TYPE_LWT_OUT,
prog_binding::BPF_PROG_TYPE_LWT_XMIT => BPF_PROG_TYPE_LWT_XMIT,
prog_binding::BPF_PROG_TYPE_SOCK_OPS => BPF_PROG_TYPE_SOCK_OPS,
prog_binding::BPF_PROG_TYPE_SK_SKB => BPF_PROG_TYPE_SK_SKB,
prog_binding::BPF_PROG_TYPE_CGROUP_DEVICE => BPF_PROG_TYPE_CGROUP_DEVICE,
prog_binding::BPF_PROG_TYPE_SK_MSG => BPF_PROG_TYPE_SK_MSG,
prog_binding::BPF_PROG_TYPE_RAW_TRACEPOINT => BPF_PROG_TYPE_RAW_TRACEPOINT,
prog_binding::BPF_PROG_TYPE_CGROUP_SOCK_ADDR => BPF_PROG_TYPE_CGROUP_SOCK_ADDR,
prog_binding::BPF_PROG_TYPE_LWT_SEG6LOCAL => BPF_PROG_TYPE_LWT_SEG6LOCAL,
prog_binding::BPF_PROG_TYPE_LIRC_MODE2 => BPF_PROG_TYPE_LIRC_MODE2,
prog_binding::BPF_PROG_TYPE_SK_REUSEPORT => BPF_PROG_TYPE_SK_REUSEPORT,
prog_binding::BPF_PROG_TYPE_FLOW_DISSECTOR => BPF_PROG_TYPE_FLOW_DISSECTOR,
prog_binding::BPF_PROG_TYPE_CGROUP_SYSCTL => BPF_PROG_TYPE_CGROUP_SYSCTL,
prog_binding::BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE => {
BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE
}
x if x == BPF_PROG_TYPE_CGROUP_SOCKOPT as u32 => BPF_PROG_TYPE_CGROUP_SOCKOPT,
x if x == BPF_PROG_TYPE_TRACING as u32 => BPF_PROG_TYPE_TRACING,
x if x == BPF_PROG_TYPE_STRUCT_OPS as u32 => BPF_PROG_TYPE_STRUCT_OPS,
x if x == BPF_PROG_TYPE_EXT as u32 => BPF_PROG_TYPE_EXT,
x if x == BPF_PROG_TYPE_LSM as u32 => BPF_PROG_TYPE_LSM,
x if x == BPF_PROG_TYPE_SK_LOOKUP as u32 => BPF_PROG_TYPE_SK_LOOKUP,
x if x == BPF_PROG_TYPE_SYSCALL as u32 => BPF_PROG_TYPE_SYSCALL,
x if x == BPF_PROG_TYPE_NETFILTER as u32 => BPF_PROG_TYPE_NETFILTER,
prog_binding::BPF_PROG_TYPE_CGROUP_SOCKOPT => BPF_PROG_TYPE_CGROUP_SOCKOPT,
prog_binding::BPF_PROG_TYPE_TRACING => BPF_PROG_TYPE_TRACING,
prog_binding::BPF_PROG_TYPE_STRUCT_OPS => BPF_PROG_TYPE_STRUCT_OPS,
prog_binding::BPF_PROG_TYPE_EXT => BPF_PROG_TYPE_EXT,
prog_binding::BPF_PROG_TYPE_LSM => BPF_PROG_TYPE_LSM,
prog_binding::BPF_PROG_TYPE_SK_LOOKUP => BPF_PROG_TYPE_SK_LOOKUP,
prog_binding::BPF_PROG_TYPE_SYSCALL => BPF_PROG_TYPE_SYSCALL,
prog_binding::BPF_PROG_TYPE_NETFILTER => BPF_PROG_TYPE_NETFILTER,
_ => return Err(InvalidTypeBinding { value: prog_type }),
})
}
Expand Down
Loading

0 comments on commit f277811

Please sign in to comment.