diff options
author | Lorenzo Colitti <lorenzo@google.com> | 2014-10-09 22:29:45 +0900 |
---|---|---|
committer | Lorenzo Colitti <lorenzo@google.com> | 2014-10-28 15:30:45 +0900 |
commit | 9808952bdf2fa6ce4cbd790d1967691bb95bf327 (patch) | |
tree | a8d6d5b896805560ac662eee1c5790d14b863c88 /checksum.h | |
parent | 74151e9d0cda83f77d9dbce62bf8a1340cb08386 (diff) | |
download | platform_external_android-clat-9808952bdf2fa6ce4cbd790d1967691bb95bf327.tar.gz platform_external_android-clat-9808952bdf2fa6ce4cbd790d1967691bb95bf327.tar.bz2 platform_external_android-clat-9808952bdf2fa6ce4cbd790d1967691bb95bf327.zip |
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
Diffstat (limited to 'checksum.h')
-rw-r--r-- | checksum.h | 4 |
1 files changed, 4 insertions, 0 deletions
@@ -18,6 +18,10 @@ #ifndef __CHECKSUM_H__ #define __CHECKSUM_H__ +#include <stdint.h> +#include <netinet/ip.h> +#include <netinet/ip6.h> + uint32_t ip_checksum_add(uint32_t current, const void *data, int len); uint16_t ip_checksum_finish(uint32_t temp_sum); uint16_t ip_checksum(const void *data, int len); |