Thank you, Darren. But I am still feeling puzzled here.
IPF in FreeBSD 6.0 (RELENG_6_0) http://fxr.watson.org/fxr/source//contrib/ipfilter/netinet/fil.c?v=RELENG60 Line 557-Lin604, IPF does "Nasty extension header length" check for [ routing extension header ]. But IPF4.1.22 (line 620) does the same check for [ the extension header ] right after routing extension header. I have no idea why do so since the packet may even has no other extension header after routing extension header Furthermore, if IPF wants to do "Nasty extension header length" check for [ routing extension header ]. In RFC2460 page 12, It is ok if there is only one address in router extension header, which means that it is ok if min length of routing extension header (8+16=24) shorter than 40 bytes(ip6_hdr) Ex: Take a look of the Figure 2-6 in IPv6 Essentials, Second Edition [O'Reilly]. The routing header length has only 24 bytes in trace file Could someone tell me why needs to check (shift < sizeof(struct ip6_hdr))? Or where the related definition of RFC is? Thx a lot. Thanks again for the quick response to my initial message. -Y.T. -----Original Message----- From: Darren Reed [mailto:[EMAIL PROTECTED] Sent: Thursday, May 24, 2007 2:47 PM To: Yenting Chen -陳彥廷 Cc: [email protected] Subject: Re: A question about frpr_routing6 function in IPF4.1.22 Yenting Chen -陳彥廷 wrote: > Or is there any RFCs specifics that the next header after routing > extension header MUST > 1. longer than 40 bytes? // ((shift < sizeof(struct ip6_hdr)) > 2. aligned on four bits? // ((shift - sizeof(struct > ip6_hdr)) & 15)) Sorry here for which should be 16 bytes alignment. Yes, these are both defined in the IPv6 RFC. Darren
