Go to file
Subash Abhinov Kasiviswanathan bbd21b247c net: qualcomm: rmnet: Add support for RX checksum offload
When using the MAPv4 packet format, receive checksum offload can be
enabled in hardware. The checksum computation over pseudo header is
not offloaded but the rest of the checksum computation over
the payload is offloaded. This applies only for TCP / UDP packets
which are not fragmented.

rmnet validates the TCP/UDP checksum for the packet using the checksum
from the checksum trailer added to the packet by hardware. The
validation performed is as following -

1. Perform 1's complement over the checksum value from the trailer
2. Compute 1's complement checksum over IPv4 / IPv6 header and
   subtracts it from the value from step 1
3. Computes 1's complement checksum over IPv4 / IPv6 pseudo header and
   adds it to the value from step 2
4. Subtracts the checksum value from the TCP / UDP header from the
   value from step 3.
5. Compares the value from step 4 to the checksum value from the
   TCP / UDP header.
6. If the comparison in step 5 succeeds, CHECKSUM_UNNECESSARY is set
   and the packet is passed on to network stack. If there is a
   failure, then the packet is passed on as such without modifying
   the ip_summed field.

The checksum field is also checked for UDP checksum 0 as per RFC 768
and for unexpected TCP checksum of 0.

If checksum offload is disabled when using MAPv4 packet format in
receive path, the packet is queued as is to network stack without
the validations above.

Signed-off-by: Subash Abhinov Kasiviswanathan <subashab@codeaurora.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2018-01-08 13:58:49 -05:00
arch s390/diag: add diag26c support for VNIC info 2018-01-02 13:52:23 -05:00
block
certs
crypto
Documentation
drivers net: qualcomm: rmnet: Add support for RX checksum offload 2018-01-08 13:58:49 -05:00
firmware
fs nsfs: generalize ns_get_path() for path resolution with a task 2017-12-31 16:12:23 +01:00
include ipv6: Export sernum update function 2018-01-07 21:29:40 -05:00
init
ipc
kernel bpf: implement syscall command BPF_MAP_GET_NEXT_KEY for stacktrace map 2018-01-06 23:52:22 +01:00
lib
mm
net ipv6: Flush multipath routes when all siblings are dead 2018-01-07 21:29:41 -05:00
samples samples/bpf: program demonstrating access to xdp_rxq_info 2018-01-05 15:21:22 -08:00
scripts
security
sound
tools selftests: fib_tests: Add test cases for netdev carrier change 2018-01-07 21:29:41 -05:00
usr
virt
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS
Makefile
README

Linux kernel
============

This file was moved to Documentation/admin-guide/README.rst

Please notice that there are several guides for kernel developers and users.
These guides can be rendered in a number of formats, like HTML and PDF.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.
See Documentation/00-INDEX for a list of what is contained in each file.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.