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:darrenr@reed.wattle.id.au]
Sent: Thursday, May 24, 2007 2:47 PM
To: Yenting Chen -陳彥廷
Cc: ipfilter@coombs.anu.edu.au
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
|