OASIS Topology and Orchestration Specification for Cloud Applications (TOSCA) TC

 View Only
Expand all | Collapse all

InstantiationLevel discussion paper

  • 1.  InstantiationLevel discussion paper

    Posted 03-19-2018 17:01
    Hello all,   As already discussed,  there is no clear equivalent to the NFV instantiation level in the TOSCA Simple Profile in YAML (i.e. a property that indicates how many instances of each node template should be instantiated at deployment of the service template). I think this is a candidate feature for 1.3.   I have uploaded a discussion paper related to this issue. The intention of the paper is not to propose a solution for 1.3, but something that ETSI NFV could use in the meantime, using the mechanisms available in YAML 1.1 or 1.2.   As the instantiationLevel is a complex type and there is a need to pass information from one node template to another, the grammar becomes unclear. I am looking for advice if this may be a base for a solution.   Claude and Matt, is it possible to add this discussion to the agenda for tomorrow’s meeting?   TOSCA_InstantiationLevel_Discussion.docx   Best regards, Arturo      


  • 2.  ??: [tosca] InstantiationLevel discussion paper

    Posted 03-20-2018 01:25
    å??æ??ä¸?ä¸?ç?±ç«?ä¿¡ç??æ??æ¡?ã?? å??å§?é?®ä»¶ å??件人ï¼? ArturoMartinDeNicolas <arturo.martin-de-nicolas@ericsson.com> æ?¶ä»¶äººï¼? claude.noshpitz@att.com <claude.noshpitz@att.com> Matthew Rutkowski(mrutkows@us.ibm.com) <mrutkows@us.ibm.com> Chris Lauwers <lauwers@ubicity.com> Lishitao <lishitao@huawei.com> Priya T G <priya.g@netcracker.com> Nguyenphu, Thinh (Nokia - US/Irving)(thinh.nguyenphu@nokia.com) <thinh.nguyenphu@nokia.com> tosca@lists.oasis-open.org <tosca@lists.oasis-open.org> æ??é??人ï¼? Calin Curescu <calin.curescu@ericsson.com> æ?¥ æ?? ï¼? 2018å¹´03æ??20æ?¥ 01:01 主 é¢? ï¼? [tosca] InstantiationLevel discussion paper Hello all,   As already discussed,  there is no clear equivalent to the NFV instantiation level in the TOSCA Simple Profile in YAML (i.e. a property that indicates how many instances of each node template should be instantiated at deployment of the  service template). I think this is a candidate feature for 1.3.   I have uploaded a discussion paper related to this issue. The intention of the paper is not to propose a solution for 1.3, but something that ETSI NFV could use in the meantime, using the mechanisms available in YAML 1.1 or 1.2.   As the instantiationLevel is a complex type and there is a need to pass information from one node template to another, the grammar becomes unclear. I am looking for advice if this may be a base for a solution.   Claude and Matt, is it possible to add this discussion to the agenda for tomorrow ??s meeting?   TOSCA_InstantiationLevel_Discussion.docx   Best regards, Arturo      


  • 3.  ??: [tosca] ??: [tosca] InstantiationLevel discussion paper

    Posted 03-20-2018 01:50
    Hi  all      Sorry to trouble you.   I made a mistake and send a wrong mail to all of you,      Do we have the TOSCA NFV group meeting this week and discuss this proposel?      Thanks. BR Maopeng å??å§?é?®ä»¶ å??件人ï¼? å¼ è??é¹?10030173 æ?¶ä»¶äººï¼? arturo.martin-de-nicolas@ericsson.com <arturo.martin-de-nicolas@ericsson.com> æ??é??人ï¼? claude.noshpitz@att.com <claude.noshpitz@att.com> mrutkows@us.ibm.com <mrutkows@us.ibm.com> lauwers@ubicity.com <lauwers@ubicity.com> lishitao@huawei.com <lishitao@huawei.com> priya.g@netcracker.com <priya.g@netcracker.com> thinh.nguyenphu@nokia.com <thinh.nguyenphu@nokia.com> tosca@lists.oasis-open.org <tosca@lists.oasis-open.org> calin.curescu@ericsson.com <calin.curescu@ericsson.com> æ?¥ æ?? ï¼? 2018å¹´03æ??20æ?¥ 09:24 主 é¢? ï¼? [tosca] ç­?å¤?: [tosca] InstantiationLevel discussion paper --------------------------------------------------------------------- To unsubscribe from this mail list, you must leave the OASIS TC that  generates this mail.  Follow this link to all your TCs in OASIS at: https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php  å??æ??ä¸?ä¸?ç?±ç«?ä¿¡ç??æ??æ¡?ã?? å??件人ï¼? ArturoMartinDeNicolas <arturo.martin-de-nicolas@ericsson.com> æ?¶ä»¶äººï¼? claude.noshpitz@att.com <claude.noshpitz@att.com> Matthew Rutkowski(mrutkows@us.ibm.com) <mrutkows@us.ibm.com> Chris Lauwers <lauwers@ubicity.com> Lishitao <lishitao@huawei.com> Priya T G <priya.g@netcracker.com> Nguyenphu, Thinh (Nokia - US/Irving)(thinh.nguyenphu@nokia.com) <thinh.nguyenphu@nokia.com> tosca@lists.oasis-open.org <tosca@lists.oasis-open.org> æ??é??人ï¼? Calin Curescu <calin.curescu@ericsson.com> æ?¥ æ?? ï¼? 2018å¹´03æ??20æ?¥ 01:01 主 é¢? ï¼? [tosca] InstantiationLevel discussion paper Hello all,   As already discussed,  there is no clear equivalent to the NFV instantiation level in the TOSCA Simple Profile in YAML (i.e. a property that indicates how many instances of each node template should be instantiated at deployment of the  service template). I think this is a candidate feature for 1.3.   I have uploaded a discussion paper related to this issue. The intention of the paper is not to propose a solution for 1.3, but something that ETSI NFV could use in the meantime, using the mechanisms available in YAML 1.1 or 1.2.   As the instantiationLevel is a complex type and there is a need to pass information from one node template to another, the grammar becomes unclear. I am looking for advice if this may be a base for a solution.   Claude and Matt, is it possible to add this discussion to the agenda for tomorrow ??s meeting?   TOSCA_InstantiationLevel_Discussion.docx   Best regards, Arturo      


  • 4.  ??: [tosca] ??: [tosca] InstantiationLevel discussion paper

    Posted 03-20-2018 02:12




    I think the suggestion is to discuss in this week Simple yaml adhoc call.

     
    ??? : zhang.maopeng1@zte.com.cn [mailto:zhang.maopeng1@zte.com.cn]

    ???? : 2018 ? 3 ? 20 ?
    9:49
    ??? : Lishitao <lishitao@huawei.com>
    ?? : arturo.martin-de-nicolas@ericsson.com; claude.noshpitz@att.com; mrutkows@us.ibm.com; lauwers@ubicity.com; priya.g@netcracker.com; thinh.nguyenphu@nokia.com; tosca@lists.oasis-open.org; calin.curescu@ericsson.com
    ?? : ?? : [tosca]
    ?? : [tosca] InstantiationLevel discussion paper
     

    Hi  all
     
         Sorry to trouble you.  I made a mistake and send a wrong mail to all of you,
         Do we have the TOSCA NFV group meeting this week and discuss this proposel?
         Thanks.
     
    BR
    Maopeng



    ????




    ???: ??? 10030173


    ???: arturo.martin-de-nicolas@ericsson.com < arturo.martin-de-nicolas@ericsson.com >


    ???: claude.noshpitz@att.com < claude.noshpitz@att.com > mrutkows@us.ibm.com
    < mrutkows@us.ibm.com > lauwers@ubicity.com < lauwers@ubicity.com > lishitao@huawei.com < lishitao@huawei.com > priya.g@netcracker.com
    < priya.g@netcracker.com > thinh.nguyenphu@nokia.com < thinh.nguyenphu@nokia.com > tosca@lists.oasis-open.org
    < tosca@lists.oasis-open.org > calin.curescu@ericsson.com < calin.curescu@ericsson.com >


    ? ? : 2018 ? 03 ? 20 ? 09:24


    ? ? : [tosca]
    ?? : [tosca] InstantiationLevel discussion paper





    ---------------------------------------------------------------------
    To unsubscribe from this mail list, you must leave the OASIS TC that 
    generates this mail.  Follow this link to all your TCs in OASIS at:
    https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php  

    ???????????
     
     
     
     
     







    ???: ArturoMartinDeNicolas < arturo.martin-de-nicolas@ericsson.com >


    ???: claude.noshpitz@att.com < claude.noshpitz@att.com >Matthew
    Rutkowski( mrutkows@us.ibm.com ) < mrutkows@us.ibm.com >Chris Lauwers < lauwers@ubicity.com >Lishitao < lishitao@huawei.com >Priya
    T G < priya.g@netcracker.com >Nguyenphu, Thinh (Nokia - US/Irving)( thinh.nguyenphu@nokia.com ) < thinh.nguyenphu@nokia.com > tosca@lists.oasis-open.org
    < tosca@lists.oasis-open.org >


    ???: Calin Curescu < calin.curescu@ericsson.com >


    ? ? : 2018 ? 03 ? 20 ? 01:01


    ? ? : [tosca] InstantiationLevel discussion paper





    Hello all,
     
    As already discussed,  there is no clear equivalent to the NFV instantiation level in the TOSCA Simple Profile in YAML (i.e. a property that indicates how many
    instances of each node template should be instantiated at deployment of the  service template). I think this is a candidate feature for 1.3.
     
    I have uploaded a discussion paper related to this issue. The intention of the paper is not to propose a solution for 1.3, but something that ETSI NFV could use
    in the meantime, using the mechanisms available in YAML 1.1 or 1.2.
     
    As the instantiationLevel is a complex type and there is a need to pass information from one node template to another, the grammar becomes unclear. I am looking
    for advice if this may be a base for a solution.
     
    Claude and Matt, is it possible to add this discussion to the agenda for tomorrow’s meeting?
     
    TOSCA_InstantiationLevel_Discussion.docx
     
    Best regards,
    Arturo
     
     
     







     







  • 5.  RE: InstantiationLevel discussion paper

    Posted 03-23-2018 18:12
    Hi Arturo,   Thanks for putting this together. We’ll use it as the basis for further discussion.   Comments in-line:   From: Arturo Martin De Nicolas [mailto:arturo.martin-de-nicolas@ericsson.com] Sent: Monday, March 19, 2018 10:01 AM To: claude.noshpitz@att.com; Matthew Rutkowski (mrutkows@us.ibm.com) <mrutkows@us.ibm.com>; Chris Lauwers <lauwers@ubicity.com>; Lishitao <lishitao@huawei.com>; Priya T G <priya.g@netcracker.com>; Nguyenphu, Thinh (Nokia - US/Irving) (thinh.nguyenphu@nokia.com) <thinh.nguyenphu@nokia.com>; tosca@lists.oasis-open.org Cc: Calin Curescu <calin.curescu@ericsson.com> Subject: InstantiationLevel discussion paper   Hello all,   As already discussed,  there is no clear equivalent to the NFV instantiation level in the TOSCA Simple Profile in YAML (i.e. a property that indicates how many instances of each node template should be instantiated at deployment of the service template). I think this is a candidate feature for 1.3.   Yes, there is currently no language support for allowing the same node template to be instantiated multiple times. Your proposal circumvents this by making it the responsibility of the “create” operation to create multiple instances (based on the instantiation level data structure). While this will work, it means that the orchestrator (and any ongoing operational management systems) has no knowledge of the individual instances.   I fully support your suggestion that we should address this in Version 1.3. You have previously proposed to support the ‘occurrences’ keyname in node templates. This is likely the correct starting point, but we need to think through the implications on the rest of the topology template. Specifically:   ·          If node template A supports multiple occurrences, and node template B supports multiple occurrences, and we have a relationship between A and B, what is the desired cardinality of the relationship between A and B? Full mesh from all instances of A to all instances of B? Single relationship between one instance of A and one instance of B? What if A and B don’t have the same number of occurrences? We need to document the various use cases and then decide which grammar is required to create those use cases. ·          If node template A supports multiple occurrences, and some of A’s properties are initialized using get_input statements, how do we specify that a list of values must be provided for each named input? How do we specify which value in that list goes to which instance of A? ·          If node template A supports multiple occurrences, and node template B uses a { get_property, [A, <property_of_A> ] }, then which specific instance of A will be used in the corresponding property value of B? ·          If node template A supports multiple occurrences, and node template A is “realized” through substitution mapping, do we need any extensions to the substitution _mapping grammar to accommodate this?   I’m sure there are other potential issues, but we can start with these.   I have uploaded a discussion paper related to this issue. The intention of the paper is not to propose a solution for 1.3, but something that ETSI NFV could use in the meantime, using the mechanisms available in YAML 1.1 or 1.2.   One of the concerns you point out is that, independent of multiple occurrences, the get_property syntax can get cumbersome when complex data types are used. I’m not sure that this is necessarily a problem, but I agree that we need to do a better job of clarifying what the appropriate syntax is for various scenarios that involve list, map, or complex data. Specifically:   ·          For properties of type list, how do we specify the index of a specific entry in the list? ·          For properties of type map, how do we specify the entry that corresponds to a specific key value ·          For multiple instances of a requirement, how do we specify the index of a specific requirement instance in the list ·          It is currently not possible to use get_property to retrieve property values of relationships   As the instantiationLevel is a complex type and there is a need to pass information from one node template to another, the grammar becomes unclear. I am looking for advice if this may be a base for a solution.   The mechanism for passing information from one node template to another is through the ‘substitution_mapping’ grammar. I agree, that this grammar can get confusing, since in the v1.2 spec we’re overloading this grammar for two completely different purposes:   1.        Mapping : specify how properties, attributes, capabilities, requirements, and interfaces from one node template are mapped to corresponding entities in a substituting service template. 2.        Matching : when the orchestrator finds multiple service templates that can be used to substitute a node template, how does the orchestrator select the best match?   The examples in Chapter 14 do not properly highlight these two purposes. I strongly believe we need to more clearly separate them. In my opinion, substitution mapping grammar should be used exclusively to specify the intended mappings. Different grammar should then be used to drive matching. Since we use node filters in other parts of the spec for similar purposes, I suggest we investigate the use of node filters to guide matching decisions when multiple possible substituting template are found.   Claude and Matt, is it possible to add this discussion to the agenda for tomorrow’s meeting?   TOSCA_InstantiationLevel_Discussion.docx   Best regards, Arturo     Chris  


  • 6.  ??: InstantiationLevel discussion paper

    Posted 03-26-2018 02:22
    Hi Chris and Arturo   I think Chris has pointed out some interesting and important issues for the multiple instances design. I agree we need to take this as one of the high priority feature to be support in v1.3.   Regards shitao   ??? : Chris Lauwers [mailto:lauwers@ubicity.com] ???? : 2018 ? 3 ? 24 ? 2:12 ??? : Arturo Martin De Nicolas <arturo.martin-de-nicolas@ericsson.com>; claude.noshpitz@att.com; Matthew Rutkowski (mrutkows@us.ibm.com) <mrutkows@us.ibm.com>; Lishitao <lishitao@huawei.com>; Priya T G <priya.g@netcracker.com>; Nguyenphu, Thinh (Nokia - US/Irving) (thinh.nguyenphu@nokia.com) <thinh.nguyenphu@nokia.com>; tosca@lists.oasis-open.org ?? : Calin Curescu <calin.curescu@ericsson.com> ?? : RE: InstantiationLevel discussion paper   Hi Arturo,   Thanks for putting this together. We’ll use it as the basis for further discussion.   Comments in-line:   From: Arturo Martin De Nicolas [ mailto:arturo.martin-de-nicolas@ericsson.com ] Sent: Monday, March 19, 2018 10:01 AM To: claude.noshpitz@att.com ; Matthew Rutkowski ( mrutkows@us.ibm.com ) < mrutkows@us.ibm.com >; Chris Lauwers < lauwers@ubicity.com >; Lishitao < lishitao@huawei.com >; Priya T G < priya.g@netcracker.com >; Nguyenphu, Thinh (Nokia - US/Irving) ( thinh.nguyenphu@nokia.com ) < thinh.nguyenphu@nokia.com >; tosca@lists.oasis-open.org Cc: Calin Curescu < calin.curescu@ericsson.com > Subject: InstantiationLevel discussion paper   Hello all,   As already discussed,  there is no clear equivalent to the NFV instantiation level in the TOSCA Simple Profile in YAML (i.e. a property that indicates how many instances of each node template should be instantiated at deployment of the service template). I think this is a candidate feature for 1.3.   Yes, there is currently no language support for allowing the same node template to be instantiated multiple times. Your proposal circumvents this by making it the responsibility of the “create” operation to create multiple instances (based on the instantiation level data structure). While this will work, it means that the orchestrator (and any ongoing operational management systems) has no knowledge of the individual instances.   I fully support your suggestion that we should address this in Version 1.3. You have previously proposed to support the ‘occurrences’ keyname in node templates. This is likely the correct starting point, but we need to think through the implications on the rest of the topology template. Specifically:   ·          If node template A supports multiple occurrences, and node template B supports multiple occurrences, and we have a relationship between A and B, what is the desired cardinality of the relationship between A and B? Full mesh from all instances of A to all instances of B? Single relationship between one instance of A and one instance of B? What if A and B don’t have the same number of occurrences? We need to document the various use cases and then decide which grammar is required to create those use cases. ·          If node template A supports multiple occurrences, and some of A’s properties are initialized using get_input statements, how do we specify that a list of values must be provided for each named input? How do we specify which value in that list goes to which instance of A? ·          If node template A supports multiple occurrences, and node template B uses a { get_property, [A, <property_of_A> ] }, then which specific instance of A will be used in the corresponding property value of B? ·          If node template A supports multiple occurrences, and node template A is “realized” through substitution mapping, do we need any extensions to the substitution _mapping grammar to accommodate this?   I’m sure there are other potential issues, but we can start with these.   I have uploaded a discussion paper related to this issue. The intention of the paper is not to propose a solution for 1.3, but something that ETSI NFV could use in the meantime, using the mechanisms available in YAML 1.1 or 1.2.   One of the concerns you point out is that, independent of multiple occurrences, the get_property syntax can get cumbersome when complex data types are used. I’m not sure that this is necessarily a problem, but I agree that we need to do a better job of clarifying what the appropriate syntax is for various scenarios that involve list, map, or complex data. Specifically:   ·          For properties of type list, how do we specify the index of a specific entry in the list? ·          For properties of type map, how do we specify the entry that corresponds to a specific key value ·          For multiple instances of a requirement, how do we specify the index of a specific requirement instance in the list ·          It is currently not possible to use get_property to retrieve property values of relationships   As the instantiationLevel is a complex type and there is a need to pass information from one node template to another, the grammar becomes unclear. I am looking for advice if this may be a base for a solution.   The mechanism for passing information from one node template to another is through the ‘substitution_mapping’ grammar. I agree, that this grammar can get confusing, since in the v1.2 spec we’re overloading this grammar for two completely different purposes:   1.        Mapping : specify how properties, attributes, capabilities, requirements, and interfaces from one node template are mapped to corresponding entities in a substituting service template. 2.        Matching : when the orchestrator finds multiple service templates that can be used to substitute a node template, how does the orchestrator select the best match?   The examples in Chapter 14 do not properly highlight these two purposes. I strongly believe we need to more clearly separate them. In my opinion, substitution mapping grammar should be used exclusively to specify the intended mappings. Different grammar should then be used to drive matching. Since we use node filters in other parts of the spec for similar purposes, I suggest we investigate the use of node filters to guide matching decisions when multiple possible substituting template are found.   Claude and Matt, is it possible to add this discussion to the agenda for tomorrow’s meeting?   TOSCA_InstantiationLevel_Discussion.docx   Best regards, Arturo     Chris  


  • 7.  ??: [tosca] ??: InstantiationLevel discussion paper

    Posted 03-26-2018 07:52
    Hi  all      is the concern  same with  TOSCA-Instance-Model?     There is a document:     http://docs.oasis-open.org/tosca/TOSCA-Instance-Model/v1.0/TOSCA-Instance-Model-v1.0.html . BR Maopeng ?????? ?????? Lishitao <lishitao@huawei.com> ?????? Chris Lauwers <lauwers@ubicity.com> Arturo Martin De Nicolas <arturo.martin-de-nicolas@ericsson.com> claude.noshpitz@att.com <claude.noshpitz@att.com> Matthew Rutkowski (mrutkows@us.ibm.com) <mrutkows@us.ibm.com> Priya T G <priya.g@netcracker.com> Nguyenphu, Thinh(Nokia - US/Irving) (thinh.nguyenphu@nokia.com) <thinh.nguyenphu@nokia.com> tosca@lists.oasis-open.org <tosca@lists.oasis-open.org> ???????/strong> Calin Curescu <calin.curescu@ericsson.com> ??????/strong> 2018??3??6??10:29 ??????/strong> [tosca] ???: InstantiationLevel discussion paper Hi Chris and Arturo   I think Chris has pointed out some interesting and important issues for the multiple instances design. I agree we need to take this as one of the high priority feature to be support  in v1.3.   Regards shitao   ?????span lang= EN-US >: Chris Lauwers [mailto:lauwers@ubicity.com] ???????span lang= EN-US >: 2018 ??span lang= EN-US >3 ??span lang= EN-US >24 ??span lang= EN-US >  2:12 ?????span lang= EN-US >: Arturo Martin De Nicolas <arturo.martin-de-nicolas@ericsson.com>; claude.noshpitz@att.com; Matthew Rutkowski (mrutkows@us.ibm.com) <mrutkows@us.ibm.com>; Lishitao <lishitao@huawei.com>; Priya T  G <priya.g@netcracker.com>; Nguyenphu, Thinh (Nokia - US/Irving) (thinh.nguyenphu@nokia.com) <thinh.nguyenphu@nokia.com>; tosca@lists.oasis-open.org ????span lang= EN-US >: Calin Curescu <calin.curescu@ericsson.com> ??? : RE: InstantiationLevel discussion paper   Hi Arturo,   Thanks for putting this together. We??l use it as the basis for further discussion.   Comments in-line:   From: Arturo Martin De Nicolas [ mailto:arturo.martin-de-nicolas@ericsson.com ] Sent: Monday, March 19, 2018 10:01 AM To: claude.noshpitz@att.com ; Matthew Rutkowski ( mrutkows@us.ibm.com ) < mrutkows@us.ibm.com >; Chris Lauwers < lauwers@ubicity.com >;  Lishitao < lishitao@huawei.com >; Priya T G < priya.g@netcracker.com >; Nguyenphu, Thinh (Nokia - US/Irving) ( thinh.nguyenphu@nokia.com )  < thinh.nguyenphu@nokia.com >; tosca@lists.oasis-open.org Cc: Calin Curescu < calin.curescu@ericsson.com > Subject: InstantiationLevel discussion paper   Hello all,   As already discussed,  there is no clear equivalent to the NFV instantiation level in the TOSCA Simple Profile in YAML (i.e. a property that indicates how many instances of each node template  should be instantiated at deployment of the service template). I think this is a candidate feature for 1.3.   Yes, there is currently no language support for allowing the same node template to be instantiated multiple times. Your proposal circumvents this by making it the responsibility of the ??reate??operation  to create multiple instances (based on the instantiation level data structure). While this will work, it means that the orchestrator (and any ongoing operational management systems) has no knowledge of the individual instances.   I fully support your suggestion that we should address this in Version 1.3. You have previously proposed to support the ??ccurrences??keyname in node templates. This is likely the correct starting  point, but we need to think through the implications on the rest of the topology template. Specifically:   ??span style= font:7.0pt "Times New Roman" >         If node template A supports multiple occurrences, and node template B supports multiple occurrences, and we have a relationship between A and B, what is the desired cardinality of the relationship  between A and B? Full mesh from all instances of A to all instances of B? Single relationship between one instance of A and one instance of B? What if A and B don?? have the same number of occurrences? We need to document the various use cases and then decide  which grammar is required to create those use cases. ??span style= font:7.0pt "Times New Roman" >         If node template A supports multiple occurrences, and some of A?? properties are initialized using get_input statements, how do we specify that a list of values must be provided for each  named input? How do we specify which value in that list goes to which instance of A? ??span style= font:7.0pt "Times New Roman" >         If node template A supports multiple occurrences, and node template B uses a { get_property, [A, <property_of_A> ] }, then which specific instance of A will be used in the corresponding  property value of B? ??span style= font:7.0pt "Times New Roman" >         If node template A supports multiple occurrences, and node template A is ??ealized??through substitution mapping, do we need any extensions to the substitution _mapping grammar to accommodate  this?   I?? sure there are other potential issues, but we can start with these.   I have uploaded a discussion paper related to this issue. The intention of the paper is not to propose a solution for 1.3, but something that ETSI NFV could use in the meantime, using the mechanisms  available in YAML 1.1 or 1.2.   One of the concerns you point out is that, independent of multiple occurrences, the get_property syntax can get cumbersome when complex data types are used. I?? not sure that this is necessarily  a problem, but I agree that we need to do a better job of clarifying what the appropriate syntax is for various scenarios that involve list, map, or complex data. Specifically:   ??span style= font:7.0pt "Times New Roman" >         For properties of type list, how do we specify the index of a specific entry in the list? ??span style= font:7.0pt "Times New Roman" >         For properties of type map, how do we specify the entry that corresponds to a specific key value ??span style= font:7.0pt "Times New Roman" >         For multiple instances of a requirement, how do we specify the index of a specific requirement instance in the list ??span style= font:7.0pt "Times New Roman" >         It is currently not possible to use get_property to retrieve property values of relationships   As the instantiationLevel is a complex type and there is a need to pass information from one node template to another, the grammar becomes unclear. I am looking for advice if this may be a base  for a solution.   The mechanism for passing information from one node template to another is through the ??ubstitution_mapping??grammar. I agree, that this grammar can get confusing, since in the v1.2 spec we??e overloading  this grammar for two completely different purposes:   1.        Mapping : specify how properties, attributes, capabilities, requirements, and interfaces from one node template are mapped to corresponding  entities in a substituting service template. 2.        Matching : when the orchestrator finds multiple service templates that can be used to substitute a node template, how does the orchestrator  select the best match?   The examples in Chapter 14 do not properly highlight these two purposes. I strongly believe we need to more clearly separate them. In my opinion, substitution mapping grammar should be used exclusively  to specify the intended mappings. Different grammar should then be used to drive matching. Since we use node filters in other parts of the spec for similar purposes, I suggest we investigate the use of node filters to guide matching decisions when multiple  possible substituting template are found.   Claude and Matt, is it possible to add this discussion to the agenda for tomorrow?? meeting?   TOSCA_InstantiationLevel_Discussion.docx   Best regards, Arturo     Chris  


  • 8.  RE: [tosca] ??: [tosca] ??: InstantiationLevel discussion paper

    Posted 03-26-2018 12:42




    The instance model describes the structure and state of a deployment (after orchestration has completed) enabling reasoning over the topology so that additional automation and management operations can be performed on it.
     
    From what I can see, these issues are about how to express and realize specific relationship cardinalities and semantics (and contextual nuances) in the service topology. So this still fits into the area of deployment which is where the
    YAML profile discussions have focused.
     
    Derek
     
    From: tosca@lists.oasis-open.org <tosca@lists.oasis-open.org>
    On Behalf Of zhang.maopeng1@zte.com.cn
    Sent: Monday, March 26, 2018 12:52 AM
    To: lishitao@huawei.com
    Cc: Chris Lauwers <lauwers@ubicity.com>; arturo.martin-de-nicolas@ericsson.com; claude.noshpitz@att.com; mrutkows@us.ibm.com; priya.g@netcracker.com; thinh.nguyenphu@nokia.com; tosca@lists.oasis-open.org; calin.curescu@ericsson.com
    Subject: [tosca] ?? : [tosca]
    ?? : InstantiationLevel discussion paper
     

    Hi  all
     
         is the concern same with TOSCA-Instance-Model?
        There is a document:    " http://docs.oasis-open.org/tosca/TOSCA-Instance-Model/v1.0/TOSCA-Instance-Model-v1.0.html" .
     
    BR
    Maopeng



    ?? ??




    ???: Lishitao < lishitao@huawei.com >


    ???: Chris Lauwers < lauwers@ubicity.com >Arturo Martin De Nicolas < arturo.martin-de-nicolas@ericsson.com > claude.noshpitz@att.com
    < claude.noshpitz@att.com >Matthew Rutkowski ( mrutkows@us.ibm.com ) < mrutkows@us.ibm.com >Priya T G < priya.g@netcracker.com >Nguyenphu,
    Thinh(Nokia - US/Irving) ( thinh.nguyenphu@nokia.com ) < thinh.nguyenphu@nokia.com > tosca@lists.oasis-open.org < tosca@lists.oasis-open.org >


    ???: Calin Curescu < calin.curescu@ericsson.com >


    ?
    ?
    : 2018 ? 03 ? 26 ? 10:29


    ?
    ?
    : [tosca]
    ?? : InstantiationLevel discussion paper





    Hi Chris and Arturo
     
    I think Chris has pointed out some interesting and important issues for the multiple instances design. I agree we need to take this
    as one of the high priority feature to be support  in v1.3.
     
    Regards
    shitao
     


    ???: Chris Lauwers [ mailto:lauwers@ubicity.com ]

    ????: 2018?3?24?  2:12
    ???: Arturo Martin De Nicolas < arturo.martin-de-nicolas@ericsson.com >;
    claude.noshpitz@att.com ; Matthew Rutkowski ( mrutkows@us.ibm.com ) < mrutkows@us.ibm.com >; Lishitao < lishitao@huawei.com >;
    Priya T  G < priya.g@netcracker.com >; Nguyenphu, Thinh (Nokia - US/Irving) ( thinh.nguyenphu@nokia.com ) < thinh.nguyenphu@nokia.com >;
    tosca@lists.oasis-open.org
    ??: Calin Curescu < calin.curescu@ericsson.com >
    ??: RE: InstantiationLevel discussion paper


     
    Hi Arturo,
     
    Thanks for putting this together. We’ll use it as the basis for further discussion.
     
    Comments in-line:
     



    From: Arturo Martin De Nicolas [ mailto:arturo.martin-de-nicolas@ericsson.com ]

    Sent: Monday, March 19, 2018 10:01 AM
    To:
    claude.noshpitz@att.com ; Matthew Rutkowski ( mrutkows@us.ibm.com ) < mrutkows@us.ibm.com >; Chris Lauwers < lauwers@ubicity.com >;
     Lishitao < lishitao@huawei.com >; Priya T G < priya.g@netcracker.com >; Nguyenphu, Thinh (Nokia - US/Irving) ( thinh.nguyenphu@nokia.com )
     < thinh.nguyenphu@nokia.com >;
    tosca@lists.oasis-open.org
    Cc: Calin Curescu < calin.curescu@ericsson.com >
    Subject: InstantiationLevel discussion paper



     

    Hello all,

     

    As already discussed,  there is no clear equivalent to the NFV instantiation level in the TOSCA Simple Profile in YAML (i.e. a property that indicates how many instances of each node template  should be instantiated at deployment of the service template). I
    think this is a candidate feature for 1.3.
     
    Yes, there is currently no language support for allowing the same node template to be instantiated multiple times. Your proposal circumvents this by
    making it the responsibility of the “create” operation  to create multiple instances (based on the instantiation level data structure). While this will work, it means that the orchestrator (and any ongoing operational management systems) has no knowledge of
    the individual instances.
     
    I fully support your suggestion that we should address this in Version 1.3. You have previously proposed to support the ‘occurrences’ keyname in node
    templates. This is likely the correct starting  point, but we need to think through the implications on the rest of the topology template. Specifically:
     

    1.       
    If node template A supports multiple occurrences, and node template B supports multiple occurrences, and we have a relationship between A and B, what is the desired cardinality of the relationship  between
    A and B? Full mesh from all instances of A to all instances of B? Single relationship between one instance of A and one instance of B? What if A and B don’t have the same number of occurrences? We need to document the various use cases and then decide  which
    grammar is required to create those use cases.

    2.       
    If node template A supports multiple occurrences, and some of A’s properties are initialized using get_input statements, how do we specify that a list of values must be provided for each  named input? How
    do we specify which value in that list goes to which instance of A?

    3.       
    If node template A supports multiple occurrences, and node template B uses a { get_property, [A, <property_of_A> ] }, then which specific instance of A will be used in the corresponding  property value of
    B?

    4.       
    If node template A supports multiple occurrences, and node template A is “realized” through substitution mapping, do we need any extensions to the substitution _mapping grammar to accommodate  this?
     
    I’m sure there are other potential issues, but we can start with these.

     

    I have uploaded a discussion paper related to this issue. The intention of the paper is not to propose a solution for 1.3, but something that ETSI NFV could use in the meantime, using the mechanisms  available in YAML 1.1 or 1.2.

     
    One of the concerns you point out is that, independent of multiple occurrences, the get_property syntax can get cumbersome when complex data types are
    used. I’m not sure that this is necessarily  a problem, but I agree that we need to do a better job of clarifying what the appropriate syntax is for various scenarios that involve list, map, or complex data. Specifically:
     

    1.       
    For properties of type list, how do we specify the index of a specific entry in the list?

    2.       
    For properties of type map, how do we specify the entry that corresponds to a specific key value

    3.       
    For multiple instances of a requirement, how do we specify the index of a specific requirement instance in the list

    4.       
    It is currently not possible to use get_property to retrieve property values of relationships
     

    As the instantiationLevel is a complex type and there is a need to pass information from one node template to another, the grammar becomes unclear. I am looking for advice if this may be a base  for a solution.
     
    The mechanism for passing information from one node template to another is through the ‘substitution_mapping’ grammar. I agree, that this grammar can
    get confusing, since in the v1.2 spec we’re overloading  this grammar for two completely different purposes:
     

    1.       
    Mapping : specify how properties, attributes, capabilities, requirements, and interfaces from one node template are mapped
    to corresponding  entities in a substituting service template.

    2.       
    Matching : when the orchestrator finds multiple service templates that can be used to substitute a node template, how does
    the orchestrator  select the best match?
     
    The examples in Chapter 14 do not properly highlight these two purposes. I strongly believe we need to more clearly separate them. In my opinion, substitution
    mapping grammar should be used exclusively  to specify the intended mappings. Different grammar should then be used to drive matching. Since we use node filters in other parts of the spec for similar purposes, I suggest we investigate the use of node filters
    to guide matching decisions when multiple  possible substituting template are found.

     

    Claude and Matt, is it possible to add this discussion to the agenda for tomorrow’s meeting?

     

    TOSCA_InstantiationLevel_Discussion.docx

     

    Best regards,

    Arturo

     

     
    Chris

     







     







  • 9.  ??: RE: [tosca] ??: [tosca] ??: InstantiationLevel discussion paper

    Posted 03-30-2018 07:20
    As I know, this email focus on how to express the multi-node instances based on one node-template. In my mind,   this issue will effect both TOSCA-Instance-Model and Yaml profile. I agree that the YAML profile definition may be at first discussed. Thanks. BR Maopeng ???? ???: DerekPalma <dpalma@vnomic.com> ???: ???10030173; lishitao@huawei.com <lishitao@huawei.com> ???: Chris Lauwers <lauwers@ubicity.com> arturo.martin-de-nicolas@ericsson.com <arturo.martin-de-nicolas@ericsson.com> claude.noshpitz@att.com <claude.noshpitz@att.com> mrutkows@us.ibm.com <mrutkows@us.ibm.com> priya.g@netcracker.com <priya.g@netcracker.com> thinh.nguyenphu@nokia.com <thinh.nguyenphu@nokia.com> tosca@lists.oasis-open.org <tosca@lists.oasis-open.org> calin.curescu@ericsson.com <calin.curescu@ericsson.com> ? ? : 2018?03?26? 20:42 ? ? : RE: [tosca] ??: [tosca] ??: InstantiationLevel discussion paper The instance model describes the structure and state of a deployment (after orchestration has completed) enabling reasoning over the topology so that additional automation and management operations can be performed on it.   From what I can see, these issues are about how to express and realize specific relationship cardinalities and semantics (and contextual nuances) in the service topology. So this still fits into the area of deployment which is where the  YAML profile discussions have focused.   Derek   From: tosca@lists.oasis-open.org <tosca@lists.oasis-open.org> On Behalf Of zhang.maopeng1@zte.com.cn Sent: Monday, March 26, 2018 12:52 AM To: lishitao@huawei.com Cc: Chris Lauwers <lauwers@ubicity.com>; arturo.martin-de-nicolas@ericsson.com; claude.noshpitz@att.com; mrutkows@us.ibm.com; priya.g@netcracker.com; thinh.nguyenphu@nokia.com; tosca@lists.oasis-open.org; calin.curescu@ericsson.com Subject: [tosca] ?? : [tosca] ?? : InstantiationLevel discussion paper   Hi  all        is the concern same with TOSCA-Instance-Model?     There is a document:    http://docs.oasis-open.org/tosca/TOSCA-Instance-Model/v1.0/TOSCA-Instance-Model-v1.0.html .   BR Maopeng ?? ?? ???: Lishitao < lishitao@huawei.com > ???: Chris Lauwers < lauwers@ubicity.com >Arturo Martin De Nicolas < arturo.martin-de-nicolas@ericsson.com > claude.noshpitz@att.com  < claude.noshpitz@att.com >Matthew Rutkowski ( mrutkows@us.ibm.com ) < mrutkows@us.ibm.com >Priya T G < priya.g@netcracker.com >Nguyenphu,  Thinh(Nokia - US/Irving) ( thinh.nguyenphu@nokia.com ) < thinh.nguyenphu@nokia.com > tosca@lists.oasis-open.org < tosca@lists.oasis-open.org > ???: Calin Curescu < calin.curescu@ericsson.com > ? ? : 2018 ? 03 ? 26 ? 10:29 ? ? : [tosca] ?? : InstantiationLevel discussion paper Hi Chris and Arturo   I think Chris has pointed out some interesting and important issues for the multiple instances design. I agree we need to take this  as one of the high priority feature to be support  in v1.3.   Regards shitao   ???: Chris Lauwers [ mailto:lauwers@ubicity.com ] ????: 2018?3?24?  2:12 ???: Arturo Martin De Nicolas < arturo.martin-de-nicolas@ericsson.com >; claude.noshpitz@att.com ; Matthew Rutkowski ( mrutkows@us.ibm.com ) < mrutkows@us.ibm.com >; Lishitao < lishitao@huawei.com >;  Priya T  G < priya.g@netcracker.com >; Nguyenphu, Thinh (Nokia - US/Irving) ( thinh.nguyenphu@nokia.com ) < thinh.nguyenphu@nokia.com >; tosca@lists.oasis-open.org ??: Calin Curescu < calin.curescu@ericsson.com > ??: RE: InstantiationLevel discussion paper   Hi Arturo,   Thanks for putting this together. We’ll use it as the basis for further discussion.   Comments in-line:   From: Arturo Martin De Nicolas [ mailto:arturo.martin-de-nicolas@ericsson.com ] Sent: Monday, March 19, 2018 10:01 AM To: claude.noshpitz@att.com ; Matthew Rutkowski ( mrutkows@us.ibm.com ) < mrutkows@us.ibm.com >; Chris Lauwers < lauwers@ubicity.com >;   Lishitao < lishitao@huawei.com >; Priya T G < priya.g@netcracker.com >; Nguyenphu, Thinh (Nokia - US/Irving) ( thinh.nguyenphu@nokia.com )   < thinh.nguyenphu@nokia.com >; tosca@lists.oasis-open.org Cc: Calin Curescu < calin.curescu@ericsson.com > Subject: InstantiationLevel discussion paper   Hello all,   As already discussed,  there is no clear equivalent to the NFV instantiation level in the TOSCA Simple Profile in YAML (i.e. a property that indicates how many instances of each node template  should be instantiated at deployment of the service template). I  think this is a candidate feature for 1.3.   Yes, there is currently no language support for allowing the same node template to be instantiated multiple times. Your proposal circumvents this by  making it the responsibility of the “create” operation  to create multiple instances (based on the instantiation level data structure). While this will work, it means that the orchestrator (and any ongoing operational management systems) has no knowledge of  the individual instances.   I fully support your suggestion that we should address this in Version 1.3. You have previously proposed to support the ‘occurrences’ keyname in node  templates. This is likely the correct starting  point, but we need to think through the implications on the rest of the topology template. Specifically:   1.        If node template A supports multiple occurrences, and node template B supports multiple occurrences, and we have a relationship between A and B, what is the desired cardinality of the relationship  between  A and B? Full mesh from all instances of A to all instances of B? Single relationship between one instance of A and one instance of B? What if A and B don’t have the same number of occurrences? We need to document the various use cases and then decide  which  grammar is required to create those use cases. 2.        If node template A supports multiple occurrences, and some of A’s properties are initialized using get_input statements, how do we specify that a list of values must be provided for each  named input? How  do we specify which value in that list goes to which instance of A? 3.        If node template A supports multiple occurrences, and node template B uses a { get_property, [A, <property_of_A> ] }, then which specific instance of A will be used in the corresponding  property value of  B? 4.        If node template A supports multiple occurrences, and node template A is “realized” through substitution mapping, do we need any extensions to the substitution _mapping grammar to accommodate  this?   I’m sure there are other potential issues, but we can start with these.   I have uploaded a discussion paper related to this issue. The intention of the paper is not to propose a solution for 1.3, but something that ETSI NFV could use in the meantime, using the mechanisms  available in YAML 1.1 or 1.2.   One of the concerns you point out is that, independent of multiple occurrences, the get_property syntax can get cumbersome when complex data types are  used. I’m not sure that this is necessarily  a problem, but I agree that we need to do a better job of clarifying what the appropriate syntax is for various scenarios that involve list, map, or complex data. Specifically:   1.        For properties of type list, how do we specify the index of a specific entry in the list? 2.        For properties of type map, how do we specify the entry that corresponds to a specific key value 3.        For multiple instances of a requirement, how do we specify the index of a specific requirement instance in the list 4.        It is currently not possible to use get_property to retrieve property values of relationships   As the instantiationLevel is a complex type and there is a need to pass information from one node template to another, the grammar becomes unclear. I am looking for advice if this may be a base  for a solution.   The mechanism for passing information from one node template to another is through the ‘substitution_mapping’ grammar. I agree, that this grammar can  get confusing, since in the v1.2 spec we’re overloading  this grammar for two completely different purposes:   1.        Mapping : specify how properties, attributes, capabilities, requirements, and interfaces from one node template are mapped  to corresponding  entities in a substituting service template. 2.        Matching : when the orchestrator finds multiple service templates that can be used to substitute a node template, how does  the orchestrator  select the best match?   The examples in Chapter 14 do not properly highlight these two purposes. I strongly believe we need to more clearly separate them. In my opinion, substitution  mapping grammar should be used exclusively  to specify the intended mappings. Different grammar should then be used to drive matching. Since we use node filters in other parts of the spec for similar purposes, I suggest we investigate the use of node filters  to guide matching decisions when multiple  possible substituting template are found.   Claude and Matt, is it possible to add this discussion to the agenda for tomorrow’s meeting?   TOSCA_InstantiationLevel_Discussion.docx   Best regards, Arturo     Chris    


  • 10.  RE: RE: [tosca] ??: [tosca] ??: InstantiationLevel discussion paper

    Posted 04-19-2018 04:40




    Yes, we need to make sure that we keep instance model support and TOSCA template support consistent when we add support for multiple instances.
     
    Chris
     
    From: zhang.maopeng1@zte.com.cn <zhang.maopeng1@zte.com.cn>

    Sent: Friday, March 30, 2018 12:19 AM
    To: dpalma@vnomic.com
    Cc: lishitao@huawei.com; Chris Lauwers <lauwers@ubicity.com>; arturo.martin-de-nicolas@ericsson.com; claude.noshpitz@att.com; mrutkows@us.ibm.com; priya.g@netcracker.com; thinh.nguyenphu@nokia.com; tosca@lists.oasis-open.org; calin.curescu@ericsson.com
    Subject: ?? : RE: [tosca]
    ?? : [tosca] ?? : InstantiationLevel discussion paper
     

    As I know, this email focus on how to express the multi-node instances based on one node-template.
    In my mind,  this issue will effect both TOSCA-Instance-Model and Yaml profile.
    I agree that the YAML profile definition may be at first discussed.
    Thanks.
     
     
    BR
    Maopeng



    ?? ??




    ???: DerekPalma < dpalma@vnomic.com >


    ???: ??? 10030173;lishitao@huawei.com < lishitao@huawei.com >


    ???: Chris Lauwers < lauwers@ubicity.com > arturo.martin-de-nicolas@ericsson.com
    < arturo.martin-de-nicolas@ericsson.com > claude.noshpitz@att.com < claude.noshpitz@att.com > mrutkows@us.ibm.com
    < mrutkows@us.ibm.com > priya.g@netcracker.com < priya.g@netcracker.com > thinh.nguyenphu@nokia.com
    < thinh.nguyenphu@nokia.com > tosca@lists.oasis-open.org < tosca@lists.oasis-open.org > calin.curescu@ericsson.com
    < calin.curescu@ericsson.com >


    ?
    ?
    : 2018 ? 03 ? 26 ? 20:42


    ?
    ?
    : RE: [tosca]
    ?? : [tosca]
    ?? : InstantiationLevel discussion paper





    The instance model describes the structure and state of a deployment (after orchestration has completed) enabling reasoning over the topology so that additional automation and management
    operations can be performed on it.
     
    From what I can see, these issues are about how to express and realize specific relationship cardinalities and semantics (and contextual nuances) in the service topology. So this
    still fits into the area of deployment which is where the  YAML profile discussions have focused.
     
    Derek
     
    From:
    tosca@lists.oasis-open.org < tosca@lists.oasis-open.org >
    On Behalf Of zhang.maopeng1@zte.com.cn
    Sent: Monday, March 26, 2018 12:52 AM
    To:
    lishitao@huawei.com
    Cc: Chris Lauwers < lauwers@ubicity.com >;
    arturo.martin-de-nicolas@ericsson.com ;
    claude.noshpitz@att.com ;
    mrutkows@us.ibm.com ; priya.g@netcracker.com ;
    thinh.nguyenphu@nokia.com ;
    tosca@lists.oasis-open.org ; calin.curescu@ericsson.com
    Subject: [tosca]
    ?? : [tosca]
    ?? : InstantiationLevel discussion paper
     

    Hi  all
     
         is the concern same with TOSCA-Instance-Model?
        There is a document:    " http://docs.oasis-open.org/tosca/TOSCA-Instance-Model/v1.0/TOSCA-Instance-Model-v1.0.html" .
     
    BR
    Maopeng



    ?? ??





    ???: Lishitao < lishitao@huawei.com >



    ???: Chris Lauwers < lauwers@ubicity.com >Arturo Martin De Nicolas < arturo.martin-de-nicolas@ericsson.com > claude.noshpitz@att.com
     < claude.noshpitz@att.com >Matthew Rutkowski ( mrutkows@us.ibm.com ) < mrutkows@us.ibm.com >Priya
    T G < priya.g@netcracker.com >Nguyenphu,  Thinh(Nokia - US/Irving) ( thinh.nguyenphu@nokia.com ) < thinh.nguyenphu@nokia.com > tosca@lists.oasis-open.org
    < tosca@lists.oasis-open.org >



    ???: Calin Curescu < calin.curescu@ericsson.com >



    ?
    ?
    : 2018 ? 03 ? 26 ? 10:29



    ?
    ?
    : [tosca]
    ?? : InstantiationLevel discussion paper





    Hi Chris and Arturo
     
    I think Chris has pointed out some interesting and important issues for the multiple instances design. I agree we need to take this
     as one of the high priority feature to be support  in v1.3.
     
    Regards
    shitao
     


    ???: Chris Lauwers [ mailto:lauwers@ubicity.com ]

    ????: 2018?3?24?  2:12
    ???: Arturo Martin De Nicolas < arturo.martin-de-nicolas@ericsson.com >;
    claude.noshpitz@att.com ; Matthew Rutkowski ( mrutkows@us.ibm.com ) < mrutkows@us.ibm.com >;
    Lishitao < lishitao@huawei.com >;  Priya T  G < priya.g@netcracker.com >; Nguyenphu, Thinh (Nokia - US/Irving) ( thinh.nguyenphu@nokia.com )
    < thinh.nguyenphu@nokia.com >;
    tosca@lists.oasis-open.org
    ??: Calin Curescu < calin.curescu@ericsson.com >
    ??: RE: InstantiationLevel discussion paper


     
    Hi Arturo,
     
    Thanks for putting this together. We’ll use it as the basis for further discussion.
     
    Comments in-line:
     



    From: Arturo Martin De Nicolas [ mailto:arturo.martin-de-nicolas@ericsson.com ]

    Sent: Monday, March 19, 2018 10:01 AM
    To:
    claude.noshpitz@att.com ; Matthew Rutkowski ( mrutkows@us.ibm.com ) < mrutkows@us.ibm.com >; Chris Lauwers < lauwers@ubicity.com >;
      Lishitao < lishitao@huawei.com >; Priya T G < priya.g@netcracker.com >; Nguyenphu, Thinh (Nokia - US/Irving) ( thinh.nguyenphu@nokia.com )
      < thinh.nguyenphu@nokia.com >;
    tosca@lists.oasis-open.org
    Cc: Calin Curescu < calin.curescu@ericsson.com >
    Subject: InstantiationLevel discussion paper



     

    Hello all,

     

    As already discussed,  there is no clear equivalent to the NFV instantiation level in the TOSCA Simple Profile in YAML (i.e. a property that indicates how many instances of each node template  should be instantiated at deployment of the service template). I
     think this is a candidate feature for 1.3.
     
    Yes, there is currently no language support for allowing the same node template to be instantiated multiple times. Your proposal circumvents this by
     making it the responsibility of the “create” operation  to create multiple instances (based on the instantiation level data structure). While this will work, it means that the orchestrator (and any ongoing operational management systems) has no knowledge
    of  the individual instances.
     
    I fully support your suggestion that we should address this in Version 1.3. You have previously proposed to support the ‘occurrences’ keyname in node
     templates. This is likely the correct starting  point, but we need to think through the implications on the rest of the topology template. Specifically:
     

    1.       
    If node template A supports multiple occurrences, and node template B supports multiple occurrences, and we have a relationship between A and B, what is the desired cardinality of the relationship  between
     A and B? Full mesh from all instances of A to all instances of B? Single relationship between one instance of A and one instance of B? What if A and B don’t have the same number of occurrences? We need to document the various use cases and then decide  which
     grammar is required to create those use cases.

    2.       
    If node template A supports multiple occurrences, and some of A’s properties are initialized using get_input statements, how do we specify that a list of values must be provided for each  named input? How
     do we specify which value in that list goes to which instance of A?

    3.       
    If node template A supports multiple occurrences, and node template B uses a { get_property, [A, <property_of_A> ] }, then which specific instance of A will be used in the corresponding  property value of
     B?

    4.       
    If node template A supports multiple occurrences, and node template A is “realized” through substitution mapping, do we need any extensions to the substitution _mapping grammar to accommodate  this?
     
    I’m sure there are other potential issues, but we can start with these.

     

    I have uploaded a discussion paper related to this issue. The intention of the paper is not to propose a solution for 1.3, but something that ETSI NFV could use in the meantime, using the mechanisms  available in YAML 1.1 or 1.2.

     
    One of the concerns you point out is that, independent of multiple occurrences, the get_property syntax can get cumbersome when complex data types are
     used. I’m not sure that this is necessarily  a problem, but I agree that we need to do a better job of clarifying what the appropriate syntax is for various scenarios that involve list, map, or complex data. Specifically:
     

    1.       
    For properties of type list, how do we specify the index of a specific entry in the list?

    2.       
    For properties of type map, how do we specify the entry that corresponds to a specific key value

    3.       
    For multiple instances of a requirement, how do we specify the index of a specific requirement instance in the list

    4.       
    It is currently not possible to use get_property to retrieve property values of relationships
     

    As the instantiationLevel is a complex type and there is a need to pass information from one node template to another, the grammar becomes unclear. I am looking for advice if this may be a base  for a solution.
     
    The mechanism for passing information from one node template to another is through the ‘substitution_mapping’ grammar. I agree, that this grammar can
     get confusing, since in the v1.2 spec we’re overloading  this grammar for two completely different purposes:
     

    1.       
    Mapping : specify how properties, attributes, capabilities, requirements, and interfaces from one node template are mapped
     to corresponding  entities in a substituting service template.

    2.       
    Matching : when the orchestrator finds multiple service templates that can be used to substitute a node template, how does
     the orchestrator  select the best match?
     
    The examples in Chapter 14 do not properly highlight these two purposes. I strongly believe we need to more clearly separate them. In my opinion, substitution
     mapping grammar should be used exclusively  to specify the intended mappings. Different grammar should then be used to drive matching. Since we use node filters in other parts of the spec for similar purposes, I suggest we investigate the use of node filters
     to guide matching decisions when multiple  possible substituting template are found.

     

    Claude and Matt, is it possible to add this discussion to the agenda for tomorrow’s meeting?

     

    TOSCA_InstantiationLevel_Discussion.docx

     

    Best regards,

    Arturo

     

     
    Chris

     







     








     







  • 11.  RE: InstantiationLevel discussion paper

    Posted 03-26-2018 14:20




    Hello Chris, Shitao,
     
    Thanks for the feedback. I agree, the solution for instantiation level that will hopefully be developed in 1.3 should give answer to all these important issues that Chris raises.
     
    My proposal, if we make it working, is a workaround until that solution is in place.
     
    Chris, I have one question below
    in green .
     
    Best regards,
    Arturo
     


    From: Lishitao [mailto:lishitao@huawei.com]
    Sent: Monday, March 26, 2018 4:22 AM
    To: Chris Lauwers <lauwers@ubicity.com>; Arturo Martin De Nicolas <arturo.martin-de-nicolas@ericsson.com>; claude.noshpitz@att.com; Matthew Rutkowski (mrutkows@us.ibm.com) <mrutkows@us.ibm.com>; Priya T G <priya.g@netcracker.com>; Nguyenphu, Thinh (Nokia
    - US/Irving) (thinh.nguyenphu@nokia.com) <thinh.nguyenphu@nokia.com>; tosca@lists.oasis-open.org
    Cc: Calin Curescu <calin.curescu@ericsson.com>
    Subject: ?? : InstantiationLevel discussion paper


     
    Hi Chris and Arturo
     
    I think Chris has pointed out some interesting and important issues for the multiple instances design. I agree we need to take this as one of the high priority feature to be support in v1.3.
     
    Regards
    shitao
     


    ??? : Chris Lauwers [ mailto:lauwers@ubicity.com ]

    ???? : 2018 ? 3 ? 24 ? 2:12
    ??? : Arturo Martin De Nicolas < arturo.martin-de-nicolas@ericsson.com >;
    claude.noshpitz@att.com ; Matthew Rutkowski ( mrutkows@us.ibm.com ) < mrutkows@us.ibm.com >; Lishitao < lishitao@huawei.com >;
    Priya T G < priya.g@netcracker.com >; Nguyenphu, Thinh (Nokia - US/Irving) ( thinh.nguyenphu@nokia.com ) < thinh.nguyenphu@nokia.com >;
    tosca@lists.oasis-open.org
    ?? : Calin Curescu < calin.curescu@ericsson.com >
    ?? : RE: InstantiationLevel discussion paper


     
    Hi Arturo,
     
    Thanks for putting this together. We’ll use it as the basis for further discussion.

     
    Comments in-line:
     


    From: Arturo Martin De Nicolas [ mailto:arturo.martin-de-nicolas@ericsson.com ]

    Sent: Monday, March 19, 2018 10:01 AM
    To: claude.noshpitz@att.com ; Matthew Rutkowski ( mrutkows@us.ibm.com ) < mrutkows@us.ibm.com >; Chris Lauwers < lauwers@ubicity.com >;
    Lishitao < lishitao@huawei.com >; Priya T G < priya.g@netcracker.com >; Nguyenphu, Thinh (Nokia - US/Irving) ( thinh.nguyenphu@nokia.com )
    < thinh.nguyenphu@nokia.com >;
    tosca@lists.oasis-open.org
    Cc: Calin Curescu < calin.curescu@ericsson.com >
    Subject: InstantiationLevel discussion paper


     
    Hello all,
     
    As already discussed,  there is no clear equivalent to the NFV instantiation level in the TOSCA Simple Profile in YAML (i.e. a property that indicates how many instances of each node template should be instantiated
    at deployment of the service template). I think this is a candidate feature for 1.3.
     
    Yes, there is currently no language support for allowing the same node template to be instantiated multiple times. Your proposal circumvents this by making it the responsibility of the “create” operation to create
    multiple instances (based on the instantiation level data structure). While this will work, it means that the orchestrator (and any ongoing operational management systems) has no knowledge of the individual instances.

     
    I fully support your suggestion that we should address this in Version 1.3. You have previously proposed to support the ‘occurrences’ keyname in node templates. This is likely the correct starting point, but
    we need to think through the implications on the rest of the topology template. Specifically:
     


    If node template A supports multiple occurrences, and node template B supports multiple occurrences, and we have a relationship between A and B, what is the desired cardinality of the relationship between A and B? Full mesh from all instances of A to all instances
    of B? Single relationship between one instance of A and one instance of B? What if A and B don’t have the same number of occurrences? We need to document the various use cases and then decide which grammar is required to create those use cases.
    If node template A supports multiple occurrences, and some of A’s properties are initialized using get_input statements, how do we specify that a list of values must be provided for each named input? How do we specify which value in that list goes to which
    instance of A?
    If node template A supports multiple occurrences, and node template B uses a { get_property, [A, <property_of_A> ] }, then which specific instance of A will be used in the corresponding property value of B?
    If node template A supports multiple occurrences, and node template A is “realized” through substitution mapping, do we need any extensions to the substitution _mapping grammar to accommodate this?
     
    I’m sure there are other potential issues, but we can start with these.
     
    I have uploaded a discussion paper related to this issue. The intention of the paper is not to propose a solution for 1.3, but something that ETSI NFV could use in the meantime, using the mechanisms available in
    YAML 1.1 or 1.2.
     
    One of the concerns you point out is that, independent of multiple occurrences, the get_property syntax can get cumbersome when complex data types are used. I’m not sure that this is necessarily a problem, but
    I agree that we need to do a better job of clarifying what the appropriate syntax is for various scenarios that involve list, map, or complex data. Specifically:
     


    For properties of type list, how do we specify the index of a specific entry in the list?
    For properties of type map, how do we specify the entry that corresponds to a specific key value
    For multiple instances of a requirement, how do we specify the index of a specific requirement instance in the list
    It is currently not possible to use get_property to retrieve property values of relationships
     
    As the instantiationLevel is a complex type and there is a need to pass information from one node template to another, the grammar becomes unclear. I am looking for advice if this may be a base for a solution.
     
    The mechanism for passing information from one node template to another is through the ‘substitution_mapping’ grammar. I agree, that this grammar can get confusing, since in the v1.2 spec we’re overloading this
    grammar for two completely different purposes:
     
    Arturo: if Node_A is an abstract node template and Node_b is a node included in a topology template which substitutes for Node_A, is it also possible to pass  information from Node_A to Node_b with the get_property
    function (used e.g. in the interfaces definition of Node_b)?
     


    Mapping : specify how properties, attributes, capabilities, requirements, and interfaces from one node template are mapped to corresponding entities in a substituting service template.
    Matching : when the orchestrator finds multiple service templates that can be used to substitute a node template, how does the orchestrator select the best match?
     
    The examples in Chapter 14 do not properly highlight these two purposes. I strongly believe we need to more clearly separate them. In my opinion, substitution mapping grammar should be used exclusively to specify
    the intended mappings. Different grammar should then be used to drive matching. Since we use node filters in other parts of the spec for similar purposes, I suggest we investigate the use of node filters to guide matching decisions when multiple possible substituting
    template are found.
     
    Claude and Matt, is it possible to add this discussion to the agenda for tomorrow’s meeting?
     
    TOSCA_InstantiationLevel_Discussion.docx
     
    Best regards,
    Arturo
     
     
    Chris
     






  • 12.  RE: InstantiationLevel discussion paper

    Posted 03-26-2018 16:05




    Hi Arturo,
     
    Are you suggesting that the substituting node template would use get_property to reach into the template that has the substituted node? If so, I don’t believe that should be allowed, since there
    is no way to ensure (at design time) that this would result in a valid operation.

     
    Chris
     


    From: Arturo Martin De Nicolas <arturo.martin-de-nicolas@ericsson.com>

    Sent: Monday, March 26, 2018 7:20 AM
    To: Lishitao <lishitao@huawei.com>; Chris Lauwers <lauwers@ubicity.com>; claude.noshpitz@att.com; Matthew Rutkowski (mrutkows@us.ibm.com) <mrutkows@us.ibm.com>; Priya T G <priya.g@netcracker.com>; Nguyenphu, Thinh (Nokia - US/Irving) (thinh.nguyenphu@nokia.com)
    <thinh.nguyenphu@nokia.com>; tosca@lists.oasis-open.org
    Cc: Calin Curescu <calin.curescu@ericsson.com>
    Subject: RE: InstantiationLevel discussion paper


     
    Hello Chris, Shitao,
     
    Thanks for the feedback. I agree, the solution for instantiation level that will hopefully be developed in 1.3 should give answer to all these important issues that Chris raises.
     
    My proposal, if we make it working, is a workaround until that solution is in place.
     
    Chris, I have one question below
    in green .
     
    Best regards,
    Arturo
     


    From: Lishitao [ mailto:lishitao@huawei.com ]

    Sent: Monday, March 26, 2018 4:22 AM
    To: Chris Lauwers < lauwers@ubicity.com >; Arturo Martin De Nicolas < arturo.martin-de-nicolas@ericsson.com >;
    claude.noshpitz@att.com ; Matthew Rutkowski ( mrutkows@us.ibm.com ) < mrutkows@us.ibm.com >; Priya T G < priya.g@netcracker.com >;
    Nguyenphu, Thinh (Nokia - US/Irving) ( thinh.nguyenphu@nokia.com ) < thinh.nguyenphu@nokia.com >;
    tosca@lists.oasis-open.org
    Cc: Calin Curescu < calin.curescu@ericsson.com >
    Subject: ?? : InstantiationLevel discussion paper


     
    Hi Chris and Arturo
     
    I think Chris has pointed out some interesting and important issues for the multiple instances design. I agree we need to take this as one of the high priority feature to be support in v1.3.
     
    Regards
    shitao
     


    ??? : Chris Lauwers [ mailto:lauwers@ubicity.com ]

    ???? : 2018 ? 3 ? 24 ? 2:12
    ??? : Arturo Martin De Nicolas < arturo.martin-de-nicolas@ericsson.com >;
    claude.noshpitz@att.com ; Matthew Rutkowski ( mrutkows@us.ibm.com ) < mrutkows@us.ibm.com >; Lishitao < lishitao@huawei.com >;
    Priya T G < priya.g@netcracker.com >; Nguyenphu, Thinh (Nokia - US/Irving) ( thinh.nguyenphu@nokia.com ) < thinh.nguyenphu@nokia.com >;
    tosca@lists.oasis-open.org
    ?? : Calin Curescu < calin.curescu@ericsson.com >
    ?? : RE: InstantiationLevel discussion paper


     
    Hi Arturo,
     
    Thanks for putting this together. We’ll use it as the basis for further discussion.

     
    Comments in-line:
     


    From: Arturo Martin De Nicolas [ mailto:arturo.martin-de-nicolas@ericsson.com ]

    Sent: Monday, March 19, 2018 10:01 AM
    To: claude.noshpitz@att.com ; Matthew Rutkowski ( mrutkows@us.ibm.com ) < mrutkows@us.ibm.com >; Chris Lauwers < lauwers@ubicity.com >;
    Lishitao < lishitao@huawei.com >; Priya T G < priya.g@netcracker.com >; Nguyenphu, Thinh (Nokia - US/Irving) ( thinh.nguyenphu@nokia.com )
    < thinh.nguyenphu@nokia.com >;
    tosca@lists.oasis-open.org
    Cc: Calin Curescu < calin.curescu@ericsson.com >
    Subject: InstantiationLevel discussion paper


     
    Hello all,
     
    As already discussed,  there is no clear equivalent to the NFV instantiation level in the TOSCA Simple Profile in YAML (i.e. a property that indicates how many instances of each node template should be instantiated
    at deployment of the service template). I think this is a candidate feature for 1.3.
     
    Yes, there is currently no language support for allowing the same node template to be instantiated multiple times. Your proposal circumvents this by making it the responsibility of the “create” operation to create
    multiple instances (based on the instantiation level data structure). While this will work, it means that the orchestrator (and any ongoing operational management systems) has no knowledge of the individual instances.

     
    I fully support your suggestion that we should address this in Version 1.3. You have previously proposed to support the ‘occurrences’ keyname in node templates. This is likely the correct starting point, but
    we need to think through the implications on the rest of the topology template. Specifically:
     


    If node template A supports multiple occurrences, and node template B supports multiple occurrences, and we have a relationship between A and B, what is the desired cardinality of the relationship between A and B? Full mesh from all instances of A to all instances
    of B? Single relationship between one instance of A and one instance of B? What if A and B don’t have the same number of occurrences? We need to document the various use cases and then decide which grammar is required to create those use cases.
    If node template A supports multiple occurrences, and some of A’s properties are initialized using get_input statements, how do we specify that a list of values must be provided for each named input? How do we specify which value in that list goes to which
    instance of A?
    If node template A supports multiple occurrences, and node template B uses a { get_property, [A, <property_of_A> ] }, then which specific instance of A will be used in the corresponding property value of B?
    If node template A supports multiple occurrences, and node template A is “realized” through substitution mapping, do we need any extensions to the substitution _mapping grammar to accommodate this?
     
    I’m sure there are other potential issues, but we can start with these.
     
    I have uploaded a discussion paper related to this issue. The intention of the paper is not to propose a solution for 1.3, but something that ETSI NFV could use in the meantime, using the mechanisms available in
    YAML 1.1 or 1.2.
     
    One of the concerns you point out is that, independent of multiple occurrences, the get_property syntax can get cumbersome when complex data types are used. I’m not sure that this is necessarily a problem, but
    I agree that we need to do a better job of clarifying what the appropriate syntax is for various scenarios that involve list, map, or complex data. Specifically:
     


    For properties of type list, how do we specify the index of a specific entry in the list?
    For properties of type map, how do we specify the entry that corresponds to a specific key value
    For multiple instances of a requirement, how do we specify the index of a specific requirement instance in the list
    It is currently not possible to use get_property to retrieve property values of relationships
     
    As the instantiationLevel is a complex type and there is a need to pass information from one node template to another, the grammar becomes unclear. I am looking for advice if this may be a base for a solution.
     
    The mechanism for passing information from one node template to another is through the ‘substitution_mapping’ grammar. I agree, that this grammar can get confusing, since in the v1.2 spec we’re overloading this
    grammar for two completely different purposes:
     
    Arturo: if Node_A is an abstract node template and Node_b is a node included in a topology template which substitutes for Node_A, is it also possible to pass  information from Node_A to Node_b with the get_property
    function (used e.g. in the interfaces definition of Node_b)?
     


    Mapping : specify how properties, attributes, capabilities, requirements, and interfaces from one node template are mapped to corresponding entities in a substituting service template.
    Matching : when the orchestrator finds multiple service templates that can be used to substitute a node template, how does the orchestrator select the best match?
     
    The examples in Chapter 14 do not properly highlight these two purposes. I strongly believe we need to more clearly separate them. In my opinion, substitution mapping grammar should be used exclusively to specify
    the intended mappings. Different grammar should then be used to drive matching. Since we use node filters in other parts of the spec for similar purposes, I suggest we investigate the use of node filters to guide matching decisions when multiple possible substituting
    template are found.
     
    Claude and Matt, is it possible to add this discussion to the agenda for tomorrow’s meeting?
     
    TOSCA_InstantiationLevel_Discussion.docx
     
    Best regards,
    Arturo
     
     
    Chris
     






  • 13.  ??: InstantiationLevel discussion paper

    Posted 03-27-2018 02:12




    Hi Chris and Arturo
     
    I share the same understanding with Chris. As I indicated in another email, get_property can only be used by one node template to get property from another node template which defined
    in the same service template. substitution_mapping only defines a node type, but not a node template.

     
    Regards
    shitao
     


    ??? : Chris Lauwers [mailto:lauwers@ubicity.com]

    ???? : 2018 ? 3 ? 27 ?
    0:05
    ??? : Arturo Martin De Nicolas <arturo.martin-de-nicolas@ericsson.com>; Lishitao <lishitao@huawei.com>; claude.noshpitz@att.com; Matthew Rutkowski (mrutkows@us.ibm.com) <mrutkows@us.ibm.com>; Priya T
    G <priya.g@netcracker.com>; Nguyenphu, Thinh (Nokia - US/Irving) (thinh.nguyenphu@nokia.com) <thinh.nguyenphu@nokia.com>; tosca@lists.oasis-open.org
    ?? : Calin Curescu <calin.curescu@ericsson.com>
    ?? : RE: InstantiationLevel discussion paper


     
    Hi Arturo,
     
    Are you suggesting that the substituting node template would use get_property to reach into the template that has the substituted node? If so, I don’t believe that should be allowed,
    since there is no way to ensure (at design time) that this would result in a valid operation.

     
    Chris
     


    From: Arturo Martin De Nicolas < arturo.martin-de-nicolas@ericsson.com >

    Sent: Monday, March 26, 2018 7:20 AM
    To: Lishitao < lishitao@huawei.com >; Chris Lauwers < lauwers@ubicity.com >;
    claude.noshpitz@att.com ; Matthew Rutkowski ( mrutkows@us.ibm.com ) < mrutkows@us.ibm.com >; Priya T G < priya.g@netcracker.com >;
    Nguyenphu, Thinh (Nokia - US/Irving) ( thinh.nguyenphu@nokia.com ) < thinh.nguyenphu@nokia.com >;
    tosca@lists.oasis-open.org
    Cc: Calin Curescu < calin.curescu@ericsson.com >
    Subject: RE: InstantiationLevel discussion paper


     
    Hello Chris, Shitao,
     
    Thanks for the feedback. I agree, the solution for instantiation level that will hopefully be developed in 1.3 should give answer to all these important issues that Chris raises.
     
    My proposal, if we make it working, is a workaround until that solution is in place.
     
    Chris, I have one question below
    in green .
     
    Best regards,
    Arturo
     


    From: Lishitao [ mailto:lishitao@huawei.com ]

    Sent: Monday, March 26, 2018 4:22 AM
    To: Chris Lauwers < lauwers@ubicity.com >; Arturo Martin De Nicolas < arturo.martin-de-nicolas@ericsson.com >;
    claude.noshpitz@att.com ; Matthew Rutkowski ( mrutkows@us.ibm.com ) < mrutkows@us.ibm.com >; Priya T G < priya.g@netcracker.com >;
    Nguyenphu, Thinh (Nokia - US/Irving) ( thinh.nguyenphu@nokia.com ) < thinh.nguyenphu@nokia.com >;
    tosca@lists.oasis-open.org
    Cc: Calin Curescu < calin.curescu@ericsson.com >
    Subject: ?? : InstantiationLevel discussion paper


     
    Hi Chris and Arturo
     
    I think Chris has pointed out some interesting and important issues for the multiple instances design. I agree we need to take this as one of the high priority feature to be support
    in v1.3.
     
    Regards
    shitao
     


    ??? : Chris Lauwers [ mailto:lauwers@ubicity.com ]

    ???? : 2018 ? 3 ? 24 ?
    2:12
    ??? : Arturo Martin De Nicolas < arturo.martin-de-nicolas@ericsson.com >;
    claude.noshpitz@att.com ; Matthew Rutkowski ( mrutkows@us.ibm.com ) < mrutkows@us.ibm.com >; Lishitao < lishitao@huawei.com >;
    Priya T G < priya.g@netcracker.com >; Nguyenphu, Thinh (Nokia - US/Irving) ( thinh.nguyenphu@nokia.com ) < thinh.nguyenphu@nokia.com >;
    tosca@lists.oasis-open.org
    ?? : Calin Curescu < calin.curescu@ericsson.com >
    ?? : RE: InstantiationLevel discussion paper


     
    Hi Arturo,
     
    Thanks for putting this together. We’ll use it as the basis for further discussion.

     
    Comments in-line:
     


    From: Arturo Martin De Nicolas [ mailto:arturo.martin-de-nicolas@ericsson.com ]

    Sent: Monday, March 19, 2018 10:01 AM
    To: claude.noshpitz@att.com ; Matthew Rutkowski ( mrutkows@us.ibm.com ) < mrutkows@us.ibm.com >; Chris Lauwers < lauwers@ubicity.com >;
    Lishitao < lishitao@huawei.com >; Priya T G < priya.g@netcracker.com >; Nguyenphu, Thinh (Nokia - US/Irving) ( thinh.nguyenphu@nokia.com )
    < thinh.nguyenphu@nokia.com >;
    tosca@lists.oasis-open.org
    Cc: Calin Curescu < calin.curescu@ericsson.com >
    Subject: InstantiationLevel discussion paper


     
    Hello all,
     
    As already discussed,  there is no clear equivalent to the NFV instantiation level in the TOSCA Simple Profile in YAML (i.e. a property that indicates how many instances of each node template
    should be instantiated at deployment of the service template). I think this is a candidate feature for 1.3.
     
    Yes, there is currently no language support for allowing the same node template to be instantiated multiple times. Your proposal circumvents this by making it the responsibility of the “create” operation
    to create multiple instances (based on the instantiation level data structure). While this will work, it means that the orchestrator (and any ongoing operational management systems) has no knowledge of the individual instances.

     
    I fully support your suggestion that we should address this in Version 1.3. You have previously proposed to support the ‘occurrences’ keyname in node templates. This is likely the correct starting
    point, but we need to think through the implications on the rest of the topology template. Specifically:
     

    ·         
    If node template A supports multiple occurrences, and node template B supports multiple occurrences, and we have a relationship between A and B, what is the desired cardinality of the relationship
    between A and B? Full mesh from all instances of A to all instances of B? Single relationship between one instance of A and one instance of B? What if A and B don’t have the same number of occurrences? We need to document the various use cases and then decide
    which grammar is required to create those use cases.

    ·         
    If node template A supports multiple occurrences, and some of A’s properties are initialized using get_input statements, how do we specify that a list of values must be provided for each
    named input? How do we specify which value in that list goes to which instance of A?

    ·         
    If node template A supports multiple occurrences, and node template B uses a { get_property, [A, <property_of_A> ] }, then which specific instance of A will be used in the corresponding
    property value of B?

    ·         
    If node template A supports multiple occurrences, and node template A is “realized” through substitution mapping, do we need any extensions to the substitution _mapping grammar to accommodate
    this?
     
    I’m sure there are other potential issues, but we can start with these.
     
    I have uploaded a discussion paper related to this issue. The intention of the paper is not to propose a solution for 1.3, but something that ETSI NFV could use in the meantime, using the mechanisms
    available in YAML 1.1 or 1.2.
     
    One of the concerns you point out is that, independent of multiple occurrences, the get_property syntax can get cumbersome when complex data types are used. I’m not sure that this is necessarily
    a problem, but I agree that we need to do a better job of clarifying what the appropriate syntax is for various scenarios that involve list, map, or complex data. Specifically:
     

    ·         
    For properties of type list, how do we specify the index of a specific entry in the list?

    ·         
    For properties of type map, how do we specify the entry that corresponds to a specific key value

    ·         
    For multiple instances of a requirement, how do we specify the index of a specific requirement instance in the list

    ·         
    It is currently not possible to use get_property to retrieve property values of relationships
     
    As the instantiationLevel is a complex type and there is a need to pass information from one node template to another, the grammar becomes unclear. I am looking for advice if this may be a base
    for a solution.
     
    The mechanism for passing information from one node template to another is through the ‘substitution_mapping’ grammar. I agree, that this grammar can get confusing, since in the v1.2 spec we’re overloading
    this grammar for two completely different purposes:
     
    Arturo: if Node_A is an abstract node template and Node_b is a node included in a topology template which substitutes for Node_A, is it also possible to pass  information from Node_A to Node_b with
    the get_property function (used e.g. in the interfaces definition of Node_b)?
     

    1.       
    Mapping : specify how properties, attributes, capabilities, requirements, and interfaces from one node template are mapped to corresponding
    entities in a substituting service template.

    2.       
    Matching : when the orchestrator finds multiple service templates that can be used to substitute a node template, how does the orchestrator
    select the best match?
     
    The examples in Chapter 14 do not properly highlight these two purposes. I strongly believe we need to more clearly separate them. In my opinion, substitution mapping grammar should be used exclusively
    to specify the intended mappings. Different grammar should then be used to drive matching. Since we use node filters in other parts of the spec for similar purposes, I suggest we investigate the use of node filters to guide matching decisions when multiple
    possible substituting template are found.
     
    Claude and Matt, is it possible to add this discussion to the agenda for tomorrow’s meeting?
     
    TOSCA_InstantiationLevel_Discussion.docx
     
    Best regards,
    Arturo
     
     
    Chris
     






  • 14.  RE: InstantiationLevel discussion paper

    Posted 03-27-2018 09:35




    Hello Chris, all,
     
    Calin and me have explored this further. As the properties of the substituted node are available as inputs to the substituting node, we think this may work using the get_input function
    in the substituting node template (not the get_property as I previously suggested).
     
    Please, see attached schema with the modified proposal.
     
    Best regards,
    Arturo
     
     
     
     


    From: Chris Lauwers [mailto:lauwers@ubicity.com]

    Sent: Monday, March 26, 2018 6:05 PM
    To: Arturo Martin De Nicolas <arturo.martin-de-nicolas@ericsson.com>; Lishitao <lishitao@huawei.com>; claude.noshpitz@att.com; Matthew Rutkowski (mrutkows@us.ibm.com) <mrutkows@us.ibm.com>; Priya T G <priya.g@netcracker.com>; Nguyenphu, Thinh (Nokia
    - US/Irving) (thinh.nguyenphu@nokia.com) <thinh.nguyenphu@nokia.com>; tosca@lists.oasis-open.org
    Cc: Calin Curescu <calin.curescu@ericsson.com>
    Subject: RE: InstantiationLevel discussion paper


     
    Hi Arturo,
     
    Are you suggesting that the substituting node template would use get_property to reach into the template that has the substituted node? If so, I don’t believe that should be allowed, since there
    is no way to ensure (at design time) that this would result in a valid operation.

     
    Chris
     


    From: Arturo Martin De Nicolas <arturo.martin-de-nicolas@ericsson.com>

    Sent: Monday, March 26, 2018 7:20 AM
    To: Lishitao <lishitao@huawei.com>; Chris Lauwers <lauwers@ubicity.com>; claude.noshpitz@att.com; Matthew Rutkowski (mrutkows@us.ibm.com) <mrutkows@us.ibm.com>; Priya T G <priya.g@netcracker.com>; Nguyenphu, Thinh (Nokia - US/Irving) (thinh.nguyenphu@nokia.com)
    <thinh.nguyenphu@nokia.com>; tosca@lists.oasis-open.org
    Cc: Calin Curescu <calin.curescu@ericsson.com>
    Subject: RE: InstantiationLevel discussion paper


     
    Hello Chris, Shitao,
     
    Thanks for the feedback. I agree, the solution for instantiation level that will hopefully be developed in 1.3 should give answer to all these important issues that Chris raises.
     
    My proposal, if we make it working, is a workaround until that solution is in place.
     
    Chris, I have one question below
    in green .
     
    Best regards,
    Arturo
     


    From: Lishitao [ mailto:lishitao@huawei.com ]

    Sent: Monday, March 26, 2018 4:22 AM
    To: Chris Lauwers < lauwers@ubicity.com >; Arturo Martin De Nicolas < arturo.martin-de-nicolas@ericsson.com >;
    claude.noshpitz@att.com ; Matthew Rutkowski ( mrutkows@us.ibm.com ) < mrutkows@us.ibm.com >; Priya T G < priya.g@netcracker.com >;
    Nguyenphu, Thinh (Nokia - US/Irving) ( thinh.nguyenphu@nokia.com ) < thinh.nguyenphu@nokia.com >;
    tosca@lists.oasis-open.org
    Cc: Calin Curescu < calin.curescu@ericsson.com >
    Subject: ?? : InstantiationLevel discussion paper


     
    Hi Chris and Arturo
     
    I think Chris has pointed out some interesting and important issues for the multiple instances design. I agree we need to take this as one of the high priority feature to be support in v1.3.
     
    Regards
    shitao
     


    ??? : Chris Lauwers [ mailto:lauwers@ubicity.com ]

    ???? : 2018 ? 3 ? 24 ? 2:12
    ??? : Arturo Martin De Nicolas < arturo.martin-de-nicolas@ericsson.com >;
    claude.noshpitz@att.com ; Matthew Rutkowski ( mrutkows@us.ibm.com ) < mrutkows@us.ibm.com >; Lishitao < lishitao@huawei.com >;
    Priya T G < priya.g@netcracker.com >; Nguyenphu, Thinh (Nokia - US/Irving) ( thinh.nguyenphu@nokia.com ) < thinh.nguyenphu@nokia.com >;
    tosca@lists.oasis-open.org
    ?? : Calin Curescu < calin.curescu@ericsson.com >
    ?? : RE: InstantiationLevel discussion paper


     
    Hi Arturo,
     
    Thanks for putting this together. We’ll use it as the basis for further discussion.

     
    Comments in-line:
     


    From: Arturo Martin De Nicolas [ mailto:arturo.martin-de-nicolas@ericsson.com ]

    Sent: Monday, March 19, 2018 10:01 AM
    To: claude.noshpitz@att.com ; Matthew Rutkowski ( mrutkows@us.ibm.com ) < mrutkows@us.ibm.com >; Chris Lauwers < lauwers@ubicity.com >;
    Lishitao < lishitao@huawei.com >; Priya T G < priya.g@netcracker.com >; Nguyenphu, Thinh (Nokia - US/Irving) ( thinh.nguyenphu@nokia.com )
    < thinh.nguyenphu@nokia.com >;
    tosca@lists.oasis-open.org
    Cc: Calin Curescu < calin.curescu@ericsson.com >
    Subject: InstantiationLevel discussion paper


     
    Hello all,
     
    As already discussed,  there is no clear equivalent to the NFV instantiation level in the TOSCA Simple Profile in YAML (i.e. a property that indicates how many instances of each node template should be instantiated
    at deployment of the service template). I think this is a candidate feature for 1.3.
     
    Yes, there is currently no language support for allowing the same node template to be instantiated multiple times. Your proposal circumvents this by making it the responsibility of the “create” operation to create
    multiple instances (based on the instantiation level data structure). While this will work, it means that the orchestrator (and any ongoing operational management systems) has no knowledge of the individual instances.

     
    I fully support your suggestion that we should address this in Version 1.3. You have previously proposed to support the ‘occurrences’ keyname in node templates. This is likely the correct starting point, but
    we need to think through the implications on the rest of the topology template. Specifically:
     


    If node template A supports multiple occurrences, and node template B supports multiple occurrences, and we have a relationship between A and B, what is the desired cardinality of the relationship between A and B? Full mesh from all instances of A to all instances
    of B? Single relationship between one instance of A and one instance of B? What if A and B don’t have the same number of occurrences? We need to document the various use cases and then decide which grammar is required to create those use cases.
    If node template A supports multiple occurrences, and some of A’s properties are initialized using get_input statements, how do we specify that a list of values must be provided for each named input? How do we specify which value in that list goes to which
    instance of A?
    If node template A supports multiple occurrences, and node template B uses a { get_property, [A, <property_of_A> ] }, then which specific instance of A will be used in the corresponding property value of B?
    If node template A supports multiple occurrences, and node template A is “realized” through substitution mapping, do we need any extensions to the substitution _mapping grammar to accommodate this?
     
    I’m sure there are other potential issues, but we can start with these.
     
    I have uploaded a discussion paper related to this issue. The intention of the paper is not to propose a solution for 1.3, but something that ETSI NFV could use in the meantime, using the mechanisms available in
    YAML 1.1 or 1.2.
     
    One of the concerns you point out is that, independent of multiple occurrences, the get_property syntax can get cumbersome when complex data types are used. I’m not sure that this is necessarily a problem, but
    I agree that we need to do a better job of clarifying what the appropriate syntax is for various scenarios that involve list, map, or complex data. Specifically:
     


    For properties of type list, how do we specify the index of a specific entry in the list?
    For properties of type map, how do we specify the entry that corresponds to a specific key value
    For multiple instances of a requirement, how do we specify the index of a specific requirement instance in the list
    It is currently not possible to use get_property to retrieve property values of relationships
     
    As the instantiationLevel is a complex type and there is a need to pass information from one node template to another, the grammar becomes unclear. I am looking for advice if this may be a base for a solution.
     
    The mechanism for passing information from one node template to another is through the ‘substitution_mapping’ grammar. I agree, that this grammar can get confusing, since in the v1.2 spec we’re overloading this
    grammar for two completely different purposes:
     
    Arturo: if Node_A is an abstract node template and Node_b is a node included in a topology template which substitutes for Node_A, is it also possible to pass  information from Node_A to Node_b with the get_property
    function (used e.g. in the interfaces definition of Node_b)?
     


    Mapping : specify how properties, attributes, capabilities, requirements, and interfaces from one node template are mapped to corresponding entities in a substituting service template.
    Matching : when the orchestrator finds multiple service templates that can be used to substitute a node template, how does the orchestrator select the best match?
     
    The examples in Chapter 14 do not properly highlight these two purposes. I strongly believe we need to more clearly separate them. In my opinion, substitution mapping grammar should be used exclusively to specify
    the intended mappings. Different grammar should then be used to drive matching. Since we use node filters in other parts of the spec for similar purposes, I suggest we investigate the use of node filters to guide matching decisions when multiple possible substituting
    template are found.
     
    Claude and Matt, is it possible to add this discussion to the agenda for tomorrow’s meeting?
     
    TOSCA_InstantiationLevel_Discussion.docx
     
    Best regards,
    Arturo
     
     
    Chris
     



    Attachment: InstantiationLevelProposalChangesSimple.yaml Description: InstantiationLevelProposalChangesSimple.yaml


  • 15.  RE: InstantiationLevel discussion paper

    Posted 03-27-2018 15:55




    Hi,
    Another alternative solution for v1.1 and v1.2 is to model instantiationLevel based policy type.  I have a draft proposal which was share with some of you. Now, I am modify it to address your concern.
    Perhaps we can discuss it too on today call. Thinh
     


    From: Arturo Martin De Nicolas [mailto:arturo.martin-de-nicolas@ericsson.com]

    Sent: Tuesday, March 27, 2018 4:34 AM
    To: Chris Lauwers <lauwers@ubicity.com>; Lishitao <lishitao@huawei.com>; claude.noshpitz@att.com; Matthew Rutkowski (mrutkows@us.ibm.com) <mrutkows@us.ibm.com>; Priya T G <priya.g@netcracker.com>; Nguyenphu, Thinh (Nokia - US/Irving) <thinh.nguyenphu@nokia.com>;
    tosca@lists.oasis-open.org
    Cc: Calin Curescu <calin.curescu@ericsson.com>
    Subject: RE: InstantiationLevel discussion paper


     
    Hello Chris, all,
     
    Calin and me have explored this further. As the properties of the substituted node are available as inputs to the substituting node, we think this may work using the get_input function
    in the substituting node template (not the get_property as I previously suggested).
     
    Please, see attached schema with the modified proposal.
     
    Best regards,
    Arturo
     
     
     
     


    From: Chris Lauwers [ mailto:lauwers@ubicity.com ]

    Sent: Monday, March 26, 2018 6:05 PM
    To: Arturo Martin De Nicolas < arturo.martin-de-nicolas@ericsson.com >; Lishitao < lishitao@huawei.com >;
    claude.noshpitz@att.com ; Matthew Rutkowski ( mrutkows@us.ibm.com ) < mrutkows@us.ibm.com >; Priya T G < priya.g@netcracker.com >;
    Nguyenphu, Thinh (Nokia - US/Irving) ( thinh.nguyenphu@nokia.com ) < thinh.nguyenphu@nokia.com >;
    tosca@lists.oasis-open.org
    Cc: Calin Curescu < calin.curescu@ericsson.com >
    Subject: RE: InstantiationLevel discussion paper


     
    Hi Arturo,
     
    Are you suggesting that the substituting node template would use get_property to reach into the template that has the substituted node? If so, I don’t believe that should be allowed, since there
    is no way to ensure (at design time) that this would result in a valid operation.

     
    Chris
     


    From: Arturo Martin De Nicolas < arturo.martin-de-nicolas@ericsson.com >

    Sent: Monday, March 26, 2018 7:20 AM
    To: Lishitao < lishitao@huawei.com >; Chris Lauwers < lauwers@ubicity.com >;
    claude.noshpitz@att.com ; Matthew Rutkowski ( mrutkows@us.ibm.com ) < mrutkows@us.ibm.com >; Priya T G < priya.g@netcracker.com >;
    Nguyenphu, Thinh (Nokia - US/Irving) ( thinh.nguyenphu@nokia.com ) < thinh.nguyenphu@nokia.com >;
    tosca@lists.oasis-open.org
    Cc: Calin Curescu < calin.curescu@ericsson.com >
    Subject: RE: InstantiationLevel discussion paper


     
    Hello Chris, Shitao,
     
    Thanks for the feedback. I agree, the solution for instantiation level that will hopefully be developed in 1.3 should give answer to all these important issues that Chris raises.
     
    My proposal, if we make it working, is a workaround until that solution is in place.
     
    Chris, I have one question below
    in green .
     
    Best regards,
    Arturo
     


    From: Lishitao [ mailto:lishitao@huawei.com ]

    Sent: Monday, March 26, 2018 4:22 AM
    To: Chris Lauwers < lauwers@ubicity.com >; Arturo Martin De Nicolas < arturo.martin-de-nicolas@ericsson.com >;
    claude.noshpitz@att.com ; Matthew Rutkowski ( mrutkows@us.ibm.com ) < mrutkows@us.ibm.com >; Priya T G < priya.g@netcracker.com >;
    Nguyenphu, Thinh (Nokia - US/Irving) ( thinh.nguyenphu@nokia.com ) < thinh.nguyenphu@nokia.com >;
    tosca@lists.oasis-open.org
    Cc: Calin Curescu < calin.curescu@ericsson.com >
    Subject: ?? : InstantiationLevel discussion paper


     
    Hi Chris and Arturo
     
    I think Chris has pointed out some interesting and important issues for the multiple instances design. I agree we need to take this as one of the high priority feature to be support in v1.3.
     
    Regards
    shitao
     


    ??? : Chris Lauwers [ mailto:lauwers@ubicity.com ]

    ???? : 2018 ? 3 ? 24 ? 2:12
    ??? : Arturo Martin De Nicolas < arturo.martin-de-nicolas@ericsson.com >;
    claude.noshpitz@att.com ; Matthew Rutkowski ( mrutkows@us.ibm.com ) < mrutkows@us.ibm.com >; Lishitao < lishitao@huawei.com >;
    Priya T G < priya.g@netcracker.com >; Nguyenphu, Thinh (Nokia - US/Irving) ( thinh.nguyenphu@nokia.com ) < thinh.nguyenphu@nokia.com >;
    tosca@lists.oasis-open.org
    ?? : Calin Curescu < calin.curescu@ericsson.com >
    ?? : RE: InstantiationLevel discussion paper


     
    Hi Arturo,
     
    Thanks for putting this together. We’ll use it as the basis for further discussion.

     
    Comments in-line:
     


    From: Arturo Martin De Nicolas [ mailto:arturo.martin-de-nicolas@ericsson.com ]

    Sent: Monday, March 19, 2018 10:01 AM
    To: claude.noshpitz@att.com ; Matthew Rutkowski ( mrutkows@us.ibm.com ) < mrutkows@us.ibm.com >; Chris Lauwers < lauwers@ubicity.com >;
    Lishitao < lishitao@huawei.com >; Priya T G < priya.g@netcracker.com >; Nguyenphu, Thinh (Nokia - US/Irving) ( thinh.nguyenphu@nokia.com )
    < thinh.nguyenphu@nokia.com >;
    tosca@lists.oasis-open.org
    Cc: Calin Curescu < calin.curescu@ericsson.com >
    Subject: InstantiationLevel discussion paper


     
    Hello all,
     
    As already discussed,  there is no clear equivalent to the NFV instantiation level in the TOSCA Simple Profile in YAML (i.e. a property that indicates how many instances of each node template should be instantiated
    at deployment of the service template). I think this is a candidate feature for 1.3.
     
    Yes, there is currently no language support for allowing the same node template to be instantiated multiple times. Your proposal circumvents this by making it the responsibility of the “create” operation to create
    multiple instances (based on the instantiation level data structure). While this will work, it means that the orchestrator (and any ongoing operational management systems) has no knowledge of the individual instances.

     
    I fully support your suggestion that we should address this in Version 1.3. You have previously proposed to support the ‘occurrences’ keyname in node templates. This is likely the correct starting point, but
    we need to think through the implications on the rest of the topology template. Specifically:
     


    If node template A supports multiple occurrences, and node template B supports multiple occurrences, and we have a relationship between A and B, what is the desired cardinality of the relationship between A and B? Full mesh from all instances of A to all instances
    of B? Single relationship between one instance of A and one instance of B? What if A and B don’t have the same number of occurrences? We need to document the various use cases and then decide which grammar is required to create those use cases.
    If node template A supports multiple occurrences, and some of A’s properties are initialized using get_input statements, how do we specify that a list of values must be provided for each named input? How do we specify which value in that list goes to which
    instance of A?
    If node template A supports multiple occurrences, and node template B uses a { get_property, [A, <property_of_A> ] }, then which specific instance of A will be used in the corresponding property value of B?
    If node template A supports multiple occurrences, and node template A is “realized” through substitution mapping, do we need any extensions to the substitution _mapping grammar to accommodate this?
     
    I’m sure there are other potential issues, but we can start with these.
     
    I have uploaded a discussion paper related to this issue. The intention of the paper is not to propose a solution for 1.3, but something that ETSI NFV could use in the meantime, using the mechanisms available in
    YAML 1.1 or 1.2.
     
    One of the concerns you point out is that, independent of multiple occurrences, the get_property syntax can get cumbersome when complex data types are used. I’m not sure that this is necessarily a problem, but
    I agree that we need to do a better job of clarifying what the appropriate syntax is for various scenarios that involve list, map, or complex data. Specifically:
     


    For properties of type list, how do we specify the index of a specific entry in the list?
    For properties of type map, how do we specify the entry that corresponds to a specific key value
    For multiple instances of a requirement, how do we specify the index of a specific requirement instance in the list
    It is currently not possible to use get_property to retrieve property values of relationships
     
    As the instantiationLevel is a complex type and there is a need to pass information from one node template to another, the grammar becomes unclear. I am looking for advice if this may be a base for a solution.
     
    The mechanism for passing information from one node template to another is through the ‘substitution_mapping’ grammar. I agree, that this grammar can get confusing, since in the v1.2 spec we’re overloading this
    grammar for two completely different purposes:
     
    Arturo: if Node_A is an abstract node template and Node_b is a node included in a topology template which substitutes for Node_A, is it also possible to pass  information from Node_A to Node_b with the get_property
    function (used e.g. in the interfaces definition of Node_b)?
     


    Mapping : specify how properties, attributes, capabilities, requirements, and interfaces from one node template are mapped to corresponding entities in a substituting service template.
    Matching : when the orchestrator finds multiple service templates that can be used to substitute a node template, how does the orchestrator select the best match?
     
    The examples in Chapter 14 do not properly highlight these two purposes. I strongly believe we need to more clearly separate them. In my opinion, substitution mapping grammar should be used exclusively to specify
    the intended mappings. Different grammar should then be used to drive matching. Since we use node filters in other parts of the spec for similar purposes, I suggest we investigate the use of node filters to guide matching decisions when multiple possible substituting
    template are found.
     
    Claude and Matt, is it possible to add this discussion to the agenda for tomorrow’s meeting?
     
    TOSCA_InstantiationLevel_Discussion.docx
     
    Best regards,
    Arturo
     
     
    Chris
     






  • 16.  RE: InstantiationLevel discussion paper

    Posted 03-29-2018 23:55




    Hi Thinh,
     
    The purpose of policies is to control mechanism. Before we can start talking about policies that can control the process of creating multiple node instances from the same template,
    we need to first discuss what the mechanism is that enables this functionality in the first place.
     
    Chris
     


    From: Nguyenphu, Thinh (Nokia - US/Irving) [mailto:thinh.nguyenphu@nokia.com]

    Sent: Tuesday, March 27, 2018 8:54 AM
    To: Arturo Martin De Nicolas <arturo.martin-de-nicolas@ericsson.com>; Chris Lauwers <lauwers@ubicity.com>; Lishitao <lishitao@huawei.com>; claude.noshpitz@att.com; Matthew Rutkowski (mrutkows@us.ibm.com) <mrutkows@us.ibm.com>; Priya T G <priya.g@netcracker.com>;
    tosca@lists.oasis-open.org
    Cc: Calin Curescu <calin.curescu@ericsson.com>
    Subject: RE: InstantiationLevel discussion paper


     
    Hi,
    Another alternative solution for v1.1 and v1.2 is to model instantiationLevel based policy type.  I have a draft proposal which was share with some of you. Now, I am modify it to address your concern.
    Perhaps we can discuss it too on today call. Thinh
     


    From: Arturo Martin De Nicolas [ mailto:arturo.martin-de-nicolas@ericsson.com ]

    Sent: Tuesday, March 27, 2018 4:34 AM
    To: Chris Lauwers < lauwers@ubicity.com >; Lishitao < lishitao@huawei.com >;
    claude.noshpitz@att.com ; Matthew Rutkowski ( mrutkows@us.ibm.com ) < mrutkows@us.ibm.com >; Priya T G < priya.g@netcracker.com >;
    Nguyenphu, Thinh (Nokia - US/Irving) < thinh.nguyenphu@nokia.com >;
    tosca@lists.oasis-open.org
    Cc: Calin Curescu < calin.curescu@ericsson.com >
    Subject: RE: InstantiationLevel discussion paper


     
    Hello Chris, all,
     
    Calin and me have explored this further. As the properties of the substituted node are available as inputs to the substituting node, we think this may work using the get_input function
    in the substituting node template (not the get_property as I previously suggested).
     
    Please, see attached schema with the modified proposal.
     
    Best regards,
    Arturo
     
     
     
     


    From: Chris Lauwers [ mailto:lauwers@ubicity.com ]

    Sent: Monday, March 26, 2018 6:05 PM
    To: Arturo Martin De Nicolas < arturo.martin-de-nicolas@ericsson.com >; Lishitao < lishitao@huawei.com >;
    claude.noshpitz@att.com ; Matthew Rutkowski ( mrutkows@us.ibm.com ) < mrutkows@us.ibm.com >; Priya T G < priya.g@netcracker.com >;
    Nguyenphu, Thinh (Nokia - US/Irving) ( thinh.nguyenphu@nokia.com ) < thinh.nguyenphu@nokia.com >;
    tosca@lists.oasis-open.org
    Cc: Calin Curescu < calin.curescu@ericsson.com >
    Subject: RE: InstantiationLevel discussion paper


     
    Hi Arturo,
     
    Are you suggesting that the substituting node template would use get_property to reach into the template that has the substituted node? If so, I don’t believe that should be allowed, since there
    is no way to ensure (at design time) that this would result in a valid operation.

     
    Chris
     


    From: Arturo Martin De Nicolas < arturo.martin-de-nicolas@ericsson.com >

    Sent: Monday, March 26, 2018 7:20 AM
    To: Lishitao < lishitao@huawei.com >; Chris Lauwers < lauwers@ubicity.com >;
    claude.noshpitz@att.com ; Matthew Rutkowski ( mrutkows@us.ibm.com ) < mrutkows@us.ibm.com >; Priya T G < priya.g@netcracker.com >;
    Nguyenphu, Thinh (Nokia - US/Irving) ( thinh.nguyenphu@nokia.com ) < thinh.nguyenphu@nokia.com >;
    tosca@lists.oasis-open.org
    Cc: Calin Curescu < calin.curescu@ericsson.com >
    Subject: RE: InstantiationLevel discussion paper


     
    Hello Chris, Shitao,
     
    Thanks for the feedback. I agree, the solution for instantiation level that will hopefully be developed in 1.3 should give answer to all these important issues that Chris raises.
     
    My proposal, if we make it working, is a workaround until that solution is in place.
     
    Chris, I have one question below
    in green .
     
    Best regards,
    Arturo
     


    From: Lishitao [ mailto:lishitao@huawei.com ]

    Sent: Monday, March 26, 2018 4:22 AM
    To: Chris Lauwers < lauwers@ubicity.com >; Arturo Martin De Nicolas < arturo.martin-de-nicolas@ericsson.com >;
    claude.noshpitz@att.com ; Matthew Rutkowski ( mrutkows@us.ibm.com ) < mrutkows@us.ibm.com >; Priya T G < priya.g@netcracker.com >;
    Nguyenphu, Thinh (Nokia - US/Irving) ( thinh.nguyenphu@nokia.com ) < thinh.nguyenphu@nokia.com >;
    tosca@lists.oasis-open.org
    Cc: Calin Curescu < calin.curescu@ericsson.com >
    Subject: ?? : InstantiationLevel discussion paper


     
    Hi Chris and Arturo
     
    I think Chris has pointed out some interesting and important issues for the multiple instances design. I agree we need to take this as one of the high priority feature to be support in v1.3.
     
    Regards
    shitao
     


    ??? : Chris Lauwers [ mailto:lauwers@ubicity.com ]

    ???? : 2018 ? 3 ? 24 ? 2:12
    ??? : Arturo Martin De Nicolas < arturo.martin-de-nicolas@ericsson.com >;
    claude.noshpitz@att.com ; Matthew Rutkowski ( mrutkows@us.ibm.com ) < mrutkows@us.ibm.com >; Lishitao < lishitao@huawei.com >;
    Priya T G < priya.g@netcracker.com >; Nguyenphu, Thinh (Nokia - US/Irving) ( thinh.nguyenphu@nokia.com ) < thinh.nguyenphu@nokia.com >;
    tosca@lists.oasis-open.org
    ?? : Calin Curescu < calin.curescu@ericsson.com >
    ?? : RE: InstantiationLevel discussion paper


     
    Hi Arturo,
     
    Thanks for putting this together. We’ll use it as the basis for further discussion.

     
    Comments in-line:
     


    From: Arturo Martin De Nicolas [ mailto:arturo.martin-de-nicolas@ericsson.com ]

    Sent: Monday, March 19, 2018 10:01 AM
    To: claude.noshpitz@att.com ; Matthew Rutkowski ( mrutkows@us.ibm.com ) < mrutkows@us.ibm.com >; Chris Lauwers < lauwers@ubicity.com >;
    Lishitao < lishitao@huawei.com >; Priya T G < priya.g@netcracker.com >; Nguyenphu, Thinh (Nokia - US/Irving) ( thinh.nguyenphu@nokia.com )
    < thinh.nguyenphu@nokia.com >;
    tosca@lists.oasis-open.org
    Cc: Calin Curescu < calin.curescu@ericsson.com >
    Subject: InstantiationLevel discussion paper


     
    Hello all,
     
    As already discussed,  there is no clear equivalent to the NFV instantiation level in the TOSCA Simple Profile in YAML (i.e. a property that indicates how many instances of each node template should be instantiated
    at deployment of the service template). I think this is a candidate feature for 1.3.
     
    Yes, there is currently no language support for allowing the same node template to be instantiated multiple times. Your proposal circumvents this by making it the responsibility of the “create” operation to create
    multiple instances (based on the instantiation level data structure). While this will work, it means that the orchestrator (and any ongoing operational management systems) has no knowledge of the individual instances.

     
    I fully support your suggestion that we should address this in Version 1.3. You have previously proposed to support the ‘occurrences’ keyname in node templates. This is likely the correct starting point, but
    we need to think through the implications on the rest of the topology template. Specifically:
     

    ·         
    If node template A supports multiple occurrences, and node template B supports multiple occurrences, and we have a relationship between A and B, what is the desired cardinality of the relationship between
    A and B? Full mesh from all instances of A to all instances of B? Single relationship between one instance of A and one instance of B? What if A and B don’t have the same number of occurrences? We need to document the various use cases and then decide which
    grammar is required to create those use cases.

    ·         
    If node template A supports multiple occurrences, and some of A’s properties are initialized using get_input statements, how do we specify that a list of values must be provided for each named input?
    How do we specify which value in that list goes to which instance of A?

    ·         
    If node template A supports multiple occurrences, and node template B uses a { get_property, [A, <property_of_A> ] }, then which specific instance of A will be used in the corresponding property value
    of B?

    ·         
    If node template A supports multiple occurrences, and node template A is “realized” through substitution mapping, do we need any extensions to the substitution _mapping grammar to accommodate this?
     
    I’m sure there are other potential issues, but we can start with these.
     
    I have uploaded a discussion paper related to this issue. The intention of the paper is not to propose a solution for 1.3, but something that ETSI NFV could use in the meantime, using the mechanisms available in
    YAML 1.1 or 1.2.
     
    One of the concerns you point out is that, independent of multiple occurrences, the get_property syntax can get cumbersome when complex data types are used. I’m not sure that this is necessarily a problem, but
    I agree that we need to do a better job of clarifying what the appropriate syntax is for various scenarios that involve list, map, or complex data. Specifically:
     

    ·         
    For properties of type list, how do we specify the index of a specific entry in the list?

    ·         
    For properties of type map, how do we specify the entry that corresponds to a specific key value

    ·         
    For multiple instances of a requirement, how do we specify the index of a specific requirement instance in the list

    ·         
    It is currently not possible to use get_property to retrieve property values of relationships
     
    As the instantiationLevel is a complex type and there is a need to pass information from one node template to another, the grammar becomes unclear. I am looking for advice if this may be a base for a solution.
     
    The mechanism for passing information from one node template to another is through the ‘substitution_mapping’ grammar. I agree, that this grammar can get confusing, since in the v1.2 spec we’re overloading this
    grammar for two completely different purposes:
     
    Arturo: if Node_A is an abstract node template and Node_b is a node included in a topology template which substitutes for Node_A, is it also possible to pass  information from Node_A to Node_b with the get_property
    function (used e.g. in the interfaces definition of Node_b)?
     

    1.       
    Mapping : specify how properties, attributes, capabilities, requirements, and interfaces from one node template are mapped to corresponding entities in a substituting
    service template.

    2.       
    Matching : when the orchestrator finds multiple service templates that can be used to substitute a node template, how does the orchestrator select the best match?
     
    The examples in Chapter 14 do not properly highlight these two purposes. I strongly believe we need to more clearly separate them. In my opinion, substitution mapping grammar should be used exclusively to specify
    the intended mappings. Different grammar should then be used to drive matching. Since we use node filters in other parts of the spec for similar purposes, I suggest we investigate the use of node filters to guide matching decisions when multiple possible substituting
    template are found.
     
    Claude and Matt, is it possible to add this discussion to the agenda for tomorrow’s meeting?
     
    TOSCA_InstantiationLevel_Discussion.docx
     
    Best regards,
    Arturo
     
     
    Chris
     






  • 17.  RE: InstantiationLevel discussion paper

    Posted 03-26-2018 15:46
      |   view attached




    Hi,
     
    I’m attaching a write-up I did on this topic. It includes suggested extensions to the grammar that could be used to control the number of instances. It also points out some areas where more exploration
    is necessary.
     
    Chris
     


    From: Lishitao <lishitao@huawei.com>
    Sent: Sunday, March 25, 2018 7:22 PM
    To: Chris Lauwers <lauwers@ubicity.com>; Arturo Martin De Nicolas <arturo.martin-de-nicolas@ericsson.com>; claude.noshpitz@att.com; Matthew Rutkowski (mrutkows@us.ibm.com) <mrutkows@us.ibm.com>; Priya T G <priya.g@netcracker.com>; Nguyenphu, Thinh (Nokia
    - US/Irving) (thinh.nguyenphu@nokia.com) <thinh.nguyenphu@nokia.com>; tosca@lists.oasis-open.org
    Cc: Calin Curescu <calin.curescu@ericsson.com>
    Subject: ?? : InstantiationLevel discussion paper


     
    Hi Chris and Arturo
     
    I think Chris has pointed out some interesting and important issues for the multiple instances design. I agree we need to take this as one of the high priority feature to be support in v1.3.
     
    Regards
    shitao
     


    ??? : Chris Lauwers [ mailto:lauwers@ubicity.com ]

    ???? : 2018 ? 3 ? 24 ? 2:12
    ??? : Arturo Martin De Nicolas < arturo.martin-de-nicolas@ericsson.com >;
    claude.noshpitz@att.com ; Matthew Rutkowski ( mrutkows@us.ibm.com ) < mrutkows@us.ibm.com >; Lishitao < lishitao@huawei.com >;
    Priya T G < priya.g@netcracker.com >; Nguyenphu, Thinh (Nokia - US/Irving) ( thinh.nguyenphu@nokia.com ) < thinh.nguyenphu@nokia.com >;
    tosca@lists.oasis-open.org
    ?? : Calin Curescu < calin.curescu@ericsson.com >
    ?? : RE: InstantiationLevel discussion paper


     
    Hi Arturo,
     
    Thanks for putting this together. We’ll use it as the basis for further discussion.

     
    Comments in-line:
     


    From: Arturo Martin De Nicolas [ mailto:arturo.martin-de-nicolas@ericsson.com ]

    Sent: Monday, March 19, 2018 10:01 AM
    To: claude.noshpitz@att.com ; Matthew Rutkowski ( mrutkows@us.ibm.com ) < mrutkows@us.ibm.com >; Chris Lauwers < lauwers@ubicity.com >;
    Lishitao < lishitao@huawei.com >; Priya T G < priya.g@netcracker.com >; Nguyenphu, Thinh (Nokia - US/Irving) ( thinh.nguyenphu@nokia.com )
    < thinh.nguyenphu@nokia.com >;
    tosca@lists.oasis-open.org
    Cc: Calin Curescu < calin.curescu@ericsson.com >
    Subject: InstantiationLevel discussion paper


     
    Hello all,
     
    As already discussed,  there is no clear equivalent to the NFV instantiation level in the TOSCA Simple Profile in YAML (i.e. a property that indicates how many instances of each node template should be instantiated
    at deployment of the service template). I think this is a candidate feature for 1.3.
     
    Yes, there is currently no language support for allowing the same node template to be instantiated multiple times. Your proposal circumvents this by making it the responsibility of the “create” operation to create
    multiple instances (based on the instantiation level data structure). While this will work, it means that the orchestrator (and any ongoing operational management systems) has no knowledge of the individual instances.

     
    I fully support your suggestion that we should address this in Version 1.3. You have previously proposed to support the ‘occurrences’ keyname in node templates. This is likely the correct starting point, but
    we need to think through the implications on the rest of the topology template. Specifically:
     


    If node template A supports multiple occurrences, and node template B supports multiple occurrences, and we have a relationship between A and B, what is the desired cardinality of the relationship between A and B? Full mesh from all instances of A to all instances
    of B? Single relationship between one instance of A and one instance of B? What if A and B don’t have the same number of occurrences? We need to document the various use cases and then decide which grammar is required to create those use cases.
    If node template A supports multiple occurrences, and some of A’s properties are initialized using get_input statements, how do we specify that a list of values must be provided for each named input? How do we specify which value in that list goes to which
    instance of A?
    If node template A supports multiple occurrences, and node template B uses a { get_property, [A, <property_of_A> ] }, then which specific instance of A will be used in the corresponding property value of B?
    If node template A supports multiple occurrences, and node template A is “realized” through substitution mapping, do we need any extensions to the substitution _mapping grammar to accommodate this?
     
    I’m sure there are other potential issues, but we can start with these.
     
    I have uploaded a discussion paper related to this issue. The intention of the paper is not to propose a solution for 1.3, but something that ETSI NFV could use in the meantime, using the mechanisms available in
    YAML 1.1 or 1.2.
     
    One of the concerns you point out is that, independent of multiple occurrences, the get_property syntax can get cumbersome when complex data types are used. I’m not sure that this is necessarily a problem, but
    I agree that we need to do a better job of clarifying what the appropriate syntax is for various scenarios that involve list, map, or complex data. Specifically:
     


    For properties of type list, how do we specify the index of a specific entry in the list?
    For properties of type map, how do we specify the entry that corresponds to a specific key value
    For multiple instances of a requirement, how do we specify the index of a specific requirement instance in the list
    It is currently not possible to use get_property to retrieve property values of relationships
     
    As the instantiationLevel is a complex type and there is a need to pass information from one node template to another, the grammar becomes unclear. I am looking for advice if this may be a base for a solution.
     
    The mechanism for passing information from one node template to another is through the ‘substitution_mapping’ grammar. I agree, that this grammar can get confusing, since in the v1.2 spec we’re overloading this
    grammar for two completely different purposes:
     


    Mapping : specify how properties, attributes, capabilities, requirements, and interfaces from one node template are mapped to corresponding entities in a substituting service template.
    Matching : when the orchestrator finds multiple service templates that can be used to substitute a node template, how does the orchestrator select the best match?
     
    The examples in Chapter 14 do not properly highlight these two purposes. I strongly believe we need to more clearly separate them. In my opinion, substitution mapping grammar should be used exclusively to specify
    the intended mappings. Different grammar should then be used to drive matching. Since we use node filters in other parts of the spec for similar purposes, I suggest we investigate the use of node filters to guide matching decisions when multiple possible substituting
    template are found.
     
    Claude and Matt, is it possible to add this discussion to the agenda for tomorrow’s meeting?
     
    TOSCA_InstantiationLevel_Discussion.docx
     
    Best regards,
    Arturo
     
     
    Chris
     



    Attachment: Multiple Instances.docx Description: Multiple Instances.docx

    Attachment(s)

    docx
    Multiple Instances.docx   57 KB 1 version


  • 18.  ??: InstantiationLevel discussion paper

    Posted 03-27-2018 02:06




    Hi Chris
     
    What do you think of the usage of tosca.capabilities.Scalable? It indicates min_instances, max_instances and default_instances which will be applied to the node that contains this
    capability. Based on what you pointed out, this capability shall not be supported by TOSCA orchestrator at this moment, right? And we also questioned that why scalable is a capability in TOSCA. I think we also need to clarify this ASAP.

     
    Regards
    shitao


    ??? : Chris Lauwers [mailto:lauwers@ubicity.com]

    ???? : 2018 ? 3 ? 26 ?
    23:46
    ??? : Lishitao <lishitao@huawei.com>; Arturo Martin De Nicolas <arturo.martin-de-nicolas@ericsson.com>; claude.noshpitz@att.com; Matthew Rutkowski (mrutkows@us.ibm.com) <mrutkows@us.ibm.com>; Priya T
    G <priya.g@netcracker.com>; Nguyenphu, Thinh (Nokia - US/Irving) (thinh.nguyenphu@nokia.com) <thinh.nguyenphu@nokia.com>; tosca@lists.oasis-open.org
    ?? : Calin Curescu <calin.curescu@ericsson.com>
    ?? : RE: InstantiationLevel discussion paper


     
    Hi,
     
    I’m attaching a write-up I did on this topic. It includes suggested extensions to the grammar that could be used to control the number of instances. It also points out some areas where
    more exploration is necessary.
     
    Chris
     


    From: Lishitao < lishitao@huawei.com >

    Sent: Sunday, March 25, 2018 7:22 PM
    To: Chris Lauwers < lauwers@ubicity.com >; Arturo Martin De Nicolas < arturo.martin-de-nicolas@ericsson.com >;
    claude.noshpitz@att.com ; Matthew Rutkowski ( mrutkows@us.ibm.com ) < mrutkows@us.ibm.com >; Priya T G < priya.g@netcracker.com >;
    Nguyenphu, Thinh (Nokia - US/Irving) ( thinh.nguyenphu@nokia.com ) < thinh.nguyenphu@nokia.com >;
    tosca@lists.oasis-open.org
    Cc: Calin Curescu < calin.curescu@ericsson.com >
    Subject: ?? : InstantiationLevel discussion paper


     
    Hi Chris and Arturo
     
    I think Chris has pointed out some interesting and important issues for the multiple instances design. I agree we need to take this as one of the high priority feature to be support
    in v1.3.
     
    Regards
    shitao
     


    ??? : Chris Lauwers [ mailto:lauwers@ubicity.com ]

    ???? : 2018 ? 3 ? 24 ?
    2:12
    ??? : Arturo Martin De Nicolas < arturo.martin-de-nicolas@ericsson.com >;
    claude.noshpitz@att.com ; Matthew Rutkowski ( mrutkows@us.ibm.com ) < mrutkows@us.ibm.com >; Lishitao < lishitao@huawei.com >;
    Priya T G < priya.g@netcracker.com >; Nguyenphu, Thinh (Nokia - US/Irving) ( thinh.nguyenphu@nokia.com ) < thinh.nguyenphu@nokia.com >;
    tosca@lists.oasis-open.org
    ?? : Calin Curescu < calin.curescu@ericsson.com >
    ?? : RE: InstantiationLevel discussion paper


     
    Hi Arturo,
     
    Thanks for putting this together. We’ll use it as the basis for further discussion.

     
    Comments in-line:
     


    From: Arturo Martin De Nicolas [ mailto:arturo.martin-de-nicolas@ericsson.com ]

    Sent: Monday, March 19, 2018 10:01 AM
    To: claude.noshpitz@att.com ; Matthew Rutkowski ( mrutkows@us.ibm.com ) < mrutkows@us.ibm.com >; Chris Lauwers < lauwers@ubicity.com >;
    Lishitao < lishitao@huawei.com >; Priya T G < priya.g@netcracker.com >; Nguyenphu, Thinh (Nokia - US/Irving) ( thinh.nguyenphu@nokia.com )
    < thinh.nguyenphu@nokia.com >;
    tosca@lists.oasis-open.org
    Cc: Calin Curescu < calin.curescu@ericsson.com >
    Subject: InstantiationLevel discussion paper


     
    Hello all,
     
    As already discussed,  there is no clear equivalent to the NFV instantiation level in the TOSCA Simple Profile in YAML (i.e. a property that indicates how many instances of each node template
    should be instantiated at deployment of the service template). I think this is a candidate feature for 1.3.
     
    Yes, there is currently no language support for allowing the same node template to be instantiated multiple times. Your proposal circumvents this by making it the responsibility of the “create” operation
    to create multiple instances (based on the instantiation level data structure). While this will work, it means that the orchestrator (and any ongoing operational management systems) has no knowledge of the individual instances.

     
    I fully support your suggestion that we should address this in Version 1.3. You have previously proposed to support the ‘occurrences’ keyname in node templates. This is likely the correct starting
    point, but we need to think through the implications on the rest of the topology template. Specifically:
     

    ·         
    If node template A supports multiple occurrences, and node template B supports multiple occurrences, and we have a relationship between A and B, what is the desired cardinality of the relationship
    between A and B? Full mesh from all instances of A to all instances of B? Single relationship between one instance of A and one instance of B? What if A and B don’t have the same number of occurrences? We need to document the various use cases and then decide
    which grammar is required to create those use cases.

    ·         
    If node template A supports multiple occurrences, and some of A’s properties are initialized using get_input statements, how do we specify that a list of values must be provided for each
    named input? How do we specify which value in that list goes to which instance of A?

    ·         
    If node template A supports multiple occurrences, and node template B uses a { get_property, [A, <property_of_A> ] }, then which specific instance of A will be used in the corresponding
    property value of B?

    ·         
    If node template A supports multiple occurrences, and node template A is “realized” through substitution mapping, do we need any extensions to the substitution _mapping grammar to accommodate
    this?
     
    I’m sure there are other potential issues, but we can start with these.
     
    I have uploaded a discussion paper related to this issue. The intention of the paper is not to propose a solution for 1.3, but something that ETSI NFV could use in the meantime, using the mechanisms
    available in YAML 1.1 or 1.2.
     
    One of the concerns you point out is that, independent of multiple occurrences, the get_property syntax can get cumbersome when complex data types are used. I’m not sure that this is necessarily
    a problem, but I agree that we need to do a better job of clarifying what the appropriate syntax is for various scenarios that involve list, map, or complex data. Specifically:
     

    ·         
    For properties of type list, how do we specify the index of a specific entry in the list?

    ·         
    For properties of type map, how do we specify the entry that corresponds to a specific key value

    ·         
    For multiple instances of a requirement, how do we specify the index of a specific requirement instance in the list

    ·         
    It is currently not possible to use get_property to retrieve property values of relationships
     
    As the instantiationLevel is a complex type and there is a need to pass information from one node template to another, the grammar becomes unclear. I am looking for advice if this may be a base
    for a solution.
     
    The mechanism for passing information from one node template to another is through the ‘substitution_mapping’ grammar. I agree, that this grammar can get confusing, since in the v1.2 spec we’re overloading
    this grammar for two completely different purposes:
     

    1.       
    Mapping : specify how properties, attributes, capabilities, requirements, and interfaces from one node template are mapped to corresponding
    entities in a substituting service template.

    2.       
    Matching : when the orchestrator finds multiple service templates that can be used to substitute a node template, how does the orchestrator
    select the best match?
     
    The examples in Chapter 14 do not properly highlight these two purposes. I strongly believe we need to more clearly separate them. In my opinion, substitution mapping grammar should be used exclusively
    to specify the intended mappings. Different grammar should then be used to drive matching. Since we use node filters in other parts of the spec for similar purposes, I suggest we investigate the use of node filters to guide matching decisions when multiple
    possible substituting template are found.
     
    Claude and Matt, is it possible to add this discussion to the agenda for tomorrow’s meeting?
     
    TOSCA_InstantiationLevel_Discussion.docx
     
    Best regards,
    Arturo
     
     
    Chris
     






  • 19.  RE: InstantiationLevel discussion paper

    Posted 03-29-2018 23:53




    I must admit I don’t understand tosca.capabilities.Scalable. Based on the current TOSCA standard, capabilities only exist for the purpose of being able to be the target of a relationship (that’s what makes a
    capability different from just a regular property). What is the relationship that has tosca.capabilities.Scalable as its target, and types of operations would have to be invoked on this relationship in order to make the target node scale?
     
    Chris
     


    From: Lishitao [mailto:lishitao@huawei.com]
    Sent: Monday, March 26, 2018 7:05 PM
    To: Chris Lauwers <lauwers@ubicity.com>; Arturo Martin De Nicolas <arturo.martin-de-nicolas@ericsson.com>; claude.noshpitz@att.com; Matthew Rutkowski (mrutkows@us.ibm.com) <mrutkows@us.ibm.com>; Priya T G <priya.g@netcracker.com>; Nguyenphu, Thinh (Nokia
    - US/Irving) (thinh.nguyenphu@nokia.com) <thinh.nguyenphu@nokia.com>; tosca@lists.oasis-open.org
    Cc: Calin Curescu <calin.curescu@ericsson.com>
    Subject: ?? : InstantiationLevel discussion paper


     
    Hi Chris
     
    What do you think of the usage of tosca.capabilities.Scalable? It indicates min_instances, max_instances and default_instances which will be applied to the node that
    contains this capability. Based on what you pointed out, this capability shall not be supported by TOSCA orchestrator at this moment, right? And we also questioned that why scalable is a capability in TOSCA. I think we also need to clarify this ASAP.

     
    Regards
    shitao


    ??? :
    Chris Lauwers [ mailto:lauwers@ubicity.com ]

    ???? : 2018 ? 3 ? 26 ? 23:46
    ??? : Lishitao < lishitao@huawei.com >; Arturo Martin De Nicolas < arturo.martin-de-nicolas@ericsson.com >;
    claude.noshpitz@att.com ; Matthew Rutkowski ( mrutkows@us.ibm.com ) < mrutkows@us.ibm.com >; Priya T G < priya.g@netcracker.com >;
    Nguyenphu, Thinh (Nokia - US/Irving) ( thinh.nguyenphu@nokia.com ) < thinh.nguyenphu@nokia.com >;
    tosca@lists.oasis-open.org
    ?? : Calin Curescu < calin.curescu@ericsson.com >
    ?? : RE: InstantiationLevel discussion paper


     
    Hi,
     
    I’m attaching a write-up I did on this topic. It includes suggested extensions to the grammar that could be used to control the number of instances. It also points out some areas where more exploration is necessary.
     
    Chris
     


    From: Lishitao < lishitao@huawei.com >

    Sent: Sunday, March 25, 2018 7:22 PM
    To: Chris Lauwers < lauwers@ubicity.com >; Arturo Martin De Nicolas < arturo.martin-de-nicolas@ericsson.com >;
    claude.noshpitz@att.com ; Matthew Rutkowski ( mrutkows@us.ibm.com ) < mrutkows@us.ibm.com >; Priya T G < priya.g@netcracker.com >;
    Nguyenphu, Thinh (Nokia - US/Irving) ( thinh.nguyenphu@nokia.com ) < thinh.nguyenphu@nokia.com >;
    tosca@lists.oasis-open.org
    Cc: Calin Curescu < calin.curescu@ericsson.com >
    Subject: ?? : InstantiationLevel discussion paper


     
    Hi Chris and Arturo
     
    I think Chris has pointed out some interesting and important issues for the multiple instances design. I agree we need to take this as one of the high priority feature
    to be support in v1.3.
     
    Regards
    shitao
     


    ??? :
    Chris Lauwers [ mailto:lauwers@ubicity.com ]

    ???? : 2018 ? 3 ? 24 ? 2:12
    ??? : Arturo Martin De Nicolas < arturo.martin-de-nicolas@ericsson.com >;
    claude.noshpitz@att.com ; Matthew Rutkowski ( mrutkows@us.ibm.com ) < mrutkows@us.ibm.com >; Lishitao < lishitao@huawei.com >;
    Priya T G < priya.g@netcracker.com >; Nguyenphu, Thinh (Nokia - US/Irving) ( thinh.nguyenphu@nokia.com ) < thinh.nguyenphu@nokia.com >;
    tosca@lists.oasis-open.org
    ?? : Calin Curescu < calin.curescu@ericsson.com >
    ?? : RE: InstantiationLevel discussion paper


     
    Hi Arturo,
     
    Thanks for putting this together. We’ll use it as the basis for further discussion.

     
    Comments in-line:
     


    From: Arturo Martin De Nicolas [ mailto:arturo.martin-de-nicolas@ericsson.com ]

    Sent: Monday, March 19, 2018 10:01 AM
    To: claude.noshpitz@att.com ; Matthew Rutkowski ( mrutkows@us.ibm.com ) < mrutkows@us.ibm.com >; Chris Lauwers < lauwers@ubicity.com >;
    Lishitao < lishitao@huawei.com >; Priya T G < priya.g@netcracker.com >; Nguyenphu, Thinh (Nokia - US/Irving) ( thinh.nguyenphu@nokia.com )
    < thinh.nguyenphu@nokia.com >;
    tosca@lists.oasis-open.org
    Cc: Calin Curescu < calin.curescu@ericsson.com >
    Subject: InstantiationLevel discussion paper


     
    Hello all,
     
    As already discussed,  there is no clear equivalent to the NFV instantiation level in the TOSCA Simple Profile in YAML (i.e. a property that indicates how many instances
    of each node template should be instantiated at deployment of the service template). I think this is a candidate feature for 1.3.
     
    Yes, there is currently no language support for allowing the same node template to be instantiated multiple times. Your proposal circumvents this by making it the responsibility of
    the “create” operation to create multiple instances (based on the instantiation level data structure). While this will work, it means that the orchestrator (and any ongoing operational management systems) has no knowledge of the individual instances.

     
    I fully support your suggestion that we should address this in Version 1.3. You have previously proposed to support the ‘occurrences’ keyname in node templates. This is likely the correct
    starting point, but we need to think through the implications on the rest of the topology template. Specifically:
     

    ·         
    If node template A supports multiple occurrences, and node template B supports multiple occurrences, and we have a relationship between A and B, what is the desired cardinality
    of the relationship between A and B? Full mesh from all instances of A to all instances of B? Single relationship between one instance of A and one instance of B? What if A and B don’t have the same number of occurrences? We need to document the various use
    cases and then decide which grammar is required to create those use cases.

    ·         
    If node template A supports multiple occurrences, and some of A’s properties are initialized using get_input statements, how do we specify that a list of values must be provided
    for each named input? How do we specify which value in that list goes to which instance of A?

    ·         
    If node template A supports multiple occurrences, and node template B uses a { get_property, [A, <property_of_A> ] }, then which specific instance of A will be used in the
    corresponding property value of B?

    ·         
    If node template A supports multiple occurrences, and node template A is “realized” through substitution mapping, do we need any extensions to the substitution _mapping grammar
    to accommodate this?
     
    I’m sure there are other potential issues, but we can start with these.
     
    I have uploaded a discussion paper related to this issue. The intention of the paper is not to propose a solution for 1.3, but something that ETSI NFV could use in the meantime,
    using the mechanisms available in YAML 1.1 or 1.2.
     
    One of the concerns you point out is that, independent of multiple occurrences, the get_property syntax can get cumbersome when complex data types are used. I’m not sure that this is
    necessarily a problem, but I agree that we need to do a better job of clarifying what the appropriate syntax is for various scenarios that involve list, map, or complex data. Specifically:
     

    ·         
    For properties of type list, how do we specify the index of a specific entry in the list?

    ·         
    For properties of type map, how do we specify the entry that corresponds to a specific key value

    ·         
    For multiple instances of a requirement, how do we specify the index of a specific requirement instance in the list

    ·         
    It is currently not possible to use get_property to retrieve property values of relationships
     
    As the instantiationLevel is a complex type and there is a need to pass information from one node template to another, the grammar becomes unclear. I am looking for advice
    if this may be a base for a solution.
     
    The mechanism for passing information from one node template to another is through the ‘substitution_mapping’ grammar. I agree, that this grammar can get confusing, since in the v1.2
    spec we’re overloading this grammar for two completely different purposes:
     

    1.       
    Mapping : specify how properties, attributes, capabilities, requirements, and interfaces from one node
    template are mapped to corresponding entities in a substituting service template.

    2.       
    Matching : when the orchestrator finds multiple service templates that can be used to substitute a node
    template, how does the orchestrator select the best match?
     
    The examples in Chapter 14 do not properly highlight these two purposes. I strongly believe we need to more clearly separate them. In my opinion, substitution mapping grammar should
    be used exclusively to specify the intended mappings. Different grammar should then be used to drive matching. Since we use node filters in other parts of the spec for similar purposes, I suggest we investigate the use of node filters to guide matching decisions
    when multiple possible substituting template are found.
     
    Claude and Matt, is it possible to add this discussion to the agenda for tomorrow’s meeting?
     
    TOSCA_InstantiationLevel_Discussion.docx
     
    Best regards,
    Arturo
     
     
    Chris
     






  • 20.  ??: InstantiationLevel discussion paper

    Posted 03-30-2018 01:20




    Hi Chris
     
    We have the same concern as you have. Maybe we need to deprecate the Scalable capability in V1.3.
     
    Regards
    shitao
     


    ??? : Chris Lauwers [mailto:lauwers@ubicity.com]

    ???? : 2018 ? 3 ? 30 ?
    7:53
    ??? : Lishitao <lishitao@huawei.com>; Arturo Martin De Nicolas <arturo.martin-de-nicolas@ericsson.com>; claude.noshpitz@att.com; Matthew Rutkowski (mrutkows@us.ibm.com) <mrutkows@us.ibm.com>; Priya T
    G <priya.g@netcracker.com>; Nguyenphu, Thinh (Nokia - US/Irving) (thinh.nguyenphu@nokia.com) <thinh.nguyenphu@nokia.com>; tosca@lists.oasis-open.org
    ?? : Calin Curescu <calin.curescu@ericsson.com>
    ?? : RE: InstantiationLevel discussion paper


     
    I must admit I don’t understand tosca.capabilities.Scalable. Based on the current TOSCA standard, capabilities only exist for the purpose of being able to be the target of a relationship (that’s
    what makes a capability different from just a regular property). What is the relationship that has tosca.capabilities.Scalable as its target, and types of operations would have to be invoked on this relationship in order to make the target node scale?
     
    Chris
     


    From: Lishitao [ mailto:lishitao@huawei.com ]

    Sent: Monday, March 26, 2018 7:05 PM
    To: Chris Lauwers < lauwers@ubicity.com >; Arturo Martin De Nicolas < arturo.martin-de-nicolas@ericsson.com >;
    claude.noshpitz@att.com ; Matthew Rutkowski ( mrutkows@us.ibm.com ) < mrutkows@us.ibm.com >; Priya T G < priya.g@netcracker.com >;
    Nguyenphu, Thinh (Nokia - US/Irving) ( thinh.nguyenphu@nokia.com ) < thinh.nguyenphu@nokia.com >;
    tosca@lists.oasis-open.org
    Cc: Calin Curescu < calin.curescu@ericsson.com >
    Subject: ?? : InstantiationLevel discussion paper


     
    Hi Chris
     
    What do you think of the usage of tosca.capabilities.Scalable? It indicates min_instances, max_instances and default_instances which will be applied to the node that contains this
    capability. Based on what you pointed out, this capability shall not be supported by TOSCA orchestrator at this moment, right? And we also questioned that why scalable is a capability in TOSCA. I think we also need to clarify this ASAP.

     
    Regards
    shitao


    ??? : Chris Lauwers [ mailto:lauwers@ubicity.com ]

    ???? : 2018 ? 3 ? 26 ?
    23:46
    ??? : Lishitao < lishitao@huawei.com >; Arturo Martin De Nicolas < arturo.martin-de-nicolas@ericsson.com >;
    claude.noshpitz@att.com ; Matthew Rutkowski ( mrutkows@us.ibm.com ) < mrutkows@us.ibm.com >; Priya T G < priya.g@netcracker.com >;
    Nguyenphu, Thinh (Nokia - US/Irving) ( thinh.nguyenphu@nokia.com ) < thinh.nguyenphu@nokia.com >;
    tosca@lists.oasis-open.org
    ?? : Calin Curescu < calin.curescu@ericsson.com >
    ?? : RE: InstantiationLevel discussion paper


     
    Hi,
     
    I’m attaching a write-up I did on this topic. It includes suggested extensions to the grammar that could be used to control the number of instances. It also points out some areas where more exploration is necessary.
     
    Chris
     


    From: Lishitao < lishitao@huawei.com >

    Sent: Sunday, March 25, 2018 7:22 PM
    To: Chris Lauwers < lauwers@ubicity.com >; Arturo Martin De Nicolas < arturo.martin-de-nicolas@ericsson.com >;
    claude.noshpitz@att.com ; Matthew Rutkowski ( mrutkows@us.ibm.com ) < mrutkows@us.ibm.com >; Priya T G < priya.g@netcracker.com >;
    Nguyenphu, Thinh (Nokia - US/Irving) ( thinh.nguyenphu@nokia.com ) < thinh.nguyenphu@nokia.com >;
    tosca@lists.oasis-open.org
    Cc: Calin Curescu < calin.curescu@ericsson.com >
    Subject: ?? : InstantiationLevel discussion paper


     
    Hi Chris and Arturo
     
    I think Chris has pointed out some interesting and important issues for the multiple instances design. I agree we need to take this as one of the high priority feature to be support
    in v1.3.
     
    Regards
    shitao
     


    ??? : Chris Lauwers [ mailto:lauwers@ubicity.com ]

    ???? : 2018 ? 3 ? 24 ?
    2:12
    ??? : Arturo Martin De Nicolas < arturo.martin-de-nicolas@ericsson.com >;
    claude.noshpitz@att.com ; Matthew Rutkowski ( mrutkows@us.ibm.com ) < mrutkows@us.ibm.com >; Lishitao < lishitao@huawei.com >;
    Priya T G < priya.g@netcracker.com >; Nguyenphu, Thinh (Nokia - US/Irving) ( thinh.nguyenphu@nokia.com ) < thinh.nguyenphu@nokia.com >;
    tosca@lists.oasis-open.org
    ?? : Calin Curescu < calin.curescu@ericsson.com >
    ?? : RE: InstantiationLevel discussion paper


     
    Hi Arturo,
     
    Thanks for putting this together. We’ll use it as the basis for further discussion.

     
    Comments in-line:
     


    From: Arturo Martin De Nicolas [ mailto:arturo.martin-de-nicolas@ericsson.com ]

    Sent: Monday, March 19, 2018 10:01 AM
    To: claude.noshpitz@att.com ; Matthew Rutkowski ( mrutkows@us.ibm.com ) < mrutkows@us.ibm.com >; Chris Lauwers < lauwers@ubicity.com >;
    Lishitao < lishitao@huawei.com >; Priya T G < priya.g@netcracker.com >; Nguyenphu, Thinh (Nokia - US/Irving) ( thinh.nguyenphu@nokia.com )
    < thinh.nguyenphu@nokia.com >;
    tosca@lists.oasis-open.org
    Cc: Calin Curescu < calin.curescu@ericsson.com >
    Subject: InstantiationLevel discussion paper


     
    Hello all,
     
    As already discussed,  there is no clear equivalent to the NFV instantiation level in the TOSCA Simple Profile in YAML (i.e. a property that indicates how many instances of each node template
    should be instantiated at deployment of the service template). I think this is a candidate feature for 1.3.
     
    Yes, there is currently no language support for allowing the same node template to be instantiated multiple times. Your proposal circumvents this by making it the responsibility of the “create” operation
    to create multiple instances (based on the instantiation level data structure). While this will work, it means that the orchestrator (and any ongoing operational management systems) has no knowledge of the individual instances.

     
    I fully support your suggestion that we should address this in Version 1.3. You have previously proposed to support the ‘occurrences’ keyname in node templates. This is likely the correct starting
    point, but we need to think through the implications on the rest of the topology template. Specifically:
     

    ·         
    If node template A supports multiple occurrences, and node template B supports multiple occurrences, and we have a relationship between A and B, what is the desired cardinality of the relationship
    between A and B? Full mesh from all instances of A to all instances of B? Single relationship between one instance of A and one instance of B? What if A and B don’t have the same number of occurrences? We need to document the various use cases and then decide
    which grammar is required to create those use cases.

    ·         
    If node template A supports multiple occurrences, and some of A’s properties are initialized using get_input statements, how do we specify that a list of values must be provided for each
    named input? How do we specify which value in that list goes to which instance of A?

    ·         
    If node template A supports multiple occurrences, and node template B uses a { get_property, [A, <property_of_A> ] }, then which specific instance of A will be used in the corresponding
    property value of B?

    ·         
    If node template A supports multiple occurrences, and node template A is “realized” through substitution mapping, do we need any extensions to the substitution _mapping grammar to accommodate
    this?
     
    I’m sure there are other potential issues, but we can start with these.
     
    I have uploaded a discussion paper related to this issue. The intention of the paper is not to propose a solution for 1.3, but something that ETSI NFV could use in the meantime, using the mechanisms
    available in YAML 1.1 or 1.2.
     
    One of the concerns you point out is that, independent of multiple occurrences, the get_property syntax can get cumbersome when complex data types are used. I’m not sure that this is necessarily
    a problem, but I agree that we need to do a better job of clarifying what the appropriate syntax is for various scenarios that involve list, map, or complex data. Specifically:
     

    ·         
    For properties of type list, how do we specify the index of a specific entry in the list?

    ·         
    For properties of type map, how do we specify the entry that corresponds to a specific key value

    ·         
    For multiple instances of a requirement, how do we specify the index of a specific requirement instance in the list

    ·         
    It is currently not possible to use get_property to retrieve property values of relationships
     
    As the instantiationLevel is a complex type and there is a need to pass information from one node template to another, the grammar becomes unclear. I am looking for advice if this may be a base
    for a solution.
     
    The mechanism for passing information from one node template to another is through the ‘substitution_mapping’ grammar. I agree, that this grammar can get confusing, since in the v1.2 spec we’re overloading
    this grammar for two completely different purposes:
     

    1.       
    Mapping : specify how properties, attributes, capabilities, requirements, and interfaces from one node template are mapped to corresponding
    entities in a substituting service template.

    2.       
    Matching : when the orchestrator finds multiple service templates that can be used to substitute a node template, how does the orchestrator
    select the best match?
     
    The examples in Chapter 14 do not properly highlight these two purposes. I strongly believe we need to more clearly separate them. In my opinion, substitution mapping grammar should be used exclusively
    to specify the intended mappings. Different grammar should then be used to drive matching. Since we use node filters in other parts of the spec for similar purposes, I suggest we investigate the use of node filters to guide matching decisions when multiple
    possible substituting template are found.
     
    Claude and Matt, is it possible to add this discussion to the agenda for tomorrow’s meeting?
     
    TOSCA_InstantiationLevel_Discussion.docx
     
    Best regards,
    Arturo
     
     
    Chris
     






  • 21.  RE: InstantiationLevel discussion paper

    Posted 03-30-2018 03:11




    Completely agree:
     

    Scaling (meaning the ability to instantiate multiple nodes from the same node template) should be a feature of the TOSCA language.
    Once the language supports scaling, then we can discuss how to construct policies that drive scaling decisions.
     
    Thanks,
     
    Chris
     


    From: Lishitao <lishitao@huawei.com>
    Sent: Thursday, March 29, 2018 6:20 PM
    To: Chris Lauwers <lauwers@ubicity.com>; Arturo Martin De Nicolas <arturo.martin-de-nicolas@ericsson.com>; claude.noshpitz@att.com; Matthew Rutkowski (mrutkows@us.ibm.com) <mrutkows@us.ibm.com>; Priya T G <priya.g@netcracker.com>; Nguyenphu, Thinh (Nokia
    - US/Irving) (thinh.nguyenphu@nokia.com) <thinh.nguyenphu@nokia.com>; tosca@lists.oasis-open.org
    Cc: Calin Curescu <calin.curescu@ericsson.com>
    Subject: ?? : InstantiationLevel discussion paper


     
    Hi Chris
     
    We have the same concern as you have. Maybe we need to deprecate the Scalable capability in V1.3.
     
    Regards
    shitao
     


    ??? :
    Chris Lauwers [ mailto:lauwers@ubicity.com ]

    ???? : 2018 ? 3 ? 30 ? 7:53
    ??? : Lishitao < lishitao@huawei.com >; Arturo Martin De Nicolas < arturo.martin-de-nicolas@ericsson.com >;
    claude.noshpitz@att.com ; Matthew Rutkowski ( mrutkows@us.ibm.com ) < mrutkows@us.ibm.com >; Priya T G < priya.g@netcracker.com >;
    Nguyenphu, Thinh (Nokia - US/Irving) ( thinh.nguyenphu@nokia.com ) < thinh.nguyenphu@nokia.com >;
    tosca@lists.oasis-open.org
    ?? : Calin Curescu < calin.curescu@ericsson.com >
    ?? : RE: InstantiationLevel discussion paper


     
    I must admit I don’t understand tosca.capabilities.Scalable. Based on the current TOSCA standard, capabilities only exist for the purpose of being able to be the target of a relationship
    (that’s what makes a capability different from just a regular property). What is the relationship that has tosca.capabilities.Scalable as its target, and types of operations would have to be invoked on this relationship in order to make the target node scale?
     
    Chris

     


    From: Lishitao [ mailto:lishitao@huawei.com ]

    Sent: Monday, March 26, 2018 7:05 PM
    To: Chris Lauwers < lauwers@ubicity.com >; Arturo Martin De Nicolas < arturo.martin-de-nicolas@ericsson.com >;
    claude.noshpitz@att.com ; Matthew Rutkowski ( mrutkows@us.ibm.com ) < mrutkows@us.ibm.com >; Priya T G < priya.g@netcracker.com >;
    Nguyenphu, Thinh (Nokia - US/Irving) ( thinh.nguyenphu@nokia.com ) < thinh.nguyenphu@nokia.com >;
    tosca@lists.oasis-open.org
    Cc: Calin Curescu < calin.curescu@ericsson.com >
    Subject: ?? : InstantiationLevel discussion paper


     
    Hi Chris
     
    What do you think of the usage of tosca.capabilities.Scalable? It indicates min_instances, max_instances and default_instances which will be applied to the node that
    contains this capability. Based on what you pointed out, this capability shall not be supported by TOSCA orchestrator at this moment, right? And we also questioned that why scalable is a capability in TOSCA. I think we also need to clarify this ASAP.

     
    Regards
    shitao


    ??? :
    Chris Lauwers [ mailto:lauwers@ubicity.com ]

    ???? : 2018 ? 3 ? 26 ? 23:46
    ??? : Lishitao < lishitao@huawei.com >; Arturo Martin De Nicolas < arturo.martin-de-nicolas@ericsson.com >;
    claude.noshpitz@att.com ; Matthew Rutkowski ( mrutkows@us.ibm.com ) < mrutkows@us.ibm.com >; Priya T G < priya.g@netcracker.com >;
    Nguyenphu, Thinh (Nokia - US/Irving) ( thinh.nguyenphu@nokia.com ) < thinh.nguyenphu@nokia.com >;
    tosca@lists.oasis-open.org
    ?? : Calin Curescu < calin.curescu@ericsson.com >
    ?? : RE: InstantiationLevel discussion paper


     
    Hi,
     
    I’m attaching a write-up I did on this topic. It includes suggested extensions to the grammar that could be used to control the number of instances. It also points out some areas where more exploration
    is necessary.
     
    Chris
     


    From: Lishitao < lishitao@huawei.com >

    Sent: Sunday, March 25, 2018 7:22 PM
    To: Chris Lauwers < lauwers@ubicity.com >; Arturo Martin De Nicolas < arturo.martin-de-nicolas@ericsson.com >;
    claude.noshpitz@att.com ; Matthew Rutkowski ( mrutkows@us.ibm.com ) < mrutkows@us.ibm.com >; Priya T G < priya.g@netcracker.com >;
    Nguyenphu, Thinh (Nokia - US/Irving) ( thinh.nguyenphu@nokia.com ) < thinh.nguyenphu@nokia.com >;
    tosca@lists.oasis-open.org
    Cc: Calin Curescu < calin.curescu@ericsson.com >
    Subject: ?? : InstantiationLevel discussion paper


     
    Hi Chris and Arturo
     
    I think Chris has pointed out some interesting and important issues for the multiple instances design. I agree we need to take this as one of the high priority feature
    to be support in v1.3.
     
    Regards
    shitao
     


    ??? :
    Chris Lauwers [ mailto:lauwers@ubicity.com ]

    ???? : 2018 ? 3 ? 24 ? 2:12
    ??? : Arturo Martin De Nicolas < arturo.martin-de-nicolas@ericsson.com >;
    claude.noshpitz@att.com ; Matthew Rutkowski ( mrutkows@us.ibm.com ) < mrutkows@us.ibm.com >; Lishitao < lishitao@huawei.com >;
    Priya T G < priya.g@netcracker.com >; Nguyenphu, Thinh (Nokia - US/Irving) ( thinh.nguyenphu@nokia.com ) < thinh.nguyenphu@nokia.com >;
    tosca@lists.oasis-open.org
    ?? : Calin Curescu < calin.curescu@ericsson.com >
    ?? : RE: InstantiationLevel discussion paper


     
    Hi Arturo,
     
    Thanks for putting this together. We’ll use it as the basis for further discussion.

     
    Comments in-line:
     


    From: Arturo Martin De Nicolas [ mailto:arturo.martin-de-nicolas@ericsson.com ]

    Sent: Monday, March 19, 2018 10:01 AM
    To: claude.noshpitz@att.com ; Matthew Rutkowski ( mrutkows@us.ibm.com ) < mrutkows@us.ibm.com >; Chris Lauwers < lauwers@ubicity.com >;
    Lishitao < lishitao@huawei.com >; Priya T G < priya.g@netcracker.com >; Nguyenphu, Thinh (Nokia - US/Irving) ( thinh.nguyenphu@nokia.com )
    < thinh.nguyenphu@nokia.com >;
    tosca@lists.oasis-open.org
    Cc: Calin Curescu < calin.curescu@ericsson.com >
    Subject: InstantiationLevel discussion paper


     
    Hello all,
     
    As already discussed,  there is no clear equivalent to the NFV instantiation level in the TOSCA Simple Profile in YAML (i.e. a property that indicates how many instances
    of each node template should be instantiated at deployment of the service template). I think this is a candidate feature for 1.3.
     
    Yes, there is currently no language support for allowing the same node template to be instantiated multiple times. Your proposal circumvents this by making it the responsibility of
    the “create” operation to create multiple instances (based on the instantiation level data structure). While this will work, it means that the orchestrator (and any ongoing operational management systems) has no knowledge of the individual instances.

     
    I fully support your suggestion that we should address this in Version 1.3. You have previously proposed to support the ‘occurrences’ keyname in node templates. This is likely the correct
    starting point, but we need to think through the implications on the rest of the topology template. Specifically:
     


    If node template A supports multiple occurrences, and node template B supports multiple occurrences, and we have a relationship between A and B, what is the desired cardinality of the relationship between A and B? Full
    mesh from all instances of A to all instances of B? Single relationship between one instance of A and one instance of B? What if A and B don’t have the same number of occurrences? We need to document the various use cases and then decide which grammar is required
    to create those use cases.
    If node template A supports multiple occurrences, and some of A’s properties are initialized using get_input statements, how do we specify that a list of values must be provided for each named input? How do we specify
    which value in that list goes to which instance of A?
    If node template A supports multiple occurrences, and node template B uses a { get_property, [A, <property_of_A> ] }, then which specific instance of A will be used in the corresponding property value of B?
    If node template A supports multiple occurrences, and node template A is “realized” through substitution mapping, do we need any extensions to the substitution _mapping grammar to accommodate this?
     
    I’m sure there are other potential issues, but we can start with these.
     
    I have uploaded a discussion paper related to this issue. The intention of the paper is not to propose a solution for 1.3, but something that ETSI NFV could use in the meantime,
    using the mechanisms available in YAML 1.1 or 1.2.
     
    One of the concerns you point out is that, independent of multiple occurrences, the get_property syntax can get cumbersome when complex data types are used. I’m not sure that this is
    necessarily a problem, but I agree that we need to do a better job of clarifying what the appropriate syntax is for various scenarios that involve list, map, or complex data. Specifically:
     


    For properties of type list, how do we specify the index of a specific entry in the list?
    For properties of type map, how do we specify the entry that corresponds to a specific key value
    For multiple instances of a requirement, how do we specify the index of a specific requirement instance in the list
    It is currently not possible to use get_property to retrieve property values of relationships
     
    As the instantiationLevel is a complex type and there is a need to pass information from one node template to another, the grammar becomes unclear. I am looking for advice
    if this may be a base for a solution.
     
    The mechanism for passing information from one node template to another is through the ‘substitution_mapping’ grammar. I agree, that this grammar can get confusing, since in the v1.2
    spec we’re overloading this grammar for two completely different purposes:
     


    Mapping : specify how properties, attributes, capabilities, requirements, and interfaces from one node template are mapped to corresponding entities in a substituting
    service template.
    Matching : when the orchestrator finds multiple service templates that can be used to substitute a node template, how does the orchestrator select the best match?
     
    The examples in Chapter 14 do not properly highlight these two purposes. I strongly believe we need to more clearly separate them. In my opinion, substitution mapping grammar should
    be used exclusively to specify the intended mappings. Different grammar should then be used to drive matching. Since we use node filters in other parts of the spec for similar purposes, I suggest we investigate the use of node filters to guide matching decisions
    when multiple possible substituting template are found.
     
    Claude and Matt, is it possible to add this discussion to the agenda for tomorrow’s meeting?
     
    TOSCA_InstantiationLevel_Discussion.docx
     
    Best regards,
    Arturo
     
     
    Chris