-
Notifications
You must be signed in to change notification settings - Fork 339
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Sponsored by: The FreeBSD Foundation
- Loading branch information
Showing
1 changed file
with
33 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
=== umb(4) driver for MBIM USB 4G/5G modems | ||
|
||
Links: + | ||
link:https://man.openbsd.org/umb[UMB(4) - OpenBSD Device Drivers Manual] URL: link:https://man.openbsd.org/umb[] + | ||
link:https://man.netbsd.org/umb.4[UMB(4) - NetBSD Kernel Interfaces Manual] URL: link:https://man.netbsd.org/umb.4[] + | ||
link:https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=263783[Bug 263783 - USB MBIM: Support for LTE/4G USB modems] URL: link:https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=263783[] + | ||
link:https://reviews.freebsd.org/D48167[Introduce the USB umb(4) network driver] URL: link:https://reviews.freebsd.org/D48167[] | ||
|
||
Contact: Pierre Pronchery <pierre@freebsdfoundation.org> | ||
|
||
The Mobile Broadband Interface Model (MBIM) is a protocol for communication with network USB devices, transmitting packet data over mobile broadband networks. | ||
Implementing this protocol adds support for a whole range of USB devices providing connectivity to mobile networks, such as 4G, 5G, and their subsequent technological evolutions. | ||
|
||
A first implementation for this protocol was performed for OpenBSD in 2016, under the name umb(4). | ||
I have ported it myself to NetBSD under the same name, back in 2019. | ||
I was then contracted to make it work with OPNSense, and authorized to publish it as Open Source in 2022. | ||
Unfortunately, by this time, some changes in FreeBSD effectively broke the driver, and it could not be merged until fixed. | ||
|
||
This quarter I have managed to offer an updated version and confirmed it working (thanks Mike and Zhenlei!). | ||
This version is now under review in Phabricator as D48167. | ||
The submission is still based on code from 2020, and behind progress made by OpenBSD since that time. | ||
As such, it is currently restricted to IPv4. | ||
However, I believe it makes sense to keep the review simple and focus on the design decisions and integration, before progressively importing the improvements made upstream since then in OpenBSD (notably IPv6 support). | ||
|
||
In its current form, the driver was modified from being out of tree and available as a plug-in for OPNSense, into a kernel module and its companion binary, umbconfig(8). | ||
This management binary effectively allows the umb(4) driver to be configured beyond the capabilities of ifconfig(8). | ||
|
||
Should you want to give it a spin yourself and get hardware supported by this driver, the single most important feature to look for is support for the MBIM specification. | ||
The manual page for OpenBSD provides a list of devices that should be compliant; note that some of them require preliminary configuration in order to effectively expose the MBIM interface. | ||
The exact procedure is vendor-specific, and can also depend on the model and current configuration of the device. | ||
You should refer to the documentation offered for your device for any steps necessary. | ||
|
||
Sponsored by: The FreeBSD Foundation |