From nobody Thu Feb 18 00:22:53 2021
Return-Path: <brunorijsman@gmail.com>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1])
 by ietfa.amsl.com (Postfix) with ESMTP id 6B1DB3A0D9D
 for <rift@ietfa.amsl.com>; Thu, 18 Feb 2021 00:22:51 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.096
X-Spam-Level: 
X-Spam-Status: No, score=-2.096 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, RCVD_IN_DNSWL_BLOCKED=0.001, 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 8iyExMSbXs1W for <rift@ietfa.amsl.com>;
 Thu, 18 Feb 2021 00:22:48 -0800 (PST)
Received: from mail-ed1-x52b.google.com (mail-ed1-x52b.google.com
 [IPv6:2a00:1450:4864:20::52b])
 (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 D5F323A0DA5
 for <rift@ietf.org>; Thu, 18 Feb 2021 00:22:47 -0800 (PST)
Received: by mail-ed1-x52b.google.com with SMTP id n1so2796750edv.2
 for <rift@ietf.org>; Thu, 18 Feb 2021 00:22:47 -0800 (PST)
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=vibtyoWuNNf8hAUxrYBUbwTMHA1v6SjxkR8zgdrTB40=;
 b=hOGpUbpH1idsMXj3cYgfk/BnYK2DDy4c4mG1UpmSbgwXaRCp8uEHXie/jhUM4wp/fr
 r1+5xWZnIKaaWPhfjALFuzIhcsMMfPEf3iHaDxNyY24NobHlMH7ObhKNITiEwGOIbYyP
 M+xg/CV+HV58warHZMxq+Sc8A95eNpmRRI5V3gNAig2YQb+0G+rf24dHLjo3IhMH9/9v
 9eW9wob0obm3TaFNTo2TpeME0MMJ0kA5tVL20mEMfOtQUy9RWgNLNvntw08DnBGuQe81
 4unEF1yNMPEFbtZYPyqUOiwWdk7fi178YjmtfJcoHHE2gGXUd25KSsAx6f/1mf6ylZMY
 c1pA==
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=vibtyoWuNNf8hAUxrYBUbwTMHA1v6SjxkR8zgdrTB40=;
 b=R/qtoj9ryBvDKkDAYqWqWUkNDkf+XlMAi1ws5kJmMUVHSLbXYadACwJbRTuGTw+d1x
 IeSi4RuI2MkSO9jv1BlRt6GofdEub5MnoCJl47fF83OgsOXFF95mqjVi5fxb3CYpfL9o
 eZVQchARNafINXfIdlivXvdiyn13vK8GhwJbAYuY09I3gKaK3xQ43uPRehhkDY+aw5dL
 N8s25KgkrJhyNMOadXdpm+cJfuRqvkigYiY4rCTBW0i+B39VcYUhERv8jUI9Gr2Wb1dZ
 ZegssUGaaa/mI5SPlB4YYdzziZUpv+wZL0Mspf/cr2XyA9byoTaFthR2No8u/L+pUP6m
 mfkg==
X-Gm-Message-State: AOAM531+9iXh75eds0kGUWrGAFCCC3d/4qXLT0VHFFm/s8nUFMD/0fQM
 PwmSQoyCWMNp4L/yuMR5Tss=
X-Google-Smtp-Source: ABdhPJyOnFSOUh/sec7lZkVTS4Z6TpK2uvXI8Rhn2gkcb1S5VC+Jk4KSJmIRt1KJ5PsULR4Tnbykeg==
X-Received: by 2002:aa7:db0c:: with SMTP id t12mr2994105eds.33.1613636566255; 
 Thu, 18 Feb 2021 00:22:46 -0800 (PST)
Received: from [192.168.68.59] (095-097-022-201.static.chello.nl.
 [95.97.22.201])
 by smtp.gmail.com with ESMTPSA id y8sm2200637edd.97.2021.02.18.00.22.44
 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
 Thu, 18 Feb 2021 00:22:45 -0800 (PST)
From: Bruno Rijsman <brunorijsman@gmail.com>
Message-Id: <E325786A-A8DE-405B-8E7F-C5915CB7BD4D@gmail.com>
Content-Type: multipart/alternative;
 boundary="Apple-Mail=_19D12CEF-9BC1-4783-9752-774207A85102"
Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.120.23.2.4\))
Date: Thu, 18 Feb 2021 09:22:44 +0100
In-Reply-To: <202102171636417529439@zte.com.cn>
Cc: wei.yuehua@zte.com.cn, "Jeffrey (Zhaohui) Zhang" <zzhang@juniper.net>,
 Jeff Tantsura <jefftant.ietf@gmail.com>,
 Antoni Przygienda <prz@juniper.net>, Tony Przygienda <tonysietf@gmail.com>,
 rift@ietf.org
To: "EXT-zhang.zheng@zte.com.cn" <zhang.zheng@zte.com.cn>
References: <FC8B0249-85DB-43A2-858B-B6306149121B@gmail.com>
 <202102171636417529439@zte.com.cn>
X-Mailer: Apple Mail (2.3608.120.23.2.4)
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/QmLDF6aOCzqO_dLvx8Z5MYIX1vE>
Subject: Re: [Rift] Comments on most recent version of the RIFT YANG data
 model.
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>,
 <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>,
 <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 18 Feb 2021 08:22:52 -0000


--Apple-Mail=_19D12CEF-9BC1-4783-9752-774207A85102
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

Hi Sandy,

Thank you for the prompt update!

A few very last nitpicks:

+--ro protocol-major-version       uint16

^^^ Should be a uint8: the Thrift datamodel has separate data types for =
(major) VersionType (i8) and MinorVersionType (i16). In both cases the =
Thrift data model has a note saying that the signed Thrift type should =
be interpreted as an unsigned.

+--ro time-of-current-state?         uint64

^^^ Having a =E2=80=9Ctime=E2=80=9D as =E2=80=9Cuint64=E2=80=9D is =
somewhat ambiguous. Suggest  changing to either (a) =
seconds-in-current-state uint64 or (b) last-state-change date-and-time. =
The latter is better IMO.

+--ro kv-store

^^^ Rename kv-store to key-value (ties > key-value is consistent with =
ties > node, ties > prefix)

      +--ro key?     uint16
      +--ro value?   uint32

^^^ Change key type from uint16 to binary and change value data type =
from uint32 to binary. In the RIFT draft, keys are currently defined as =
strings (type KeyIdType) and values are also currently defined as =
strings (element 1 in KeyValueTIEElement).  However in the e-mail with =
Tony on 30-Jan-2021 we agreed that string should be changed to binary.

Once again, I would like to call on other people on the mailing list to =
also review the Yang data model.  Another pair of eyes is definitely =
needed.

=E2=80=94 Bruno

