[netconf] Which is the better way for vendor-specific extension?
yuchaode <yuchaode@huawei.com> Wed, 17 May 2023 08:25 UTC
Return-Path: <yuchaode@huawei.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 61381C151980 for <netconf@ietfa.amsl.com>; Wed, 17 May 2023 01:25:38 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.898
X-Spam-Level:
X-Spam-Status: No, score=-1.898 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Vy20pgA5eYVb for <netconf@ietfa.amsl.com>; Wed, 17 May 2023 01:25:34 -0700 (PDT)
Received: from frasgout.his.huawei.com (frasgout.his.huawei.com [185.176.79.56]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id CD67DC151066 for <netconf@ietf.org>; Wed, 17 May 2023 01:25:33 -0700 (PDT)
Received: from lhrpeml100002.china.huawei.com (unknown [172.18.147.207]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4QLmMy4TkJz6DBcb for <netconf@ietf.org>; Wed, 17 May 2023 16:23:42 +0800 (CST)
Received: from canpemm100002.china.huawei.com (7.192.105.47) by lhrpeml100002.china.huawei.com (7.191.160.241) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Wed, 17 May 2023 09:25:30 +0100
Received: from canpemm500002.china.huawei.com (7.192.104.244) by canpemm100002.china.huawei.com (7.192.105.47) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Wed, 17 May 2023 16:25:28 +0800
Received: from canpemm500002.china.huawei.com ([7.192.104.244]) by canpemm500002.china.huawei.com ([7.192.104.244]) with mapi id 15.01.2507.023; Wed, 17 May 2023 16:25:28 +0800
From: yuchaode <yuchaode@huawei.com>
To: "netconf@ietf.org" <netconf@ietf.org>
Thread-Topic: Which is the better way for vendor-specific extension?
Thread-Index: AdmIle8lYptyaApRTXuAIXK+sYsUsQ==
Date: Wed, 17 May 2023 08:25:28 +0000
Message-ID: <bf46e86e2802449797521fd7a8746a2c@huawei.com>
Accept-Language: zh-CN, en-US
Content-Language: zh-CN
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.117.46.217]
Content-Type: multipart/alternative; boundary="_000_bf46e86e2802449797521fd7a8746a2chuaweicom_"
MIME-Version: 1.0
X-CFilter-Loop: Reflected
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/--1Pxy3I09psyikVpGpV2bt6efU>
Subject: [netconf] Which is the better way for vendor-specific extension?
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 17 May 2023 08:25:38 -0000
Hi friends, Since the definition of standard cannot always cover all the attributes of different vendors, vendor-specific extension is necessary to exist. Especially for IETF YANG data model, some of our drafts takes years to release. Vendors cannot wait for all the drafts are released, and their development has to begin with an immature version, and make some extensions based on their owned understanding. When I learned YANG language on my first time, people told me that we can use some vendor-specific YANG models to augment the existing models to make this vendor-specific extension. For example, there is an ietf-example.yang, in which there are three attributes named attr-1, attr-2, attr-3. Vendor A thinks that these three attributes are not enough, he would like to extend attr-4. He can write a vendor-a-ext.yang to specify this attribute. So when to retrieve the ietf-example data, for vendor A, he can response with: { "ietf-example:root": { "attr-1": a, "attr-2": b, "attr-3": c, "vendor-a-ext:attr-4": d } } In multi-vendor scenario, there could be a lot of vendor-specific extension. If the source structure is very complex, the vendor-specific extension could be everywhere, this is messy and will be a heavy burden for the orchestrator. Is there any suggestion to deal with these flexible vendor-specific extension? In some traditional protocols, such as CORBA, a fixed name-value pair structure is provided for vendor-specific extension. For vendor A's scenario, it can work like below (here I use json format for better comparison): { "root": { "attr-1": a, "attr-2": b, "attr-3": c, "additional-info": { "name": "vendor-a-ext:attr-4", "value": d } } } So for the orchestrator, it is easy to recognize which part of attributes are standard and which part of attributes are vendor-specific. It will be of great help for their programing. I remember there used to be a discussion and opposed to introduce this opaque structure, which was said to be harmful for standardization. But I also found such kinds of experience in openconfig, such like the properties structure in openconfig-platform module. So, which is a better way for vendor-specific extension? The above is just my superficial views, welcome to have your comments. Thanks! B.R. Chaode
- [netconf] Which is the better way for vendor-spec… yuchaode
- Re: [netconf] Which is the better way for vendor-… Jan Lindblad
- [netconf] 答复: Which is the better way for vendor-… yuchaode
- Re: [netconf] 答复: Which is the better way for ven… Jürgen Schönwälder