diff options
author | Lorenzo Colitti <lorenzo@google.com> | 2013-11-18 12:59:44 +0900 |
---|---|---|
committer | Lorenzo Colitti <lorenzo@google.com> | 2013-11-25 18:45:45 +0900 |
commit | c9f4c89da6c76ebc59a0ec1047853a13ce5f5d96 (patch) | |
tree | 9110629c337588c00c67a64b05fa498bd37423bc /translate.c | |
parent | 9fe1673c316988d0fb8dd85e9d86642e0ac6d1b4 (diff) | |
download | android_external_android-clat-c9f4c89da6c76ebc59a0ec1047853a13ce5f5d96.tar.gz android_external_android-clat-c9f4c89da6c76ebc59a0ec1047853a13ce5f5d96.tar.bz2 android_external_android-clat-c9f4c89da6c76ebc59a0ec1047853a13ce5f5d96.zip |
Add generic IP packet code and use it for GRE.
Bug: 11542311
Change-Id: I174e0b268869bc77927feeee57003580c47c30f2
Diffstat (limited to 'translate.c')
-rw-r--r-- | translate.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/translate.c b/translate.c index 75ad08a..927b49c 100644 --- a/translate.c +++ b/translate.c @@ -279,6 +279,22 @@ int icmp6_to_icmp(clat_packet out, int pos, const struct icmp6_hdr *icmp6, return clat_packet_len; } +/* function: generic_packet + * takes a generic IP packet and sets it up for translation + * out - output packet + * pos - position in the output packet of the transport header + * payload - pointer to IP payload + * len - size of ip payload + * returns: the highest position in the output clat_packet that's filled in + */ +int generic_packet(clat_packet out, int pos, const char *payload, size_t len) { + out[pos].iov_len = 0; + out[CLAT_POS_PAYLOAD].iov_base = (char *) payload; + out[CLAT_POS_PAYLOAD].iov_len = len; + + return CLAT_POS_PAYLOAD + 1; +} + /* function: udp_packet * takes a udp packet and sets it up for translation * out - output packet |