From owner-freebsd-net@FreeBSD.ORG Thu Jun 21 13:17:52 2012 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BB68B106566B; Thu, 21 Jun 2012 13:17:52 +0000 (UTC) (envelope-from guyong1978@hotmail.com) Received: from snt0-omc4-s21.snt0.hotmail.com (snt0-omc4-s21.snt0.hotmail.com [65.55.90.224]) by mx1.freebsd.org (Postfix) with ESMTP id 89B498FC0A; Thu, 21 Jun 2012 13:17:52 +0000 (UTC) Received: from SNT112-W46 ([65.55.90.199]) by snt0-omc4-s21.snt0.hotmail.com with Microsoft SMTPSVC(6.0.3790.4675); Thu, 21 Jun 2012 06:16:45 -0700 Message-ID: X-Originating-IP: [194.237.142.17] From: GuYong To: , Date: Thu, 21 Jun 2012 13:16:44 +0000 Importance: Normal In-Reply-To: <4FE2E779.9040009@fastmail.net> References: , <36507982-766F-4AD3-96A3-6872B9F32793@felyko.com>, <4FE2E779.9040009@fastmail.net> MIME-Version: 1.0 X-OriginalArrivalTime: 21 Jun 2012 13:16:45.0827 (UTC) FILETIME=[1B86CD30:01CD4FB0] Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: 8bit X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: freebsd-net@freebsd.org, bms@freebsd.org Subject: RE: Question about MLDv2 implemenation in Kernel X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jun 2012 13:17:52 -0000 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 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"