diff --git a/implementations/rust/ockam/ockam_ebpf/Cargo.toml b/implementations/rust/ockam/ockam_ebpf/Cargo.toml index 7d81b9a2ada..ecb3f493711 100644 --- a/implementations/rust/ockam/ockam_ebpf/Cargo.toml +++ b/implementations/rust/ockam/ockam_ebpf/Cargo.toml @@ -15,9 +15,13 @@ description = """ eBPF program used by Ockam TCP Portals """ +[features] +default = [] +logging = ["aya-log-ebpf"] + [dependencies] aya-ebpf = "0.1.1" -aya-log-ebpf = "0.1.1" +aya-log-ebpf = { version = "0.1.1", optional = true } network-types = "0.0.7" [[bin]] diff --git a/implementations/rust/ockam/ockam_ebpf/ockam_ebpf b/implementations/rust/ockam/ockam_ebpf/ockam_ebpf index 27239acff1a..82c508d31b4 100644 Binary files a/implementations/rust/ockam/ockam_ebpf/ockam_ebpf and b/implementations/rust/ockam/ockam_ebpf/ockam_ebpf differ diff --git a/implementations/rust/ockam/ockam_ebpf/src/common.rs b/implementations/rust/ockam/ockam_ebpf/src/common.rs index 67f5ed80356..406be886b59 100644 --- a/implementations/rust/ockam/ockam_ebpf/src/common.rs +++ b/implementations/rust/ockam/ockam_ebpf/src/common.rs @@ -9,9 +9,9 @@ use aya_ebpf::bindings::TC_ACT_PIPE; use aya_ebpf::macros::map; use aya_ebpf::maps::HashMap; use aya_ebpf::programs::TcContext; -use aya_log_ebpf::{error, trace, warn}; use crate::conversion::{convert_ockam_to_tcp, convert_tcp_to_ockam}; +use crate::{error, trace, warn}; pub type Proto = u8; @@ -140,7 +140,7 @@ fn handle_ingress_tcp_protocol(ctx: &TcContext, ipv4hdr: *mut Ipv4Hdr) -> Result syn, ack, fin, - rst, + rst ); convert_tcp_to_ockam(ctx, ipv4hdr, proto); @@ -169,7 +169,7 @@ fn handle_ingress_tcp_protocol(ctx: &TcContext, ipv4hdr: *mut Ipv4Hdr) -> Result syn, ack, fin, - rst, + rst ); convert_tcp_to_ockam(ctx, ipv4hdr, proto); @@ -193,7 +193,7 @@ fn handle_ingress_tcp_protocol(ctx: &TcContext, ipv4hdr: *mut Ipv4Hdr) -> Result syn, ack, fin, - rst, + rst ); Ok(TC_ACT_PIPE) @@ -271,7 +271,7 @@ fn handle_egress_ockam_protocol(ctx: &TcContext, ipv4hdr: *mut Ipv4Hdr) -> Resul syn, ack, fin, - rst, + rst ); convert_ockam_to_tcp(ctx, ipv4hdr, tcphdr); @@ -300,7 +300,7 @@ fn handle_egress_ockam_protocol(ctx: &TcContext, ipv4hdr: *mut Ipv4Hdr) -> Resul syn, ack, fin, - rst, + rst ); convert_ockam_to_tcp(ctx, ipv4hdr, tcphdr); @@ -326,7 +326,7 @@ fn handle_egress_ockam_protocol(ctx: &TcContext, ipv4hdr: *mut Ipv4Hdr) -> Resul syn, ack, fin, - rst, + rst ); Ok(TC_ACT_PIPE) diff --git a/implementations/rust/ockam/ockam_ebpf/src/entrypoint.rs b/implementations/rust/ockam/ockam_ebpf/src/entrypoint.rs index 5bfea0fec66..76bb12d74cb 100644 --- a/implementations/rust/ockam/ockam_ebpf/src/entrypoint.rs +++ b/implementations/rust/ockam/ockam_ebpf/src/entrypoint.rs @@ -37,6 +37,12 @@ mod checksum_helpers; mod common; mod conversion; +#[cfg(feature = "logging")] +mod logger_aya; + +#[cfg(not(feature = "logging"))] +mod logger_noop; + use crate::common::Direction; #[classifier] diff --git a/implementations/rust/ockam/ockam_ebpf/src/logger_aya.rs b/implementations/rust/ockam/ockam_ebpf/src/logger_aya.rs new file mode 100644 index 00000000000..5cb22e02979 --- /dev/null +++ b/implementations/rust/ockam/ockam_ebpf/src/logger_aya.rs @@ -0,0 +1,34 @@ +#[macro_export] +macro_rules! error { + ($($x:expr),*) => { + aya_log_ebpf::error!{ $($x,)+ } + }; +} + +#[macro_export] +macro_rules! warn { + ($($x:expr),*) => { + aya_log_ebpf::warn!{ $($x,)+ } + } +} + +#[macro_export] +macro_rules! debug { + ($($x:expr),*) => { + aya_log_ebpf::debug!{ $($x,)+ } + } +} + +#[macro_export] +macro_rules! info { + ($($x:expr),*) => { + aya_log_ebpf::info!{ $($x,)+ } + } +} + +#[macro_export] +macro_rules! trace { + ($($x:expr),*) => { + aya_log_ebpf::trace!{ $($x,)+ } + } +} diff --git a/implementations/rust/ockam/ockam_ebpf/src/logger_noop.rs b/implementations/rust/ockam/ockam_ebpf/src/logger_noop.rs new file mode 100644 index 00000000000..cdb555ef113 --- /dev/null +++ b/implementations/rust/ockam/ockam_ebpf/src/logger_noop.rs @@ -0,0 +1,44 @@ +#[macro_export] +macro_rules! error { + ($($x:expr),*) => {{ + $( + _ = $x; + )* + }}; +} + +#[macro_export] +macro_rules! warn { + ($($x:expr),*) => {{ + $( + _ = $x; + )* + }}; +} + +#[macro_export] +macro_rules! debug { + ($($x:expr),*) => {{ + $( + _ = $x; + )* + }}; +} + +#[macro_export] +macro_rules! info { + ($($x:expr),*) => {{ + $( + _ = $x; + )* + }}; +} + +#[macro_export] +macro_rules! trace { + ($($x:expr),*) => {{ + $( + _ = $x; + )* + }}; +}