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

cdce — USB Communication Device Class Ethernet (CDC ECM/NCM) driver

Authors

       The  cdce driver was written by Craig Boston <craig@tobuj.gank.org> based on the aue(4) driver written by
       Bill Paul <wpaul@windriver.com> and ported to OpenBSD by Daniel Hartmeier <dhartmei@openbsd.org>.

Caveats

       Many USB devices notoriously fail to report their class and interfaces  correctly.   Undetected  products
       might work flawlessly when their vendor and product IDs are added to the driver manually.

Debian                                            May 21, 2018                                           CDCE(4)

Description

       The  cdce driver provides support for USB Host-to-Host (aka USB-to-USB) and USB-to-Ethernet bridges based
       on the USB Communication Device Class Ethernet Control Model (CDC ECM) and  Network  Control  Model  (CDC
       NCM) specifications.  It also provides device-side CDC ECM support.

       The USB bridge appears as a regular network interface on both sides, transporting Ethernet frames.

       For more information on configuring this device, see ifconfig(8).

       USB 1.x bridges support speeds of up to 12Mbps, and USB 2.0 speeds of up to 480Mbps.

       Packets are received and transmitted over separate USB bulk transfer endpoints.

       The cdce driver does not support different media types or options.

Diagnostics

cdce%d:nouniondescriptor  The driver could not fetch an interface descriptor from the USB device.  For
       a  manually  added  USB  vendor/product,  the  CDCE_NO_UNION flag can be tried to work around the missing
       descriptor.

       cdce%d:nodatainterfacecdce%d:couldnotreadendpointdescriptorcdce%d:unexpectedendpointcdce%d:couldnotfinddatabulkin/out  For a manually added USB vendor/product, these  errors  indicate
       that the bridge is not compatible with the driver.

       cdce%d:watchdogtimeout  A packet was queued for transmission and a transmit command was issued, however
       the device failed to acknowledge the transmission before a timeout expired.

       cdce%d:nomemoryforrxlist--packetdropped!  Memory allocation through MGETHDR or MCLGET failed, the
       system is running low on mbufs.

       cdce%d:abort/closerx/txpipefailedcdce%d:rx/txlistinitfailedcdce%d:openrx/txpipefailedcdce%d:usberroronrx/tx

Hardware

       The following devices are supported by the cdce driver:

          Prolific PL-2501 Host-to-Host Bridge Controller
          Sharp Zaurus PDA
          Terayon TJ-715 DOCSIS Cable Modem

History

       The cdce device driver first appeared in OpenBSD 3.6, NetBSD 3.0 and FreeBSD 6.0.

Name

       cdce — USB Communication Device Class Ethernet (CDC ECM/NCM) driver

See Also

arp(4), cdceem(4), intro(4), ipheth(4), netintro(4), urndis(4), usb(4), ifconfig(8)

       UniversalSerialBusClassDefinitionsforCommunicationDevices,
       http://www.usb.org/developers/devclass_docs/usbcdc11.pdf.

       DatasheetProlificPL-2501Host-to-HostBridge/NetworkController,
       http://tech.prolific.com.tw/visitor/fcabdl.asp?fid=20679530.

Synopsis

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

             deviceuhcideviceohcideviceusbdevicemiibusdeviceuetherdevicecdce

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

             if_cdce_load="YES"

See Also