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=5760

Basically, 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

Attachment: 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

Reply via email to