Re: [babel] Mandatory sub-TLVs in Next Hop and Router-ID

Juliusz Chroboczek <jch@irif.fr> Thu, 25 May 2017 12:03 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 62ACF12940B for <babel@ietfa.amsl.com>; Thu, 25 May 2017 05:03:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.799
X-Spam-Level:
X-Spam-Status: No, score=0.799 tagged_above=-999 required=5 tests=[BAYES_50=0.8, 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 U8EjeqoHja33 for <babel@ietfa.amsl.com>; Thu, 25 May 2017 05:03:38 -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 4C8B612426E for <babel@ietf.org>; Thu, 25 May 2017 05:03:38 -0700 (PDT)
Received: from mailhub.math.univ-paris-diderot.fr (mailhub.math.univ-paris-diderot.fr [81.194.30.253]) by korolev.univ-paris7.fr (8.14.4/8.14.4/relay1/56228) with ESMTP id v4PC3aVJ002840; Thu, 25 May 2017 14:03:36 +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 8A937EB200; Thu, 25 May 2017 14:03:36 +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 kUwZVgx2Qhqy; Thu, 25 May 2017 14:03:35 +0200 (CEST)
Received: from trurl.irif.fr (unknown [78.194.40.74]) (Authenticated sender: jch) by mailhub.math.univ-paris-diderot.fr (Postfix) with ESMTPSA id 75CCDEB206; Thu, 25 May 2017 14:03:35 +0200 (CEST)
Date: Thu, 25 May 2017 14:03:35 +0200
Message-ID: <87r2zdta7c.wl-jch@irif.fr>
From: Juliusz Chroboczek <jch@irif.fr>
To: Toke Høiland-Jørgensen <toke@toke.dk>
Cc: babel@ietf.org
In-Reply-To: <87o9uhrwin.fsf@alrua-karlstad>
References: <87y3tmbg1e.wl-jch@irif.fr> <87zie2gylh.fsf@alrua-x1> <87h90abbp0.wl-jch@irif.fr> <87efvebb9x.wl-jch@irif.fr> <513D2D6A-E00A-4D46-9762-8D57F0E57B22@iki.fi> <8760gqb9ss.wl-jch@irif.fr> <87shjus424.fsf@alrua-karlstad> <87wp969tvn.wl-jch@irif.fr> <87o9uhrwin.fsf@alrua-karlstad>
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 [194.254.61.138]); Thu, 25 May 2017 14:03:36 +0200 (CEST)
X-Miltered: at korolev with ID 5926C818.000 by Joe's j-chkmail (http : // j-chkmail dot ensmp dot fr)!
X-j-chkmail-Enveloppe: 5926C818.000 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 : 5926C818.000 on korolev.univ-paris7.fr : j-chkmail score : . : R=. U=. O=. B=0.000 -> S=0.000
X-j-chkmail-Status: Ham
Archived-At: <https://mailarchive.ietf.org/arch/msg/babel/ckO4UBJFviLCg9-DXTzBREixhz0>
Subject: Re: [babel] Mandatory sub-TLVs in Next Hop and Router-ID
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: Thu, 25 May 2017 12:03:40 -0000

> I do still think being consistent is better :)

Consistency is the straightjacket of small minds.

The main insight your comments gave me is that there are two layers: the
parser, which happens to be stateful and implements compression, and the
rest of Babel, which is layered above the parser.  Clearly, you want the
parser to build the same parse tree whichever options are implemented, so
the parser must ignore mandatory bits.  (In particular, tcpdump and
wireshark only do parsing, and you want them to be implementable
deterministically without reference to a specific set of extensions.)

To put it differently: suppose Babel were reformulated to use the PacketBB
packet format, or XML, or JSON, or protobuf, or whatever other horror the
"let's specify first and implement someday" community has come up with
today.  Then the whole stateful parsing layer would go away, but you'd
want the handling of mandatory bits to remain unchanged.

The reason I was confused is that I've been interleaving parsing and
acting on the result in my implementation, so the distinction between the
two layers wasn't obvious to me.  I hope I've managed to make it clear in
the current version of the draft, but there's obviously room for improvement.

-- Juliusz