summaryrefslogtreecommitdiffstats
path: root/checksum.h
diff options
context:
space:
mode:
authorLorenzo Colitti <lorenzo@google.com>2014-10-09 22:29:45 +0900
committerLorenzo Colitti <lorenzo@google.com>2014-10-28 15:30:45 +0900
commit9808952bdf2fa6ce4cbd790d1967691bb95bf327 (patch)
treea8d6d5b896805560ac662eee1c5790d14b863c88 /checksum.h
parent74151e9d0cda83f77d9dbce62bf8a1340cb08386 (diff)
downloadplatform_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.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/checksum.h b/checksum.h
index 6195810..d0af88e 100644
--- a/checksum.h
+++ b/checksum.h
@@ -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);