From dce5317f2cb48dea3cdc2d5cf114bd0ca34fffdb Mon Sep 17 00:00:00 2001 From: pdliyan Date: Sat, 23 Mar 2024 18:29:50 +0800 Subject: [PATCH 1/8] Rename aya-bpf to aya-ebpf. --- {{project-name}}-ebpf/Cargo.toml | 2 +- {{project-name}}-ebpf/src/main.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/{{project-name}}-ebpf/Cargo.toml b/{{project-name}}-ebpf/Cargo.toml index 17c08d7..01cfaa2 100644 --- a/{{project-name}}-ebpf/Cargo.toml +++ b/{{project-name}}-ebpf/Cargo.toml @@ -4,7 +4,7 @@ version = "0.1.0" edition = "2021" [dependencies] -aya-bpf = { git = "https://github.com/aya-rs/aya" } +aya-ebpf = { git = "https://github.com/aya-rs/aya" } aya-log-ebpf = { git = "https://github.com/aya-rs/aya" } {{ project-name }}-common = { path = "../{{ project-name }}-common" } diff --git a/{{project-name}}-ebpf/src/main.rs b/{{project-name}}-ebpf/src/main.rs index 0f13e39..8e7b73c 100644 --- a/{{project-name}}-ebpf/src/main.rs +++ b/{{project-name}}-ebpf/src/main.rs @@ -2,7 +2,7 @@ #![no_main] {% case program_type -%} {%- when "kprobe" %} -use aya_bpf::{macros::kprobe, programs::ProbeContext}; +use aya_ebpf::{macros::kprobe, programs::ProbeContext}; use aya_log_ebpf::info; #[kprobe] From bc61bdeebaebd00fa2fff463c1dda5158129fe7a Mon Sep 17 00:00:00 2001 From: pdliyan Date: Sat, 23 Mar 2024 18:37:24 +0800 Subject: [PATCH 2/8] Rename aya-bpf to aya-ebpf. --- {{project-name}}-ebpf/src/main.rs | 36 +++++++++++++++---------------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/{{project-name}}-ebpf/src/main.rs b/{{project-name}}-ebpf/src/main.rs index 8e7b73c..487f245 100644 --- a/{{project-name}}-ebpf/src/main.rs +++ b/{{project-name}}-ebpf/src/main.rs @@ -18,7 +18,7 @@ fn try_{{crate_name}}(ctx: ProbeContext) -> Result { Ok(0) } {%- when "kretprobe" %} -use aya_bpf::{macros::kretprobe, programs::ProbeContext}; +use aya_ebpf::{macros::kretprobe, programs::ProbeContext}; use aya_log_ebpf::info; #[kretprobe] @@ -34,7 +34,7 @@ fn try_{{crate_name}}(ctx: ProbeContext) -> Result { Ok(0) } {%- when "fentry" %} -use aya_bpf::{ +use aya_ebpf::{ macros::fentry, programs::FEntryContext, }; @@ -53,7 +53,7 @@ fn try_{{crate_name}}(ctx: FEntryContext) -> Result { Ok(0) } {%- when "fexit" %} -use aya_bpf::{ +use aya_ebpf::{ macros::fexit, programs::FExitContext, }; @@ -72,7 +72,7 @@ fn try_{{crate_name}}(ctx: FExitContext) -> Result { Ok(0) } {%- when "uprobe" %} -use aya_bpf::{ +use aya_ebpf::{ macros::uprobe, programs::ProbeContext, }; @@ -91,7 +91,7 @@ fn try_{{crate_name}}(ctx: ProbeContext) -> Result { Ok(0) } {%- when "uretprobe" %} -use aya_bpf::{ +use aya_ebpf::{ macros::uretprobe, programs::ProbeContext, }; @@ -110,7 +110,7 @@ fn try_{{crate_name}}(ctx: ProbeContext) -> Result { Ok(0) } {%- when "sock_ops" %} -use aya_bpf::{ +use aya_ebpf::{ macros::sock_ops, programs::SockOpsContext, }; @@ -129,7 +129,7 @@ fn try_{{crate_name}}(ctx: SockOpsContext) -> Result { Ok(0) } {%- when "sk_msg" %} -use aya_bpf::{ +use aya_ebpf::{ macros::{map, sk_msg}, maps::SockHash, programs::SkMsgContext, @@ -154,7 +154,7 @@ fn try_{{crate_name}}(ctx: SkMsgContext) -> Result { Ok(0) } {%- when "xdp" %} -use aya_bpf::{bindings::xdp_action, macros::xdp, programs::XdpContext}; +use aya_ebpf::{bindings::xdp_action, macros::xdp, programs::XdpContext}; use aya_log_ebpf::info; #[xdp] @@ -170,7 +170,7 @@ fn try_{{crate_name}}(ctx: XdpContext) -> Result { Ok(xdp_action::XDP_PASS) } {%- when "classifier" %} -use aya_bpf::{macros::classifier, programs::TcContext}; +use aya_ebpf::{macros::classifier, programs::TcContext}; use aya_log_ebpf::info; #[classifier] @@ -186,7 +186,7 @@ fn try_{{crate_name}}(ctx: TcContext) -> Result { Ok(0) } {%- when "cgroup_skb" %} -use aya_bpf::{ +use aya_ebpf::{ macros::cgroup_skb, programs::SkBuffContext, }; @@ -205,7 +205,7 @@ fn try_{{crate_name}}(ctx: SkBuffContext) -> Result { Ok(0) } {%- when "tracepoint" %} -use aya_bpf::{ +use aya_ebpf::{ macros::tracepoint, programs::TracePointContext, }; @@ -224,7 +224,7 @@ fn try_{{crate_name}}(ctx: TracePointContext) -> Result { Ok(0) } {%- when "lsm" %} -use aya_bpf::{ +use aya_ebpf::{ macros::lsm, programs::LsmContext, }; @@ -243,7 +243,7 @@ fn try_{{lsm_hook}}(ctx: LsmContext) -> Result { Ok(0) } {%- when "tp_btf" %} -use aya_bpf::{ +use aya_ebpf::{ macros::btf_tracepoint, programs::BtfTracePointContext, }; @@ -262,7 +262,7 @@ fn try_{{tracepoint_name}}(ctx: BtfTracePointContext) -> Result { Ok(0) } {%- when "socket_filter" %} -use aya_bpf::{ +use aya_ebpf::{ macros::socket_filter, programs::SkBuffContext, }; @@ -272,7 +272,7 @@ pub fn {{crate_name}}(_ctx: SkBuffContext) -> i64 { return 0 } {%- when "cgroup_sysctl" %} -use aya_bpf::{ +use aya_ebpf::{ macros::cgroup_sysctl, programs::SysctlContext, }; @@ -291,7 +291,7 @@ fn try_{{crate_name}}(ctx: SysctlContext) -> Result { Ok(0) } {%- when "cgroup_sockopt" %} -use aya_bpf::{macros::cgroup_sockopt, programs::SockoptContext}; +use aya_ebpf::{macros::cgroup_sockopt, programs::SockoptContext}; use aya_log_ebpf::info; #[cgroup_sockopt({{sockopt_target}})] @@ -307,7 +307,7 @@ fn try_{{crate_name}}(ctx: SockoptContext) -> Result { Ok(0) } {%- when "raw_tracepoint" %} -use aya_bpf::{macros::raw_tracepoint, programs::RawTracePointContext}; +use aya_ebpf::{macros::raw_tracepoint, programs::RawTracePointContext}; use aya_log_ebpf::info; #[raw_tracepoint(tracepoint="{{tracepoint_name}}")] @@ -323,7 +323,7 @@ fn try_{{crate_name}}(ctx: RawTracePointContext) -> Result { Ok(0) } {%- when "perf_event" %} -use aya_bpf::{ +use aya_ebpf::{ helpers::bpf_get_smp_processor_id, macros::perf_event, programs::PerfEventContext, BpfContext, }; use aya_log_ebpf::info; From 628e6a4f818698ff5f1eaee4d276c798c94fd070 Mon Sep 17 00:00:00 2001 From: pdliyan Date: Sat, 23 Mar 2024 18:50:27 +0800 Subject: [PATCH 3/8] Fix unchanged Bpf reference. Would check sock_map latter. --- {{project-name}}-ebpf/src/main.rs | 2 +- {{project-name}}/src/main.rs | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/{{project-name}}-ebpf/src/main.rs b/{{project-name}}-ebpf/src/main.rs index 487f245..77995c0 100644 --- a/{{project-name}}-ebpf/src/main.rs +++ b/{{project-name}}-ebpf/src/main.rs @@ -324,7 +324,7 @@ fn try_{{crate_name}}(ctx: RawTracePointContext) -> Result { } {%- when "perf_event" %} use aya_ebpf::{ - helpers::bpf_get_smp_processor_id, macros::perf_event, programs::PerfEventContext, BpfContext, + helpers::bpf_get_smp_processor_id, macros::perf_event, programs::PerfEventContext, EbpfContext, }; use aya_log_ebpf::info; diff --git a/{{project-name}}/src/main.rs b/{{project-name}}/src/main.rs index 756fd87..c4e2697 100644 --- a/{{project-name}}/src/main.rs +++ b/{{project-name}}/src/main.rs @@ -39,8 +39,8 @@ use aya::programs::SocketFilter; {%- when "raw_tracepoint" -%} use aya::programs::RawTracePoint; {%- endcase %} -use aya::{include_bytes_aligned, Bpf}; -use aya_log::BpfLogger; +use aya::{include_bytes_aligned, Ebpf}; +use aya_log::EbpfLogger; {% if program_types_with_opts contains program_type -%} use clap::Parser; {% endif -%} @@ -86,14 +86,14 @@ async fn main() -> Result<(), anyhow::Error> { // like to specify the eBPF program at runtime rather than at compile-time, you can // reach for `Bpf::load_file` instead. #[cfg(debug_assertions)] - let mut bpf = Bpf::load(include_bytes_aligned!( + let mut bpf = Ebpf::load(include_bytes_aligned!( "../../target/bpfel-unknown-none/debug/{{project-name}}" ))?; #[cfg(not(debug_assertions))] - let mut bpf = Bpf::load(include_bytes_aligned!( + let mut bpf = Ebpf::load(include_bytes_aligned!( "../../target/bpfel-unknown-none/release/{{project-name}}" ))?; - if let Err(e) = BpfLogger::init(&mut bpf) { + if let Err(e) = EbpfLogger::init(&mut bpf) { // This can happen if you remove all log statements from your eBPF program. warn!("failed to initialize eBPF logger: {}", e); } From c68f239ad061b21f7fa33d044d98cb1e8246a810 Mon Sep 17 00:00:00 2001 From: pdliyan Date: Sat, 23 Mar 2024 19:10:12 +0800 Subject: [PATCH 4/8] Try fix test failed. Let's see if that would pass. --- {{project-name}}/src/main.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/{{project-name}}/src/main.rs b/{{project-name}}/src/main.rs index c4e2697..55d9235 100644 --- a/{{project-name}}/src/main.rs +++ b/{{project-name}}/src/main.rs @@ -127,7 +127,7 @@ async fn main() -> Result<(), anyhow::Error> { let prog: &mut SkMsg = bpf.program_mut("{{crate_name}}").unwrap().try_into()?; prog.load()?; - prog.attach(map_fd)?; + prog.attach(map_fd.into())?; // insert sockets to the map using sock_map.insert here, or from a sock_ops program {%- when "xdp" -%} let program: &mut Xdp = bpf.program_mut("{{crate_name}}").unwrap().try_into()?; @@ -186,6 +186,7 @@ async fn main() -> Result<(), anyhow::Error> { perf_event::perf_sw_ids::PERF_COUNT_SW_CPU_CLOCK as u64, perf_event::PerfEventScope::AllProcessesOneCpu { cpu }, perf_event::SamplePolicy::Frequency(1), + true, )?; } {%- when "raw_tracepoint" -%} From 5d04aef9807642ea0cdd2ae8a1e06d76e058ed69 Mon Sep 17 00:00:00 2001 From: pdliyan Date: Sat, 23 Mar 2024 19:16:20 +0800 Subject: [PATCH 5/8] Try fix the usage of fd(). --- {{project-name}}/src/main.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/{{project-name}}/src/main.rs b/{{project-name}}/src/main.rs index 55d9235..174a0ff 100644 --- a/{{project-name}}/src/main.rs +++ b/{{project-name}}/src/main.rs @@ -123,11 +123,11 @@ async fn main() -> Result<(), anyhow::Error> { program.attach(cgroup)?; {%- when "sk_msg" -%} let sock_map: SockHash::<_, SockKey> = bpf.map("{{sock_map}}").unwrap().try_into()?; - let map_fd = sock_map.fd()?; + let map_fd = sock_map.fd(); let prog: &mut SkMsg = bpf.program_mut("{{crate_name}}").unwrap().try_into()?; prog.load()?; - prog.attach(map_fd.into())?; + prog.attach(map_fd)?; // insert sockets to the map using sock_map.insert here, or from a sock_ops program {%- when "xdp" -%} let program: &mut Xdp = bpf.program_mut("{{crate_name}}").unwrap().try_into()?; From 17fe98c37c89b1c23956d10aa2cb205c786ab144 Mon Sep 17 00:00:00 2001 From: pdliyan Date: Sat, 23 Mar 2024 19:28:25 +0800 Subject: [PATCH 6/8] Have no idea about this failed. --- {{project-name}}/src/main.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/{{project-name}}/src/main.rs b/{{project-name}}/src/main.rs index 174a0ff..07910a9 100644 --- a/{{project-name}}/src/main.rs +++ b/{{project-name}}/src/main.rs @@ -122,11 +122,11 @@ async fn main() -> Result<(), anyhow::Error> { program.load()?; program.attach(cgroup)?; {%- when "sk_msg" -%} - let sock_map: SockHash::<_, SockKey> = bpf.map("{{sock_map}}").unwrap().try_into()?; - let map_fd = sock_map.fd(); - let prog: &mut SkMsg = bpf.program_mut("{{crate_name}}").unwrap().try_into()?; prog.load()?; + + let sock_map: SockHash::<_, SockKey> = bpf.map("{{sock_map}}").unwrap().try_into()?; + let map_fd = sock_map.fd(); prog.attach(map_fd)?; // insert sockets to the map using sock_map.insert here, or from a sock_ops program {%- when "xdp" -%} From 3bee1bcc0f92e01a48d6e8ead47475d68c4ba82d Mon Sep 17 00:00:00 2001 From: pdliyan Date: Sat, 23 Mar 2024 19:34:54 +0800 Subject: [PATCH 7/8] Reverse of sk_msg. --- {{project-name}}/src/main.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/{{project-name}}/src/main.rs b/{{project-name}}/src/main.rs index 07910a9..174a0ff 100644 --- a/{{project-name}}/src/main.rs +++ b/{{project-name}}/src/main.rs @@ -122,11 +122,11 @@ async fn main() -> Result<(), anyhow::Error> { program.load()?; program.attach(cgroup)?; {%- when "sk_msg" -%} - let prog: &mut SkMsg = bpf.program_mut("{{crate_name}}").unwrap().try_into()?; - prog.load()?; - let sock_map: SockHash::<_, SockKey> = bpf.map("{{sock_map}}").unwrap().try_into()?; let map_fd = sock_map.fd(); + + let prog: &mut SkMsg = bpf.program_mut("{{crate_name}}").unwrap().try_into()?; + prog.load()?; prog.attach(map_fd)?; // insert sockets to the map using sock_map.insert here, or from a sock_ops program {%- when "xdp" -%} From 1185fd49d2ee3a467d02a19624fdccbbb9995c2e Mon Sep 17 00:00:00 2001 From: blacker1230 Date: Sun, 24 Mar 2024 23:29:11 +0800 Subject: [PATCH 8/8] Fix sk_msg. --- {{project-name}}/src/main.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/{{project-name}}/src/main.rs b/{{project-name}}/src/main.rs index 174a0ff..c6a1fa3 100644 --- a/{{project-name}}/src/main.rs +++ b/{{project-name}}/src/main.rs @@ -123,11 +123,11 @@ async fn main() -> Result<(), anyhow::Error> { program.attach(cgroup)?; {%- when "sk_msg" -%} let sock_map: SockHash::<_, SockKey> = bpf.map("{{sock_map}}").unwrap().try_into()?; - let map_fd = sock_map.fd(); + let map_fd = sock_map.fd().try_clone()?; let prog: &mut SkMsg = bpf.program_mut("{{crate_name}}").unwrap().try_into()?; prog.load()?; - prog.attach(map_fd)?; + prog.attach(&map_fd)?; // insert sockets to the map using sock_map.insert here, or from a sock_ops program {%- when "xdp" -%} let program: &mut Xdp = bpf.program_mut("{{crate_name}}").unwrap().try_into()?;