From owner-svn-src-all@FreeBSD.ORG Sun Feb 23 13:22:06 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 4BC4E540; Sun, 23 Feb 2014 13:22:06 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 29D4D1C10; Sun, 23 Feb 2014 13:22:06 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.8/8.14.8) with ESMTP id s1NDM6lr041975; Sun, 23 Feb 2014 13:22:06 GMT (envelope-from hselasky@svn.freebsd.org) Received: (from hselasky@localhost) by svn.freebsd.org (8.14.8/8.14.8/Submit) id s1NDM4Fr041967; Sun, 23 Feb 2014 13:22:04 GMT (envelope-from hselasky@svn.freebsd.org) Message-Id: <201402231322.s1NDM4Fr041967@svn.freebsd.org> From: Hans Petter Selasky Date: Sun, 23 Feb 2014 13:22:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r262363 - in stable/10/sys: conf dev/usb dev/usb/net modules/usb modules/usb/urndis X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 23 Feb 2014 13:22:06 -0000 Author: hselasky Date: Sun Feb 23 13:22:04 2014 New Revision: 262363 URL: http://svnweb.freebsd.org/changeset/base/262363 Log: MFC r261541, r261543 and r261544: Import USB RNDIS driver to FreeBSD from OpenBSD. Useful for so-called USB tethering. - Imported code from OpenBSD - Adapted code to FreeBSD - Removed some unused functions - Fixed some buffer encoding and decoding issues - Optimised data transport path a bit, by sending multiple packets at a time - Increased receive buffer to 16K Added: stable/10/sys/dev/usb/net/if_urndis.c - copied, changed from r261541, head/sys/dev/usb/net/if_urndis.c stable/10/sys/dev/usb/net/if_urndisreg.h - copied, changed from r261541, head/sys/dev/usb/net/if_urndisreg.h stable/10/sys/modules/usb/urndis/ - copied from r261541, head/sys/modules/usb/urndis/ Modified: stable/10/sys/conf/NOTES stable/10/sys/conf/files stable/10/sys/dev/usb/usb.h stable/10/sys/modules/usb/Makefile Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/conf/NOTES ============================================================================== --- stable/10/sys/conf/NOTES Sun Feb 23 13:20:08 2014 (r262362) +++ stable/10/sys/conf/NOTES Sun Feb 23 13:22:04 2014 (r262363) @@ -2742,6 +2742,8 @@ device upgt # Ralink Technology RT2500USB wireless driver device ural # +# RNDIS USB ethernet driver +device urndis # Realtek RTL8187B/L wireless driver device urtw # Modified: stable/10/sys/conf/files ============================================================================== --- stable/10/sys/conf/files Sun Feb 23 13:20:08 2014 (r262362) +++ stable/10/sys/conf/files Sun Feb 23 13:22:04 2014 (r262363) @@ -2359,9 +2359,11 @@ dev/usb/net/if_rue.c optional rue dev/usb/net/if_smsc.c optional smsc dev/usb/net/if_udav.c optional udav dev/usb/net/if_usie.c optional usie +dev/usb/net/if_urndis.c optional urndis dev/usb/net/ruephy.c optional rue dev/usb/net/usb_ethernet.c optional aue | axe | axge | cdce | cue | kue | \ - mos | rue | smsc | udav | ipheth + mos | rue | smsc | udav | ipheth | \ + urndis dev/usb/net/uhso.c optional uhso # # USB WLAN drivers Copied and modified: stable/10/sys/dev/usb/net/if_urndis.c (from r261541, head/sys/dev/usb/net/if_urndis.c) ============================================================================== --- head/sys/dev/usb/net/if_urndis.c Thu Feb 6 08:47:14 2014 (r261541, copy source) +++ stable/10/sys/dev/usb/net/if_urndis.c Sun Feb 23 13:22:04 2014 (r262363) @@ -170,8 +170,11 @@ static const struct usb_ether_methods ur }; static const STRUCT_USB_HOST_ID urndis_host_devs[] = { +#if 0 + /* XXX this entry has a conflict an entry the umodem driver XXX */ {USB_IFACE_CLASS(UICLASS_CDC), USB_IFACE_SUBCLASS(UISUBCLASS_ABSTRACT_CONTROL_MODEL), USB_IFACE_PROTOCOL(0xff)}, +#endif {USB_IFACE_CLASS(UICLASS_WIRELESS), USB_IFACE_SUBCLASS(UISUBCLASS_RF), USB_IFACE_PROTOCOL(UIPROTO_RNDIS)}, {USB_IFACE_CLASS(UICLASS_IAD), USB_IFACE_SUBCLASS(UISUBCLASS_SYNC), @@ -838,7 +841,7 @@ urndis_bulk_read_callback(struct usb_xfe DPRINTF("invalid dataoffset %u larger than %u\n", msg.rm_dataoffset + msg.rm_datalen + (uint32_t)__offsetof(struct urndis_packet_msg, - rm_dataoffset)); + rm_dataoffset), actlen); goto tr_setup; } else if (msg.rm_datalen < (uint32_t)sizeof(struct ether_header)) { ifp->if_ierrors++; Copied and modified: stable/10/sys/dev/usb/net/if_urndisreg.h (from r261541, head/sys/dev/usb/net/if_urndisreg.h) ============================================================================== --- head/sys/dev/usb/net/if_urndisreg.h Thu Feb 6 08:47:14 2014 (r261541, copy source) +++ stable/10/sys/dev/usb/net/if_urndisreg.h Sun Feb 23 13:22:04 2014 (r262363) @@ -53,7 +53,7 @@ struct urndis_softc { #define URNDIS_LOCK(sc) mtx_lock(&(sc)->sc_mtx) #define URNDIS_UNLOCK(sc) mtx_unlock(&(sc)->sc_mtx) -#define URNDIS_LOCK_ASSERT(sc, what) mtx_assert(&(sc)->sc_mtx, (x)) +#define URNDIS_LOCK_ASSERT(sc, what) mtx_assert(&(sc)->sc_mtx, (what)) #define RNDIS_STATUS_BUFFER_OVERFLOW 0x80000005L #define RNDIS_STATUS_FAILURE 0xC0000001L Modified: stable/10/sys/dev/usb/usb.h ============================================================================== --- stable/10/sys/dev/usb/usb.h Sun Feb 23 13:20:08 2014 (r262362) +++ stable/10/sys/dev/usb/usb.h Sun Feb 23 13:22:04 2014 (r262363) @@ -499,8 +499,11 @@ typedef struct usb_interface_assoc_descr #define UICLASS_WIRELESS 0xe0 #define UISUBCLASS_RF 0x01 #define UIPROTO_BLUETOOTH 0x01 +#define UIPROTO_RNDIS 0x03 #define UICLASS_IAD 0xEF /* Interface Association Descriptor */ +#define UISUBCLASS_SYNC 0x01 +#define UIPROTO_ACTIVESYNC 0x01 #define UICLASS_APPL_SPEC 0xfe #define UISUBCLASS_FIRMWARE_DOWNLOAD 1 Modified: stable/10/sys/modules/usb/Makefile ============================================================================== --- stable/10/sys/modules/usb/Makefile Sun Feb 23 13:20:08 2014 (r262362) +++ stable/10/sys/modules/usb/Makefile Sun Feb 23 13:22:04 2014 (r262363) @@ -39,6 +39,7 @@ SUBDIR += atp uhid ukbd ums udbp ufm uep SUBDIR += ucom u3g uark ubsa ubser uchcom ucycom ufoma uftdi ugensa uipaq ulpt \ umct umcs umodem umoscom uplcom uslcom uvisor uvscom SUBDIR += uether aue axe axge cdce cue ${_kue} mos rue smsc udav uhso ipheth +SUBDIR += urndis SUBDIR += usfs umass urio SUBDIR += quirk template SUBDIR += ${_g_audio} ${_g_keyboard} ${_g_modem} ${_g_mouse}