Re: [netmod] New Version draft-shytyi-netmod-vysm-02.txt as Working Group document.

Dmytro Shytyi <ietf.dmytro@shytyi.net> Thu, 05 September 2019 21:03 UTC

Return-Path: <ietf.dmytro@shytyi.net>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 394A1120B2B for <netmod@ietfa.amsl.com>; Thu, 5 Sep 2019 14:03:57 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.998
X-Spam-Level:
X-Spam-Status: No, score=-1.998 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_NONE=-0.0001, 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 (1024-bit key) header.d=shytyi.net
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 wPnnJ4-hYtzX for <netmod@ietfa.amsl.com>; Thu, 5 Sep 2019 14:03:51 -0700 (PDT)
Received: from sender-of-o52.zoho.eu (sender-of-o52.zoho.eu [31.186.226.248]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1B92A120900 for <netmod@ietf.org>; Thu, 5 Sep 2019 14:03:50 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1567717408; cv=none; d=zohomail.eu; s=zohoarc; b=lYZl1R8fXqvQ+z1/HEupC32/NKKLyAN97oQs8fO7757S+mnUQnzBM0XEoGGUhRHddiNnVkGcJ1KLXiUlnI2PvAmgQfuYkIEx62Q6/4XYTOgCQ2pxmWnhk+ABnrL5Ev+PrfZv+60G+VxuTSX9+7cs6wnLdj2cCbdpdsRzw5APWRA=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.eu; s=zohoarc; t=1567717408; h=Content-Type:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:To:ARC-Authentication-Results; bh=ccBBRGDN2C31I4MiIG/83odE9Zv/KTC26axixUOTN1k=; b=Nr4RYXWuMViIX2ha3PjS0lX0Rkv2ZE1YsCosZRvZ58ZpPihhTTE6B+/hmxOlRwwymN5hz8gUz1QnwPr2o164+HS4FS1XJHpBaUVnRuCW4lCahDd0dLGRrOyGFhAHZXWR+ZlWZ26OCbsfvqinXIMraQkgxfXZp5cBptRvQPjC8rk=
ARC-Authentication-Results: i=1; mx.zohomail.eu; dkim=pass header.i=shytyi.net; spf=pass smtp.mailfrom=ietf.dmytro@shytyi.net; dmarc=pass header.from=<ietf.dmytro@shytyi.net> header.from=<ietf.dmytro@shytyi.net>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1567717408; s=hs; d=shytyi.net; i=ietf.dmytro@shytyi.net; h=Date:From:To:Cc:Message-Id:In-Reply-To:References:Subject:MIME-Version:Content-Type; l=58621; bh=ccBBRGDN2C31I4MiIG/83odE9Zv/KTC26axixUOTN1k=; b=e2qtnR7azoWSSCDIvK5akI2+1vUrrzfi8E47jqo07niyLdDWOvzvSOVrcJ+2/JhR 9FbSmjOr7QX6qsd9uj4dJjyFVDQoEGtDimjOG95nPodUMPmL5ATROd4K5EPrJjnvdOv WozNRiPwAS5RmvQ9U/QqtQ2O15PgZzl0l0v74nPA=
Received: from sender.zoho.eu (172.26.23.79 [172.26.23.79]) by mx.zoho.eu with SMTPS id 1567717407037185.9911442481506; Thu, 5 Sep 2019 23:03:27 +0200 (CEST)
Received: from mail.zoho.eu by mx.zoho.eu with SMTP id 156771740695967.11128071598455; Thu, 5 Sep 2019 23:03:26 +0200 (CEST)
Date: Thu, 05 Sep 2019 23:03:26 +0200
From: Dmytro Shytyi <ietf.dmytro@shytyi.net>
To: "Mahesh Jethanandani" <mjethanandani@gmail.com>
Cc: "Robert Varga" <nite@hq.sk>, "billwu" <bill.wu@huawei.com>, "netmod" <netmod@ietf.org>, "Diego Lopez" <diego.r.lopez@telefonica.com>
Message-Id: <16d033d38e7.bbb2af8a11544.6493791187744876181@shytyi.net>
In-Reply-To: <DD368137-2977-4039-9C3E-F5127EBB0864@gmail.com>
References: <155377227553.1573.8548464832229347361.idtracker@ietfa.amsl.com> <16caabd07ae.de4789c8151923.6368018099125205208@shytyi.net> <16cba30dec2.b91b31ed256364.8160264793634017255@shytyi.net> <16cd3d19305.11aec1852361697.7576623717058940792@shytyi.net> <5219ac80-b607-b4b4-8c77-72950d4c5137@hq.sk> <16cd8798b80.b402ce899813.5192375594519800096@shytyi.net> <16d022a2635.cf0e2e825020.1253681289762507320@shytyi.net> <DD368137-2977-4039-9C3E-F5127EBB0864@gmail.com>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----=_Part_32283_1333223623.1567717406952"
X-Priority: Medium
User-Agent: Zoho Mail
X-Mailer: Zoho Mail
X-ZohoMailClient: External
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/6IbkJ0K-EYRcWYhrRfF95_32ZYI>
Subject: Re: [netmod] New Version draft-shytyi-netmod-vysm-02.txt as Working Group document.
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: Thu, 05 Sep 2019 21:03:57 -0000

[Dmytro]
Hello Mahesh Jethanandani,

Thank you for your comment.

Please find answers inline.


>I find the representation of a service model in this draft for a uCPE as too simple. In reality, on a uCPE, you could be running a Network Service (NS), which is composed of multiple VNFs interconnected together. This service model does not address such a configuration.

[Dmytro]


This service model presented in the draft supports N VMs in the NS and addreses configuration with multiple VMs and switches with plenty of links. It is well tested (with service chained VMs) on equipent from different well known suppliers. The idea to have complex flexible service in the network service orchestrator for uCPE.

in the yang model we have list (marked by pyang with "*") of VMs where the key is name of the vm, thus you may define as much VM as you wish.



Example of 2 VMs that are service chained (swLAN-VM1-swService-VM2-swWAN)



      +--rw vms* [vm]

                      +--rw vm             string

                      +--rw ports* [port]

                      |  +--rw port    string

                      |  +--rw name?   string

                      |  +--rw link?   -> ../../../links/link

                      +--rw ram?           string

                      +--rw cpu?           string

                      +--rw storages* [id]

                      |  +--rw id          string

                      |  +--rw location?   string

                      +--rw day0-config

                         +--rw location?        string

                         +--rw day0-var-path?   string

                         +--rw variable* [name]

                            +--rw name     string

                            +--rw value?   string





So basically  the list "+--rw wms* [vm]" can be represented/"expanded" in this way where the names and number ov vms(N) is set by user:



 >>>>>       +--rw vm1             string

                       |     +--rw ports* [port]

                       |     |  +--rw port    string

                       |     |  +--rw name?   string

                       |     |  +--rw link?   -> ../../../links/link

                       |     +--rw ram?           string

                       |     +--rw cpu?           string

                       |     +--rw storages* [id]

                       |     |  +--rw id          string

                       |     |  +--rw location?   string

                       |     +--rw day0-config

                       |     |  +--rw location?        string

                       |     |  +--rw day0-var-path?   string

                       |     |  +--rw variable* [name]

                       |     |     +--rw name     string

                       |     |     +--rw value?   string

>>>>>        +--rw vm2             string

                       |     +--rw ports* [port]

                       |     |  +--rw port    string

                       |     |  +--rw name?   string

                       |     |  +--rw link?   -> ../../../links/link

                       |     +--rw ram?           string

                       |     +--rw cpu?           string

                       |     +--rw storages* [id]

                       |     |    +--rw id          string

                       |     |  +--rw location?   string

                       |     +--rw day0-config

                       |     |    +--rw location?        string

                       |     |  +--rw day0-var-path?   string

                       |     |  +--rw variable* [name]

                       |     |     +--rw name     string

                       |     |     +--rw value?   string

                        ....

                      |                      

 >>>>>       +--rw vmN             string

                            +--rw ports* [port]

                            |  +--rw port    string

                            |  +--rw name?   string

                            |  +--rw link?   -> ../../../links/link

                            +--rw ram?           string

                            +--rw cpu?           string

                            +--rw storages* [id]

                            |  +--rw id          string

                            |  +--rw location?   string

                            +--rw day0-config

                               +--rw location?        string

                               +--rw day0-var-path?   string

                               +--rw variable* [name]

                                  +--rw name     string

                                  +--rw value?   string



>Besides, how is the configuration of a uCPE device for a VNF different from configuration of a VNF in a provider Network Function Virtualization Infrastructure (NFVI) like OpenStack or VMware VIO?

[Dmytro]


Modern uCPE support netconf. And if you go to the YANG RFC6020 you will find the next statement:

   "YANG is a data modeling language used to model configuration and

   state data manipulated by the Network Configuration Protocol

   (NETCONF), NETCONF remote procedure calls, and NETCONF notifications."

When we talk about Openstack it is YAML, not YANG. 



>And would you not need to enable the service on the provider side to make the services running on the uCPE functional?

[Dmytro]

Indeed, to manage the uCPE located on the client side we need to enable the provider side. The presented model is this actually "sits" in orchestaror that is located on the provider side. In the draft it is mentioned that it is "network service yang model- NSYM" that is in the orchestrator (according to the rfc8199).



>There is significant amount of work that has been done in ETSI on the configuration and management of VNF and NS. Authors should spend some time going through the specifications specified by ETSI to make sure they are not re-specifying work that has been done there, and instead see how they could augment the work that has already been defined.

[Dmytro]


The uCPE management mechanism(in the service provider network service orchestrator)  may involve not only YANG modules but also the speficic logic written in programming languages. The proposed organisation of yang model is a solution that provides the best fit for combination (YANG modules + specific logic written in python for example )  to manage different existing NFVIs in the uCPE (by the orchestrator).



In the case of uCPE, the mapping (w/wo additinal logic) of "variables " between service yang modules (in the orchestrator) and NETCONF payload(that is sent to the uCPE) will be more complex (requires additional transformations in the logic) with generic approach, then the solution presented in the ID, that is tailored to the uCPE.Therefore I find the proposed solution as a stadalone generic approach to manage multiple vendor uCPE that appears to be a particular case tailored for uCPE NFVIs that may be not nesseraly follows RFC8345. I would be pleased if you could comment this.





>Authors can start by going through IFA010,  IFA011, IFA014, and its YANG specification in SOL006.

[Dmytro]


I would like to draw your attention that these documents seems to be directed to the generic solution including also cloud environment, that brings a lot of complexity. There is some difference between cloud and client site.

For example, case for VNFD, in the cloud we need to have flavours, different VDUs For VNFD, to change the VM capacities according to the load as we have the extendible infrastructure.

The ucpe has limited resources, not as a cloud infrastructure in the data center.

For example, in the case of NSD: NSD includes the VLD that defines Virtual Links. But in the uCPE case you may have virtual links + virtual switches that are not part of the NSD defined in the ETSI.

For example, i'm not avare of VNFD that brings option of (0day configuration)/bootstrap for VNF. Moreover in the proposed model there is a possibility to set variables that will be substituted in the ".iso" bootstrap image (ex.cloudinit) that is assigned to the VM in the uCPE.

Thus the generic solution of ETSI leads to more complex implementations of the code that is responsible for mapping between YANG/XML when the solution proposed in the Inernet Draft is tailored to the uCPE use-case and should bring the simplisity when developping the mapping logic and inroduce features that are not presented by ETSI.

The Internet Draft also defines the term uCPE that is not defined at IETF yet.




>>On Sep 5, 2019, at 9:02 AM, Dmytro Shytyi <mailto:ietf.dmytro@shytyi.net> wrote:

>>Dear All,

>>Please find the updated version of the VYSM Internet Draft(v0.2).

>>The new version of draft introduces an extension of the yang model defined in previous version. From now the VYSM supports (0day configuration)/(bootstrap) of the VNFs hosted in the uCPE.

>>With 0day configuration in the uCPE we can setup minimal required configuration of vRouter (such as ip address, hostname,etc..), SD-WAN (address of the SD-WAN manager, dhcp activation, etc..), etc..

>>Details:

>>A new version of I-D, draft-shytyi-netmod-vysm-02.txt\A0

>>has been successfully submitted by Dmytro Shytyi and posted to the\A0

>>IETF repository.\A0

>>Name:\A0\A0\A0\A0\A0\A0\A0\A0draft-shytyi-netmod-vysm\A0

>>Revision:\A0\A0\A0\A002\A0

>>Title:\A0\A0\A0\A0\A0\A0\A0\A0Virtualization YANG Servise Model (VYSM)\A0

>>Document date:\A0\A0\A0\A02019-09-04\A0

>>Group:\A0\A0\A0\A0\A0\A0\A0\A0Individual Submission\A0

>>Pages:\A0\A0\A0\A0\A0\A0\A0\A010\A0

>>URL: https://www.ietf.org/internet-drafts/draft-shytyi-netmod-vysm-02.txt\A0

>>Status: https://datatracker.ietf.org/doc/draft-shytyi-netmod-vysm/\A0

>>Htmlized: https://tools.ietf.org/html/draft-shytyi-netmod-vysm-02\A0

>>Htmlized: https://datatracker.ietf.org/doc/html/draft-shytyi-netmod-vysm\A0

>>Diff: https://www.ietf.org/rfcdiff?url2=draft-shytyi-netmod-vysm-02\A0

>>Abstract:\A0

>>

>>This document provides a specification of the Virtual Network\A0

>>

>>Functions YANG Service Model (VYSM). The VNF YANG Service Model\A0

>>

>>serves as a base framework for managing an universal Customer-\A0

>>

>>Premises Equipment (uCPE) NFV subsystem from the Orchestrator.\A0

>>>>

>>>># # # : Dmytro Shytyi [mailto:mailto:ietf.dmytro@shytyi.net]

>>>># # # # : 2019# 8# 28#\A0 21:46

>>>># # # : Robert Varga <mailto:nite@hq.sk>; Qin Wu <mailto:bill.wu@huawei.com>

>>>># # : netmod <mailto:netmod@ietf.org>

>>>># # : Re: [netmod] New Version draft-shytyi-netmod-vysm-02.txt as Working Group document.

>>>>

>>>>Hello,

>>>>

>>>>Please find comments inline.

>>>>>On 27/08/2019 18:03, Dmytro Shytyi wrote:

>>>>>> Dear All,

>>>>>>\A0

>>>>>> I am one of the authors of ID VYSM and I would like to draw your

>>>>>> attention to the evolution of the

>>>>>> draft\A0https://http://www.ietf.org/internet-drafts/draft-shytyi-netmod-vysm-01.txt.

>>>>>> Recently we produced (but did not submitted yet) a new version of ID

>>>>>> (02) and I beleive it fits the netmod working group.

>>>>>>\A0

>>>>>> We would be gratefull if you could suggest if the new version(02) of the

>>>>>> document\A0 could become an official work item of the WG?

>>>>>> \A0 \A0 \A0 If yes, could you please indicate which modifications must be done

>>>>>> in the document before submition.

>>>>>\A0

>>>>>Hmm, looking over the model, it would seem there is quite a bit of

>>>>>overlap with RFC8345 -- to the point I believe the model could be

>>>>>formulated in terms of RFC8345 specialization:

>>>>First of all I would like to thank you for this comment.\A0

>>>>-Dmytro

>>>>>virtualization -> networks/network

>>>>>\A0

>>>>>device/links/interfaces/switches/vms are probably a mix of

>>>>>node/termmination-point/link extensions with conjunction with

>>>>>supporting-{topology,node,link}.

>>>>I can imagine mapping:

>>>>virtualization (ID) -> networks/network (RFC 8345)

>>>>links (ID)- >link;(RFC 8345)

>>>>ports (ID)-> termination points;(RFC 8345)

>>>>But still.. it seems here we have to create extension of the model proposed in RFC 8345.

>>>>Precisely for node (RFC 8345) we may add types (switches, vms) and futer add leafs /listsfor type if required (ex: #RAM,#vCPUs and other leafs for VMs)

>>>>-Dmytro

>>>>>How would the draft relate to RFC8345? Should it perhaps call out it is

>>>>>a different take on the similar problem, specialized to a particular

>>>>>use-case?

>>>>One can suggest that\A0 in the RFC8345 Figure 1, the block "service Topology model" can include the proposed in the draft network service descriptor with appropriate modification of mapping according to the RFC8345..

>>>>

>>>>Meanwhile I find that the proposed solution(ID) try to solve the problem descibed below:

>>>>

>>>>The uCPE management mechanism may involve not only YANG modules but\A0 also the speficif logic written in programming languages. The proposed organisation of yang model is an attempt to find the best fit\A0 for combination (YANG modules + specific logic written in python for example )\A0 to manage different existing NFVIs in the uCPE (by the orchestrator).

>>>>

>>>>In the case of uCPE, the mapping (w/wo additinal logic) of "variables " between service yang modules (in the orchestrator) and NETCONF payload(that is sent to the uCPE) will be more complex (requires additional transformations in the logic) with generic approach, then the solution presented in the ID, that is tailored to the uCPE.\A0

>>>>

>>>>Therefore I find the proposed solution as a stadalone generic approach to manage multiple vendor uCPE that appears to be a particular case tailored for uCPE NFVIs that may be not nesseraly follows RFC8345. I would be pleased if you could comment this.

>>>>

>>>>-Dmytro

>>>>>Regards,

>>>>>Robert (with RFC8345 co-author hat on)

>>>>>+1, in addition, I am wondering whether this is something related to overlay topology model, if yes, how it is different from DC Fabric topology model defined in RFC8542?\A0

>>>>>-Qin\A0

>>>>Thank you for your comment. The RFC8542 condisers PODs in the DC network. uCPE is located on the customer site. if we consider that uCPE is A POD (with links and nodes like VMs and swithces) then in the RFC8542 describes different PODs in the network that are interconnected with links. The yang model proposed in the ID ifocuses only on the uCPE interiour network service, not the interconnection between the uCPEs. Aslo, I explained the difference about extension neded for type of nodes,vms leafs and furter complexity in the mapping logic in the reponce to Robert.

>>>>-Dmytro

>>>>

>>>>[Qin]:So you focus on interconnection between local vPE and remote vPE?

>>>[Dmytro]:

>>>Thank you for this question. It seems that the next version of draft should include the explanation of the uCPE interiour network service.

>>>Example: We can have multiple VMs instantiated in the uCPE (vFW,vRouter/vCPE,SD-WAN). With support of links and swithes\A0 VMs may create a service chains.

>>>Example of service chains:

>>>1)WAN--vRouter(vCPE)-link-uCPEvSW -link2-vFirewall-LAN

>>>2)WAN--SDWAN--vFirewall--LAN

