Hi, On Sun, Oct 12, 2025 at 06:00:13PM +0200, Joan Lledó wrote:
> For the Hurd, I found the BPF implementation was not clear and apparently > there are three methods: > - GNU Mach implementation at `/device/bpf.h`. > - Hurd implementation through libbpf: Only used from eth-multiplexer > AFAIK. > - libpcap: Tries to use the GNU Mach implementation, if it can't, it reads > all packets and filters it itself. IIRC the idea here was that normally, BPF is provided by the Mach device; but since eth-multiplexer opens the Mach device and in turn offers Mach-like virtual devices for use by other programs, it needs to implement BPF for these virtual devices, so programs can use it with the them just like with the raw Mach device. That server-side userspace implementation is what libbpf is for. In other words, using the implementation provided by Mach devices is indeed the right thing to do -- whether directly or through libpcap... -antrik-
