logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

udbp — USB Double Bulk Pipe driver

Authors

       The udbp driver was written by Doug Ambrisko <ambrisko@whistle.com>, Julian Elischer <julian@FreeBSD.org>
       and Nick Hibma <n_hibma@FreeBSD.org>.

       This  manual  page  was  written  by  Nick  Hibma  <n_hibma@FreeBSD.org>  and  updated  by  Bruce Simpson
       <bms@FreeBSD.org>.

Debian                                          October 20, 2017                                         UDBP(4)

Bugs

       The udbp driver does  not  support  the  special  packets  described  in  section  5.1  of  the  CDC  EEM
       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.

Description

       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 WindowsUSBEasyTransfer, 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.  This can be done either by  adding  optionsNETGRAPH  to  your
       kernel   configuration   file,   or   alternatively   loading   netgraph(4)  as  a  module,  either  from
       /boot/loader.conf or from the command line, before the udbp module.

Examples

optionsNETGRAPHdeviceudbp

       Add the udbp driver to the kernel.

             kldloadnetgraphkldloadudbp

       Load the netgraph(4) module and then the udbp driver.

             ngctlmkpeerudbp0:eifacedataetherifconfigngeth0etheraa:dd:xx:xx:xxifconfigngeth0inet169.254.x.x/16

       Create a new Ethernet network interface node and connect its ether hook to the  data  hook  of  the  udbp
       driver.

       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.

History

       The udbp driver first appeared in FreeBSD 5.0.

Name

       udbp — USB Double Bulk Pipe driver

See Also

netgraph(4), ng_eiface(4), ohci(4), uhci(4), usb(4), ngctl(8)

       UniversalSerialBus:CommunicationsClassSubclassSpecificationforEthernetEmulationModelDevices,
       USBImplementersForum,Inc.,             Revision             1.0,
       http://www.usb.org/developers/docs/devclass_docs/CDC_EEM10.pdf, February 2, 2005.

       TotalCommander:SupportedcablesforUSBcableconnection,   GhislerSoftwareGmbH.,
       https://www.ghisler.com/cables/index.htm.

Synopsis

       To compile this driver into the kernel, place the following line in your kernel configuration file:

             deviceudbp

       Alternatively, to load the driver as a module at boot time, place the following line in loader.conf(5):

             udbp_load="YES"

See Also