USB Ethernet Drivers And Their Subclass Types
photo credit: Csaba_Bajko
Operating systems such as Windows or Linux provide usb drivers for common peripheral devices. This eliminates the need for companies to have to give you drivers that you must install to use their devices. These usb devices fall under what is known as a usb class. So when it comes to the general usb class of Communications Devices, ethernet is grouped along with telephones, cable modems, serial com ports in the defined usb communication-device class (CDC).
So a person creating a project that would work across different computer types should be able to just adhere to this standard, right? Well, Microsoft goes there own way on this one. They have created a subclass to this standard called Remote Network Driver Interface Specification or RNDIS and this has proprietary extensions. In defense of RNDIS, it is actually easier to do than the proper Ethernet subclass of the CDC and (get this) it exists in Linux also. So Microsoft does not adhere to the ethernet subclass and a device that only uses this RNDIS class wouldn’t work on an operating system that does have the ethernet subclass but not RNDIS.
It also should be mentioned here that there is also another ethernet subclass called the Ethernet Emulation Model or EEM subclass. This is also another way that usb can send and receive ethernet frames. The EEM subclass is intended to be less expensive and more efficient than the previously mentioned ethernet subclass.
Related posts: