No description
  • C 77.7%
  • C++ 21.6%
  • Makefile 0.7%
Find a file
Subash Abhinov Kasiviswanathan fbc7e056ed clatd: Add support for handling GRO coalesced packets
With this change, we can notify network stack to disable checksum
validation for GRO packets as well as other packets which have
checksum validation completed earlier in a driver.

GRO packets have the ip_summed field set to CHECKSUM_PARTIAL while
checksum offloaded packets have the ip_summed field as
CHECKSUM_UNNECESSARY. Kernel copies this ip_summed field to the
status field in the tpacket filter. The information from the status
field is then passed as part of the TUN header to the TUN interface.

Any other packet will have the complete checksum validation done
in the network stack. Note that this only applies to packets which
are captured in packet sockets and passed onto the TUN interface.

MTU serves a dual purpose for CLAT. The segment size of the packet
ring is based on the MAXMTU apart from the interface MTU itself.

GRO coalesce happens on the receive path which is not affected by
the MTU (transmit). In other words, increasing the MAXMTU does not
affect if a GRO coalesced packet is delivered to CLAT.
It only affects the amount of data being read from the TPacket ring.

Introduce a new parameter MAXMRU which handles the increased MRU
to account for GRO packets. Increase the ring size to compensate
for the larger segments to maintain the same throughput as earlier

CRs-Fixed: 1023199
Change-Id: I5f5ff05918f3d3e03bb18fe799ccb5770a85038a
2016-08-24 08:08:29 -06:00
Android.mk Switch android-clat's microbenchmark to clang. 2015-09-22 10:53:44 -07:00
BUGS Update BUGS and bump version to 1.2 2014-03-17 11:31:17 +09:00
checksum.c Move send_tun into tun.c as well. 2014-12-08 13:50:12 +09:00
checksum.h Generate a random IID if one is not specified. 2014-10-28 15:30:45 +09:00
clatd.c clatd: Add support for handling GRO coalesced packets 2016-08-24 08:08:29 -06:00
clatd.conf Cleanup: Remove unused "ipv6_local_address". 2014-12-17 16:26:38 +09:00
clatd.h clatd: Add support for handling GRO coalesced packets 2016-08-24 08:08:29 -06:00
clatd_microbenchmark.c Add a microbenchmark for tun write performance. 2014-12-08 16:59:25 +09:00
clatd_test.cpp clatd: Add support for handling GRO coalesced packets 2016-08-24 08:08:29 -06:00
config.c Cleanup: Remove unused "ipv6_local_address". 2014-12-17 16:26:38 +09:00
config.h Cleanup: Remove unused "ipv6_local_address". 2014-12-17 16:26:38 +09:00
debug.h Don't compile packet dumping code by default. 2013-02-01 10:49:49 +09:00
dns64.c Simplify and always retry DNS64 prefix discovery. 2014-09-24 16:02:31 +09:00
dns64.h Make DNS request for plat prefix detection network specific. 2014-06-13 11:47:35 +09:00
dump.c Use a packet socket to receive packets. 2014-06-13 11:49:21 +09:00
dump.h Use uint8_t not char for binary data to avoid -Wall -Werror issues on x86 builds 2014-02-24 21:14:51 -08:00
getaddr.c Mark unused parameters and set -Wunused-parameter 2014-03-10 16:40:30 +09:00
getaddr.h android clat service 2012-11-12 15:59:12 -08:00
icmp.c Remove unused variables 2014-01-02 23:58:14 +00:00
icmp.h Support translating ICMP errors. 2013-04-12 13:42:58 +09:00
ipv4.c Declare pos as clat_packet_index instead of int 2014-02-25 14:42:22 +09:00
ipv6.c Declare pos as clat_packet_index instead of int 2014-02-25 14:42:22 +09:00
LICENSE android clat service 2012-11-12 15:59:12 -08:00
logging.c Mark unused parameters and set -Wunused-parameter 2014-03-10 16:40:30 +09:00
logging.h android clat service 2012-11-12 15:59:12 -08:00
MODULE_LICENSE_APACHE2 android clat service 2012-11-12 15:59:12 -08:00
mtu.c android clat service 2012-11-12 15:59:12 -08:00
mtu.h android clat service 2012-11-12 15:59:12 -08:00
netlink_callbacks.c Mark unused parameters and set -Wunused-parameter 2014-03-10 16:40:30 +09:00
netlink_callbacks.h android clat service 2012-11-12 15:59:12 -08:00
netlink_msg.c android-clat: link against libnl instead of libnl_2 2014-02-21 15:31:54 -08:00
netlink_msg.h Ensure netlink messages come from the kernel. 2013-02-22 18:56:10 +09:00
NOTICE android clat service 2012-11-12 15:59:12 -08:00
ring.c clatd: Add support for handling GRO coalesced packets 2016-08-24 08:08:29 -06:00
ring.h clatd: Add support for handling GRO coalesced packets 2016-08-24 08:08:29 -06:00
setif.c Remove unused variables. 2015-02-20 02:28:49 +00:00
setif.h Support 464xlat on broadcast interfaces such as wifi. 2014-10-29 11:53:05 +09:00
translate.c clatd: Add support for handling GRO coalesced packets 2016-08-24 08:08:29 -06:00
translate.h clatd: Add support for handling GRO coalesced packets 2016-08-24 08:08:29 -06:00
tun.c Add a microbenchmark for tun write performance. 2014-12-08 16:59:25 +09:00
tun.h Switch the receive path to memory-mapped I/O with PACKET_RX_RING. 2015-02-03 17:48:28 +09:00