PERFORCE change 131808 for review
Hans Petter Selasky
hselasky at FreeBSD.org
Thu Dec 27 14:19:00 PST 2007
http://perforce.freebsd.org/chv.cgi?CH=131808
Change 131808 by hselasky at hselasky_laptop001 on 2007/12/27 22:18:49
This is the first step towards a currently FreeBSD specific
extension to the USB CDC Ethernet protocol. The extension
will allow for super high IP transfer rates without the need to
copy any data or per-IP-packet interrupts, just like an
ordinary ethernet controller.
Background: When I started reworking the USB ethernet
drivers I noticed that the authors had in mind allocating
and queueing multiple USB transfers at a time to boost
performance. Unfortunatly that would not have increased
any performance, because the USB Host Controller would have
had to interrupt for every IP-packet anyway, which would
have been the boottlneck. Now that I have implemented
something I have called "multi sub-framing" it will
finally become realistic to do exactly that, and in
a very efficient way using only one USB transfer per
direction!
Affected files ...
.. //depot/projects/usb/src/sys/dev/usb/usb_cdc.h#7 edit
Differences ...
==== //depot/projects/usb/src/sys/dev/usb/usb_cdc.h#7 (text+ko) ====
@@ -188,4 +188,13 @@
#define UCDC_MDM_PARITY_ERR 0x20
#define UCDC_MDM_OVERRUN_ERR 0x40
+/* Multi Frame Ethernet Header */
+typedef struct {
+ uByte bSig0[2]; /* "MF" */
+ uDWord dwFramesAhead;
+ uDWord dwFramesAheadInverse;
+} __packed usb_cdc_mf_eth_header_t;
+
+#define CDC_MF_ETH_HEADER_SIZE 10 /* bytes */
+
#endif /* _USB_CDC_H_ */
More information about the p4-projects
mailing list