pwru
pwru copied to clipboard
Packet, where are you? -- eBPF-based Linux kernel networking debugger
Fix #239 Support tracing XDP Add an option --filter-trace-xdp to trace all XDP progs on host by fentry-ing on the progs, like the way tracing tc-bpf https://github.com/Asphaltt/pwru/commit/2347755900fffe100ab9eebaa180bb9f482df6fb. The diff from...
Refactor code of attaching kprobe and attaching skb-tracking kprobe. Signed-off-by: Leon Hwang
./main.go:124:18: undefined: LoadKProbeMultiPWRU ./main.go:126:18: undefined: LoadKProbePWRU ./main.go:128:18: undefined: LoadKProbeMultiPWRUWithoutOutputSKB ./main.go:130:18: undefined: LoadKProbePWRUWithoutOutputSKB I am getting these errors.Is there a way to resolve these?
Was curious to try this on OCP4.12/13 which includes the following Linux kernel: ``` sh-4.4# uname -a Linux app1-6hpk5-worker-t47bn 4.18.0-372.71.1.el8_6.x86_64 #1 SMP Fri Aug 25 08:34:17 EDT 2023 x86_64 x86_64...
When XDP is attached to a veth, skbs will be consumed and re-created on that veth. This is done in the function veth_convert_skb_to_xdp_buff(): ``` // drivers/net/veth.c static int veth_convert_skb_to_xdp_buff(struct veth_rq...
Please see commit messages for implementation details. Using --filter-track-bpf-helpers and --output-caller together can roughly trace bpf tailcalls, such as: ``` 0xffff97cdbd7138e8 3 ~bin/curl:227116 10.244.1.141:45000->10.244.3.20:8080(tcp) tcf_classify sch_handle_ingress.constprop.0 0xffff97cdbd7138e8 3 ~bin/curl:227116 10.244.1.141:45000->10.244.3.20:8080(tcp)...
When I used the `pwru` on the machine, I had an error: ``` # sudo ./pwru 'dst host 127.0.0.1 and icmp' ... program kprobe_skb_2: load program: permission denied: invalid indirect...
During the compilation, i faced a issue of compilation getting failed with a fatal error (Invalid usage of the XADD return value)  As i searched for the fix, it...
According to source code, kernel uses MTU from skb->_skb_refdst. Let pwru collect MTU from there using the same logic. It requires to cast skb->_skb_refdst to dst_entry*, then fetch dst_metric_raw(dst, RTAX_MTU)...