> On Feb 17, 2021, at 9:36 AM, zhang.zheng@zte.com.cn wrote:
>=20
> Hi Bruno,=20
>=20
> I updated the model according to your comments.=20
>=20
> Could you please review it and give me more comments?
>=20
> Appreciate for your review!=20
>=20
> Thank you very much!=20
>=20
> Best regards,
>=20
> Sandy
>=20
> =E5=8E=9F=E5=A7=8B=E9=82=AE=E4=BB=B6
> =E5=8F=91=E4=BB=B6=E4=BA=BA=EF=BC=9ABrunoRijsman
> =E6=94=B6=E4=BB=B6=E4=BA=BA=EF=BC=9Arift@ietf.org;=E5=BC=A0=E5=BE=810000=
7940;=E9=AD=8F=E6=9C=88=E5=8D=8E00019655;
> =E6=97=A5 =E6=9C=9F =EF=BC=9A2021=E5=B9=B402=E6=9C=8804=E6=97=A5 15:48
> =E4=B8=BB =E9=A2=98 =EF=BC=9AComments on most recent version of the =
RIFT YANG data model.
> Here are my comments on the most recent version of the RIFT YANG data =
model.
>=20
> I think it is in pretty good shape now.
>=20
> I have not actually implemented the YANG data model and I am no YANG =
expert, so more eyeballs would be helpful.
>=20
> =E2=80=94 Bruno
>=20
>=20
> module: ietf-rift
>   augment =
/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol:
>     +--rw rift!
>        +--rw node* [name]
>           +--rw name                         string
>           +--ro level?                       level
>           +--rw system-id                    system-id
>           +--rw pod?                         uint32
>           +--rw configured-level?            level
>           +--rw overload?                    boolean
>=20
> >>> Suggest adding: ro protocol-major-version uint8
>=20
>           +--ro protocol-minor-version       uint16
>           +--ro hierarchy-indications?       enumeration
>           +--rw flood-reduction?             boolean
>           +--rw nonce-increasing-interval?   uint16
>           +--rw maximum-nonce-delta?         uint8 =
{nonce-delta-adjust}?
>           +--rw rx-lie-multicast-address
>           |  +--rw ipv4?   inet:ipv4-address
>           |  +--rw ipv6?   inet:ipv6-address
>           +--rw tx-lie-multicast-address
>           |  +--rw ipv4?   inet:ipv4-address
>           |  +--rw ipv6?   inet:ipv6-address
>           +--rw lie-tx-port?                 inet:port-number
>           +--rw global-link-capabilities
>           |  +--rw bfd?                     boolean
>           |  +--rw v4-forwarding-capable?   boolean
>           +--rw rx-flood-port?               inet:port-number
>           +--rw holdtime?                    =
rt-types:timer-value-seconds16
>           +--rw tide-generation-interval?    =
rt-types:timer-value-seconds16
>           +--rw tie-security-key-id?         uint32
>           +--rw interface* [name]
>           |  +--ro link-id?                       linkid-type
>           |  +--rw name                           if:interface-ref
>           |  +--rw cost?                          uint32
>           |  +--rw advertised-source-addresses
>           |  |  +--rw ipv4?   inet:ipv4-address
>           |  |  +--rw ipv6?   inet:ipv6-address
>           |  +--ro direction-type?                enumeration
>           |  +--ro was-the-last-lie-accepted?     boolean
>           |  +--ro last-lie-reject-reason?        string
>           |  +--ro advertised-in-lies
>           |  |  +--ro you-are-flood-repeater?        boolean
>           |  |  +--ro not-a-ztp-offer?               boolean
>           |  |  +--ro you-are-sending-too-quickly?   boolean
>           |  +--rw link-capabilities
>           |  |  +--rw bfd?                     boolean
>           |  |  +--rw v4-forwarding-capable?   boolean
>           |  +--ro state                          enumeration
>=20
> Suggest adding per interface:
> - Number of flaps
> - Time duration in current state
>=20
>           +--ro miscabled-links*             linkid-type
>           +--rw (algorithm-type)?
>           |  +--:(spf)
>           |  +--:(all-path)
>           +--ro hal?                         level
>           +--rw instance-label?              uint32
>=20
> Suggest making this dependent on a {segment-routing} or maybe =
{label-switching} feature
>=20
>           +--ro neighbor
>           |  +--ro nbrs* [system-id]
>           |     +--ro name?                         string
>           |     +--ro level?                        level
>           |     +--ro system-id                     system-id
>           |     +--ro pod?                          uint32
>           |     +--ro protocol-version?             uint16
>=20
> protocol-minor-version
>=20
>           |     +--ro address-families
>           |     |  +--ro address-family* [address-family]
>           |     |     +--ro address-family    =
iana-rt-types:address-family
>           |     +--ro received-source-addresses
>           |     |  +--ro ipv4?   inet:ipv4-address
>           |     |  +--ro ipv6?   inet:ipv6-address
>           |     +--ro link-id-pair* [remote-id]
>           |     |  +--ro local-id?    uint32
>           |     |  +--ro remote-id    uint32
>           |     |  +--ro if-index?    uint32
>           |     |  +--ro if-name?     if:interface-ref
>           |     +--ro cost?                         uint32
>           |     +--ro bandwidth?                    uint32
>           |     +--ro flood-reduction?              boolean
>           |     +--ro sent-offer
>           |     |  +--ro level?             level
>           |     |  +--ro not-a-ztp-offer?   boolean
>           |     +--ro received-offer
>           |     |  +--ro level?                        level
>           |     |  +--ro not-a-ztp-offer?              boolean
>           |     |  +--ro best?                         boolean
>           |     |  +--ro removed-from-consideration?   boolean
>           |     |  +--ro removal-reason?               string
>           |     +--ro received-link-capabilities
>           |     |  +--ro bfd?                     boolean
>           |     |  +--ro v4-forwarding-capable?   boolean
>           |     +--ro received-in-lies
>           |     |  +--ro you-are-flood-repeater?        boolean
>           |     |  +--ro not-a-ztp-offer?               boolean
>           |     |  +--ro you-are-sending-too-quickly?   boolean
>           |     +--ro tx-flood-port?                inet:port-number
>           |     +--ro bfd-up?                       boolean
>           |     +--ro outer-security-key-id?        uint8
>           +--ro database
>           |  +--ro ties* [direction-type originator tie-type =
tie-number]
>           |     +--ro direction-type          enumeration
>           |     +--ro originator              system-id
>           |     +--ro tie-type                enumeration
>           |     +--ro tie-number              uint32
>           |     +--ro seq?                    uint64
>           |     +--ro origination-time?       uint32
>           |     +--ro origination-lifetime?   uint32
>           |     +--ro node
>=20
> Maybe I am misunderstanding something, but the list of Node TIE =
attributes below appears to be
> including several attributes that are not stored in the Node TIE, for =
example the
> "sent-offer" and "received-offer" attributes.
>=20
>           |     |  +--ro name?              string
>           |     |  +--ro level?             level
>           |     |  +--ro system-id          system-id
>           |     |  +--ro pod?               uint32
>           |     |  +--ro flood-reduction?   boolean
>           |     |  +--ro overload?          boolean
>           |     |  +--ro startup-time?      uint64
>           |     |  +--ro neighbors* [system-id]
>           |     |  |  +--ro name?                         string
>           |     |  |  +--ro level?                        level
>           |     |  |  +--ro system-id                     system-id
>           |     |  |  +--ro pod?                          uint32
>           |     |  |  +--ro address-families
>           |     |  |  |  +--ro address-family* [address-family]
>           |     |  |  |     +--ro address-family    =
iana-rt-types:address-family
>           |     |  |  +--ro received-source-addresses
>           |     |  |  |  +--ro ipv4?   inet:ipv4-address
>           |     |  |  |  +--ro ipv6?   inet:ipv6-address
>           |     |  |  +--ro link-id-pair* [remote-id]
>           |     |  |  |  +--ro local-id?    uint32
>           |     |  |  |  +--ro remote-id    uint32
>           |     |  |  |  +--ro if-index?    uint32
>           |     |  |  |  +--ro if-name?     if:interface-ref
>           |     |  |  +--ro cost?                         uint32
>           |     |  |  +--ro bandwidth?                    uint32
>           |     |  |  +--ro flood-reduction?              boolean
>           |     |  |  +--ro sent-offer
>           |     |  |  |  +--ro level?             level
>           |     |  |  |  +--ro not-a-ztp-offer?   boolean
>           |     |  |  +--ro received-offer
>           |     |  |  |  +--ro level?                        level
>           |     |  |  |  +--ro not-a-ztp-offer?              boolean
>           |     |  |  |  +--ro best?                         boolean
>           |     |  |  |  +--ro removed-from-consideration?   boolean
>           |     |  |  |  +--ro removal-reason?               string
>           |     |  |  +--ro received-link-capabilities
>           |     |  |  |  +--ro bfd?                     boolean
>           |     |  |  |  +--ro v4-forwarding-capable?   boolean
>           |     |  |  +--ro received-in-lies
>           |     |  |  |  +--ro you-are-flood-repeater?        boolean
>           |     |  |  |  +--ro not-a-ztp-offer?               boolean
>           |     |  |  |  +--ro you-are-sending-too-quickly?   boolean
>           |     |  |  +--ro tx-flood-port?                =
inet:port-number
>           |     |  |  +--ro bfd-up?                       boolean
>           |     |  |  +--ro outer-security-key-id?        uint8
>           |     |  +--ro miscabled-links*   linkid-type
>           |     +--ro prefix
>           |        +--ro prefix?              inet:ip-prefix
>           |        +--ro (type)?
>           |        |  +--:(prefix)
>           |        |  +--:(positive-disaggregation)
>           |        |  +--:(negative-disaggregation)
>           |        |  +--:(external)
>           |        |  +--:(positive-external-disaggregation)
>           |        |  +--:(pgp)
>           |        +--ro metric?              uint32
>           |        +--ro tags*                uint64
>           |        +--ro monotonic-clock
>           |        |  +--ro prefix-sequence-type
>           |        |     +--ro timestamp         =
ieee802-1as-timestamp-type
>           |        |     +--ro transaction-id?   uint8
>           |        +--ro loopback?            boolean
>           |        +--ro directly-attached?   boolean
>           |        +--ro from-link?           linkid-type
>=20
> What made you model the kv-store separately? It seems more logical to =
me to model it as part=20
> of the TIE database (similar to how you model node TIEs and the =
various flavors of prefix TIEs)
>=20
>           +--ro kv-store
>              +--ro kvs* [kvs-index]
>                 +--ro kvs-index    uint32
>                 +--ro kvs-tie
>                    +--ro direction-type?         enumeration
>                    +--ro originator?             system-id
>                    +--ro tie-type?               enumeration
>                    +--ro tie-number?             uint32
>                    +--ro seq?                    uint64
>                    +--ro origination-time?       uint32
>                    +--ro origination-lifetime?   uint32
>                    +--ro key-value
>                       +--ro key?     uint16
>                       +--ro value?   uint32
>=20
>   notifications:
>     +---n error-set
>        +--ro tie-level-error
>        |  +--ro direction-type?         enumeration
>        |  +--ro originator?             system-id
>        |  +--ro tie-type?               enumeration
>        |  +--ro tie-number?             uint32
>        |  +--ro seq?                    uint64
>        |  +--ro origination-time?       uint32
>        |  +--ro origination-lifetime?   uint32
>        +--ro neighbor-error
>           +--ro neighbor* [system-id]
>              +--ro name?                         string
>              +--ro level?                        level
>              +--ro system-id                     system-id
>              +--ro pod?                          uint32
>              +--ro protocol-version?             uint16
>              +--ro address-families
>              |  +--ro address-family* [address-family]
>              |     +--ro address-family    =
iana-rt-types:address-family
>              +--ro received-source-addresses
>              |  +--ro ipv4?   inet:ipv4-address
>              |  +--ro ipv6?   inet:ipv6-address
>              +--ro link-id-pair* [remote-id]
>              |  +--ro local-id?    uint32
>              |  +--ro remote-id    uint32
>              |  +--ro if-index?    uint32
>              |  +--ro if-name?     if:interface-ref
>              +--ro cost?                         uint32
>              +--ro bandwidth?                    uint32
>              +--ro flood-reduction?              boolean
>              +--ro sent-offer
>              |  +--ro level?             level
>              |  +--ro not-a-ztp-offer?   boolean
>              +--ro received-offer
>              |  +--ro level?                        level
>              |  +--ro not-a-ztp-offer?              boolean
>              |  +--ro best?                         boolean
>              |  +--ro removed-from-consideration?   boolean
>              |  +--ro removal-reason?               string
>              +--ro received-link-capabilities
>              |  +--ro bfd?                     boolean
>              |  +--ro v4-forwarding-capable?   boolean
>              +--ro received-in-lies
>              |  +--ro you-are-flood-repeater?        boolean
>              |  +--ro not-a-ztp-offer?               boolean
>              |  +--ro you-are-sending-too-quickly?   boolean
>              +--ro tx-flood-port?                inet:port-number
>              +--ro bfd-up?                       boolean
>              +--ro outer-security-key-id?        uint8
>=20
>=20
>=20
> <rift20210216.yang><rift-tree20210217.txt><Diff_ rift-tree20210128.txt =
- rift-tree20210217.txt.html>


