Commit graph android_packages_modules_Co.../clatd_test.cpp
Message SHA1
Move checksum code from clatd to libnetutils.
This allows us to use it elsewhere, for example, in netd.

Bug: 65674744
Test: builds, boots
Test: atest clatd_test clatd_microbenchmark
Change-Id: Ic2cea1cd658ffd23ba9fbe45cb6b28e3b5312005

Lorenzo Colitti   commited 2019-01-20 12:08:33 +09:00
98de5958cf
Allow passing in the IPv4 and IPv6 addresses on the command line.
This allows the address to be determined by netd and passed in,
which makes it possible for the rest of the OS to know what the
clatd IPv6 address is.

Bug: 65674744
Test: atest clatd_test
Test: IPv4 on IPv6-only networks continues to work
Test: clatd continues to avoid existing IPv4 addresses in 192.0.0.0/29
Test: passing NAT64 prefix, IPv4/IPv6 addresses on command line works
Change-Id: I8519c2f01b44022ef036c80aa0df32cd76003055

Lorenzo Colitti   commited 2019-01-15 13:33:36 +09:00
f0fac8631a
Drop support for updating IPv6 addresses in clatd.
Currently, when clatd detects that the IPv6 address on its
interface has changed, it updates its configuration accordingly.
This complicates the code, and it prevents us from determining
the IPv6 address in netd instead of clatd.

Stop doing this, and simply exit instead. The framework will
notice that the interface is gone and restart clatd, which will
then have the correct configuration (and, unlike current code,
the correct NAT64 prefix, if that has changed as well).

This change also allows us to drop CAP_NET_ADMIN and run clatd
as an unprivileged user with no capabilities.

Test: atest clatd_test
Test: changing IPv6 address on interface causes clatd to exit
Test: "adb shell cat /proc/$(adb shell pidof clatd)/status | grep Cap"
Change-Id: I296dcb185f603f685223b24ffefdf7a5c22b66e6

Lorenzo Colitti   commited 2019-01-06 11:22:16 +09:00
66deecd38f
Test clatd methods that affect interface IP addresses.
Depend on tun_interface so we can add tests to clatd_test that
use a real interface instead of mocking everything out. Add a
simple test for determining the clat IPv6 address.

Test: atest clatd_test
Change-Id: I1f10c372388a7c663bebab3c45b206036a264673

Lorenzo Colitti   commited 2019-01-06 11:22:16 +09:00
72f770c4ad
Re-indent clatd code with clang-format
clang-format --style file -i *.{c,h,cpp}

Bug: 118848635
Test: 1. browse over ipv6-only network
      2. atest clatd_test
      3. clang-format --style file -i *.{c,h,cpp}

Change-Id: I7389426101df7745370d0ac5c55176cd8fe2b08b

junyulai   commited 2018-12-11 10:12:47 +08:00
c4e591aa04
Convert a few instances of sprintf to snprintf.
Change-Id: Ib3cdf8c3c817adc0eea0095ca4ef5fd66c8456b0

George Burgess IV   authored and   Elliott Hughes   commited 2016-02-24 20:59:20 -08:00
2dcca6feb9
am fee9afb1: Android-Clatd: Remove unused variable
* commit 'fee9afb1a5':
  Android-Clatd: Remove unused variable

Andreas Gampe   authored and   Android Git Automerger   commited 2014-11-25 19:58:09 +00:00
fe2403cbe3
Android-Clatd: Remove unused variable
For build-system CFLAGS clean-up, fix unused-but-set variables.

Change-Id: I3fc6b0d9bec87cd54d7b5199108cff576b4be677

Andreas Gampe   commited 2014-11-24 18:43:39 -08:00
fee9afb1a5
am 2596f42a: Never use a statically-configured IID on wifi.
* commit '2596f42a4f':
  Never use a statically-configured IID on wifi.

Lorenzo Colitti   authored and   Android Git Automerger   commited 2014-11-18 02:08:17 +00:00
7a7cfd6b4e
Never use a statically-configured IID on wifi.
Bug: 12111730
Change-Id: I062d81f2b65e6e89baae0f840cbd673f8051d523

Lorenzo Colitti   commited 2014-11-10 16:06:44 -10:00
2596f42a4f
am 798f9934: Use different IPv4 addresses on different clat interfaces.
* commit '798f9934fc':
  Use different IPv4 addresses on different clat interfaces.

Lorenzo Colitti   authored and   Android Git Automerger   commited 2014-11-03 09:25:06 +00:00
5ba6d23b61
Use different IPv4 addresses on different clat interfaces.
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

Lorenzo Colitti   commited 2014-11-01 01:17:22 +09:00
798f9934fc
am 9808952b: Generate a random IID if one is not specified.
* commit '9808952bdf':
  Generate a random IID if one is not specified.

Lorenzo Colitti   authored and   Android Git Automerger   commited 2014-10-30 23:40:34 +00:00
9d0a1335b0
Generate a random IID if one is not specified.
- 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

Lorenzo Colitti   commited 2014-10-28 15:30:45 +09:00
9808952bdf
Remove unused variables.
BUG: 17281763
Change-Id: Ia9cbda2897e46ca757910d59d0cbb6de07d55482

Chih-Hung Hsieh   commited 2014-08-26 12:41:52 -07:00
05ff508a79
Use a raw socket to send IPv6 packets instead of a tun.
This will allow us to bind the socket to a particular network.

(cherry picked from commit 10e8827d63)

Bug: 15340961
Change-Id: I0b62ef96364a90b9c0a9e3ac3ba97b5c19c89b69

Lorenzo Colitti   commited 2014-06-13 11:47:50 +09:00
ce14088b80
Make translate_packet take a fd instead of a tun header.
This will make it easier to use separate fds for reading and
writing in a future change.

(cherry picked from commit 91d0f1bc6d)

Bug: 15340961
Change-Id: I374b85f28ae570dc82d21e1ea82a2f072fd7fba3

Lorenzo Colitti   commited 2014-06-13 11:47:42 +09:00
e24982ea3a
Use a raw socket to send IPv6 packets instead of a tun.
This will allow us to bind the socket to a particular network.

Bug: 15340961
Change-Id: I50857d372955f2b6f7035157c2968cda72c32585

Lorenzo Colitti   commited 2014-06-11 12:42:20 +09:00
10e8827d63
Make translate_packet take a fd instead of a tun header.
This will make it easier to use separate fds for reading and
writing in a future change.

Bug: 15340961
Change-Id: I5b081b05765cae0488ac599be5738ce9737cae41

Lorenzo Colitti   commited 2014-06-10 21:32:52 +09:00
91d0f1bc6d
Minor code clean-up for GCC 4.9.
- Tidy up "signed vs unsigned" comparison
- Unconditionally initialize the "protocol" variable. This is a
  false-positive warning as protocol is indeed initialized when used,
  but GCC failed to detect the dependency between protocol and ip6.

Change-Id: I8146898d91d45531c3de73403e0df3330c0a2043

Ben Cheng   commited 2014-04-03 09:31:30 -07:00
932614ee5e
Use uint8_t not char for binary data to avoid -Wall -Werror issues on x86 builds
Change-Id: Ib61e67f15360c27c3ebf61f870a9482217c52357

Brian Carlstrom   commited 2014-02-24 21:14:51 -08:00
fcac410fa1
Add a unit test for 464xlat translation code.
Bug: 11542311
Change-Id: Ibc7f156a6abb96c9bf4983ecd63b052fe308e422

Lorenzo Colitti   commited 2014-02-22 13:19:36 +09:00
f3beefc96a