diff options
20 files changed, 416 insertions, 964 deletions
diff --git a/ice_validator/heat_requirements.json b/ice_validator/heat_requirements.json index 35d97c4..cfec775 100644 --- a/ice_validator/heat_requirements.json +++ b/ice_validator/heat_requirements.json @@ -1,5 +1,5 @@ { - "created": "2019-12-03T06:33:16.165894", + "created": "2020-01-11T06:35:28.164506", "current_version": "el alto", "project": "", "versions": { @@ -73163,7 +73163,7 @@ "needs_amount": 813 }, "el alto": { - "created": "2019-12-03T06:33:16.165821", + "created": "2020-01-11T06:35:28.164432", "filters": {}, "filters_amount": 0, "needs": { @@ -73346,7 +73346,7 @@ "validation_mode": "" }, "R-00606": { - "description": "A VNF **MAY** be connected to zero, one or more than one external\nnetwork.", + "description": "A VNF **MAY** be connected to zero, one or more than one ONAP external\nnetwork.", "docname": "Chapter5/Heat/ONAP Heat Networking", "full_title": "", "hide_links": "", @@ -73376,7 +73376,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "casablanca", + "updated": "frankfurt", "validated_by": "", "validation_mode": "" }, @@ -73487,7 +73487,7 @@ "validation_mode": "" }, "R-01123": { - "description": "The VNF or PNF package Manifest file **MUST** contain: VNF or PNF\npackage meta-data, a list of all artifacts (both internal and\nexternal) entry's including their respected URI's, as specified\nin ETSI GS NFV-SOL 004", + "description": "The VNF or PNF CSAR package Manifest file **MUST** contain: VNF or PNF\npackage meta-data, a list of all artifacts (both internal and\nexternal) entry's including their respected URI's, as specified\nin ETSI GS NFV-SOL 004", "docname": "Chapter5/Tosca/ONAP VNF or PNF CSAR Package", "full_title": "", "hide_links": "", @@ -73502,14 +73502,14 @@ "links": [], "notes": "", "parts": {}, - "section_name": "VNF Package Contents", + "section_name": "VNF or PNF Package Contents", "sections": [ - "VNF Package Contents", + "VNF or PNF Package Contents", "VNF or PNF CSAR Package" ], "status": null, "tags": [], - "target": "VNF or PNF", + "target": "VNF or PNF CSAR PACKAGE", "test": "", "test_case": "", "test_file": "", @@ -73517,7 +73517,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "el alto", + "updated": "frankfurt", "validated_by": "", "validation_mode": "" }, @@ -73806,7 +73806,7 @@ "validation_mode": "none" }, "R-02164": { - "description": "When a VNF's Heat Orchestration Template's Contrail resource\nhas a property that\nreferences an external network that requires the network's\nFully Qualified Domain Name (FQDN), the property parameter\n\n* **MUST** follow the format ``{network-role}_net_fqdn``\n* **MUST** be declared as type ``string``\n* **MUST NOT** be enumerated in the VNF's Heat Orchestration Template's\n Environment File", + "description": "When a VNF's Heat Orchestration Template's Contrail resource\nhas a property that\nreferences an ONAP external network (per the\nONAP definition, see Requirement R-57424 and R-16968),\nthat requires the network's\nFully Qualified Domain Name (FQDN), the property parameter\n\n* **MUST** follow the format ``{network-role}_net_fqdn``\n* **MUST** be declared as type ``string``\n* **MUST NOT** be enumerated in the VNF's Heat Orchestration Template's\n Environment File", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Contrail Resource Parameters", "full_title": "", "hide_links": "", @@ -73821,9 +73821,9 @@ "links": [], "notes": "", "parts": {}, - "section_name": "External Networks", + "section_name": "ONAP External Networks", "sections": [ - "External Networks", + "ONAP External Networks", "Contrail Network Parameters", "Contrail Resource Parameters" ], @@ -73837,7 +73837,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "casablanca", + "updated": "frankfurt", "validated_by": "", "validation_mode": "static" }, @@ -74304,7 +74304,7 @@ "validation_mode": "" }, "R-03595": { - "description": "A VNF's Heat Orchestration Template's Resource ``OS::Neutron::SecurityGroup`` that\nis applicable to more than one ``{vm-type}`` and one external network Resource ID\n**SHOULD** use the naming convention\n\n* ``{network-role}_security_group``\n\nwhere\n\n* ``{network-role}`` is the network-role", + "description": "A VNF's Heat Orchestration Template's Resource\n``OS::Neutron::SecurityGroup`` that\nis applicable to more than one ``{vm-type}`` and one ONAP external network\n(per the ONAP definition, see Requirement R-57424 and R-16968),\nthe ``OS::Neutron::SecurityGroup`` Resource ID\n**SHOULD** use the naming convention\n\n* ``{network-role}_security_group``\n\nwhere\n\n* ``{network-role}`` is the network-role of the ONAP external network", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs", "full_title": "", "hide_links": "", @@ -74335,7 +74335,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "casablanca", + "updated": "frankfurt", "validated_by": "", "validation_mode": "" }, @@ -74554,7 +74554,7 @@ "validation_mode": "" }, "R-04697": { - "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::Neutron::Port`` is attaching to an external network (per the\nONAP definition, see Requirement R-57424),\nand an IPv4 address is assigned\nusing the property ``fixed_ips``\nmap property ``ip_address`` and the parameter type is defined as a\n``comma_delimited_list``,\nthe parameter name **MUST** follow the\nnaming convention\n\n * ``{vm-type}_{network-role}_ips``\n\n where\n\n * ``{vm-type}`` is the {vm-type} associated with the\n ``OS::Nova::Server``\n * ``{network-role}`` is the {network-role} of the external\n network", + "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::Neutron::Port`` is attaching to an ONAP external network (per the\nONAP definition, see Requirement R-57424 and R-16968),\nand an IPv4 address is assigned\nusing the property ``fixed_ips``\nmap property ``ip_address`` and the parameter type is defined as a\n``comma_delimited_list``,\nthe parameter name **MUST** follow the\nnaming convention\n\n * ``{vm-type}_{network-role}_ips``\n\n where\n\n * ``{vm-type}`` is the {vm-type} associated with the\n ``OS::Nova::Server``\n * ``{network-role}`` is the {network-role} of the ONAP external\n network", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters", "full_title": "", "hide_links": "", @@ -74584,7 +74584,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "casablanca", + "updated": "frankfurt", "validated_by": "", "validation_mode": "static" }, @@ -74744,9 +74744,9 @@ "links": [], "notes": "", "parts": {}, - "section_name": "VIP Assignment, External Networks", + "section_name": "VIP Assignment, ONAP External Networks", "sections": [ - "VIP Assignment, External Networks", + "VIP Assignment, ONAP External Networks", "Property: allowed_address_pairs, Map Property: ip_address", "Resource: OS::Neutron::Port - Parameters" ], @@ -75264,7 +75264,7 @@ "validation_mode": "" }, "R-08775": { - "description": "A VNF's Heat Orchestration Template's Resource ``OS::Neutron::SecurityGroup``\nthat is applicable to one ``{vm-type}`` and more than one network (internal\nand/or external) Resource ID **SHOULD** use the naming convention\n\n* ``{vm-type}_security_group``\n\nwhere\n\n* ``{vm-type}`` is the vm-type", + "description": "A VNF's Heat Orchestration Template's Resource\n``OS::Neutron::SecurityGroup``\nthat is applicable to one ``{vm-type}`` and more than one network\n(ONAP internal network\nand/or ONAP external network), the ``OS::Neutron::SecurityGroup``\nResource ID **SHOULD** use the naming convention\n\n* ``{vm-type}_security_group``\n\nwhere\n\n* ``{vm-type}`` is the vm-type", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs", "full_title": "", "hide_links": "", @@ -75295,7 +75295,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "casablanca", + "updated": "frankfurt", "validated_by": "", "validation_mode": "" }, @@ -75441,7 +75441,7 @@ "validation_mode": "static" }, "R-100010": { - "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::InstanceIp`` is assigning an IP address\nto an external network (per the ONAP definition, see Requirement R-57424),\nand an IPv4 address is assigned\nusing the property ``instance_ip_address``\nand the parameter type is defined as a string,\nthe parameter name **MUST** follow the\nnaming convention\n\n* ``{vm-type}_{network-role}_ip_{index}``\n\nwhere\n\n* ``{vm-type}`` is the {vm-type} associated with the ``OS::Nova::Server``\n* ``{network-role}`` is the {network-role} of the external network\n* ``{index}`` is a numeric value that **MUST** start at zero in a\n VNF's Heat Orchestration Template and **MUST** increment by one", + "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::InstanceIp`` is assigning an IP address\nto an ONAP external network\n(per the ONAP definition, see Requirement R-57424 and R-16968),\nand an IPv4 address is assigned\nusing the property ``instance_ip_address``\nand the parameter type is defined as a string,\nthe parameter name **MUST** follow the\nnaming convention\n\n* ``{vm-type}_{network-role}_ip_{index}``\n\nwhere\n\n* ``{vm-type}`` is the {vm-type} associated with the ``OS::Nova::Server``\n* ``{network-role}`` is the {network-role} of the ONAP external network\n* ``{index}`` is a numeric value that **MUST** start at zero in a\n VNF's Heat Orchestration Template and **MUST** increment by one", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Contrail Resource Parameters", "full_title": "", "hide_links": "", @@ -75472,7 +75472,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "", + "updated": "frankfurt", "validated_by": "", "validation_mode": "static" }, @@ -75513,7 +75513,7 @@ "validation_mode": "static" }, "R-100030": { - "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::InstanceIp`` is assigning an IP address\nto an external network (per the\nONAP definition, see Requirement R-57424),\nand an IPv4 address is assigned\nusing the property ``instance_ip_address``\nand the parameter type is defined as a\n``comma_delimited_list``,\nthe parameter name **MUST** follow the\nnaming convention\n\n * ``{vm-type}_{network-role}_ips``\n\n where\n\n * ``{vm-type}`` is the {vm-type} associated with the\n ``OS::Nova::Server``\n * ``{network-role}`` is the {network-role} of the external\n network", + "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::InstanceIp`` is assigning an IP address\nto an ONAP external network (per the\nONAP definition, see Requirement R-57424 and R-16968),\nand an IPv4 address is assigned\nusing the property ``instance_ip_address``\nand the parameter type is defined as a\n``comma_delimited_list``,\nthe parameter name **MUST** follow the\nnaming convention\n\n * ``{vm-type}_{network-role}_ips``\n\n where\n\n * ``{vm-type}`` is the {vm-type} associated with the\n ``OS::Nova::Server``\n * ``{network-role}`` is the {network-role} of the ONAP external\n network", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Contrail Resource Parameters", "full_title": "", "hide_links": "", @@ -75544,7 +75544,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "", + "updated": "frankfurt", "validated_by": "", "validation_mode": "static" }, @@ -75585,7 +75585,7 @@ "validation_mode": "static" }, "R-100050": { - "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::InstanceIp`` is assigning an IP address\nto an external network\n(per the\nONAP definition, see Requirement R-57424),\nand an IPv6 address is assigned\nusing the property ``instance_ip_address``\nand the parameter type is defined as a string,\nthe parameter name **MUST** follow the\nnaming convention\n\n* ``{vm-type}_{network-role}_v6_ip_{index}``\n\nwhere\n\n* ``{vm-type}`` is the {vm-type} associated with the\n ``OS::Nova::Server``\n* ``{network-role}`` is the {network-role} of the external network\n* ``{index}`` is a numeric value that **MUST** start at zero in a\n VNF's Heat Orchestration Template and **MUST** increment by one", + "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::InstanceIp`` is assigning an IP address\nto an ONAP external network\n(per the\nONAP definition, see Requirement R-57424 and R-16968),\nand an IPv6 address is assigned\nusing the property ``instance_ip_address``\nand the parameter type is defined as a string,\nthe parameter name **MUST** follow the\nnaming convention\n\n* ``{vm-type}_{network-role}_v6_ip_{index}``\n\nwhere\n\n* ``{vm-type}`` is the {vm-type} associated with the\n ``OS::Nova::Server``\n* ``{network-role}`` is the {network-role} of the ONAP external network\n* ``{index}`` is a numeric value that **MUST** start at zero in a\n VNF's Heat Orchestration Template and **MUST** increment by one", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Contrail Resource Parameters", "full_title": "", "hide_links": "", @@ -75616,7 +75616,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "", + "updated": "frankfurt", "validated_by": "", "validation_mode": "static" }, @@ -75657,7 +75657,7 @@ "validation_mode": "static" }, "R-100070": { - "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::InstanceIp`` is assigning an IP address\nto an external network (per the\nONAP definition, see Requirement R-57424),\nand an IPv6 address is assigned\nusing the property ``instance_ip_address``\nand the parameter type is defined as a\n``comma_delimited_list``,\nthe parameter name **MUST** follow the\nnaming convention\n\n * ``{vm-type}_{network-role}_v6_ips``\n\nwhere\n\n * ``{vm-type}`` is the {vm-type} associated with the\n OS::Nova::Server\n * ``{network-role}`` is the {network-role} of the external\n network", + "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::InstanceIp`` is assigning an IP address\nto an ONAP external network (per the\nONAP definition, see Requirement R-57424 and R-16968),\nand an IPv6 address is assigned\nusing the property ``instance_ip_address``\nand the parameter type is defined as a\n``comma_delimited_list``,\nthe parameter name **MUST** follow the\nnaming convention\n\n * ``{vm-type}_{network-role}_v6_ips``\n\nwhere\n\n * ``{vm-type}`` is the {vm-type} associated with the\n OS::Nova::Server\n * ``{network-role}`` is the {network-role} of the ONAP external\n network", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Contrail Resource Parameters", "full_title": "", "hide_links": "", @@ -75688,7 +75688,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "", + "updated": "frankfurt", "validated_by": "", "validation_mode": "static" }, @@ -75729,7 +75729,7 @@ "validation_mode": "static" }, "R-100090": { - "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::InstanceIp`` is assigning an IP address\nto an internal network (per the\nONAP definition, see Requirements R-52425 and R-46461),\nand an IPv4 address is assigned\nusing the property ``instance_ip_address``\nand the parameter type is\ndefined as a ``string``,\nthe parameter name **MUST** follow the\nnaming convention\n\n* ``{vm-type}_int_{network-role}_ip_{index}``\n\nwhere\n\n* ``{vm-type}`` is the {vm-type} associated with the\n ``OS::Nova::Server``\n* ``{network-role}`` is the {network-role} of the internal network\n* ``{index}`` is a numeric value that **MUST** start at zero in a\n VNF's Heat Orchestration Template and **MUST** increment by one", + "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::InstanceIp`` is assigning an IP address\nto an ONAP internal network (per the\nONAP definition, see Requirements R-52425 and R-46461 and R-35666),\nand an IPv4 address is assigned\nusing the property ``instance_ip_address``\nand the parameter type is\ndefined as a ``string``,\nthe parameter name **MUST** follow the\nnaming convention\n\n* ``{vm-type}_int_{network-role}_ip_{index}``\n\nwhere\n\n* ``{vm-type}`` is the {vm-type} associated with the\n ``OS::Nova::Server``\n* ``{network-role}`` is the {network-role} of the ONAP internal network\n* ``{index}`` is a numeric value that **MUST** start at zero in a\n VNF's Heat Orchestration Template and **MUST** increment by one", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Contrail Resource Parameters", "full_title": "", "hide_links": "", @@ -75760,7 +75760,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "", + "updated": "frankfurt", "validated_by": "", "validation_mode": "static" }, @@ -75801,7 +75801,7 @@ "validation_mode": "static" }, "R-100110": { - "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::InstanceIp`` is assigning an IP address\nto an internal network (per the\nONAP definition, see Requirements R-52425 and R-46461),\nand an IPv4 address is assigned\nusing the property ``instance_ip_address``\nand the parameter type is defined as a\n``comma_delimited_list``,\nthe parameter name **MUST** follow the\nnaming convention\n\n * ``{vm-type}_int_{network-role}_ips``\n\nwhere\n\n * ``{vm-type}`` is the {vm-type} associated with the\n ``OS::Nova::Server``\n * ``{network-role}`` is the {network-role} of the internal\n network", + "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::InstanceIp`` is assigning an IP address\nto an ONAP internal network (per the\nONAP definition, see Requirements R-52425 and R-46461 and R-35666),\nand an IPv4 address is assigned\nusing the property ``instance_ip_address``\nand the parameter type is defined as a\n``comma_delimited_list``,\nthe parameter name **MUST** follow the\nnaming convention\n\n * ``{vm-type}_int_{network-role}_ips``\n\nwhere\n\n * ``{vm-type}`` is the {vm-type} associated with the\n ``OS::Nova::Server``\n * ``{network-role}`` is the {network-role} of the ONAP internal\n network", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Contrail Resource Parameters", "full_title": "", "hide_links": "", @@ -75832,7 +75832,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "", + "updated": "frankfurt", "validated_by": "", "validation_mode": "static" }, @@ -75873,7 +75873,7 @@ "validation_mode": "static" }, "R-100130": { - "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::InstanceIp`` is assigning an IP address to an\ninternal network (per the\nONAP definition, see Requirements R-52425 and R-46461),\nand an IPv6 address is assigned\nusing the property ``instance_ip_address``\nand the parameter type is defined as a\n``string``,\nthe parameter name **MUST** follow the\nnaming convention\n\n* ``{vm-type}_int_{network-role}_v6_ip_{index}``\n\nwhere\n\n* ``{vm-type}`` is the {vm-type} associated with the ``OS::Nova::Server``\n* ``{network-role}`` is the {network-role} of the internal network\n* ``{index}`` is a numeric value that **MUST** start at zero in a\n VNF's Heat Orchestration Template and **MUST** increment by one", + "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::InstanceIp`` is assigning an IP address to an\nONAP internal network (per the\nONAP definition, see Requirements R-52425 and R-46461 and R-35666),\nand an IPv6 address is assigned\nusing the property ``instance_ip_address``\nand the parameter type is defined as a\n``string``,\nthe parameter name **MUST** follow the\nnaming convention\n\n* ``{vm-type}_int_{network-role}_v6_ip_{index}``\n\nwhere\n\n* ``{vm-type}`` is the {vm-type} associated with the ``OS::Nova::Server``\n* ``{network-role}`` is the {network-role} of the ONAP internal network\n* ``{index}`` is a numeric value that **MUST** start at zero in a\n VNF's Heat Orchestration Template and **MUST** increment by one", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Contrail Resource Parameters", "full_title": "", "hide_links": "", @@ -75904,7 +75904,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "", + "updated": "frankfurt", "validated_by": "", "validation_mode": "static" }, @@ -75945,7 +75945,7 @@ "validation_mode": "static" }, "R-100150": { - "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::InstanceIp`` is assigning an IP address to an\ninternal network (per the\nONAP definition, see Requirements R-52425 and R-46461),\nand an IPv6 address is assigned\nusing the property ``instance_ip_address``\nand the parameter type is defined as a\n``comma_delimited_list``,\nthe parameter name **MUST** follow the\nnaming convention\n\n * ``{vm-type}_int_{network-role}_v6_ips``\n\nwhere\n\n * ``{vm-type}`` is the {vm-type} associated with the\n ``OS::Nova::Server``\n * ``{network-role}`` is the {network-role} of the internal\n network", + "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::InstanceIp`` is assigning an IP address to an\nONAP internal network (per the\nONAP definition, see Requirements R-52425 and R-46461 and R-35666),\nand an IPv6 address is assigned\nusing the property ``instance_ip_address``\nand the parameter type is defined as a\n``comma_delimited_list``,\nthe parameter name **MUST** follow the\nnaming convention\n\n * ``{vm-type}_int_{network-role}_v6_ips``\n\nwhere\n\n * ``{vm-type}`` is the {vm-type} associated with the\n ``OS::Nova::Server``\n * ``{network-role}`` is the {network-role} of the ONAP internal\n network", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Contrail Resource Parameters", "full_title": "", "hide_links": "", @@ -75976,7 +75976,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "", + "updated": "frankfurt", "validated_by": "", "validation_mode": "static" }, @@ -76017,7 +76017,7 @@ "validation_mode": "static" }, "R-100170": { - "description": "The VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::InstanceIp``\nproperty ``instance_ip_address``\nparameter associated with an external network, i.e.,\n\n * ``{vm-type}_{network-role}_ip_{index}``\n * ``{vm-type}_{network-role}_v6_ip_{index}``\n * ``{vm-type}_{network-role}_ips``\n * ``{vm-type}_{network-role}_v6_ips``\n\n\n**MUST NOT** be enumerated in the Heat Orchestration\nTemplate's Environment File. ONAP provides the IP address\nassignments at orchestration time.", + "description": "The VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::InstanceIp``\nproperty ``instance_ip_address``\nparameter associated with an ONAP external network, i.e.,\n\n * ``{vm-type}_{network-role}_ip_{index}``\n * ``{vm-type}_{network-role}_v6_ip_{index}``\n * ``{vm-type}_{network-role}_ips``\n * ``{vm-type}_{network-role}_v6_ips``\n\n\n**MUST NOT** be enumerated in the Heat Orchestration\nTemplate's Environment File. ONAP provides the IP address\nassignments at orchestration time.", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Contrail Resource Parameters", "full_title": "", "hide_links": "", @@ -76048,12 +76048,12 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "", + "updated": "frankfurt", "validated_by": "", "validation_mode": "static" }, "R-100180": { - "description": "The VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::InstanceIp``\nproperty ``instance_ip_address``\nparameter associated with an internal network, i.e.,\n\n * ``{vm-type}_int_{network-role}_ip_{index}``\n * ``{vm-type}_int_{network-role}_v6_ip_{index}``\n * ``{vm-type}_int_{network-role}_ips``\n * ``{vm-type}_int_{network-role}_v6_ips``\n\n\n**MUST** be enumerated in the Heat Orchestration\nTemplate's Environment File and IP addresses **MUST** be\nassigned.", + "description": "The VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::InstanceIp``\nproperty ``instance_ip_address``\nparameter associated with an ONAP internal network, i.e.,\n\n * ``{vm-type}_int_{network-role}_ip_{index}``\n * ``{vm-type}_int_{network-role}_v6_ip_{index}``\n * ``{vm-type}_int_{network-role}_ips``\n * ``{vm-type}_int_{network-role}_v6_ips``\n\n\n**MUST** be enumerated in the Heat Orchestration\nTemplate's Environment File and IP addresses **MUST** be\nassigned.", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Contrail Resource Parameters", "full_title": "", "hide_links": "", @@ -76084,7 +76084,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "", + "updated": "frankfurt", "validated_by": "", "validation_mode": "static" }, @@ -76125,7 +76125,7 @@ "validation_mode": "static" }, "R-100200": { - "description": "When the VNF's Heat Orchestration Template's\nresource ``OS::ContrailV2::InstanceIp`` is assigning an IP address\nto an external network (per the ONAP definition, see\nRequirement R-57424),\nand an IPv4 address is being cloud assigned by OpenStack's DHCP Service\nand the external network IPv4 subnet is to be specified\nusing the property ``subnet_uuid``, the parameter\n**MUST** follow the naming convention\n\n * ``{network-role}_subnet_id``\n\nwhere\n\n * ``{network-role}`` is the network role of the network.", + "description": "When the VNF's Heat Orchestration Template's\nresource ``OS::ContrailV2::InstanceIp`` is assigning an IP address\nto an ONAP external network (per the ONAP definition, see\nRequirement R-57424 and R-16968),\nand an IPv4 address is being cloud assigned by OpenStack's DHCP Service\nand the ONAP external network IPv4 subnet is to be specified\nusing the property ``subnet_uuid``, the parameter\n**MUST** follow the naming convention\n\n * ``{network-role}_subnet_id``\n\nwhere\n\n * ``{network-role}`` is the network role of the ONAP external network.", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Contrail Resource Parameters", "full_title": "", "hide_links": "", @@ -76156,7 +76156,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "", + "updated": "frankfurt", "validated_by": "", "validation_mode": "static" }, @@ -76197,7 +76197,7 @@ "validation_mode": "static" }, "R-100220": { - "description": "When the VNF's Heat Orchestration Template's\nresource ``OS::ContrailV2::InstanceIp`` is assigning an IP address\nto an external network (per the ONAP definition, see\nRequirement R-57424),\nand an IPv6 address is being cloud assigned by OpenStack's DHCP Service\nand the external network IPv6 subnet is to be specified\nusing the property ``subnet_uuid``, the parameter\n**MUST** follow the naming convention\n\n * ``{network-role}_v6_subnet_id``\n\nwhere\n\n * ``{network-role}`` is the network role of the network.", + "description": "When the VNF's Heat Orchestration Template's\nresource ``OS::ContrailV2::InstanceIp`` is assigning an IP address\nto an ONAP external network (per the ONAP definition, see\nRequirement R-57424 and R-16968),\nand an IPv6 address is being cloud assigned by OpenStack's DHCP Service\nand the ONAP external network IPv6 subnet is to be specified\nusing the property ``subnet_uuid``, the parameter\n**MUST** follow the naming convention\n\n * ``{network-role}_v6_subnet_id``\n\nwhere\n\n * ``{network-role}`` is the network role of the ONAP external network.", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Contrail Resource Parameters", "full_title": "", "hide_links": "", @@ -76228,7 +76228,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "", + "updated": "frankfurt", "validated_by": "", "validation_mode": "static" }, @@ -76269,7 +76269,7 @@ "validation_mode": "static" }, "R-100240": { - "description": "When\n\n * the VNF's Heat Orchestration Template's\n resource ``OS::ContrailV2::InstanceIp`` in an Incremental Module is\n assigning an IP address\n to an internal network (per the ONAP definition, see\n Requirements R-52425 and R-46461)\n that is created in the Base Module, AND\n * an IPv4 address is being cloud assigned by OpenStack's DHCP Service AND\n * the internal network IPv4 subnet is to be specified\n using the property ``subnet_uuid``,\n\nthe parameter **MUST** follow the naming convention\n\n * ``int_{network-role}_subnet_id``\n\nwhere\n\n * ``{network-role}`` is the network role of the internal network\n\nNote that the parameter **MUST** be defined as an ``output`` parameter in\nthe base module.", + "description": "When\n\n * the VNF's Heat Orchestration Template's\n resource ``OS::ContrailV2::InstanceIp`` in an Incremental Module is\n assigning an IP address\n to an ONAP internal network (per the ONAP definition, see\n Requirements R-52425 and R-46461 and R-35666)\n that is created in the Base Module, AND\n * an IPv4 address is being cloud assigned by OpenStack's DHCP Service AND\n * the ONAP internal network IPv4 subnet is to be specified\n using the property ``subnet_uuid``,\n\nthe parameter **MUST** follow the naming convention\n\n * ``int_{network-role}_subnet_id``\n\nwhere\n\n * ``{network-role}`` is the network role of the ONAP internal network\n\nNote that the parameter **MUST** be defined as an ``output`` parameter in\nthe base module.", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Contrail Resource Parameters", "full_title": "", "hide_links": "", @@ -76300,7 +76300,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "", + "updated": "frankfurt", "validated_by": "", "validation_mode": "static" }, @@ -76341,7 +76341,7 @@ "validation_mode": "static" }, "R-100260": { - "description": "When\n\n * the VNF's Heat Orchestration Template's\n resource ``OS::ContrailV2::InstanceIp`` in an Incremental Module is\n attaching\n to an internal network (per the ONAP definition,\n see Requirements R-52425 and R-46461)\n that is created in the Base Module, AND\n * an IPv6 address is being cloud assigned by OpenStack's DHCP Service AND\n * the internal network IPv6 subnet is to be specified\n using the property ``subnet_uuid``,\n\nthe parameter **MUST** follow the naming convention\n``int_{network-role}_v6_subnet_id``,\nwhere ``{network-role}`` is the network role of the internal network.\n\nNote that the parameter **MUST** be defined as an ``output`` parameter in\nthe base module.", + "description": "When\n\n * the VNF's Heat Orchestration Template's\n resource ``OS::ContrailV2::InstanceIp`` in an Incremental Module is\n attaching\n to an ONAP internal network (per the ONAP definition,\n see Requirements R-52425 and R-46461 and R-35666)\n that is created in the Base Module, AND\n * an IPv6 address is being cloud assigned by OpenStack's DHCP Service AND\n * the ONAP internal network IPv6 subnet is to be specified\n using the property ``subnet_uuid``,\n\nthe parameter **MUST** follow the naming convention\n\n * ``int_{network-role}_v6_subnet_id``\n\nwhere ``{network-role}`` is the network role of the ONAP internal network.\n\nNote that the parameter **MUST** be defined as an ``output`` parameter in\nthe base module.", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Contrail Resource Parameters", "full_title": "", "hide_links": "", @@ -76372,7 +76372,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "", + "updated": "frankfurt", "validated_by": "", "validation_mode": "static" }, @@ -76413,7 +76413,7 @@ "validation_mode": "static" }, "R-100280": { - "description": "If a VNF's Heat Orchestration Template's resource\n``OS::ContrailV2::VirtualMachineInterface``\nis attaching to an external network (per the\nONAP definition, see Requirement R-57424), the\nmap property\n\n``virtual_machine_interface_allowed_address_pairs``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix``\n\nparameter\n**MUST NOT** be enumerated in the\nVNF's Heat Orchestration Template's Environment File.", + "description": "If a VNF's Heat Orchestration Template's resource\n``OS::ContrailV2::VirtualMachineInterface``\nis attaching to an ONAP external network (per the\nONAP definition, see Requirement R-57424 and R-16968), the\nmap property\n\n``virtual_machine_interface_allowed_address_pairs``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix``\n\nparameter\n**MUST NOT** be enumerated in the\nVNF's Heat Orchestration Template's Environment File.", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Contrail Resource Parameters", "full_title": "", "hide_links": "", @@ -76428,9 +76428,9 @@ "links": [], "notes": "", "parts": {}, - "section_name": "External Networks", + "section_name": "ONAP External Networks", "sections": [ - "External Networks", + "ONAP External Networks", "OS::ContrailV2::VirtualMachineInterface Property virtual_machine_interface_allowed_address_pairs", "Contrail Resource Parameters" ], @@ -76444,12 +76444,12 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "", + "updated": "frankfurt", "validated_by": "", "validation_mode": "static" }, "R-100310": { - "description": "When the VNF's Heat Orchestration Template's resource\n``OS::ContrailV2::VirtualMachineInterface`` is attaching to an external\nnetwork (per the\nONAP definition, see Requirement R-57424),\nand an IPv4 Virtual IP (VIP)\nis required to be supported by the ONAP data model,\nthe map property\n\n``virtual_machine_interface_allowed_address_pairs``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix``\n\nparameter name **MUST** follow the naming convention\n\n* ``{vm-type}_{network-role}_floating_ip``\n\nwhere\n\n* ``{vm-type}`` is the {vm-type} associated with the ``OS::Nova::Server``\n* ``{network-role}`` is the {network-role} of the external network\n\nAnd the parameter **MUST** be declared as type ``string``.\n\nThe ONAP data model can only support one IPv4 VIP address.", + "description": "When the VNF's Heat Orchestration Template's resource\n``OS::ContrailV2::VirtualMachineInterface`` is attaching to an ONAP external\nnetwork (per the\nONAP definition, see Requirement R-57424 and R-16968),\nand an IPv4 Virtual IP (VIP)\nis required to be supported by the ONAP data model,\nthe map property\n\n``virtual_machine_interface_allowed_address_pairs``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix``\n\nparameter name **MUST** follow the naming convention\n\n* ``{vm-type}_{network-role}_floating_ip``\n\nwhere\n\n* ``{vm-type}`` is the {vm-type} associated with the ``OS::Nova::Server``\n* ``{network-role}`` is the {network-role} of the ONAP external network\n\nAnd the parameter **MUST** be declared as type ``string``.\n\nThe ONAP data model can only support one IPv4 VIP address.", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Contrail Resource Parameters", "full_title": "", "hide_links": "", @@ -76464,9 +76464,9 @@ "links": [], "notes": "", "parts": {}, - "section_name": "External Networks", + "section_name": "ONAP External Networks", "sections": [ - "External Networks", + "ONAP External Networks", "OS::ContrailV2::VirtualMachineInterface Property virtual_machine_interface_allowed_address_pairs", "Contrail Resource Parameters" ], @@ -76480,12 +76480,12 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "", + "updated": "frankfurt", "validated_by": "", "validation_mode": "static" }, "R-100330": { - "description": "When the VNF's Heat Orchestration Template's resource\n``OS::ContrailV2::VirtualMachineInterface`` is attaching to an external\nnetwork (per the\nONAP definition, see Requirement R-57424),\nand an IPv6 Virtual IP (VIP)\nis required to be supported by the ONAP data model,\nthe map property\n\n``virtual_machine_interface_allowed_address_pairs``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix``\n\nparameter name **MUST** follow the naming convention\n\n* ``{vm-type}_{network-role}_floating_v6_ip``\n\nwhere\n\n* ``{vm-type}`` is the {vm-type} associated with the ``OS::Nova::Server``\n* ``{network-role}`` is the {network-role} of the external network\n\nAnd the parameter **MUST** be declared as type ``string``.\n\nThe ONAP data model can only support one IPv6 VIP address.", + "description": "When the VNF's Heat Orchestration Template's resource\n``OS::ContrailV2::VirtualMachineInterface`` is attaching to an ONAP\nexternal\nnetwork (per the\nONAP definition, see Requirement R-57424 and R-16968),\nand an IPv6 Virtual IP (VIP)\nis required to be supported by the ONAP data model,\nthe map property\n\n``virtual_machine_interface_allowed_address_pairs``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix``\n\nparameter name **MUST** follow the naming convention\n\n* ``{vm-type}_{network-role}_floating_v6_ip``\n\nwhere\n\n* ``{vm-type}`` is the {vm-type} associated with the ``OS::Nova::Server``\n* ``{network-role}`` is the {network-role} of the ONAP external network\n\nAnd the parameter **MUST** be declared as type ``string``.\n\nThe ONAP data model can only support one IPv6 VIP address.", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Contrail Resource Parameters", "full_title": "", "hide_links": "", @@ -76500,9 +76500,9 @@ "links": [], "notes": "", "parts": {}, - "section_name": "External Networks", + "section_name": "ONAP External Networks", "sections": [ - "External Networks", + "ONAP External Networks", "OS::ContrailV2::VirtualMachineInterface Property virtual_machine_interface_allowed_address_pairs", "Contrail Resource Parameters" ], @@ -76516,12 +76516,12 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "", + "updated": "frankfurt", "validated_by": "", "validation_mode": "static" }, "R-100350": { - "description": "When the VNF's Heat Orchestration Template's resource\n``OS::ContrailV2::VirtualMachineInterface`` is attaching to an\nexternal network\n(per the ONAP definition, see Requirement R-57424),\nand the IPv4 VIP address and/or IPv6 VIP address\nis **not** supported by the ONAP data model,\nthe map property\n\n``virtual_machine_interface_allowed_address_pairs``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix``\n\n* Parameter name **MAY** use any naming convention. That is, there is no\n ONAP mandatory parameter naming convention.\n* Parameter **MAY** be declared as type ``string`` or type\n``comma_delimited_list``.\n\nAnd the ``OS::ContrailV2::VirtualMachineInterface`` resource\n**MUST** contain resource-level ``metadata`` (not property-level).\n\nAnd the ``metadata`` format **MUST** must contain the\nkey value ``aap_exempt`` with a list of all map property\n\n``virtual_machine_interface_allowed_address_pairs``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix``\n\nparameters **not** supported by the ONAP data model.", + "description": "When the VNF's Heat Orchestration Template's resource\n``OS::ContrailV2::VirtualMachineInterface`` is attaching to an\nONAP external network\n(per the ONAP definition, see Requirement R-57424 and R-16968),\nand the IPv4 VIP address and/or IPv6 VIP address\nis **not** supported by the ONAP data model,\nthe map property\n\n``virtual_machine_interface_allowed_address_pairs``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix``\n\n* Parameter name **MAY** use any naming convention. That is, there is no\n ONAP mandatory parameter naming convention.\n* Parameter **MAY** be declared as type ``string`` or type\n ``comma_delimited_list``.\n\nAnd the ``OS::ContrailV2::VirtualMachineInterface`` resource\n**MUST** contain resource-level ``metadata`` (not property-level).\n\nAnd the ``metadata`` format **MUST** must contain the\nkey value ``aap_exempt`` with a list of all map property\n\n``virtual_machine_interface_allowed_address_pairs``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix``\n\nparameters **not** supported by the ONAP data model.", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Contrail Resource Parameters", "full_title": "", "hide_links": "", @@ -76536,9 +76536,9 @@ "links": [], "notes": "", "parts": {}, - "section_name": "External Networks", + "section_name": "ONAP External Networks", "sections": [ - "External Networks", + "ONAP External Networks", "OS::ContrailV2::VirtualMachineInterface Property virtual_machine_interface_allowed_address_pairs", "Contrail Resource Parameters" ], @@ -76552,12 +76552,12 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "", + "updated": "frankfurt", "validated_by": "", "validation_mode": "static" }, "R-100360": { - "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::VirtualMachineInterface`` is attaching to an\ninternal network (per the\nONAP definition, see Requirements R-52425 and R-46461),\nand an IPv4 Virtual IP (VIP)\naddress is assigned using the map property,\n``virtual_machine_interface_allowed_address_pairs,\nvirtual_machine_interface_allowed_address_pairs_allowed_address_pair,\nvirtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip,\nvirtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix``\n, the parameter name **MUST** follow the\nnaming convention\n\n * ``{vm-type}_int_{network-role}_floating_ip``\n\nwhere\n\n * ``{vm-type}`` is the {vm-type} associated with the\n OS::Nova::Server\n * ``{network-role}`` is the {network-role} of the external\n network\n\nAnd the parameter **MUST** be declared as ``type: string``\nand **MUST** be enumerated in the environment file.\n\nOR\n\nthe parameter name **MUST** follow the\nnaming convention\n\n * ``{vm-type}_int_{network-role}_floating_ips``\n\nwhere\n\n * ``{vm-type}`` is the {vm-type} associated with the\n OS::Nova::Server\n * ``{network-role}`` is the {network-role} of the external\n network\n\nAnd the parameter **MUST** be declared as ``type: comma_delimited_list``\nand **MUST** be enumerated in the environment file.", + "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::VirtualMachineInterface`` is attaching to an\nONAP internal network (per the\nONAP definition, see Requirements R-52425 and R-46461 and R-35666),\nand an IPv4 Virtual IP (VIP)\naddress is assigned using the map property,\n``virtual_machine_interface_allowed_address_pairs,\nvirtual_machine_interface_allowed_address_pairs_allowed_address_pair,\nvirtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip,\nvirtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix``\n, the parameter name **MUST** follow the\nnaming convention\n\n * ``{vm-type}_int_{network-role}_floating_ip``\n\nwhere\n\n * ``{vm-type}`` is the {vm-type} associated with the\n OS::Nova::Server\n * ``{network-role}`` is the {network-role} of the ONAP internal\n network\n\nAnd the parameter **MUST** be declared as ``type: string``\nand **MUST** be enumerated in the environment file.\n\nOR\n\nthe parameter name **MUST** follow the\nnaming convention\n\n * ``{vm-type}_int_{network-role}_floating_ips``\n\nwhere\n\n * ``{vm-type}`` is the {vm-type} associated with the\n OS::Nova::Server\n * ``{network-role}`` is the {network-role} of the ONAP internal\n network\n\nAnd the parameter **MUST** be declared as ``type: comma_delimited_list``\nand **MUST** be enumerated in the environment file.", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Contrail Resource Parameters", "full_title": "", "hide_links": "", @@ -76572,9 +76572,9 @@ "links": [], "notes": "", "parts": {}, - "section_name": "Internal Networks", + "section_name": "ONAP Internal Networks", "sections": [ - "Internal Networks", + "ONAP Internal Networks", "OS::ContrailV2::VirtualMachineInterface Property virtual_machine_interface_allowed_address_pairs", "Contrail Resource Parameters" ], @@ -76588,12 +76588,12 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "", + "updated": "frankfurt", "validated_by": "", "validation_mode": "static" }, "R-100370": { - "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::VirtualMachineInterface`` is attaching to an\ninternal network (per the\nONAP definition, see Requirements R-52425 and R-46461),\nand an IPv6 Virtual IP (VIP)\naddress is assigned\nusing the map property,\n``virtual_machine_interface_allowed_address_pairs,\nvirtual_machine_interface_allowed_address_pairs_allowed_address_pair,\nvirtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip,\nvirtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix``\n, the parameter name **MUST** follow the\nnaming convention\n\n * ``{vm-type}_int_{network-role}_floating_v6_ip``\n\nwhere\n\n * ``{vm-type}`` is the {vm-type} associated with the\n OS::Nova::Server\n * ``{network-role}`` is the {network-role} of the external\n network\n\nAnd the parameter **MUST** be declared as ``type: string``\nand **MUST** be enumerated in the environment file\n\nOR\n\nthe parameter name **MUST** follow the\nnaming convention\n\n * ``{vm-type}_int_{network-role}_floating_v6_ips``\n\nwhere\n\n * ``{vm-type}`` is the {vm-type} associated with the\n OS::Nova::Server\n * ``{network-role}`` is the {network-role} of the external\n network\n\nAnd the parameter **MUST** be declared as ``type: comma_delimited_list``\nand **MUST** be enumerated in the environment file.", + "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::VirtualMachineInterface`` is attaching to an\nONAP internal network (per the\nONAP definition, see Requirements R-52425 and R-46461 and R-35666),\nand an IPv6 Virtual IP (VIP)\naddress is assigned\nusing the map property,\n``virtual_machine_interface_allowed_address_pairs,\nvirtual_machine_interface_allowed_address_pairs_allowed_address_pair,\nvirtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip,\nvirtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix``\n, the parameter name **MUST** follow the\nnaming convention\n\n * ``{vm-type}_int_{network-role}_floating_v6_ip``\n\nwhere\n\n * ``{vm-type}`` is the {vm-type} associated with the\n OS::Nova::Server\n * ``{network-role}`` is the {network-role} of the ONAP internal\n network\n\nAnd the parameter **MUST** be declared as ``type: string``\nand **MUST** be enumerated in the environment file\n\nOR\n\nthe parameter name **MUST** follow the\nnaming convention\n\n * ``{vm-type}_int_{network-role}_floating_v6_ips``\n\nwhere\n\n * ``{vm-type}`` is the {vm-type} associated with the\n OS::Nova::Server\n * ``{network-role}`` is the {network-role} of the ONAP internal\n network\n\nAnd the parameter **MUST** be declared as ``type: comma_delimited_list``\nand **MUST** be enumerated in the environment file.", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Contrail Resource Parameters", "full_title": "", "hide_links": "", @@ -76608,9 +76608,9 @@ "links": [], "notes": "", "parts": {}, - "section_name": "Internal Networks", + "section_name": "ONAP Internal Networks", "sections": [ - "Internal Networks", + "ONAP Internal Networks", "OS::ContrailV2::VirtualMachineInterface Property virtual_machine_interface_allowed_address_pairs", "Contrail Resource Parameters" ], @@ -76624,7 +76624,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "", + "updated": "frankfurt", "validated_by": "", "validation_mode": "static" }, @@ -76749,9 +76749,9 @@ "links": [], "notes": "", "parts": {}, - "section_name": "VNF Package Contents", + "section_name": "VNF or PNF Package Contents", "sections": [ - "VNF Package Contents", + "VNF or PNF Package Contents", "VNF or PNF CSAR Package" ], "status": null, @@ -77025,7 +77025,7 @@ "validation_mode": "static" }, "R-11168": { - "description": "A VNF's Heat Orchestration Template's Resource ID that is associated with\nan external network **MUST** include the ``{network-role}`` as part\nof the resource ID.", + "description": "A VNF's Heat Orchestration Template's Resource ID that is associated with\nan ONAP external network **MUST** include the ``{network-role}`` as part\nof the resource ID.", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/{network-role}", "full_title": "", "hide_links": "", @@ -77054,7 +77054,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "casablanca", + "updated": "frankfurt", "validated_by": "", "validation_mode": "none" }, @@ -77980,7 +77980,7 @@ "validation_mode": "" }, "R-14198": { - "description": "A VNF's Heat Orchestration Template's Resource ``OS::Neutron::SecurityGroup`` that\nis applicable to one {vm-type} and one internal network Resource ID **SHOULD**\nuse the naming convention\n\n* ``{vm-type}_int_{network-role}_security_group``\n\nwhere\n\n* ``{vm-type}`` is the vm-type\n* ``{network-role}`` is the network-role", + "description": "A VNF's Heat Orchestration Template's Resource\n``OS::Neutron::SecurityGroup`` that\nis applicable to one {vm-type} and one ONAP internal network\n(per the ONAP definition, see Requirements R-52425 and R-46461 and\nR-35666), the\n``OS::Neutron::SecurityGroup`` Resource ID **SHOULD**\nuse the naming convention\n\n* ``{vm-type}_int_{network-role}_security_group``\n\nwhere\n\n* ``{vm-type}`` is the vm-type\n* ``{network-role}`` is the network-role of the ONAP internal network", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs", "full_title": "", "hide_links": "", @@ -78011,12 +78011,12 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "casablanca", + "updated": "frankfurt", "validated_by": "", "validation_mode": "" }, "R-14447": { - "description": "A VNF's Heat Orchestration Template's Resource ``OS::ContrailV2::ServiceTemplate``\nResource ID **MAY** use the naming convention\n\n* ``{vm-type}_RST_{index}``\n\nwhere\n\n* ``{vm-type}`` is the vm-type\n* ``RST`` signifies that it is the Resource Service Template\n* ``{index}`` is the index.\n The ``{index}`` starts at zero and increments by one\n (as described in R-11690).", + "description": "A VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::ServiceTemplate``\nResource ID **MAY** use the naming convention\n\n* ``{vm-type}_RST_{index}``\n\nwhere\n\n* ``{vm-type}`` is the vm-type\n* ``RST`` signifies that it is the Resource Service Template\n* ``{index}`` is the index.\n The ``{index}`` starts at zero and increments by one\n (as described in R-11690).", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs", "full_title": "", "hide_links": "", @@ -78067,9 +78067,9 @@ "links": [], "notes": "", "parts": {}, - "section_name": "VNF Package Contents", + "section_name": "VNF or PNF Package Contents", "sections": [ - "VNF Package Contents", + "VNF or PNF Package Contents", "VNF or PNF CSAR Package" ], "status": null, @@ -78157,7 +78157,7 @@ "validation_mode": "" }, "R-15189": { - "description": "A VNF's Heat Orchestration Template's Resource ``OS::Nova::ServerGroup`` Resource ID\n**MAY** use the naming convention\n\n* ``{vm-type}_RSG``\n\nor\n\n* ``{vm-type}_Server_Grp``\n\nor\n\n* ``{vm-type}_ServerGroup``\n\nor\n\n* ``{vm-type}_servergroup``", + "description": "A VNF's Heat Orchestration Template's Resource ``OS::Nova::ServerGroup``\nResource ID **MAY** use the naming convention\n\n* ``{vm-type}_RSG``\n\nor\n\n* ``{vm-type}_Server_Grp``\n\nor\n\n* ``{vm-type}_ServerGroup``\n\nor\n\n* ``{vm-type}_servergroup``", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs", "full_title": "", "hide_links": "", @@ -78193,7 +78193,7 @@ "validation_mode": "" }, "R-15287": { - "description": "When the VNF's Heat Orchestration Template's\nresource ``OS::Neutron::Port`` is attaching\nto an external network (per the ONAP definition, see\nRequirement R-57424),\nand an IPv6 address is being cloud assigned by OpenStack's DHCP Service\nand the external network IPv6 subnet is to be specified\nusing the property ``fixed_ips``\nmap property ``subnet``, the parameter\n**MUST** follow the naming convention\n\n * ``{network-role}_v6_subnet_id``\n\nwhere\n\n * ``{network-role}`` is the network role of the network.", + "description": "When the VNF's Heat Orchestration Template's\nresource ``OS::Neutron::Port`` is attaching\nto an ONAP external network (per the ONAP definition, see\nRequirement R-57424 and R-16968),\nand an IPv6 address is being cloud assigned by OpenStack's DHCP Service\nand the ONAP external network IPv6 subnet is to be specified\nusing the property ``fixed_ips``\nmap property ``subnet``, the parameter\n**MUST** follow the naming convention\n\n * ``{network-role}_v6_subnet_id``\n\nwhere\n\n * ``{network-role}`` is the network role of the ONAP external network.", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters", "full_title": "", "hide_links": "", @@ -78223,7 +78223,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "casablanca", + "updated": "frankfurt", "validated_by": "", "validation_mode": "static" }, @@ -78511,7 +78511,7 @@ "validation_mode": "" }, "R-16241": { - "description": "A VNF's internal network **MUST** have one subnet.\nA VNF's internal network **MAY** have more than one subnet.", + "description": "A VNF's ONAP internal network **MUST** have one subnet.\nA VNF's ONAP internal network **MAY** have more than one subnet.", "docname": "Chapter5/Heat/ONAP Heat Networking", "full_title": "", "hide_links": "", @@ -78541,7 +78541,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "casablanca", + "updated": "frankfurt", "validated_by": "", "validation_mode": "static" }, @@ -78759,7 +78759,7 @@ "validation_mode": "" }, "R-16968": { - "description": "A VNF's Heat Orchestration Templates **MUST NOT** include heat\nresources to create external networks.", + "description": "A VNF's Heat Orchestration Templates **MUST NOT** include heat\nresources to create an ONAP external network.\n\nAn ONAP external network **MUST** be instantiated by using VID\nor by invoking SO directly.", "docname": "Chapter5/Heat/ONAP Heat Networking", "full_title": "", "hide_links": "", @@ -78789,12 +78789,12 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "casablanca", + "updated": "frankfurt", "validated_by": "", "validation_mode": "static" }, "R-17334": { - "description": "A VNF's Heat Orchestration Template's Resource ``OS::Neutron::SecurityGroup``\nthat is applicable to one ``{vm-type}`` and one external network Resource ID\n**SHOULD** use the naming convention\n\n* ``{vm-type}_{network-role}_security_group``\n\nwhere\n\n* ``{vm-type}`` is the vm-type\n* ``{network-role}`` is the network-role", + "description": "A VNF's Heat Orchestration Template's Resource\n``OS::Neutron::SecurityGroup``\nthat is applicable to one ``{vm-type}`` and one ONAP external network\n(per the ONAP definition, see Requirement R-57424 and R-16968),\nthe ``OS::Neutron::SecurityGroup`` Resource ID\n**SHOULD** use the naming convention\n\n* ``{vm-type}_{network-role}_security_group``\n\nwhere\n\n* ``{vm-type}`` is the vm-type\n* ``{network-role}`` is the network-role of the ONAP external network", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs", "full_title": "", "hide_links": "", @@ -78825,7 +78825,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "casablanca", + "updated": "frankfurt", "validated_by": "", "validation_mode": "" }, @@ -78971,7 +78971,7 @@ "validation_mode": "" }, "R-18001": { - "description": "If the VNF's ports connected to a unique internal network\nand the port's IP addresses are statically assigned IP addresses,\nthe IPv4 addresses **MAY** be from different subnets and the\nIPv6 addresses **MAY** be from different subnets.", + "description": "If the VNF's ports connected to a unique ONAP internal network\n(per the ONAP definition, see Requirements R-52425 and R-46461 and R-35666)\nand the port's IP addresses are statically assigned IP addresses,\nthe IPv4 addresses **MAY** be from different subnets and the\nIPv6 addresses **MAY** be from different subnets.", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters", "full_title": "", "hide_links": "", @@ -79002,7 +79002,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "casablanca", + "updated": "frankfurt", "validated_by": "", "validation_mode": "" }, @@ -79648,7 +79648,7 @@ "validation_mode": "" }, "R-20453": { - "description": "A VNF's Heat Orchestration Template's Resource ``OS::Neutron::Port``\nthat is attaching to an external network Resource ID\n**MUST** use the naming convention\n\n* ``{vm-type}_{vm-type_index}_{network-role}_port_{port-index}``\n\nwhere\n\n* ``{vm-type}`` is the vm-type\n* ``{vm-type_index}`` references the instance of the ``{vm-type}`` in\n the VNF. The\n ``{vm-type_index}`` is a numeric value that **MUST** start at zero\n in the VNF and\n **MUST** increment by one each time a new instance of a ``{vm-type}``\n is referenced.\n* ``{network-role}`` is the network-role of the network\n that the port is attached to\n* ``{port_index}`` references the instance of the port on the ``{vm-type}``\n attached to ``{network-role}`` network. The\n ``{port_index}`` is a numeric value that **MUST** start at zero on an\n instance of a ``{vm-type}`` and **MUST** increment by one each time a\n new port is defined on the instance of the ``{vm-type}`` attached to\n ``{network-role}`` network.", + "description": "A VNF's Heat Orchestration Template's Resource ``OS::Neutron::Port``\nthat is attaching to an ONAP external network (per the ONAP definition,\nsee Requirement R-57424 and R-16968), the ``OS::Neutron::Port``\nResource ID\n**MUST** use the naming convention\n\n* ``{vm-type}_{vm-type_index}_{network-role}_port_{port-index}``\n\nwhere\n\n* ``{vm-type}`` is the vm-type\n* ``{vm-type_index}`` references the instance of the ``{vm-type}`` in\n the VNF. The\n ``{vm-type_index}`` is a numeric value that **MUST** start at zero\n in the VNF and\n **MUST** increment by one each time a new instance of a ``{vm-type}``\n is referenced.\n* ``{network-role}`` is the network-role of the ONAP external network\n that the port is attached to\n* ``{port_index}`` references the instance of the port on the ``{vm-type}``\n attached to ``{network-role}`` network. The\n ``{port_index}`` is a numeric value that **MUST** start at zero on an\n instance of a ``{vm-type}`` and **MUST** increment by one each time a\n new port is defined on the instance of the ``{vm-type}`` attached to\n ``{network-role}`` network.", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs", "full_title": "", "hide_links": "", @@ -79679,7 +79679,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "dublin", + "updated": "frankfurt", "validated_by": "", "validation_mode": "static" }, @@ -79875,14 +79875,14 @@ "links": [], "notes": "", "parts": {}, - "section_name": "VNF Package Contents", + "section_name": "VNF or PNF Package Contents", "sections": [ - "VNF Package Contents", + "VNF or PNF Package Contents", "VNF or PNF CSAR Package" ], "status": null, "tags": [], - "target": "VNF", + "target": "VNF CSAR PACKAGE", "test": "", "test_case": "", "test_file": "", @@ -79890,12 +79890,12 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "", + "updated": "frankfurt", "validated_by": "", "validation_mode": "" }, "R-21330": { - "description": "A VNF's Heat Orchestration Template's Resource property parameter that is\nassociated with external network **MUST** include the ``{network-role}``\nas part of the parameter name.", + "description": "A VNF's Heat Orchestration Template's Resource property parameter that is\nassociated with an ONAP\nexternal network **MUST** include the ``{network-role}``\nas part of the parameter name.", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/{network-role}", "full_title": "", "hide_links": "", @@ -79924,7 +79924,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "casablanca", + "updated": "frankfurt", "validated_by": "", "validation_mode": "none" }, @@ -80103,7 +80103,7 @@ "validation_mode": "" }, "R-221914": { - "description": "The VNF or PNF package **MUST** contain a a human-readable change log text\nfile. The Change Log file keeps a history describing any changes in the VNF\nor PNF package. The Change Log file is kept up to date continuously from\nthe creation of the CSAR package.", + "description": "The VNF or PNF CSAR package **MUST** contain a human-readable change log text\nfile. The Change Log file keeps a history describing any changes in the VNF\nor PNF package. The Change Log file is kept up to date continuously from\nthe creation of the CSAR package.", "docname": "Chapter5/Tosca/ONAP VNF or PNF CSAR Package", "full_title": "", "hide_links": "", @@ -80111,21 +80111,21 @@ "id_complete": "R-221914", "id_parent": "R-221914", "impacts": "", - "introduced": "dublin", + "introduced": "frankfurt", "is_need": true, "is_part": false, "keyword": "MUST", "links": [], "notes": "", "parts": {}, - "section_name": "VNF Package Contents", + "section_name": "VNF or PNF Package Contents", "sections": [ - "VNF Package Contents", + "VNF or PNF Package Contents", "VNF or PNF CSAR Package" ], "status": null, "tags": [], - "target": "VNF or PNF", + "target": "VNF or PNF CSAR PACKAGE", "test": "", "test_case": "", "test_file": "", @@ -80388,7 +80388,7 @@ "validation_mode": "" }, "R-22688": { - "description": "When a VNF's Heat Orchestration Template creates an internal network\n(per the ONAP definition, see Requirements R-52425 and R-46461\nand R-35666) and the internal network needs to be shared between modules\nwithin a VNF, the internal network **MUST** be created either in the\n\n* the base module\n* a nested YAML file invoked by the base module\n\nand the base module **MUST** contain an output parameter that provides\neither the network UUID or network name.\n\n* If the network UUID value is used to reference the network, the output\n parameter name in the base module **MUST** follow the naming convention\n ``int_{network-role}_net_id``\n* If the network name in is used to reference the network, the output\n parameter name in the base template **MUST** follow the naming convention\n ``int_{network-role}_net_name``\n\n``{network-role}`` **MUST** be the network-role of the internal network\ncreated in the Base Module.\n\nThe Base Module Output Parameter MUST be declared in the ``parameters:``\nsection of the Incremental Module(s) where the ``OS::Neutron::Port``\nresource(s) is attaching to the internal network.", + "description": "When a VNF's Heat Orchestration Template creates an ONAP internal network\n(per the ONAP definition, see Requirements R-52425 and R-46461\nand R-35666) and the ONAP internal network needs to be shared between\nmodules within a VNF, the ONAP\ninternal network **MUST** be created either in the\n\n* the base module\n* a nested YAML file invoked by the base module\n\nand the base module **MUST** contain an output parameter that provides\neither the network UUID or network name.\n\n* If the network UUID value is used to reference the network, the output\n parameter name in the base module **MUST** follow the naming convention\n ``int_{network-role}_net_id``\n* If the network name in is used to reference the network, the output\n parameter name in the base template **MUST** follow the naming convention\n ``int_{network-role}_net_name``\n\nThe ``{network-role}`` **MUST** be the network-role of the ONAP\ninternal network created in the Base Module.\n\nThe Base Module Output Parameter MUST be declared in the ``parameters:``\nsection of the Incremental Module(s) where the ``OS::Neutron::Port``\nresource(s) is attaching to the ONAP internal network.", "docname": "Chapter5/Heat/ONAP Heat Networking", "full_title": "", "hide_links": "", @@ -80418,7 +80418,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "dublin", + "updated": "frankfurt", "validated_by": "", "validation_mode": "static" }, @@ -80740,7 +80740,7 @@ "validation_mode": "" }, "R-23503": { - "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::Neutron::Port`` is attaching to an external network (per the\nONAP definition, see Requirement R-57424),\nand an IPv6 address is assigned\nusing the property ``fixed_ips``\nmap property ``ip_address`` and the parameter type is defined as a\n``comma_delimited_list``,\nthe parameter name **MUST** follow the\nnaming convention\n\n * ``{vm-type}_{network-role}_v6_ips``\n\nwhere\n\n * ``{vm-type}`` is the {vm-type} associated with the\n OS::Nova::Server\n * ``{network-role}`` is the {network-role} of the external\n network", + "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::Neutron::Port`` is attaching to an ONAP external network (per the\nONAP definition, see Requirement R-57424 and R-16968),\nand an IPv6 address is assigned\nusing the property ``fixed_ips``\nmap property ``ip_address`` and the parameter type is defined as a\n``comma_delimited_list``,\nthe parameter name **MUST** follow the\nnaming convention\n\n * ``{vm-type}_{network-role}_v6_ips``\n\nwhere\n\n * ``{vm-type}`` is the {vm-type} associated with the\n OS::Nova::Server\n * ``{network-role}`` is the {network-role} of the ONAP external\n network", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters", "full_title": "", "hide_links": "", @@ -80770,12 +80770,48 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "casablanca", + "updated": "frankfurt", "validated_by": "", "validation_mode": "static" }, + "R-23663": { + "description": "A VNF's Heat Orchestration template's base module\n**MAY** (or **MAY NOT**)\ncontain the section ``resources:``.", + "docname": "Chapter5/Heat/ONAP Heat Orchestration Template Format", + "full_title": "", + "hide_links": "", + "id": "R-23663", + "id_complete": "R-23663", + "id_parent": "R-23663", + "impacts": "", + "introduced": "frankfurt", + "is_need": true, + "is_part": false, + "keyword": "MAY", + "links": [], + "notes": "", + "parts": {}, + "section_name": "resources", + "sections": [ + "resources", + "Heat Orchestration Template Structure", + "ONAP Heat Orchestration Template Format" + ], + "status": null, + "tags": [], + "target": "VNF", + "test": "", + "test_case": "", + "test_file": "", + "title": "", + "title_from_content": "", + "type": "req", + "type_name": "Requirement", + "updated": "", + "validated_by": "", + "validation_mode": "none" + }, "R-23664": { - "description": "A VNF's Heat Orchestration template's base module, incremental\nmodule, and volume module **MUST**\ncontain the section ``resources:``.", + "description": "A VNF's Heat Orchestration template's incremental\nmodule and volume module **MUST**\ncontain the section ``resources:``.", "docname": "Chapter5/Heat/ONAP Heat Orchestration Template Format", "full_title": "", "hide_links": "", @@ -81167,7 +81203,7 @@ "validation_mode": "" }, "R-24997": { - "description": "A VNF's Heat Orchestration Template's Resource ``OS::Nova::Keypair`` applies to\none ``{vm-type}`` Resource ID **SHOULD** use the naming convention\n\n* ``{vm-type}_keypair_{index}``\n\nwhere\n\n* ``{network-role}`` is the network-role\n* ``{index}`` is the ``{index}`` of the keypair.\n The ``{index}`` starts at zero and increments by one\n (as described in R-11690).", + "description": "A VNF's Heat Orchestration Template's Resource ``OS::Nova::Keypair``\napplies to one ``{vm-type}``, the ``OS::Nova::Keypair``\nResource ID **SHOULD** use the naming convention\n\n* ``{vm-type}_keypair_{index}``\n\nwhere\n\n* ``{vm-type}`` is the vm-type of the ``OS::Nova::Server``\n* ``{index}`` is the ``{index}`` of the keypair.\n The ``{index}`` starts at zero and increments by one\n (as described in R-11690).", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs", "full_title": "", "hide_links": "", @@ -81198,7 +81234,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "dublin", + "updated": "frankfurt", "validated_by": "", "validation_mode": "" }, @@ -81450,7 +81486,7 @@ "validation_mode": "none" }, "R-25720": { - "description": "A VNF's Heat Orchestration Template's Resource ``OS::Neutron::Net``\nResource ID **MUST** use the naming convention\n\n* ``int_{network-role}_network``\n\nVNF Heat Orchestration Templates can only create internal networks.\nThere is no ``{index}`` after ``{network-role}`` because ``{network-role}``\n**MUST** be unique in the scope of the VNF's\nHeat Orchestration Template.", + "description": "A VNF's Heat Orchestration Template's Resource ``OS::Neutron::Net``\nResource ID **MUST** use the naming convention\n\n* ``int_{network-role}_network``\n\nVNF Heat Orchestration Templates can only create ONAP internal networks\n(per the ONAP definition, see Requirements R-52425 and R-46461 and R-35666).\nThere is no ``{index}`` after ``{network-role}`` because ``{network-role}``\n**MUST** be unique in the scope of the VNF's\nHeat Orchestration Template.", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs", "full_title": "", "hide_links": "", @@ -81481,7 +81517,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "casablanca", + "updated": "frankfurt", "validated_by": "", "validation_mode": "static" }, @@ -81703,7 +81739,7 @@ "validation_mode": "none" }, "R-26351": { - "description": "A VNF's Heat Orchestration Template's Resource ``OS::Neutron::Port``\nthat is attaching to an internal network Resource ID **MUST**\nuse the naming convention\n\n* ``{vm-type}_{vm-type_index}_int_{network-role}_port_{port-index}``\n\nwhere\n\n* ``{vm-type}`` is the vm-type\n* ``{vm-type_index}`` references the instance of the ``{vm-type}`` in\n the VNF. The\n ``{vm-type_index}`` is a numeric value that **MUST** start at zero\n in the VNF and\n **MUST** increment by one each time a new instance of a ``{vm-type}``\n is referenced.\n* ``{network-role}`` is the network-role of the network\n that the port is attached to\n* ``{port_index}`` references the instance of the port on the ``{vm-type}``\n attached to ``{network-role}`` network. The\n ``{port_index}`` is a numeric value that **MUST** start at zero on an\n instance of a ``{vm-type}`` and **MUST** increment by one each time a\n new port is defined on the instance of the ``{vm-type}`` attached to\n ``{network-role}`` network.", + "description": "A VNF's Heat Orchestration Template's Resource ``OS::Neutron::Port``\nthat is attaching to an ONAP internal network\n(per the ONAP definition, see Requirements R-52425 and R-46461 and R-35666),\nthe ``OS::Neutron::Port`` Resource ID **MUST**\nuse the naming convention\n\n* ``{vm-type}_{vm-type_index}_int_{network-role}_port_{port-index}``\n\nwhere\n\n* ``{vm-type}`` is the vm-type\n* ``{vm-type_index}`` references the instance of the ``{vm-type}`` in\n the VNF. The\n ``{vm-type_index}`` is a numeric value that **MUST** start at zero\n in the VNF and\n **MUST** increment by one each time a new instance of a ``{vm-type}``\n is referenced.\n* ``{network-role}`` is the network-role of the ONAP internal network\n that the port is attached to\n* ``{port_index}`` references the instance of the port on the ``{vm-type}``\n attached to ``{network-role}`` network. The\n ``{port_index}`` is a numeric value that **MUST** start at zero on an\n instance of a ``{vm-type}`` and **MUST** increment by one each time a\n new port is defined on the instance of the ``{vm-type}`` attached to\n ``{network-role}`` network.", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs", "full_title": "", "hide_links": "", @@ -81734,7 +81770,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "dublin", + "updated": "frankfurt", "validated_by": "", "validation_mode": "static" }, @@ -82024,7 +82060,7 @@ "validation_mode": "" }, "R-27469": { - "description": "A VNF's Heat Orchestration Template's Resource ``OS::Neutron::Port``\nthat is creating a *Reserve Port* with an IPv4 address Resource ID\n**SHOULD** use the naming convention\n\n* ``reserve_port_{vm-type}_{network-role}_floating_ip_{index}``\n\nwhere\n\n* ``{vm-type}`` is the vm-type\n* ``{network-role}`` is the network-role of the network\n that the port is attached to\n* ``{index}`` is the instance of the IPv4 *Reserve Port*\n for the vm-type attached to the network of ``{network-role}``.\n The ``{index}`` starts at zero and increments by one\n (as described in R-11690).", + "description": "A VNF's Heat Orchestration Template's Resource ``OS::Neutron::Port``\nthat is creating a *Reserve Port* with an IPv4 address, the\n``OS::Neutron::Port`` Resource ID\n**SHOULD** use the naming convention\n\n* ``reserve_port_{vm-type}_{network-role}_floating_ip_{index}``\n\nwhere\n\n* ``{vm-type}`` is the vm-type\n* ``{network-role}`` is the network-role of the ONAP external network\n that the port is attached to\n* ``{index}`` is the instance of the IPv4 *Reserve Port*\n for the vm-type attached to the network of ``{network-role}``.\n The ``{index}`` starts at zero and increments by one\n (as described in R-11690).", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs", "full_title": "", "hide_links": "", @@ -82055,7 +82091,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "dublin", + "updated": "frankfurt", "validated_by": "", "validation_mode": "none" }, @@ -82095,7 +82131,7 @@ "validation_mode": "" }, "R-27818": { - "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::Neutron::Port`` is attaching to an internal network (per the\nONAP definition, see Requirements R-52425 and R-46461),\nand an IPv6 address is assigned\nusing the property ``fixed_ips``\nmap property ``ip_address`` and the parameter type is defined as a\n``string``,\nthe parameter name **MUST** follow the\nnaming convention\n\n* ``{vm-type}_int_{network-role}_v6_ip_{index}``\n\nwhere\n\n* ``{vm-type}`` is the {vm-type} associated with the ``OS::Nova::Server``\n* ``{network-role}`` is the {network-role} of the internal network\n* ``{index}`` is a numeric value that **MUST** start at zero in a\n VNF's Heat Orchestration Template and **MUST** increment by one", + "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::Neutron::Port`` is attaching to an ONAP internal network (per the\nONAP definition, see Requirements R-52425 and R-46461 and R-35666),\nand an IPv6 address is assigned\nusing the property ``fixed_ips``\nmap property ``ip_address`` and the parameter type is defined as a\n``string``,\nthe parameter name **MUST** follow the\nnaming convention\n\n* ``{vm-type}_int_{network-role}_v6_ip_{index}``\n\nwhere\n\n* ``{vm-type}`` is the {vm-type} associated with the ``OS::Nova::Server``\n* ``{network-role}`` is the {network-role} of the ONAP internal network\n* ``{index}`` is a numeric value that **MUST** start at zero in a\n VNF's Heat Orchestration Template and **MUST** increment by one", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters", "full_title": "", "hide_links": "", @@ -82125,12 +82161,12 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "dublin", + "updated": "frankfurt", "validated_by": "", "validation_mode": "static" }, "R-27970": { - "description": "When a VNF's Heat Orchestration Template's resource is associated with\nmore than one ``{vm-type}`` and/or more than one internal and/or external\nnetwork, the Resource ID **MAY** contain the term ``shared`` and/or **MAY**\ncontain text that identifies the VNF.", + "description": "When a VNF's Heat Orchestration Template's resource is associated with\nmore than one ``{vm-type}`` and/or more than one ONAP internal network\n(per the ONAP definition, see Requirements R-52425 and R-46461 and R-35666)\nand/or ONAP external network (per the ONAP definition, see Requirement\nR-57424 and R-16968), the Resource ID **MAY** contain the term\n``shared`` and/or **MAY**\ncontain text that identifies the VNF.", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs", "full_title": "", "hide_links": "", @@ -82159,7 +82195,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "casablanca", + "updated": "frankfurt", "validated_by": "", "validation_mode": "" }, @@ -82535,9 +82571,9 @@ "links": [], "notes": "", "parts": {}, - "section_name": "VNF Package Contents", + "section_name": "VNF or PNF Package Contents", "sections": [ - "VNF Package Contents", + "VNF or PNF Package Contents", "VNF or PNF CSAR Package" ], "status": null, @@ -82734,7 +82770,7 @@ "validation_mode": "" }, "R-29765": { - "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::Neutron::Port`` is attaching to an internal network (per the\nONAP definition, see Requirements R-52425 and R-46461),\nand an IPv6 address is assigned\nusing the property ``fixed_ips``\nmap property ``ip_address`` and the parameter type is defined as a\n``comma_delimited_list``,\nthe parameter name **MUST** follow the\nnaming convention\n\n * ``{vm-type}_int_{network-role}_v6_ips``\n\nwhere\n\n * ``{vm-type}`` is the {vm-type} associated with the\n ``OS::Nova::Server``\n * ``{network-role}`` is the {network-role} of the internal\n network", + "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::Neutron::Port`` is attaching to an ONAP internal network (per the\nONAP definition, see Requirements R-52425 and R-46461 and R-35666),\nand an IPv6 address is assigned\nusing the property ``fixed_ips``\nmap property ``ip_address`` and the parameter type is defined as a\n``comma_delimited_list``,\nthe parameter name **MUST** follow the\nnaming convention\n\n * ``{vm-type}_int_{network-role}_v6_ips``\n\nwhere\n\n * ``{vm-type}`` is the {vm-type} associated with the\n ``OS::Nova::Server``\n * ``{network-role}`` is the {network-role} of the ONAP internal\n network", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters", "full_title": "", "hide_links": "", @@ -82764,7 +82800,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "casablanca", + "updated": "frankfurt", "validated_by": "", "validation_mode": "static" }, @@ -82839,7 +82875,7 @@ "validation_mode": "" }, "R-30005": { - "description": "A VNF's Heat Orchestration Template's Resource ``OS::Neutron::SecurityGroup`` that\nis applicable to more than one ``{vm-type}`` and more than one network\n(internal and/or external) Resource ID **MAY**\nuse the naming convention\n\n* ``shared_security_group``\n\nor\n\n* ``{vnf-type}_security_group``\n\nwhere\n\n* ``{vnf-type}`` describes the VNF", + "description": "A VNF's Heat Orchestration Template's Resource\n``OS::Neutron::SecurityGroup`` that\nis applicable to more than one ``{vm-type}`` and more than one network\n(internal and/or external), the ``OS::Neutron::SecurityGroup`` Resource ID\n**MAY**\nuse the naming convention\n\n* ``shared_security_group``\n\nor\n\n* ``{vnf-type}_security_group``\n\nwhere\n\n* ``{vnf-type}`` describes the VNF", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs", "full_title": "", "hide_links": "", @@ -82870,7 +82906,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "casablanca", + "updated": "frankfurt", "validated_by": "", "validation_mode": "" }, @@ -83086,7 +83122,7 @@ "validation_mode": "" }, "R-30753": { - "description": "A VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::NetworkIpam``\nResource ID\n**MUST**\ncontain the ``{network-role}``.", + "description": "A VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::NetworkIpam``\nResource ID\n**MUST**\ncontain the ``{network-role}`` of the ONAP internal network (per the ONAP\ndefinition, see Requirements R-52425 and R-46461 and R-35666) that the\nresource is associated with.", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs", "full_title": "", "hide_links": "", @@ -83117,7 +83153,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "casablanca", + "updated": "frankfurt", "validated_by": "", "validation_mode": "static" }, @@ -84437,7 +84473,7 @@ "validation_mode": "" }, "R-35666": { - "description": "If a VNF has an internal network, the VNF Heat Orchestration Template\n**MUST** include the heat resources to create the internal network.\n\nA VNF's Internal Network is created using Neutron Heat Resources\n(i.e., ``OS::Neutron::Net``, ``OS::Neutron::Subnet``) and/or\nContrail Heat Resources (i.e., ``OS::ContrailV2::VirtualNetwork``,\n``ContrailV2::NetworkIpam``).", + "description": "If a VNF has an ONAP internal network, the VNF's Heat Orchestration\nTemplate **MUST** include the heat resources to create the\nONAP internal network.\n\nA VNF's ONAP internal network is created using Neutron Heat Resources\n(e.g., ``OS::Neutron::Net``, ``OS::Neutron::Subnet``,\n``OS::Neutron::ProviderNet``) and/or\nContrail Heat Resources (e.g., ``OS::ContrailV2::VirtualNetwork``,\n``OS::ContrailV2::NetworkIpam``).", "docname": "Chapter5/Heat/ONAP Heat Networking", "full_title": "", "hide_links": "", @@ -84467,12 +84503,12 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "dublin", + "updated": "frankfurt", "validated_by": "", "validation_mode": "static" }, "R-35735": { - "description": "When the VNF's Heat Orchestration Template's resource\n``OS::Neutron::Port`` is attaching to an external network\n(per the ONAP definition, see Requirement R-57424),\nand the IPv6 VIP is required to be supported by the ONAP data model,\nthe property ``allowed_address_pairs`` map property ``ip_address``\nparameter name **MUST** follow the naming convention\n\n* ``{vm-type}_{network-role}_floating_v6_ip``\n\nwhere\n\n* ``{vm-type}`` is the {vm-type} associated with the ``OS::Nova::Server``\n* ``{network-role}`` is the {network-role} of the external network\n\nAnd the parameter **MUST** be declared as type ``string``.\n\nAs noted in the introduction to this section, the ONAP data model\ncan only support one IPv6 VIP address.", + "description": "When the VNF's Heat Orchestration Template's resource\n``OS::Neutron::Port`` is attaching to an ONAP external network\n(per the ONAP definition, see Requirement R-57424 and R-16968),\nand the IPv6 VIP is required to be supported by the ONAP data model,\nthe property ``allowed_address_pairs`` map property ``ip_address``\nparameter name **MUST** follow the naming convention\n\n* ``{vm-type}_{network-role}_floating_v6_ip``\n\nwhere\n\n* ``{vm-type}`` is the {vm-type} associated with the ``OS::Nova::Server``\n* ``{network-role}`` is the {network-role} of the ONAP external network\n\nAnd the parameter **MUST** be declared as type ``string``.\n\nAs noted in the introduction to this section, the ONAP data model\ncan only support one IPv6 VIP address.", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters", "full_title": "", "hide_links": "", @@ -84487,9 +84523,9 @@ "links": [], "notes": "", "parts": {}, - "section_name": "VIP Assignment, External Networks", + "section_name": "VIP Assignment, ONAP External Networks", "sections": [ - "VIP Assignment, External Networks", + "VIP Assignment, ONAP External Networks", "Property: allowed_address_pairs, Map Property: ip_address", "Resource: OS::Neutron::Port - Parameters" ], @@ -84503,7 +84539,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "dublin", + "updated": "frankfurt", "validated_by": "", "validation_mode": "static" }, @@ -85671,7 +85707,7 @@ "validation_mode": "" }, "R-40820": { - "description": "The VNF or PNF TOSCA PACKAGE **MUST** enumerate all of the open source\nlicenses their VNF(s) incorporate. CSAR License directory as per ETSI\nSOL004.\n\nfor example ROOT\\\\Licenses\\\\ **License_term.txt**", + "description": "The VNF or PNF CSAR PACKAGE **MUST** enumerate all of the open source\nlicenses their VNF(s) incorporate. CSAR License directory as per ETSI\nSOL004.\n\nfor example ROOT\\\\Licenses\\\\ **License_term.txt**", "docname": "Chapter5/Tosca/ONAP VNF or PNF CSAR Package", "full_title": "", "hide_links": "", @@ -85686,14 +85722,14 @@ "links": [], "notes": "", "parts": {}, - "section_name": "VNF Package Contents", + "section_name": "VNF or PNF Package Contents", "sections": [ - "VNF Package Contents", + "VNF or PNF Package Contents", "VNF or PNF CSAR Package" ], "status": null, "tags": [], - "target": "VNF or PNF TOSCA PACKAGE", + "target": "VNF or PNF CSAR PACKAGE", "test": "", "test_case": "", "test_file": "", @@ -85701,7 +85737,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "dublin", + "updated": "frankfurt", "validated_by": "", "validation_mode": "" }, @@ -85777,7 +85813,7 @@ "validation_mode": "none" }, "R-40971": { - "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::Neutron::Port`` is attaching to an external network (per the\nONAP definition, see Requirement R-57424),\nand an IPv4 address is assigned\nusing the property ``fixed_ips``\nmap property ``ip_address`` and the parameter type is defined as a string,\nthe parameter name **MUST** follow the\nnaming convention\n\n* ``{vm-type}_{network-role}_ip_{index}``\n\nwhere\n\n* ``{vm-type}`` is the {vm-type} associated with the ``OS::Nova::Server``\n* ``{network-role}`` is the {network-role} of the external network\n* ``{index}`` is a numeric value that **MUST** start at zero in a\n VNF's Heat Orchestration Template and **MUST** increment by one", + "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::Neutron::Port`` is attaching to an ONAP external network (per the\nONAP definition, see Requirement R-57424 and R-16968),\nand an IPv4 address is assigned\nusing the property ``fixed_ips``\nmap property ``ip_address`` and the parameter type is defined as a string,\nthe parameter name **MUST** follow the\nnaming convention\n\n* ``{vm-type}_{network-role}_ip_{index}``\n\nwhere\n\n* ``{vm-type}`` is the {vm-type} associated with the ``OS::Nova::Server``\n* ``{network-role}`` is the {network-role} of the ONAP external network\n* ``{index}`` is a numeric value that **MUST** start at zero in a\n VNF's Heat Orchestration Template and **MUST** increment by one", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters", "full_title": "", "hide_links": "", @@ -85807,7 +85843,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "dublin", + "updated": "frankfurt", "validated_by": "", "validation_mode": "static" }, @@ -85953,7 +85989,7 @@ "validation_mode": "" }, "R-41492": { - "description": "When the VNF's Heat Orchestration Template's resource\n``OS::Neutron::Port`` is attaching to an external network\n(per the ONAP definition, see Requirement R-57424),\nand the IPv4 VIP is required to be supported by the ONAP data model,\nthe property ``allowed_address_pairs`` map property ``ip_address``\nparameter name **MUST** follow the naming convention\n\n* ``{vm-type}_{network-role}_floating_ip``\n\nwhere\n\n* ``{vm-type}`` is the {vm-type} associated with the ``OS::Nova::Server``\n* ``{network-role}`` is the {network-role} of the external network\n\nAnd the parameter **MUST** be declared as type ``string``.\n\nAs noted in the introduction to this section, the ONAP data model\ncan only support one IPv4 VIP address.", + "description": "When the VNF's Heat Orchestration Template's resource\n``OS::Neutron::Port`` is attaching to an ONAP external network\n(per the ONAP definition, see Requirement R-57424 and R-16968),\nand the IPv4 VIP is required to be supported by the ONAP data model,\nthe property ``allowed_address_pairs`` map property ``ip_address``\nparameter name **MUST** follow the naming convention\n\n* ``{vm-type}_{network-role}_floating_ip``\n\nwhere\n\n* ``{vm-type}`` is the {vm-type} associated with the ``OS::Nova::Server``\n* ``{network-role}`` is the {network-role} of the ONAP external network\n\nAnd the parameter **MUST** be declared as type ``string``.\n\nAs noted in the introduction to this section, the ONAP data model\ncan only support one IPv4 VIP address.", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters", "full_title": "", "hide_links": "", @@ -85968,9 +86004,9 @@ "links": [], "notes": "", "parts": {}, - "section_name": "VIP Assignment, External Networks", + "section_name": "VIP Assignment, ONAP External Networks", "sections": [ - "VIP Assignment, External Networks", + "VIP Assignment, ONAP External Networks", "Property: allowed_address_pairs, Map Property: ip_address", "Resource: OS::Neutron::Port - Parameters" ], @@ -85984,12 +86020,12 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "dublin", + "updated": "frankfurt", "validated_by": "", "validation_mode": "static" }, "R-41493": { - "description": "When the VNF's Heat Orchestration Template's resource\n``OS::Neutron::Port`` is attaching to an external network\n(per the ONAP definition, see Requirement R-57424),\nand the IPv4 VIP address and/or IPv6 VIP address\nis **not** supported by the ONAP data model,\nthe property ``allowed_address_pairs`` map property ``ip_address``\n\n* Parameter name **MAY** use any naming convention. That is, there is no\n ONAP mandatory parameter naming convention.\n* Parameter **MAY** be declared as type ``string`` or type\n``comma_delimited_list``.\n\nAnd the ``OS::Neutron::Port`` resource **MUST** contain\nresource-level ``metadata`` (not property-level).\n\nAnd the ``metadata`` format **MUST** must contain the\nkey value ``aap_exempt`` with a list of all\n``allowed_address_pairs`` map property ``ip_address`` parameters\n**not** supported by the ONAP data model.", + "description": "When the VNF's Heat Orchestration Template's resource\n``OS::Neutron::Port`` is attaching to an ONAP external network\n(per the ONAP definition, see Requirement R-57424 and R-16968),\nand the IPv4 VIP address and/or IPv6 VIP address\nis **not** supported by the ONAP data model,\nthe property ``allowed_address_pairs`` map property ``ip_address``\n\n* Parameter name **MAY** use any naming convention. That is, there is no\n ONAP mandatory parameter naming convention.\n* Parameter **MAY** be declared as type ``string`` or type\n``comma_delimited_list``.\n\nAnd the ``OS::Neutron::Port`` resource **MUST** contain\nresource-level ``metadata`` (not property-level).\n\nAnd the ``metadata`` format **MUST** must contain the\nkey value ``aap_exempt`` with a list of all\n``allowed_address_pairs`` map property ``ip_address`` parameters\n**not** supported by the ONAP data model.", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters", "full_title": "", "hide_links": "", @@ -86004,9 +86040,9 @@ "links": [], "notes": "", "parts": {}, - "section_name": "VIP Assignment, External Networks", + "section_name": "VIP Assignment, ONAP External Networks", "sections": [ - "VIP Assignment, External Networks", + "VIP Assignment, ONAP External Networks", "Property: allowed_address_pairs, Map Property: ip_address", "Resource: OS::Neutron::Port - Parameters" ], @@ -86020,7 +86056,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "", + "updated": "frankfurt", "validated_by": "", "validation_mode": "static" }, @@ -87345,7 +87381,7 @@ "validation_mode": "" }, "R-46128": { - "description": "A VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::InstanceIp`` Resource ID\nthat is configuring an IPv6 Address on a virtual machine interface\n(i.e., OS::ContrailV2::VirtualMachineInterface)\nattached to an external network\n**MUST** use the naming convention\n\n* ``{vm-type}_{vm-type_index}_{network-role}_vmi_{vmi_index}_v6_IP_{index}``\n\nwhere\n\n* ``{vm-type}`` is the vm-type\n* ``{vm-type_index}`` references the instance of the ``{vm-type}`` in\n the VNF. The\n ``{vm-type_index}`` is a numeric value that **MUST** start at zero\n in the VNF and\n **MUST** increment by one each time a new instance of a ``{vm-type}``\n is referenced.\n* ``{network-role}`` is the network-role of the network\n that the port is attached to\n* ``{vmi_index}`` references the instance of the virtual machine interface\n on the ``{vm-type}`` attached to ``{network-role}`` network. The\n ``{vmi_index}`` is a numeric value that **MUST** start at zero on an\n instance of a ``{vm-type}`` and **MUST** increment by one each time a\n new virtual machine interface is defined on the instance of the\n ``{vm-type}`` attached to ``{network-role}`` network.\n* ``v6_IP`` signifies that an IPv6 address is being configured\n* ``{index}`` references the instance of the IPv6 address configured\n on the virtual machine interface. The ``{index}`` is a numeric value\n that **MUST** start at zero on an\n instance of a virtual machine interface and **MUST** increment by one\n each time a new IPv6 address is configured on the\n virtual machine interface.", + "description": "A VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::InstanceIp`` Resource ID\nthat is configuring an IPv6 Address on a virtual machine interface\n(i.e., OS::ContrailV2::VirtualMachineInterface)\nattached to an ONAP external network (per the ONAP definition,\nsee Requirement R-57424 and R-16968)\n**MUST** use the naming convention\n\n* ``{vm-type}_{vm-type_index}_{network-role}_vmi_{vmi_index}_v6_IP_{index}``\n\nwhere\n\n* ``{vm-type}`` is the vm-type\n* ``{vm-type_index}`` references the instance of the ``{vm-type}`` in\n the VNF. The\n ``{vm-type_index}`` is a numeric value that **MUST** start at zero\n in the VNF and\n **MUST** increment by one each time a new instance of a ``{vm-type}``\n is referenced.\n* ``{network-role}`` is the network-role of the ONAP external network\n that the port is attached to\n* ``{vmi_index}`` references the instance of the virtual machine interface\n on the ``{vm-type}`` attached to ``{network-role}`` network. The\n ``{vmi_index}`` is a numeric value that **MUST** start at zero on an\n instance of a ``{vm-type}`` and **MUST** increment by one each time a\n new virtual machine interface is defined on the instance of the\n ``{vm-type}`` attached to ``{network-role}`` network.\n* ``v6_IP`` signifies that an IPv6 address is being configured\n* ``{index}`` references the instance of the IPv6 address configured\n on the virtual machine interface. The ``{index}`` is a numeric value\n that **MUST** start at zero on an\n instance of a virtual machine interface and **MUST** increment by one\n each time a new IPv6 address is configured on the\n virtual machine interface.", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs", "full_title": "", "hide_links": "", @@ -87376,7 +87412,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "dublin", + "updated": "frankfurt", "validated_by": "", "validation_mode": "static" }, @@ -87417,7 +87453,7 @@ "validation_mode": "" }, "R-46461": { - "description": "A VNF's port connected to an internal network **MUST NOT** use the port\nfor the purpose of reaching VMs in another VNF and/or an\nexternal gateway and/or\nexternal router.", + "description": "A VNF's port connected to an ONAP internal network **MUST NOT**\nuse the port\nfor the purpose of reaching VMs in another VNF and/or an\nexternal gateway and/or\nexternal router.", "docname": "Chapter5/Heat/ONAP Heat Networking", "full_title": "", "hide_links": "", @@ -87447,7 +87483,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "casablanca", + "updated": "frankfurt", "validated_by": "", "validation_mode": "none" }, @@ -88405,7 +88441,7 @@ "validation_mode": "" }, "R-48880": { - "description": "If a VNF's Port is attached to an external network and the port's\nIP addresses are assigned by ONAP's SDN-Controller,\nthe ``OS::Neutron::Port`` Resource's\n\n* property ``fixed_ips`` map property ``ip_address`` **MUST** be used\n* property ``fixed_ips`` map property ``subnet``\n **MUST NOT** be used", + "description": "If a VNF's Port is attached to an ONAP external network (per the ONAP\ndefinition, see Requirement R-57424 and R-16968) and the port's\nIP addresses are assigned by ONAP's SDN-Controller,\nthe ``OS::Neutron::Port`` Resource's\n\n* property ``fixed_ips`` map property ``ip_address`` **MUST** be used\n* property ``fixed_ips`` map property ``subnet``\n **MUST NOT** be used", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters", "full_title": "", "hide_links": "", @@ -88436,7 +88472,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "casablanca", + "updated": "frankfurt", "validated_by": "", "validation_mode": "none" }, @@ -88947,7 +88983,7 @@ "validation_mode": "static" }, "R-50468": { - "description": "A VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::VirtualMachineInterface`` Resource ID\nthat is attaching to an internal network\n**MUST** use the naming convention\n\n* ``{vm-type}_{vm-type_index}_int_{network-role}_vmi_{vmi_index}``\n\nwhere\n\n* ``{vm-type}`` is the vm-type\n* ``{vm-type_index}`` references the instance of the ``{vm-type}`` in\n the VNF. The\n ``{vm-type_index}`` is a numeric value that **MUST** start at zero\n in the VNF and\n **MUST** increment by one each time a new instance of a ``{vm-type}``\n is referenced.\n* ``{network-role}`` is the network-role of the network\n that the port (i.e. virtual machine interface) is attached to\n* ``{vmi_index}`` references the instance of the virtual machine interface\n on the ``{vm-type}`` attached to ``{network-role}`` network. The\n ``{vmi_index}`` is a numeric value that **MUST** start at zero on an\n instance of a ``{vm-type}`` and **MUST** increment by one each time a\n new virtual machine interface is defined on the instance of the\n ``{vm-type}`` attached to ``{network-role}`` network.", + "description": "A VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::VirtualMachineInterface`` Resource ID\nthat is attaching to an ONAP internal network (per the ONAP definition, see\nRequirements R-52425 and R-46461 and R-35666)\n**MUST** use the naming convention\n\n* ``{vm-type}_{vm-type_index}_int_{network-role}_vmi_{vmi_index}``\n\nwhere\n\n* ``{vm-type}`` is the vm-type\n* ``{vm-type_index}`` references the instance of the ``{vm-type}`` in\n the VNF. The\n ``{vm-type_index}`` is a numeric value that **MUST** start at zero\n in the VNF and\n **MUST** increment by one each time a new instance of a ``{vm-type}``\n is referenced.\n* ``{network-role}`` is the network-role of the ONAP internal network\n that the port (i.e. virtual machine interface) is attached to\n* ``{vmi_index}`` references the instance of the virtual machine interface\n on the ``{vm-type}`` attached to ``{network-role}`` network. The\n ``{vmi_index}`` is a numeric value that **MUST** start at zero on an\n instance of a ``{vm-type}`` and **MUST** increment by one each time a\n new virtual machine interface is defined on the instance of the\n ``{vm-type}`` attached to ``{network-role}`` network.", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs", "full_title": "", "hide_links": "", @@ -88978,12 +89014,12 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "dublin", + "updated": "frankfurt", "validated_by": "", "validation_mode": "static" }, "R-506221": { - "description": "The VNF or PNF TOSCA CSAR file **MUST** be a zip file with .csar extension.", + "description": "The VNF or PNF CSAR file **MUST** be a zip file with .csar extension.", "docname": "Chapter5/Tosca/ONAP VNF or PNF CSAR Package", "full_title": "", "hide_links": "", @@ -88998,9 +89034,9 @@ "links": [], "notes": "", "parts": {}, - "section_name": "VNF Package Structure and Format", + "section_name": "VNF or PNF Package Structure and Format", "sections": [ - "VNF Package Structure and Format", + "VNF or PNF Package Structure and Format", "VNF or PNF CSAR Package" ], "status": null, @@ -89013,7 +89049,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "", + "updated": "frankfurt", "validated_by": "", "validation_mode": "" }, @@ -89103,14 +89139,14 @@ "links": [], "notes": "", "parts": {}, - "section_name": "VNF Package Structure and Format", + "section_name": "VNF or PNF Package Structure and Format", "sections": [ - "VNF Package Structure and Format", + "VNF or PNF Package Structure and Format", "VNF or PNF CSAR Package" ], "status": null, "tags": [], - "target": "VNF or PNF", + "target": "VNF or PNF CSAR PACKAGE", "test": "", "test_case": "", "test_file": "", @@ -89118,7 +89154,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "dublin", + "updated": "frankfurt", "validated_by": "", "validation_mode": "" }, @@ -89265,7 +89301,7 @@ "validation_mode": "static" }, "R-52425": { - "description": "A VNF's port connected to an internal network **MUST**\nuse the port for the purpose of reaching VMs in the same VNF.", + "description": "A VNF's port connected to an ONAP internal network **MUST**\nuse the port for the purpose of reaching VMs in the same VNF.", "docname": "Chapter5/Heat/ONAP Heat Networking", "full_title": "", "hide_links": "", @@ -89295,7 +89331,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "casablanca", + "updated": "frankfurt", "validated_by": "", "validation_mode": "none" }, @@ -89479,7 +89515,7 @@ "validation_mode": "" }, "R-53310": { - "description": "A VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::InstanceIp`` Resource ID\nthat is configuring an IPv4 Address on a virtual machine interface\n(i.e., OS::ContrailV2::VirtualMachineInterface)\nattached to an external network\n**MUST** use the naming convention\n\n* ``{vm-type}_{vm-type_index}_{network-role}_vmi_{vmi_index}_IP_{index}``\n\nwhere\n\n* ``{vm-type}`` is the vm-type\n* ``{vm-type_index}`` references the instance of the ``{vm-type}`` in\n the VNF. The\n ``{vm-type_index}`` is a numeric value that **MUST** start at zero\n in the VNF and\n **MUST** increment by one each time a new instance of a ``{vm-type}``\n is referenced.\n* ``{network-role}`` is the network-role of the network that the\n virtual machine interface is attached to\n* ``{vmi_index}`` references the instance of the virtual machine interface\n on the ``{vm-type}`` attached to ``{network-role}`` network. The\n ``{vmi_index}`` is a numeric value that **MUST** start at zero on an\n instance of a ``{vm-type}`` and **MUST** increment by one each time a\n new virtual machine interface is defined on the instance of the\n ``{vm-type}`` attached to ``{network-role}`` network.\n* ``IP`` signifies that an IPv4 address is being configured\n* ``{index}`` references the instance of the IPv4 address configured\n on the virtual machine interface. The ``{index}`` is a numeric value\n that **MUST** start at zero on an\n instance of a virtual machine interface and **MUST** increment by one\n each time a new IPv4 address is configured on the\n virtual machine interface.", + "description": "A VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::InstanceIp`` Resource ID\nthat is configuring an IPv4 Address on a virtual machine interface\n(i.e., OS::ContrailV2::VirtualMachineInterface)\nattached to an ONAP external network (per the ONAP definition,\nsee Requirement R-57424 and R-16968)\n**MUST** use the naming convention\n\n* ``{vm-type}_{vm-type_index}_{network-role}_vmi_{vmi_index}_IP_{index}``\n\nwhere\n\n* ``{vm-type}`` is the vm-type\n* ``{vm-type_index}`` references the instance of the ``{vm-type}`` in\n the VNF. The\n ``{vm-type_index}`` is a numeric value that **MUST** start at zero\n in the VNF and\n **MUST** increment by one each time a new instance of a ``{vm-type}``\n is referenced.\n* ``{network-role}`` is the network-role of the ONAP external\n network that the virtual machine interface is attached to\n* ``{vmi_index}`` references the instance of the virtual machine interface\n on the ``{vm-type}`` attached to ``{network-role}`` network. The\n ``{vmi_index}`` is a numeric value that **MUST** start at zero on an\n instance of a ``{vm-type}`` and **MUST** increment by one each time a\n new virtual machine interface is defined on the instance of the\n ``{vm-type}`` attached to ``{network-role}`` network.\n* ``IP`` signifies that an IPv4 address is being configured\n* ``{index}`` references the instance of the IPv4 address configured\n on the virtual machine interface. The ``{index}`` is a numeric value\n that **MUST** start at zero on an\n instance of a virtual machine interface and **MUST** increment by one\n each time a new IPv4 address is configured on the\n virtual machine interface.", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs", "full_title": "", "hide_links": "", @@ -89510,7 +89546,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "dublin", + "updated": "frankfurt", "validated_by": "", "validation_mode": "static" }, @@ -90150,6 +90186,41 @@ "validated_by": "", "validation_mode": "static" }, + "R-55307": { + "description": "A VNF's Heat Orchestration Template's parameter ``vf_module_index``\n**MUST NOT** be used for indexing an:\n\n- ``OS::Nova::Server`` property ``name`` parameter (when defined as a\n ``comma_delimited_list``).\n- ``OS::Neutron::Port`` property ``fixed_ips`` map property ``ip_address``\n parameter (when defined as a ``comma_delimited_list``) when the port is\n attaching to an ONAP external network (per the ONAP\n definition, see Requirement R-57424 and R-16968)", + "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Nova Metadata Parameters", + "full_title": "", + "hide_links": "", + "id": "R-55307", + "id_complete": "R-55307", + "id_parent": "R-55307", + "impacts": "", + "introduced": "frankfurt", + "is_need": true, + "is_part": false, + "keyword": "MUST NOT", + "links": [], + "notes": "", + "parts": {}, + "section_name": "vf_module_index", + "sections": [ + "vf_module_index", + "Resource: OS::Nova::Server Metadata Parameters" + ], + "status": null, + "tags": [], + "target": "VNF", + "test": "", + "test_case": "", + "test_file": "", + "title": "", + "title_from_content": "", + "type": "req", + "type_name": "Requirement", + "updated": "", + "validated_by": "", + "validation_mode": "static" + }, "R-55345": { "description": "The VNF **SHOULD** use techniques such as \"lazy loading\" when\ninitialization includes loading catalogues and/or lists which can grow\nover time, so that the VNF startup time does not grow at a rate\nproportional to that of the list.", "docname": "Chapter4/Resiliency", @@ -90714,7 +90785,7 @@ "validation_mode": "in_service" }, "R-57019": { - "description": "The PNF TOSCA CSAR PACKAGE Manifest file **MUST** start with the PNF\npackage metadata in the form of a name-value pairs. Each pair shall appear\non a different line. The name is specified as following:\n\n - pnfd_provider\n\n - pnfd_name\n\n - pnfd_release_date_time\n\n - pnfd_archive_version", + "description": "The PNF CSAR PACKAGE Manifest file **MUST** start with the PNF\npackage metadata in the form of a name-value pairs. Each pair shall appear\non a different line. The name is specified as following:\n\n - pnfd_provider\n\n - pnfd_name\n\n - pnfd_release_date_time\n\n - pnfd_archive_version", "docname": "Chapter5/Tosca/ONAP VNF or PNF CSAR Package", "full_title": "", "hide_links": "", @@ -90729,9 +90800,9 @@ "links": [], "notes": "", "parts": {}, - "section_name": "VNF Package Contents", + "section_name": "VNF or PNF Package Contents", "sections": [ - "VNF Package Contents", + "VNF or PNF Package Contents", "VNF or PNF CSAR Package" ], "status": null, @@ -90744,7 +90815,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "", + "updated": "frankfurt", "validated_by": "", "validation_mode": "" }, @@ -90784,7 +90855,7 @@ "validation_mode": "static" }, "R-57424": { - "description": "A VNF's port connected to an external network **MUST**\nuse the port for the purpose of reaching\nVMs in another VNF and/or an external gateway and/or external router.\nA VNF's port connected to an external network **MAY**\nuse the port for the purpose of reaching VMs in the same VNF.", + "description": "A VNF's port connected to an ONAP external network **MAY**\nuse the port for the purpose of\n\n- Connecting a VM in the VNF to VMs in another VNF and/or\n- Connecting a VM in the VNF to an external gateway or external router\n and/or\n- Connecting a VM in the VNF to other VMs in the same VNF", "docname": "Chapter5/Heat/ONAP Heat Networking", "full_title": "", "hide_links": "", @@ -90795,7 +90866,7 @@ "introduced": "", "is_need": true, "is_part": false, - "keyword": "MUST", + "keyword": "MAY", "links": [], "notes": "", "parts": {}, @@ -90814,7 +90885,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "casablanca", + "updated": "frankfurt", "validated_by": "", "validation_mode": "none" }, @@ -91277,7 +91348,7 @@ "validation_mode": "" }, "R-59434": { - "description": "A VNF's Heat Orchestration Template's Resource ``OS::Neutron::Subnet``\nResource ID **SHOULD** use the naming convention\n\n* ``int_{network-role}_subnet_{index}``\n\nwhere\n\n* ``{network-role}`` is the network-role\n* ``{index}`` is the ``{index}`` of the subnet of the network.\n The ``{index}`` starts at zero and increments by one\n (as described in R-11690).", + "description": "A VNF's Heat Orchestration Template's Resource ``OS::Neutron::Subnet``\nResource ID **SHOULD** use the naming convention\n\n* ``int_{network-role}_subnet_{index}``\n\nwhere\n\n* ``{network-role}`` is the network-role of the ONAP internal network\n (per the ONAP definition, see Requirements R-52425 and R-46461 and\n R-35666).\n* ``{index}`` is the ``{index}`` of the subnet of the ONAP internal network.\n The ``{index}`` starts at zero and increments by one\n (as described in R-11690).", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs", "full_title": "", "hide_links": "", @@ -91308,7 +91379,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "dublin", + "updated": "frankfurt", "validated_by": "", "validation_mode": "" }, @@ -91910,7 +91981,7 @@ "validation_mode": "" }, "R-62187": { - "description": "A VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::InstanceIp`` Resource ID\nthat is configuring an IPv4 Address on a virtual machine interface\n(i.e., OS::ContrailV2::VirtualMachineInterface)\nattached to an internal network\n**MUST** use the naming convention\n\n* ``{vm-type}_{vm-type_index}_int_{network-role}_vmi_{vmi_index}_IP_{index}``\n\nwhere\n\n* ``{vm-type}`` is the vm-type\n* ``{vm-type_index}`` references the instance of the ``{vm-type}`` in\n the VNF. The\n ``{vm-type_index}`` is a numeric value that **MUST** start at zero\n in the VNF and\n **MUST** increment by one each time a new instance of a ``{vm-type}``\n is referenced.\n* ``{network-role}`` is the network-role of the network\n that the port is attached to\n* ``{vmi_index}`` references the instance of the virtual machine interface\n on the ``{vm-type}`` attached to ``{network-role}`` network. The\n ``{vmi_index}`` is a numeric value that **MUST** start at zero on an\n instance of a ``{vm-type}`` and **MUST** increment by one each time a\n new virtual machine interface is defined on the instance of the\n ``{vm-type}`` attached to ``{network-role}`` network.\n* ``IP`` signifies that an IPv4 address is being configured\n* ``{index}`` references the instance of the IPv4 address configured\n on the virtual machine interface. The ``{index}`` is a numeric value\n that **MUST** start at zero on an\n instance of a virtual machine interface and **MUST** increment by one\n each time a new IPv4 address is configured on the\n virtual machine interface.", + "description": "A VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::InstanceIp`` Resource ID\nthat is configuring an IPv4 Address on a virtual machine interface\n(i.e., OS::ContrailV2::VirtualMachineInterface)\nattached to an ONAP internal network (per the ONAP definition, see\nRequirements R-52425 and R-46461 and R-35666)\n**MUST** use the naming convention\n\n* ``{vm-type}_{vm-type_index}_int_{network-role}_vmi_{vmi_index}_IP_{index}``\n\nwhere\n\n* ``{vm-type}`` is the vm-type\n* ``{vm-type_index}`` references the instance of the ``{vm-type}`` in\n the VNF. The\n ``{vm-type_index}`` is a numeric value that **MUST** start at zero\n in the VNF and\n **MUST** increment by one each time a new instance of a ``{vm-type}``\n is referenced.\n* ``{network-role}`` is the network-role of the ONAP internal network\n that the port is attached to\n* ``{vmi_index}`` references the instance of the virtual machine interface\n on the ``{vm-type}`` attached to ``{network-role}`` network. The\n ``{vmi_index}`` is a numeric value that **MUST** start at zero on an\n instance of a ``{vm-type}`` and **MUST** increment by one each time a\n new virtual machine interface is defined on the instance of the\n ``{vm-type}`` attached to ``{network-role}`` network.\n* ``IP`` signifies that an IPv4 address is being configured\n* ``{index}`` references the instance of the IPv4 address configured\n on the virtual machine interface. The ``{index}`` is a numeric value\n that **MUST** start at zero on an\n instance of a virtual machine interface and **MUST** increment by one\n each time a new IPv4 address is configured on the\n virtual machine interface.", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs", "full_title": "", "hide_links": "", @@ -91941,7 +92012,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "dublin", + "updated": "frankfurt", "validated_by": "", "validation_mode": "static" }, @@ -92053,7 +92124,7 @@ "validation_mode": "" }, "R-62590": { - "description": "The VNF's Heat Orchestration Template's Resource ``OS::Neutron::Port``\nproperty ``fixed_ips``\nmap property ``ip_address``\nparameter associated with an external network, i.e.,\n\n * ``{vm-type}_{network-role}_ip_{index}``\n * ``{vm-type}_{network-role}_v6_ip_{index}``\n * ``{vm-type}_{network-role}_ips``\n * ``{vm-type}_{network-role}_v6_ips``\n\n\n**MUST NOT** be enumerated in the Heat Orchestration\nTemplate's Environment File. ONAP provides the IP address\nassignments at orchestration time.", + "description": "The VNF's Heat Orchestration Template's Resource ``OS::Neutron::Port``\nproperty ``fixed_ips``\nmap property ``ip_address``\nparameter associated with an ONAP external network, i.e.,\n\n * ``{vm-type}_{network-role}_ip_{index}``\n * ``{vm-type}_{network-role}_v6_ip_{index}``\n * ``{vm-type}_{network-role}_ips``\n * ``{vm-type}_{network-role}_v6_ips``\n\n\n**MUST NOT** be enumerated in the Heat Orchestration\nTemplate's Environment File. ONAP provides the IP address\nassignments at orchestration time.", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters", "full_title": "", "hide_links": "", @@ -92083,12 +92154,12 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "casablanca", + "updated": "frankfurt", "validated_by": "", "validation_mode": "static" }, "R-62802": { - "description": "When the VNF's Heat Orchestration Template's\nresource ``OS::Neutron::Port`` is attaching\nto an external network (per the ONAP definition, see\nRequirement R-57424),\nand an IPv4 address is being cloud assigned by OpenStack's DHCP Service\nand the external network IPv4 subnet is to be specified\nusing the property ``fixed_ips``\nmap property ``subnet``, the parameter\n**MUST** follow the naming convention\n\n * ``{network-role}_subnet_id``\n\nwhere\n\n * ``{network-role}`` is the network role of the network.", + "description": "When the VNF's Heat Orchestration Template's\nresource ``OS::Neutron::Port`` is attaching\nto an ONAP external network (per the ONAP definition, see\nRequirement R-57424 and R-16968),\nand an IPv4 address is being cloud assigned by OpenStack's DHCP Service\nand the ONAP external network IPv4 subnet is to be specified\nusing the property ``fixed_ips``\nmap property ``subnet``, the parameter\n**MUST** follow the naming convention\n\n * ``{network-role}_subnet_id``\n\nwhere\n\n * ``{network-role}`` is the network role of the ONAP external network.", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters", "full_title": "", "hide_links": "", @@ -92118,7 +92189,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "casablanca", + "updated": "frankfurt", "validated_by": "", "validation_mode": "static" }, @@ -92158,7 +92229,7 @@ "validation_mode": "" }, "R-62983": { - "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::Neutron::Port`` is attaching to an external network (per the\nONAP definition, see Requirement R-57424), the\n``network`` parameter name **MUST**\n\n * follow the naming convention ``{network-role}_net_id`` if the Neutron\n network UUID value is used to reference the network\n * follow the naming convention ``{network-role}_net_name`` if the\n OpenStack network name is used to reference the network.\n\nwhere ``{network-role}`` is the network-role of the external network\nand a ``get_param`` **MUST** be used as the intrinsic function.", + "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::Neutron::Port`` is attaching to an ONAP external network (per the\nONAP definition, see Requirement R-57424 and R-16968), the\n``network`` parameter name **MUST**\n\n * follow the naming convention ``{network-role}_net_id`` if the Neutron\n network UUID value is used to reference the network\n * follow the naming convention ``{network-role}_net_name`` if the\n OpenStack network name is used to reference the network.\n\nwhere ``{network-role}`` is the network-role of the ONAP external network\nand a ``get_param`` **MUST** be used as the intrinsic function.", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters", "full_title": "", "hide_links": "", @@ -92188,7 +92259,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "casablanca", + "updated": "frankfurt", "validated_by": "", "validation_mode": "static" }, @@ -92480,7 +92551,7 @@ "validation_mode": "" }, "R-63956": { - "description": "If the VNF's ports connected to a unique external network\nand the port's IP addresses are ONAP SDN-C assigned IP addresses,\nthe IPv4 addresses **MAY** be from different subnets and the IPv6\naddresses **MAY** be from different subnets.", + "description": "If the VNF's ports connected to a unique ONAP external network\n(per the ONAP definition, see Requirement R-57424 and R-16968)\nand the port's IP addresses are ONAP SDN-C assigned IP addresses,\nthe IPv4 addresses **MAY** be from different subnets and the IPv6\naddresses **MAY** be from different subnets.", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters", "full_title": "", "hide_links": "", @@ -92511,7 +92582,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "casablanca", + "updated": "frankfurt", "validated_by": "", "validation_mode": "" }, @@ -92758,7 +92829,7 @@ "validation_mode": "" }, "R-65516": { - "description": "A VNF's Heat Orchestration Template's Resource ``OS::Nova::Keypair`` applies to\nall Virtual Machines in the VNF, the Resource ID **SHOULD** use the naming\nconvention\n\n* ``{vnf-type}_keypair``\n\nwhere\n\n* ``{vnf-type}`` describes the VNF", + "description": "A VNF's Heat Orchestration Template's Resource ``OS::Nova::Keypair``\napplies to all Virtual Machines in the VNF, the\n``OS::Nova::Keypair`` Resource ID **SHOULD** use the naming\nconvention\n\n* ``{vnf-type}_keypair``\n\nwhere\n\n* ``{vnf-type}`` describes the VNF", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs", "full_title": "", "hide_links": "", @@ -92789,7 +92860,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "dublin", + "updated": "frankfurt", "validated_by": "", "validation_mode": "" }, @@ -93262,7 +93333,7 @@ "validation_mode": "" }, "R-67793": { - "description": "When a VNF's Heat Orchestration Template's resource is associated\nwith more than one ``{vm-type}`` and/or more than one internal and/or\nexternal network, the Resource ID **MUST NOT** contain the ``{vm-type}``\nand/or ``{network-role}``/``int_{network-role}``. It also should contain the\nterm ``shared`` and/or contain text that identifies the VNF.", + "description": "When a VNF's Heat Orchestration Template's resource is associated\nwith more than one ``{vm-type}`` and/or more than one ONAP internal network\n(per the ONAP definition, see Requirements R-52425 and R-46461 and R-35666)\nand/or\nONAP external network (per the ONAP definition, see Requirement R-57424\nand R-16968), the Resource ID **MUST NOT** contain the\n``{vm-type}`` and/or ``{network-role}``/``int_{network-role}``.", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs", "full_title": "", "hide_links": "", @@ -93291,7 +93362,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "casablanca", + "updated": "frankfurt", "validated_by": "", "validation_mode": "none" }, @@ -93580,7 +93651,7 @@ "validation_mode": "" }, "R-68520": { - "description": "A VNF's Heat Orchestration Template's Resource ``OS::Neutron::Port``\nthat is creating a *Reserve Port* with an IPv6 address Resource ID\n**SHOULD** use the naming convention\n\n* ``reserve_port_{vm-type}_{network-role}_floating_v6_ip_{index}``\n\nwhere\n\n* ``{vm-type}`` is the vm-type\n* ``{network-role}`` is the network-role of the network\n that the port is attached to\n* ``{index}`` is the instance of the IPv6 *Reserve Port*\n for the vm-type attached to the network of ``{network-role}``.\n The ``{index}`` starts at zero and increments by one\n (as described in R-11690).", + "description": "A VNF's Heat Orchestration Template's Resource ``OS::Neutron::Port``\nthat is creating a *Reserve Port* with an IPv6 address, the\n``OS::Neutron::Port`` Resource ID\n**SHOULD** use the naming convention\n\n* ``reserve_port_{vm-type}_{network-role}_floating_v6_ip_{index}``\n\nwhere\n\n* ``{vm-type}`` is the vm-type\n* ``{network-role}`` is the network-role of the ONAP external network\n that the port is attached to\n* ``{index}`` is the instance of the IPv6 *Reserve Port*\n for the vm-type attached to the network of ``{network-role}``.\n The ``{index}`` starts at zero and increments by one\n (as described in R-11690).", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs", "full_title": "", "hide_links": "", @@ -93611,7 +93682,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "dublin", + "updated": "frankfurt", "validated_by": "", "validation_mode": "none" }, @@ -93688,7 +93759,7 @@ "validation_mode": "" }, "R-69014": { - "description": "When a VNF's port connects to an internal network or external network,\na network role, referred to\nas the ``{network-role}`` **MUST** be assigned to the network for\nuse in the VNF's Heat Orchestration Template. The ``{network-role}``\nis used in the VNF's Heat Orchestration Template resource IDs\nand resource property parameter names.", + "description": "When a VNF's port connects to an ONAP internal network or ONAP\nexternal network,\na network role, referred to\nas the ``{network-role}`` **MUST** be assigned to the network for\nuse in the VNF's Heat Orchestration Template. The ``{network-role}``\nis used in the VNF's Heat Orchestration Template's resource IDs\nand resource property parameter names.", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/{network-role}", "full_title": "", "hide_links": "", @@ -93717,7 +93788,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "dublin", + "updated": "frankfurt", "validated_by": "", "validation_mode": "none" }, @@ -94323,7 +94394,7 @@ "validation_mode": "" }, "R-70964": { - "description": "If a VNF's Port is attached to an internal network and the port's\nIP addresses are statically assigned by the VNF's Heat Orchestration\\\nTemplate (i.e., enumerated in the Heat Orchestration Template's\nenvironment file), the ``OS::Neutron::Port`` Resource's\n\n* property ``fixed_ips`` map property ``ip_address`` **MUST** be used\n* property ``fixed_ips`` map property ``subnet``\n **MUST NOT** be used", + "description": "If a VNF's Port is attached to an ONAP internal network\n(per the ONAP definition, see Requirements R-52425 and R-46461 and R-35666)\nand the port's\nIP addresses are statically assigned by the VNF's Heat Orchestration\nTemplate (i.e., enumerated in the Heat Orchestration Template's\nenvironment file), the ``OS::Neutron::Port`` Resource's\n\n* property ``fixed_ips`` map property ``ip_address`` **MUST** be used\n* property ``fixed_ips`` map property ``subnet``\n **MUST NOT** be used", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters", "full_title": "", "hide_links": "", @@ -94354,7 +94425,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "casablanca", + "updated": "frankfurt", "validated_by": "", "validation_mode": "none" }, @@ -94429,7 +94500,7 @@ "validation_mode": "static" }, "R-71577": { - "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::Neutron::Port`` is attaching to an external network (per the\nONAP definition, see Requirement R-57424),\nand an IPv6 address is assigned\nusing the property ``fixed_ips``\nmap property ``ip_address`` and the parameter type is defined as a string,\nthe parameter name **MUST** follow the\nnaming convention\n\n* ``{vm-type}_{network-role}_v6_ip_{index}``\n\nwhere\n\n* ``{vm-type}`` is the {vm-type} associated with the\n ``OS::Nova::Server``\n* ``{network-role}`` is the {network-role} of the external network\n* ``{index}`` is a numeric value that **MUST** start at zero in a\n VNF's Heat Orchestration Template and **MUST** increment by one", + "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::Neutron::Port`` is attaching to an ONAP external network (per the\nONAP definition, see Requirement R-57424 and R-16968),\nand an IPv6 address is assigned\nusing the property ``fixed_ips``\nmap property ``ip_address`` and the parameter type is defined as a string,\nthe parameter name **MUST** follow the\nnaming convention\n\n* ``{vm-type}_{network-role}_v6_ip_{index}``\n\nwhere\n\n* ``{vm-type}`` is the {vm-type} associated with the\n ``OS::Nova::Server``\n* ``{network-role}`` is the {network-role} of the ONAP external network\n* ``{index}`` is a numeric value that **MUST** start at zero in a\n VNF's Heat Orchestration Template and **MUST** increment by one", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters", "full_title": "", "hide_links": "", @@ -94459,7 +94530,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "dublin", + "updated": "frankfurt", "validated_by": "", "validation_mode": "static" }, @@ -94501,7 +94572,7 @@ "validation_mode": "static" }, "R-717227": { - "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::Neutron::Port`` is attaching to an internal network (per the\nONAP definition, see Requirements R-52425 and R-46461),\nand an IPv4 Virtual IP (VIP)\naddress is assigned using the property ``allowed_address_pairs``\nmap property ``ip_address``,\nthe parameter name **MUST** follow the\nnaming convention\n\n * ``{vm-type}_int_{network-role}_floating_ip``\n\nwhere\n\n * ``{vm-type}`` is the {vm-type} associated with the\n OS::Nova::Server\n * ``{network-role}`` is the {network-role} of the external\n network\n\nAnd the parameter **MUST** be declared as ``type: string``\nand **MUST** be enumerated in the environment file.\n\nOR\n\nthe parameter name **MUST** follow the\nnaming convention\n\n * ``{vm-type}_int_{network-role}_floating_ips``\n\nwhere\n\n * ``{vm-type}`` is the {vm-type} associated with the\n OS::Nova::Server\n * ``{network-role}`` is the {network-role} of the external\n network\n\nAnd the parameter **MUST** be declared as ``type: comma_delimited_list``\nand **MUST** be enumerated in the environment file.", + "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::Neutron::Port`` is attaching to an ONAP internal network (per the\nONAP definition, see Requirements R-52425 and R-46461 and R-35666),\nand an IPv4 Virtual IP (VIP)\naddress is assigned using the property ``allowed_address_pairs``\nmap property ``ip_address``,\nthe parameter name **MUST** follow the\nnaming convention\n\n- ``{vm-type}_int_{network-role}_floating_ip``\n\nwhere\n\n- ``{vm-type}`` is the {vm-type} associated with the\n OS::Nova::Server\n- ``{network-role}`` is the {network-role} of the ONAP internal\n network\n\nAnd the parameter **MUST** be declared as ``type: string``\nand **MUST** be enumerated in the environment file.\n\nOR\n\nthe parameter name **MUST** follow the\nnaming convention\n\n- ``{vm-type}_int_{network-role}_floating_ips``\n\nwhere\n\n- ``{vm-type}`` is the {vm-type} associated with the\n OS::Nova::Server\n- ``{network-role}`` is the {network-role} of the ONAP internal\n network\n\nAnd the parameter **MUST** be declared as ``type: comma_delimited_list``\nand **MUST** be enumerated in the environment file.", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters", "full_title": "", "hide_links": "", @@ -94516,9 +94587,9 @@ "links": [], "notes": "", "parts": {}, - "section_name": "VIP Assignment, Internal Networks", + "section_name": "VIP Assignment, ONAP Internal Networks", "sections": [ - "VIP Assignment, Internal Networks", + "VIP Assignment, ONAP Internal Networks", "Property: allowed_address_pairs, Map Property: ip_address", "Resource: OS::Neutron::Port - Parameters" ], @@ -94532,7 +94603,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "", + "updated": "frankfurt", "validated_by": "", "validation_mode": "static" }, @@ -94749,7 +94820,7 @@ "validation_mode": "" }, "R-73213": { - "description": "A VNF's Heat Orchestration Template's Resource ``OS::Neutron::SecurityGroup`` that\nis applicable to more than one ``{vm-type}`` and one internal network Resource ID\n**SHOULD** use the naming convention\n\n* ``int_{network-role}_security_group``\n\nwhere\n\n* ``{network-role}`` is the network-role", + "description": "A VNF's Heat Orchestration Template's Resource\n``OS::Neutron::SecurityGroup`` that\nis applicable to more than one ``{vm-type}`` and one ONAP internal network,\n(per the ONAP definition, see Requirements R-52425 and R-46461 and\nR-35666), the ``OS::Neutron::SecurityGroup`` Resource ID\n**SHOULD** use the naming convention\n\n* ``int_{network-role}_security_group``\n\nwhere\n\n* ``{network-role}`` is the network-role of the ONAP internal network", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs", "full_title": "", "hide_links": "", @@ -94780,7 +94851,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "casablanca", + "updated": "frankfurt", "validated_by": "", "validation_mode": "" }, @@ -95529,7 +95600,7 @@ "validation_mode": "static" }, "R-76160": { - "description": "When\n\n * the VNF's Heat Orchestration Template's\n resource ``OS::Neutron::Port`` in an Incremental Module is attaching\n to an internal network (per the ONAP definition, see Requirements\n R-52425 and R-46461)\n that is created in the Base Module, AND\n * an IPv6 address is being cloud assigned by OpenStack's DHCP Service AND\n * the internal network IPv6 subnet is to be specified\n using the property ``fixed_ips`` map property ``subnet``,\n\nthe parameter **MUST** follow the naming convention\n``int_{network-role}_v6_subnet_id``,\nwhere ``{network-role}`` is the network role of the internal network.\n\nNote that the parameter **MUST** be defined as an ``output`` parameter in\nthe base module.", + "description": "When\n\n* the VNF's Heat Orchestration Template's\n resource ``OS::Neutron::Port`` in an Incremental Module is attaching\n to an ONAP internal network (per the ONAP definition, see Requirements\n R-52425 and R-46461 and R-35666)\n that is created in the Base Module, AND\n* an IPv6 address is being cloud assigned by OpenStack's DHCP Service AND\n* the ONAP internal network IPv6 subnet is to be specified\n using the property ``fixed_ips`` map property ``subnet``,\n\nthe parameter **MUST** follow the naming convention\n\n* ``int_{network-role}_v6_subnet_id``\n\nwhere ``{network-role}`` is the network role of the ONAP internal network.\n\nNote that the parameter **MUST** be defined as an ``output`` parameter in\nthe base module.", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters", "full_title": "", "hide_links": "", @@ -95614,9 +95685,9 @@ "links": [], "notes": "", "parts": {}, - "section_name": "VIP Assignment, External Networks", + "section_name": "VIP Assignment, ONAP External Networks", "sections": [ - "VIP Assignment, External Networks", + "VIP Assignment, ONAP External Networks", "Property: allowed_address_pairs, Map Property: ip_address", "Resource: OS::Neutron::Port - Parameters" ], @@ -95919,7 +95990,7 @@ "validation_mode": "" }, "R-78380": { - "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::Neutron::Port`` is attaching to an internal network (per the\nONAP definition, see Requirements R-52425 and R-46461),\nand an IPv4 address is assigned\nusing the property ``fixed_ips``\nmap property ``ip_address`` and the parameter type is\ndefined as a ``string``,\nthe parameter name **MUST** follow the\nnaming convention\n\n* ``{vm-type}_int_{network-role}_ip_{index}``\n\nwhere\n\n* ``{vm-type}`` is the {vm-type} associated with the\n ``OS::Nova::Server``\n* ``{network-role}`` is the {network-role} of the internal network\n* ``{index}`` is a numeric value that **MUST** start at zero in a\n VNF's Heat Orchestration Template and **MUST** increment by one", + "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::Neutron::Port`` is attaching to an ONAP internal network (per the\nONAP definition, see Requirements R-52425 and R-46461 and R-35666),\nand an IPv4 address is assigned\nusing the property ``fixed_ips``\nmap property ``ip_address`` and the parameter type is\ndefined as a ``string``,\nthe parameter name **MUST** follow the\nnaming convention\n\n* ``{vm-type}_int_{network-role}_ip_{index}``\n\nwhere\n\n* ``{vm-type}`` is the {vm-type} associated with the\n ``OS::Nova::Server``\n* ``{network-role}`` is the {network-role} of the ONAP internal network\n* ``{index}`` is a numeric value that **MUST** start at zero in a\n VNF's Heat Orchestration Template and **MUST** increment by one", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters", "full_title": "", "hide_links": "", @@ -95949,7 +96020,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "dublin", + "updated": "frankfurt", "validated_by": "", "validation_mode": "static" }, @@ -96169,7 +96240,7 @@ "validation_mode": "" }, "R-795126": { - "description": "The VNF TOSCA CSAR package Manifest file **MUST** start with the VNF\npackage metadata in the form of a name-value pairs. Each pair shall appear\non a different line. The name is specified as following:\n\n - vnf_provider_id\n\n - vnf_product_name\n\n - vnf_release_date_time\n\n - vnf_package_version", + "description": "The VNF CSAR package Manifest file **MUST** start with the VNF\npackage metadata in the form of a name-value pairs. Each pair shall appear\non a different line. The name is specified as following:\n\n - vnf_provider_id\n\n - vnf_product_name\n\n - vnf_release_date_time\n\n - vnf_package_version", "docname": "Chapter5/Tosca/ONAP VNF or PNF CSAR Package", "full_title": "", "hide_links": "", @@ -96184,9 +96255,9 @@ "links": [], "notes": "", "parts": {}, - "section_name": "VNF Package Contents", + "section_name": "VNF or PNF Package Contents", "sections": [ - "VNF Package Contents", + "VNF or PNF Package Contents", "VNF or PNF CSAR Package" ], "status": null, @@ -96199,7 +96270,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "", + "updated": "frankfurt", "validated_by": "", "validation_mode": "" }, @@ -96416,7 +96487,7 @@ "validation_mode": "static" }, "R-805572": { - "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::Neutron::Port`` is attaching to an internal network (per the\nONAP definition, see Requirements R-52425 and R-46461),\nand an IPv6 Virtual IP (VIP)\naddress is assigned\nusing the property ``allowed_address_pairs``\nmap property ``ip_address``,\nthe parameter name **MUST** follow the\nnaming convention\n\n * ``{vm-type}_int_{network-role}_floating_v6_ip``\n\nwhere\n\n * ``{vm-type}`` is the {vm-type} associated with the\n OS::Nova::Server\n * ``{network-role}`` is the {network-role} of the external\n network\n\nAnd the parameter **MUST** be declared as ``type: string``\nand **MUST** be enumerated in the environment file\n\nOR\n\nthe parameter name **MUST** follow the\nnaming convention\n\n * ``{vm-type}_int_{network-role}_floating_v6_ips``\n\nwhere\n\n * ``{vm-type}`` is the {vm-type} associated with the\n OS::Nova::Server\n * ``{network-role}`` is the {network-role} of the external\n network\n\nAnd the parameter **MUST** be declared as ``type: comma_delimited_list``\nand **MUST** be enumerated in the environment file.", + "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::Neutron::Port`` is attaching to an ONAP internal network (per the\nONAP definition, see Requirements R-52425 and R-46461 and R-35666),\nand an IPv6 Virtual IP (VIP)\naddress is assigned\nusing the property ``allowed_address_pairs``\nmap property ``ip_address``,\nthe parameter name **MUST** follow the\nnaming convention\n\n- ``{vm-type}_int_{network-role}_floating_v6_ip``\n\nwhere\n\n- ``{vm-type}`` is the {vm-type} associated with the\n OS::Nova::Server\n- ``{network-role}`` is the {network-role} of the ONAP internal\n network\n\nAnd the parameter **MUST** be declared as ``type: string``\nand **MUST** be enumerated in the environment file\n\nOR\n\nthe parameter name **MUST** follow the\nnaming convention\n\n- ``{vm-type}_int_{network-role}_floating_v6_ips``\n\nwhere\n\n- ``{vm-type}`` is the {vm-type} associated with the\n OS::Nova::Server\n- ``{network-role}`` is the {network-role} of the ONAP internal\n network\n\nAnd the parameter **MUST** be declared as ``type: comma_delimited_list``\nand **MUST** be enumerated in the environment file.", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters", "full_title": "", "hide_links": "", @@ -96431,9 +96502,9 @@ "links": [], "notes": "", "parts": {}, - "section_name": "VIP Assignment, Internal Networks", + "section_name": "VIP Assignment, ONAP Internal Networks", "sections": [ - "VIP Assignment, Internal Networks", + "VIP Assignment, ONAP Internal Networks", "Property: allowed_address_pairs, Map Property: ip_address", "Resource: OS::Neutron::Port - Parameters" ], @@ -96447,7 +96518,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "", + "updated": "frankfurt", "validated_by": "", "validation_mode": "static" }, @@ -96843,7 +96914,7 @@ "validation_mode": "" }, "R-81979": { - "description": "A VNF's Heat Orchestration Template's Resource ``OS::ContrailV2::NetworkIpam``\nResource ID **MAY** use the naming convention\n\n* ``{network-role}_RNI``\n\nwhere\n\n* ``{network-role}`` is the network-role\n* ``RNI`` signifies that it is the Resource Network IPAM", + "description": "A VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::NetworkIpam``\nResource ID **MAY** use the naming convention\n\n* ``{network-role}_RNI``\n\nwhere\n\n* ``{network-role}`` is the network-role\n* ``RNI`` signifies that it is the Resource Network IPAM", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs", "full_title": "", "hide_links": "", @@ -96916,7 +96987,7 @@ "validation_mode": "" }, "R-82115": { - "description": "When a VNF's Heat Orchestration Template's resource is associated with a\nsingle ``{vm-type}``\nand a single external network, the Resource ID text **MUST** contain both\nthe ``{vm-type}``\nand the ``{network-role}``\n\n- the ``{vm-type}`` **MUST** appear before the ``{network-role}`` and\n **MUST** be separated by an underscore '_'\n\n\n - e.g., ``{vm-type}_{network-role}``, ``{vm-type}_{index}_{network-role}``\n\n\n- note that an ``{index}`` value **MAY** separate the ``{vm-type}`` and the\n ``{network-role}`` and when this occurs underscores **MUST** separate the\n three values. (e.g., ``{vm-type}_{index}_{network-role}``).", + "description": "When a VNF's Heat Orchestration Template's resource is associated with a\nsingle ``{vm-type}``\nand a single ONAP\nexternal network, the Resource ID text **MUST** contain both\nthe ``{vm-type}``\nand the ``{network-role}``\n\n- the ``{vm-type}`` **MUST** appear before the ``{network-role}`` and\n **MUST** be separated by an underscore '_'\n\n\n - e.g., ``{vm-type}_{network-role}``, ``{vm-type}_{index}_{network-role}``\n\n\n- note that an ``{index}`` value **MAY** separate the ``{vm-type}`` and the\n ``{network-role}`` and when this occurs underscores **MUST** separate the\n three values. (e.g., ``{vm-type}_{index}_{network-role}``).", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs", "full_title": "", "hide_links": "", @@ -96945,7 +97016,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "casablanca", + "updated": "frankfurt", "validated_by": "", "validation_mode": "none" }, @@ -97090,7 +97161,7 @@ "validation_mode": "" }, "R-82551": { - "description": "When a VNF's Heat Orchestration Template's resource is associated with a\nsingle ``{vm-type}`` and a single internal network, the Resource ID **MUST**\ncontain both the ``{vm-type}`` and the ``int_{network-role}`` and\n\n- the ``{vm-type}`` **MUST** appear before the ``int_{network-role}`` and\n **MUST** be separated by an underscore '_'\n\n - (e.g., ``{vm-type}_int_{network-role}``,\n ``{vm-type}_{index}_int_{network-role}``)\n\n- note that an ``{index}`` value **MAY** separate the\n ``{vm-type}`` and the ``int_{network-role}`` and when this occurs\n underscores **MUST** separate the three values.\n (e.g., ``{vm-type}_{index}_int_{network-role}``).", + "description": "When a VNF's Heat Orchestration Template's resource is associated with a\nsingle ``{vm-type}`` and a single ONAP internal network (per the ONAP\ndefinition, see Requirements R-52425 and R-46461 and R-35666),\nthe Resource ID **MUST**\ncontain both the ``{vm-type}`` and the ``int_{network-role}`` and\n\n- the ``{vm-type}`` **MUST** appear before the ``int_{network-role}`` and\n **MUST** be separated by an underscore '_'\n\n - (e.g., ``{vm-type}_int_{network-role}``,\n ``{vm-type}_{index}_int_{network-role}``)\n\n- note that an ``{index}`` value **MAY** separate the\n ``{vm-type}`` and the ``int_{network-role}`` and when this occurs\n underscores **MUST** separate the three values.\n (e.g., ``{vm-type}_{index}_int_{network-role}``).", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs", "full_title": "", "hide_links": "", @@ -97119,7 +97190,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "casablanca", + "updated": "frankfurt", "validated_by": "", "validation_mode": "none" }, @@ -97267,7 +97338,7 @@ "validation_mode": "" }, "R-83412": { - "description": "If a VNF's Heat Orchestration Template's resource\n``OS::Neutron::Port`` is attaching to an external network (per the\nONAP definition, see Requirement R-57424), the\nproperty ``allowed_address_pairs``\nmap property ``ip_address`` parameter(s)\n**MUST NOT** be enumerated in the\nVNF's Heat Orchestration Template's Environment File.", + "description": "If a VNF's Heat Orchestration Template's resource\n``OS::Neutron::Port`` is attaching to an ONAP external network (per the\nONAP definition, see Requirement R-57424 and R-16968), the\nproperty ``allowed_address_pairs``\nmap property ``ip_address`` parameter(s)\n**MUST NOT** be enumerated in the\nVNF's Heat Orchestration Template's Environment File.", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters", "full_title": "", "hide_links": "", @@ -97282,9 +97353,9 @@ "links": [], "notes": "", "parts": {}, - "section_name": "VIP Assignment, External Networks", + "section_name": "VIP Assignment, ONAP External Networks", "sections": [ - "VIP Assignment, External Networks", + "VIP Assignment, ONAP External Networks", "Property: allowed_address_pairs, Map Property: ip_address", "Resource: OS::Neutron::Port - Parameters" ], @@ -97298,7 +97369,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "dublin", + "updated": "frankfurt", "validated_by": "", "validation_mode": "static" }, @@ -97482,7 +97553,7 @@ "validation_mode": "" }, "R-84123": { - "description": "When\n\n * the VNF's Heat Orchestration Template's\n resource ``OS::Neutron::Port`` in an Incremental Module is attaching\n to an internal network (per the ONAP definition, see\n Requirements R-52425 and R-46461)\n that is created in the Base Module, AND\n * an IPv4 address is being cloud assigned by OpenStack's DHCP Service AND\n * the internal network IPv4 subnet is to be specified\n using the property ``fixed_ips`` map property ``subnet``,\n\nthe parameter **MUST** follow the naming convention\n\n * ``int_{network-role}_subnet_id``\n\nwhere\n\n * ``{network-role}`` is the network role of the internal network\n\nNote that the parameter **MUST** be defined as an ``output`` parameter in\nthe base module.", + "description": "When\n\n * the VNF's Heat Orchestration Template's\n resource ``OS::Neutron::Port`` in an Incremental Module is attaching\n to an ONAP internal network (per the ONAP definition, see\n Requirements R-52425 and R-46461 and R-35666)\n that is created in the Base Module, AND\n * an IPv4 address is being cloud assigned by OpenStack's DHCP Service AND\n * the internal network IPv4 subnet is to be specified\n using the property ``fixed_ips`` map property ``subnet``,\n\nthe parameter **MUST** follow the naming convention\n\n * ``int_{network-role}_subnet_id``\n\nwhere\n\n * ``{network-role}`` is the network role of the ONAP internal network\n\nNote that the parameter **MUST** be defined as an ``output`` parameter in\nthe base module.", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters", "full_title": "", "hide_links": "", @@ -97512,7 +97583,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "casablanca", + "updated": "frankfurt", "validated_by": "", "validation_mode": "static" }, @@ -97623,7 +97694,7 @@ "validation_mode": "" }, "R-84322": { - "description": "A VNF's Heat Orchestration Template's Resource property parameter that\nis associated with an internal network **MUST** include\n``int_{network-role}`` as part of the parameter name,\nwhere ``int_`` is a hard coded string.", + "description": "A VNF's Heat Orchestration Template's Resource property parameter that\nis associated with an ONAP internal network (per the ONAP definition, see\nRequirements R-52425 and R-46461 and R-35666)\n**MUST** include\n``int_{network-role}`` as part of the parameter name,\nwhere ``int_`` is a hard coded string.", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/{network-role}", "full_title": "", "hide_links": "", @@ -97652,7 +97723,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "casablanca", + "updated": "frankfurt", "validated_by": "", "validation_mode": "none" }, @@ -97868,7 +97939,7 @@ "validation_mode": "" }, "R-85235": { - "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::Neutron::Port`` is attaching to an internal network (per the\nONAP definition, see Requirements R-52425 and R-46461),\nand an IPv4 address is assigned\nusing the property ``fixed_ips``\nmap property ``ip_address`` and the parameter type is defined as a\n``comma_delimited_list``,\nthe parameter name **MUST** follow the\nnaming convention\n\n * ``{vm-type}_int_{network-role}_ips``\n\nwhere\n\n * ``{vm-type}`` is the {vm-type} associated with the\n ``OS::Nova::Server``\n * ``{network-role}`` is the {network-role} of the internal\n network", + "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::Neutron::Port`` is attaching to an ONAP internal network (per the\nONAP definition, see Requirements R-52425 and R-46461 and R-35666),\nand an IPv4 address is assigned\nusing the property ``fixed_ips``\nmap property ``ip_address`` and the parameter type is defined as a\n``comma_delimited_list``,\nthe parameter name **MUST** follow the\nnaming convention\n\n * ``{vm-type}_int_{network-role}_ips``\n\nwhere\n\n * ``{vm-type}`` is the {vm-type} associated with the\n ``OS::Nova::Server``\n * ``{network-role}`` is the {network-role} of the ONAP internal\n network", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters", "full_title": "", "hide_links": "", @@ -97898,7 +97969,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "casablanca", + "updated": "frankfurt", "validated_by": "", "validation_mode": "static" }, @@ -98147,7 +98218,7 @@ "validation_mode": "" }, "R-86182": { - "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::Neutron::Port``\nis in an incremental module and\nis attaching to an internal network (per the\nONAP definition, see Requirements R-52425 and R-46461),\nthe ``network`` parameter name **MUST**\n\n * follow the naming convention ``int_{network-role}_net_id`` if the\n network UUID value is used to reference the network\n * follow the naming convention ``int_{network-role}_net_name`` if the\n network name in is used to reference the network.\n\nwhere ``{network-role}`` is the network-role of the internal network and\na ``get_param`` **MUST** be used as the intrinsic function.", + "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::Neutron::Port``\nis in an incremental module and\nis attaching to an ONAP internal network (per the\nONAP definition, see Requirements R-52425 and R-46461 and R-35666),\nthe ``network`` parameter name **MUST**\n\n * follow the naming convention ``int_{network-role}_net_id`` if the\n network UUID value is used to reference the network\n * follow the naming convention ``int_{network-role}_net_name`` if the\n network name in is used to reference the network.\n\nwhere ``{network-role}`` is the network-role of the ONAP internal network\nand a ``get_param`` **MUST** be used as the intrinsic function.", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters", "full_title": "", "hide_links": "", @@ -98566,7 +98637,7 @@ "validation_mode": "" }, "R-86972": { - "description": "A VNF **SHOULD** create the internal network in the VNF's Heat\nOrchestration Template Base Module.", + "description": "A VNF **SHOULD** create the ONAP internal network in the VNF's Heat\nOrchestration Template's Base Module.", "docname": "Chapter5/Heat/ONAP Heat Networking", "full_title": "", "hide_links": "", @@ -98637,7 +98708,7 @@ "validation_mode": "" }, "R-87096": { - "description": "A VNF **MAY** contain zero, one or more than one internal network.", + "description": "A VNF **MAY** contain zero, one or more than one ONAP internal network.", "docname": "Chapter5/Heat/ONAP Heat Networking", "full_title": "", "hide_links": "", @@ -98667,7 +98738,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "casablanca", + "updated": "frankfurt", "validated_by": "", "validation_mode": "" }, @@ -98707,7 +98778,7 @@ "validation_mode": "static" }, "R-87234": { - "description": "The VNF or PNF package provided by a VNF or PNF vendor **MUST** be with\nTOSCA-Metadata directory (CSAR Option 1) as specified in\nETSI GS NFV-SOL004.\n\n**Note:** SDC supports only the CSAR Option 1 in Dublin. The Option 2\nwill be considered in future ONAP releases.", + "description": "The VNF or PNF CSAR package provided by a VNF or PNF vendor **MUST** be with\nTOSCA-Metadata directory (CSAR Option 1) as specified in\nETSI GS NFV-SOL004.\n\n**Note:** SDC supports only the CSAR Option 1 in Dublin. The Option 2\nwill be considered in future ONAP releases.", "docname": "Chapter5/Tosca/ONAP VNF or PNF CSAR Package", "full_title": "", "hide_links": "", @@ -98722,14 +98793,14 @@ "links": [], "notes": "", "parts": {}, - "section_name": "VNF Package Structure and Format", + "section_name": "VNF or PNF Package Structure and Format", "sections": [ - "VNF Package Structure and Format", + "VNF or PNF Package Structure and Format", "VNF or PNF CSAR Package" ], "status": null, "tags": [], - "target": "VNF or PNF", + "target": "VNF or PNF CSAR PACKAGE", "test": "", "test_case": "", "test_file": "", @@ -98737,7 +98808,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "dublin", + "updated": "frankfurt", "validated_by": "", "validation_mode": "" }, @@ -98883,7 +98954,7 @@ "validation_mode": "static" }, "R-87563": { - "description": "A VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::InstanceIp`` Resource ID\nthat is configuring an IPv6 Address on a virtual machine interface\n(i.e., OS::ContrailV2::VirtualMachineInterface)\nattached to an internal network\n**MUST** use the naming convention\n\n* ``{vm-type}_{vm-type_index}_int_{network-role}_vmi_{vmi_index}_v6_IP_{index}``\n\nwhere\n\n* ``{vm-type}`` is the vm-type\n* ``{vm-type_index}`` references the instance of the ``{vm-type}`` in\n the VNF. The\n ``{vm-type_index}`` is a numeric value that **MUST** start at zero\n in the VNF and\n **MUST** increment by one each time a new instance of a ``{vm-type}``\n is referenced.\n* ``{network-role}`` is the network-role of the network\n that the port is attached to\n* ``{vmi_index}`` references the instance of the virtual machine interface\n on the ``{vm-type}`` attached to ``{network-role}`` network. The\n ``{vmi_index}`` is a numeric value that **MUST** start at zero on an\n instance of a ``{vm-type}`` and **MUST** increment by one each time a\n new virtual machine interface is defined on the instance of the\n ``{vm-type}`` attached to ``{network-role}`` network.\n* ``v6_IP`` signifies that an IPv6 address is being configured\n* ``{index}`` references the instance of the IPv6 address configured\n on the virtual machine interface. The ``{index}`` is a numeric value\n that **MUST** start at zero on an\n instance of a virtual machine interface and **MUST** increment by one\n each time a new IPv6 address is configured on the\n virtual machine interface.", + "description": "A VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::InstanceIp`` Resource ID\nthat is configuring an IPv6 Address on a virtual machine interface\n(i.e., OS::ContrailV2::VirtualMachineInterface)\nattached to an ONAP internal network (per the ONAP definition, see\nRequirements R-52425 and R-46461 and R-35666)\n**MUST** use the naming convention\n\n* ``{vm-type}_{vm-type_index}_int_{network-role}_vmi_{vmi_index}_v6_IP_{index}``\n\nwhere\n\n* ``{vm-type}`` is the vm-type\n* ``{vm-type_index}`` references the instance of the ``{vm-type}`` in\n the VNF. The\n ``{vm-type_index}`` is a numeric value that **MUST** start at zero\n in the VNF and\n **MUST** increment by one each time a new instance of a ``{vm-type}``\n is referenced.\n* ``{network-role}`` is the network-role of the ONAP internal network\n that the port is attached to\n* ``{vmi_index}`` references the instance of the virtual machine interface\n on the ``{vm-type}`` attached to ``{network-role}`` network. The\n ``{vmi_index}`` is a numeric value that **MUST** start at zero on an\n instance of a ``{vm-type}`` and **MUST** increment by one each time a\n new virtual machine interface is defined on the instance of the\n ``{vm-type}`` attached to ``{network-role}`` network.\n* ``v6_IP`` signifies that an IPv6 address is being configured\n* ``{index}`` references the instance of the IPv6 address configured\n on the virtual machine interface. The ``{index}`` is a numeric value\n that **MUST** start at zero on an\n instance of a virtual machine interface and **MUST** increment by one\n each time a new IPv6 address is configured on the\n virtual machine interface.", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs", "full_title": "", "hide_links": "", @@ -98914,7 +98985,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "dublin", + "updated": "frankfurt", "validated_by": "", "validation_mode": "static" }, @@ -100042,9 +100113,9 @@ "links": [], "notes": "", "parts": {}, - "section_name": "External Networks", + "section_name": "ONAP External Networks", "sections": [ - "External Networks", + "ONAP External Networks", "Contrail Network Parameters", "Contrail Resource Parameters" ], @@ -100381,7 +100452,7 @@ "validation_mode": "" }, "R-93496": { - "description": "The VNF's Heat Orchestration Template's Resource ``OS::Neutron::Port``\nproperty ``fixed_ips``\nmap property ``ip_address``\nparameter associated with an internal network, i.e.,\n\n * ``{vm-type}_int_{network-role}_ip_{index}``\n * ``{vm-type}_int_{network-role}_v6_ip_{index}``\n * ``{vm-type}_int_{network-role}_ips``\n * ``{vm-type}_int_{network-role}_v6_ips``\n\n\n**MUST** be enumerated in the Heat Orchestration\nTemplate's Environment File and IP addresses **MUST** be\nassigned.", + "description": "The VNF's Heat Orchestration Template's Resource ``OS::Neutron::Port``\nproperty ``fixed_ips``\nmap property ``ip_address``\nparameter associated with an ONAP internal network, i.e.,\n\n * ``{vm-type}_int_{network-role}_ip_{index}``\n * ``{vm-type}_int_{network-role}_v6_ip_{index}``\n * ``{vm-type}_int_{network-role}_ips``\n * ``{vm-type}_int_{network-role}_v6_ips``\n\n\n**MUST** be enumerated in the Heat Orchestration\nTemplate's Environment File and IP addresses **MUST** be\nassigned.", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters", "full_title": "", "hide_links": "", @@ -100411,7 +100482,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "casablanca", + "updated": "frankfurt", "validated_by": "", "validation_mode": "static" }, @@ -100915,7 +100986,7 @@ "validation_mode": "" }, "R-96253": { - "description": "A VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::VirtualMachineInterface`` Resource ID\nthat is attaching to an external network\n**MUST** use the naming convention\n\n* ``{vm-type}_{vm-type_index}_{network-role}_vmi_{vmi_index}``\n\nwhere\n\n* ``{vm-type}`` is the vm-type\n* ``{vm-type_index}`` references the instance of the ``{vm-type}`` in\n the VNF. The\n ``{vm-type_index}`` is a numeric value that **MUST** start at zero\n in the VNF and\n **MUST** increment by one each time a new instance of a ``{vm-type}``\n is referenced.\n* ``{network-role}`` is the network-role of the network\n that the port (i.e. virtual machine interface) is attached to\n* ``{vmi_index}`` references the instance of the virtual machine interface\n on the ``{vm-type}`` attached to ``{network-role}`` network. The\n ``{vmi_index}`` is a numeric value that **MUST** start at zero on an\n instance of a ``{vm-type}`` and **MUST** increment by one each time a\n new virtual machine interface is defined on the instance of the\n ``{vm-type}`` attached to ``{network-role}`` network.", + "description": "A VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::VirtualMachineInterface`` Resource ID\nthat is attaching to an ONAP external network (per the ONAP definition,\nsee Requirement R-57424 and R-16968)\n**MUST** use the naming convention\n\n* ``{vm-type}_{vm-type_index}_{network-role}_vmi_{vmi_index}``\n\nwhere\n\n* ``{vm-type}`` is the vm-type\n* ``{vm-type_index}`` references the instance of the ``{vm-type}`` in\n the VNF. The\n ``{vm-type_index}`` is a numeric value that **MUST** start at zero\n in the VNF and\n **MUST** increment by one each time a new instance of a ``{vm-type}``\n is referenced.\n* ``{network-role}`` is the network-role of the ONAP external network\n that the port (i.e. virtual machine interface) is attached to\n* ``{vmi_index}`` references the instance of the virtual machine interface\n on the ``{vm-type}`` attached to ``{network-role}`` network. The\n ``{vmi_index}`` is a numeric value that **MUST** start at zero on an\n instance of a ``{vm-type}`` and **MUST** increment by one each time a\n new virtual machine interface is defined on the instance of the\n ``{vm-type}`` attached to ``{network-role}`` network.", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs", "full_title": "", "hide_links": "", @@ -100946,12 +101017,12 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "dublin", + "updated": "frankfurt", "validated_by": "", "validation_mode": "static" }, "R-96482": { - "description": "When a VNF's Heat Orchestration Template's resource is associated\nwith a single external network, the Resource ID **MUST** contain the text\n``{network-role}``.", + "description": "When a VNF's Heat Orchestration Template's resource is associated\nwith a single ONAP external network, the Resource ID **MUST** contain the\ntext ``{network-role}``.", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs", "full_title": "", "hide_links": "", @@ -100980,7 +101051,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "casablanca", + "updated": "frankfurt", "validated_by": "", "validation_mode": "none" }, @@ -101057,7 +101128,7 @@ "validation_mode": "" }, "R-96983": { - "description": "A VNF's Heat Orchestration Template's Resource ID that is associated\nwith an internal network **MUST** include ``int_{network-role}`` as part\nof the Resource ID, where ``int_`` is a hard coded string.", + "description": "A VNF's Heat Orchestration Template's Resource ID that is associated\nwith an ONAP internal network (per the ONAP definition, see Requirements\nR-52425 and R-46461 and R-35666)\n**MUST** include ``int_{network-role}`` as part\nof the Resource ID, where ``int_`` is a hard coded string.", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/{network-role}", "full_title": "", "hide_links": "", @@ -101086,7 +101157,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "casablanca", + "updated": "frankfurt", "validated_by": "", "validation_mode": "none" }, @@ -101176,9 +101247,9 @@ "links": [], "notes": "", "parts": {}, - "section_name": "VNF Package Contents", + "section_name": "VNF or PNF Package Contents", "sections": [ - "VNF Package Contents", + "VNF or PNF Package Contents", "VNF or PNF CSAR Package" ], "status": null, @@ -101519,7 +101590,7 @@ "validation_mode": "" }, "R-98138": { - "description": "When a VNF's Heat Orchestration Template's resource is associated with a\nsingle internal network, the Resource ID **MUST** contain the text\n``int_{network-role}``.", + "description": "When a VNF's Heat Orchestration Template's resource is associated with a\nsingle ONAP internal network (per the ONAP definition, see\nRequirements R-52425 and R-46461 and R-35666), the Resource ID **MUST**\ncontain the text\n``int_{network-role}``.", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs", "full_title": "", "hide_links": "", @@ -101548,7 +101619,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "casablanca", + "updated": "frankfurt", "validated_by": "", "validation_mode": "none" }, @@ -101905,7 +101976,7 @@ "validation_mode": "" }, "R-99110": { - "description": "A VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::VirtualNetwork`` Resource ID **MUST** use the naming\nconvention\n\n* ``int_{network-role}_network``\n\nVNF Heat Orchestration Templates can only create internal networks.\nThere is no ``{index}`` after ``{network-role}`` because ``{network-role}``\n**MUST** be unique in the scope of the VNF's\nHeat Orchestration Template.", + "description": "A VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::VirtualNetwork`` Resource ID **MUST** use the naming\nconvention\n\n* ``int_{network-role}_network``\n\nVNF Heat Orchestration Templates can only create ONAP internal networks\n(per the ONAP definition, see Requirements R-52425 and R-46461 and R-35666).\nThere is no ``{index}`` after ``{network-role}`` because ``{network-role}``\n**MUST** be unique in the scope of the VNF's\nHeat Orchestration Template.", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs", "full_title": "", "hide_links": "", @@ -101936,7 +102007,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "dublin", + "updated": "frankfurt", "validated_by": "", "validation_mode": "static" }, @@ -102187,7 +102258,7 @@ "validation_mode": "" }, "R-99794": { - "description": "An external network **MUST** have one subnet. An external network\n**MAY** have more than one subnet.", + "description": "An ONAP external network **MUST** have one subnet. An external network\n**MAY** have more than one subnet.", "docname": "Chapter5/Heat/ONAP Heat Networking", "full_title": "", "hide_links": "", @@ -102291,7 +102362,7 @@ "validation_mode": "static" } }, - "needs_amount": 821 + "needs_amount": 823 } } }
\ No newline at end of file diff --git a/ice_validator/tests/fixtures/test_nesting_level/fail/bad-level0.yaml b/ice_validator/tests/fixtures/test_nesting_level/fail/bad-level0.yaml deleted file mode 100644 index 3e93c1a..0000000 --- a/ice_validator/tests/fixtures/test_nesting_level/fail/bad-level0.yaml +++ /dev/null @@ -1,50 +0,0 @@ -# -*- coding: utf8 -*- -# ============LICENSE_START==================================================== -# org.onap.vvp/validation-scripts -# =================================================================== -# Copyright © 2017 AT&T Intellectual Property. All rights reserved. -# =================================================================== -# -# Unless otherwise specified, all software contained herein is licensed -# under the Apache License, Version 2.0 (the "License"); -# you may not use this software except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# -# -# Unless otherwise specified, all documentation contained herein is licensed -# under the Creative Commons License, Attribution 4.0 Intl. (the "License"); -# you may not use this documentation except in compliance with the License. -# You may obtain a copy of the License at -# -# https://creativecommons.org/licenses/by/4.0/ -# -# Unless required by applicable law or agreed to in writing, documentation -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ============LICENSE_END============================================ -# -# -# VERSION: '1.0.0' ---- -resources: - server_0: - type: bad-level1.yaml - properties: - name: { get_param: server_name_0 } - my_resource_group_1: - type: OS::Heat::ResourceGroup - properties: - count: 5 - resource_def: { type: bad-level2.yaml } diff --git a/ice_validator/tests/fixtures/test_nesting_level/fail/bad-level3.yaml b/ice_validator/tests/fixtures/test_nesting_level/fail/bad-level3.yaml deleted file mode 100644 index bdd6131..0000000 --- a/ice_validator/tests/fixtures/test_nesting_level/fail/bad-level3.yaml +++ /dev/null @@ -1,59 +0,0 @@ -# -*- coding: utf8 -*- -# ============LICENSE_START==================================================== -# org.onap.vvp/validation-scripts -# =================================================================== -# Copyright © 2017 AT&T Intellectual Property. All rights reserved. -# =================================================================== -# -# Unless otherwise specified, all software contained herein is licensed -# under the Apache License, Version 2.0 (the "License"); -# you may not use this software except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# -# -# Unless otherwise specified, all documentation contained herein is licensed -# under the Creative Commons License, Attribution 4.0 Intl. (the "License"); -# you may not use this documentation except in compliance with the License. -# You may obtain a copy of the License at -# -# https://creativecommons.org/licenses/by/4.0/ -# -# Unless required by applicable law or agreed to in writing, documentation -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ============LICENSE_END============================================ -# -# -# VERSION: '1.0.0' ---- -heat_template_version: '2013-05-23' - -resources: - volume: - type: OS::Cinder::Volume - properties: - size: 1 - - volume_attachment: - type: OS::Cinder::VolumeAttachment - properties: - volume_id: { get_resource: volume } - instance_uuid: { get_resource: instance } - - instance: - type: OS::Nova::Server - properties: - image: myimage - flavor: m1.small diff --git a/ice_validator/tests/fixtures/test_nesting_nova_server/pass/17528_0.yaml b/ice_validator/tests/fixtures/test_nesting_level/fail/level0.yaml index 95d0b77..669cce7 100644 --- a/ice_validator/tests/fixtures/test_nesting_nova_server/pass/17528_0.yaml +++ b/ice_validator/tests/fixtures/test_nesting_level/fail/level0.yaml @@ -40,10 +40,11 @@ --- resources: server_0: - type: 17528_1.yaml + type: level1.yaml properties: name: { get_param: server_name_0 } my_resource_group_1: type: OS::Heat::ResourceGroup properties: count: 5 + resource_def: { type: level2.yaml } diff --git a/ice_validator/tests/fixtures/test_nesting_level/fail/bad-level1.yaml b/ice_validator/tests/fixtures/test_nesting_level/fail/level1.yaml index e30d89e..821eb13 100644 --- a/ice_validator/tests/fixtures/test_nesting_level/fail/bad-level1.yaml +++ b/ice_validator/tests/fixtures/test_nesting_level/fail/level1.yaml @@ -36,7 +36,7 @@ # ============LICENSE_END============================================ # # -# VERSION: '1.0.0' +# VERSION: '1.0.1' --- nested_template_description: base @@ -48,14 +48,14 @@ parameters: resources: server_0: - type: bad-level2.yaml + type: level3.yaml properties: name: {get_param: server_name_0} my_resource_group_1: - type: OS::Nova::Server + type: OS::Heat::ResourceGroup properties: count: 5 - resource_def: { type: bad-level3.yaml } + resource_def: { type: level2.yaml } outputs: vm_type_volume_id_0: diff --git a/ice_validator/tests/fixtures/test_nesting_level/fail/bad-level2.yaml b/ice_validator/tests/fixtures/test_nesting_level/fail/level2.yaml index 7f56a12..c2f109d 100644 --- a/ice_validator/tests/fixtures/test_nesting_level/fail/bad-level2.yaml +++ b/ice_validator/tests/fixtures/test_nesting_level/fail/level2.yaml @@ -36,7 +36,7 @@ # ============LICENSE_END============================================ # # -# VERSION: '1.0.0' +# VERSION: '1.0.1' --- nested_template_description: base @@ -55,7 +55,7 @@ resources: type: OS::Heat::ResourceGroup properties: count: 5 - resource_def: { type: bad-level3.yaml } + resource_def: { type: level3.yaml } outputs: vm_type_volume_id_0: diff --git a/ice_validator/tests/fixtures/test_nesting_level/pass/level3.yaml b/ice_validator/tests/fixtures/test_nesting_level/fail/level3.yaml index bdd6131..bdd6131 100644 --- a/ice_validator/tests/fixtures/test_nesting_level/pass/level3.yaml +++ b/ice_validator/tests/fixtures/test_nesting_level/fail/level3.yaml diff --git a/ice_validator/tests/fixtures/test_nesting_level/pass/level1.yaml b/ice_validator/tests/fixtures/test_nesting_level/pass/level1.yaml index 1ca1659..0213649 100644 --- a/ice_validator/tests/fixtures/test_nesting_level/pass/level1.yaml +++ b/ice_validator/tests/fixtures/test_nesting_level/pass/level1.yaml @@ -47,12 +47,8 @@ parameters: type: number resources: - server_0: - type: level3.yaml - properties: - name: {get_param: server_name_0} my_resource_group_1: - type: OS::Nova::Server + type: OS::Heat::ResourceGroup properties: count: 5 resource_def: { type: level2.yaml } diff --git a/ice_validator/tests/fixtures/test_nesting_level/pass/level2.yaml b/ice_validator/tests/fixtures/test_nesting_level/pass/level2.yaml index c2f109d..fce358a 100644 --- a/ice_validator/tests/fixtures/test_nesting_level/pass/level2.yaml +++ b/ice_validator/tests/fixtures/test_nesting_level/pass/level2.yaml @@ -35,8 +35,6 @@ # # ============LICENSE_END============================================ # -# -# VERSION: '1.0.1' --- nested_template_description: base @@ -46,17 +44,6 @@ parameters: vm_type_volume_size_0: type: number -resources: - server_0: - type: not_a_template_file - properties: - name: {get_param: server_name_0} - my_resource_group_1: - type: OS::Heat::ResourceGroup - properties: - count: 5 - resource_def: { type: level3.yaml } - outputs: - vm_type_volume_id_0: - value: {get_resource: vm_type_volume_0} + vm_type_volume_name_0: + value: {get_param: vm_type_volume_name_0} diff --git a/ice_validator/tests/fixtures/test_nesting_nova_server/fail/bad-17528_0.yaml b/ice_validator/tests/fixtures/test_nesting_nova_server/fail/bad-17528_0.yaml deleted file mode 100644 index c5ab87c..0000000 --- a/ice_validator/tests/fixtures/test_nesting_nova_server/fail/bad-17528_0.yaml +++ /dev/null @@ -1,49 +0,0 @@ -# -*- coding: utf8 -*- -# ============LICENSE_START==================================================== -# org.onap.vvp/validation-scripts -# =================================================================== -# Copyright © 2017 AT&T Intellectual Property. All rights reserved. -# =================================================================== -# -# Unless otherwise specified, all software contained herein is licensed -# under the Apache License, Version 2.0 (the "License"); -# you may not use this software except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# -# -# Unless otherwise specified, all documentation contained herein is licensed -# under the Creative Commons License, Attribution 4.0 Intl. (the "License"); -# you may not use this documentation except in compliance with the License. -# You may obtain a copy of the License at -# -# https://creativecommons.org/licenses/by/4.0/ -# -# Unless required by applicable law or agreed to in writing, documentation -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ============LICENSE_END============================================ -# -# -# VERSION: '1.0.0' ---- -resources: - server_0: - type: bad-17528_1.yaml - properties: - name: { get_param: server_name_0 } - my_resource_group_1: - type: OS::Heat::ResourceGroup - properties: - count: 5 diff --git a/ice_validator/tests/fixtures/test_nesting_nova_server/fail/bad-17528_1.yaml b/ice_validator/tests/fixtures/test_nesting_nova_server/fail/bad-17528_1.yaml deleted file mode 100644 index c00e1e3..0000000 --- a/ice_validator/tests/fixtures/test_nesting_nova_server/fail/bad-17528_1.yaml +++ /dev/null @@ -1,64 +0,0 @@ -# -*- coding: utf8 -*- -# ============LICENSE_START==================================================== -# org.onap.vvp/validation-scripts -# =================================================================== -# Copyright © 2017 AT&T Intellectual Property. All rights reserved. -# =================================================================== -# -# Unless otherwise specified, all software contained herein is licensed -# under the Apache License, Version 2.0 (the "License"); -# you may not use this software except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# -# -# Unless otherwise specified, all documentation contained herein is licensed -# under the Creative Commons License, Attribution 4.0 Intl. (the "License"); -# you may not use this documentation except in compliance with the License. -# You may obtain a copy of the License at -# -# https://creativecommons.org/licenses/by/4.0/ -# -# Unless required by applicable law or agreed to in writing, documentation -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ============LICENSE_END============================================ -# -# -# VERSION: '1.0.1' ---- -nested_template_description: base - -parameters: - vm_type_volume_name_0: - type: string - vm_type_volume_size_0: - type: number - -resources: - server_0: - type: not_a_template_file - properties: - name: {get_param: server_name_0} - my_resource_group_1: - type: OS::Nova::Server - properties: - count: 5 - resource_def: { type: bad-17528_2.yaml } - my_resource_group_2: - type: OS::Nova::Server - -outputs: - vm_type_volume_id_0: - value: {get_resource: vm_type_volume_0} diff --git a/ice_validator/tests/fixtures/test_nesting_nova_server/fail/bad-17528_2.yaml b/ice_validator/tests/fixtures/test_nesting_nova_server/fail/bad-17528_2.yaml deleted file mode 100644 index 7dd2f64..0000000 --- a/ice_validator/tests/fixtures/test_nesting_nova_server/fail/bad-17528_2.yaml +++ /dev/null @@ -1,59 +0,0 @@ -# -*- coding: utf8 -*- -# ============LICENSE_START==================================================== -# org.onap.vvp/validation-scripts -# =================================================================== -# Copyright © 2017 AT&T Intellectual Property. All rights reserved. -# =================================================================== -# -# Unless otherwise specified, all software contained herein is licensed -# under the Apache License, Version 2.0 (the "License"); -# you may not use this software except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# -# -# Unless otherwise specified, all documentation contained herein is licensed -# under the Creative Commons License, Attribution 4.0 Intl. (the "License"); -# you may not use this documentation except in compliance with the License. -# You may obtain a copy of the License at -# -# https://creativecommons.org/licenses/by/4.0/ -# -# Unless required by applicable law or agreed to in writing, documentation -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ============LICENSE_END============================================ -# -# -# VERSION: '1.0.1' ---- -heat_template_version: '2013-05-23' - -resources: - volume: - type: OS::Cinder::Volume - properties: - size: 1 - - volume_attachment: - type: OS::Cinder::VolumeAttachment - properties: - volume_id: { get_resource: volume } - instance_uuid: { get_resource: instance } - - instance: - type: OS::Nova::NotServer - properties: - image: myimage - flavor: m1.small diff --git a/ice_validator/tests/fixtures/test_nesting_nova_server/pass/17528_1.yaml b/ice_validator/tests/fixtures/test_nesting_nova_server/pass/17528_1.yaml deleted file mode 100644 index 3e2546f..0000000 --- a/ice_validator/tests/fixtures/test_nesting_nova_server/pass/17528_1.yaml +++ /dev/null @@ -1,63 +0,0 @@ -# -*- coding: utf8 -*- -# ============LICENSE_START==================================================== -# org.onap.vvp/validation-scripts -# =================================================================== -# Copyright © 2017 AT&T Intellectual Property. All rights reserved. -# =================================================================== -# -# Unless otherwise specified, all software contained herein is licensed -# under the Apache License, Version 2.0 (the "License"); -# you may not use this software except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# -# -# Unless otherwise specified, all documentation contained herein is licensed -# under the Creative Commons License, Attribution 4.0 Intl. (the "License"); -# you may not use this documentation except in compliance with the License. -# You may obtain a copy of the License at -# -# https://creativecommons.org/licenses/by/4.0/ -# -# Unless required by applicable law or agreed to in writing, documentation -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ============LICENSE_END============================================ -# -# -# VERSION: '1.0.0' ---- -nested_template_description: base - -parameters: - vm_type_volume_name_0: - type: string - vm_type_volume_size_0: - type: number - -resources: - server_0: - type: not_a_template_file - properties: - name: {get_param: server_name_0} - my_resource_group_1: - type: OS::Nova::Server - properties: - count: 5 - #resource_def: { type: 17528_3.yaml } - resource_def: { type: 17528_2.yaml } - -outputs: - vm_type_volume_id_0: - value: {get_resource: vm_type_volume_0} diff --git a/ice_validator/tests/fixtures/test_nesting_nova_server/pass/17528_2.yaml b/ice_validator/tests/fixtures/test_nesting_nova_server/pass/17528_2.yaml deleted file mode 100644 index 1d17164..0000000 --- a/ice_validator/tests/fixtures/test_nesting_nova_server/pass/17528_2.yaml +++ /dev/null @@ -1,59 +0,0 @@ -# -*- coding: utf8 -*- -# ============LICENSE_START==================================================== -# org.onap.vvp/validation-scripts -# =================================================================== -# Copyright © 2017 AT&T Intellectual Property. All rights reserved. -# =================================================================== -# -# Unless otherwise specified, all software contained herein is licensed -# under the Apache License, Version 2.0 (the "License"); -# you may not use this software except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# -# -# Unless otherwise specified, all documentation contained herein is licensed -# under the Creative Commons License, Attribution 4.0 Intl. (the "License"); -# you may not use this documentation except in compliance with the License. -# You may obtain a copy of the License at -# -# https://creativecommons.org/licenses/by/4.0/ -# -# Unless required by applicable law or agreed to in writing, documentation -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ============LICENSE_END============================================ -# -# -# VERSION: '1.0.0' ---- -heat_template_version: '2013-05-23' - -resources: - volume: - type: OS::Cinder::Volume - properties: - size: 1 - - volume_attachment: - type: OS::Cinder::VolumeAttachment - properties: - volume_id: { get_resource: volume } - instance_uuid: { get_resource: instance } - - instance: - type: OS::Nova::NotServer - properties: - image: myimage - flavor: m1.small diff --git a/ice_validator/tests/fixtures/test_nesting_nova_server/pass/17528_3.yaml b/ice_validator/tests/fixtures/test_nesting_nova_server/pass/17528_3.yaml deleted file mode 100644 index a38fd9c..0000000 --- a/ice_validator/tests/fixtures/test_nesting_nova_server/pass/17528_3.yaml +++ /dev/null @@ -1,62 +0,0 @@ -# -*- coding: utf8 -*- -# ============LICENSE_START==================================================== -# org.onap.vvp/validation-scripts -# =================================================================== -# Copyright © 2017 AT&T Intellectual Property. All rights reserved. -# =================================================================== -# -# Unless otherwise specified, all software contained herein is licensed -# under the Apache License, Version 2.0 (the "License"); -# you may not use this software except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# -# -# Unless otherwise specified, all documentation contained herein is licensed -# under the Creative Commons License, Attribution 4.0 Intl. (the "License"); -# you may not use this documentation except in compliance with the License. -# You may obtain a copy of the License at -# -# https://creativecommons.org/licenses/by/4.0/ -# -# Unless required by applicable law or agreed to in writing, documentation -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ============LICENSE_END============================================ -# -# -# VERSION: '1.0.0' ---- -nested_template_description: base - -parameters: - vm_type_volume_name_0: - type: string - vm_type_volume_size_0: - type: number - -resources: - server_0: - type: not_a_template_file - properties: - name: {get_param: server_name_0} - my_resource_group_1: - type: OS::Nova::Server - properties: - count: 5 - resource_def: { type: 17528_2.yaml } - -outputs: - vm_type_volume_id_0: - value: {get_resource: vm_type_volume_0} diff --git a/ice_validator/tests/structures.py b/ice_validator/tests/structures.py index 09dd222..aaed8d1 100644 --- a/ice_validator/tests/structures.py +++ b/ice_validator/tests/structures.py @@ -36,8 +36,6 @@ # ============LICENSE_END============================================ # # -"""structures -""" import collections import inspect import os @@ -732,6 +730,31 @@ class Heat(object): re.search("(^(%(x)s)_)|(_(%(x)s)_)|(_(%(x)s)$)" % dict(x=part), name) ) + def iter_nested_heat(self): + """ + Returns an iterable of tuples (int, heat) where the first parameter is the + depth of the nested file and the second item is an instance of Heat + """ + + def walk_nested(heat, level=1): + resources = [Resource(r_id, data) for r_id, data in heat.resources.items()] + for resource in resources: + if resource.is_nested(): + nested_path = os.path.join( + self.dirname, resource.get_nested_filename() + ) + nested_heat = Heat(nested_path) + yield level, nested_heat + yield from walk_nested(nested_heat, level + 1) + + yield from walk_nested(self) + + def __str__(self): + return "Heat({})".format(self.filepath) + + def __repr__(self): + return str(self) + class Env(Heat): """An Environment file @@ -832,6 +855,12 @@ class Resource(object): else: return {} + def __str__(self): + return "Resource(id={}, type={})".format(self.resource_id, self.resource_type) + + def __repr__(self): + return str(self) + def get_all_resources(yaml_files): """Return a dict, resource id: resource diff --git a/ice_validator/tests/test_environment_file_parameters.py b/ice_validator/tests/test_environment_file_parameters.py index 41a2aa1..84c5c34 100644 --- a/ice_validator/tests/test_environment_file_parameters.py +++ b/ice_validator/tests/test_environment_file_parameters.py @@ -234,8 +234,11 @@ def get_preload_excluded_parameters(yaml_file, persistent_only=False, env_spec=N for spec in specs: if persistent_only and not spec.get("persistent"): continue - results.extend(get_template_parameters(yaml_file, resource_type, - spec, all_resources, nested_resources=True)) + results.extend( + get_template_parameters( + yaml_file, resource_type, spec, all_resources, nested_resources=True + ) + ) results = {item["param"] for item in results} for param in Heat(yaml_file).parameters: # AZs often are manipulated and passed into nested templates making @@ -246,14 +249,18 @@ def get_preload_excluded_parameters(yaml_file, persistent_only=False, env_spec=N return results -def get_template_parameters(yaml_file, resource_type, spec, all_resources=False, nested_resources=False): +def get_template_parameters( + yaml_file, resource_type, spec, all_resources=False, nested_resources=False +): parameters = [] heat = Heat(yaml_file) if all_resources: resources = heat.resources if not nested_resources else heat.get_all_resources() else: - resources = heat.get_resource_by_type(resource_type, all_resources=nested_resources) + resources = heat.get_resource_by_type( + resource_type, all_resources=nested_resources + ) for rid, resource_props in resources.items(): for param in prop_iterator(resource_props, *spec.get("property")): if param and get_param(param) and param_helper(spec, get_param(param), rid): diff --git a/ice_validator/tests/test_nesting_level.py b/ice_validator/tests/test_nesting_level.py index 6c31dbb..bb8c704 100644 --- a/ice_validator/tests/test_nesting_level.py +++ b/ice_validator/tests/test_nesting_level.py @@ -34,30 +34,33 @@ # limitations under the License. # # ============LICENSE_END============================================ -# -# - -""" -test nesting level -0 -> 1 -> 2 -> too many levels. -""" +from .structures import Heat from .utils import nested_files from .helpers import validates -VERSION = "1.1.0" - -# pylint: disable=invalid-name - -@validates("R-60011") +@validates("R-60011", "R-17528") def test_nesting_level(yaml_files): - """ - A VNF's Heat Orchestration Template **MUST** have no more than two - levels of nesting. - """ - bad, __, __, __ = nested_files.get_nesting(yaml_files) - assert not bad, "nesting depth of %d exceeded: %s" % ( - nested_files.MAX_DEPTH, - ", ".join(bad), - ) + errors = set() + non_nested_files = [ + f for f in yaml_files if not nested_files.file_is_a_nested_template(f) + ] + heats = [Heat(f) for f in non_nested_files] + for heat in heats: + for depth, nested_heat in heat.iter_nested_heat(): + if depth >= 3: + errors.add( + ( + "{} is nested {} levels deep, but a maximum of {} levels are " + "supported." + ).format(nested_heat.basename, depth, nested_files.MAX_DEPTH) + ) + if depth == 2 and nested_heat.resources: + errors.add( + ( + "{} is a second level nested file, but it includes " + "resources. Remove all Heat resources from this file." + ).format(nested_heat.basename) + ) + assert not errors, "\n\n".join(errors) diff --git a/ice_validator/tests/test_nesting_nova_server.py b/ice_validator/tests/test_nesting_nova_server.py deleted file mode 100644 index cce4c98..0000000 --- a/ice_validator/tests/test_nesting_nova_server.py +++ /dev/null @@ -1,98 +0,0 @@ -# -*- coding: utf8 -*- -# ============LICENSE_START==================================================== -# org.onap.vvp/validation-scripts -# =================================================================== -# Copyright © 2017 AT&T Intellectual Property. All rights reserved. -# =================================================================== -# -# Unless otherwise specified, all software contained herein is licensed -# under the Apache License, Version 2.0 (the "License"); -# you may not use this software except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# -# -# Unless otherwise specified, all documentation contained herein is licensed -# under the Creative Commons License, Attribution 4.0 Intl. (the "License"); -# you may not use this documentation except in compliance with the License. -# You may obtain a copy of the License at -# -# https://creativecommons.org/licenses/by/4.0/ -# -# Unless required by applicable law or agreed to in writing, documentation -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ============LICENSE_END============================================ -# -# - -""" -test nesting level -0 -> 1 -> 2 -> too many levels. -""" - -import pytest - -from .utils import nested_files -from .helpers import validates - -VERSION = "1.0.0" - - -def get_nova_server_count(heat): - """return the number of OS::Nova::Server - resources in heat - """ - return len(heat.get_resource_by_type("OS::Nova::Server")) - - -# pylint: disable=invalid-name - - -@validates("R-17528") -def test_nesting_nova_server(yaml_files): - """ - A VNF's Heat Orchestration Template's first level Nested YAML file - **MUST NOT** contain more than one ``OS::Nova::Server`` resource. - A VNF's Heat Orchestration Template's second level Nested YAML file - **MUST NOT** contain an ``OS::Nova::Server`` resource. - - level: 0 1 2 3 - template -> nested -> nested -> too many levels - """ - bad, __, heat, depths = nested_files.get_nesting(yaml_files) - if bad: - pytest.skip("nesting depth exceeded") - for parent, depth in depths.items(): - for depth_tuple in depth: - depth, context = depth_tuple - if depth > 1: - fname = context[0] - nservers = get_nova_server_count(heat[fname]) - if nservers > 1: - bad.append( - "nested template %s must have only have 1 " - "OS::Nova::Server defined, but %s were found" - % (fname, nservers) - ) - if depth > 2: - fname = context[1] - nservers = get_nova_server_count(heat[fname]) - if nservers > 0: - bad.append( - "nested template %s must not have an " - "OS::Nova::Server defined, but %s were found" - % (fname, nservers) - ) - assert not bad, "; ".join(bad) diff --git a/ice_validator/tests/utils/nested_files.py b/ice_validator/tests/utils/nested_files.py index e5f5941..e1918ad 100644 --- a/ice_validator/tests/utils/nested_files.py +++ b/ice_validator/tests/utils/nested_files.py @@ -34,26 +34,15 @@ # limitations under the License. # # ============LICENSE_END============================================ -# -# -"""nested files -""" from functools import lru_cache from os import path, listdir import re from tests import cached_yaml as yaml -from tests.structures import Heat from tests.helpers import load_yaml -VERSION = "1.4.0" - -""" -test nesting depth -0 -> 1 -> 2 -> too deep. -""" -MAX_DEPTH = 3 +MAX_DEPTH = 2 def check_for_invalid_nesting( # pylint: disable=too-many-branches @@ -70,7 +59,7 @@ def check_for_invalid_nesting( # pylint: disable=too-many-branches for v in yml.values(): if isinstance(v, dict) and "type" in v: t = v["type"] - if t.endswith(".yml") or t.endswith(".yaml"): + if t.lower().endswith(".yml") or t.lower().endswith(".yaml"): filepath = path.join(dirpath, t) elif t == "OS::Heat::ResourceGroup": rd = v["properties"]["resource_def"] @@ -98,18 +87,6 @@ def check_for_invalid_nesting( # pylint: disable=too-many-branches return invalid_nesting -def get_dict_of_nested_files(yml, dirpath): - """Return dict. - key: resource id in yml which references a nested file. - value: the nested file name. - Nested files are either referenced through "type", or - for OS::Heat::ResourceGroup, through "resource_def type". - """ - nested_files = get_type_nested_files(yml, dirpath) - nested_files.update(get_resourcegroup_nested_files(yml, dirpath)) - return nested_files - - @lru_cache(maxsize=None) def get_list_of_nested_files(yml_path, dirpath): """ @@ -138,62 +115,6 @@ def get_list_of_nested_files(yml_path, dirpath): return nested_files -def get_nesting(yaml_files): - """return bad, files, heat, depths - bad - list of error messages. - files - dict: key is filename, value is dict of nested files. - This is the tree. - heat - dict,: key is filename, value is Heat instance. - depths - dict: key is filename, value is a depth tuple - - level: 0 1 2 3 - file: template -> nested -> nested -> nested - depth: 3 2 1 0 - """ - bad = [] - files = {} - heat = {} - depths = {} - for yaml_file in yaml_files: - dirname, basename = path.split(yaml_file) - h = Heat(filepath=yaml_file) - heat[basename] = h - files[basename] = get_dict_of_nested_files(h.yml, dirname) - for filename in files: - depths[filename] = _get_nesting_depth_start(0, filename, files, []) - for depth in depths[filename]: - if depth[0] > MAX_DEPTH: - bad.append("{} {}".format(filename, str(depth[1]))) - return bad, files, heat, depths - - -def _get_nesting_depth_start(depth, filename, files, context): - depths = [] - for rid, nf in files[filename].items(): - depths.append(_get_nesting_depth(1, nf, files, context)) - return depths - - -def _get_nesting_depth(depth, filename, files, context): - """Return a depth tuple (max_depth, current_context). - `context` is the list of filenames. - `depth` is the length of `context`. - Finds the max_depth of all the resources of `filename`. - current_context is the updated list of filenames - and max_depth is its length. - """ - max_depth = depth + 1 - current_context = context + [filename] - if depth <= MAX_DEPTH: - nested_filenames = files.get(filename, {}) - if nested_filenames: - max_depth, current_context = max( - _get_nesting_depth(depth + 1, nested_filename, files, current_context) - for nested_filename in nested_filenames.values() - ) - return max_depth, current_context - - def get_resourcegroup_nested_files(yml, dirpath): """ return a dict. |