aya-rs/aya

"bpf_skb_pull_data" unknown function.

Closed this issue · 1 comments

Hey!

Currently I am facing an issue with a member function .pull_data on a socket buffer causing a run time error.

99: (85) call bpf_skb_pull_data#39
unknown func bpf_skb_pull_data#39
verification time 56748 usec
stack depth 24+0
processed 7595 insns (limit 1000000) max_states_per_insn 4 total_states 84 peak_states 84 mark_read 82

Context

// Read payload if present
            if payload_len > 0 && payload_len <= 1500 {
                let payload = ctx.pull_data(0);
                // let key = get_next_key()?;
                // PACKET_META.insert(&key, &metadata, 0)?;
                // PACKET_PAYLOAD.insert(&key, &*scratch, 0)?;
            }

Caused by:
    Invalid argument (os error 22)

Here are my bpftool features that are enabled for that function

xxxxx@xxxxxx-xxxx-xxxxxx:~/xxx_stratum_ebpf_telemetry$ sudo bpftool feature probe | grep pull
        - bpf_skb_pull_data
        - bpf_skb_pull_data
        - bpf_skb_pull_data
        - bpf_skb_pull_data
        - bpf_skb_pull_data
        - bpf_skb_pull_data
        - bpf_msg_pull_data
        - bpf_skb_pull_data

Clang info

clang++-18 -v
Ubuntu clang version 18.1.8 (++20240731025043+3b5b5c1ec4a3-1~exp1~20240731145144.92)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/13
Selected GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/13
Candidate multilib: .;@m64

Conclustion

Any help would be appreciated here.

The program type socket filter does not support pull_data

#[socket_filter]