--Apple-Mail=_19D12CEF-9BC1-4783-9752-774207A85102
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html; =
charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; line-break: after-white-space;" class=3D""><div =
class=3D""><font face=3D"Avenir-Book" style=3D"font-size: 14px;" =
class=3D"">Hi Sandy,</font></div><div class=3D""><font =
face=3D"Avenir-Book" style=3D"font-size: 14px;" class=3D""><br =
class=3D""></font></div><div class=3D""><font face=3D"Avenir-Book" =
style=3D"font-size: 14px;" class=3D"">Thank you for the prompt =
update!</font></div><div class=3D""><font face=3D"Avenir-Book" =
style=3D"font-size: 14px;" class=3D""><br class=3D""></font></div><div =
class=3D""><font face=3D"Avenir-Book" style=3D"font-size: 14px;" =
class=3D"">A few very last nitpicks:</font></div><div class=3D""><font =
face=3D"Courier" class=3D""><br class=3D""></font></div><div =
class=3D""><font face=3D"Courier" class=3D"">+--ro =
protocol-major-version &nbsp; &nbsp; &nbsp; uint16</font></div><div =
class=3D""><font face=3D"Courier" class=3D""><br =
class=3D""></font></div><div class=3D""><font face=3D"Avenir-Book" =
style=3D"font-size: 14px;" class=3D"">^^^ Should be a uint8: the Thrift =
datamodel has separate data types for (major) VersionType (i8) and =
MinorVersionType (i16). In both cases the Thrift data model has a note =
saying that the signed Thrift type should be interpreted as an =
unsigned.</font></div><div class=3D""><font face=3D"Courier" =
class=3D""><br class=3D""></font></div><div class=3D""><div =
style=3D"font-family: Courier;" class=3D"">+--ro time-of-current-state? =
&nbsp; &nbsp; &nbsp; &nbsp; uint64</div><div style=3D"font-family: =
Courier;" class=3D""><br class=3D""></div><div class=3D""><font =
face=3D"Avenir-Book" class=3D""><span style=3D"font-size: 14px;" =
class=3D"">^^^ Having a&nbsp;=E2=80=9Ctime=E2=80=9D as&nbsp;=E2=80=9Cuint6=
4=E2=80=9D is somewhat ambiguous. Suggest&nbsp;</span></font><span =
style=3D"font-family: Avenir-Book; font-size: 14px;" =
class=3D"">&nbsp;</span><span style=3D"font-family: Avenir-Book; =
font-size: 14px;" class=3D"">changing to&nbsp;</span><span =
style=3D"font-size: 14px; font-family: Avenir-Book;" class=3D"">either =
(a) seconds-in-current-state uint64 or (b) last-state-change =
date-and-time. The latter is better IMO.</span></div><div =
style=3D"font-family: Courier;" class=3D""><br class=3D""></div></div><div=
 class=3D""><font face=3D"Courier" class=3D"">+--ro =
