Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 27 Dec 2007 22:18:59 GMT
From:      Hans Petter Selasky <hselasky@FreeBSD.org>
To:        Perforce Change Reviews <perforce@FreeBSD.org>
Subject:   PERFORCE change 131808 for review
Message-ID:  <200712272218.lBRMIxVT024691@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=131808

Change 131808 by hselasky@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_ */



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200712272218.lBRMIxVT024691>