OSDN Git Service

net: ipa: add support for inline checksum offload
authorAlex Elder <elder@linaro.org>
Wed, 2 Jun 2021 12:41:30 +0000 (07:41 -0500)
committerDavid S. Miller <davem@davemloft.net>
Thu, 3 Jun 2021 22:09:40 +0000 (15:09 -0700)
commit5567d4d9e7381230462a564d4f466177f3ba9dd5
tree0102afcf7689e9172a1d2a31c56e2940d7efb238
parentfcd1a53064cf44ef912c354859027ef291147848
net: ipa: add support for inline checksum offload

Starting with IPA v4.5, IP payload checksum offload is implemented
differently.

Prior to v4.5, the IPA hardware appends an rmnet_map_dl_csum_trailer
structure to each packet if checksum offload is enabled in the
download direction (modem->AP).  In the upload direction (AP->modem)
a rmnet_map_ul_csum_header structure is prepended before each sent
packet.

Starting with IPA v4.5, checksum offload is implemented using a
single new rmnet_map_v5_csum_header structure which sits between
the QMAP header and the packet data.  The same header structure
is used in both directions.

The new header contains a header type (CSUM_OFFLOAD); a checksum
flag; and a flag indicating whether any other headers follow this
one.  The checksum flag indicates whether the hardware should
compute (and insert) the checksum on a sent packet.  On a received
packet the checksum flag indicates whether the hardware confirms the
checksum value in the payload is correct.

Signed-off-by: Alex Elder <elder@linaro.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ipa/ipa_endpoint.c
drivers/net/ipa/ipa_reg.h