Ethernet over USB is missing USB standard CDC protocol (Bug #165)

Added by Eric Hildum over 2 years ago. Updated over 2 years ago.

Status:In Progress Start date:12/17/2015
Priority:Normal Due date:
Assignee:Robert Nelson % Done:


Target version:-


For compatibility with Windows XP, the default configuration for ethernet over USB was Microsoft's proprietary RNDIS protocol, instead of the USB standard CDC protocol. However, Microsoft has supported Ethernet CDC since Windows Vista, and Windows XP is no longer an operating system supported by Microsoft. Ethernet CDC support is a configuration option available in most linux releases, including all recent Debian releases.

It is now time to move from RNDIS to CDC. This will remove the need to install additional drivers on many systems.


Updated by Robert Nelson over 2 years ago

What's the windows signing requirement for CDC Drivers?

For RNDIS, a windows standard we are forced to get signed windows drivers..


  • Assignee set to Robert Nelson
  • Status changed from New to In Progress

Updated by Eric Hildum over 2 years ago

I am not sure that will be much of an issue. I am not asking you to turn off RNDIS support at this point, but just turn on the CDC ECM support already available in Debian. The two should coexist without issue as the beagle board is already a composite device.

I am not entirely sure what drives the requirement for a Windows driver for RNDIS since RNDIS is a built in, but then I never understood why Windows requires drives for standard USB devices. I can plug things into my Macs and they just work, with my Windows boxes I always need a driver or two, or three... Somehow Windows implementation of standard USB classes are incomplete.

Updated by Robert Nelson over 2 years ago

Yeah, i tried that previous, but thanks to windows, it's actually either or: see this bug report:


Then with rndis, windows7/8/10 needs a signed driver:

If you can show me dropping rndis, enabling cdc, and then windows working without a signed driver. Then we will do it..


Updated by Eric Hildum over 2 years ago

I don't think the issue is actually in Windows, as other devices exist which have both RNDIS and CDC. The problem is with the kernel, which creates two configurations when both RNDIS and CDC are turned on. It does not need to do this, so this is probably some implementation issue or configuration option somebody did not think about when they designed the code.

It is not clear to me what your driver actually does; since RNDIS is native to windows, it obviously is not doing that. What does the driver actually do? It it just telling windows what driver to load for the USB device?

Also available in: Atom PDF