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