[Xorp-users] question about Multicast Listener query and leaving multicast groups in XORP

Kevin Wilson wkevils at gmail.com
Fri Jul 26 00:45:38 PDT 2013


Hello,

I am using latest XORP from git with mld6igmp.

According to  mld6igmp/README,

...
The MLD/IGMP implementation is based on the specification in the
following documents:

 * RFC 2236: Internet Group Management Protocol, Version 2
 * RFC 3376: Internet Group Management Protocol, Version 3
 * RFC 2710: Multicast Listener Discovery for IPv6, Version 1
 * RFC 3810: Multicast Listener Discovery Version 2 (MLDv2) for IPv6
...

RFC 3810 says:

"If a node on a link expresses, through a State Change Report, its
   desire to no longer listen to a particular multicast address (or
   source),  the Querier must query for other listeners of the multicast
   address (or source) before deleting the multicast address (or source)
   from its Multicast Address Listener state and stopping the
   corresponding traffic.  Thus, the Querier sends a Multicast Address
   Specific Query to verify whether there are nodes still listening to a
   specified multicast address or not.  Similarly, the Querier sends a
   Multicast Address and Source Specific Query to verify whether, for a
   specified multicast address, there are nodes still listening to a
   specific set of sources, or not."
...
o  A "Multicast Address Specific Query" is sent by the Querier to
      learn if a particular multicast address has any listeners on an
      attached link.  In a Multicast Address Specific Query, the
      Multicast Address field contains the multicast address of
      interest, while the Number of Sources (N) field is set to zero.

   o  A "Multicast Address and Source Specific Query" is sent by the
      Querier to learn if any of the sources from the specified list for
      the particular multicast address has any listeners on an attached
      link or not.  In a Multicast Address and Source Specific Query the
      Multicast Address field contains the multicast address of
      interest, while the Source Address [i] field(s) contain(s) the
      source address(es) of interest.
..

I made a two tests with xorp with mld6igmp :

1)  with leaving a multicast group
2)  with leaving a multicast group with source filtering

 and in both cases, in the MLD Multicast Queries which are sent by
Xorp,  the multicast address of the query is the unspecified address
of all zeros (::).

I would expect that it will have the multicast address of the group
that I left, according to the RFC.

Could it be that these requirement of the  RFC is not implemented?

This is the config file I use:

cat  /etc/xorp/config.boot

interfaces {
    interface eth3 {
        vif eth3 {
            address 2001:DB8:10:10:10:10:10:10 {
                prefix-length: 64
            }
            /* Note: The IPv6 link-local address must be configured */
            address fe80::1111:1111:1111:1111 {
                prefix-length: 64
            }
        }
    }
    interface eth4 {
        vif eth4 {
            address 2001:DB8:20:20:20:20:20:20 {
                prefix-length: 64
            }
            /* Note: The IPv6 link-local address must be configured */
            address fe80::2222:2222:2222:2222 {
                prefix-length: 64
            }
        }
    }
}

fea {
    unicast-forwarding6 {
        disable: false
    }
}

plumbing {
    mfea6 {
        disable: false
        interface eth3 {
            vif eth3 {
                disable: false
            }
        }
        interface eth4 {
            vif eth4 {
                disable: false
            }
        }
        interface register_vif {
            vif register_vif {
                /* Note: this vif should be always enabled */
                disable: false
            }
        }

    }
}

protocols {
    mld {
        interface eth3 {
            vif eth3 {
                disable: false
            }
        }
        interface eth4 {
            vif eth4 {
                disable: false
            }
        }

    }
}

protocols {
    pimsm6 {
        interface eth3 {
            vif eth3 {
                disable: false
            }
        }
        interface eth4 {
            vif eth4 {
                disable: false
            }
        }
        interface register_vif {
            vif register_vif {
                /* Note: this vif should be always enabled */
                disable: false
            }
        }

        /* Note: static-rps and bootstrap should not be mixed */
        static-rps {
            rp 2001:DB8:10:10:10:10:10:10 {
                group-prefix ff00::/8 {
                }
            }
        }
        switch-to-spt-threshold {
            /* approx. 1K bytes/s (10Kbps) threshold */
            disable: false
            interval: 100
            bytes: 102400
        }

    }
}

protocols {
    fib2mrib {
        disable: false
    }
}


regards,
Kevin



More information about the Xorp-users mailing list