# Match only real, physical ethernet via Path= (PCI + USB) and udev's # predictable name pattern. This is more robust than Type=ether + Name= negation: # negations on Name= matched veth/virbr/waydroid interfaces in practice, which # enslaved them into bond0 and broke host networking (waydroid, libvirt, etc.). # # Path=pci-* covers built-in PCIe NICs (enpXsY, ethN). # Path=platform-* covers SoC-attached NICs (none on x86 laptops but harmless). # Name=enx* covers USB ethernet dongles, which have no stable PCI path. [Match] Path=pci-* platform-* Name=en* enx* Type=ether [Network] Bond=bond0 PrimarySlave=true