Skip to content

Commit

Permalink
Update bindings for libbpf v1.0.0
Browse files Browse the repository at this point in the history
xsk APIs are deprecated in libbpf and removed in this release [0].
This means removing all of the custom binding functions that we defined
in previous commits.

And the macro `BTF_KIND_ENUM64` was added causing definition collisions
in the generation [1].

[0] libbpf/libbpf@8ee1202
[1] libbpf/libbpf@a945df2
  • Loading branch information
mdaverde authored and alexforster committed Aug 26, 2022
1 parent 654d1e1 commit 3a6f3f6
Show file tree
Hide file tree
Showing 6 changed files with 161 additions and 1,265 deletions.
76 changes: 0 additions & 76 deletions bindings.c
Original file line number Diff line number Diff line change
Expand Up @@ -3,79 +3,3 @@
//
// Wrap the inline functions in libbpf with C functions so Rust bindings can be generated
//

inline __u64 *_xsk_ring_prod__fill_addr(struct xsk_ring_prod *fill, __u32 idx)
{
return xsk_ring_prod__fill_addr(fill, idx);
}

inline const __u64 *_xsk_ring_cons__comp_addr(const struct xsk_ring_cons *comp, __u32 idx)
{
return xsk_ring_cons__comp_addr(comp, idx);
}

inline size_t _xsk_ring_cons__peek(struct xsk_ring_cons *cons,
size_t nb, __u32 *idx)
{
return xsk_ring_cons__peek(cons, nb, idx);
}

inline void _xsk_ring_cons__release(struct xsk_ring_cons *cons, size_t nb)
{
xsk_ring_cons__release(cons, nb);
}

inline size_t _xsk_ring_prod__reserve(struct xsk_ring_prod *prod, size_t nb, __u32 *idx)
{
return xsk_ring_prod__reserve(prod, nb, idx);
}

inline void _xsk_ring_prod__submit(struct xsk_ring_prod *prod, size_t nb)
{
xsk_ring_prod__submit(prod, nb);
}

inline const struct xdp_desc *_xsk_ring_cons__rx_desc(const struct xsk_ring_cons *rx, __u32 idx)
{
return xsk_ring_cons__rx_desc(rx, idx);
}

inline extern struct xdp_desc *_xsk_ring_prod__tx_desc(struct xsk_ring_prod *tx, __u32 idx)
{
return xsk_ring_prod__tx_desc(tx, idx);
}

inline void *_xsk_umem__get_data(void *umem_area, __u64 addr)
{
return xsk_umem__get_data(umem_area, addr);
}

inline int _xsk_ring_prod__needs_wakeup(const struct xsk_ring_prod *r)
{
return xsk_ring_prod__needs_wakeup(r);
}

inline int _xsk_prod_nb_free(struct xsk_ring_prod *r, __u32 nb)
{
return xsk_prod_nb_free(r, nb);
}

inline int _xsk_cons_nb_avail(struct xsk_ring_cons *r, __u32 nb)
{
return xsk_cons_nb_avail(r, nb);
}

inline __u64 _xsk_umem__extract_addr(__u64 addr)
{
return xsk_umem__extract_addr(addr);
}

inline __u64 _xsk_umem__extract_offset(__u64 addr)
{
return xsk_umem__extract_offset(addr);
}

inline __u64 _xsk_umem__add_offset_to_addr(__u64 addr)
{
return xsk_umem__add_offset_to_addr(addr);
}
32 changes: 0 additions & 32 deletions bindings.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,42 +4,10 @@
#include <bpf/bpf.h>
#include <bpf/btf.h>
#include <bpf/libbpf.h>
#include <bpf/xsk.h>
#else
#include "libbpf/include/uapi/linux/if_link.h"
#include "libbpf/include/uapi/linux/perf_event.h"
#include "libbpf/src/bpf.h"
#include "libbpf/src/btf.h"
#include "libbpf/src/libbpf.h"
#include "libbpf/src/xsk.h"
#endif /* __LIBBPF_SYS_NOVENDOR */

extern __u64 *_xsk_ring_prod__fill_addr(struct xsk_ring_prod *fill, __u32 idx);

extern const __u64 *_xsk_ring_cons__comp_addr(const struct xsk_ring_cons *comp, __u32 idx);

extern size_t _xsk_ring_cons__peek(struct xsk_ring_cons *cons, size_t nb, __u32 *idx);

extern void _xsk_ring_cons__release(struct xsk_ring_cons *cons, size_t nb);

extern size_t _xsk_ring_prod__reserve(struct xsk_ring_prod *prod, size_t nb, __u32 *idx);

extern void _xsk_ring_prod__submit(struct xsk_ring_prod *prod, size_t nb);

extern const struct xdp_desc *_xsk_ring_cons__rx_desc(const struct xsk_ring_cons *rx, __u32 idx);

extern struct xdp_desc *_xsk_ring_prod__tx_desc(struct xsk_ring_prod *tx, __u32 idx);

extern void *_xsk_umem__get_data(void *umem_area, __u64 addr);

extern int _xsk_ring_prod__needs_wakeup(const struct xsk_ring_prod *r);

extern int _xsk_prod_nb_free(struct xsk_ring_prod *r, __u32 nb);

extern int _xsk_cons_nb_avail(struct xsk_ring_cons *r, __u32 nb);

extern __u64 _xsk_umem__extract_addr(__u64 addr);

extern __u64 _xsk_umem__extract_offset(__u64 addr);

