networkservicemesh / integration-k8s-packet

Apache License 2.0
0 stars 9 forks source link

[R&D] Packet: AF_XDP support #338

Open glazychev-art opened 1 year ago

glazychev-art commented 1 year ago

Description

Root issue: https://github.com/networkservicemesh/cmd-forwarder-vpp/issues/859

We recently added AF_XDP support to the forwarder-vpp. But it doesn't work on the Packet cluster. This is most likely due to the fact that af_xdp vpp plugin doesn't process bonded interfaces (they are used by Packet servers).

glazychev-art commented 1 year ago

Steps to solve the problem: 1. Ask vpp community - https://lists.fd.io/g/vpp-dev/topic/does_af_xdp_plugin_support/98902915 2. Check different settings for bond (see ip link help bond) - 3h 3. Collection and analysis interface statistics (on the kernel and vpp side) - 7h 4. Check vpp af_xdp plugin implementation - 14h 5. Explore some xdp examples from the kernel (see: https://elixir.bootlin.com/linux/v5.15.80/source/samples/bpf) - 7h 6. Explore how bond interface works with xdp (see: https://github.com/torvalds/linux/commit/9e2ee5c7e7c3) - 7h 7. Try the linux kernel v6 - 7h

glazychev-art commented 1 year ago

AF_XDP bond interface discussion - https://github.com/xdp-project/xdp-tutorial/issues/362

glazychev-art commented 1 year ago

We now have 2 options: Option 1: Dive into linux kernel and libxdp to find the cause (most likely it is not feasible) Option 2: Change server configuration (Equinix Metal server uses bond by default). We can drop bond in favor of a simple single interface on setup.

denis-tingaikin commented 7 months ago

Currently, it's not possible to implement https://github.com/xdp-project/xdp-tutorial/issues/362#issuecomment-1559527428