[babel] Summary of the top-secret unicast Hellos meeting
Juliusz Chroboczek <jch@irif.fr> Wed, 19 July 2017 16:10 UTC
Return-Path: <jch@irif.fr>
X-Original-To: babel@ietfa.amsl.com
Delivered-To: babel@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 99FF3131686 for <babel@ietfa.amsl.com>; Wed, 19 Jul 2017 09:10:43 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level:
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id kSSyEJWwMd3a for <babel@ietfa.amsl.com>; Wed, 19 Jul 2017 09:10:41 -0700 (PDT)
Received: from korolev.univ-paris7.fr (korolev.univ-paris7.fr [IPv6:2001:660:3301:8000::1:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4DB6E124234 for <babel@ietf.org>; Wed, 19 Jul 2017 09:10:41 -0700 (PDT)
Received: from potemkin.univ-paris7.fr (potemkin.univ-paris7.fr [IPv6:2001:660:3301:8000::1:1]) by korolev.univ-paris7.fr (8.14.4/8.14.4/relay1/56228) with ESMTP id v6JGAdbY005756 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO) for <babel@ietf.org>; Wed, 19 Jul 2017 18:10:39 +0200
Received: from mailhub.math.univ-paris-diderot.fr (mailhub.math.univ-paris-diderot.fr [81.194.30.253]) by potemkin.univ-paris7.fr (8.14.4/8.14.4/relay2/56228) with ESMTP id v6JGAdVM003013 for <babel@ietf.org>; Wed, 19 Jul 2017 18:10:39 +0200
Received: from mailhub.math.univ-paris-diderot.fr (localhost [127.0.0.1]) by mailhub.math.univ-paris-diderot.fr (Postfix) with ESMTP id 7C2ECEB342 for <babel@ietf.org>; Wed, 19 Jul 2017 18:10:39 +0200 (CEST)
X-Virus-Scanned: amavisd-new at math.univ-paris-diderot.fr
Received: from mailhub.math.univ-paris-diderot.fr ([127.0.0.1]) by mailhub.math.univ-paris-diderot.fr (mailhub.math.univ-paris-diderot.fr [127.0.0.1]) (amavisd-new, port 10023) with ESMTP id mCKXsLLjwOny for <babel@ietf.org>; Wed, 19 Jul 2017 18:10:38 +0200 (CEST)
Received: from ijon.irif.fr (dhcp-8e8a.meeting.ietf.org [31.133.142.138]) (Authenticated sender: jch) by mailhub.math.univ-paris-diderot.fr (Postfix) with ESMTPSA id C5880EB36A for <babel@ietf.org>; Wed, 19 Jul 2017 18:10:37 +0200 (CEST)
Date: Wed, 19 Jul 2017 18:10:46 +0200
Message-ID: <87mv80xv95.wl-jch@irif.fr>
From: Juliusz Chroboczek <jch@irif.fr>
To: babel@ietf.org
User-Agent: Wanderlust/2.15.9
MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue")
Content-Type: text/plain; charset="US-ASCII"
X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.2.7 (korolev.univ-paris7.fr [IPv6:2001:660:3301:8000::1:2]); Wed, 19 Jul 2017 18:10:39 +0200 (CEST)
X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.2.7 (potemkin.univ-paris7.fr [194.254.61.141]); Wed, 19 Jul 2017 18:10:39 +0200 (CEST)
X-Miltered: at korolev with ID 596F847F.000 by Joe's j-chkmail (http : // j-chkmail dot ensmp dot fr)!
X-Miltered: at potemkin with ID 596F847F.002 by Joe's j-chkmail (http : // j-chkmail dot ensmp dot fr)!
X-j-chkmail-Enveloppe: 596F847F.000 from potemkin.univ-paris7.fr/potemkin.univ-paris7.fr/null/potemkin.univ-paris7.fr/<jch@irif.fr>
X-j-chkmail-Enveloppe: 596F847F.002 from mailhub.math.univ-paris-diderot.fr/mailhub.math.univ-paris-diderot.fr/null/mailhub.math.univ-paris-diderot.fr/<jch@irif.fr>
X-j-chkmail-Score: MSGID : 596F847F.000 on korolev.univ-paris7.fr : j-chkmail score : . : R=. U=. O=. B=0.000 -> S=0.000
X-j-chkmail-Score: MSGID : 596F847F.002 on potemkin.univ-paris7.fr : j-chkmail score : . : R=. U=. O=. B=0.000 -> S=0.000
X-j-chkmail-Status: Ham
X-j-chkmail-Status: Ham
Archived-At: <https://mailarchive.ietf.org/arch/msg/babel/opXEV_QnoCtQ1wcLkeKm6IKgaVI>
Subject: [babel] Summary of the top-secret unicast Hellos meeting
X-BeenThere: babel@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: "A list for discussion of the Babel Routing Protocol." <babel.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/babel>, <mailto:babel-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/babel/>
List-Post: <mailto:babel@ietf.org>
List-Help: <mailto:babel-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/babel>, <mailto:babel-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 19 Jul 2017 16:10:44 -0000
Dear all, TL;DR version: we keep unicast Hellos but make them optional. We write this up in the rfc6126bis draft, and see how well it reads. We then request feedback on the list. You may now skip the rest of this mail. First, some background. Hellos in Babel carry a monotonically increasing sequence number (seqno) which must be synchronised between sender and receiver. Since there is a single seqno per outgoing interface, every Hello MUST be sent to all neighbours on each interface -- either over multicast (RFC 6126) or over exhaustive unicast (allowed in rfc6126bis, insight due to Margaret). There is some desire -- expressed most vocally by David and Toke -- to send Hellos over unicast to different neighbours at different times, which requires either getting rid of the seqno or adding a per-neighbour outgoing counter in addition to the per-interface counter. Russ White sent me a series of (private) mails that gave some insight into the issue. In general, the Babel protocol specifies only very loose coupling between sender and receiver, which makes the protocol easy to evolve in a compatible manner. Not so with the Hello sub-protocol: the sender and receiver seqnos are tightly coupled, which makes this sub-protocol difficult to evolve. I think this analysis is spot on. We started the meeting with me giving some background into the problem (roughly speaking the two paragraphs above). We then did some brainstorming about what solutions we see: a new type of "unicast" Hello (David and Toke's proposal, in the current version of the draft). A new type of seqno-less Hello (my proposal, but it has a serious flaw -- Hello and seqno-less Hello would support different sets of sub-TLVs). Removing the seqno from Hellos and bumping the protocol version number to 3 (Matthieu's proposal, rejected since we're happy with version 2). As well as some more convoluted ideas (names of the authors withheld in order to protect the guilty, but I'll be happy to gossip over a beer). During this discussion, there were a few interesting insights. Margaret expressed some doubts about the usefulness of different Hello intervals for different neighbours. She noted that our intuition that one should reduce the Hello interval for marginal neighbours might be incorrect: quite the opposite, since with a shorter interval short-term outages might be spuriously detected as link drops. Agreed, although the length of the window is not necessarily related to the interval. More experimentation and experience is needed. David expressed some ideas about using driver data instead of Hello drop rate. We agreed that this might be mentioned in Appendix C, but is only reasonable for implementors that control the whole OS. (I wonder who that can be.) Matthieu suggests that we might want to test both multicast and unicast reachability before using a neighbour for routing, since unicast-only link failures happen sometimes. David noticied that IHU does that. Matthieu noticed that IHU can be sent over multicast too (and is in the reference implementation, ndlr). IHU with AE 0 is used by David over unicast only. He's in favour of leaving it in the protocol, but forbidding it for multicast. I disagree, I'll write that up on the list. At this point, the discussion was moving away from the Unicast hellos, so we decided that we don't have an idea that is significantly better than the current David-Toke proposal (there was one dissenting voice). We went back to my mail of yesterday evening, and there was clear consensus on the following two points: - we leave unicast Hellos in (no to proposal 1); - we don't delegate them to a future ducument (no to proposal 2). Right now, the document contains a mild contradiction: you MUST be able to parse unicast Hellos, but you are allowed to essentially ignore them. We have agreed that we're going to tweak the document to make unicast Hellos more optional, and see whether we can make it so it gives more convincing advice to the implementor. Therefore, we'll try to write up proposal 3 -- keep the packet format, but make it somewhat more optional. The actual protocol will remain mostly unchanges, only the level of MUST-ness will shift. Thanks to everyone, -- Juliusz
- [babel] Summary of the top-secret unicast Hellos … Juliusz Chroboczek
- Re: [babel] Summary of the top-secret unicast Hel… David Schinazi
- Re: [babel] Summary of the top-secret unicast Hel… Toke Høiland-Jørgensen
- Re: [babel] Summary of the top-secret unicast Hel… Juliusz Chroboczek
- Re: [babel] Summary of the top-secret unicast Hel… Juliusz Chroboczek
- Re: [babel] Summary of the top-secret unicast Hel… Toke Høiland-Jørgensen