cgroup_sock_addr.rs 2.1 KB

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