udbp4
Usb double bulk pipe driver
Usage
device netgraph device udbp
In loader.conf(5): netgraph_load="YES" udbp_load="YES"
Overview
The udbp driver provides support for host-to-host cables that contain at least two bulk pipes (one for each direction). This typically includes cables branded for use with Windows USB Easy Transfer, and many cables based on the Prolific PL2xx1 series of USB bridge chips. A useful (but non-comprehensive) list of compatible USB host cables is listed in the SEE ALSO section below.
It requires netgraph(4) to be available.
Examples
Create a new Ethernet network interface node and connect its ether hook to the data hook of the udbp driver:
ngctl mkpeer udbp0: eiface data ether
ifconfig ngeth0 ether aa:dd:xx:xx:xx
ifconfig ngeth0 inet 169.254.x.x/16
This enables FreeBSD to communicate with a Linux peer (e.g. using the plusb driver). The Linux node should be configured to prefer link-local IPv4 addresses (e.g. using Network Manager in Debian and Red Hat derived distributions).
Whilst both FreeBSD and Linux are able to interoperate by loosely following CDC EEM 1.0 in their behaviour, neither implementation has been expressly designed to follow its specification.
Caveats
The point-to-point nature and additional latency of USB host-host links makes them unsuitable as a "drop-in" replacement for an Ethernet LAN; for a USB 3.0 SuperSpeed cable, latency is comparable to 100BaseTX Ethernet (but often worse), with throughput comparable to 2.5GBASE-T.
However, their energy efficiency makes them attractive for embedded applications. A Plugable PL27A1 cable claims 24mA of USB3 bus power, as compared to 150mA for a typical USB 3.0 to Gigabit Ethernet interface.
Releases
56 releases since FreeBSD 5.0-RELEASE; the text changed 35 times.