Juniper / ebplane

eBPF based dataplane prototypes
Apache License 2.0
23 stars 4 forks source link

Xdp loader changes #22

Closed anandrao79 closed 5 years ago

anandrao79 commented 5 years ago

closes-jira-bug: CEM-8952

This changeset contains the following changes:

- Changes to download the linux src and install the kernel headers
- ebdp_utils.c - wrapper APIs to call the libbpf APIs. Right now the
                 APIs to load/unload ebpf code is available.
                 Loading of ebpf sample code through filepath is tested.
- xdp_loader.cc - A C++ class to load the ebpf xdp code via the ebpd_utils
                  APIs
- xdp_loader_test.cc - Test code for xdp_loader.cc

TODO:
 - The buffer load API is failing with the following err
   libbpf: Error loading BTF: Invalid argument(22)
   libbpf: Error loading .BTF into kernel: -22.
   BPF buffer opened, obj: 0x1db0e00
   libbpf: load bpf program failed: Invalid argument
   libbpf: failed to load program 'xdp'
   libbpf: failed to load object 'ebpf_sample'
   Error: eBPF program ebpf_sample load failed -4009
 - The libbpf code is being compiled using the system linux headers.
   It should use the headers we provide.
 - Better way to install the headers rather than doing it using the src.