I am trying to network boot some development hardware using usb gadget ethernet. I have a basic configuration working, but newer versions of udev enforce "predictable network interface names". The result is that instead of loading a generic usb0 interface I get something like enp0s20u1u2c2i1. That is fine, but if I ever connect to a different usb port the interface name changes which breaks my nfs setup. It also makes it difficult to share my configuration files with someone else.
I believe it should be possible to write a simple udev rule that sets a known interface name regardless of the port it was plugged into, but I am by no means a udev expert. I have tried the rule below with no success.
SUBSYSTEM=="net", ACTION=="add", ATTRS{configuration}=="RNDIS", NAME="usb0"
Can anybody help me out here? Is there a better way to solve this problem?