Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 21 Jun 2012 13:16:44 +0000
From:      GuYong <guyong1978@hotmail.com>
To:        <bms@fastmail.net>, <rpaulo@felyko.com>
Cc:        freebsd-net@freebsd.org, bms@freebsd.org
Subject:   RE: Question about MLDv2 implemenation in Kernel
Message-ID:  <SNT112-W46161169EB274ECD795A9EC5FD0@phx.gbl>
In-Reply-To: <4FE2E779.9040009@fastmail.net>
References:  <SNT112-W22EEF8BF50EB9EA8A845ADC5FE0@phx.gbl>, <36507982-766F-4AD3-96A3-6872B9F32793@felyko.com>, <4FE2E779.9040009@fastmail.net>

next in thread | previous in thread | raw e-mail | index | archive | help

Hi, 
The issues are observed from my testing, so I'm 90% sure those issues are real.   see my answers below!
> Date: Thu, 21 Jun 2012 10:20:57 +0100
> From: bms@fastmail.net
> To: rpaulo@felyko.com
> CC: freebsd-net@freebsd.org; bms@freebsd.org; guyong1978@hotmail.com
> Subject: Re: Question about MLDv2 implemenation in Kernel
> 
> All,
> 
> I'm working on something new just now,and am in a conference, but here
> is my 2p.
> 
> On 20/06/12 22:20, Rui Paulo wrote:
> > 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.
> 
> Merging of pending state-changes is performed by
> mld_v2_merge_state_changes() and runs on a per-group basis for the
> end-station.
If the new state change occurs before the first transmission of previous state change report, the two reports will be merged.But if new state change occurs after first transmisson and before retransmission of first report, the pending retransmission report is deleted from the queue.     static int  mld_handle_state_change( )     {             ....             _IF_DRAIN(&inm->in6m_scq);    //deleted here!!!!             retval = mld_v2_enqueue_group_record(&inm->in6m_scq, inm, 1, 0, 0, (mli->mli_flags & MLIF_USEALLOW));     }  As no source retransmission counter is associated, the retransmission of previous report is missed. 
> 
> mli_rv controls the retransmission report count.
> 
> > I think you're right and it should be divided by MLD_TIMER_SCALE.
> 
> ENOTIME to look into this further, but if someone sends me a working
> patch, I will review and commit.
> 
> 
> > 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.
> 
> I concur.
 I don't agree, although general query is usually addressed to FF02::1, but kernel should not care about the IP destination of MLDv2 query, and respond with report.  I see this is how Linux does.  What's more, RFC6636 metions the general query could be unicasted to host for some purpose. 
> 
> Bruce
> _______________________________________________
> freebsd-net@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-net
> To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org"
 		 	   		  



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?SNT112-W46161169EB274ECD795A9EC5FD0>