Usbnet for host to host USB type C multigig networking

Does anyone have experience configuring usbnet for host to host (x86) communication? I have three HP mini z2 g4 workstations that have two (2) USB 3.1 10g type c ports. I was thinking about making a small Proxmox cluster, and I was wondering if I could do an A <–> B, B <–> C, C <–> A with the USB type c ports so there was some 10gig networking in the mix.

On two Proxmox hosts I modified /etc/modules, added usbnet to the file, entered update-initramfs -u and rebooted.

Once they came back up, I connected a usb 3.1 / thunderbolt rated cable to both hosts.

I tried to run ip link add usb0 type usbnet but I get an Error: Unknown device type.

lsmod shows this:

root@hpx02:~# lsmod | grep usbnet
usbnet                 49152  1 cdc_ether
mii                    16384  1 usbnet

lsusb shows a Linux Foundation 3.0 root hub, and a 2.0 hub.

Any have any ideas?

You can steal the wifi and add in 2.5g nics via that port

I have actually done that with a cheap-ish realtek card. It barely fits inside the case, but does reach to the panel mount port. I was sort of hoping to use the 1 gig as management, the 2.5 for vm traffic, and the usbnet 10gig(ish) for Ceph storage. Boot each system off the sata drive and leave the nvme slot for Ceph node storage.

I dont think you will get 10g usb nics

I’ve been wondering about that too.

Unfortunately, I lack the USB-C to USB-C cable(LOL) to test this(I only have 2 USB-C capable devices anyway).
From my googling I’ve found this stack overflow answer, and this LKML post.
To summarize, if you want to connect two devices together in this way(just a USB-C to USB-C cable), at least one of the devices ports needs to support DRD(dual-role data), which is pretty rare(and if you have a supported platform, it might be disabled in the BIOS, look for XDCI).

If it does, you can use the device that supports DRD as an Ethernet NCM device(see LKML).

If it doesn’t you might have luck if one of the devices supports OTG(which is different from DRD? I guess? The USB specs are intimidating, and googling such things often gets crap results), then you’d just need to setup the right USB gadgets for ethernet.

My two devices actually are a Gemini lake thinclient(Wyse 5070) and a PinePhone, so with the right cable I could probably test this.

There are also things called USB transfer cables. I’ve never used them, but from what I can tell they are devices that look like cables(Usually with a “knot” in the middle, or one larger USB plug, USB A on both sides) with 2 USB devices that can exchange data.
I’m fairly confident that the USB 2.0 ones typically support USB networking, but the newer ones seem to be locked into some proprietary software that can just transfer files.