Thunderbolt allows for peer-to-peer network connections by connecting two computers directly via a thunderbolt cable. Mika from Intel added support for this to the 4.15 kernel. Recently, Thomas Haller from NetworkManager and I worked together to figure out what needs to be done in userspace to make it work. As it turns out, it was not that hard and the pull-request was merged swiftly.
So now if you connect your GNU/Linux box to another machine, NetworkManager will configure the connection to be a Link-Local one.
I have successfully tested Fedora to Fedora, Fedora to macOS and Fedora to Windows 10. The other operating systems also use a Link-Local address by default.
The technical details
When another host is connected via thunderbolt, we get a new device in sysfs that resembles a normal thunderbolt device but is of
thunderbolt_xdomain. Like a normal thunderbolt device, it has a
unique_id and a
device_name, but is missing the
key attributes. A new udev rule in NetworkManager was added to load the
thunderbolt-net kernel module. As a result, we get a new network device (
Another udev rule will set a new udev property (
NM_AUTO_DEFAULT_LINK_LOCAL_ONLY) to all network devices where the driver is
thunderbolt-net to instruct NetworkManager to use the Link-Local configuration on these interfaces.
The dev snapshot release 1.11.3-dev has the thunderbolt networking support. Grab it, build it, and start playing around with it! Feel free to post your record transfer speeds in the comments ⚡ 🏆.