summaryrefslogtreecommitdiffstats
path: root/clatd.h
diff options
context:
space:
mode:
authorLorenzo Colitti <lorenzo@google.com>2014-12-08 12:53:05 +0900
committerLorenzo Colitti <lorenzo@google.com>2014-12-08 13:50:12 +0900
commit6b2007aacd13344c9bc73d5d858bd903b432c228 (patch)
tree3b5c3fa430d1993b149481be415e75297abb017b /clatd.h
parent290b84274989c82393a72f97f7c009094e74c651 (diff)
downloadandroid_external_android-clat-6b2007aacd13344c9bc73d5d858bd903b432c228.tar.gz
android_external_android-clat-6b2007aacd13344c9bc73d5d858bd903b432c228.tar.bz2
android_external_android-clat-6b2007aacd13344c9bc73d5d858bd903b432c228.zip
Move send_tun into tun.c as well.
Also remove a redundant include in checksum.c. Change-Id: I0b8858343b1496f22904d3b316b6c435be0f648a
Diffstat (limited to 'clatd.h')
-rw-r--r--clatd.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/clatd.h b/clatd.h
index 6368a09..ca7ad74 100644
--- a/clatd.h
+++ b/clatd.h
@@ -18,6 +18,8 @@
#ifndef __CLATD_H__
#define __CLATD_H__
+#include <sys/uio.h>
+
#define MAXMTU 1500
#define PACKETLEN (MAXMTU+sizeof(struct tun_pi))
#define CLATD_VERSION "1.3"
@@ -30,4 +32,15 @@
// how frequently (in seconds) to poll for an address change while there is no traffic
#define NO_TRAFFIC_INTERFACE_POLL_FREQUENCY 90
+// A clat_packet is an array of iovec structures representing a packet that we are translating.
+// The CLAT_POS_XXX constants represent the array indices within the clat_packet that contain
+// specific parts of the packet. The packet_* functions operate on all the packet segments past a
+// given position.
+typedef enum {
+ CLAT_POS_TUNHDR, CLAT_POS_IPHDR, CLAT_POS_FRAGHDR, CLAT_POS_TRANSPORTHDR,
+ CLAT_POS_ICMPERR_IPHDR, CLAT_POS_ICMPERR_FRAGHDR, CLAT_POS_ICMPERR_TRANSPORTHDR,
+ CLAT_POS_PAYLOAD, CLAT_POS_MAX
+} clat_packet_index;
+typedef struct iovec clat_packet[CLAT_POS_MAX];
+
#endif /* __CLATD_H__ */