From 9d18a48c3c0f5c4b9753bf4dc6cbc4bdec181454 Mon Sep 17 00:00:00 2001 From: Dave Tucker Date: Wed, 8 Jun 2022 22:46:26 +0100 Subject: [PATCH] bpf: Add accessors to SockOpsContext Allow getting family, remote/local v4/v6 addresses and the remote and local ports. Signed-off-by: Dave Tucker --- bpf/aya-bpf/src/programs/sock_ops.rs | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/bpf/aya-bpf/src/programs/sock_ops.rs b/bpf/aya-bpf/src/programs/sock_ops.rs index 91c3ea1b..902cab46 100644 --- a/bpf/aya-bpf/src/programs/sock_ops.rs +++ b/bpf/aya-bpf/src/programs/sock_ops.rs @@ -17,6 +17,10 @@ impl SockOpsContext { unsafe { (*self.ops).op } } + pub fn family(&self) -> u32 { + unsafe { (*self.ops).family } + } + pub fn cb_flags(&self) -> u32 { unsafe { (*self.ops).bpf_sock_ops_cb_flags } } @@ -30,6 +34,30 @@ impl SockOpsContext { } } + pub fn remote_ip4(&self) -> u32 { + unsafe { (*self.ops).remote_ip4 } + } + + pub fn local_ip4(&self) -> u32 { + unsafe { (*self.ops).local_ip4 } + } + + pub fn remote_ip6(&self) -> [u32; 4] { + unsafe { (*self.ops).remote_ip6 } + } + + pub fn local_ip6(&self) -> [u32; 4] { + unsafe { (*self.ops).local_ip6 } + } + + pub fn local_port(&self) -> u32 { + unsafe { (*self.ops).local_port } + } + + pub fn remote_port(&self) -> u32 { + unsafe { (*self.ops).remote_port } + } + pub fn arg(&self, n: usize) -> u32 { unsafe { (*self.ops).__bindgen_anon_1.args[n] } }