Subject: Re: Router Alert IPv4 Option
To: None <darrenr@reed.wattle.id.au>
From: Hitoshi Asaeda <asaeda@producegate.net>
List: tech-net
Date: 07/24/2001 18:41:55
> > One should note that almost all modern routing protocols (even IGMP v2)
> > mandate that their packets be sent with the Router Alert option set.
> 
> If that's the case then we need to implement something, maybe even by 1.6.

Actually, as a spec of IGMPv2/v3, router alert option is mandatory
even in a report message. This means it should be set or check not
only by a router, but by a host.
So, IMO, it's good to modify kernel to implement IGMP with RA.
In addition, set/getsockopt implementation is necessary to handle this
option, in order to make routing daemon, like pimd, know that kernel
would set/check RA. After set/getsockopt implementation for RA is
done, routing daemon with using this set/getsockopt can handle whether
it should set/check by daemon itself.

The problem is - actually, it's not a problem, it's a spec, though -
when kernel modification strictly follows IGMP's specs, every IGMP
packet with no RA is ignored. So if someone who doesn't implement RA
sends IGMPv2/v3 message, then strictly modified node, which may be a
host or may be a router, cannot communicate the sender.
So, as my ideal way:), sysctl implementation to able or disable strict
RA check is also a good idea.

Thanks.
--
Hitoshi Asaeda

ps. I implemented IGMP's RA set/check in a kernel, more detail, in
igmp_input() and igmp_sendpkt() with RA handling. If someone can check
it, I'll send him/her the patch. Please tell me. (not tested, sorry ;)
If you set "options IGMP_RA_CHECK_ENABLED" after you apply this patch,
kernel strictly check RA option when IGMP messages are received. If
you want to accept IGMP messages with no RA option, there is no need
to specify some options in a kernel configuration file. (In this case,
kernel just send IGMP message with RA option, never check received
messages.) This is just a tentative solution, though.