kv-store</font></div><div class=3D""><font face=3D"Courier" class=3D""><br=
 class=3D""></font></div><div class=3D""><div><font face=3D"Avenir-Book" =
style=3D"font-size: 14px;" class=3D"">^^^ Rename kv-store to key-value =
(ties &gt; key-value is consistent with ties &gt; node, ties &gt; =
prefix)</font></div></div><div class=3D""><br class=3D""></div><div =
class=3D""><font face=3D"Courier" class=3D"">&nbsp; &nbsp; &nbsp; +--ro =
key? &nbsp; &nbsp; uint16</font></div><div class=3D""><div =
class=3D""><font face=3D"Courier" class=3D"">&nbsp; &nbsp; &nbsp; +--ro =
value? &nbsp; uint32</font></div></div><div class=3D""><font =
face=3D"Courier" class=3D""><br class=3D""></font></div><div =
class=3D""><font face=3D"Avenir-Book" style=3D"font-size: 14px;" =
class=3D"">^^^ Change key type from uint16 to binary and change value =
data type from uint32 to binary. In the RIFT draft, keys are currently =
defined as strings (type KeyIdType) and values are also currently =
defined as strings (element 1 in&nbsp;KeyValueTIEElement). &nbsp;However =
in the e-mail with Tony on 30-Jan-2021 we agreed that string should be =
changed to binary.</font></div><div class=3D""><font face=3D"Avenir-Book" =
style=3D"font-size: 14px;" class=3D""><br =
class=3D""></font></div><div><font face=3D"Avenir-Book" =
style=3D"font-size: 14px;" class=3D"">Once again, I would like to call =
on other people on the mailing list to also review the Yang data model. =
&nbsp;Another pair of eyes is definitely needed.</font></div><div><font =
face=3D"Avenir-Book" style=3D"font-size: 14px;" class=3D""><br =
class=3D""></font></div><div><font face=3D"Avenir-Book" =
style=3D"font-size: 14px;" class=3D"">=E2=80=94 =
Bruno</font></div><div><br class=3D""></div><div><blockquote type=3D"cite"=
 class=3D""><div class=3D"">On Feb 17, 2021, at 9:36 AM, <a =
href=3D"mailto:zhang.zheng@zte.com.cn" =
class=3D"">zhang.zheng@zte.com.cn</a> wrote:</div><br =
class=3D"Apple-interchange-newline"><div class=3D""><div =
class=3D"zcontentRow"><p style=3D"font-size:14px;font-family:arial;" =
class=3D"">Hi Bruno,&nbsp;<br class=3D""></p><p =
style=3D"font-size:14px;font-family:arial;" class=3D"">I updated the =
model according to your comments.&nbsp;</p><p =
style=3D"font-size:14px;font-family:arial;" class=3D"">Could you please =
review it and give me more comments?</p><p =
style=3D"font-size:14px;font-family:arial;" class=3D"">Appreciate for =
your review!&nbsp;<br class=3D""></p><p =
style=3D"font-size:14px;font-family:arial;" class=3D"">Thank you very =
much!&nbsp;</p><p style=3D"font-size:14px;font-family:arial;" =
class=3D"">Best regards,</p><p style=3D"font-size:14px;font-family:arial;"=
 class=3D"">Sandy</p><div class=3D"zMailFrom"></div><div class=3D""><div =
class=3D"zhistoryRow" style=3D"display:block"><div class=3D"zhistoryDes" =
style=3D"width: 100%; height: 28px; line-height: 28px; background-color: =
#E0E5E9; color: #1388FF; text-align: center;" =
language-data=3D"HistoryOrgTxt">=E5=8E=9F=E5=A7=8B=E9=82=AE=E4=BB=B6</div>=
<div id=3D"zwriteHistoryContainer" class=3D""><div class=3D"zhistoryPanel =
control-group"><div class=3D"zhistoryHeader" style=3D"padding: 8px; =
background-color: #F5F6F8;"><div class=3D""><strong =
language-data=3D"HistorySenderTxt" class=3D"">=E5=8F=91=E4=BB=B6=E4=BA=BA=EF=
=BC=9A</strong><span =
class=3D"zreadUserName">BrunoRijsman<brunorijsman@gmail.com =
class=3D""></brunorijsman@gmail.com></span></div><div class=3D""><strong =
language-data=3D"HistoryTOTxt" class=3D"">=E6=94=B6=E4=BB=B6=E4=BA=BA=EF=BC=
=9A</strong><span class=3D"zreadUserName" style=3D"display: inline;"><a =
href=3D"mailto:rift@ietf.org" class=3D"">rift@ietf.org</a><rift@ietf.org =
class=3D"">;</rift@ietf.org></span><span class=3D"zreadUserName" =
style=3D"display: inline;">=E5=BC=A0=E5=BE=8100007940;</span><span =
class=3D"zreadUserName" style=3D"display: =
inline;">=E9=AD=8F=E6=9C=88=E5=8D=8E00019655;</span></div><div =
class=3D""><strong language-data=3D"HistoryDateTxt" class=3D"">=E6=97=A5 =
=E6=9C=9F =EF=BC=9A</strong><span class=3D"">2021=E5=B9=B402=E6=9C=8804=E6=
=97=A5 15:48</span></div><div class=3D""><strong =
language-data=3D"HistorySubjectTxt" class=3D"">=E4=B8=BB =E9=A2=98 =
=EF=BC=9A</strong><span class=3D"zreadTitle"><strong class=3D"">Comments =
on most recent version of the RIFT YANG data =
model.</strong></span></div></div><div zmailbusiness=3D"businessExternal" =
class=3D""></div><div class=3D"zhistoryContent"><div class=3D""><meta =
http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dutf-8" =
class=3D""><div class=3D""><span =
style=3D"font-family:Avenir-Book;font-size: 14px;" class=3D"">Here are =
my comments on the most recent version of the RIFT YANG data =
model.</span></div><div class=3D""><span =
style=3D"font-family:Avenir-Book;font-size: 14px;" class=3D""><br =
class=3D""></span></div><div class=3D""><span =
style=3D"font-family:Avenir-Book;font-size: 14px;" class=3D"">I think it =
is in pretty good shape now.</span></div><div class=3D""><span =
style=3D"font-family:Avenir-Book;font-size: 14px;" class=3D""><br =
class=3D""></span></div><div class=3D""><span =
style=3D"font-family:Avenir-Book;font-size: 14px;" class=3D"">I have not =
actually implemented the YANG data model and I am no YANG expert, so =
more eyeballs would be helpful.</span></div><div class=3D""><span =
style=3D"font-family:Avenir-Book;font-size: 14px;" class=3D""><br =
class=3D""></span></div><div class=3D""><span =
style=3D"font-family:Avenir-Book;font-size: 14px;" class=3D"">=E2=80=94 =
Bruno</span></div><div class=3D""><br class=3D""></div><div =
class=3D""><span style=3D"font-family:Courier New" class=3D""><br =
class=3D""></span></div><div class=3D""><span style=3D"font-family:Courier=
 New" class=3D"">module: ietf-rift</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; augment =
