History log of /external/android-clat/translate.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
10e8827d636a72a7bcdfd52d15bad9342ae2a0a6 02-Jun-2014 Lorenzo Colitti <lorenzo@google.com> Use a raw socket to send IPv6 packets instead of a tun.

This will allow us to bind the socket to a particular network.

Bug: 15340961
Change-Id: I50857d372955f2b6f7035157c2968cda72c32585
/external/android-clat/translate.c
91d0f1bc6dd24e54ed3caef9b08525b332ab0adf 02-Jun-2014 Lorenzo Colitti <lorenzo@google.com> Make translate_packet take a fd instead of a tun header.

This will make it easier to use separate fds for reading and
writing in a future change.

Bug: 15340961
Change-Id: I5b081b05765cae0488ac599be5738ce9737cae41
/external/android-clat/translate.c
a4454bfda99803c287b78f8d1cd7bdc1b56065db 25-Feb-2014 Lorenzo Colitti <lorenzo@google.com> Declare pos as clat_packet_index instead of int

Bug: 11542311
Change-Id: Id5771c9685286b70a8ad283c259c7f83662e8b76
/external/android-clat/translate.c
fcac410fa15613873a07143ccd46470b869346a3 25-Feb-2014 Brian Carlstrom <bdc@google.com> Use uint8_t not char for binary data to avoid -Wall -Werror issues on x86 builds

Change-Id: Ib61e67f15360c27c3ebf61f870a9482217c52357
/external/android-clat/translate.c
57d480d2b425ef20d8b6f84abd4e9e3209fa9422 09-Feb-2014 Lorenzo Colitti <lorenzo@google.com> Support translating fragmented packets.

Bug: 11542311
Change-Id: I14a20b9ac669cdb5927f6ac26147bb0109099497
/external/android-clat/translate.c
f9390605bacda7bbe8ea33aa0a39c1581ff6aea2 12-Feb-2014 Lorenzo Colitti <lorenzo@google.com> Move translation entry point into translate.c.

The entry point to the translation code is currently called
packet_handler and lives in clatd.c. Move it into translate.c
and rename it to translate_packet, since that's what it does.

Also get rid of some redundant includes.

Bug: 11542311
Change-Id: I8529fb87f3a86ee6724fad54787c33a5e86c56ab
/external/android-clat/translate.c
5a50c0283346a197cda7af19e68f611f14b8fe57 10-Feb-2014 Lorenzo Colitti <lorenzo@google.com> Fix up checksums instead of recalculating them.

Currently the checksums of translated packets are calculated
from scratch by checksumming the translated packet. This is slow
and does not work in the case of fragments, because the whole
packet is not available. Instead, calculate the checksum by
adjusting the checksum of the original packet.

Bug: 11542311
Bug: 12116252
Change-Id: I6b78a94ca5bd96b13ee2653b6200551193b3dcc1
/external/android-clat/translate.c
a33592bd08a20c6a521b8508975b7a74ecdf4f03 12-Dec-2013 Bernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org> Remove unused variables

Remove unused variables -- they cause warnings (and errors with
-Werror) when building with clang 3.4.

Change-Id: I03fff9b1b9d620763f41c8b31a19c4724726739c
Signed-off-by: Bernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org>
/external/android-clat/translate.c
c9f4c89da6c76ebc59a0ec1047853a13ce5f5d96 17-Nov-2013 Lorenzo Colitti <lorenzo@google.com> Add generic IP packet code and use it for GRE.

Bug: 11542311
Change-Id: I174e0b268869bc77927feeee57003580c47c30f2
/external/android-clat/translate.c
9477a464bd70849bcddcb8d11613cff117235cb0 18-Nov-2013 Lorenzo Colitti <lorenzo@google.com> Fix compiler warnings and enable -Wall -Werror

Change-Id: I24847fa35644d92bff0fe31ccfc5c4b3e8705779
/external/android-clat/translate.c
cd70b354eb985678175904a937085bed6094af77 09-Apr-2013 Lorenzo Colitti <lorenzo@google.com> Support translating ICMP errors.

When receiving ICMPv6 messages from IPv6-only nodes, use
255.0.0.<ttl> as a fake IPv4 source address. It's better than
nothing.

Bug: 8276725
Change-Id: Iae93f75764cb9cd875af9bb5f1862a0dce2c2fa7
/external/android-clat/translate.c
ee80ca65907d214e2483e315a1ba7f610184de03 10-Apr-2013 Lorenzo Colitti <lorenzo@google.com> Improve checksum calculation and address checking

1. Add a function that calculates the checksum of all the packet
components starting from the specified position. This
simplifies the code a bit and makes it easier to translate
nested packets like ICMP error messages.

2. Don't hardcode IP source and destination addresses. This is
required to translate ICMP error messages.

Bug: 8276725
Change-Id: I2cae45683ae3943e508608fd0a140180dbc60823
/external/android-clat/translate.c
d90841824dc00f65a48a789396c7f428807432ca 21-Mar-2013 Lorenzo Colitti <lorenzo@google.com> Pass around packet data instead of fds

The current code calls all the translation functions one after
another, accumulating the translated packet into local variables
on the stack and calling writev() at the end. This does not allow
calling the translation functions re-entrantly, which is needed,
for example, to translate ICMP errors (which contain the
packet that caused them). Define a clat_packet type to wrap the
array of iovecs and an enum of packet positions.

Also clean up the code a bit: get rid of a fair bit of duplicated
code (though there is still some left), get rid of some redundant
memcpy statements, fix style issues, etc.

Bug: 8276725
Change-Id: Ib58d2348894e82275234fc67dbdb1f82753f204f
/external/android-clat/translate.c
5cc877d4fc20d66ca5a057a3dc445adb998409bd 08-Apr-2013 Lorenzo Colitti <lorenzo@google.com> Treat the options as part of the TCP header.

This simplifies the code and makes UDP and TCP look the same. It
will also make it easier to implement nested translation in the
future because there will only be one iovec array entry for the
transport layer header, regardless of whether we are translating
UDP or TCP and regardless of the presence of options.

Also get rid of a couple of memcpy statements by pointing to the
original data instead.

Bug: 8276725
Change-Id: I6a702aefdf3a070eedfc6f7d3ebec21880ecc22b
/external/android-clat/translate.c
0278627f576832860af2d84e04e383ecaa92d74f 08-Apr-2013 Lorenzo Colitti <lorenzo@google.com> Pass in the length to pseudo checksum functions

Currently, the pseudo-header checksum calculation functions get
the transport layer length from the IP header. This requires that
the length be known at IP header construction time, which
does not allow transport layer translation functions to change
the length of the packet later. Have the transport functions
pass in the size directly.

Bug: 8276725
Change-Id: I76a93f5e66181bec21d68f779c68c54090a77c33
/external/android-clat/translate.c
a45056e35c1af2a0f0a6eed258fd5fdf4846a79f 23-Mar-2012 Daniel Drown <dan-android@drown.org> 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>
/external/android-clat/translate.c