Re: [babel] Example configuration

Toke Høiland-Jørgensen <toke@toke.dk> Thu, 08 August 2019 14:04 UTC

Return-Path: <toke@toke.dk>
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 6214F120052 for <babel@ietfa.amsl.com>; Thu, 8 Aug 2019 07:04:12 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level:
X-Spam-Status: No, score=-1.999 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=toke.dk
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 6PblbNh3rLlx for <babel@ietfa.amsl.com>; Thu, 8 Aug 2019 07:04:09 -0700 (PDT)
Received: from mail.toke.dk (mail.toke.dk [52.28.52.200]) (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 936C7120044 for <babel@ietf.org>; Thu, 8 Aug 2019 07:04:09 -0700 (PDT)
From: Toke Høiland-Jørgensen <toke@toke.dk>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=toke.dk; s=20161023; t=1565273046; bh=1Jnq40OQfBFGgvIytKob19tPR2BGXmpYGE9HzYggbfs=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=KeOeyZdyzMqquQkq8dZo8WxUBj+eK3h+62Z3A8mNON/3boKkW5iono9oPI1mzFBiQ fO0j1wxcpccYVBNIrQcNj20+BBnJRV1IAe6LxBBx8T+EsO+L5suI43bTarF8Nz+gJx nDTyGVB3QEG7xEokSc5ROo6taETMX5zLMsu1vOshSRNMR2wZU5HopW0whCs2qehZPJ DtjgaW5GnIctcHYeOtXfDZrJ6P6nZCCjocaxqK/MBfoQsU7CBxtwJ9NLmG9EmEY2Mc Fa0I30qns2Qqw3Q0lpwbksLBIKXStNxvh5gzrFkPOK0Is8I1rrNz/fNlbYoM2qQUTY 0nudqz08Xxzxw==
To: "STARK, BARBARA H" <bs7652@att.com>, 'Mahesh Jethanandani' <mjethanandani@gmail.com>
Cc: 'Babel at IETF' <babel@ietf.org>, 'Juliusz Chroboczek' <jch@irif.fr>
In-Reply-To: <2D09D61DDFA73D4C884805CC7865E6114E25905B@GAALPA1MSGUSRBF.ITServices.sbc.com>
References: <E726ED50-6D90-4537-B237-6E52D375F50B@gmail.com> <8736itu6j8.wl-jch@irif.fr> <0E0A89B7-3D7A-4605-8776-2CF685B268B0@gmail.com> <877e7qaxte.wl-jch@irif.fr> <1C6F628C-7A3C-4D66-9930-9F0244A20722@gmail.com> <8736ieasm6.wl-jch@irif.fr> <EF249683-1BB0-4686-A77A-847E64E4EA50@gmail.com> <87pnlhaixh.wl-jch@irif.fr> <2D09D61DDFA73D4C884805CC7865E6114E257961@GAALPA1MSGUSRBF.ITServices.sbc.com> <0B28A1FA-32B4-41E6-B646-C6A3907E9CCC@gmail.com> <2D09D61DDFA73D4C884805CC7865E6114E258CF7@GAALPA1MSGUSRBF.ITServices.sbc.com> <B2CE14DA-DEDA-40FB-AA96-FB4009F5FA19@gmail.com> <2D09D61DDFA73D4C884805CC7865E6114E25905B@GAALPA1MSGUSRBF.ITServices.sbc.com>
Date: Thu, 08 Aug 2019 16:04:05 +0200
X-Clacks-Overhead: GNU Terry Pratchett
Message-ID: <87lfw3u52i.fsf@toke.dk>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/babel/0C2NfYAAvsM9IcwJ7QNa2Z9yVpw>
Subject: Re: [babel] Example configuration
X-BeenThere: babel@ietf.org
X-Mailman-Version: 2.1.29
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, 08 Aug 2019 14:04:13 -0000

"STARK, BARBARA H" <bs7652@att.com> writes:

> What I had in mind for the updates to the information model are step 5. If the operator needs to update link-quality, or flip on split-horizon, or set a RTT estimate value, or specify whether they want to use unicast instead of multicast, or any combination thereof for a particular interface, they would create a new babel-link-properties object and associate that with the interface.
>
> Can we agree on the changes to the information model I suggested yesterday?
>
> <bhs> Let me see if I understand... Does it have to be a “new” babel-link-properties instance, or can it be one that exists?
>
> That is, if we had an object called babel-link-properties
>      object {
>           string                rw babel-link-properties-name;
>           [string               rw babel-interface-metric-algorithm;]
>           [boolean               rw babel-interface-split-horizon;]
>           [boolean               rw babel-interface-rtt;]
>           [boolean               rw babel-interface-unicast;]
>       } babel-hmac-keys-obj babel-link-properties;
>
> [mj] with the corrections marked in red.
> <bhs> I think babel-interface-metric-algorithm is “mandatory in the sense it must be implemented and expressed to be compliant with the info model”. So I disagree with the square brackets for that one. The existence of the metric-algorithm is reasonably normative in rfc6126bis. The possible enumerations aren’t normative, but that’s not what the square brackets mean. At least one metric calculation algorithm must be implemented and it must be given a name and expressed to be compliant with the info model. I see rfc6126bis has split horizon as “SHOULD” (Babel node SHOULD use an optimisation known as split horizon), so I agree with square brackets for that. The other 2 aren’t actually going in at this time, so there’s no dependency on their drafts. They need to mention what data elements they need in those drafts. And, yeah, I’m sloppy with cut and paste.
>
> Where the implementation may create some set of initial entries that its developers have decided to e.g. name “wired”, “wireless”, “tunnel” (but some other implementation may give a different name to the same group of parameter values). link-properties-name must be unique (and not empty or NULL), but also no 2 instances are allowed to have the same set of values for the latter 4 parameters. Once an instance is created it cannot be modified. If it is referenced from an interface or was created by the implementation, it cannot be deleted. This makes instances created by the implementation immutable.
> This object can be written (new instances created with different combinations of values and a different name, like “unicast-wired”).
> An interface will have a reference to one of these instances, to identify the set of link-properties it uses. It’s allowed to modify which set of link-properties is used/referenced by an interface.
>
> Is that right? And did you say you wanted it under interface or under the base? I think it would make sense under base. Juliusz, I think this approach (if it’s what Mahesh meant) would provide the benefits of allowing users to use more meaningful names for groups of link properties, allow use of names that babeld has already popularized among its users while allowing other implementations to use different names (names aren’t standardized), and isn’t very complicated. It does make it harder if the user wants to just change one of the link properties and not others (they might have to create a new instance). But it makes it easier for the user who wants to change from one grouping of properties to another.
>
> [mj] Yes, that is what the intention of the change was. Note, I did want instances of babel-link-properties to exist under the base (babel-informtion-obj). In babel-interface-obj we only reference one of those instances:
>
> object {
>           ….
>           [babel-link-properties   rw babel-link-properties<0..*>;]
>
> } babel-information-obj;
>
> object {
>          [reference                      rw  babel-link-properties;]
>           …..
> } babel-interface-obj;
>
> <bhs> OK. I was too lazy to search for the exact proposal, so I was just going by memory. But I think babel-link-properties needs to be <1..*>. Babel is dead in the water if it doesn’t have at least one means of calculating metrics.
> Juliusz, does this make sense and are you ok with it?

Why is this complexity needed? Couldn't it just be solved in the user
interface, something like:

An input form contains these four entries:
          [string               rw babel-interface-metric-algorithm;]
          [boolean               rw babel-interface-split-horizon;]
          [boolean               rw babel-interface-rtt;]
          [boolean               rw babel-interface-unicast;]

Underneath those four input boxes is another dropdown box (or whatever)
with the presets ("wireless", "wired", "tunnel", etc). Selecting one of
these just fills in the preset values into the four input boxes above
it, which the user can then either just accept, or change individual
values as he or she pleases.

This way, the information model doesn't need to know anything about the
groups or preset names, it just carries the values...

-Toke