/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol:</span></=
div><div class=3D""><span style=3D"font-family:Courier New" =
class=3D"">&nbsp; &nbsp; +--rw rift!</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
&nbsp;+--rw node* [name]</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; +--rw name &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; string</span></div><div =
class=3D""><span style=3D"font-family:Courier New" class=3D"">&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; +--ro level? &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; level</span></div><div =
class=3D""><span style=3D"font-family:Courier New" class=3D"">&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; +--rw system-id &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;system-id</span></div><div =
class=3D""><span style=3D"font-family:Courier New" class=3D"">&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; +--rw pod? &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
uint32</span></div><div class=3D""><span style=3D"font-family:Courier =
New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; +--rw =
configured-level? &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp;level</span></div><div class=3D""><span style=3D"font-family:Courier=
 New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; +--rw overload? =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp;boolean</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D""><br =
class=3D""></span></div><div class=3D""><span style=3D"font-family:Courier=
 New" class=3D""><strong class=3D"">&gt;&gt;&gt; Suggest adding: ro =
protocol-major-version uint8</strong></span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D""><br =
class=3D""></span></div><div class=3D""><span style=3D"font-family:Courier=
 New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; +--ro =
protocol-minor-version &nbsp; &nbsp; &nbsp; uint16</span></div><div =
class=3D""><span style=3D"font-family:Courier New" class=3D"">&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; +--ro hierarchy-indications? &nbsp; &nbsp; =
&nbsp; enumeration</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; +--rw flood-reduction? &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
boolean</span></div><div class=3D""><span style=3D"font-family:Courier =
New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; +--rw =
nonce-increasing-interval? &nbsp; uint16</span></div><div class=3D""><span=
 style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; +--rw maximum-nonce-delta? &nbsp; &nbsp; &nbsp; &nbsp; =
uint8 {nonce-delta-adjust}?</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; +--rw rx-lie-multicast-address</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp;+--rw ipv4? &nbsp; inet:ipv4-address</span></div><div =
class=3D""><span style=3D"font-family:Courier New" class=3D"">&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; | &nbsp;+--rw ipv6? &nbsp; =
inet:ipv6-address</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; +--rw tx-lie-multicast-address</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp;+--rw ipv4? &nbsp; inet:ipv4-address</span></div><div =
class=3D""><span style=3D"font-family:Courier New" class=3D"">&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; | &nbsp;+--rw ipv6? &nbsp; =
inet:ipv6-address</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; +--rw lie-tx-port? &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; inet:port-number</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; +--rw global-link-capabilities</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp;+--rw bfd? &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; boolean</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp;+--rw v4-forwarding-capable? &nbsp; =
boolean</span></div><div class=3D""><span style=3D"font-family:Courier =
New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; +--rw rx-flood-port? =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
inet:port-number</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; +--rw holdtime? &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp;rt-types:timer-value-seconds16</span></div><div =
class=3D""><span style=3D"font-family:Courier New" class=3D"">&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; +--rw tide-generation-interval? &nbsp; =
&nbsp;rt-types:timer-value-seconds16</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; +--rw tie-security-key-id? &nbsp; &nbsp; &nbsp; &nbsp; =
uint32</span></div><div class=3D""><span style=3D"font-family:Courier =
New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; +--rw interface* =
[name]</span></div><div class=3D""><span style=3D"font-family:Courier =
New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp;+--ro =
link-id? &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; linkid-type</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp;+--rw name &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
if:interface-ref</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp;+--rw cost? &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;uint32</span></div><div =
class=3D""><span style=3D"font-family:Courier New" class=3D"">&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; | &nbsp;+--rw =
advertised-source-addresses</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp;| &nbsp;+--rw ipv4? &nbsp; =
inet:ipv4-address</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp;| &nbsp;+--rw ipv6? &nbsp; =
inet:ipv6-address</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp;+--ro direction-type? &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp;enumeration</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp;+--ro was-the-last-lie-accepted? &nbsp; &nbsp; =
boolean</span></div><div class=3D""><span style=3D"font-family:Courier =
New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp;+--ro =
last-lie-reject-reason? &nbsp; &nbsp; &nbsp; =
&nbsp;string</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp;+--ro advertised-in-lies</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp;| &nbsp;+--ro you-are-flood-repeater? &nbsp; &nbsp; =
&nbsp; &nbsp;boolean</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp;| &nbsp;+--ro not-a-ztp-offer? &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; boolean</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp;| &nbsp;+--ro you-are-sending-too-quickly? &nbsp; =
boolean</span></div><div class=3D""><span style=3D"font-family:Courier =
New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp;+--rw =
link-capabilities</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp;| &nbsp;+--rw bfd? &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; boolean</span></div><div =
class=3D""><span style=3D"font-family:Courier New" class=3D"">&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; | &nbsp;| &nbsp;+--rw v4-forwarding-capable? =
&nbsp; boolean</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp;+--ro state &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp;enumeration</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D""><br =
class=3D""></span></div><div class=3D""><span style=3D"font-family:Courier=
 New" class=3D""><strong class=3D"">Suggest adding per =
interface:</strong></span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D""><strong class=3D"">- Number =
of flaps</strong></span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D""><strong class=3D"">- Time =
duration in current state</strong></span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D""><br =
class=3D""></span></div><div class=3D""><span style=3D"font-family:Courier=
 New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; +--ro =
miscabled-links* &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
linkid-type</span></div><div class=3D""><span style=3D"font-family:Courier=
 New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; +--rw =
(algorithm-type)?</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp;+--:(spf)</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp;+--:(all-path)</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; +--ro hal? &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; level</span></div><div class=3D""><span=
 style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; +--rw instance-label? &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp;uint32</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D""><br =
