[Xorp-users] XORP IGMPv3 is not accepting the report with source IP 0.0.0.0

Pavlin Radoslavov pavlin at ICSI.Berkeley.EDU
Thu Jul 24 11:17:29 PDT 2008


Tushar,

Were you able to verify whether the patch actually fixes the
problem.

Thanks,
Pavlin

Pavlin Radoslavov <pavlin at ICSI.Berkeley.EDU> wrote:

> Tushar Mehta <tushar.mehta at einfochips.com> wrote:
> 
> > according to rfc-3376:
> > An IGMP report is sent with a valid IP source address for the
> > destination subnet.  The 0.0.0.0 source address may be used by a
> > system that has not yet acquired an IP address.  Note that the
> > 0.0.0.0 source address may simultaneously be used by multiple systems
> > on a LAN.  Routers MUST accept a report with a source address of
> > 0.0.0.0.
> > 
> > but in my case it is showing me this error message on the terminal "source
> > must be unicast"....
> > 
> > XORP is accepting my IGMPv3 report with source IP address "0.0.0.0".
>        ~~~~
> I guess you meant to say that "XORP is NOT accepting..."
> 
> Is the "source must be unicast" error message coming from the FEA or
> IGMP? The beginning of the error message should tell that.
> 
> If it is coming from IGMP, please try the included patch (vs latest
> XORP code in CVS) and see whether it fixes the problem.
> 
> Note that you must have enabled IGMPv3, because the acceptance of
> 0.0.0.0 is specified only in RFC 3376 (but not in earlier IGMP
> versions). Also, note that RFC 3810 doesn't say anything about IP
> source addresses that are zero, hence this won't apply for MLDv2
> either.
> 
> Pavlin
> 
> Index: mld6igmp_vif.cc
> ===================================================================
> RCS file: /usr/local/www/data/cvs/xorp/mld6igmp/mld6igmp_vif.cc,v
> retrieving revision 1.88
> diff -u -p -r1.88 mld6igmp_vif.cc
> --- mld6igmp_vif.cc	4 Jan 2008 03:16:52 -0000	1.88
> +++ mld6igmp_vif.cc	22 Jul 2008 19:35:09 -0000
> @@ -1192,7 +1192,7 @@ Mld6igmpVif::mld6igmp_process(const IPvX
>      //
>      // Source address check.
>      //
> -    if (! src.is_unicast()) {
> +    if (! (src.is_unicast() || (allow_src_zero_address && src.is_zero()))) {
>  	//
>  	// Source address must always be unicast.
>  	// The kernel should have checked that, but just in case...
> @@ -1216,7 +1216,8 @@ Mld6igmpVif::mld6igmp_process(const IPvX
>  		     src.af(), family());
>      }
>      // Source address must be directly connected
> -    if (! mld6igmp_node().is_directly_connected(*this, src)) {
> +    if (! (mld6igmp_node().is_directly_connected(*this, src)
> +	   || (allow_src_zero_address && src.is_zero()))) {
>  	error_msg = c_format("RX %s from %s to %s on vif %s: "
>  			     "source must be directly connected",
>  			     proto_message_type2ascii(message_type),
> _______________________________________________
> Xorp-users mailing list
> Xorp-users at xorp.org
> http://mailman.ICSI.Berkeley.EDU/mailman/listinfo/xorp-users



More information about the Xorp-users mailing list