Yureka Lilian <yureka@cyberchaos.dev> writes:
The xdp-forwarder's purpose is implementing the functionality needed within the net-vm (a VM running the Linux drivers for any physical interfaces on the spectrum system).
In the future, the net-vm will load the included XDP programs on the passed-through physical interfaces as well as the downstream virtio interface going into the router (recognized by its special MAC address).
The net-vm needs to multiplex between the physical interfaces, as there might be several interfaces in the same IOMMU-group.
For this, the XDP program loaded on the physical interfaces (`prog_physical.o`) applies a VLAN tag corresponding to the interface id and redirects the packets to the router interface (identified by the `router_iface` bpf map). In the other direction the XDP program loaded on the router interface (`prog_router.o`) removes one layer of VLAN tagging and redirects the packets to the interface read from the VLAN tag.
The helper program `set_router_iface` is used to update the `router_iface` bpf map to point to the interface passed as argument to the program.
Co-authored-by: Demi Marie Obenour <demiobenour@gmail.com> Signed-off-by: Yureka Lilian <yureka@cyberchaos.dev>
Demi: are you able to give a Signed-off-by for your part in this? (I'm referring to the kernel documentation[1] for best practices with this stuff, and it says to get Signed-off-by from every author for a patch. No need to worry about it being pedantic on what order the tags come in etc. though, or the fact that the kernel uses Co-developed-by rather than Co-authored-by like everybody else.) [1]: https://kernel.org/doc/html/latest/process/submitting-patches.html#when-to-u...