class=3D""></span></div><div class=3D""><span style=3D"font-family:Courier=
 New" class=3D""><strong class=3D"">Suggest making this dependent on a =
{segment-routing} or maybe {label-switching} =
feature</strong></span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D""><br =
class=3D""></span></div><div class=3D""><span style=3D"font-family:Courier=
 New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; +--ro =
neighbor</span></div><div class=3D""><span style=3D"font-family:Courier =
New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp;+--ro nbrs* =
[system-id]</span></div><div class=3D""><span style=3D"font-family:Courier=
 New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; =
+--ro name? &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; string</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; +--ro level? &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;level</span></div><div =
class=3D""><span style=3D"font-family:Courier New" class=3D"">&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; +--ro system-id &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
system-id</span></div><div class=3D""><span style=3D"font-family:Courier =
New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; +--ro =
pod? &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp;uint32</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; +--ro protocol-version? &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; uint16</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D""><br =
class=3D""></span></div><div class=3D""><span style=3D"font-family:Courier=
 New" class=3D""><strong =
class=3D"">protocol-minor-version</strong></span></div><div =
class=3D""><span style=3D"font-family:Courier New" class=3D""><br =
class=3D""></span></div><div class=3D""><span style=3D"font-family:Courier=
 New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; =
+--ro address-families</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; | &nbsp;+--ro address-family* =
[address-family]</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; | &nbsp; &nbsp; +--ro address-family &nbsp; =
&nbsp;iana-rt-types:address-family</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; +--ro received-source-addresses</span></div><div =
class=3D""><span style=3D"font-family:Courier New" class=3D"">&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; | &nbsp;+--ro ipv4? &nbsp; =
inet:ipv4-address</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; | &nbsp;+--ro ipv6? &nbsp; =
inet:ipv6-address</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; +--ro link-id-pair* [remote-id]</span></div><div =
class=3D""><span style=3D"font-family:Courier New" class=3D"">&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; | &nbsp;+--ro local-id? =
&nbsp; &nbsp;uint32</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; | &nbsp;+--ro remote-id &nbsp; =
&nbsp;uint32</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; | &nbsp;+--ro if-index? &nbsp; =
&nbsp;uint32</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; | &nbsp;+--ro if-name? &nbsp; &nbsp; =
if:interface-ref</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; +--ro cost? &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; uint32</span></div><div =
class=3D""><span style=3D"font-family:Courier New" class=3D"">&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; +--ro bandwidth? &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp;uint32</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; +--ro flood-reduction? &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp;boolean</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; +--ro sent-offer</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; | &nbsp;+--ro level? &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; level</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; | &nbsp;+--ro not-a-ztp-offer? &nbsp; =
boolean</span></div><div class=3D""><span style=3D"font-family:Courier =
New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; +--ro =
received-offer</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; | &nbsp;+--ro level? &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp;level</span></div><div class=3D""><span style=3D"font-family:Courier=
 New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; | =
&nbsp;+--ro not-a-ztp-offer? &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp;boolean</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; | &nbsp;+--ro best? &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
boolean</span></div><div class=3D""><span style=3D"font-family:Courier =
New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; | =
&nbsp;+--ro removed-from-consideration? &nbsp; boolean</span></div><div =
class=3D""><span style=3D"font-family:Courier New" class=3D"">&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; | &nbsp;+--ro =
removal-reason? &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
string</span></div><div class=3D""><span style=3D"font-family:Courier =
New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; +--ro =
received-link-capabilities</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; | &nbsp;+--ro bfd? &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; boolean</span></div><div =
class=3D""><span style=3D"font-family:Courier New" class=3D"">&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; | &nbsp;+--ro =
v4-forwarding-capable? &nbsp; boolean</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; +--ro received-in-lies</span></div><div =
class=3D""><span style=3D"font-family:Courier New" class=3D"">&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; | &nbsp;+--ro =
you-are-flood-repeater? &nbsp; &nbsp; &nbsp; =
&nbsp;boolean</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; | &nbsp;+--ro not-a-ztp-offer? &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; boolean</span></div><div =
class=3D""><span style=3D"font-family:Courier New" class=3D"">&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; | &nbsp;+--ro =
you-are-sending-too-quickly? &nbsp; boolean</span></div><div =
class=3D""><span style=3D"font-family:Courier New" class=3D"">&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; +--ro tx-flood-port? &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp;inet:port-number</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; +--ro bfd-up? &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; boolean</span></div><div =
class=3D""><span style=3D"font-family:Courier New" class=3D"">&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; +--ro outer-security-key-id? =
&nbsp; &nbsp; &nbsp; &nbsp;uint8</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; +--ro database</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp;+--ro ties* [direction-type originator tie-type =
tie-number]</span></div><div class=3D""><span style=3D"font-family:Courier=
 New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; =
+--ro direction-type &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp;enumeration</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; +--ro originator &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp;system-id</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; +--ro tie-type &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp;enumeration</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; +--ro tie-number &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp;uint32</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; +--ro seq? &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;uint64</span></div><div class=3D""><span=
 style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; | &nbsp; &nbsp; +--ro origination-time? &nbsp; &nbsp; =
&nbsp; uint32</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; +--ro origination-lifetime? &nbsp; =
uint32</span></div><div class=3D""><span style=3D"font-family:Courier =
New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; +--ro =
node</span></div><div class=3D""><span style=3D"font-family:Courier New" =
class=3D""><br class=3D""></span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D""><strong class=3D"">Maybe I =
am misunderstanding something, but the list of Node TIE attributes below =
appears to be</strong></span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D""><strong class=3D"">including =
several attributes that are not stored in the Node TIE, for example =
the</strong></span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D""><strong =
class=3D"">"sent-offer" and "received-offer" =
attributes.</strong></span></div><div class=3D""><br class=3D""></div><div=
 class=3D""><span style=3D"font-family:Courier New" class=3D"">&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; | &nbsp;+--ro name? &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;string</span></div><div =
class=3D""><span style=3D"font-family:Courier New" class=3D"">&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; | &nbsp;+--ro level? &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; level</span></div><div class=3D""><span=
 style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; | &nbsp; &nbsp; | &nbsp;+--ro system-id &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp;system-id</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; | &nbsp;+--ro pod? &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; uint32</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; | &nbsp;+--ro flood-reduction? &nbsp; =
boolean</span></div><div class=3D""><span style=3D"font-family:Courier =
New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; | =
&nbsp;+--ro overload? &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp;boolean</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; | &nbsp;+--ro startup-time? &nbsp; &nbsp; =
&nbsp;uint64</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; | &nbsp;+--ro neighbors* =
[system-id]</span></div><div class=3D""><span style=3D"font-family:Courier=
 New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; | =
