summaryrefslogtreecommitdiffstats
path: root/translate.h
diff options
context:
space:
mode:
authorDaniel Drown <dan-android@drown.org>2012-03-23 10:42:54 -0500
committerJP Abgrall <jpa@google.com>2012-11-12 15:59:12 -0800
commita45056e35c1af2a0f0a6eed258fd5fdf4846a79f (patch)
tree5dd035946e9ab1201289292f7343af3230a26433 /translate.h
parent62ea9b6658a4c2116eeb6450c8244269448e79aa (diff)
downloadandroid_external_android-clat-a45056e35c1af2a0f0a6eed258fd5fdf4846a79f.tar.gz
android_external_android-clat-a45056e35c1af2a0f0a6eed258fd5fdf4846a79f.tar.bz2
android_external_android-clat-a45056e35c1af2a0f0a6eed258fd5fdf4846a79f.zip
android clat service
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>
Diffstat (limited to 'translate.h')
-rw-r--r--translate.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/translate.h b/translate.h
new file mode 100644
index 0000000..6fc3c79
--- /dev/null
+++ b/translate.h
@@ -0,0 +1,30 @@
+/*
+ * Copyright 2011 Daniel Drown
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * translate.h - translate from one version of ip to another
+ */
+#ifndef __TRANSLATE_H__
+#define __TRANSLATE_H__
+
+void icmp_to_icmp6(int fd, const struct iphdr *ip, const struct icmphdr *icmp, const char *payload, size_t payload_size);
+void icmp6_to_icmp(int fd, const struct ip6_hdr *ip6, const struct icmp6_hdr *icmp6, const char *payload, size_t payload_size);
+
+void udp_to_udp6(int fd, const struct iphdr *ip, const struct udphdr *udp, const char *payload, size_t payload_size);
+void udp6_to_udp(int fd, const struct ip6_hdr *ip6, const struct udphdr *udp, const char *payload, size_t payload_size);
+
+void tcp_to_tcp6(int fd,const struct iphdr *ip, const struct tcphdr *tcp, const char *payload, size_t payload_size, const char *options, size_t options_size);
+void tcp6_to_tcp(int fd,const struct ip6_hdr *ip6, const struct tcphdr *tcp, const char *payload, size_t payload_size, const char *options, size_t options_size);
+
+#endif /* __TRANSLATE_H__ */