Re: [babel] [netmod] NULL value for uint16

"Sterne, Jason (Nokia - CA/Ottawa)" <jason.sterne@nokia.com> Mon, 27 September 2021 16:21 UTC

Return-Path: <jason.sterne@nokia.com>
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 3EEDC3A0824; Mon, 27 Sep 2021 09:21:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.353
X-Spam-Level:
X-Spam-Status: No, score=-2.353 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.452, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=nokia.onmicrosoft.com
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 ZfXm8u9xFgiH; Mon, 27 Sep 2021 09:20:59 -0700 (PDT)
Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2102.outbound.protection.outlook.com [40.107.92.102]) (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 46FD63A082C; Mon, 27 Sep 2021 09:20:59 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GJ/vd4JVhg5gkq6rTy201IYiYrKHYI2U+YYCXE4NDiNO+ZUoXK2Kz0rNunKB39cXbYnFLSGO1MH7XeXXO+M+gfervWs81m8jjtKpqYUb7z2bvYVda4SGLK0gmoUBVePXZPftXo1jrVL7ixrBwDNPW99DOEPPvQVeL5SX5pQpSpHv7VE6Ig7Ap0MU5K6FbqzCXDtTT3KPMyBgkMnoNpNXzN1107jiKuWfpp4MKtURYog34jeZqNSu+BDBDitUnsCBipeCVqHCTl7iUM6TeOynKQD2GquKkAsrrkshUBXdKf5O53K/oJ40ObPpeHvU5sYx4DspewEggsZIw2KoAjLIAA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=QeyUJVBwhprgH2QIanMhXF79vo8IRzTp6+FiXE6W14I=; b=Tu99Giw2S0Dx2y0viM7K+eY2/3VoMeFHv2NPa+Unajh0xXh2S0/IMyXxLumflQ+zRRX81FkyJ5HK+YSbWlumagc7HIGnGWQQmo6xj/YY+w2v+tf9hCCn8w7aoXdZahCHwWFuOmJyQFe4xUir1q+Ue4IxagTQLg4grYhh+rS3qHnzCthE2GPzVJu10uohdjszo5YP85Mb7owf3/uiFWBI7S6e/y2+ijc1g2fhVUFKbKPqdYegchuwGHhU1s8jj/q+R/0GnBGmjzT9vT/VV1EVw6y0YvJZUJschqMHyAB9hlZx2dMyPd99HGn8KkVis6uoP2hCb7UleOFlyEMOB0bbDg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nokia.com; dmarc=pass action=none header.from=nokia.com; dkim=pass header.d=nokia.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nokia.onmicrosoft.com; s=selector1-nokia-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=QeyUJVBwhprgH2QIanMhXF79vo8IRzTp6+FiXE6W14I=; b=jb68AG2CkFrG48Of9DqFhpsbaMDcRz7fKYyaXlJGcdegSF2dgSwHJmQZZrWfhz1VxkhbhL3gGh1lid55H9ITs2lnbU44lVqAX6AUmZ2Mt4v9FICZCO7UtfGSWoA6EOTHd4lh0k3BYzcMyF6Ls18xpGIizA9gbCxZIe1OhdYZy+Y=
Received: from DM6PR08MB5084.namprd08.prod.outlook.com (2603:10b6:5:41::29) by DM6PR08MB5707.namprd08.prod.outlook.com (2603:10b6:5:178::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4523.16; Mon, 27 Sep 2021 16:20:56 +0000
Received: from DM6PR08MB5084.namprd08.prod.outlook.com ([fe80::34fb:92d2:cb94:e3be]) by DM6PR08MB5084.namprd08.prod.outlook.com ([fe80::34fb:92d2:cb94:e3be%7]) with mapi id 15.20.4544.021; Mon, 27 Sep 2021 16:20:56 +0000
From: "Sterne, Jason (Nokia - CA/Ottawa)" <jason.sterne@nokia.com>
To: "STARK, BARBARA H" <bs7652@att.com>, 'tom petch' <ietfc@btconnect.com>, 'Juergen Schoenwaelder' <j.schoenwaelder@jacobs-university.de>, 'Mahesh Jethanandani' <mjethanandani@gmail.com>
CC: 'Babel at IETF' <babel@ietf.org>, "'netmod@ietf.org'" <netmod@ietf.org>
Thread-Topic: [netmod] [babel] NULL value for uint16
Thread-Index: AQHXqUiEDT1SO2+3HkGPUisDdYR4/6ujfOXQgBSmHxA=
Date: Mon, 27 Sep 2021 16:20:56 +0000
Message-ID: <DM6PR08MB50843AF5FA63086F51799F189BA79@DM6PR08MB5084.namprd08.prod.outlook.com>
References: <AM7PR07MB624802516EFB174B6912C5DAA0D69@AM7PR07MB6248.eurprd07.prod.outlook.com> <20210910121430.kofyvd2q3ludm2pk@anna.jacobs.jacobs-university.de> <AM7PR07MB62482A4271AF1CA5013EB136A0D69@AM7PR07MB6248.eurprd07.prod.outlook.com> <b1b1cd18-537f-561f-dcb1-9aca41b7d3c9@labn.net> <20210910200902.bic4rhyhp75bgsjz@anna.jacobs.jacobs-university.de> <BBC6AA9F-86C1-4A9C-86FD-AD77668CA9D9@gmail.com> <20210913200455.xot7lihpmqiemm5c@anna.jacobs.jacobs-university.de> <DM6PR02MB69248D2780D5C880CC647783C3D99@DM6PR02MB6924.namprd02.prod.outlook.com> <AM7PR07MB6248BBB558136D1E6F8C1549A0DA9@AM7PR07MB6248.eurprd07.prod.outlook.com> <DM6PR02MB692446F49506791E90B0D23EC3DA9@DM6PR02MB6924.namprd02.prod.outlook.com>
In-Reply-To: <DM6PR02MB692446F49506791E90B0D23EC3DA9@DM6PR02MB6924.namprd02.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: att.com; dkim=none (message not signed) header.d=none;att.com; dmarc=none action=none header.from=nokia.com;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: b853f537-56e8-4988-3cb5-08d981d2c8c5
x-ms-traffictypediagnostic: DM6PR08MB5707:
x-microsoft-antispam-prvs: <DM6PR08MB570740ACE2A2056F5745CC7B9BA79@DM6PR08MB5707.namprd08.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: leT1bbX66MKx9qDTzgCjgfAK2zxhSfWQgrNGTajpusEjC2nIRqp1pw7xbwu9ZnYHYtC+wiR7GzuHdxBRMgA3chGpLbSlWG2jmfJ7ToKmPR1UXRBH+desuZOF1aKpj3b+Fs27aO7Lq/Rmw7Rlfx6HjIN0pBH41wv9wPpi7zbr2DD2x7i9OaqMlC4yhvM39JWjo/ulPHmRrn+1pIPjddNvJlyOQR/vyI6UevdY7MU0tvTSAfI4trifbe7X1P8YCQXH5dXMYF8yp5aSBKnnXe6+fwWT3ymMsyrgKOp5cQBoFbrRehave0SN39Iq4aXaSy+D44F6EDXycxJFIA//vMblWpUIOxvzXNj/ECNkKGHQ6Zim5qSWPWmu6LvfYytcjZx6bMmG+vtLeayWbgZyLnpXaAYSyfxm2MeckBRatt/AjOyAdTCXXCqCuBwjDgdTQbgZoqiy7bXQZNGQFt3RtcZ4XjNIjW5QqGZtTc/pRzAyS38D9p3whDlZ/FyQjuV4vG0ySA1Qj5KAvN5RZ0hNTaj3nNGpzbCrF9R5Qn8HqmBxkAWPRZPjU2+x3s0K22PpeV9umKDzNfXUqlHK/+N+YmyF9DdYCF3Rn27KRaJL5/F3YkMlxgR9Kg5kGaQMhzEwfMoIWHopN0qT7J6IGUyYrn982hEmG9Ys8y8hGw/bpVH8iNJhZyH0Giyup+pXAnRXL9ufJlZQ2lqF3x2AWTOC3xEeVaCQSAIGFiyRBUEoi546wMvaXvmbYwSPDzeSDlKFuknKPKVSRDs9q7853RZ8ORnnsSfKqjNNLa3S73WqxzlPfXvKeLO/4t6p88XWX9/9MbJhN9wtT7LeRALRX3j6zkFT4yyfBfBcuLpw7N2j6N8k1UI=
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR08MB5084.namprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(30864003)(38100700002)(9686003)(71200400001)(55016002)(186003)(508600001)(26005)(33656002)(66556008)(54906003)(110136005)(66446008)(64756008)(66574015)(5660300002)(86362001)(122000001)(53546011)(6506007)(7696005)(52536014)(83380400001)(38070700005)(66476007)(4326008)(66946007)(2906002)(316002)(8936002)(966005)(76116006)(8676002)(309714004); DIR:OUT; SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?z+J2ibNaB5FGW0EOCkP7I3hZKpIaXn7mT95di+cGMAj8wT76+Nn9Oj5MdF?= =?iso-8859-1?Q?unNOvI1+Axw7vnqFntVMtsRf0tzlZcZju1xtRZFstfPHP+ZNf+p6WE/L8P?= =?iso-8859-1?Q?l3EcciHMmrLSzndCVk9XHSencYcVMq5pGFMeJ3VxCCC3vCzCIyEgE+oMdL?= =?iso-8859-1?Q?emMPHxqnzQ80QnIwnWck71+3+bJSVD+yRdJaQHvqsVHyctshIjXj81WHUx?= =?iso-8859-1?Q?mXAnW83wewnjiAKRCbKCwE0ik3Nqo1xKNcpTcEcs0xuLgPCzjone3evtIr?= =?iso-8859-1?Q?x57GiRgaS3p8TnUOBYe/8RZo5ihuvFNcok72KZlCjhabLxWNSfsiqykGXg?= =?iso-8859-1?Q?fmNdGU9YMpv2iL+3CZP+v5P0hlsp2meEVlZK5rH2lGT4TkFpRHKh1isHwr?= =?iso-8859-1?Q?0PO2foaJz+sSXHGXCutBioQvF0ObQnJlXZVuNJUMYNc2s32pGJ3q7kUIFO?= =?iso-8859-1?Q?adgGMZeSEg3JeFPhBLiTmYN3sPN09+0zNNSMXbmbA/duFHoo6ZP105calN?= =?iso-8859-1?Q?n92aki0oo1/Y4IFHOe1WvIdObak/VL64IBNwbw1sra2/fw09mX1MX7dZlF?= =?iso-8859-1?Q?vxJk2wiwIMvCwfUp5tsX4saos3EiHDBwA8ZzNzWj+9JbpeUK/4wTVTdNN6?= =?iso-8859-1?Q?Rl3ciU2ww8RBwPmbeZsCgP3LLA43KDvjj6+uf0YHcqrLI3Y/huEiLvd1yR?= =?iso-8859-1?Q?G38ocV2yWRZmstcvLB4/UdYrEQKUV8lLUi9ET85hjtOQ1IRkPdfCZzkT7U?= =?iso-8859-1?Q?G8UD4zqtFXxKnbPiWcn1OY6ZoKfbJ5KuptV6uhPMMCnVwr1Eb9GPLohBFd?= =?iso-8859-1?Q?zWYdo1z7wEegu77D7bgDE5w2CjGZeFScFtdHu9Se49v769UwfQx6Wj8FWi?= =?iso-8859-1?Q?uI0M/MTrTnMa/5Cv4L3S7hQTHo0/Y/4kLosGAt/0SV8FTivxYt4ma00On1?= =?iso-8859-1?Q?Ju0E3hIElH5sbFQwVtK8LZyxKUpqKDUWvL9bNDnoKwjFVFTESqnz8IpbvF?= =?iso-8859-1?Q?GdS6zX9UuOLsyyK6BRpPaH5XmtmbKL6Wx8srJpcBfj/aUCbBKntVl3C+Zu?= =?iso-8859-1?Q?/ZN2ZzDCrSZXDgr0Q1A6rmvipH51tynUTc3zkWY3YHAAHBIqh08LaaToQh?= =?iso-8859-1?Q?ZHS0k7kIEtXzM/k8/fCSJGx9irk+M+5r7d5YzNTlTvQYg5W9ztHBn4RqNs?= =?iso-8859-1?Q?WB7MOhVqNgadv9CVyhtS5iWWUPM63PpLcU6LiAGhW/OaqBvKZsaFbpAU37?= =?iso-8859-1?Q?gnJF06Lm3/0Mp8swcFOghartAj2mTSsHbt477Qf+NCaoY3Q4RVkFE9jSV9?= =?iso-8859-1?Q?E97Yy+DKYEL9JNpYwk1f74NmNBLepvgFf0hpJAspxwaIe6L/NzQDt7rSJU?= =?iso-8859-1?Q?ra+GIQj7qV?=
x-ms-exchange-transport-forked: True
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: nokia.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM6PR08MB5084.namprd08.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b853f537-56e8-4988-3cb5-08d981d2c8c5
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Sep 2021 16:20:56.0270 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 5d471751-9675-428d-917b-70f44f9630b0
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: vpme5I68dlUZqblGcldV5IlStthjR3y05DG/sQXtJDnczsFDNPNvfNRL4XhFW6R56spqs21F0Vag2lLP1fFdFQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR08MB5707
Archived-At: <https://mailarchive.ietf.org/arch/msg/babel/3PY2BEHxVqsKP9CiThAx1_Ii7bk>
Subject: Re: [babel] [netmod] NULL value for uint16
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: Mon, 27 Sep 2021 16:21:05 -0000

Hi all,

Reserving a "magic value" like -1 may be workable, but it doesn't feel like a terribly good fit into YANG. The rest of the range of integer values are valid and it seems odd to just tack on a "-1".

Why not just make the absence of the leaf mean "not applicable" or "not available" or whatever you are thinking of encoding as "null" ?

I've seen discussions where an SNMP MIB (which uses magic values like -1 or 0) was mapped to YANG and the result was simply to map the -1 (or 0) to the "absence of the leaf" (especially for read only state).

If it really is critical to distinguish these two cases (which I'm pretty doubtful of for an individual leaf like this), then I think at least an enum more distinctly separates the valid range from the special "not applicable" token:
1) leaf was filtered out due to AAA rules
2) leaf wasn't returned because it is not-applicable/not-available

Jason

> -----Original Message-----
> From: netmod <netmod-bounces@ietf.org> On Behalf Of STARK, BARBARA
> H
> Sent: Tuesday, September 14, 2021 9:52 AM
> To: 'tom petch' <ietfc@btconnect.com>om>; 'Juergen Schoenwaelder'
> <j.schoenwaelder@jacobs-university.de>de>; 'Mahesh Jethanandani'
> <mjethanandani@gmail.com>
> Cc: 'Babel at IETF' <babel@ietf.org>rg>; 'netmod@ietf.org' <netmod@ietf.org>
> Subject: Re: [netmod] [babel] NULL value for uint16
> 
> 
> 
> > I seem to be coming into this discussion in the middle, so I hope I'm
> > understanding where things are. Comments in-line.
> >
> > > Hi Mahesh,
> > >
> > > management interface usually do not change protocol semantics (for the
> > > simple reason that protocol engines do not necessarily know which
> > > management interfaces control them and their peers).
> > >
> > > Does the Babel RFC reserve the special sequence number 0? If not, does
> > > this document formally update the Babel RFC to reserve the sequence
> > > number 0? And will implementations and deployments follow on or will
> > > we see "old" and "updated" implementations in the wild causing
> > > operational trouble?
> >
> > Yes, the Babel RFC makes it clear that 0 is a valid value that must not be
> > confused with NULL.
> > I have no idea what conventions exist for a YANG model to distinguish
> between
> > 0 and NULL in such cases, but merely expressed that the distinction must
> exist.
> > Whatever conventions exist within YANG to make this distinction can be
> used. It
> > sounded from Tom's email that several conventions exist for handling this.
> > Under no circumstances should this YANG model allow the valid value of
> zero to
> > be repurposed to mean NULL.
> >
> > <tp>
> > Barbara,
> >
> > Apologies for making a mess of raising this issue; I am struggling with
> webmail
> > and a PC that has a mind of its own such that I cannot send e-mails where I
> want
> > to or even when I want to:-(
> >
> > Anyhow, I agree that the Information model makes it clear the NULL and
> zero
> > are different.  YANG has no concept of NULL; some languages do, YANG
> does
> > not.  This raises  number of possibilities.
> >
> > One is to deviate from the Information Model and treat zero as NULL but I
> > would not expect that to be acceptable.
> >
> > Another it to modify the range by making uint16 into int16 and making a
> > negative value represent NULL in this model.  Again, I would not expect
> that to
> > be acceptable but you could make it a int32 or uint32 with a range
> restriction
> > such that one value means NULL..
> >
> > Another is to make the objects a YANG union of uint16 and something else.
> > YANG has a built-in type 'empty' which has no value(!) and so a union of
> uint16
> > and empty is probably the closest YANG gets.  A similar approach is a union
> of
> > uint16 and boolean.  My YANG is not up to the merits of the two
> approaches.  I
> > have never been comfortable with 'empty' but there is plenty of it about in
> the
> > IETF. By the same token, almost all models have a union in the shape of an
> ip
> > address which is a union of ipv4 address and ipv6 address; a union is
> something I
> > am comfortable with.
> >
> > I do not know of an exact parallel to what you want to do.  I do see 'null' as
> one
> > value of the text string in an enumeration which is fine for enumerations!  I
> also
> > see the choice/case construct used with one case having a YANG type
> 'empty'
> > which is perhaps the closest if you do not want to use a union.
> >
> > HTH
> >
> > Tom Petch
> 
> Hi Tom,
> Thanks for making this an issue! I think it's important that we get it right.
> This is something Mahesh and I have discussed several times (and we still
> apparently didn't get it right).
> As I mentioned, BBF TR-181 uses int with range 	-1:65535 with -1
> meaning NULL. So I certainly have no issue with that approach. The language
> in RFC9046 was intended to make sure this approach was allowed, since this
> is how it's done in TR-181.
> I guess I am a bit surprised to learn that YANG doesn't seem to have a
> preferred way to handle this. Unfortunately, given my considerable lack of
> YANG expertise, I can't recommend the "right" way to model this in YANG. I
> can only insist that the model be able to express a value in the range 0 to
> 2^16 and NULL value for these parameters.
> Independent of the fact that the words in RFC9046 don't seem to have
> expressed this perfectly clearly, that is absolutely the intent of those words. I
> apologize that the RFC9046 words don't seem to be sufficiently clear.
> 
> Since you do mention the possibility of using -1 for NULL, I'd like to
> understand who might find this approach unacceptable? The language in the
> information model was definitely intended to express the acceptability of
> using this approach from a Babel WG perspective (because I knew that's how
> it would be done in TR-181). Would this be unacceptable to people with
> YANG expertise? I think my preference would be to use this approach, since
> it would provide additional consistency between the TR-181 and YANG
> models.
> 
> Thanks again for raising this issue.
> Barbara
> 
> > > /js
> > >
> > > On Mon, Sep 13, 2021 at 12:49:33PM -0700, Mahesh Jethanandani wrote:
> > > > [Bringing in babel WG, instead of maintaining two threads]
> > > >
> > > >
> > > > Hi Juergen,
> > > >
> > > >
> > > > > On Sep 10, 2021, at 1:09 PM, Jürgen Schönwälder
> > > <j.schoenwaelder@jacobs-university.de> wrote:
> > > > >
> > > > > On Fri, Sep 10, 2021 at 01:40:03PM -0400, Lou Berger wrote:
> > > > >
> > > > >> and it references an RFC that says:
> > > > >>
> > > > >>      This is a 16-bit unsigned integer;
> > > > >>      if the data model uses zero (0) to represent NULL values for
> > > > >>      unsigned integers, the data model MAY use a different data type
> > > > >>      that allows differentiation between zero (0) and NULL.
> > > > >
> > > > > We are talking about RFC 9046? RFC 9046 repeats this sentence
> several
> > > > > times but I find it difficult to infer the intended meaning. If 0 is a
> > > > > legal value, you can't have it represent "NULL" at the same time.
> > > >
> > > > There are five definitions in the Babel YANG model
> > > <https://urldefense.com/v3/__https://www.ietf.org/archive/id/draft-
> ietf-
> > > babel-yang-model-
> > >
> >
> 11.html__;!!BhdT!w6VP0VXwBo8HQB7xl29xPqAxO7zHbtal44Pwbxrh6lIs8a04
> rPj
> > > 0rzZ_DACdBQ$ > that use NULL to represent a special meaning.
> > > >
> > > > With 'babel-route-received-metric', and 'babel-route-calculated-metric'
> > > values use NULL or 0 to represent that a route was NOT received. A non-
> zero
> > > value indicates that a route was received and subsequently advertised.
> > > >
> > > > With 'babel-expo-mcast-hello-seqno', and 'babel-exp-ucast-hello-
> seqno' a
> > > value of NULL or 0 is used to represent that a multicast, or unicast hello
> > packets
> > > respectively are NOT expected or processing of multicast/unicast packets
> is
> > not
> > > enabled. Although not explicit stated, it also means that the sequence
> number
> > > cannot be a 0.
> > > >
> > > > Finally, with 'babel-ucast-hello-seqno' a value of NULL or 0 is used to
> > > represent a unicast hello is not being sent. A non-zero value reflects the
> > current
> > > sequence number in use for unicast hellos. Again, although not explicit, it
> also
> > > means that the sequence number cannot be a 0.
> > > >
> > > > >
> > > > > In YANG, we tend to not instantiate leafs that do not have a value.
> > > > > Anyway, if a YANG author wants to report a special value to indicate
> > > > > that there is no value, then you have design for it and reserve and
> > > > > set aside a special value from the number space or use a union.
> > > >
> > > > This YANG model reserves the value of 0 to indicate that these leafs are
> not
> > > set or the particular attribute is not enabled.
> > > >
> > > > Thanks.
> > > >
> > > > >
> > > > > RFC 9046 uses the same text for things like sequence numbers.
> Skimming
> > > > > RFC 8966, it seems sequence numbers are 16-bit integers:
> > > > >
> > > > >   Sequence numbers (seqnos) appear in a number of Babel data
> > > > >   structures, and they are interpreted as integers modulo 2^(16).
> > > > >
> > > > > The text in the context makes me believe they are an unsigned 16-bit
> > > > > integers. If so, there simply is no way to use 0 to indicate that a
> > > > > sequence number is absent. The problem really might be the text in
> RFC
> > > > > 9046.
> >
> > RFC9046 text is intended to allow and encourage data models to do
> whatever
> > they need to do to ensure they can distinguish between a value of 0 and a
> NULL
> > value. For example, in BBF TR-181 data model, we use a signed integer for
> these
> > parameters, where "-1" means "null value" and 0 to 2^16 represent actual
> > values. This use of -1 and a signed integer to convey NULL for an unsigned
> > integer is a convention that has long been defined in TR-181 data modeling
> > rules. OTOH, Babel implementations written in languages like C *are* able
> to
> > distinguish between a zero-length variable and a zero-value variable -- so
> their
> > GUIs have no difficulty with this distinction and can simply use an unsigned
> > integer.
> >
> > Different data modeling languages are likely to each have their own
> mechanisms
> > for handling this -- which means it would have been improper for RFC9046
> to be
> > proscriptive about *how* a data model should distinguish between null
> and 0.
> > Therefore, the text in RFC9046 merely states that although the native
> variable is
> > a 16-bit unsigned integer, it must be possible to indicate null as something
> > distinct from 0. RFC9046 does not dictate how that should be accomplished.
> The
> > data model needs to ensure this distinction exists using whatever method
> makes
> > sense or whatever convention exists for that data modeling language.
> > Barbara
> >
> > _______________________________________________
> > netmod mailing list
> > netmod@ietf.org
> >
> https://urldefense.com/v3/__https://www.ietf.org/mailman/listinfo/netmo
> d__;
> > !!BhdT!z9HMtl5ev04-D11rq22Qye-5_sscMd1C-
> > sWwIDBqeMrQ2tPPXauYRZI_wB2KAA$
> 
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod