On Fri, Oct 18, 2019 at 11:33:40AM +0200, Magnus Karlsson wrote:
> +
> +   #include <linux/bpf.h>
> +   #include "bpf_helpers.h"
> +
> +   #define MAX_SOCKS 16
> +
> +   struct {
> +        __uint(type, BPF_MAP_TYPE_XSKMAP);
> +        __uint(max_entries, MAX_SOCKS);
> +        __uint(key_size, sizeof(int));
> +        __uint(value_size, sizeof(int));
> +   } xsks_map SEC(".maps");
> +
> +   struct {
> +        __uint(type, BPF_MAP_TYPE_PERCPU_ARRAY);
> +        __uint(max_entries, 1);
> +        __type(key, int);
> +        __type(value, unsigned int);
> +   } rr_map SEC(".maps");

hmm. does xsks_map compile?

> +
> +   SEC("xdp_sock") int xdp_sock_prog(struct xdp_md *ctx)
> +   {
> +     int key = 0, idx;
> +     unsigned int *rr;
> +
> +     rr = bpf_map_lookup_elem(&rr_map, &key);
> +     if (!rr)
> +        return XDP_ABORTED;

could you please use global data and avoid lookup?
The run-time will be much faster.

Reply via email to