I have basic question on ebpf behavior when multiple ebpf hooks are loaded(not using chaining) simultaneously in kernel. Are all of those hooks invoked? For example, I loaded my ebpf program which has cgroup_skb/ingress hook. The ebpf hooks functions loaded by my program are not getting invoked by kernel during packet ingress. When I list loaded programs on "Linux 5.13.0-30-generic", I see that systemd has already loaded cgroup_skb/ingress hooks by default. I do understand why these cgroup/skb hooks are loaded by systemd. My question is specifically on kernel's behavior when multiple hooks of same type(cgroup_skb/ingress) are loaded.
1
There are 1 best solutions below
Related Questions in EBPF
- How to build Linux kernel to support SO_ATTACH_BPF socket option?
- Tc bpf packet forward to other device by updating the Checksum
- What causes `bpf_perf_event_output` to return -22?
- How to cross compile bpf targets for linux arm on Mac M-series laptop?
- Tracing with eBPF tracepoint "netif_receive_skb" for multiple NICs
- Extracting UDP packet payload with eBPF tracepoints using libbpf
- XDP get packet payload
- How to get request/response body with uprobe?
- EBPF Route Table Addition or Modification
- How to access user space function argument (struct pointer) in bpf?
- How to unload bpd program using bpftool?
- How to design eBPF map for large data structures without exceeding jump complexity?
- What is the recommended way to unit test eBPF/XDP program?
- libbpf: failed to guess program from ELF section 'filter'
- I was unble to load my compiled bpf source code in to the kernel
Related Questions in XDP-EBPF
- Sending custom data to socket using eBPF
- Multiple ebpf hooks cgroup_skb
- ebpf verifier fails for bpf_csum_diff()
- Unable to fetch data using bpf_map_lookup_elem()
- Thread safe operations on XDP
- How to generate delay using eBPF kernel program
- xdp_md->egress_ifindex not found | XDP Ebpf
- Update destination port with bcc and xdp
- kernel compilation error when CONFIG_DEBUG_INFO_BTF is enabled
- How to parse through bytes in a packets without using helper headers with XDP in C?
- pass by value not supported XDP
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
yes. All the hooks will be called. We need to attach it with "multi" keyword.
bpftool prog load test1.o /sys/fs/bpf/test1 type cgroup/skb
bpftool cgroup attach /sys/fs/cgroup/mygrp egress pinned /sys/fs/bpf/test1 multi
bpftool prog load test2.o /sys/fs/bpf/test2 type cgroup/skb
bpftool cgroup attach /sys/fs/cgroup/mygrp egress pinned /sys/fs/bpf/test2 multi
My simple program with different debug print statement (test2.c): SEC("cgroup/skb") int cgrp_dump_pkt(struct __sk_buff *skb) {
}
ping-446804 [000] d... 374792.037025: bpf_trace_printk: welcome test 1
ping-446804 [000] d... 374792.037038: bpf_trace_printk: welcome test 2