Re: [CCAMP] Discussion on Flex-E YANG model structure [was  RE:CCAMPDigest, Vol 139, Issue 5]

<niu.xiaobing@zte.com.cn> Tue, 14 January 2020 13:15 UTC

Return-Path: <niu.xiaobing@zte.com.cn>
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 42E38120091 for <ccamp@ietfa.amsl.com>; Tue, 14 Jan 2020 05:15:17 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.197
X-Spam-Level:
X-Spam-Status: No, score=-4.197 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 NoitPFFB9Hpj for <ccamp@ietfa.amsl.com>; Tue, 14 Jan 2020 05:15:12 -0800 (PST)
Received: from mxhk.zte.com.cn (mxhk.zte.com.cn [63.217.80.70]) (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 397BE120090 for <ccamp@ietf.org>; Tue, 14 Jan 2020 05:15:11 -0800 (PST)
Received: from mse-fl2.zte.com.cn (unknown [10.30.14.239]) by Forcepoint Email with ESMTPS id 91964DA6AF970FC5B9CD; Tue, 14 Jan 2020 21:15:09 +0800 (CST)
Received: from kjyxapp02.zte.com.cn ([10.30.12.201]) by mse-fl2.zte.com.cn with SMTP id 00EDEoQG034371; Tue, 14 Jan 2020 21:14:50 +0800 (GMT-8) (envelope-from niu.xiaobing@zte.com.cn)
Received: from mapi (kjyxapp01[null]) by mapi (Zmail) with MAPI id mid17; Tue, 14 Jan 2020 21:15:05 +0800 (CST)
Date: Tue, 14 Jan 2020 21:15:05 +0800
X-Zmail-TransId: 2b035e1dbed9cc70a7d1
X-Mailer: Zmail v1.0
Message-ID: <202001142115051345797@zte.com.cn>
In-Reply-To: <3B0A1BED22CAD649A1B3E97BE5DDD68BD383D664@dggeml532-mbs.china.huawei.com>
References: 202001031836012280585@zte.com.cn, 3B0A1BED22CAD649A1B3E97BE5DDD68BD383D664@dggeml532-mbs.china.huawei.com
Mime-Version: 1.0
From: niu.xiaobing@zte.com.cn
To: jiangyuanlong@huawei.com
Cc: rwilton@cisco.com, ccamp@ietf.org
Content-Type: multipart/mixed; boundary="=====_001_next====="
X-MAIL: mse-fl2.zte.com.cn 00EDEoQG034371
Archived-At: <https://mailarchive.ietf.org/arch/msg/ccamp/UkRpdCzRdwSNLc328KDC0LAyP0g>
Subject: Re: [CCAMP] Discussion on Flex-E YANG model structure [was  RE:CCAMPDigest, Vol 139, Issue 5]
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: Tue, 14 Jan 2020 13:15:17 -0000

Hi Yuanlong, Rob


Please see the sentences with [Xb03].


B.R.


Xiaobing Niu







原始邮件



发件人:Jiangyuanlong <jiangyuanlong@huawei.com>
收件人:Rob Wilton (rwilton) <rwilton@cisco.com>;牛小兵10019881;
抄送人:ccamp@ietf.org <ccamp@ietf.org>;
日 期 :2020年01月10日 20:41
主 题 :RE: [CCAMP]  Discussion on Flex-E YANG model structure [was  RE:CCAMPDigest, Vol 139, Issue 5]




Rob,


 


Please see my comments inline.


 


Cheers,


Yuanlong


 



From: Rob Wilton
 (rwilton) [mailto:rwilton@cisco.com] 
Sent: Wednesday, January 08, 2020 10:24 PM
To: Jiangyuanlong <jiangyuanlong@huawei.com>; niu.xiaobing@zte.com.cn
Cc: ccamp@ietf.org
Subject: RE: [CCAMP] Discussion on Flex-E YANG model structure [was  RE:CCAMPDigest, Vol 139, Issue 5]




 


Hi Yuanlong,


 


I think that it is a question of what is expected when the configuration is validated:


  E.g. (1) does the device allow a management agent to configure a FlexE client
 interface under the /interfaces/interface list without a corresponding entry under the FlexE group client interfaces?


[Jiang] I think “configure a FlexE client interface under the /interfaces/interface list” can be allowed if the interface is just configured as a
 traditional MAC interface (i.e., without any FlexE attributes), such as its MAC address.


 


          (2) does the device allow a management agent to configure a FlexE client
 interface under a FlexE group without a corresponding entry under the /interfaces/interface/ list?


 


I think that doing (2) is fine (as per my previous email).  But my questioning
 was really whether (1) should be allowed or not, but most importantly whatever is decided, it would be good to document the expected behavior.


Thanks,



Rob


 


 


 




From: Jiangyuanlong <jiangyuanlong@huawei.com>
Sent: 08 January 2020 12:39
To: Rob Wilton (rwilton) <rwilton@cisco.com>;niu.xiaobing@zte.com.cn
Cc: ccamp@ietf.org
Subject: RE: [CCAMP] Discussion on Flex-E YANG model structure [was  RE:CCAMPDigest, Vol 139, Issue 5]




 


Robert,


 


Thanks for your in-depth comments. I think they touched an important issue, that is the instantiation relationship between a FlexE Group interface
 (including FlexE client list as a container) and the actual client interfaces (each interface is referenced by an if:interface-ref in our models).


My opinion is,  the creation of a FlexE Group interface and the creation of client interfaces are decoupled processes, as interface-ref only needs
 to reference to an interface name. Thus all options can be supported.


Or did I miss something?


 


Best regards,


Yuanlong


 



From: Rob Wilton (rwilton) [mailto:rwilton@cisco.com]
Sent: Monday, January 06, 2020 8:19 PM
To: Jiangyuanlong <jiangyuanlong@huawei.com>;niu.xiaobing@zte.com.cn
Cc: ccamp@ietf.org
Subject: RE: [CCAMP] Discussion on Flex-E YANG model structure [was  RE:CCAMPDigest, Vol 139, Issue 5]




 


Please see [RW] inline for my comments:


 



From: CCAMP <ccamp-bounces@ietf.org>On Behalf Of Jiangyuanlong
Sent: 06 January 2020 02:20
To: niu.xiaobing@zte.com.cn
Cc: ccamp@ietf.org
Subject: Re: [CCAMP] Discussion on Flex-E YANG model structure [was  RE:CCAMPDigest, Vol 139, Issue 5]




 


Xiaobing,


 


Please see my comments inline.


 


Thanks,


Yuanlong


 


From: CCAMP [mailto:ccamp-bounces@ietf.org]On Behalf Of niu.xiaobing@zte.com.cn
Sent: Friday, January 03, 2020 6:36 PM
To: ccamp-request@ietf.org
Cc: ccamp@ietf.org
Subject: Re: [CCAMP] Discussion on Flex-E YANG model structure [was  RE:CCAMPDigest, Vol 139, Issue 5]


 


hi,  yuanlong


Please refer to comments entitled with [Xiaobing]


 


On the contrary, the description in Section 5 of OIF FlexE 2.0 is more specific: "The FlexE Shim is the layer that maps or demaps the FlexE Clients carried over a FlexE Group" and "Each
 FlexE Client has its own separate MAC, Reconciliation Sublayer, and xMII above the FlexE Shim which operate at the FlexE Client rate." The relationship of a FlexE Client, FlexE Shim and its FlexE Group is rather fixed according to this description.


[Xiaobing] In my opinion, those descriptions exactly support the flexibility between FlexE clients and a FlexE group.


[Jiang] Yes, it should be flexible, but not in the way“they (FlexE Clients) can stand alone before configured to a FlexE group”.


In Rob’s YANG module, the modeling of“client-interface” (similar to flexe-client-list in
 draft-jiang) actually has an attribute “name if:interface-ref”,
 which can reference to any internal interface (as described in 7.2.1, unclear what parameter is to be managed yet) or any Ethernet PHY (as described in 7.2.2).


Therefore, it provides the flexibility to support any type of FlexE Client bit-stream (i.e., 64B/66B encoded bit-stream).


 


Otherwise, if FlexE Client is modeled as standalone and could be associated with different FlexE Groups (assuming there is such a support in the data plane), we can hardly configure
 anything when its FlexE Group is undetermined, since:


[Xiaobing] The configuration of a FlexE client and group can be performed at different time. Just image you first establish a FlexE group without carry any FlexE client, and then configure
 some FlexE clients over that group.


[Jiang] Totally agreed that we can create a FlexE Group first, and then configure FlexE Clients over that group. My point was“not to create FlexE Clients first, and then associate with a FlexE Group”.

[RW]

I also completely agree that FlexE groups can be configured first, and then Flex-E client interfaces can be subsequently created, deleted, or have their bandwidth modified
 after the group exists.  I think that this is one of the core concepts of the flexible ethernet architecture.

In terms of creating client interfaces without flex-e groups, that isn’t so obvious to me.  A flex-e client interface has two key parts of configuration:


(i)                A client interface entry under a Flex-e group.  I see that this list entry is the trigger that forces the creation of a flex-e client interface
 in the system.


(ii)              An interface entry under /interfaces/interface.  I see that this is really the container for all configuration associated with a flex-e
 client interface, but doesn’t cause its existence.

As I see it, there are four choices as to how to handle this co-dependent configuration:


(1)   Require both the /interfaces/interface list entry to exist and the /flex-e/group/client-interface list entry to exist


(2)   Allow the /interfaces/interface list entry to be optional when the /flex-e/group/client-interface list entry exists


(3)   Allow the /flex-e/group/client-interface list entry to be optional when the /interfaces/interface list entry exists


(4)   Allow both list entries to be optional, i.e. either can exist without the other

Also considering the NDMA architecture (RFC 8342), there is a logical split between what exists in configuration (i.e. intended/running datastores) vs what exists operationally
 in the system and is reflected in the operational datastore.

For me, I think that option (2) represents the cleanest model:


-         the existence of /flex-e/group/client-interface is the trigger for creating the client interface, and when that configuration is applied in the
 system, then I would expect the corresponding client interface to exist in the system and be represented by an entry in /interfaces/interface in the operational datastore.


-         an entry for the client interface only has to exist in /interfaces/interface in the running datastore if some interface configuration has been
 provided by the operator.

However, I also think that it may be okay to allow some flexibility if a client configures an entry in /interfaces/interface without a corresponding entry in the /flex-e/group/client-interface
 list:


-         some devices may reject this configuration as being invalid


-         other devices could allow this configuration to be accepted into the running configuration datastore, but not create the interface in operational. 
 I.e. this is handled equivalently to a missing linecard (as per section 5.3.2 of RFC 8342).

But whatever is decided by the WG, it would be good to document the expected behavior in the model.




[Xb03] For the four choices, I prefer to select (1).  It gives more check in consistency between both entries.

           And considering the NDMA architecutre,   it's better IMHO to consider the entry in /interfaces/interface as configuration data and the entry in /flex-e/group/client-interface  as operational data.




Thanks,
Rob

 


BR


Xiaobing Niu