aya_obj/programs/
cgroup_sock_addr.rs

1//! Cgroup socket address programs.
2use crate::generated::bpf_attach_type;
3
4/// Defines where to attach a `CgroupSockAddr` program.
5#[derive(Copy, Clone, Debug)]
6pub enum CgroupSockAddrAttachType {
7    /// Attach to IPv4 bind events.
8    Bind4,
9    /// Attach to IPv6 bind events.
10    Bind6,
11    /// Attach to IPv4 connect events.
12    Connect4,
13    /// Attach to IPv6 connect events.
14    Connect6,
15    /// Attach to IPv4 getpeername events.
16    GetPeerName4,
17    /// Attach to IPv6 getpeername events.
18    GetPeerName6,
19    /// Attach to IPv4 getsockname events.
20    GetSockName4,
21    /// Attach to IPv6 getsockname events.
22    GetSockName6,
23    /// Attach to IPv4 udp_sendmsg events.
24    UDPSendMsg4,
25    /// Attach to IPv6 udp_sendmsg events.
26    UDPSendMsg6,
27    /// Attach to IPv4 udp_recvmsg events.
28    UDPRecvMsg4,
29    /// Attach to IPv6 udp_recvmsg events.
30    UDPRecvMsg6,
31}
32
33impl From<CgroupSockAddrAttachType> for bpf_attach_type {
34    fn from(s: CgroupSockAddrAttachType) -> Self {
35        match s {
36            CgroupSockAddrAttachType::Bind4 => Self::BPF_CGROUP_INET4_BIND,
37            CgroupSockAddrAttachType::Bind6 => Self::BPF_CGROUP_INET6_BIND,
38            CgroupSockAddrAttachType::Connect4 => Self::BPF_CGROUP_INET4_CONNECT,
39            CgroupSockAddrAttachType::Connect6 => Self::BPF_CGROUP_INET6_CONNECT,
40            CgroupSockAddrAttachType::GetPeerName4 => Self::BPF_CGROUP_INET4_GETPEERNAME,
41            CgroupSockAddrAttachType::GetPeerName6 => Self::BPF_CGROUP_INET6_GETPEERNAME,
42            CgroupSockAddrAttachType::GetSockName4 => Self::BPF_CGROUP_INET4_GETSOCKNAME,
43            CgroupSockAddrAttachType::GetSockName6 => Self::BPF_CGROUP_INET6_GETSOCKNAME,
44            CgroupSockAddrAttachType::UDPSendMsg4 => Self::BPF_CGROUP_UDP4_SENDMSG,
45            CgroupSockAddrAttachType::UDPSendMsg6 => Self::BPF_CGROUP_UDP6_SENDMSG,
46            CgroupSockAddrAttachType::UDPRecvMsg4 => Self::BPF_CGROUP_UDP4_RECVMSG,
47            CgroupSockAddrAttachType::UDPRecvMsg6 => Self::BPF_CGROUP_UDP6_RECVMSG,
48        }
49    }
50}