summaryrefslogtreecommitdiffstats
path: root/dump.c
Commit message (Collapse)AuthorAgeFilesLines
* Use a packet socket to receive packets.Lorenzo Colitti2014-06-111-3/+3
| | | | | | | | | Combined with the previous change to send on a raw socket instead of a tunnel interface, this allows us to get rid of the clat interface and remove all the routing configuration code. Bug: 15340961 Change-Id: I9d9b90f9b4f58dcc3c102abcdc32a2c7ee86b01d
* Use uint8_t not char for binary data to avoid -Wall -Werror issues on x86 buildsBrian Carlstrom2014-02-241-7/+14
| | | | Change-Id: Ib61e67f15360c27c3ebf61f870a9482217c52357
* Support translating fragmented packets.Lorenzo Colitti2014-02-221-0/+1
| | | | | Bug: 11542311 Change-Id: I14a20b9ac669cdb5927f6ac26147bb0109099497
* Modify the pseudo-header checksum functions.Lorenzo Colitti2014-02-221-4/+4
| | | | | | | | | | | - 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
* Pass around packet data instead of fdsLorenzo Colitti2013-04-121-0/+1
| | | | | | | | | | | | | | | | | 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
* Slightly improve dumping packetsLorenzo Colitti2013-04-101-4/+13
| | | | | | | | Add a function for dumping iovecs, and make hexdumps clearer by adding spaces between bytes. Bug: 8276725 Change-Id: Ifb2f8317613d05fa6bd600700090a6df258cde08
* Pass in the length to pseudo checksum functionsLorenzo Colitti2013-04-091-4/+4
| | | | | | | | | | | | 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
* Don't compile packet dumping code by default.Lorenzo Colitti2013-02-011-0/+5
| | | | | | Bug: 7664960 Change-Id: Ieb56bcc010d0e12264d43e0a0dfcb1beb479d4e2
* android clat serviceDaniel Drown2012-11-121-0/+225
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>