diff --git a/Documentation/networking/device_drivers/index.rst b/Documentation/networking/device_drivers/index.rst index 55837244eaad..66ed884548cc 100644 --- a/Documentation/networking/device_drivers/index.rst +++ b/Documentation/networking/device_drivers/index.rst @@ -44,6 +44,7 @@ Contents: microsoft/netvsc neterion/s2io neterion/vxge + qualcomm/rmnet .. only:: subproject and html diff --git a/Documentation/networking/device_drivers/qualcomm/rmnet.txt b/Documentation/networking/device_drivers/qualcomm/rmnet.rst similarity index 73% rename from Documentation/networking/device_drivers/qualcomm/rmnet.txt rename to Documentation/networking/device_drivers/qualcomm/rmnet.rst index 6b341eaf2062..70643b58de05 100644 --- a/Documentation/networking/device_drivers/qualcomm/rmnet.txt +++ b/Documentation/networking/device_drivers/qualcomm/rmnet.rst @@ -1,4 +1,11 @@ +.. SPDX-License-Identifier: GPL-2.0 + +============ +Rmnet Driver +============ + 1. Introduction +=============== rmnet driver is used for supporting the Multiplexing and aggregation Protocol (MAP). This protocol is used by all recent chipsets using Qualcomm @@ -18,17 +25,18 @@ sending aggregated bunch of MAP frames. rmnet driver will de-aggregate these MAP frames and send them to appropriate PDN's. 2. Packet format +================ a. MAP packet (data / control) MAP header has the same endianness of the IP packet. -Packet format - +Packet format:: -Bit 0 1 2-7 8 - 15 16 - 31 -Function Command / Data Reserved Pad Multiplexer ID Payload length -Bit 32 - x -Function Raw Bytes + Bit 0 1 2-7 8 - 15 16 - 31 + Function Command / Data Reserved Pad Multiplexer ID Payload length + Bit 32 - x + Function Raw Bytes Command (1)/ Data (0) bit value is to indicate if the packet is a MAP command or data packet. Control packet is used for transport level flow control. Data @@ -44,24 +52,27 @@ Multiplexer ID is to indicate the PDN on which data has to be sent. Payload length includes the padding length but does not include MAP header length. -b. MAP packet (command specific) +b. MAP packet (command specific):: -Bit 0 1 2-7 8 - 15 16 - 31 -Function Command Reserved Pad Multiplexer ID Payload length -Bit 32 - 39 40 - 45 46 - 47 48 - 63 -Function Command name Reserved Command Type Reserved -Bit 64 - 95 -Function Transaction ID -Bit 96 - 127 -Function Command data + Bit 0 1 2-7 8 - 15 16 - 31 + Function Command Reserved Pad Multiplexer ID Payload length + Bit 32 - 39 40 - 45 46 - 47 48 - 63 + Function Command name Reserved Command Type Reserved + Bit 64 - 95 + Function Transaction ID + Bit 96 - 127 + Function Command data Command 1 indicates disabling flow while 2 is enabling flow -Command types - +Command types + += ========================================== 0 for MAP command request 1 is to acknowledge the receipt of a command 2 is for unsupported commands 3 is for error during processing of commands += ========================================== c. Aggregation @@ -71,9 +82,11 @@ packets and either ACK the MAP command or deliver the IP packet to the network stack as needed MAP header|IP Packet|Optional padding|MAP header|IP Packet|Optional padding.... + MAP header|IP Packet|Optional padding|MAP header|Command Packet|Optional pad... 3. Userspace configuration +========================== rmnet userspace configuration is done through netlink library librmnetctl and command line utility rmnetcli. Utility is hosted in codeaurora forum git. diff --git a/MAINTAINERS b/MAINTAINERS index 88e9e8430581..94afbf577a06 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -14031,7 +14031,7 @@ M: Subash Abhinov Kasiviswanathan M: Sean Tranchetti L: netdev@vger.kernel.org S: Maintained -F: Documentation/networking/device_drivers/qualcomm/rmnet.txt +F: Documentation/networking/device_drivers/qualcomm/rmnet.rst F: drivers/net/ethernet/qualcomm/rmnet/ F: include/linux/if_rmnet.h