1
0
mirror of https://github.com/mfontanini/libtins synced 2026-01-25 03:31:36 +01:00

Added IPv6 class. It's working, but there's no support for extension headers yet.

This commit is contained in:
Matias Fontanini
2012-11-21 22:09:58 -03:00
parent ffdfb160c4
commit 8276e7d086
16 changed files with 636 additions and 15 deletions

View File

@@ -193,6 +193,17 @@ uint32_t Utils::pseudoheader_checksum(IPv4Address source_ip, IPv4Address dest_ip
return checksum;
}
uint32_t Utils::pseudoheader_checksum(IPv6Address source_ip, IPv6Address dest_ip, uint32_t len, uint32_t flag) {
uint32_t checksum = 0;
IPv6Address::const_iterator it;
for(it = source_ip.begin(); it != source_ip.end(); ++it)
checksum += *it;
for(it = dest_ip.begin(); it != dest_ip.end(); ++it)
checksum += *it;
checksum += flag + len;
return checksum;
}
uint32_t Utils::crc32(const uint8_t* data, uint32_t data_size) {
uint32_t i, crc = 0;
static uint32_t crc_table[] = {