]> git.baikalelectronics.ru Git - kernel.git/commit
Merge branch 'rmnet-checksums-part-1'
authorDavid S. Miller <davem@davemloft.net>
Fri, 11 Jun 2021 20:37:50 +0000 (13:37 -0700)
committerDavid S. Miller <davem@davemloft.net>
Fri, 11 Jun 2021 20:37:50 +0000 (13:37 -0700)
commit457c6961c1f498462e46190e980ab74157dff28b
treea2053be17806cb5479dfa4f6fdbd46e1d34d835f
parentaca2161b90be5302ba67464d1260723c99e54bea
parent12d67315a002e23dcc03e1db116a9e2c17eda8f9
Merge branch 'rmnet-checksums-part-1'

Alex Elder says:

====================
net: qualcomm: rmnet: MAPv4 download checksum cleanup, part 1

I'm posting a large series an two smaller parts; this is part 1.

The RMNet driver handles MAP (or QMAP) protocol traffic.  There are
several versions of this protocol.  Version 1 supports multiplexing,
as well as aggregation of packets in a single buffer.  Version 4
adds the ability to perform checksum offload.  And version 5
implements checksum offload in a different way from version 4.

This series involves only MAPv4 protocol checksum offload, and only
in the download (RX) direction.  It affects handling of checksums
computed by hardware for UDP datagrams and TCP segments, carried
over both IPv4 and IPv6.

MAP packets arriving on an RMNet port implementing MAPv4 checksum
offload are passed to rmnet_map_checksum_downlink_packet() for
handling.

The packet is then passed to rmnet_map_ipv4_dl_csum_trailer() or
rmnet_map_ipv6_dl_csum_trailer(), depending contents of the MAP
payload.  These two functions interpret checksum metadata to
determine whether the checksum in the received packet matches that
calculated by the hardware.

It is these two functions that are the subject of this series (parts
1 and 2).  The bulk of these functions are transformed--in a lot of
small steps--from an extremely difficult-to-follow block of checksum
processing code into a fairly simple, heavily commented equivalent.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>