Netdev List
 help / color / mirror / Atom feed
* [PATCH net-next v2 0/8] Add HW GRO handling in rmnet
@ 2026-10-08  0:55 Subash Abhinov Kasiviswanathan
  2026-10-08  0:55 ` [PATCH net-next v2 1/8] net: qualcomm: rmnet: Update MTU handling during format changes Subash Abhinov Kasiviswanathan
                   ` (7 more replies)
  0 siblings, 8 replies; 10+ messages in thread
From: Subash Abhinov Kasiviswanathan @ 2026-10-08  0:55 UTC (permalink / raw)
  To: davem, edumazet, kuba, pabeni, andrew+netdev, corbet
  Cc: horms, skhan, rdunlap, netdev, linux-doc, linux-kernel,
	Subash Abhinov Kasiviswanathan

This patch series adds downlink packet coalescing support to the rmnet driver.

Hardware can coalesce TCP and UDP packets into a single MAPv5 frame.
A frame can contain up to 48 packets grouped into up to six NLOs.
Packets within one NLO have the same length, while different NLOs may have
different lengths. Since an skb supports only one GSO size, the driver
reconstructs separate skbs for each NLO or packet run.

The coalescing header is a fixed 28-byte structure containing all six NLO
slots. The checksum error bitmap is a single 48-bit, frame-wide stream
consumed least significant bit first. This allows the driver to identify
checksum errors across NLO boundaries and for NLOs containing more than
eight packets.

The driver drops coalesced segments reported with bad transport checksums.
IPv4 UDP packets with a zero checksum remain valid because that checksum is
optional. Multi-packet coalesced frames require RX checksum offload and
hardware GRO support. Single-packet frames are delivered as normal non-GSO
skbs when those features are disabled.

v1->v2:
- All changes made are based on reports from Sashiko.
- Added a new patch "net: qualcomm: rmnet: Update MTU handling during format
  changes" to address the comment about the pre-existing issue about the MTU
  handling with data format updates.
- Document the restrictions on invalid combinations of data format in patch
  "net: qualcomm: rmnet: Restrict supported MAP checksum configurations" in
  comments and commit text.
- In patch "net: qualcomm: rmnet: Add DL packet coalescing support", add
  checks for packet content validation, better handling of the GRO_HW and
  RXCSUM flags, unclone prior to modifications, tagging drops with kfree_skb
  instead of consume_skb and updated comments about the coalescing packet
  format and updated commit text. 
- In patch "net: qualcomm: rmnet: Work around coalescing hardware quirks",
  updated the nlo field parsing checks and updated comments and commit text
  about the checksum related handling.
- In patch "net: qualcomm: rmnet: Add DL coalescing statistics", updated the
  stats to use per cpu counters to avoid torn reads, added network stack
  specific stats for HW_GRO and updated comments and commit text.
- In patch "docs: networking: Add documentation for the coalescing support in
  rmnet", updated the documentation and commit text to clarify the hardware behavior.

v1:
https://lore.kernel.org/all/20260930051345.857443-1-subash.a.kasiviswanathan@oss.qualcomm.com/

Assisted-by: LLM

Subash Abhinov Kasiviswanathan (8):
  net: qualcomm: rmnet: Update MTU handling during format changes
  uapi: if_link: Add RMNET_FLAGS_INGRESS_COALESCE
  net: qualcomm: rmnet: Process MAPv5 frames as a list
  net: qualcomm: rmnet: Restrict supported MAP checksum configurations
  net: qualcomm: rmnet: Add DL packet coalescing support
  net: qualcomm: rmnet: Work around coalescing hardware quirks
  net: qualcomm: rmnet: Add DL coalescing statistics
  docs: networking: Add documentation for the coalescing support in
    rmnet

 .../cellular/qualcomm/rmnet.rst               | 153 ++-
 .../ethernet/qualcomm/rmnet/rmnet_config.c    |  92 +-
 .../ethernet/qualcomm/rmnet/rmnet_config.h    |  84 +-
 .../ethernet/qualcomm/rmnet/rmnet_handlers.c  |  25 +-
 .../net/ethernet/qualcomm/rmnet/rmnet_map.h   |  20 +-
 .../ethernet/qualcomm/rmnet/rmnet_map_data.c  | 983 +++++++++++++++++-
 .../net/ethernet/qualcomm/rmnet/rmnet_vnd.c   | 193 +++-
 .../net/ethernet/qualcomm/rmnet/rmnet_vnd.h   |   4 +-
 include/linux/if_rmnet.h                      |  31 +
 include/uapi/linux/if_link.h                  |   1 +
 10 files changed, 1469 insertions(+), 117 deletions(-)

-- 
2.34.1


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2026-10-08 23:59 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-08  0:55 [PATCH net-next v2 0/8] Add HW GRO handling in rmnet Subash Abhinov Kasiviswanathan
2026-10-08  0:55 ` [PATCH net-next v2 1/8] net: qualcomm: rmnet: Update MTU handling during format changes Subash Abhinov Kasiviswanathan
2026-10-08  0:55 ` [PATCH net-next v2 2/8] uapi: if_link: Add RMNET_FLAGS_INGRESS_COALESCE Subash Abhinov Kasiviswanathan
2026-10-08  0:55 ` [PATCH net-next v2 3/8] net: qualcomm: rmnet: Process MAPv5 frames as a list Subash Abhinov Kasiviswanathan
2026-10-08  0:55 ` [PATCH net-next v2 4/8] net: qualcomm: rmnet: Restrict supported MAP checksum configurations Subash Abhinov Kasiviswanathan
2026-10-08  0:55 ` [PATCH net-next v2 5/8] net: qualcomm: rmnet: Add DL packet coalescing support Subash Abhinov Kasiviswanathan
2026-10-08  0:55 ` [PATCH net-next v2 6/8] net: qualcomm: rmnet: Work around coalescing hardware quirks Subash Abhinov Kasiviswanathan
2026-10-08  0:55 ` [PATCH net-next v2 7/8] net: qualcomm: rmnet: Add DL coalescing statistics Subash Abhinov Kasiviswanathan
2026-10-08 23:59   ` kernel test robot
2026-10-08  0:55 ` [PATCH net-next v2 8/8] docs: networking: Add documentation for the coalescing support in rmnet Subash Abhinov Kasiviswanathan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox