Skip site navigation (1)Skip section navigation (2)
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>