Messages in this thread | | | Date | Thu, 26 Jan 2006 09:46:07 +0100 | From | Patrick McHardy <> | Subject | Re: [PATCH]ip_options_fragment() has no effect on fragmentation |
| |
Wei Yongjun wrote: > [1]Summary of the problem: > ip_options_fragment() has no effect on fragmentation > > [2]Full description of the problem: > When I send IPv4 packet(contain Record Route Option) which need to be > fragmented to the router, the router can not fragment it correctly. > After fragmented by router, the second fragmentation still contain > Record Route Option. Refer to RFC791, Record Route Option must Not be > copied on fragmentation, goes in first fragment only. > ip_options_fragment() is the implemental function, but there are some > BUGs in it: > > ip_option.c: line 207: > void ip_options_fragment(struct sk_buff * skb) > { > unsigned char * optptr = skb->nh.raw; > struct ip_options * opt = &(IPCB(skb)->opt); > ... > > optptr get a error pointer to the ipv4 options, correct is as following: > > unsigned char * optptr = skb->nh.raw + sizeof(struct iphdr); > > By the way, ip_options_fragment() just fill options not allowed in > fragments with NOOPs, does not delete the space of the options, > following patch has corrected the problem.
Please split the optptr fix and your enhancements in two patches and send them to netdev@vger.kernel.org.
BTW, your mailer corrupts whitespace. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |