docs: networking: Add documentation for MAPv5
Adding documentation explaining the new MAPv4/v5 packet formats and the corresponding checksum offload headers. Signed-off-by: Sharath Chandra Vurukala <sharathv@codeaurora.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
e0ae757c32
Коммит
710b797cf6
|
@ -27,34 +27,136 @@ these MAP frames and send them to appropriate PDN's.
|
|||
2. Packet format
|
||||
================
|
||||
|
||||
a. MAP packet (data / control)
|
||||
a. MAP packet v1 (data / control)
|
||||
|
||||
MAP header has the same endianness of the IP packet.
|
||||
MAP header fields are in big endian format.
|
||||
|
||||
Packet format::
|
||||
|
||||
Bit 0 1 2-7 8 - 15 16 - 31
|
||||
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 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
|
||||
or data packet. Command packet is used for transport level flow control. Data
|
||||
packets are standard IP packets.
|
||||
|
||||
Reserved bits are usually zeroed out and to be ignored by receiver.
|
||||
Reserved bits must be zero when sent and ignored when received.
|
||||
|
||||
Padding is number of bytes to be added for 4 byte alignment if required by
|
||||
hardware.
|
||||
Padding is the number of bytes to be appended to the payload to
|
||||
ensure 4 byte alignment.
|
||||
|
||||
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 v4 (data / control)
|
||||
|
||||
Bit 0 1 2-7 8 - 15 16 - 31
|
||||
MAP header fields are in big endian format.
|
||||
|
||||
Packet format::
|
||||
|
||||
Bit 0 1 2-7 8-15 16-31
|
||||
Function Command / Data Reserved Pad Multiplexer ID Payload length
|
||||
|
||||
Bit 32-(x-33) (x-32)-x
|
||||
Function Raw bytes Checksum offload header
|
||||
|
||||
Command (1)/ Data (0) bit value is to indicate if the packet is a MAP command
|
||||
or data packet. Command packet is used for transport level flow control. Data
|
||||
packets are standard IP packets.
|
||||
|
||||
Reserved bits must be zero when sent and ignored when received.
|
||||
|
||||
Padding is the number of bytes to be appended to the payload to
|
||||
ensure 4 byte alignment.
|
||||
|
||||
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.
|
||||
|
||||
Checksum offload header, has the information about the checksum processing done
|
||||
by the hardware.Checksum offload header fields are in big endian format.
|
||||
|
||||
Packet format::
|
||||
|
||||
Bit 0-14 15 16-31
|
||||
Function Reserved Valid Checksum start offset
|
||||
|
||||
Bit 31-47 48-64
|
||||
Function Checksum length Checksum value
|
||||
|
||||
Reserved bits must be zero when sent and ignored when received.
|
||||
|
||||
Valid bit indicates whether the partial checksum is calculated and is valid.
|
||||
Set to 1, if its is valid. Set to 0 otherwise.
|
||||
|
||||
Padding is the number of bytes to be appended to the payload to
|
||||
ensure 4 byte alignment.
|
||||
|
||||
Checksum start offset, Indicates the offset in bytes from the beginning of the
|
||||
IP header, from which modem computed checksum.
|
||||
|
||||
Checksum length is the Length in bytes starting from CKSUM_START_OFFSET,
|
||||
over which checksum is computed.
|
||||
|
||||
Checksum value, indicates the checksum computed.
|
||||
|
||||
c. MAP packet v5 (data / control)
|
||||
|
||||
MAP header fields are in big endian format.
|
||||
|
||||
Packet format::
|
||||
|
||||
Bit 0 1 2-7 8-15 16-31
|
||||
Function Command / Data Next header 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. Command packet is used for transport level flow control. Data
|
||||
packets are standard IP packets.
|
||||
|
||||
Next header is used to indicate the presence of another header, currently is
|
||||
limited to checksum header.
|
||||
|
||||
Padding is the number of bytes to be appended to the payload to
|
||||
ensure 4 byte alignment.
|
||||
|
||||
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.
|
||||
|
||||
d. Checksum offload header v5
|
||||
|
||||
Checksum offload header fields are in big endian format.
|
||||
|
||||
Bit 0 - 6 7 8-15 16-31
|
||||
Function Header Type Next Header Checksum Valid Reserved
|
||||
|
||||
Header Type is to indicate the type of header, this usually is set to CHECKSUM
|
||||
|
||||
Header types
|
||||
= ==========================================
|
||||
0 Reserved
|
||||
1 Reserved
|
||||
2 checksum header
|
||||
|
||||
Checksum Valid is to indicate whether the header checksum is valid. Value of 1
|
||||
implies that checksum is calculated on this packet and is valid, value of 0
|
||||
indicates that the calculated packet checksum is invalid.
|
||||
|
||||
Reserved bits must be zero when sent and ignored when received.
|
||||
|
||||
e. MAP packet v1/v5 (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
|
||||
|
@ -74,7 +176,7 @@ Command types
|
|||
3 is for error during processing of commands
|
||||
= ==========================================
|
||||
|
||||
c. Aggregation
|
||||
f. Aggregation
|
||||
|
||||
Aggregation is multiple MAP packets (can be data or command) delivered to
|
||||
rmnet in a single linear skb. rmnet will process the individual
|
||||
|
|
Загрузка…
Ссылка в новой задаче