Re: [babel] Martin Duke's No Objection on draft-ietf-babel-yang-model-10: (with COMMENT)

Mahesh Jethanandani <mjethanandani@gmail.com> Thu, 20 May 2021 19:16 UTC

Return-Path: <mjethanandani@gmail.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 16B653A22BD; Thu, 20 May 2021 12:16:05 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.997
X-Spam-Level:
X-Spam-Status: No, score=-1.997 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, HTTPS_HTTP_MISMATCH=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=gmail.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 P_WZthWJxwcj; Thu, 20 May 2021 12:15:59 -0700 (PDT)
Received: from mail-pl1-x633.google.com (mail-pl1-x633.google.com [IPv6:2607:f8b0:4864:20::633]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5B6BB3A22BB; Thu, 20 May 2021 12:15:59 -0700 (PDT)
Received: by mail-pl1-x633.google.com with SMTP id t21so9676923plo.2; Thu, 20 May 2021 12:15:59 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:message-id:mime-version:subject:date:in-reply-to:cc:to :references; bh=y2EjV8UgJPHVhO95cngVFM0kSzFg8n0et51oE0dTygs=; b=jbOZlXhFFVtUQAfoU/xyL8uAjIZEl/1NWgbPCvUk+K0LGSlMkoSVEt+y/l4AGOIdP1 nieOHaB4d5X7Cq8BcpNyWWnVCzGOmnH45+5wMstfzt/OlfwFDUoFfh8vMbmaz9ON51To cLf70J8H425b2MSywmtUBCIzQ0iUxG3zKMb68fxMidFaKh1k2OAgueW6HGuxhO92tiia IwQihHDsoJBzS75W1JbMsanNOntnK9MDwkWU8uTlSNkJsHDuNU6G7sbsmzPZIBDzkmIr 7BuzoKCm9W/bQfUkfDohGkTIjQuJD/LFD50obhqDIcH09/MaFeJk8tjh28aQ8rw47oA3 QN1w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:message-id:mime-version:subject:date :in-reply-to:cc:to:references; bh=y2EjV8UgJPHVhO95cngVFM0kSzFg8n0et51oE0dTygs=; b=kB3sXlI60pUCSAbG4Zg/0D8PQNEUFuYMOTCSpRz96OLznRN00XLXxmaIHvRsh0jPMv VpV9IfeH+DLu6VWtgTmjbYoBKVrt3UFrK6ela0PXgrb8A7L4IRq3NboMxKNOOC2d/SOe sE6Mxu1ApLx7aWnYt/PqFsebfow7NMnWAUHo8VlGLDm5Pd5TN+c6BW88MAHLog+psZxz scqFfa3FwKKrjZ1MwDvM8CJLok43at+3bJwk0+2Yd80EUnW99WKdYvWIP9t6sYdD0YqQ FfA/Uhxy9dMFjqmK5qJQNSN4vfwbprLt+OZ7cBmxzH50HwtsQUmZP0OnMlrts2vONhXm HFNg==
X-Gm-Message-State: AOAM530pZS9gm3rOs5LlaTahG1VGYBDtO0eeLPj1AsN1XLVOjx/t7Cad uapu+u1zKrujjuv7y2o0okc=
X-Google-Smtp-Source: ABdhPJy9Hue5PWB9AOp4ypI0N001rXsz/UFvruQvDD8ZDkMN2UviYGc/hsFMlSaHifZ1HcYLge9jcg==
X-Received: by 2002:a17:90a:8c8b:: with SMTP id b11mr6365358pjo.236.1621538157121; Thu, 20 May 2021 12:15:57 -0700 (PDT)
Received: from ?IPv6:2601:647:5600:5020:b9a7:c51d:2455:8f4f? ([2601:647:5600:5020:b9a7:c51d:2455:8f4f]) by smtp.gmail.com with ESMTPSA id s80sm2683663pfs.59.2021.05.20.12.15.55 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 20 May 2021 12:15:55 -0700 (PDT)
From: Mahesh Jethanandani <mjethanandani@gmail.com>
Message-Id: <8310B1F3-BB5C-4882-99CE-21D6DA916D3A@gmail.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_B4883053-ED06-4E85-A3DA-FB9B61F08B14"
Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.120.23.2.4\))
Date: Thu, 20 May 2021 12:15:54 -0700
In-Reply-To: <CAM4esxT76NZKJ_6--ryJSnpjtRs7Hkhg4KCrA_h322P1j+YXrQ@mail.gmail.com>
Cc: "STARK, BARBARA H" <bs7652@att.com>, The IESG <iesg@ietf.org>, "draft-ietf-babel-yang-model@ietf.org" <draft-ietf-babel-yang-model@ietf.org>, babel-chairs <babel-chairs@ietf.org>, Babel at IETF <babel@ietf.org>, Donald Eastlake <d3e3e3@gmail.com>
To: Martin Duke <martin.h.duke@gmail.com>
References: <162128583297.9778.8228421381328520899@ietfa.amsl.com> <260E6E49-BB6D-4195-BD12-673A946FF346@gmail.com> <CAM4esxQLR-ULMf-RRT5_7y0U55zy+EqCqi7FhFhDtGitRz7LxA@mail.gmail.com> <DM6PR02MB692424BDA3D24B163D1E37F4C32C9@DM6PR02MB6924.namprd02.prod.outlook.com> <CAM4esxT76NZKJ_6--ryJSnpjtRs7Hkhg4KCrA_h322P1j+YXrQ@mail.gmail.com>
X-Mailer: Apple Mail (2.3608.120.23.2.4)
Archived-At: <https://mailarchive.ietf.org/arch/msg/babel/Ecqid5V-XQjPZrWh6JwP32p6H68>
Subject: Re: [babel] Martin Duke's No Objection on draft-ietf-babel-yang-model-10: (with COMMENT)
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, 20 May 2021 19:16:05 -0000

