From: "Bjørn Mork" <bjorn@mork.no>
To: netdev@vger.kernel.org
Cc: linux-usb@vger.kernel.org, "Oliver Neukum" <oliver@neukum.org>,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
"Alexey Orishko" <alexey.orishko@gmail.com>,
"Greg Suarez" <gpsuarez2512@gmail.com>,
"Fangxiaozhi (Franko)" <fangxiaozhi@huawei.com>,
"Dan Williams" <dcbw@redhat.com>,
"Aleksander Morgado" <aleksander@lanedo.com>,
"Bjørn Mork" <bjorn@mork.no>
Subject: [PATCH v2 net-next 00/13] Adding a USB CDC MBIM driver
Date: Mon, 22 Oct 2012 22:56:27 +0200 [thread overview]
Message-ID: <1350939400-27209-1-git-send-email-bjorn@mork.no> (raw)
[for those who reviewed v1 of this series: patch #1 is the only one
changed in v2]
The USB Communications Device Class "Mobile Broadband Interface Model"
(MBIM) is the USB-IFs alternative to the current chipset/vendor
specific solutions to "Mobile Broadband" device management. The
specification, including the management protocol description, can be
downloaded from http://www.usb.org/developers/devclass_docs#approved
This driver implementing most MBIM features with the exception of
32bit NTB and NDP headers.
An important design principle has been reusing as much as possible of
existing kernel code, in particular the cdc_ncm and cdc_wdm drivers.
The CDC MBIM protocol is based on CDC NCM, and much of the setup and
framing logic is very similar.
One important addition in MBIM compared to NCM is the new control
protocol embedded in CDC commands. This protocol is comprehensive and
support a number of policy decisions necessary for modern mobile
broadband devices often having multiple radio interfaces. Based on
early comments and the experiences with the qmi_wwan driver, knowledge
of the control protocol has been kept completely out of the driver.
This is userspace material. Like with qmi_wwan, a control protocol
interface is exported to userspace using the cdc_wdm subdriver API,
associating a /dev/cdc-wdmX character device with the network device
for the management application.
Patch 1 works around a firmware bug in one of the MBIM test devices
Patch 2 adds new MBIM definitions to the cdc.h header file
Patches 3 to 8 refactor the cdc_ncm driver to enable reusing common
parts for MBIM.
Patches 9 and 10 add the new cdc_mbim driver
Patch 11 prevents cdc_ncm from binding to backward compatible MBIM
devices
Patches 12 and 13 extend the MBIM driver to support multiplexed
sessions
The changes to the cdc_ncm driver has been tested and verified to work
with an Ericsson F5521gw device. The new cdc_mbim driver has been
tested with a Huawei E367u-2 device with MBIM firmware, and other
currently undisclosed devices.
Enjoy!
patch series changelog:
v2:
- dropped v1 patch 1
- reworked the firmware bug workaround in v1 patch 2 (which is now 1)
- acks noted
Bjørn Mork (9):
net: cdc_ncm: workaround NTB input size firmware bug
net: cdc_ncm: process chained NDPs
net: cdc_ncm: splitting rx_fixup for code reuse
net: cdc_ncm: refactoring for tx multiplexing
net: cdc_ncm: export shared symbols and definitions
net: cdc_mbim: build the MBIM driver
net: cdc_ncm: do not bind to NCM compatible MBIM devices
net: cdc_ncm: map MBIM IPS SessionID to VLAN ID
net: cdc_mbim: Device Service Stream support
Greg Suarez (4):
USB: cdc: add MBIM constants and structures
net: cdc_ncm: adding MBIM support to ncm_setup
net: cdc_ncm: refactor bind preparing for MBIM support
net: cdc_mbim: adding MBIM driver
drivers/net/usb/Kconfig | 18 ++
drivers/net/usb/Makefile | 1 +
drivers/net/usb/cdc_mbim.c | 412 ++++++++++++++++++++++++++++++
drivers/net/usb/cdc_ncm.c | 584 ++++++++++++++++++++-----------------------
include/linux/usb/cdc.h | 23 ++
include/linux/usb/cdc_ncm.h | 134 ++++++++++
6 files changed, 861 insertions(+), 311 deletions(-)
create mode 100644 drivers/net/usb/cdc_mbim.c
create mode 100644 include/linux/usb/cdc_ncm.h
--
1.7.10.4
next reply other threads:[~2012-10-22 20:57 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-22 20:56 Bjørn Mork [this message]
2012-10-22 20:56 ` [PATCH v2 net-next 02/13] USB: cdc: add MBIM constants and structures Bjørn Mork
2012-10-22 20:56 ` [PATCH v2 net-next 03/13] net: cdc_ncm: adding MBIM support to ncm_setup Bjørn Mork
2012-10-22 20:56 ` [PATCH v2 net-next 05/13] net: cdc_ncm: process chained NDPs Bjørn Mork
2012-10-22 20:56 ` [PATCH v2 net-next 07/13] net: cdc_ncm: refactoring for tx multiplexing Bjørn Mork
2012-10-22 20:56 ` [PATCH v2 net-next 08/13] net: cdc_ncm: export shared symbols and definitions Bjørn Mork
[not found] ` <1350939400-27209-1-git-send-email-bjorn-yOkvZcmFvRU@public.gmane.org>
2012-10-22 20:56 ` [PATCH v2 net-next 01/13] net: cdc_ncm: workaround NTB input size firmware bug Bjørn Mork
2012-10-22 20:56 ` [PATCH v2 net-next 04/13] net: cdc_ncm: refactor bind preparing for MBIM support Bjørn Mork
2012-10-22 20:56 ` [PATCH v2 net-next 06/13] net: cdc_ncm: splitting rx_fixup for code reuse Bjørn Mork
2012-10-22 20:56 ` [PATCH v2 net-next 09/13] net: cdc_mbim: adding MBIM driver Bjørn Mork
2012-10-22 20:56 ` [PATCH v2 net-next 12/13] net: cdc_ncm: map MBIM IPS SessionID to VLAN ID Bjørn Mork
2012-10-22 20:56 ` [PATCH v2 net-next 10/13] net: cdc_mbim: build the MBIM driver Bjørn Mork
2012-10-22 20:56 ` [PATCH v2 net-next 11/13] net: cdc_ncm: do not bind to NCM compatible MBIM devices Bjørn Mork
2012-10-22 20:56 ` [PATCH v2 net-next 13/13] net: cdc_mbim: Device Service Stream support Bjørn Mork
2012-10-23 6:41 ` [PATCH v2 net-next 00/13] Adding a USB CDC MBIM driver David Miller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1350939400-27209-1-git-send-email-bjorn@mork.no \
--to=bjorn@mork.no \
--cc=aleksander@lanedo.com \
--cc=alexey.orishko@gmail.com \
--cc=dcbw@redhat.com \
--cc=fangxiaozhi@huawei.com \
--cc=gpsuarez2512@gmail.com \
--cc=gregkh@linuxfoundation.org \
--cc=linux-usb@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=oliver@neukum.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).