| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Bug: 11542311
Change-Id: Id5771c9685286b70a8ad283c259c7f83662e8b76
|
|
|
|
| |
Change-Id: Ib61e67f15360c27c3ebf61f870a9482217c52357
|
|
|
|
|
| |
Bug: 11542311
Change-Id: I14a20b9ac669cdb5927f6ac26147bb0109099497
|
|
|
|
|
|
|
|
|
|
|
| |
- Remove the initial checksum, which we don't use anywhere.
- Add the upper-layer protocol to the IPv6 function. Currently
this is always the same as the next header field in the IPv6
header, but technically it's the upper-layer header after all
the extension headers. This is required to support fragments.
Bug: 11542311
Change-Id: Ie1a20fa74ee5bc933c1014bab74ae2957979b2b8
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
Bug: 11542311
Change-Id: I174e0b268869bc77927feeee57003580c47c30f2
|
|
|
|
| |
Change-Id: I24847fa35644d92bff0fe31ccfc5c4b3e8705779
|
|
|
|
|
|
| |
This fixes a compiler warning.
Change-Id: I14b5d3c871e9b2fdc8400d999e76e494ad510328
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
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>
|