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.h
|
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.h
|
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.h
|
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.h
|
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.h
|