&nbsp;| &nbsp;+--ro name? &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; string</span></div><div =
class=3D""><span style=3D"font-family:Courier New" class=3D"">&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; | &nbsp;| &nbsp;+--ro level? =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp;level</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; | &nbsp;| &nbsp;+--ro system-id &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
system-id</span></div><div class=3D""><span style=3D"font-family:Courier =
New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; | =
&nbsp;| &nbsp;+--ro pod? &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;uint32</span></div><div =
class=3D""><span style=3D"font-family:Courier New" class=3D"">&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; | &nbsp;| &nbsp;+--ro =
address-families</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; | &nbsp;| &nbsp;| &nbsp;+--ro address-family* =
[address-family]</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; | &nbsp;| &nbsp;| &nbsp; &nbsp; +--ro =
address-family &nbsp; =
&nbsp;iana-rt-types:address-family</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; | &nbsp;| &nbsp;+--ro =
received-source-addresses</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; | &nbsp;| &nbsp;| &nbsp;+--ro ipv4? &nbsp; =
inet:ipv4-address</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; | &nbsp;| &nbsp;| &nbsp;+--ro ipv6? &nbsp; =
inet:ipv6-address</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; | &nbsp;| &nbsp;+--ro link-id-pair* =
[remote-id]</span></div><div class=3D""><span style=3D"font-family:Courier=
 New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; | =
&nbsp;| &nbsp;| &nbsp;+--ro local-id? &nbsp; =
&nbsp;uint32</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; | &nbsp;| &nbsp;| &nbsp;+--ro remote-id &nbsp; =
&nbsp;uint32</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; | &nbsp;| &nbsp;| &nbsp;+--ro if-index? &nbsp; =
&nbsp;uint32</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; | &nbsp;| &nbsp;| &nbsp;+--ro if-name? &nbsp; =
&nbsp; if:interface-ref</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; | &nbsp;| &nbsp;+--ro cost? &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
uint32</span></div><div class=3D""><span style=3D"font-family:Courier =
New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; | =
&nbsp;| &nbsp;+--ro bandwidth? &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp;uint32</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; | &nbsp;| &nbsp;+--ro flood-reduction? &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;boolean</span></div><div =
class=3D""><span style=3D"font-family:Courier New" class=3D"">&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; | &nbsp;| &nbsp;+--ro =
sent-offer</span></div><div class=3D""><span style=3D"font-family:Courier =
New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; | =
&nbsp;| &nbsp;| &nbsp;+--ro level? &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; level</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; | &nbsp;| &nbsp;| &nbsp;+--ro not-a-ztp-offer? =
&nbsp; boolean</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; | &nbsp;| &nbsp;+--ro =
received-offer</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; | &nbsp;| &nbsp;| &nbsp;+--ro level? &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp;level</span></div><div class=3D""><span style=3D"font-family:Courier=
 New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; | =
&nbsp;| &nbsp;| &nbsp;+--ro not-a-ztp-offer? &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp;boolean</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; | &nbsp;| &nbsp;| &nbsp;+--ro best? &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
boolean</span></div><div class=3D""><span style=3D"font-family:Courier =
New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; | =
&nbsp;| &nbsp;| &nbsp;+--ro removed-from-consideration? &nbsp; =
boolean</span></div><div class=3D""><span style=3D"font-family:Courier =
New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; | =
&nbsp;| &nbsp;| &nbsp;+--ro removal-reason? &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; string</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; | &nbsp;| &nbsp;+--ro =
received-link-capabilities</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; | &nbsp;| &nbsp;| &nbsp;+--ro bfd? &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
boolean</span></div><div class=3D""><span style=3D"font-family:Courier =
New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; | =
&nbsp;| &nbsp;| &nbsp;+--ro v4-forwarding-capable? &nbsp; =
boolean</span></div><div class=3D""><span style=3D"font-family:Courier =
New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; | =
&nbsp;| &nbsp;+--ro received-in-lies</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; | &nbsp;| &nbsp;| &nbsp;+--ro =
you-are-flood-repeater? &nbsp; &nbsp; &nbsp; =
&nbsp;boolean</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; | &nbsp;| &nbsp;| &nbsp;+--ro not-a-ztp-offer? =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
boolean</span></div><div class=3D""><span style=3D"font-family:Courier =
New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; | =
&nbsp;| &nbsp;| &nbsp;+--ro you-are-sending-too-quickly? &nbsp; =
boolean</span></div><div class=3D""><span style=3D"font-family:Courier =
New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; | =
&nbsp;| &nbsp;+--ro tx-flood-port? &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp;inet:port-number</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; | &nbsp;| &nbsp;+--ro bfd-up? &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
boolean</span></div><div class=3D""><span style=3D"font-family:Courier =
New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; | =
&nbsp;| &nbsp;+--ro outer-security-key-id? &nbsp; &nbsp; &nbsp; =
&nbsp;uint8</span></div><div class=3D""><span style=3D"font-family:Courier=
 New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; | =
&nbsp;+--ro miscabled-links* &nbsp; linkid-type</span></div><div =
class=3D""><span style=3D"font-family:Courier New" class=3D"">&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; +--ro =
prefix</span></div><div class=3D""><span style=3D"font-family:Courier =
New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; =
&nbsp; &nbsp;+--ro prefix? &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp;inet:ip-prefix</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; &nbsp; &nbsp;+--ro (type)?</span></div><div =
class=3D""><span style=3D"font-family:Courier New" class=3D"">&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; &nbsp; &nbsp;| =
&nbsp;+--:(prefix)</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; &nbsp; &nbsp;| =
&nbsp;+--:(positive-disaggregation)</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; &nbsp; &nbsp;| =
&nbsp;+--:(negative-disaggregation)</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; &nbsp; &nbsp;| =
&nbsp;+--:(external)</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; &nbsp; &nbsp;| =
&nbsp;+--:(positive-external-disaggregation)</span></div><div =
class=3D""><span style=3D"font-family:Courier New" class=3D"">&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; &nbsp; &nbsp;| =
&nbsp;+--:(pgp)</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; &nbsp; &nbsp;+--ro metric? &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp;uint32</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; &nbsp; &nbsp;+--ro tags* &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;uint64</span></div><div class=3D""><span=
 style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; | &nbsp; &nbsp; &nbsp; &nbsp;+--ro =
monotonic-clock</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; &nbsp; &nbsp;| &nbsp;+--ro =
prefix-sequence-type</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; &nbsp; &nbsp;| &nbsp; &nbsp; +--ro timestamp =
&nbsp; &nbsp; &nbsp; &nbsp; ieee802-1as-timestamp-type</span></div><div =
class=3D""><span style=3D"font-family:Courier New" class=3D"">&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; &nbsp; &nbsp;| &nbsp; &nbsp; =
+--ro transaction-id? &nbsp; uint8</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; &nbsp; &nbsp;+--ro loopback? &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp;boolean</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; &nbsp; &nbsp;+--ro directly-attached? &nbsp; =
boolean</span></div><div class=3D""><span style=3D"font-family:Courier =
New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; =
&nbsp; &nbsp;+--ro from-link? &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
linkid-type</span></div><div class=3D""><span style=3D"font-family:Courier=
 New" class=3D""><br class=3D""></span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D""><strong class=3D"">What =
made you model the kv-store separately? It seems more logical to me to =
model it as part&nbsp;</strong></span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D""><strong class=3D"">of the =
TIE database (similar to how you model node TIEs and the various flavors =
of prefix TIEs)</strong></span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D""><br =
class=3D""></span></div><div class=3D""><span style=3D"font-family:Courier=
 New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; +--ro =
