Re: Linux and RNDIS

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> Date: Thu Mar 07 11:21:47 PST 2002
> Lines: 35
> Distribution: local
> Reply-To: chris.edgington@intelligraphics.com
> 
> Ok, I'm about to broach a topic that might be a sore spot - be I'm
> trying to make sure I understand what I'm dealing with here. A customer
> has approach us about some Linux driver work for a USB network device
> that is a USB RNDIS class device. A quick review of the USB RNDIS stuff
> from MS reveals that USB RNDIS follows the Abstract Control Model -
> which means MS defines the data format.
> 
> My question(s) are:
> 
> Is this just an obvious case of MS trying to get hardware vendors to
> build Windows-specific hardware?

Not overtly, but a case could certainly be made :-)

> It looks like the EULA at the MS site forces you to agree that you will
> not use the info on any other platforms - ie: eliminating the
> possibility of legally implementing an RNDIS class driver on Linux -
> has anyone else come to this conclusion?

Most everyone who has read it. There is even some dicussion as to whether
an open source or GPL device side driver would be ok.

> If this is the case - why would a hardware vendor build an RNDIS device
> - is it solely 'cause then they don't have to provide drivers 'cause MS
>   will?

To save the large cost of implementing or licensing a network over usb 
driver for Windows. 

> Is there any possible way of supporting such a device on non-Windows
> platforms - like somebody who has not reviewed the MS RNDIS information
> reverse-engineering the data format with a CATC or something? Or would
> that likely result in MS legal attacks? (Not that that should be a
> reason to not attempt it.)

It is trivial (if your hardware supports it) to include a second configuration
that implements a different protocol. Non MS operating systems would simply
recoginize the device and select the alternate configuration (set
configuration) which would tell your device to use the alternate protocol.

There are other problems with RNDIS. 

RNDIS requires four endpoints (control, Bulk IN, Bulk Out and Interrupt). This
eliminates popular devices based on the StrongArm (which has not Interrupt
endpoint). 

RNDIS also requires that the device have two interfaces, the second interface
must be available with a second alternate setting. This eliminates devices that
either cannot implement multiple interfaces (Hitachi SH3) or cannot select a
second interface with a non-zero alternate setting (Linkup L7205).

RNDIS is also not available by default anywhere except in WinXP. You will need
to include a copy for use in older systems. 

RNDIS is fairly new, it is not known how stable or mature it is.

For a commercial Windows driver that can be adapted to your needs you might
want to contact www.mcci.com. They have a reliable product.

For a potential open windows driver you can look at the (not finished)
driver that Compaq released via www.handhelds.org (itsyeth.tgz).

-- 
sdjl@fireplug.net

-
: send the line "unsubscribe linux-net" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux 802.1Q VLAN]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Git]     [Bugtraq]     [Yosemite News and Information]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux PCI]     [Linux Admin]     [Samba]

  Powered by Linux