0

this is a clone repo I had https://github.com/vincentmli/XDPeriments/blob/master/Cookies/xdp_dns_cookies_kern.c and i am trying to initialize the tail call program array map statically instead of running user space eBPF loader to populate the program array map like https://github.com/vincentmli/XDPeriments/blob/master/Cookies/xdp_dns_cookies_user.c

here is the program array map I modified as below

https://github.com/vincentmli/XDPeriments/blob/master/Cookies/xdp_dns_cookies_kern.c#L659-L671

struct {
        __uint(type, BPF_MAP_TYPE_PROG_ARRAY);
        __uint(max_entries, 3);
        __uint(key_size, sizeof(uint32_t));
        __uint(value_size, sizeof(uint64_t));
        __array(values, int (void *));
} jmp_rate_table SEC(".maps") = {
        .values = {
                [DO_RATE_LIMIT_IPV6] = (void *)&xdp_do_rate_limit_ipv6,
                [DO_RATE_LIMIT_IPV4] = (void *)&xdp_do_rate_limit_ipv4,
        },
};

Note I had to use gcc to compile the xdp_dns_cookies_user to load the program https://github.com/NLnetLabs/XDPeriments/issues/6

root@vincent-pc2:/home/vincent/go/src/github.com/vincentmli/XDPeriments/Cookies# ./xdp_dns_cookies_user 
libbpf: map 'jmp_rate_table': should be map-in-map.
ERROR: opening BPF object file failed
(null) successfully loaded and running on interface lo.
Press Ctrl-C to stop and unload.
^C

you can see libbpf indicates that the jmp_rate_table should be map-in-map table, am I initializing the map wrong?

1 Answer 1

0

it turned out I need to use clang to compile the https://github.com/vincentmli/XDPeriments/blob/master/Cookies/xdp_dns_cookies_user.c instead of gcc. answered here https://github.com/libbpf/libbpf/issues/690#issuecomment-1550548336

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.