Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
CDCE(4)		       FreeBSD Kernel Interfaces Manual		       CDCE(4)

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

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

	   device uhci
	   device ohci
	   device usb
	   device miibus
	   device uether
	   device cdce

     Mobile Devices (eg. Huawei	E3372, E5573 and others) may need additionally
     the u3g command port:

	   device ucom
	   device u3g

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


     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 end-

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

     Mobile cdce Network Devices may need a connect command sequence via u3g
     serial command port before	they activate the NCM/ECM/ACM network inter-
     face. Example: echo 'AT^NDISUP=1,1,"internet"' > /dev/cuaU[0].0, where
     "internet"	is your	providers apn name.

     The following devices are supported by the	cdce driver:

     o	 Prolific PL-2501 Host-to-Host Bridge Controller
     o	 Sharp Zaurus PDA
     o	 Terayon TJ-715	DOCSIS Cable Modem
     o	 Realtek RTL8156 USB GBE/2.5G Ethernet Family Controller
     o	 Planex	USB-LAN2500R
     o	 Huawei	3G/4G LTE (eg. E3372, E5573) and other mobile network devices

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

     cdce%d: no	data interface
     cdce%d: could not read endpoint descriptor
     cdce%d: unexpected	endpoint
     cdce%d: could not find data bulk in/out  For a manually added USB ven-
     dor/product, these	errors indicate	that the bridge	is not compatible with
     the driver.

     cdce%d: watchdog timeout  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: no	memory for rx list -- packet dropped!  Memory allocation
     through MGETHDR or	MCLGET failed, the system is running low on mbufs.

     cdce%d: abort/close rx/tx pipe failed
     cdce%d: rx/tx list	init failed
     cdce%d: open rx/tx	pipe failed
     cdce%d: usb error on rx/tx

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

     Universal Serial Bus Class	Definitions for	Communication Devices,

     Data sheet	Prolific PL-2501 Host-to-Host Bridge/Network Controller,

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

     The cdce driver was written by Craig Boston <>	based
     on	the aue(4) driver written by Bill Paul <> and
     ported to OpenBSD by Daniel Hartmeier <>.

     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.

FreeBSD	13.0		       February	10, 2023		  FreeBSD 13.0


Want to link to this manual page? Use this URL:

home | help