Hi Martin,

Barbara and I did some wordsmithing offline and came up with the following description text for ‘received-metric’.

OLD:
             "The metric with which this route was advertised by the
              neighbor, or maximum value (infinity) to indicate the
              route was recently retracted and is temporarily
              unreachable. This metric will be 0 (zero) if the route
              was not received from a neighbor but was generated
              through other means. At least one of
              calculated-metric or received-metric MUST be non-NULL.";

NEW:
             "The metric with which this route was advertised by the
              neighbor, or maximum value (infinity) to indicate the
              route was recently retracted and is temporarily
              unreachable. This metric will be NULL (no value) if the
              route was not received from a neighbor but instead was
              injected through means external to the Babel routing
              protocol. At least one of calculated-metric or
              received-metric MUST be non-NULL.";

Does this address your COMMENT?

Thanks

> On May 18, 2021, at 2:39 PM, Martin Duke <martin.h.duke@gmail.com> wrote:
> 
> Hi Barbara,
> 
> On Tue, May 18, 2021 at 11:48 AM STARK, BARBARA H <bs7652@att.com <mailto:bs7652@att.com>> wrote:
> The received-metric and calculated-metric are read-only parameters. They come from the babel implementation and are never provided from the data model to the implementation. Their calculation and use (by the implementation) is governed fully by RFC 8966. For the Babel routing protocol implementers, NULL (a variable of zero-length) and zero (a value of zero) are separate and distinct values. Various computer languages allow for this distinction – even when passing around integers. Data models (and relational databases like sql and such) often struggle with this distinction because they don’t allow zero-length integer fields.
> 
> 
> Thanks for clarifying -- that's a fine distinction to make, although the authors should agree that they're making it! 
>  
>  
> 
> If the route is originated by this router, advertised by this router, and never advertised by another router in the network, then the received-metric (per the implementation) will be NULL. If the router is going to advertise a route that it originates, it will have to generate a calculated-metric. It may calculate the calculated-metric for itself to be zero – thus ensuring, if it subsequently receives an advertisement from another router for the same route, the received-metric supplied by the other router will never be less than the calculated-metric it has.
> 
>  
> 
> Anyway, this is why “This metric will be NULL if the route was not received from a neighbor but was generated through other means." Note that this sentence is about the *route* being received from a neighbor (or the *route* being generated through other means). The received-metric is never “generated”. It is populated by the neighbor-supplied metric for an advertised route. And when an entry in the route table is locally originated and there is no received value, then it needs to be properly noted that there is no value. An absence of received value is NULL, and not a value of zero.
> 
> 
> This makes sense, but it's not what the text says! See my original email.
>  
>  
> 
> What happens when both values are non-zero, is a matter of local implementation policy, as described in RFC 8966 3.5.2 and some of RFC 8966’s Appendices that provide examples for how metrics and costs can be computed and used. The data model has absolutely no say over what values are passed to it. But it is an error if it has no metric at all (received or calculated) for a route that is in the route table.
> 
> Barbara
> 
>  
> 
> From: Martin Duke <martin.h.duke@gmail.com <mailto:martin.h.duke@gmail.com>> 
> Sent: Tuesday, May 18, 2021 1:10 PM
> To: Mahesh Jethanandani <mjethanandani@gmail.com <mailto:mjethanandani@gmail.com>>
> Cc: The IESG <iesg@ietf.org <mailto:iesg@ietf.org>>; draft-ietf-babel-yang-model@ietf.org <mailto:draft-ietf-babel-yang-model@ietf.org>; babel-chairs <babel-chairs@ietf.org <mailto:babel-chairs@ietf.org>>; Babel at IETF <babel@ietf.org <mailto:babel@ietf.org>>; Donald Eastlake <d3e3e3@gmail.com <mailto:d3e3e3@gmail.com>>
> Subject: Re: Martin Duke's No Objection on draft-ietf-babel-yang-model-10: (with COMMENT)
> 
>  
> 
> That's fine. In the original text, you refer to zero and NULL as if they're separate quantities. As these are uints, I think s/NULL/zero would solve the problem.
> 
>  
> 
> It would be helpful to clarify what happens when both values are nonzero.
> 
>  
> 
> On Tue, May 18, 2021 at 11:01 AM Mahesh Jethanandani <mjethanandani@gmail.com <mailto:mjethanandani@gmail.com>> wrote:
> 
> Hi Martin,
> 
>  
> 
> You bring up a point that I have been struggling with.
> 
> 
> 
> 
> On May 17, 2021, at 2:10 PM, Martin Duke via Datatracker <noreply@ietf.org <mailto:noreply@ietf.org>> wrote:
> 
>  
> 
> Martin Duke has entered the following ballot position for
> draft-ietf-babel-yang-model-10: No Objection
> 
> When responding, please keep the subject line intact and reply to all
> email addresses included in the To and CC lines. (Feel free to cut this
> introductory paragraph, however.)
> 
> 
> Please refer to https://www.ietf.org/iesg/statement/discuss-criteria.html <https://urldefense.com/v3/__https:/www.ietf.org/iesg/statement/discuss-criteria.html__;!!BhdT!1VEP6dtIBxS8iSbw9v3eXWj6dKDVxmAJwtD6CK8WYDmdULfjXSa496wEIOefq9NP$>
> for more information about DISCUSS and COMMENT positions.
> 
> 
> The document, along with other ballot positions, can be found here:
> https://datatracker.ietf.org/doc/draft-ietf-babel-yang-model/ <https://urldefense.com/v3/__https:/datatracker.ietf.org/doc/draft-ietf-babel-yang-model/__;!!BhdT!1VEP6dtIBxS8iSbw9v3eXWj6dKDVxmAJwtD6CK8WYDmdULfjXSa496wEIOvbIEVE$>
> 
> 
> 
> ----------------------------------------------------------------------
> COMMENT:
> ----------------------------------------------------------------------
> 
> (2.3)
> 
> leaf received-metric {
>           type uint16;
>           description
>             "The metric with which this route was advertised by the
>              neighbor, or maximum value (infinity) to indicate the
>              route was recently retracted and is temporarily
>              unreachable. This metric will be 0 (zero) if the route
>              was not received from a neighbor but was generated
>              through other means. At least one of
>              calculated-metric or received-metric MUST be non-NULL.";
>           reference
>             "RFC ZZZZ: Babel Information Model, Section 3.6,
>              RFC 8966: The Babel Routing Protocol, Section 2.1.";
>         }
> 
>         leaf calculated-metric {
>           type uint16;
>           description
>             "A calculated metric for this route. How the metric is
>              calculated is implementation-specific. Maximum value
>              (infinity) indicates the route was recently retracted
>              and is temporarily unreachable. At least one of
>              calculated-metric or received-metric MUST be non-NULL.";
>           reference
>             "RFC ZZZZ: Babel Information Model, Section 3.6,
>              RFC 8966: The Babel Routing Protocol, Section 2.1.";
>         }
> 
> I don't understand the relationship between these two. If the metric was
> calculated rather than received, why would the value be zero instead of NULL?
> Isn't a zero metric dangerous in a routing algorithm?
> 
>  
> 
> How do you represent NULL? By definition, NULL means there is no value, that we are looking at an empty leaf. A ‘received-metric’ per my reading, cannot be empty. It is either received from a neighbor, or is a generated value, and therefore cannot be empty. Same is the case for ‘calculated-metric’. Combine this with the fact that the info model defines the leaf of type unsigned int 16, and thus the value of 0. Would it help to add something to this effect?
> 
>  
> 
> "A value of 0 implies a NULL value, and SHOULD NOT be used in metric calculation".
> 
>  
> 
> Alternatively, one could change the type to signed int 16, something the TR-181 model does. In that case the value has two meanings. If the value is less than 0, it means the value is NULL, but if the value is greater than 0, then it carries the actual metric value??
> 
>  
> 
> In either case, an implementor cannot take the value of the metric as is and use it, without checking if it is 0 or -1.
> 
> 
> 
> 
> 
> (4) "config true perspective"
> 
>  
> 
> Dropped the phrase from the sentence.
> 
>  
> 
> Thanks
> 
>  
> 
> Mahesh Jethanandani
> 
> mjethanandani@gmail.com <mailto:mjethanandani@gmail.com>
Mahesh Jethanandani
mjethanandani@gmail.com