kv-store</span></div><div class=3D""><span style=3D"font-family:Courier =
New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;+--ro =
kvs* [kvs-index]</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; +--ro kvs-index &nbsp; =
&nbsp;uint32</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; +--ro kvs-tie</span></div><div =
class=3D""><span style=3D"font-family:Courier New" class=3D"">&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;+--ro =
direction-type? &nbsp; &nbsp; &nbsp; &nbsp; enumeration</span></div><div =
class=3D""><span style=3D"font-family:Courier New" class=3D"">&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;+--ro =
originator? &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
system-id</span></div><div class=3D""><span style=3D"font-family:Courier =
New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp;+--ro tie-type? &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; enumeration</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;+--ro tie-number? &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; uint32</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;+--ro seq? &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;uint64</span></div><div =
class=3D""><span style=3D"font-family:Courier New" class=3D"">&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;+--ro =
origination-time? &nbsp; &nbsp; &nbsp; uint32</span></div><div =
class=3D""><span style=3D"font-family:Courier New" class=3D"">&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;+--ro =
origination-lifetime? &nbsp; uint32</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;+--ro =
key-value</span></div><div class=3D""><span style=3D"font-family:Courier =
New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; +--ro key? &nbsp; &nbsp; uint16</span></div><div =
class=3D""><span style=3D"font-family:Courier New" class=3D"">&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
+--ro value? &nbsp; uint32</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D""><br =
class=3D""></span></div><div class=3D""><span style=3D"font-family:Courier=
 New" class=3D"">&nbsp; notifications:</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; +---n =
error-set</span></div><div class=3D""><span style=3D"font-family:Courier =
New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp;+--ro =
tie-level-error</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
&nbsp;| &nbsp;+--ro direction-type? &nbsp; &nbsp; &nbsp; &nbsp; =
enumeration</span></div><div class=3D""><span style=3D"font-family:Courier=
 New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp;| &nbsp;+--ro originator? =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; system-id</span></div><div =
class=3D""><span style=3D"font-family:Courier New" class=3D"">&nbsp; =
&nbsp; &nbsp; &nbsp;| &nbsp;+--ro tie-type? &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; enumeration</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
&nbsp;| &nbsp;+--ro tie-number? &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; uint32</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
&nbsp;| &nbsp;+--ro seq? &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp;uint64</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
&nbsp;| &nbsp;+--ro origination-time? &nbsp; &nbsp; &nbsp; =
uint32</span></div><div class=3D""><span style=3D"font-family:Courier =
New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp;| &nbsp;+--ro =
origination-lifetime? &nbsp; uint32</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
&nbsp;+--ro neighbor-error</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; +--ro neighbor* [system-id]</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp;+--ro name? &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; string</span></div><div =
class=3D""><span style=3D"font-family:Courier New" class=3D"">&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;+--ro level? &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp;level</span></div><div class=3D""><span style=3D"font-family:Courier=
 New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;+--ro =
system-id &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; system-id</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp;+--ro pod? &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;uint32</span></div><div =
class=3D""><span style=3D"font-family:Courier New" class=3D"">&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;+--ro protocol-version? &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; uint16</span></div><div =
class=3D""><span style=3D"font-family:Courier New" class=3D"">&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;+--ro =
address-families</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp;| &nbsp;+--ro address-family* =
[address-family]</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp;| &nbsp; &nbsp; +--ro address-family &nbsp; =
&nbsp;iana-rt-types:address-family</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp;+--ro received-source-addresses</span></div><div =
class=3D""><span style=3D"font-family:Courier New" class=3D"">&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| &nbsp;+--ro ipv4? &nbsp; =
inet:ipv4-address</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp;| &nbsp;+--ro ipv6? &nbsp; =
inet:ipv6-address</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp;+--ro link-id-pair* [remote-id]</span></div><div =
class=3D""><span style=3D"font-family:Courier New" class=3D"">&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| &nbsp;+--ro local-id? &nbsp; =
&nbsp;uint32</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp;| &nbsp;+--ro remote-id &nbsp; =
&nbsp;uint32</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp;| &nbsp;+--ro if-index? &nbsp; =
&nbsp;uint32</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp;| &nbsp;+--ro if-name? &nbsp; &nbsp; =
if:interface-ref</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp;+--ro cost? &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; uint32</span></div><div =
class=3D""><span style=3D"font-family:Courier New" class=3D"">&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;+--ro bandwidth? &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp;uint32</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp;+--ro flood-reduction? &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp;boolean</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp;+--ro sent-offer</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp;| &nbsp;+--ro level? &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; level</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp;| &nbsp;+--ro not-a-ztp-offer? &nbsp; =
boolean</span></div><div class=3D""><span style=3D"font-family:Courier =
New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;+--ro =
received-offer</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp;| &nbsp;+--ro level? &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp;level</span></div><div class=3D""><span style=3D"font-family:Courier=
 New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| =
&nbsp;+--ro not-a-ztp-offer? &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp;boolean</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp;| &nbsp;+--ro best? &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
boolean</span></div><div class=3D""><span style=3D"font-family:Courier =
New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| =
&nbsp;+--ro removed-from-consideration? &nbsp; boolean</span></div><div =
class=3D""><span style=3D"font-family:Courier New" class=3D"">&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| &nbsp;+--ro removal-reason? =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; string</span></div><div =
class=3D""><span style=3D"font-family:Courier New" class=3D"">&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;+--ro =
received-link-capabilities</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp;| &nbsp;+--ro bfd? &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; boolean</span></div><div =
class=3D""><span style=3D"font-family:Courier New" class=3D"">&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| &nbsp;+--ro =
v4-forwarding-capable? &nbsp; boolean</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp;+--ro received-in-lies</span></div><div =
class=3D""><span style=3D"font-family:Courier New" class=3D"">&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| &nbsp;+--ro =
you-are-flood-repeater? &nbsp; &nbsp; &nbsp; =
&nbsp;boolean</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp;| &nbsp;+--ro not-a-ztp-offer? &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; boolean</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp;| &nbsp;+--ro you-are-sending-too-quickly? &nbsp; =
boolean</span></div><div class=3D""><span style=3D"font-family:Courier =
New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;+--ro =
tx-flood-port? &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp;inet:port-number</span></div><div class=3D""><span =
style=3D"font-family:Courier New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp;+--ro bfd-up? &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; boolean</span></div><div =
class=3D""><span style=3D"font-family:Courier New" class=3D"">&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;+--ro outer-security-key-id? =
&nbsp; &nbsp; &nbsp; &nbsp;uint8</span></div><div class=3D""><br =
class=3D""></div></div></div></div></div></div></div><p class=3D""><br =
class=3D""></p></div><span =
id=3D"cid:EF5A4440-938E-4835-A939-A106888412FF">&lt;rift20210216.yang&gt;<=
/span><span =
id=3D"cid:0FC9FC1A-DEE9-457F-8A3D-6FACDB8B172D">&lt;rift-tree20210217.txt&=
gt;</span><span id=3D"cid:5F33D6CA-EC02-4EA8-BEF5-83C0799E083C">&lt;Diff_ =
rift-tree20210128.txt - =
rift-tree20210217.txt.html&gt;</span></div></blockquote></div><br =
class=3D""></body></html>=

--Apple-Mail=_19D12CEF-9BC1-4783-9752-774207A85102--

