summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsven-ola <sven-ola@3484d885-4da6-438d-b19d-107d078dd756>2010-10-14 17:28:12 +0200
committersven-ola <sven-ola@3484d885-4da6-438d-b19d-107d078dd756>2010-10-14 17:28:12 +0200
commit519629978fdf8c5c0ab4b3d8e39475ec89d5c727 (patch)
tree9eb22a5690f6921cce536b989bb633d74279b95d
parentb60cc949b6757fc3c76b3a9a7e52de8c36086fc0 (diff)
downloadNPTv6-519629978fdf8c5c0ab4b3d8e39475ec89d5c727.tar
NPTv6-519629978fdf8c5c0ab4b3d8e39475ec89d5c727.zip
git-svn-id: https://map66.svn.sourceforge.net/svnroot/map66@30 3484d885-4da6-438d-b19d-107d078dd756
-rw-r--r--TODO33
1 files changed, 31 insertions, 2 deletions
diff --git a/TODO b/TODO
index 796c918..2cf35cf 100644
--- a/TODO
+++ b/TODO
@@ -5,5 +5,34 @@ gateway
Check compat with tcpdump. Linux2.4 needs to copy skb() for that, but it oopses
-Update csum, see http://www.firstpr.com.au/ip/ivip/checksums/ and
-http://www.faqs.org/rfcs/rfc1624.html \ No newline at end of file
+Update csum, see http://www.faqs.org/rfcs/rfc1624.html for these
+protos (see http://www.firstpr.com.au/ip/ivip/checksums/ ):
+
+IPPROTO_TCP, IPPROTO_UDP, IPPROTO_DCCP, IPPROTO_AH?, IPPROTO_ICMPV6, IPPROTO_UDPLITE
+break NEXTHDR_NONE
+
+Evnt mit ipv6_gso_pull_exthdrs() oder ipv6_skip_exthdr() oder ipv6_find_hdr() oder nf_ct_ipv6_skip_exthdr()
+
+unsigned int ptr = skb_network_offset(skb) + sizeof(struct ipv6hdr);
+u_int8_t c = ipv6hdr.nexthdr;
+while (c != NEXTHDR_NONE && ip6t_ext_hdr(currenthdr)) {
+ const struct ipv6_opt_hdr *hp = skb_header_pointer(skb, ptr, sizeof(_hdr), &_hdr);
+ switch(c) {
+ case IPPROTO_FRAGMENT:
+ hdrlen = 8;
+ break;
+ case IPPROTO_DSTOPTS:
+ case IPPROTO_ROUTING:
+ case IPPROTO_HOPOPTS:
+ hdrlen = ipv6_optlen(hp);
+ break;
+ case IPPROTO_AH:
+ hdrlen = (hp->hdrlen+2)<<2;
+ break;
+ default:
+ return;
+ }
+ c = hp->nexthdr;
+ ptr += hdrlen;
+}
+