From: Alex Elder <elder@linaro.org>
To: subashab@codeaurora.org, stranche@codeaurora.org,
davem@davemloft.net, kuba@kernel.org
Cc: bjorn.andersson@linaro.org, netdev@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: [PATCH net-next 0/8] net: qualcomm: rmnet: MAPv4 download checksum cleanup, part 1
Date: Fri, 11 Jun 2021 14:05:21 -0500 [thread overview]
Message-ID: <20210611190529.3085813-1-elder@linaro.org> (raw)
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.
-Alex
Alex Elder (8):
net: qualcomm: rmnet: use ip_is_fragment()
net: qualcomm: rmnet: eliminate some ifdefs
net: qualcomm: rmnet: get rid of some local variables
net: qualcomm: rmnet: simplify rmnet_map_get_csum_field()
net: qualcomm: rmnet: IPv4 header has zero checksum
net: qualcomm: rmnet: clarify a bit of code
net: qualcomm: rmnet: avoid unnecessary byte-swapping
net: qualcomm: rmnet: avoid unnecessary IPv6 byte-swapping
.../ethernet/qualcomm/rmnet/rmnet_config.h | 1 +
.../ethernet/qualcomm/rmnet/rmnet_map_data.c | 179 +++++++++---------
.../net/ethernet/qualcomm/rmnet/rmnet_vnd.c | 1 +
3 files changed, 92 insertions(+), 89 deletions(-)
--
2.27.0
next reply other threads:[~2021-06-11 19:06 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-11 19:05 Alex Elder [this message]
2021-06-11 19:05 ` [PATCH net-next 1/8] net: qualcomm: rmnet: use ip_is_fragment() Alex Elder
2021-06-11 19:05 ` [PATCH net-next 2/8] net: qualcomm: rmnet: eliminate some ifdefs Alex Elder
2021-06-11 19:05 ` [PATCH net-next 3/8] net: qualcomm: rmnet: get rid of some local variables Alex Elder
2021-06-11 19:05 ` [PATCH net-next 4/8] net: qualcomm: rmnet: simplify rmnet_map_get_csum_field() Alex Elder
2021-06-11 19:05 ` [PATCH net-next 5/8] net: qualcomm: rmnet: IPv4 header has zero checksum Alex Elder
2021-06-11 19:05 ` [PATCH net-next 6/8] net: qualcomm: rmnet: clarify a bit of code Alex Elder
2021-06-11 19:05 ` [PATCH net-next 7/8] net: qualcomm: rmnet: avoid unnecessary byte-swapping Alex Elder
2021-06-11 19:05 ` [PATCH net-next 8/8] net: qualcomm: rmnet: avoid unnecessary IPv6 byte-swapping Alex Elder
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210611190529.3085813-1-elder@linaro.org \
--to=elder@linaro.org \
--cc=bjorn.andersson@linaro.org \
--cc=davem@davemloft.net \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=stranche@codeaurora.org \
--cc=subashab@codeaurora.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®