Re: [CCAMP] Thoughts on Flex-E YANG models

"Rob Wilton (rwilton)" <rwilton@cisco.com> Mon, 25 November 2019 15:39 UTC

Return-Path: <rwilton@cisco.com>
X-Original-To: ccamp@ietfa.amsl.com
Delivered-To: ccamp@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9862912098C for <ccamp@ietfa.amsl.com>; Mon, 25 Nov 2019 07:39:45 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.5
X-Spam-Level:
X-Spam-Status: No, score=-14.5 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.com header.b=X0jw9itd; dkim=pass (1024-bit key) header.d=cisco.onmicrosoft.com header.b=xdI+198w
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 3wodXzE-Lm97 for <ccamp@ietfa.amsl.com>; Mon, 25 Nov 2019 07:39:42 -0800 (PST)
Received: from rcdn-iport-2.cisco.com (rcdn-iport-2.cisco.com [173.37.86.73]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id CDE9C120988 for <ccamp@ietf.org>; Mon, 25 Nov 2019 07:39:41 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=38436; q=dns/txt; s=iport; t=1574696381; x=1575905981; h=from:to:subject:date:message-id:references:in-reply-to: mime-version; bh=0uyc0HqR3Aa44vH/7gCSo/ol5hxyNoDiRU/qplxeRCs=; b=X0jw9itd/oycfSsdFlJBWa2XtbpFxF5/ypDvHEMQiB9EFK2p3eoOqwuc /DxM0TtXuf1lZTHsmNzzee08mHu9epJOOywTw3c8xx4zQol572aMt4SLA 7Ckj95dAbQHajYaQR5/W4XDOGW9+VQ3ClwJo2qlmyR1ypSuw5Z43RUGux 0=;
IronPort-PHdr: =?us-ascii?q?9a23=3AU4xoAxReFTkz6maLyzp+afLgv9psv++ubAcI9p?= =?us-ascii?q?oqja5Pea2//pPkeVbS/uhpkESXBdfA8/wRje3QvuigQmEG7Zub+FE6OJ1XH1?= =?us-ascii?q?5g640NmhA4RsuMCEn1NvnvOjYlHcBeU1lN9HCgOk8TE8H7NBXf?=
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0ALAQDZ9Ntd/5ldJa1bChsBAQEBAQE?= =?us-ascii?q?BBQEBAREBAQMDAQEBgW0DAQEBCwGBGy8kLAVsWCAECyoKh2cDim9OghGYBIJ?= =?us-ascii?q?SA1QJAQEBDAEBIwoCAQGEQAKCLiQ3Bg4CAw0BAQQBAQECAQUEbYU3DIVSAQE?= =?us-ascii?q?BAQMSGxMBATAIDwIBCBEEAQEhAQYHMhQJCAEBBAESCBcDgwGBeU0DLgECDKY?= =?us-ascii?q?eAoE4iGCCJ4J+AQEFhRcYghcDBoE2AYwVGoFAP4FYgkw+gmQCgTgtKwmDDII?= =?us-ascii?q?sjV6IAiSYMgqCK4ccjlOCP4dqj3OOSIg6kVYCBAIEBQIOAQEFgWgjKoEucBU?= =?us-ascii?q?7gmxQERSGSINzilN0gSiMFgGBDgEB?=
X-IronPort-AV: E=Sophos;i="5.69,241,1571702400"; d="scan'208,217";a="674425810"
Received: from rcdn-core-2.cisco.com ([173.37.93.153]) by rcdn-iport-2.cisco.com with ESMTP/TLS/DHE-RSA-SEED-SHA; 25 Nov 2019 15:39:40 +0000
Received: from XCH-RCD-004.cisco.com (xch-rcd-004.cisco.com [173.37.102.14]) by rcdn-core-2.cisco.com (8.15.2/8.15.2) with ESMTPS id xAPFdegM015546 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=FAIL); Mon, 25 Nov 2019 15:39:40 GMT
Received: from xhs-rtp-002.cisco.com (64.101.210.229) by XCH-RCD-004.cisco.com (173.37.102.14) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Mon, 25 Nov 2019 09:39:39 -0600
Received: from xhs-aln-002.cisco.com (173.37.135.119) by xhs-rtp-002.cisco.com (64.101.210.229) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Mon, 25 Nov 2019 10:39:38 -0500
Received: from NAM05-CO1-obe.outbound.protection.outlook.com (173.37.151.57) by xhs-aln-002.cisco.com (173.37.135.119) with Microsoft SMTP Server (TLS) id 15.0.1473.3 via Frontend Transport; Mon, 25 Nov 2019 09:39:38 -0600
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=C+aIWRRi7+dcXQZPoVdtwxY58EiAiH97CdkLbUs5EU/lFElgwyozYwqspYZ+VCckLLXf3SJbmuz4AaUpJ3tzrXk3hnEKN7DZ8BTTpVh3Th/Cz2e2gNlxXYX4cUBCdboOfo075XfJOX7cdb1deb+KCDWHZ1nl5sFlKXMsqZdqQ89dFVT+GXsUE1pN5Ir7hg+F5eJFOezdnghkDLeUsmHqOtI18TWBXPaF4Suvzj7uS8aZqzpPAmQx2UlO+vCmRelDSUm91u95PvBOxdA92dAJz6takNyHHLihRK/cFQaygX3dJE+8VcsyftCcLmS2BsJBwvKmKjLiAndkjcsxaswCLQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=/JSAbbei/fsQZ2YSjeZ/fEbQuVDWTu/5VTisKKbGYKk=; b=bhf9t51XqBb1u/0R6FIyC/nglvVJiDJ8fzBLbScfMnMBC6JENOThMInoZmWCuT9/t7wL5S2P13vCj/qFPE90s4LlRg3cjjg66SaAiWBJDhunN2U0K2NrZtFcrpWmj98mcrd2dLir+D/EPpkoZetBz6FeXcfmcTt5Huij7UT8TaomNOkYiJX7R1wBXOrkUuzqRmwc0b5yZ+arHXhpbcAnRhn5TQpsO5aBH1VaFMI7hZLhtnneT2Lj4yT1EmjhRx5QckmeNAJied9Dw38571WLT4SD1gpwAaHWxFPM8TrhVmRtGq1ktEu1waZtDfzbuR1QRPZjL/bk8AOtO1HY9RfChA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=cisco.com; dmarc=pass action=none header.from=cisco.com; dkim=pass header.d=cisco.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cisco.onmicrosoft.com; s=selector2-cisco-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=/JSAbbei/fsQZ2YSjeZ/fEbQuVDWTu/5VTisKKbGYKk=; b=xdI+198wmE/voD+2Kmkz/tRjdbSOKbJToAB9Aj2rP3qCUTiey5Jgtwtla7e98827PlP7gI7TH7T7gm1nDcAiGismX4nZecJtkqCIlIOO6L6rAagztS7bAKallzevRcrLLpYqJqbzAGzSvPTxGcioWdn0bwF2Ye/XDfu8QSCPe3g=
Received: from MN2PR11MB4366.namprd11.prod.outlook.com (52.135.38.209) by MN2PR11MB3614.namprd11.prod.outlook.com (20.178.250.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2474.21; Mon, 25 Nov 2019 15:39:37 +0000
Received: from MN2PR11MB4366.namprd11.prod.outlook.com ([fe80::49b6:bc5c:bd3e:203c]) by MN2PR11MB4366.namprd11.prod.outlook.com ([fe80::49b6:bc5c:bd3e:203c%5]) with mapi id 15.20.2474.023; Mon, 25 Nov 2019 15:39:37 +0000
From: "Rob Wilton (rwilton)" <rwilton@cisco.com>
To: Jiangyuanlong <jiangyuanlong@huawei.com>, "ccamp@ietf.org" <ccamp@ietf.org>
Thread-Topic: Thoughts on Flex-E YANG models
Thread-Index: AdWhDyWGrnTE6LENT0aWnLFB03XMUACLAReQABIq+LA=
Date: Mon, 25 Nov 2019 15:39:37 +0000
Message-ID: <MN2PR11MB4366E60D5F35F5E98CA63C07B54A0@MN2PR11MB4366.namprd11.prod.outlook.com>
References: <MN2PR11MB436635770A169EACDD7E0F54B5490@MN2PR11MB4366.namprd11.prod.outlook.com> <3B0A1BED22CAD649A1B3E97BE5DDD68BD37A49E8@dggeml512-mbx.china.huawei.com>
In-Reply-To: <3B0A1BED22CAD649A1B3E97BE5DDD68BD37A49E8@dggeml512-mbx.china.huawei.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: spf=none (sender IP is ) smtp.mailfrom=rwilton@cisco.com;
x-originating-ip: [173.38.220.57]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 64678e52-f5f8-4250-dd1b-08d771bdadbb
x-ms-traffictypediagnostic: MN2PR11MB3614:
x-ms-exchange-purlcount: 1
x-microsoft-antispam-prvs: <MN2PR11MB36147D20930F87E63C9D8351B54A0@MN2PR11MB3614.namprd11.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-forefront-prvs: 0232B30BBC
x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(39860400002)(346002)(376002)(136003)(366004)(396003)(51444003)(52314003)(199004)(189003)(790700001)(6116002)(3846002)(33656002)(55016002)(110136005)(76176011)(102836004)(9326002)(229853002)(316002)(6506007)(7696005)(86362001)(606006)(966005)(478600001)(2906002)(7736002)(74316002)(66446008)(66946007)(66066001)(66476007)(66556008)(64756008)(76116006)(52536014)(99286004)(53546011)(14454004)(2501003)(6246003)(5660300002)(6306002)(6436002)(8936002)(186003)(446003)(11346002)(236005)(9686003)(26005)(81166006)(81156014)(54896002)(8676002)(25786009)(71190400001)(71200400001)(256004)(170073001); DIR:OUT; SFP:1101; SCL:1; SRVR:MN2PR11MB3614; H:MN2PR11MB4366.namprd11.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1;
received-spf: None (protection.outlook.com: cisco.com does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: bbwIW6qeUoVQCTPxjTsKu0977shzzHNmlhoPvQ0DqbLBszpLN90aMxsUYNZwqDjR6+VR5iDLhVzHlOJIOx37XGkzGBS1YDNwXQF4s1b2eRiwwcjtNA7pk3ing1bu4+RgbumeuTwfcouD3aqNR5jhTlqtFE+AhiSgsPhyreVowAjZCGcncCLYtGFqXGbRsSYVUM7GJZHJV25e1VzrhX7qPOxJFTX+P3ITIcuBODviwO1Cn5+qF2Y8Egde/4NbFANmInQsPs9URwIxtkCY35cz8SfNILk2lixldG4avp34qeowkyNMAbpYg5uW1UUFzZjR+wz2KihYVpxNnn5Nf8jEkkioRUz/vNdd2lpgtz0RVaWswJx9/2nPidcwwMUUXZ2lxXtc7RcPM0H5iWzxCbhlwHMC2Ka49DzotRqEMUM62JyZ0hVWrdtLcmUihcov8CXKkiiITWr4jlaJ5rKGhG8qg1P4Hy5jQp2ICTkCJ73einY=
x-ms-exchange-transport-forked: True
Content-Type: multipart/alternative; boundary="_000_MN2PR11MB4366E60D5F35F5E98CA63C07B54A0MN2PR11MB4366namp_"
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-Network-Message-Id: 64678e52-f5f8-4250-dd1b-08d771bdadbb
X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Nov 2019 15:39:37.1133 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 5ae1af62-9505-4097-a69a-c1553ef7840e
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: FP7/yEKVFtYHQ7MEm2M6iJrNhVa+GoMgIF1IX4m+yuqFYbQc/W3Wxk3a2cBMsulVnPvKM4KGYVylIZTumfaYgA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB3614
X-OriginatorOrg: cisco.com
X-Outbound-SMTP-Client: 173.37.102.14, xch-rcd-004.cisco.com
X-Outbound-Node: rcdn-core-2.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/ccamp/2LvORl7BaFbi95qKSnNQfBtyB10>
Subject: Re: [CCAMP] Thoughts on Flex-E YANG models
X-BeenThere: ccamp@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion list for the CCAMP working group <ccamp.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ccamp>, <mailto:ccamp-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ccamp/>
List-Post: <mailto:ccamp@ietf.org>
List-Help: <mailto:ccamp-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ccamp>, <mailto:ccamp-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 25 Nov 2019 15:39:46 -0000

Hi Yuanlong,

Please see [RW] comments inline ...

From: Jiangyuanlong <jiangyuanlong@huawei.com>
Sent: 25 November 2019 03:54
To: Rob Wilton (rwilton) <rwilton@cisco.com>om>; ccamp@ietf.org
Subject: RE: Thoughts on Flex-E YANG models

Hi Rob,

Thank you  a lot for your comments, they are very helpful.
Please see my further comments inline.

Cheers,
Yuanlong

From: CCAMP [mailto:ccamp-bounces@ietf.org] On Behalf Of Rob Wilton (rwilton)
Sent: Friday, November 22, 2019 11:01 PM
To: ccamp@ietf.org<mailto:ccamp@ietf.org>
Subject: [CCAMP] Thoughts on Flex-E YANG models

Hi,

I have some general thoughts on modelling Flex-E in YANG that may help the authors converge.  These comments mostly relate to what I would call the overall shape of the YANG model rather specific configuration (which I think can probably be sorted out once the shape has been agreed).

1.      Flex-E groups should be identified by their group-number (both models seem to do this, but the group number seems to be optional in one model)
2.      The configuration to identify the bonded phys should be under the flex-e group (both models do this).
[Jiang] Agreed to both.

3.      In the flex-e group's bonded-phy interface configuration list, bonded-phy interface list entries could be keyed either by the bonded phy interface name, or the flex-e phy number.
a.      I would suggest that the bonded-phy interface name is the more meaningful identifier to clients.
[Jiang] Just to be clear, are your saying that the list of flexe-phy should be keyed by the interface name? I think in our model, current key "flexe-phy-if" is exactly the PHY interface name, as shown in RFC 8343:
"     typedef interface-ref {
       type leafref {
         path "/if:interfaces/if:interface/if:name";
"
[RW]
Yes.

b.      Either way, the entries should also indicate the binding to the bonded-phy interface (e.g. by an interface-ref - both models seem to do this).
4.      The configuration required to define the client interfaces associated with a flex-e group should be under the flex-e group list entry, based on the assumption that that 16 bit client id must be unique within the group rather than across groups.
[Jiang] Totally agreed.

5.      In the flex-e group's client interface configuration list, client interface list entries could be keyed either by the client interface name, or the client id.
a.      Again, I would suggest that using the client interface name is the more meaningful identifier for clients.
[Jiang] Earlier we already planned to use "flexe-client-if" as the key to flexe-client-list. Could this resolve your comment?
[RW]
Yes, I think so.  It would be an interface-ref, similar to bonded-phy interface-ref.

However, I think that there is probably a slight difference in semantics:

In the case of the interface-ref for bonded phys, semantically it should probably be "require-instance true" (which is the default behaviour).  I.e. for the flex group configuration to be valid, it makes sense for the referenced bonded-phy interfaces to also exist in the configuration.

But in the case of the interface-ref for client interfaces, I think that it should be "require-instance false".  This is because the flex-e client interface configuration defines the parameters to create the client interface but should not require that the client interface to exist in the configuration at the same time (even if that may often be the case).


b.      Either way, the entries should also indicate the binding to the client interface (by interface-ref - both models seem to do this).
6.      Client interfaces should be modelled as regular interfaces, and use the normal iftype for Ethernet interfaces, i.e. the dubiously named iftype:ethernetCsmacd.  Without using this type regular Ethernet YANG configuration (e.g. as defined in 802.3.2) won't work properly.
a.      I don't think that there should be flex-e specific configuration under the client interface itself, instead, the flex-e specific configuration should be defined as part of the group + client interfaces.
[Jiang] Agreed to bullet a). But I have some doubts whether we can use the normal iftype for Ethernet interfaces directly. As FlexE Client includes only a thin MAC layer, while PHY layer is decoupled into the FlexE PHY, FlexE client management should be simpler than the regular Ethernet YANG configuration, furthermore, it seems to me all the YANG models defined in 802.3 or 802.2 more or less include some PHY configuration which cannot be applied to a FlexE client. Nevertheless, we look forward to seeing more discussions on this topic.
[RW]
>From the rest of the system perspective, a client interface really should look/feel like a regular physical Ethernet interface, and I think that the majority of the 802.3.2 configuration/statistics should apply.  Auto-neg, duplex, speed shouldn't be configurable, but then they can't be configured on most higher speed optical interfaces anyway.  I would have thought that the rest of the module should apply (otherwise this Ethernet configuration would need to be duplicated in another module, which isn't ideal).


But I think that the main issue to resolve is whether Flex-E group configuration is global or scoped to a FlexE group interface..  I can see pros and cons both ways:
1.      Putting the configuration under an FlexE group interface seems like a slightly artificial construct.
2.      However, this does mirror how LAG interfaces are represented (at least in our vendor model), and in some ways FlexE interfaces could be considered to be like an L1 LAG interface.  However, in the LAG case, the LAG interface can forward traffic, where as for FlexE groups, this would not be the case.
3.      There is probably a natural binding between a FlexE group and the client interfaces that closely relates to the parent child relationship between an interface and sub-interface.  E.g. disabling a FlexE group should have the effect of disabling each FlexE client interface.
4.      My overall feeling is that representing the FlexE groups as a type of interface seems like a reasonable configuration model.
[Jiang] Totally agreed.
[RW]
Note, I have made an assumption here that it is reasonable to represent the L1 layer of an interface as an entry in if:interfaces/if:interface.  It is worth noting that not all configuration/state in ietf-interfaces would apply sensibly to an L1 interface representation.  In particular, none of the statistics would seem to apply to the physical layer.


Anyway, hopefully these comments are useful to help the two sets of authors converge towards a common model.  I have other suggestions on the specific models but would suggest solving the big picture issues first.
[Jiang] Very useful indeed, we look forward to your further suggestions on the models.
[RW]
Thanks.  It would also be useful to see comments from other members of the WG, in particular, the authors of the draft-xiaobn-ccamp-flexe-yang-mod-03.

In case it helps, here is the pyang tree output of the structure that I believe is most suitable to represent Flex-E interfaces:

module: ietf-if-flex-e
  augment /if:interfaces/if:interface:
    +--rw flex-e
       +--rw group
          +--rw group-number              uint32
          +--rw more-group-config-here?   string
          +--rw bonded-phy* [name]
          |  +--rw name                           if:interface-ref
          |  +--rw phy-number?                    uint8
          |  +--rw more-bonded-phy-config-here?   string
          +--rw client-interface* [name]
             +--rw name                              if:interface-ref
             +--rw id?                               uint16
             +--rw more-flex-e-client-config-here?   String

I don't know whether phy-number and id should be mandatory.  I.e. always defined, or whether it is feasible that these could be automatically allocated by the device.

Of course, I have excluded any specific configuration options.  I would suggest trying to get agreement on the overall structure (i.e. the shape of the YANG model) first.

The YANG model that this is built from is available at: https://github.com/rgwilton/flex-e-yang/blob/master/ietf-if-flex-e.yang

Regards,
Rob


Regards,
Rob