summaryrefslogtreecommitdiffstats
path: root/config.c
Commit message (Collapse)AuthorAgeFilesLines
* Process packets in bursts.HEADreplicant-6.0-0004-transitionreplicant-6.0-0004-rc6replicant-6.0-0004-rc5-transitionreplicant-6.0-0004-rc5replicant-6.0-0004-rc4replicant-6.0-0004-rc3replicant-6.0-0004-rc2replicant-6.0-0004-rc1replicant-6.0-0004replicant-6.0-0003replicant-6.0-0002replicant-6.0-0001stable/cm-13.0-ZNH5Ycm-13.0Lorenzo Colitti2016-06-081-0/+8
| | | | | | | | | | | | 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
* Never use a statically-configured IID on wifi.Lorenzo Colitti2014-11-101-1/+14
| | | | | Bug: 12111730 Change-Id: I062d81f2b65e6e89baae0f840cbd673f8051d523
* Use different IPv4 addresses on different clat interfaces.Lorenzo Colitti2014-11-011-2/+68
| | | | | | | | | | | | | 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
* Unduplicate IPv6 address setting code.Lorenzo Colitti2014-10-291-33/+4
| | | | | | | | | 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
* Generate a random IID if one is not specified.Lorenzo Colitti2014-10-281-6/+52
| | | | | | | | | | | | | - 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
* Cleanup: Remove unused "ipv6_local_address".Sreeram Ramachandran2014-10-271-5/+1
| | | | | | | | | | | 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
* Simplify and always retry DNS64 prefix discovery.staging/cm-12.0-cafstaging/cm-12.0Erik Kline2014-09-241-7/+2
| | | | | | | | | | | | | | | | | | | | | | | | | - Only request AAAAs for the IPv4-only hostname, since that's all the information being used. Perhaps at some point in the future when _validation_ of the IPv4 address(es)'s presence within the IPv6 address(es) is being done this should be revisited. - Only use the first AAAA returned to find the DNS64 prefix. It's not clear how to properly resolve any potential DNS64 prefix conflicts anyway. - Re-try DNS64 prefix discovery on any type of error. If clatd was started (presumably an IPv6-only network), retry DNS64 prefix discovery with exponential backoff. Some "permanent" errors can be indistinguishable from transient errors (e.g. receiving an erroneous SERVFAIL from a DNS resolver, ...). - Fix-up back-off logic to not sleep 128 then 120, 120, ... :-) Bug: 17569702 Change-Id: I226ea7772cd7c88d2b60153ef76e5435400e11aa
* Use a packet socket to receive packets.Lorenzo Colitti2014-06-111-1/+0
| | | | | | | | | Combined with the previous change to send on a raw socket instead of a tunnel interface, this allows us to get rid of the clat interface and remove all the routing configuration code. Bug: 15340961 Change-Id: I9d9b90f9b4f58dcc3c102abcdc32a2c7ee86b01d
* Make DNS request for plat prefix detection network specific.Paul Jensen2014-06-021-4/+7
| | | | | | | | | 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
* Remove unused variablesBernhard Rosenkränzer2014-01-021-1/+1
| | | | | | | | Remove unused variables -- they cause warnings (and errors with -Werror) when building with clang 3.4. Change-Id: I03fff9b1b9d620763f41c8b31a19c4724726739c Signed-off-by: Bernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org>
* Add ip6 dummy address to keep data usage stats consistent.JP Abgrall2013-12-261-0/+4
| | | | | | | | | | | 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
* android clat serviceDaniel Drown2012-11-121-0/+302
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>