| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
| |
Add a "packet_burst" config option that will cause clatd to read
(and write) in bursts of up to that number of packets, instead of
always only reading one packet at a time. This reduces poll
overhead and improves performance.
The variable is initially set to 10.
Bug: 24113287
Change-Id: I7feba4127538c5a89f92e0ebea1fb75971d6b901
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit 7efed4e30259da5348c4a7c2c77a0d0d4b13834d.
This change may bypass checksum validation for all packets even if
they have not been validated earlier.
Hardware supports checksum offload for IPv4 / IPv6 UDP and TCP
packets only. ICMPv4 / ICMPv6 / fragmented packet checksum offload
is not supported and as a result the checksum will not be validated
even once before these packet are delivered to the application.
Change-Id: I28152b63bb432c3dc37fe7a713c3b225a662f678
|
|
|
|
|
|
|
|
|
| |
This is needed to handle cases when the packet socket receives
a GRO coalesced packet which will not have a valid TCP checksum.
TUN_NOCHECKSUM is used only when the checksum has already been
verified prior to this and GRO is being used.
Change-Id: I1409967523152bb7620b4881526e78e8c222cc72
|
|
|
|
| |
Change-Id: Icc033a8b2ce4a08565aabe2b58ba81ec90604c4f
|
|
|
|
|
| |
Bug: 12111730
Change-Id: I062d81f2b65e6e89baae0f840cbd673f8051d523
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously the code would use 192.0.0.4 on all clat interfaces.
This works, but it has the problem when a clat interface goes
down, we do not reset TCP connections on its IP address if there
is another clat interface up.
Fix this by assigning every clat interface its own IP address in
192.0.0.0/29.
Bug: 12111730
Change-Id: I28c831acd93b0980efea8e90c1cdf8b607beac68
|
|
|
|
|
|
|
|
|
| |
Currently, the IPv6 address gets set in two different codepaths
depending on whether it's being configured on startup or happens
because the interface changed its prefix. Refactor the two into
a common function.
Change-Id: I37035401bef7a57ff40540bd0f2aed0f6863269d
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Add code to generate a random IPv6 address that's
checksum-neutral with the NAT64 prefix and clat IPv4 address.
- Only calculate the IP address after the NAT64 prefix is known.
- Because the clat IPv6 address is no longer determinisitic,
modify interface_poll so it checks whether the prefix has
changed instead of checking whether the IPv6 address has
changed.
- Add/update unit tests.
Change-Id: Ia53716ca5315ebdd0eaa3ad3a07552bf18e9dd5c
|
|
|
|
|
|
|
|
|
|
|
| |
This was originally used on the "clat" interface. That interface is not created
anymore (since the switch to using a raw socket). Note that the v6 address used
on the raw socket is a combination of the plat subnet plus a host ID, and not
this link-local address.
Also fixup default values to match clatd.conf values.
Change-Id: I3470a02e6798b65cae0f8d7f074ce51fb0647e6a
|
|
|
|
|
|
|
|
|
| |
When plat prefix detection is done on a non-default network it
must use the network specific version of getaddrinfo() so the
plat prefix corresponds to the particular network. The network
is specified to clatd via a NetID command line argument.
Change-Id: I77a47b24e68c7786f790974f05787a40a4934af5
|
|
|
|
|
|
|
|
|
|
|
| |
Because of the way the tunnel pumps packets into the networking
stack, the netfilter xt_qtaguid module can't track stats
accurately: the totals don't add up.
With "clat" having an ip address, qtaguid will track stats
against it, which then can be deducted from the external iface.
Bug: 11687690
Change-Id: I22ebf26dd9249e821da87665d2bfb0e54d3cdf64
|
|
This software provides the nat 4->6 translation needed for the "clat" part of
the 464xlat standard. It is needed for better IPv4 application support while
on an IPv6-only mobile network connection using 464xlat's nat64 (such as
T-Mobile's IPv6 trial).
A general diagram of how 464xlat works:
http://dan.drown.org/android/clat/Clat-Plat.png
Depends-on: I2392f8127dcd90d16b0f20ff31bcc5aa096db464
Change-Id: If2bc6916fc66fd4bca7cc241c83cfae839b82e15
Signed-off-by: Daniel Drown <dan-android@drown.org>
|