Ok, this took me most of the day (unfortunately), but here it is:
I am running on a Redhat linux system, and my problem was due to the issue discussed here:
http://sourceware.org/bugzilla/show_bug.cgi?id=5760Basically, inet6_opt_init() was setting the v6 extension header length to the value 1 instead of 0, even for small
extensions like the HBH/RtAlert one.This is wrong. But the consequence is that the apparent size of the option + cmsg structure was too big. If cmsg_len is appropriately trimmed to the option size based on return values of inet_opt_XX, then the kernel (correctly) gives an EINVAL because it thinks
the option is longer than the ancillary data provided to hold it :(.Attached is the .config for you. I'm looking into the best way to fix this, but it would appear that verifying and whacking as necessary the header produced by inet6_opt_init would be a first step.
thx, - K
RC7-CONFIG.gz
Description: GNU Zip compressed data
On Jul 7, 2008, at Jul 712:22 AMPDT, Pavlin Radoslavov wrote:
It appears to me that MLD query messages do not include the HBH/ Router-Alert extension header. I believe this is incorrect. (queries need to be processed by non-querier multicast routers on the same subnet). Can somebody very/explain whether I have this correct?Yes, all MLD messages must include the IPv6 Router Alert option. I just tested it on FreeBSD-7.0, and the Query messages actually include the Router Alert extension header, so the problem is probably OS-specific. If this option is missing in your setup, then this is a bug. In that case please submit a Bugzilla entry with information how to reproduce the problem, OS version, etc. Pavlin (still waiting for your .config Linux kernel config file :)
_______________________________________________ Xorp-hackers mailing list [email protected] http://mailman.ICSI.Berkeley.EDU/mailman/listinfo/xorp-hackers