>>>>It is not clear whether we should distinguish VM from switch. In my understanding, Upon VNF is instantiated, there is no difference between virtual and physical worlds.

>>>[Dmytro]:

>>>The VM/VNF in the uCPE could be a vROuter or Vfirewall or an SD-WAN that is not a default part of virtual network resources of the uCPE (chapter 3 in the ID).

>>>The switch (ex. Open vSwith) in the uCPE is a default part of uCPE network virtual resources (chapter 3 in the ID).

>>>Thus we need to distingish swithes and VNFs to not to mix uCPE network virtual resources and VNFs.

>>>Another reason why the destingishing is required: because VM and SW have different device-attributes. SW does not require VNFD attributtes.

>>>If we do not distinguish nodes, and only extend the grouping "device attributes" for required attributes the switch will have the properties that are\A0 unused leafs which represent the VM-device-attributes.

>>>>VNF lifecycle management is separated from topology construction, wrong?

>>>[Dmytro]:

>>>a) In case of the NFVIs uCPE the same High Level interface allows to configure both topology construction and VM lifecycle management in the same transaction.

>>>b) We can not activate Network Service Descriptor without consituent VM node information. At the moment of NSD activation we already have to set the VM node information such as VM capabilities that can be created (previosly)/(at the moment of configuration of NSD) but have to be a part of the network service descriptor at the moment of activation.

>>>[Dmytro]

>>>The Internet Draft also defines the term uCPE that is not defined at IETF yet.

>>>_______________________________________________

>>>netmod mailing list

>>>mailto:netmod@ietf.org

>>>https://www.ietf.org/mailman/listinfo/netmod

>>