Date: Wed, 20 Jun 2012 14:20:14 -0700 From: Rui Paulo <rpaulo@felyko.com> To: GuYong <guyong1978@hotmail.com>, bms@freebsd.org Cc: freebsd-net@freebsd.org Subject: Re: Question about MLDv2 implemenation in Kernel Message-ID: <36507982-766F-4AD3-96A3-6872B9F32793@felyko.com> In-Reply-To: <SNT112-W22EEF8BF50EB9EA8A845ADC5FE0@phx.gbl> References: <SNT112-W22EEF8BF50EB9EA8A845ADC5FE0@phx.gbl>
next in thread | previous in thread | raw e-mail | index | archive | help
On 20 Jun 2012, at 01:12, GuYong <guyong1978@hotmail.com> wrote: > 1. RFC3810 clause 6.1 mentions there is a Source Retransmission = Counter associated to each source, so that the merged report could = contain the content that is interrupted by a new state change report = BUT, I didn't see this is implemented currently! I think this is stored in the mli_rv variable and decremented = accordingly. > 2. Regarding the 'Older Version Querier Present timer', the code is = like this:old_version_timer =3D (mli->mli_rv * mli->mli_qi) + = mli->mli_qri; > while mli->mli_qri =3D maxdelay, and maxdelay =3D = ntohs(mld->mld_maxdelay). BUT, mld_maxdelay is in units of = milliseconds (clause 5.1.3), I think it should be divided by 1000 before = it adds to old_version_timer. I think you're right and it should be divided by MLD_TIMER_SCALE. > 3. According to RFC, a node MUST accept and process any Query whose = IP Destination Address field contains *any* of the address (unicast or = multicast) assigned to the interface on which the Query arrives. = BUT, I see the code only accept General Query addressed to FF02::1. Hmm, I disagree. Here's what the RFC says: 5.1.15. Destination Addresses for Queries In MLDv2, General Queries are sent to the link-scope all-nodes multicast address (FF02::1). Multicast Address Specific and Multicast Address and Source Specific Queries are sent with an IP destination address equal to the multicast address of interest. *However*, a node MUST accept and process any Query whose IP Destination Address field contains *any* of the addresses (unicast or multicast) assigned to the interface on which the Query arrives. This might be useful, e.g., for debugging purposes. My reading of it suggests that we are doing the right thing. We do = accept it and process it, but, like the text implies, we shouldn't take = any action. -- Rui Paulo
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?36507982-766F-4AD3-96A3-6872B9F32793>