extern __u64 _xsk_umem__add_offset_to_addr(__u64 addr);
5 changes: 1 addition & 4 deletions build.rs
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ fn generate_bindings(src_dir: path::PathBuf) {
"BTF_KIND_FLOAT",
"BTF_KIND_DECL_TAG",
"BTF_KIND_TYPE_TAG",
"BTF_KIND_ENUM64",
]
.into_iter()
.collect(),
Expand All @@ -50,19 +51,15 @@ fn generate_bindings(src_dir: path::PathBuf) {
.allowlist_function("bpf_.+")
.allowlist_function("btf_.+")
.allowlist_function("libbpf_.+")
.allowlist_function("xsk_.+")
.allowlist_function("_xsk_.+")
.allowlist_function("perf_.+")
.allowlist_function("ring_buffer_.+")
.allowlist_function("vdprintf")
.allowlist_type("bpf_.+")
.allowlist_type("btf_.+")
.allowlist_type("xdp_.+")
.allowlist_type("xsk_.+")
.allowlist_type("perf_.+")
.allowlist_var("BPF_.+")
.allowlist_var("BTF_.+")
.allowlist_var("XSK_.+")
.allowlist_var("XDP_.+")
.allowlist_var("PERF_.+")
.parse_callbacks(Box::new(ignored_macros))
Expand Down
2 changes: 1 addition & 1 deletion libbpf
Submodule libbpf updated 74 files
+3 −3 .github/actions/build-selftests/build_selftests.sh
+6 −14 .github/actions/build-selftests/helpers.sh
+73,598 −68,776 .github/actions/build-selftests/vmlinux.h
+5 −3 .github/actions/vmtest/action.yml
+2 −2 .github/workflows/build.yml
+1 −1 .github/workflows/coverity.yml
+1 −1 .github/workflows/ondemand.yml
+1 −1 .github/workflows/pahole.yml
+1 −1 .github/workflows/test.yml
+0 −130 .travis.yml
+1 −1 BPF-CHECKPOINT-COMMIT
+1 −1 CHECKPOINT-COMMIT
+38 −18 README.md
+0 −0 ci/diffs/.do_not_use_dot_patch_here
+0 −0 ci/diffs/001-fix-oob-write-in-test_verifier.diff
+7 −6 ci/managers/debian.sh
+15 −0 ci/managers/test_compile.sh
+0 −0 ci/managers/travis_wait.bash
+4 −3 ci/managers/ubuntu.sh
+0 −0 ci/rootfs/mkrootfs_arch.sh
+13 −6 ci/rootfs/mkrootfs_debian.sh
+0 −0 ci/rootfs/mkrootfs_tweak.sh
+0 −0 ci/rootfs/s390x-self-hosted-builder/README.md
+0 −0 ci/rootfs/s390x-self-hosted-builder/actions-runner-libbpf.Dockerfile
+0 −0 ci/rootfs/s390x-self-hosted-builder/actions-runner-libbpf.service
+0 −0 ci/rootfs/s390x-self-hosted-builder/fs/usr/bin/actions-runner
+0 −0 ci/rootfs/s390x-self-hosted-builder/fs/usr/bin/entrypoint
+0 −0 ci/rootfs/s390x-self-hosted-builder/qemu-user-static.service
+0 −0 ci/vmtest/configs/ALLOWLIST-4.9.0
+1 −2 ci/vmtest/configs/ALLOWLIST-5.5.0
+1 −0 ci/vmtest/configs/DENYLIST-5.5.0
+1 −0 ci/vmtest/configs/DENYLIST-latest
+4 −0 ci/vmtest/configs/DENYLIST-latest.s390x
+6 −14 ci/vmtest/helpers.sh
+76 −0 ci/vmtest/run_selftests.sh
+2 −11 docs/libbpf_naming_convention.rst
+213 −9 include/uapi/linux/bpf.h
+14 −3 include/uapi/linux/btf.h
+3 −0 include/uapi/linux/if_link.h
+5 −2 include/uapi/linux/perf_event.h
+2 −2 include/uapi/linux/pkt_cls.h
+17 −7 src/Makefile
+141 −334 src/bpf.c
+26 −125 src/bpf.h
+11 −0 src/bpf_core_read.h
+245 −9 src/bpf_helper_defs.h
+13 −0 src/bpf_helpers.h
+53 −21 src/bpf_tracing.h
+206 −208 src/btf.c
+33 −86 src/btf.h
+110 −50 src/btf_dump.c
+1 −1 src/gen_loader.c
+856 −1,628 src/libbpf.c
+112 −459 src/libbpf.h
+18 −109 src/libbpf.map
+3 −13 src/libbpf_common.h
+19 −23 src/libbpf_internal.h
+28 −2 src/libbpf_legacy.h
+6 −121 src/libbpf_probes.c
+2 −2 src/libbpf_version.h
+2 −5 src/linker.c
+10 −55 src/netlink.c
+431 −48 src/relo_core.c
+8 −2 src/relo_core.h
+8 −6 src/skel_internal.h
+4 −16 src/usdt.bpf.h
+65 −64 src/usdt.c
+0 −1,279 src/xsk.c
+0 −336 src/xsk.h
+1 −0 travis-ci
+0 −14 travis-ci/managers/test_compile.sh
+0 −2,710 travis-ci/vmtest/configs/config-latest.s390x
+0 −3,071 travis-ci/vmtest/configs/config-latest.x86_64
+0 −63 travis-ci/vmtest/run_selftests.sh
Loading

0 comments on commit 3a6f3f6

Please sign in to comment.