[netmod] Key selection for next hop list in RFC8349

Qin Wu <bill.wu@huawei.com> Fri, 10 July 2020 06:59 UTC

Return-Path: <bill.wu@huawei.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost []) by ietfa.amsl.com (Postfix) with ESMTP id 618633A0DE9 for <netmod@ietfa.amsl.com>; Thu, 9 Jul 2020 23:59:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([]) by localhost (ietfa.amsl.com []) (amavisd-new, port 10024) with ESMTP id LaWy-URJq-Zc for <netmod@ietfa.amsl.com>; Thu, 9 Jul 2020 23:59:28 -0700 (PDT)
Received: from huawei.com (lhrrgout.huawei.com []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6480F3A0DE8 for <netmod@ietf.org>; Thu, 9 Jul 2020 23:59:28 -0700 (PDT)
Received: from lhreml737-chm.china.huawei.com (unknown []) by Forcepoint Email with ESMTP id 69C5189EF376C49DADDB for <netmod@ietf.org>; Fri, 10 Jul 2020 07:59:26 +0100 (IST)
Received: from lhreml737-chm.china.huawei.com ( by lhreml737-chm.china.huawei.com ( with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1913.5; Fri, 10 Jul 2020 07:59:26 +0100
Received: from DGGEML406-HUB.china.huawei.com ( by lhreml737-chm.china.huawei.com ( with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.1.1913.5 via Frontend Transport; Fri, 10 Jul 2020 07:59:25 +0100
Received: from DGGEML531-MBS.china.huawei.com ([]) by dggeml406-hub.china.huawei.com ([]) with mapi id 14.03.0487.000; Fri, 10 Jul 2020 14:59:23 +0800
From: Qin Wu <bill.wu@huawei.com>
To: "'Acee Lindem (acee)'" <acee=40cisco.com@dmarc.ietf.org>
CC: NetMod WG <netmod@ietf.org>
Thread-Topic: Key selection for next hop list in RFC8349
Thread-Index: AdZWhmfYix7o6MgpRImltxG5950BaA==
Date: Fri, 10 Jul 2020 06:59:22 +0000
Message-ID: <B8F9A780D330094D99AF023C5877DABAAD81A3AB@dggeml531-mbs.china.huawei.com>
Accept-Language: zh-CN, en-US
Content-Language: zh-CN
x-originating-ip: []
Content-Type: multipart/alternative; boundary="_000_B8F9A780D330094D99AF023C5877DABAAD81A3ABdggeml531mbschi_"
MIME-Version: 1.0
X-CFilter-Loop: Reflected
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/uN5Xs10PduWseJ6GwMPHrILz798>
Subject: [netmod] Key selection for next hop list in RFC8349
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 10 Jul 2020 06:59:30 -0000

Hi, Acee, Lada, Yingzhen:
In RFC8349, a string type index parameter is defined as the key for next hop list, this index has no semantics and can be used as unique ID for each next hop entry.
I am wondering why not select next hop address as the key instead of using no semantic meaning index? What's the rationale behind, when we will use index as the key, when we will use next hop address as the key?
Thanks in advance.
The following YANG data model snippets is for reference.
     grouping next-hop-content {
         "Generic parameters of next hops in static routes.";
       choice next-hop-options {
         mandatory true;
           "Options for next hops in static routes.

            It is expected that further cases will be added through
            augments from other modules.";
         case next-hop-list {
           container next-hop-list {
               "Container for multiple next hops.";
             list next-hop {
               key "index";
                 "An entry in a next-hop list.
                  Modules for address families MUST augment this list
                  with a leaf containing a next-hop address of that
                  address family.";
               leaf index {
                 type string;
                   "A user-specified identifier utilized to uniquely
                    reference the next-hop entry in the next-hop list.
                    The value of this index has no semantic meaning
                    other than for referencing the entry.";
               leaf outgoing-interface {
                 type if:interface-ref;
                   "Name of the outgoing interface.";