2. Appendix

2.1. List of Requirements with associated Tests

Currently, there VNFs can be packaged as HEAT templates or in a CSAR file using TOSCA. At this stage, there are two different tools used for validating the packages based on the package type:

  • CSAR/TOSCA packages leverage VNFSDK
  • HEAT packages leverage VVP

2.1.1. HEAT Package Validations

This table shows all the requirements within the VNF Requirements project and if they are validated by VVP. If they are validated by VVP, then the test module and test method is provided. This is generated dynamically within the VVP project, where it pulls down the latest JSON from Req List and maps the requirements to the tests in VVP to output this table.

You can download the table here.

Note: Tests on the bottom do not map to any requirements.

Note: VVP only validates Heat for Requirements in Chapter 5.

Test Traceability
Requirement ID Requirement Test Module Test Name
R-100180

The VNF’s Heat Orchestration Template’s Resource OS::ContrailV2::InstanceIp property instance_ip_address parameter associated with an internal network, i.e.,

  • {vm-type}_int_{network-role}_ip_{index}
  • {vm-type}_int_{network-role}_v6_ip_{index}
  • {vm-type}_int_{network-role}_ips
  • {vm-type}_int_{network-role}_v6_ips

MUST be enumerated in the Heat Orchestration Template’s Environment File and IP addresses MUST be assigned.

test_environment_file_parameters test_contrail_internal_instance_ip_does_exist_in_environment_file
R-04697

When the VNF’s Heat Orchestration Template’s Resource OS::Neutron::Port is attaching to an external network (per the ONAP definition, see Requirement R-57424), and an IPv4 address is assigned using the property fixed_ips map property ip_address and the parameter type is defined as a comma_delimited_list, the parameter name MUST follow the naming convention

  • {vm-type}_{network-role}_ips

where

  • {vm-type} is the {vm-type} associated with the OS::Nova::Server
  • {network-role} is the {network-role} of the external network
test_fixed_ips_include_vm_type_network_role test_external_fip_format
R-16968 A VNF’s Heat Orchestration Templates MUST NOT include heat resources to create external networks. test_network_format test_network_resource_id_format
R-100220

When the VNF’s Heat Orchestration Template’s resource OS::ContrailV2::InstanceIp is assigning an IP address to an external network (per the ONAP definition, see Requirement R-57424), and an IPv6 address is being cloud assigned by OpenStack’s DHCP Service and the external network IPv6 subnet is to be specified using the property subnet_uuid, the parameter MUST follow the naming convention

  • {network-role}_v6_subnet_id

where

  • {network-role} is the network role of the network.
test_contrail_instance_ip_parameters test_contrail_external_instance_subnet_id_parameter
R-62802

When the VNF’s Heat Orchestration Template’s resource OS::Neutron::Port is attaching to an external network (per the ONAP definition, see Requirement R-57424), and an IPv4 address is being cloud assigned by OpenStack’s DHCP Service and the external network IPv4 subnet is to be specified using the property fixed_ips map property subnet, the parameter MUST follow the naming convention

  • {network-role}_subnet_id

where

  • {network-role} is the network role of the network.
test_neutron_port_fixed_ips_subnet test_external_subnet_format
R-86182

When the VNF’s Heat Orchestration Template’s Resource OS::Neutron::Port is in an incremental module and is attaching to an internal network (per the ONAP definition, see Requirements R-52425 and R-46461), the network parameter name MUST

  • follow the naming convention int_{network-role}_net_id if the network UUID value is used to reference the network
  • follow the naming convention int_{network-role}_net_name if the network name in is used to reference the network.

where {network-role} is the network-role of the internal network and a get_param MUST be used as the intrinsic function.

test_neutron_port_network_attachment test_internal_network_parameters
R-25877 A VNF’s Heat Orchestration Template’s parameter name (i.e., <param name>) MUST contain only alphanumeric characters and underscores (‘_’). test_heat_parameter_section test_parameter_names
R-97201 The VNF’s Heat Orchestration Template’s Resource OS::Neutron::Port property fixed_ips map property ip_address parameter {vm-type}_int_{network-role}_v6_ip_{index} MUST be enumerated in the VNF’s Heat Orchestration Template’s Environment File. test_environment_file_parameters test_neutron_port_internal_fixedips_ipaddress_parameter_exists_in_environment_file
R-99812 A value for VNF’s Heat Orchestration Template’s property name for a non OS::Nova::Server resource MUST NOT be declared in the VNF’s Heat Orchestration Template’s Environment File. test_environment_file_parameters test_non_nova_server_name_parameter_doesnt_exist_in_environment_file
R-30753 A VNF’s Heat Orchestration Template’s Resource OS::ContrailV2::NetworkIpam Resource ID MUST contain the {network-role}. test_contrail_resource_id test_contrail_networkipam_resource_id
R-708564

If a VNF’s Heat Orchestration Template’s resource invokes a nested YAML file, either statically or dynamically (via OS::Heat::ResourceGroup), the names of the parameters associated with the following resource properties MUST NOT change.

  • OS::Nova::Server property flavor
  • OS::Nova::Server property image
  • OS::Nova::Server property name
  • OS::Nova::Server property metadata key value vnf_id
  • OS::Nova::Server property metadata key value vf_module_id
  • OS::Nova::Server property metadata key value vnf_name
  • OS::Nova::Server property metadata key value vf_module_name
  • OS::Nova::Server property metadata key value vm_role
  • OS::Nova::Server property metadata key value vf_module_index
  • OS::Nova::Server property metadata key value workload_context
  • OS::Nova::Server property metadata key value environment_context
  • OS::Neutron::Port property fixed_ips, map property ip_address
  • OS::Neutron::Port property fixed_ips, map property subnet
  • OS::Neutron::Port property allowed_address_pairs, map property ip_address
  • OS::Neutron::Port property network
  • OS::ContrailV2::VirtualMachineInterface property virtual_network_refs
  • OS::ContrailV2::VirtualMachineInterface property virtual_machine_interface_allowed_address_pairs, map property virtual_machine_interface_allowed_address_pairs_allowed_address_pair, virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip , virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix
  • OS::ContrailV2::InstanceIP property instance_ip_address
  • OS::ContrailV2::InstanceIP property subnet_uuid
test_nested_parameters test_iip_instance_ip_parameter_name_doesnt_change_in_nested_template
R-83412 If a VNF’s Heat Orchestration Template’s resource OS::Neutron::Port is attaching to an external network (per the ONAP definition, see Requirement R-57424), the property allowed_address_pairs map property ip_address parameter(s) MUST NOT be enumerated in the VNF’s Heat Orchestration Template’s Environment File. test_environment_file_parameters test_neutron_port_external_aap_ip_parameter_doesnt_exist_in_environment_file
R-23503

When the VNF’s Heat Orchestration Template’s Resource OS::Neutron::Port is attaching to an external network (per the ONAP definition, see Requirement R-57424), and an IPv6 address is assigned using the property fixed_ips map property ip_address and the parameter type is defined as a comma_delimited_list, the parameter name MUST follow the naming convention

  • {vm-type}_{network-role}_v6_ips

where

  • {vm-type} is the {vm-type} associated with the OS::Nova::Server
  • {network-role} is the {network-role} of the external network
test_fixed_ips_include_vm_type_network_role test_external_fip_format
R-69431 The VNF’s Heat Orchestration Template’s Resource OS::Nova::Server property flavor parameter MUST be enumerated in the Heat Orchestration Template’s Environment File and a value MUST be assigned. test_environment_file_parameters test_nova_server_flavor_parameter_exists_in_environment_file
R-100020 The VNF’s Heat Orchestration Template’s Resource OS::ContrailV2::InstanceIp property instance_ip_address parameter {vm-type}_{network-role}_ip_{index} MUST NOT be enumerated in the VNF’s Heat Orchestration Template’s Environment File. test_environment_file_parameters test_contrail_external_instance_ip_does_not_exist_in_environment_file
R-92193 A VNF’s Heat Orchestration Template’s parameter {network-role}_net_fqdn MUST NOT be enumerated in the VNF’s Heat Orchestration Template’s Environment File. test_environment_file_parameters test_network_fqdn_parameter_doesnt_exist_in_environment_file
R-68023 A VNF’s Heat Orchestration Template’s OS::Nova::Server resource property metadata key/value pair vf_module_name value MUST be obtained via a get_param. test_servers_metadata_use_get_param test_servers_vf_module_name_metadata_use_get_param
R-511776 When a VNF’s Heat Orchestration Template is ready to be on-boarded to ONAP, all files composing the VNF Heat Orchestration Template MUST be placed in a flat (i.e., non-hierarchical) directory and archived using ZIP. The resulting ZIP file is uploaded into ONAP. test_files_in_flat_dir test_files_in_flat_dir
R-93496

The VNF’s Heat Orchestration Template’s Resource OS::Neutron::Port property fixed_ips map property ip_address parameter associated with an internal network, i.e.,

  • {vm-type}_int_{network-role}_ip_{index}
  • {vm-type}_int_{network-role}_v6_ip_{index}
  • {vm-type}_int_{network-role}_ips
  • {vm-type}_int_{network-role}_v6_ips

MUST be enumerated in the Heat Orchestration Template’s Environment File and IP addresses MUST be assigned.

test_environment_file_parameters test_neutron_port_internal_fixedips_ipaddress_parameter_exists_in_environment_file
R-100280

If a VNF’s Heat Orchestration Template’s resource OS::ContrailV2::VirtualMachineInterface is attaching to an external network (per the ONAP definition, see Requirement R-57424), the map property

virtual_machine_interface_allowed_address_pairs,

virtual_machine_interface_allowed_address_pairs_allowed_address_pair,

virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip,

virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix

parameter MUST NOT be enumerated in the VNF’s Heat Orchestration Template’s Environment File.

test_allowed_address_pairs_include_vm_type_network_role test_external_aap_format_contrail
R-16447 A VNF’s <resource ID> MUST be unique across all Heat Orchestration Templates and all HEAT Orchestration Template Nested YAML files that are used to create the VNF. test_unique_resources_across_all_templates test_unique_resources_across_all_yaml_files
R-39402 A VNF’s Heat Orchestration Template MUST contain the section description:. test_heat_template_structure test_heat_template_structure_contains_description
R-10834

A VNF’s Heat Orchestration Template resource attribute property: MUST NOT use more than two levels of nested get_param intrinsic functions when deriving a property value. SDC does not support nested get_param with recursive lists (i.e., a list inside list). The second get_param in a nested lookup must directly derive its value without further calls to get_param functions.

  • Example of valid nesting:
    • name: {get_param: [ {vm-type}_names, {get_param : index } ] }
  • Examples of invalid nesting. SDC will not support these examples since there is an array inside array.
    • name: {get_param: [ {vm-type}_names, { get_param: [ indexlist, 0 ] } ] }
    • name: {get_param: [ {vm-type}_names, { get_param: [ indexlist1, { get_param: indexlist2 } ] } ] }
test_nested_parameter_args test_nested_parameter_args
R-805572

When the VNF’s Heat Orchestration Template’s Resource OS::Neutron::Port is attaching to an internal network (per the ONAP definition, see Requirements R-52425 and R-46461), and an IPv6 Virtual IP (VIP) address is assigned using the property allowed_address_pairs map property ip_address, the parameter name MUST follow the naming convention

  • {vm-type}_int_{network-role}_floating_v6_ip

where

  • {vm-type} is the {vm-type} associated with the OS::Nova::Server
  • {network-role} is the {network-role} of the external network

And the parameter MUST be declared as type: string and MUST be enumerated in the environment file

OR

the parameter name MUST follow the naming convention

  • {vm-type}_int_{network-role}_floating_v6_ips

where

  • {vm-type} is the {vm-type} associated with the OS::Nova::Server
  • {network-role} is the {network-role} of the external network

And the parameter MUST be declared as type: comma_delimited_list and MUST be enumerated in the environment file.

test_allowed_address_pairs_include_vm_type_network_role test_internal_aap_format
R-94509 A VNF Heat Orchestration Template’s Incremental Module’s Environment File MUST be named identical to the VNF Heat Orchestration Template’s Incremental Module with .y[a]ml replaced with .env. test_heat_pairs_provided test_heat_pairs_provided
R-56183 A VNF’s Heat Orchestration Template’s OS::Nova::Server resource property metadata``key/value pair ``environment_context parameter environment_context MUST NOT have parameter constraints defined. test_required_parameters_no_constraints test_environment_context_parameter_has_no_constraints
R-34055 A VNF’s Heat Orchestration Template’s OS::Nova::Server resource property metadata key/value pair workload_context parameter workload_context MUST NOT have parameter constraints defined. test_required_parameters_no_constraints test_workload_context_parameter_has_no_constraints
R-46128

A VNF’s Heat Orchestration Template’s Resource OS::ContrailV2::InstanceIp Resource ID that is configuring an IPv6 Address on a virtual machine interface (i.e., OS::ContrailV2::VirtualMachineInterface) attached to an external network MUST use the naming convention

  • {vm-type}_{vm-type_index}_{network-role}_vmi_{vmi_index}_v6_IP_{index}

where

  • {vm-type} is the vm-type
  • {vm-type_index} references the instance of the {vm-type} in the VNF. The {vm-type_index} is a numeric value that MUST start at zero in the VNF and MUST increment by one each time a new instance of a {vm-type} is referenced.
  • {network-role} is the network-role of the network that the port is attached to
  • {vmi_index} references the instance of the virtual machine interface on the {vm-type} attached to {network-role} network. The {vmi_index} is a numeric value that MUST start at zero on an instance of a {vm-type} and MUST increment by one each time a new virtual machine interface is defined on the instance of the {vm-type} attached to {network-role} network.
  • v6_IP signifies that an IPv6 address is being configured
  • {index} references the instance of the IPv6 address configured on the virtual machine interface. The {index} is a numeric value that MUST start at zero on an instance of a virtual machine interface and MUST increment by one each time a new IPv6 address is configured on the virtual machine interface.
test_contrail_instance_ip_resource_id test_contrail_instance_ip_resource_id_external
R-26506

A VNF’s Heat Orchestration Template’s {network-role} MUST contain only alphanumeric characters and/or underscores ‘_’ and

  • MUST NOT contain any of the following strings: _int or int_ or _int_
  • MUST NOT end in the string: _v6
  • MUST NOT contain the strings _#_, where # is a number
  • MUST NOT end in the string: _#, where # is a number
test_port_resource_ids test_port_resource_ids
R-98374 A VNF’s Heat Orchestration Template’s OS::Nova::Server resource property metadata key/value pair vf_module_id parameter vf_module_id MUST NOT have parameter constraints defined. test_required_parameters_no_constraints test_vf_module_id_parameter_has_no_constraints
R-270358

A VNF’s Heat Orchestration Template’s Cinder Volume Template MUST contain either

  • An OS::Cinder::Volume resource
  • An OS::Heat::ResourceGroup resource that references a Nested YAML file that contains an OS::Cinder::Volume resource
  • A resource that defines the property type as a Nested YAML file (i.e., static nesting) and the Nested YAML contains an OS::Cinder::Volume resource
test_volume_templates test_volume_templates_contains_cinder_or_resource_group
R-58670 The VNF’s Heat Orchestration Template’s Resource OS::Nova::Server property image parameter name MUST follow the naming convention {vm-type}_image_name. test_nova_servers_vm_types test_nova_server_image_parameter
R-76014 A VNF’s Heat Orchestration Template’s Resource OS::ContrailV2::ServiceHealthCheck Resource ID MUST contain the {vm-type}. test_contrail_resource_id test_contrail_servicehealthcheck_resource_id
R-54340 A VNF’s Heat Orchestration Template’s OS::Nova::Server resource property metadata key/value pair vf_module_index parameter MUST be declared as vf_module_index and the parameter MUST be defined as type: number. test_server_parameters test_vf_module_index_parameter_type_and_parameter_name
R-76160

When

  • the VNF’s Heat Orchestration Template’s resource OS::Neutron::Port in an Incremental Module is attaching to an internal network (per the ONAP definition, see Requirements R-52425 and R-46461) that is created in the Base Module, AND
  • an IPv6 address is being cloud assigned by OpenStack’s DHCP Service AND
  • the internal network IPv6 subnet is to be specified using the property fixed_ips map property subnet,

the parameter MUST follow the naming convention int_{network-role}_v6_subnet_id, where {network-role} is the network role of the internal network.

Note that the parameter MUST be defined as an output parameter in the base module.

test_neutron_port_fixed_ips_subnet test_internal_subnet_format
R-71699 A VNF’s Heat Orchestration Template’s Resource MUST NOT reference a HTTP-based Nested YAML file. test_no_http_resources test_no_http_resources
R-90206 The VNF’s Heat Orchestration Template’s Resource OS::Neutron::Port property fixed_ips map property ip_address parameter {vm-type}_int_{network-role}_int_ips MUST be enumerated in the VNF’s Heat Orchestration Template’s Environment File. test_environment_file_parameters test_neutron_port_internal_fixedips_ipaddress_parameter_exists_in_environment_file
R-100250 The VNF’s Heat Orchestration Template’s Resource OS::ContrailV2::InstanceIp property subnet_uuid parameter int_{network-role}_subnet_id MUST NOT be enumerated in the VNF’s Heat Orchestration Template’s Environment File. test_environment_file_parameters test_contrail_subnet_uuid_does_not_exist_in_environment_file
R-100230 The VNF’s Heat Orchestration Template’s Resource OS::ContrailV2::InstanceIp property subnet_uuid parameter {network-role}_v6_subnet_id MUST NOT be enumerated in the VNF’s Heat Orchestration Template’s Environment File. test_environment_file_parameters test_contrail_subnet_uuid_does_not_exist_in_environment_file
R-16437 A VNF’s Heat Orchestration Template’s Resource OS::ContrailV2::ServiceTemplate Resource ID MUST contain the {vm-type}. test_contrail_resource_id test_contrail_servicetemplate_resource_id
R-40499 Each VNF’s Heat Orchestration Template’s {vm-type} MUST have a unique parameter name for the OS::Nova::Server property flavor even if more than one {vm-type} shares the same flavor. test_nova_servers_vm_types test_nova_server_flavor_parameter
R-19756 If a VNF’s Heat Orchestration Template OS::ContrailV2::InterfaceRouteTable resource interface_route_table_routes property interface_route_table_routes_route map property parameter {vm-type}_{network-role}_route_prefixes MUST be defined as type json. test_contrail_irt_routes test_contrail_irt_route_param_type
R-15480 A VNF’s Heat Orchestration Template’s OS::Nova::Server resource property metadata key/value pair vf_module_name parameter vf_module_name MUST NOT have parameter constraints defined. test_required_parameters_no_constraints test_vf_module_name_parameter_has_no_constraints
R-22688

When a VNF’s Heat Orchestration Template creates an internal network (per the ONAP definition, see Requirements R-52425 and R-46461 and R-35666) and the internal network needs to be shared between modules within a VNF, the internal network MUST be created either in the

  • the base module
  • a nested YAML file invoked by the base module

and the base module MUST contain an output parameter that provides either the network UUID or network name.

  • If the network UUID value is used to reference the network, the output parameter name in the base module MUST follow the naming convention int_{network-role}_net_id
  • If the network name in is used to reference the network, the output parameter name in the base template MUST follow the naming convention int_{network-role}_net_name

{network-role} MUST be the network-role of the internal network created in the Base Module.

The Base Module Output Parameter MUST be declared in the parameters: section of the Incremental Module(s) where the OS::Neutron::Port resource(s) is attaching to the internal network.

test_neutron_port_network_attachment test_internal_network_parameters
R-87247 VNF Heat Orchestration Template’s Incremental Module file name MUST contain only alphanumeric characters and underscores ‘_’ and MUST NOT contain the case insensitive string base. test_base_template_names test_base_template_names
R-83677 The VNF’s Heat Orchestration Template’s Resource OS::Neutron::Port property fixed_ips map property subnet parameter {network-role}_subnet_id MUST NOT be enumerated in the VNF’s Heat Orchestration Template’s Environment File. test_environment_file_parameters test_neutron_port_fixedips_subnet_parameter_doesnt_exist_in_environment_file
R-69634 The VNF’s Heat Orchestration Template’s Resource OS::Neutron::Port property fixed_ips map property subnet parameter int_{network-role}_subnet_id MUST NOT be enumerated in the VNF’s Heat Orchestration Template’s Environment File. test_environment_file_parameters test_neutron_port_fixedips_subnet_parameter_doesnt_exist_in_environment_file
R-07507 A VNF’s Heat Orchestration Template’s OS::Nova::Server resource property metadata key/value pair vnf_id parameter MUST be declared as vnf_id and the parameter MUST be defined as type: string. test_server_parameters test_vnf_id_parameter_type_and_parameter_name
R-100350

When the VNF’s Heat Orchestration Template’s resource OS::ContrailV2::VirtualMachineInterface is attaching to an external network (per the ONAP definition, see Requirement R-57424), and the IPv4 VIP address and/or IPv6 VIP address is not supported by the ONAP data model, the map property

virtual_machine_interface_allowed_address_pairs,

virtual_machine_interface_allowed_address_pairs_allowed_address_pair,

virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip,

virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix

  • Parameter name MAY use any naming convention. That is, there is no ONAP mandatory parameter naming convention.
  • Parameter MAY be declared as type string or type

comma_delimited_list.

And the OS::ContrailV2::VirtualMachineInterface resource MUST contain resource-level metadata (not property-level).

And the metadata format MUST must contain the key value aap_exempt with a list of all map property

virtual_machine_interface_allowed_address_pairs,

virtual_machine_interface_allowed_address_pairs_allowed_address_pair,

virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip,

virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix

parameters not supported by the ONAP data model.

test_allowed_address_pairs_include_vm_type_network_role test_external_aap_format_contrail
R-11690

When a VNF’s Heat Orchestration Template’s Resource ID contains an {index}, the {index} is a numeric value that MUST start at zero and MUST increment by one.

As stated in R-16447, a VNF’s <resource ID> MUST be unique across all Heat Orchestration Templates and all HEAT Orchestration Template Nested YAML files that are used to create the VNF. While the {index} will start at zero in the VNF, the {index} may not start at zero in a given Heat Orchestration Template or HEAT Orchestration Template Nested YAML file.

test_resource_indices test_indices_start_at_0_increment
R-901331 The VNF’s Heat Orchestration Template’s Resource OS::Nova::Server property image value MUST be be obtained via a get_param. test_nova_servers_vm_types_use_get_param test_vm_type_assignments_on_nova_servers_only_use_get_param
R-348813 The VNF’s Heat Orchestration Template’s ZIP file MUST NOT include a binary image file. test_no_image_files test_no_image_files_included
R-100130

When the VNF’s Heat Orchestration Template’s Resource OS::ContrailV2::InstanceIp is assigning an IP address to an internal network (per the ONAP definition, see Requirements R-52425 and R-46461), and an IPv6 address is assigned using the property instance_ip_address and the parameter type is defined as a string, the parameter name MUST follow the naming convention

  • {vm-type}_int_{network-role}_v6_ip_{index}

where

  • {vm-type} is the {vm-type} associated with the OS::Nova::Server
  • {network-role} is the {network-role} of the internal network
  • {index} is a numeric value that MUST start at zero in a VNF’s Heat Orchestration Template and MUST increment by one
test_contrail_instance_ip_parameters test_contrail_internal_instance_ip_address_parameter
R-55218 A VNF’s Heat Orchestration Template’s OS::Nova::Server resource property metadata key/value pair vnf_id parameter vnf_id MUST NOT have parameter constraints defined. test_required_parameters_no_constraints test_vnf_id_parameter_has_no_constraints
R-81725 A VNF’s Incremental Module MUST have a corresponding Environment File test_env_and_yaml_same_name test_env_and_yaml_same_name
R-91125 The VNF’s Heat Orchestration Template’s Resource OS::Nova::Server property image parameter MUST be enumerated in the Heat Orchestration Template’s Environment File and a value MUST be assigned. test_environment_file_parameters test_nova_server_image_parameter_exists_in_environment_file
R-60011 A VNF’s Heat Orchestration Template MUST have no more than two levels of nesting. test_nesting_level test_nesting_level
R-03324 A VNF’s Heat Orchestration template’s Environment File MUST contain the parameters: section. test_environment_file_structure test_environment_file_contains_required_sections
R-53310

A VNF’s Heat Orchestration Template’s Resource OS::ContrailV2::InstanceIp Resource ID that is configuring an IPv4 Address on a virtual machine interface (i.e., OS::ContrailV2::VirtualMachineInterface) attached to an external network MUST use the naming convention

  • {vm-type}_{vm-type_index}_{network-role}_vmi_{vmi_index}_IP_{index}

where

  • {vm-type} is the vm-type
  • {vm-type_index} references the instance of the {vm-type} in the VNF. The {vm-type_index} is a numeric value that MUST start at zero in the VNF and MUST increment by one each time a new instance of a {vm-type} is referenced.
  • {network-role} is the network-role of the network that the virtual machine interface is attached to
  • {vmi_index} references the instance of the virtual machine interface on the {vm-type} attached to {network-role} network. The {vmi_index} is a numeric value that MUST start at zero on an instance of a {vm-type} and MUST increment by one each time a new virtual machine interface is defined on the instance of the {vm-type} attached to {network-role} network.
  • IP signifies that an IPv4 address is being configured
  • {index} references the instance of the IPv4 address configured on the virtual machine interface. The {index} is a numeric value that MUST start at zero on an instance of a virtual machine interface and MUST increment by one each time a new IPv4 address is configured on the virtual machine interface.
test_contrail_instance_ip_resource_id test_contrail_instance_ip_resource_id_external
R-100060 The VNF’s Heat Orchestration Template’s Resource OS::ContrailV2::InstanceIp property instance_ip_address parameter {vm-type}_{network-role}_v6_ip_{index} MUST NOT be enumerated in the VNF’s Heat Orchestration Template’s Environment File. test_environment_file_parameters test_contrail_external_instance_ip_does_not_exist_in_environment_file
R-76682 If a VNF’s Heat Orchestration Template OS::ContrailV2::InterfaceRouteTable resource interface_route_table_routes property interface_route_table_routes_route map property parameter {vm-type}_{network-role}_route_prefixes MUST NOT be enumerated in the VNF’s Heat Orchestration Template’s Environment File. test_environment_file_parameters test_contrail_route_prefixes_parameter_doesnt_exist_in_environment_file
R-81214 A VNF’s Heat Orchestration Template’s Resource OS::ContrailV2::InterfaceRouteTable Resource ID MUST contain the {network-role}. test_contrail_resource_id test_contrail_interfaceroutetable_resource_id
R-28795 The VNF’s Heat Orchestration Template’s Resource OS::Neutron::Port property fixed_ips map property ip_address parameter {vm-type}_int_{network-role}_ip_{index} MUST be enumerated in the VNF’s Heat Orchestration Template’s Environment File. test_environment_file_parameters test_neutron_port_internal_fixedips_ipaddress_parameter_exists_in_environment_file
R-02164

When a VNF’s Heat Orchestration Template’s Contrail resource has a property that references an external network that requires the network’s Fully Qualified Domain Name (FQDN), the property parameter

  • MUST follow the format {network-role}_net_fqdn
  • MUST be declared as type string
  • MUST NOT be enumerated in the VNF’s Heat Orchestration Template’s Environment File
test_contrail_fqdn test_contrail_fqdn
R-20856 A VNF’s Heat Orchestration Template’s OS::Nova::Server resource property metadata key/value pair vnf_id parameter vnf_id MUST NOT be enumerated in the Heat Orchestration Template’s environment file. test_environment_file_parameters test_nova_server_vnf_id_parameter_doesnt_exist_in_environment_file
R-100090

When the VNF’s Heat Orchestration Template’s Resource OS::ContrailV2::InstanceIp is assigning an IP address to an internal network (per the ONAP definition, see Requirements R-52425 and R-46461), and an IPv4 address is assigned using the property instance_ip_address and the parameter type is defined as a string, the parameter name MUST follow the naming convention

  • {vm-type}_int_{network-role}_ip_{index}

where

  • {vm-type} is the {vm-type} associated with the OS::Nova::Server
  • {network-role} is the {network-role} of the internal network
  • {index} is a numeric value that MUST start at zero in a VNF’s Heat Orchestration Template and MUST increment by one
test_contrail_instance_ip_parameters test_contrail_internal_instance_ip_address_parameter
R-87485 A VNF’s Heat Orchestration Template’s file extension MUST be in the lower case format .yaml or .yml. test_base_template_names test_base_template_names
R-20453

A VNF’s Heat Orchestration Template’s Resource OS::Neutron::Port that is attaching to an external network Resource ID MUST use the naming convention

  • {vm-type}_{vm-type_index}_{network-role}_port_{port-index}

where

  • {vm-type} is the vm-type
  • {vm-type_index} references the instance of the {vm-type} in the VNF. The {vm-type_index} is a numeric value that MUST start at zero in the VNF and MUST increment by one each time a new instance of a {vm-type} is referenced.
  • {network-role} is the network-role of the network that the port is attached to
  • {port_index} references the instance of the port on the {vm-type} attached to {network-role} network. The {port_index} is a numeric value that MUST start at zero on an instance of a {vm-type} and MUST increment by one each time a new port is defined on the instance of the {vm-type} attached to {network-role} network.
test_port_resource_ids test_port_resource_ids
R-89913 A VNF’s Heat Orchestration Template’s Cinder Volume Module Output Parameter(s) MUST include the UUID(s) of the Cinder Volumes created in template. test_volume_templates_outputs test_volume_templates_contains_outputs
R-46839 A VNF’s Heat Orchestration Template’s use of {vm-type} in all Resource IDs MUST be the same case. test_vm_type_resource_id test_vm_type_resource_id
R-100150

When the VNF’s Heat Orchestration Template’s Resource OS::ContrailV2::InstanceIp is assigning an IP address to an internal network (per the ONAP definition, see Requirements R-52425 and R-46461), and an IPv6 address is assigned using the property instance_ip_address and the parameter type is defined as a comma_delimited_list, the parameter name MUST follow the naming convention

  • {vm-type}_int_{network-role}_v6_ips

where

  • {vm-type} is the {vm-type} associated with the OS::Nova::Server
  • {network-role} is the {network-role} of the internal network
test_contrail_instance_ip_parameters test_contrail_internal_instance_ip_address_parameter
R-100200

When the VNF’s Heat Orchestration Template’s resource OS::ContrailV2::InstanceIp is assigning an IP address to an external network (per the ONAP definition, see Requirement R-57424), and an IPv4 address is being cloud assigned by OpenStack’s DHCP Service and the external network IPv4 subnet is to be specified using the property subnet_uuid, the parameter MUST follow the naming convention

  • {network-role}_subnet_id

where

  • {network-role} is the network role of the network.
test_contrail_instance_ip_parameters test_contrail_external_instance_subnet_id_parameter
R-50436 The VNF’s Heat Orchestration Template’s Resource OS::Nova::Server property flavor parameter MUST be declared as type: string. test_nova_servers_vm_types test_nova_server_flavor_parameter
R-36772 A VNF’s Heat Orchestration Template’s parameter MUST include the attribute type:. test_heat_template_parameters_contain_required_fields test_heat_template_parameters_contain_required_fields
R-78380

When the VNF’s Heat Orchestration Template’s Resource OS::Neutron::Port is attaching to an internal network (per the ONAP definition, see Requirements R-52425 and R-46461), and an IPv4 address is assigned using the property fixed_ips map property ip_address and the parameter type is defined as a string, the parameter name MUST follow the naming convention

  • {vm-type}_int_{network-role}_ip_{index}

where

  • {vm-type} is the {vm-type} associated with the OS::Nova::Server
  • {network-role} is the {network-role} of the internal network
  • {index} is a numeric value that MUST start at zero in a VNF’s Heat Orchestration Template and MUST increment by one
test_fixed_ips_include_vm_type_network_role test_internal_fip_format
R-100370

When the VNF’s Heat Orchestration Template’s Resource OS::ContrailV2::VirtualMachineInterface is attaching to an internal network (per the ONAP definition, see Requirements R-52425 and R-46461), and an IPv6 Virtual IP (VIP) address is assigned using the map property, virtual_machine_interface_allowed_address_pairs, virtual_machine_interface_allowed_address_pairs_allowed_address_pair, virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip, virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix , the parameter name MUST follow the naming convention

  • {vm-type}_int_{network-role}_floating_v6_ip

where

  • {vm-type} is the {vm-type} associated with the OS::Nova::Server
  • {network-role} is the {network-role} of the external network

And the parameter MUST be declared as type: string and MUST be enumerated in the environment file

OR

the parameter name MUST follow the naming convention

  • {vm-type}_int_{network-role}_floating_v6_ips

where

  • {vm-type} is the {vm-type} associated with the OS::Nova::Server
  • {network-role} is the {network-role} of the external network

And the parameter MUST be declared as type: comma_delimited_list and MUST be enumerated in the environment file.

test_allowed_address_pairs_include_vm_type_network_role test_contrail_internal_vmi_aap_parameter
R-05257 A VNF’s Heat Orchestration Template’s MUST NOT contain the Resource OS::Neutron::FloatingIP. test_forbidden_resources test_neutron_floating_ip_resource_type
R-34037 The VNF’s Heat Orchestration Template’s resource OS::Neutron::Port property fixed_ips map property ip_address parameter MUST be declared as either type string or type comma_delimited_list. test_fixed_ips_include_vm_type_network_role test_external_fip_format
R-04747 A VNF’s Heat Orchestration Template’s Resource OS::Heat::CloudConfig Resource ID MUST contain the {vm-type}. test_cloud_config_resource_id test_cloud_config
R-00977 A VNF’s Heat Orchestration Template’s {network-role} MUST NOT be a substring of {vm-type}. test_nova_servers_vm_types test_vm_type_network_role_collision
R-29872 The VNF’s Heat Orchestration Template’s Resource OS::Neutron::Port property network parameter MUST NOT be enumerated in the Heat Orchestration Template’s Environment File. test_environment_file_parameters test_neutron_port_network_parameter_doesnt_exist_in_environment_file
R-74978 A VNF’s Heat Orchestration Template’s OS::Nova::Server resource property metadata key/value pair workload_context parameter MUST be declared as workload_context and the parameter MUST be defined as type: string. test_nova_servers_workload_context test_workload_context
R-35735

When the VNF’s Heat Orchestration Template’s resource OS::Neutron::Port is attaching to an external network (per the ONAP definition, see Requirement R-57424), and the IPv6 VIP is required to be supported by the ONAP data model, the property allowed_address_pairs map property ip_address parameter name MUST follow the naming convention

  • {vm-type}_{network-role}_floating_v6_ip

where

  • {vm-type} is the {vm-type} associated with the OS::Nova::Server
  • {network-role} is the {network-role} of the external network

And the parameter MUST be declared as type string.

As noted in the introduction to this section, the ONAP data model can only support one IPv6 VIP address.

test_allowed_address_pairs_include_vm_type_network_role test_external_aap_format
R-18683 If a VNF has one IPv4 OAM Management IP Address and the IP Address needs to be inventoried in ONAP’s A&AI database, an output parameter MUST be declared in only one of the VNF’s Heat Orchestration Templates and the parameter MUST be named oam_management_v4_address. test_oam_address_outputs test_oam_address_v4_zero_or_one
R-11041 All parameters defined in a VNFs Nested YAML file MUST be passed in as properties of the resource calling the nested yaml file. test_nested_template_parameters test_nested_template_parameters
R-717227

When the VNF’s Heat Orchestration Template’s Resource OS::Neutron::Port is attaching to an internal network (per the ONAP definition, see Requirements R-52425 and R-46461), and an IPv4 Virtual IP (VIP) address is assigned using the property allowed_address_pairs map property ip_address, the parameter name MUST follow the naming convention

  • {vm-type}_int_{network-role}_floating_ip

where

  • {vm-type} is the {vm-type} associated with the OS::Nova::Server
  • {network-role} is the {network-role} of the external network

And the parameter MUST be declared as type: string and MUST be enumerated in the environment file.

OR

the parameter name MUST follow the naming convention

  • {vm-type}_int_{network-role}_floating_ips

where

  • {vm-type} is the {vm-type} associated with the OS::Nova::Server
  • {network-role} is the {network-role} of the external network

And the parameter MUST be declared as type: comma_delimited_list and MUST be enumerated in the environment file.

test_allowed_address_pairs_include_vm_type_network_role test_internal_aap_format
R-80829 The VNF’s Heat Orchestration Template’s Resource OS::Neutron::Port property fixed_ips map property subnet parameter {network-role}_v6_subnet_id MUST NOT be enumerated in the VNF’s Heat Orchestration Template’s Environment File. test_environment_file_parameters test_neutron_port_fixedips_subnet_parameter_doesnt_exist_in_environment_file
R-91342 A VNF Heat Orchestration Template’s Base Module’s Environment File MUST be named identical to the VNF Heat Orchestration Template’s Base Module with .y[a]ml replaced with .env. test_heat_pairs_provided test_heat_pairs_provided
R-74304 A VNF’s Heat Orchestration Template’s Environment file extension MUST be in the lower case format .env. test_heat_pairs_provided test_heat_pairs_provided
R-98569 The VNF’s Heat Orchestration Template’s Resource OS::Neutron::Port property fixed_ips map property ip_address parameter {vm-type}_int_{network-role}_v6_ips MUST be enumerated in the VNF’s Heat Orchestration Template’s Environment File. test_environment_file_parameters test_neutron_port_internal_fixedips_ipaddress_parameter_exists_in_environment_file
R-81339

A VNF Heat Orchestration Template’s Base Module file name MUST include case insensitive ‘base’ in the filename and MUST match one of the following four formats:

1.) base_<text>.y[a]ml

2.) <text>_base.y[a]ml

3.) base.y[a]ml

4.) <text>_base_<text>.y[a]ml

where <text> MUST contain only alphanumeric characters and underscores ‘_’ and MUST NOT contain the case insensitive string base or volume.

test_base_template_names test_base_template_names
R-681859

A VNF’s Heat Orchestration Template’s OS::Neutron::Port resource’s

  • Resource ID (defined in R-20453)
  • property network parameter name (defined in R-62983 and R-86182)
  • property fixed_ips, map property ip_address parameter name (defined in R-40971, R-04697, R-71577, R-23503, R-78380, R-85235, R-27818, and R-29765)
  • property fixed_ips, map property subnet parameter name (defined in R-62802, R-15287, R-84123, R-76160)
  • property allowed_address_pairs parameter name (defined in R-41492 and R-83418)

MUST contain the identical {network-role}.

test_port_resource_ids test_port_resource_ids
R-55306 A VNF’s Heat Orchestration Template’s OS::Nova::Server resource property metadata key/value pair vf_module_index MUST NOT be used in a OS::Cinder::Volume resource and MUST NOT be used in VNF’s Volume template; it is not supported. test_volume_templates test_no_vf_module_index_in_cinder
R-92635 A VNF’s Heat Orchestration Template MUST be compliant with the OpenStack Template Guide. test_initial_configuration test_02_no_duplicate_keys_in_file
R-32394 A VNF’s Heat Orchestration Template’s use of {vm-type} in all Resource property parameter names MUST be the same case. test_vm_type_case test_vm_type_case
R-100100 The VNF’s Heat Orchestration Template’s Resource OS::ContrailV2::InstanceIp property instance_ip_address parameter {vm-type}_int_{network-role}_ip_{index} MUST be enumerated in the VNF’s Heat Orchestration Template’s Environment File. test_environment_file_parameters test_contrail_internal_instance_ip_does_exist_in_environment_file
R-15287

When the VNF’s Heat Orchestration Template’s resource OS::Neutron::Port is attaching to an external network (per the ONAP definition, see Requirement R-57424), and an IPv6 address is being cloud assigned by OpenStack’s DHCP Service and the external network IPv6 subnet is to be specified using the property fixed_ips map property subnet, the parameter MUST follow the naming convention

  • {network-role}_v6_subnet_id

where

  • {network-role} is the network role of the network.
test_neutron_port_fixed_ips_subnet test_external_subnet_format
R-31141 VNF Heat Orchestration Template’s Cinder Volume Module’s Environment File MUST be named identical to the VNF Heat Orchestration Template’s Cinder Volume Module with .y[a]ml replaced with .env. test_heat_pairs_provided test_heat_pairs_provided
R-100080 The VNF’s Heat Orchestration Template’s Resource OS::ContrailV2::InstanceIp property instance_ip_address parameter {vm-type}_{network-role}_v6_ips MUST NOT be enumerated in the VNF’s Heat Orchestration Template’s Environment File. test_environment_file_parameters test_contrail_external_instance_ip_does_not_exist_in_environment_file
R-98450

A VNF’s Heat Orchestration Template’s base module or incremental module resource OS::Nova::Server property availability_zone parameter MUST follow the naming convention

  • availability_zone_{index}

where {index} is a numeric value that MUST start at zero in a VNF’s Heat Orchestration Templates and MUST increment by one.

test_availability_zone test_availability_zone_naming
R-62983

When the VNF’s Heat Orchestration Template’s Resource OS::Neutron::Port is attaching to an external network (per the ONAP definition, see Requirement R-57424), the network parameter name MUST

  • follow the naming convention {network-role}_net_id if the Neutron network UUID value is used to reference the network
  • follow the naming convention {network-role}_net_name if the OpenStack network name is used to reference the network.

where {network-role} is the network-role of the external network and a get_param MUST be used as the intrinsic function.

test_neutron_port_network_attachment test_external_network_parameter
R-41888 A VNF’s Heat Orchestration Template intrinsic function get_file MUST NOT utilize URL-based file retrieval. test_get_file_only_reference_local_files test_get_file_no_url_retrieval
R-45188 The VNF’s Heat Orchestration Template’s Resource ‘OS::Nova::Server’ property flavor parameter name MUST follow the naming convention {vm-type}_flavor_name. test_nova_servers_vm_types test_nova_server_flavor_parameter
R-70276 A VNF HEAT’s Orchestration Nested Template’s YAML file name MUST NOT be in the format {vm-type}.y[a]ml where {vm-type} is defined in the Heat Orchestration Template. test_filename_is_vmtype_dot_yaml test_filename_is_vmtype_dot_yaml
R-100030

When the VNF’s Heat Orchestration Template’s Resource OS::ContrailV2::InstanceIp is assigning an IP address to an external network (per the ONAP definition, see Requirement R-57424), and an IPv4 address is assigned using the property instance_ip_address and the parameter type is defined as a comma_delimited_list, the parameter name MUST follow the naming convention

  • {vm-type}_{network-role}_ips

where

  • {vm-type} is the {vm-type} associated with the OS::Nova::Server
  • {network-role} is the {network-role} of the external network
test_contrail_instance_ip_parameters test_contrail_external_instance_ip_address_parameter
R-01455

When a VNF’s Heat Orchestration Template creates a Virtual Machine (i.e., OS::Nova::Server), each “class” of VMs MUST be assigned a VNF unique {vm-type}; where “class” defines VMs that MUST have the following identical characteristics:

1.) OS::Nova::Server resource property flavor value

2.) OS::Nova::Server resource property image value

3.) Cinder Volume attachments

  • Each VM in the “class” MUST have the identical Cinder Volume configuration

4.) Network attachments and IP address requirements

  • Each VM in the “class” MUST have the identical number of ports connecting to the identical networks and requiring the identical IP address configuration.
test_vm_class_has_unique_type test_vm_class_has_unique_type
R-20308 A VNF’s Heat Orchestration Template’s OS::Nova::Server resource property metadata key/value pair environment_context parameter MUST be declared as environment_context and the parameter type MUST be defined as type: string. test_nova_servers_environment_context test_environment_context
R-13194 A VNF’s Heat Orchestration Template’s OS::Nova::Server resource property metadata key/value pair environment_context MUST NOT be enumerated in the Heat Orchestration Template’s environment file. test_environment_file_parameters test_nova_server_environment_context_parameter_doesnt_exist_in_environment_file
R-100070

When the VNF’s Heat Orchestration Template’s Resource OS::ContrailV2::InstanceIp is assigning an IP address to an external network (per the ONAP definition, see Requirement R-57424), and an IPv6 address is assigned using the property instance_ip_address and the parameter type is defined as a comma_delimited_list, the parameter name MUST follow the naming convention

  • {vm-type}_{network-role}_v6_ips

where

  • {vm-type} is the {vm-type} associated with the OS::Nova::Server
  • {network-role} is the {network-role} of the external network
test_contrail_instance_ip_parameters test_contrail_external_instance_ip_address_parameter
R-100000 The VNF’s Heat Orchestration Template’s resource OS::ContrailV2::InstanceIp property instance_ip_address parameter MUST be declared as either type string or type comma_delimited_list. test_contrail_instance_ip_parameters test_contrail_external_instance_ip_address_parameter
R-16241 A VNF’s internal network MUST have one subnet. A VNF’s internal network MAY have more than one subnet. test_network_format test_network_has_subnet
R-25720

A VNF’s Heat Orchestration Template’s Resource OS::Neutron::Net Resource ID MUST use the naming convention

  • int_{network-role}_network

VNF Heat Orchestration Templates can only create internal networks. There is no {index} after {network-role} because {network-role} MUST be unique in the scope of the VNF’s Heat Orchestration Template.

test_neutron_net_resource_id test_neutron_net_resource_id
R-82134 A VNF’s Heat Orchestration Template’s OS::Nova::Server resource property metadata key/value pair vf_module_id parameter MUST be declared as vf_module_id and the parameter MUST be defined as type: string. test_server_parameters test_vf_module_id_parameter_type_and_parameter_name
R-71152 The VNF’s Heat Orchestration Template’s Resource OS::Nova::Server property image parameter MUST be declared as type: string. test_nova_servers_vm_types test_nova_server_image_parameter
R-18008 The VNF’s Heat Orchestration Template’s Resource OS::Neutron::Port property network parameter MUST be declared as type: string. test_neutron_port_network_parameter test_neutron_port_network_param_is_string
R-62590

The VNF’s Heat Orchestration Template’s Resource OS::Neutron::Port property fixed_ips map property ip_address parameter associated with an external network, i.e.,

  • {vm-type}_{network-role}_ip_{index}
  • {vm-type}_{network-role}_v6_ip_{index}
  • {vm-type}_{network-role}_ips
  • {vm-type}_{network-role}_v6_ips

MUST NOT be enumerated in the Heat Orchestration Template’s Environment File. ONAP provides the IP address assignments at orchestration time.

test_environment_file_parameters test_neutron_port_external_fixedips_ipaddress_parameter_doesnt_exist_in_environment_file
R-41492

When the VNF’s Heat Orchestration Template’s resource OS::Neutron::Port is attaching to an external network (per the ONAP definition, see Requirement R-57424), and the IPv4 VIP is required to be supported by the ONAP data model, the property allowed_address_pairs map property ip_address parameter name MUST follow the naming convention

  • {vm-type}_{network-role}_floating_ip

where

  • {vm-type} is the {vm-type} associated with the OS::Nova::Server
  • {network-role} is the {network-role} of the external network

And the parameter MUST be declared as type string.

As noted in the introduction to this section, the ONAP data model can only support one IPv4 VIP address.

test_allowed_address_pairs_include_vm_type_network_role test_external_aap_format
R-48067 A VNF’s Heat Orchestration Template’s {vm-type} MUST NOT be a substring of {network-role}. test_nova_servers_vm_types test_vm_type_network_role_collision
R-37028 A VNF MUST be composed of one Base Module test_base_template_names test_base_template_names
R-85235

When the VNF’s Heat Orchestration Template’s Resource OS::Neutron::Port is attaching to an internal network (per the ONAP definition, see Requirements R-52425 and R-46461), and an IPv4 address is assigned using the property fixed_ips map property ip_address and the parameter type is defined as a comma_delimited_list, the parameter name MUST follow the naming convention

  • {vm-type}_int_{network-role}_ips

where

  • {vm-type} is the {vm-type} associated with the OS::Nova::Server
  • {network-role} is the {network-role} of the internal network
test_fixed_ips_include_vm_type_network_role test_internal_fip_format
R-08975 A VNF’s Heat Orchestration Template’s Resource OS::Heat::SoftwareConfig Resource ID MUST contain the {vm-type}. test_software_config_resource_id test_software_config_vm_type
R-100170

The VNF’s Heat Orchestration Template’s Resource OS::ContrailV2::InstanceIp property instance_ip_address parameter associated with an external network, i.e.,

  • {vm-type}_{network-role}_ip_{index}
  • {vm-type}_{network-role}_v6_ip_{index}
  • {vm-type}_{network-role}_ips
  • {vm-type}_{network-role}_v6_ips

MUST NOT be enumerated in the Heat Orchestration Template’s Environment File. ONAP provides the IP address assignments at orchestration time.

test_environment_file_parameters test_contrail_external_instance_ip_does_not_exist_in_environment_file
R-80374 A VNF’s Heat Orchestration Template’s OS::Nova::Server resource property metadata key/value pair vf_module_name parameter vf_module_name MUST NOT be enumerated in the Heat Orchestration Template’s environment file. test_environment_file_parameters test_nova_server_vf_module_name_parameter_doesnt_exist_in_environment_file
R-35414 A VNF Heat Orchestration’s template MUST contain the section parameters:. test_heat_template_structure test_heat_template_structure_contains_parameters
R-67231 A VNF’s Heat Orchestration template’s Environment File’s MUST NOT contain the resource_registry: section. test_env_no_resource_registry test_env_no_resource_registry
R-56438 A VNF’s Heat Orchestration Template’s Nested YAML file extension MUST be in the lower case format .yaml or .yml. test_heat_pairs_provided test_heat_pairs_provided
R-53952 A VNF’s Heat Orchestration Template’s Resource MUST NOT reference a HTTP-based resource definitions. test_no_http_resources test_no_http_resources
R-93030 The VNF’s Heat Orchestration Template’s Resource OS::Neutron::Port property fixed_ips map property ip_address parameter {vm-type}_{network-role}_v6_ips MUST NOT be enumerated in the VNF’s Heat Orchestration Template’s Environment File. test_environment_file_parameters test_neutron_port_external_fixedips_ipaddress_parameter_doesnt_exist_in_environment_file
R-17528 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. test_nesting_nova_server test_nesting_nova_server
R-304011

A VNF’s Heat Orchestration Template’s OS::Nova::Server resource’s

  • Resource ID (defined in R-29751)
  • property image parameter name (defined in R-58670)
  • property flavor parameter name (defined in R-45188)
  • property name parameter name (defined in R-54171 & R-87817)
  • property networks map property port value which is a OS::Neutron::Port Resource ID (defined in R-20453) referenced using the intrinsic function get_attr

MUST contain the identical {vm-type} and MUST follow the naming conventions defined in R-58670, R-45188, R-54171, R-87817, and R-29751. And the {index} in the OS::Nova::Server Resource ID (defined in R-29751) MUST match the {vm-type_index} defined in the OS::Nova::Server property networks map property port referenced OS::Neutron::Port Resource ID (defined in R-20453).

test_server_and_port_vm_indices_match test_server_and_port_vmtype_indices_match
R-84123

When

  • the VNF’s Heat Orchestration Template’s resource OS::Neutron::Port in an Incremental Module is attaching to an internal network (per the ONAP definition, see Requirements R-52425 and R-46461) that is created in the Base Module, AND
  • an IPv4 address is being cloud assigned by OpenStack’s DHCP Service AND
  • the internal network IPv4 subnet is to be specified using the property fixed_ips map property subnet,

the parameter MUST follow the naming convention

  • int_{network-role}_subnet_id

where

  • {network-role} is the network role of the internal network

Note that the parameter MUST be defined as an output parameter in the base module.

test_neutron_port_fixed_ips_subnet test_internal_subnet_format
R-09811 A VNF’s Heat Orchestration Template’s OS::Nova::Server resource property metadata key/value pair vf_module_index MUST NOT have parameter constraints defined. test_required_parameters_no_constraints test_vf_module_index_parameter_has_no_constraints
R-41493

When the VNF’s Heat Orchestration Template’s resource OS::Neutron::Port is attaching to an external network (per the ONAP definition, see Requirement R-57424), and the IPv4 VIP address and/or IPv6 VIP address is not supported by the ONAP data model, the property allowed_address_pairs map property ip_address

  • Parameter name MAY use any naming convention. That is, there is no ONAP mandatory parameter naming convention.
  • Parameter MAY be declared as type string or type

comma_delimited_list.

And the OS::Neutron::Port resource MUST contain resource-level metadata (not property-level).

And the metadata format MUST must contain the key value aap_exempt with a list of all allowed_address_pairs map property ip_address parameters not supported by the ONAP data model.

test_allowed_address_pairs_include_vm_type_network_role test_external_aap_format
R-36542 A VNF’s Heat Orchestration Template’s OS::Nova::Server resource property metadata key/value pair vnf_name parameter vnf_name MUST NOT be enumerated in the Heat Orchestration Template’s environment file. test_environment_file_parameters test_nova_server_vnf_name_parameter_doesnt_exist_in_environment_file
R-23311 The VNF’s Heat Orchestration Template’s base module or incremental module resource OS::Nova::Server property availability_zone parameter MUST be declared as type: string. test_server_parameters test_availability_zone_parameter_type
R-30804 A VNF’s Heat Orchestration Template’s Resource OS::Heat::MultipartMime Resource ID MUST contain the {vm-type}. test_multipart_mime_resource_id test_multipart_mime
R-40971

When the VNF’s Heat Orchestration Template’s Resource OS::Neutron::Port is attaching to an external network (per the ONAP definition, see Requirement R-57424), and an IPv4 address is assigned using the property fixed_ips map property ip_address and the parameter type is defined as a string, the parameter name MUST follow the naming convention

  • {vm-type}_{network-role}_ip_{index}

where

  • {vm-type} is the {vm-type} associated with the OS::Nova::Server
  • {network-role} is the {network-role} of the external network
  • {index} is a numeric value that MUST start at zero in a VNF’s Heat Orchestration Template and MUST increment by one
test_fixed_ips_include_vm_type_network_role test_external_fip_format
R-76449 A VNF’s Heat Orchestration Template’s MUST NOT contain the Resource OS::Neutron::FloatingIPAssociation. test_forbidden_resources test_neutron_floating_ip_association_resource_type
R-20065 A VNF’s Heat Orchestration Template’s Resource OS::ContrailV2::PortTuple Resource ID MUST contain the {vm-type}. test_contrail_resource_id test_contrail_porttuple_resource_id
R-86476 A VNF’s Heat Orchestration Template’s OS::Nova::Server resource property metadata key/value pair vm_role value MUST only contain alphanumeric characters and underscores (i.e., ‘_’). test_vm_role_value test_vm_role_from_env_file
R-72871 A VNF’s Heat Orchestration Template’s OS::Nova::Server resource property metadata key/value pair vf_module_id parameter vf_module_id MUST NOT be enumerated in the Heat Orchestration Template’s environment file. test_environment_file_parameters test_nova_server_vf_module_id_parameter_doesnt_exist_in_environment_file
R-28222

If a VNF’s Heat Orchestration Template OS::ContrailV2::InterfaceRouteTable resource interface_route_table_routes property interface_route_table_routes_route map property parameter name MUST follow the format

  • {vm-type}_{network-role}_route_prefixes
test_contrail_irt_routes test_contrail_irt_route_param_format
R-53433 A VNF’s Cinder Volume Module MUST have a corresponding environment file test_env_and_yaml_same_name test_env_and_yaml_same_name
R-481670 The VNF’s Heat Orchestration Template’s Resource OS::Nova::Server property flavor value MUST be be obtained via a get_param. test_nova_servers_vm_types_use_get_param test_vm_type_assignments_on_nova_servers_only_use_get_param
R-99110

A VNF’s Heat Orchestration Template’s Resource OS::ContrailV2::VirtualNetwork Resource ID MUST use the naming convention

  • int_{network-role}_network

VNF Heat Orchestration Templates can only create internal networks. There is no {index} after {network-role} because {network-role} MUST be unique in the scope of the VNF’s Heat Orchestration Template.

test_contrail_vn_resource_id test_neutron_net_resource_id
R-87817 When the VNF’s Heat Orchestration Template’s Resource OS::Nova::Server property name parameter is defined as a comma_delimited_list, the parameter name MUST follow the naming convention {vm-type}_names. test_nova_servers_vm_types test_nova_server_name_parameter
R-38236 The VNF’s Heat Orchestration Template’s resource OS::Neutron::Port property fixed_ips map property subnet parameter MUST be declared type string. test_neutron_port_fixed_ips_subnet test_external_subnet_format
R-100240

When

  • the VNF’s Heat Orchestration Template’s resource OS::ContrailV2::InstanceIp in an Incremental Module is assigning an IP address to an internal network (per the ONAP definition, see Requirements R-52425 and R-46461) that is created in the Base Module, AND
  • an IPv4 address is being cloud assigned by OpenStack’s DHCP Service AND
  • the internal network IPv4 subnet is to be specified using the property subnet_uuid,

the parameter MUST follow the naming convention

  • int_{network-role}_subnet_id

where

  • {network-role} is the network role of the internal network

Note that the parameter MUST be defined as an output parameter in the base module.

test_contrail_instance_ip_parameters test_contrail_incremental_module_internal_subnet_usage
R-37039 A VNF’s Heat Orchestration Template’s OS::Nova::Server resource property metadata key/value pair vf_module_index parameter vf_module_index MUST NOT be enumerated in the Heat Orchestration Template’s environment file. test_environment_file_parameters test_nova_server_vf_module_index_parameter_doesnt_exist_in_environment_file
R-599443 A parameter enumerated in a VNF’s Heat Orchestration Template’s environment file MUST be declared in the corresponding VNF’s Heat Orchestration Template’s YAML file’s parameters: section. test_env_parameters_defined_in_template test_env_params_are_defined_in_template
R-96253

A VNF’s Heat Orchestration Template’s Resource OS::ContrailV2::VirtualMachineInterface Resource ID that is attaching to an external network MUST use the naming convention

  • {vm-type}_{vm-type_index}_{network-role}_vmi_{vmi_index}

where

  • {vm-type} is the vm-type
  • {vm-type_index} references the instance of the {vm-type} in the VNF. The {vm-type_index} is a numeric value that MUST start at zero in the VNF and MUST increment by one each time a new instance of a {vm-type} is referenced.
  • {network-role} is the network-role of the network that the port (i.e. virtual machine interface) is attached to
  • {vmi_index} references the instance of the virtual machine interface on the {vm-type} attached to {network-role} network. The {vmi_index} is a numeric value that MUST start at zero on an instance of a {vm-type} and MUST increment by one each time a new virtual machine interface is defined on the instance of the {vm-type} attached to {network-role} network.
test_contrail_vmi_resource_id test_contrail_instance_ip_resource_id_external
R-98905 The VNF’s Heat Orchestration Template’s Resource OS::Neutron::Port property fixed_ips map property ip_address parameter {vm-type}_{network-role}_ips MUST NOT be enumerated in the VNF’s Heat Orchestration Template’s Environment File. test_environment_file_parameters test_neutron_port_external_fixedips_ipaddress_parameter_doesnt_exist_in_environment_file
R-90526 A VNF Heat Orchestration Template parameter declaration MUST NOT contain the default attribute. test_heat_parameter_section test_default_values
R-663631 The VNF’s Heat Orchestration Template’s Resource OS::Nova::Server property name value MUST be be obtained via a get_param. test_nova_servers_vm_types_use_get_param test_vm_type_assignments_on_nova_servers_only_use_get_param
R-87563

A VNF’s Heat Orchestration Template’s Resource OS::ContrailV2::InstanceIp Resource ID that is configuring an IPv6 Address on a virtual machine interface (i.e., OS::ContrailV2::VirtualMachineInterface) attached to an internal network MUST use the naming convention

  • {vm-type}_{vm-type_index}_int_{network-role}_vmi_{vmi_index}_v6_IP_{index}

where

  • {vm-type} is the vm-type
  • {vm-type_index} references the instance of the {vm-type} in the VNF. The {vm-type_index} is a numeric value that MUST start at zero in the VNF and MUST increment by one each time a new instance of a {vm-type} is referenced.
  • {network-role} is the network-role of the network that the port is attached to
  • {vmi_index} references the instance of the virtual machine interface on the {vm-type} attached to {network-role} network. The {vmi_index} is a numeric value that MUST start at zero on an instance of a {vm-type} and MUST increment by one each time a new virtual machine interface is defined on the instance of the {vm-type} attached to {network-role} network.
  • v6_IP signifies that an IPv6 address is being configured
  • {index} references the instance of the IPv6 address configured on the virtual machine interface. The {index} is a numeric value that MUST start at zero on an instance of a virtual machine interface and MUST increment by one each time a new IPv6 address is configured on the virtual machine interface.
test_contrail_instance_ip_resource_id test_contrail_instance_ip_resource_id_internal
R-90279 A VNF Heat Orchestration’s template’s parameter MUST be used in a resource with the exception of the parameters for the OS::Nova::Server resource property availability_zone. test_all_parameters_used_in_template test_all_parameters_used_in_template
R-50816 A VNF’s Heat Orchestration Template’s OS::Nova::Server resource property metadata key/value pair vf_module_index value MUST be obtained via a get_param. test_servers_metadata_use_get_param test_servers_vf_module_index_metadata_use_get_param
R-100110

When the VNF’s Heat Orchestration Template’s Resource OS::ContrailV2::InstanceIp is assigning an IP address to an internal network (per the ONAP definition, see Requirements R-52425 and R-46461), and an IPv4 address is assigned using the property instance_ip_address and the parameter type is defined as a comma_delimited_list, the parameter name MUST follow the naming convention

  • {vm-type}_int_{network-role}_ips

where

  • {vm-type} is the {vm-type} associated with the OS::Nova::Server
  • {network-role} is the {network-role} of the internal network
test_contrail_instance_ip_parameters test_contrail_internal_instance_ip_address_parameter
R-22288 The VNF’s Heat Orchestration Template’s Resource OS::Neutron::Port property fixed_ips map property subnet parameter int_{network-role}_v6_subnet_id MUST NOT be enumerated in the VNF’s Heat Orchestration Template’s Environment File. test_environment_file_parameters test_neutron_port_fixedips_subnet_parameter_doesnt_exist_in_environment_file
R-57282 Each VNF’s Heat Orchestration Template’s {vm-type} MUST have a unique parameter name for the OS::Nova::Server property image even if more than one {vm-type} shares the same image. test_nova_servers_vm_types test_nova_server_image_parameter
R-37437 A VNF’s Heat Orchestration Template’s OS::Nova::Server resource property metadata MUST contain the key/value pair vnf_id and the value MUST be obtained via a get_param. test_servers_have_required_metadata test_servers_have_required_metadata
R-99646 A VNF’s YAML files (i.e, Heat Orchestration Template files and Nested files) MUST have a unique name in the scope of the VNF. test_files_in_flat_dir test_files_in_flat_dir
R-98407 A VNF’s Heat Orchestration Template’s {vm-type} MUST contain only alphanumeric characters and/or underscores ‘_’ and MUST NOT contain any of the following strings: _int or int_ or _int_. test_vm_type_syntax test_vm_type_syntax
R-50468

A VNF’s Heat Orchestration Template’s Resource OS::ContrailV2::VirtualMachineInterface Resource ID that is attaching to an internal network MUST use the naming convention

  • {vm-type}_{vm-type_index}_int_{network-role}_vmi_{vmi_index}

where

  • {vm-type} is the vm-type
  • {vm-type_index} references the instance of the {vm-type} in the VNF. The {vm-type_index} is a numeric value that MUST start at zero in the VNF and MUST increment by one each time a new instance of a {vm-type} is referenced.
  • {network-role} is the network-role of the network that the port (i.e. virtual machine interface) is attached to
  • {vmi_index} references the instance of the virtual machine interface on the {vm-type} attached to {network-role} network. The {vmi_index} is a numeric value that MUST start at zero on an instance of a {vm-type} and MUST increment by one each time a new virtual machine interface is defined on the instance of the {vm-type} attached to {network-role} network.
test_contrail_vmi_resource_id test_contrail_instance_ip_resource_id_internal
R-59568 The VNF’s Heat Orchestration Template’s Resource OS::Nova::Server property availability_zone parameter MUST NOT be enumerated in the Heat Orchestration Template’s Environment File. test_environment_file_parameters test_nova_server_az_parameter_doesnt_exist_in_environment_file
R-95303 A VNF’s Heat Orchestration Template MUST be defined using valid YAML. test_initial_configuration test_00_valid_yaml
R-94669 If a VNF has one IPv6 OAM Management IP Address and the IP Address needs to be inventoried in ONAP’s A&AI database, an output parameter MUST be declared in only one of the VNF’s Heat Orchestration Templates and the parameter MUST be named oam_management_v6_address. test_oam_address_outputs test_oam_address_v6_zero_or_one
R-86285 A VNF’s Heat Orchestration template MUST have a corresponding environment file. test_heat_pairs_provided test_heat_pairs_provided
R-75141 A VNF’s Heat Orchestration Template’s resource name (i.e., <resource ID>) MUST only contain alphanumeric characters and underscores (‘_’). test_resource_ids_alphanumeric_only test_alphanumeric_resource_ids_only
R-90152 A VNF’s Heat Orchestration Template’s resources: section MUST contain the declaration of at least one resource. test_initial_configuration test_06_heat_template_resource_section_has_resources
R-100040 The VNF’s Heat Orchestration Template’s Resource OS::ContrailV2::InstanceIp property instance_ip_address parameter {vm-type}_{network-role}_ips MUST NOT be enumerated in the VNF’s Heat Orchestration Template’s Environment File. test_environment_file_parameters test_contrail_external_instance_ip_does_not_exist_in_environment_file
R-67597 A VNF’s Heat Orchestration Template’s OS::Nova::Server resource property metadata key/value pair vm_role parameter vm_role MUST NOT have parameter constraints defined. test_required_parameters_no_constraints test_vm_role_parameter_has_no_constraints
R-100190 The VNF’s Heat Orchestration Template’s resource OS::ContrailV2::InstanceIp property subnet_uuid parameter MUST be declared type string. test_contrail_instance_ip_parameters test_contrail_external_instance_subnet_id_parameter
R-82732 A VNF Heat Orchestration Template’s Cinder Volume Module MUST be named identical to the base or incremental module it is supporting with _volume appended. test_volume_outputs_consumed test_volume_module_name_matches_incremental_or_base_module
R-100010

When the VNF’s Heat Orchestration Template’s Resource OS::ContrailV2::InstanceIp is assigning an IP address to an external network (per the ONAP definition, see Requirement R-57424), and an IPv4 address is assigned using the property instance_ip_address and the parameter type is defined as a string, the parameter name MUST follow the naming convention

  • {vm-type}_{network-role}_ip_{index}

where

  • {vm-type} is the {vm-type} associated with the OS::Nova::Server
  • {network-role} is the {network-role} of the external network
  • {index} is a numeric value that MUST start at zero in a VNF’s Heat Orchestration Template and MUST increment by one
test_contrail_instance_ip_parameters test_contrail_external_instance_ip_address_parameter
R-51430 The VNF’s Heat Orchestration Template’s Resource OS::Nova::Server property name parameter MUST be declared as either type string or type comma_delimited_list. test_nova_servers_vm_types test_nova_server_name_parameter
R-62187

A VNF’s Heat Orchestration Template’s Resource OS::ContrailV2::InstanceIp Resource ID that is configuring an IPv4 Address on a virtual machine interface (i.e., OS::ContrailV2::VirtualMachineInterface) attached to an internal network MUST use the naming convention

  • {vm-type}_{vm-type_index}_int_{network-role}_vmi_{vmi_index}_IP_{index}

where

  • {vm-type} is the vm-type
  • {vm-type_index} references the instance of the {vm-type} in the VNF. The {vm-type_index} is a numeric value that MUST start at zero in the VNF and MUST increment by one each time a new instance of a {vm-type} is referenced.
  • {network-role} is the network-role of the network that the port is attached to
  • {vmi_index} references the instance of the virtual machine interface on the {vm-type} attached to {network-role} network. The {vmi_index} is a numeric value that MUST start at zero on an instance of a {vm-type} and MUST increment by one each time a new virtual machine interface is defined on the instance of the {vm-type} attached to {network-role} network.
  • IP signifies that an IPv4 address is being configured
  • {index} references the instance of the IPv4 address configured on the virtual machine interface. The {index} is a numeric value that MUST start at zero on an instance of a virtual machine interface and MUST increment by one each time a new IPv4 address is configured on the virtual machine interface.
test_contrail_instance_ip_resource_id test_contrail_instance_ip_resource_id_internal
R-589037

A VNF Heat Orchestration Template’s Cinder Volume Module resources: section MUST only be defined using one of the following:

  • one of more OS::Cinder::Volume resources
  • one or more OS::Heat::ResourceGroup resources that call a nested YAML file that contains only OS::Cinder::Volume resources
  • a resource that calls a nested YAML file (static nesting) that contains only OS::Cinder::Volume resources
test_volume_module_naming test_detected_volume_module_follows_naming_convention
R-02691 A VNF’s Heat Orchestration Template’s OS::Nova::Server resource property metadata key/value pair workload_context parameter workload_context MUST NOT be enumerated in the Heat Orchestration Template’s environment file. test_environment_file_parameters test_nova_server_workload_context_parameter_doesnt_exist_in_environment_file
R-07443 A VNF’s Heat Orchestration Templates’ Cinder Volume Module Output Parameter’s name and type MUST match the input parameter name and type in the corresponding Base Module or Incremental Module. test_volume_outputs_consumed test_volume_outputs_consumed
R-50011 A VNF’s Heat Orchestration Template’s OS::Heat::ResourceGroup property count MUST be enumerated in the VNF’s Heat Orchestration Template’s Environment File and MUST be assigned a value. test_environment_file_parameters test_heat_rg_count_parameter_exists_in_environment_file
R-11441

A VNF’s Heat Orchestration Template’s parameter type MUST be one of the following values:

  • string
  • number
  • json
  • comma_delimited_list
  • boolean
test_heat_template_structure test_parameter_type
R-27818

When the VNF’s Heat Orchestration Template’s Resource OS::Neutron::Port is attaching to an internal network (per the ONAP definition, see Requirements R-52425 and R-46461), and an IPv6 address is assigned using the property fixed_ips map property ip_address and the parameter type is defined as a string, the parameter name MUST follow the naming convention

  • {vm-type}_int_{network-role}_v6_ip_{index}

where

  • {vm-type} is the {vm-type} associated with the OS::Nova::Server
  • {network-role} is the {network-role} of the internal network
  • {index} is a numeric value that MUST start at zero in a VNF’s Heat Orchestration Template and MUST increment by one
test_fixed_ips_include_vm_type_network_role test_internal_fip_format
R-11200 A VNF’s Cinder Volume Module, when it exists, MUST be 1:1 with a Base module or Incremental module. test_volume_outputs_consumed test_volume_outputs_consumed
R-72483 A VNF’s Heat Orchestration Template’s OS::Nova::Server resource property metadata MUST contain the key/value pair vnf_name and the value MUST be obtained via a get_param. test_servers_have_required_metadata test_servers_have_required_metadata
R-87123 The VNF’s Heat Orchestration Template’s Resource OS::Neutron::Port property fixed_ips map property ip_address parameter {vm-type}_{network-role}_v6_ip_{index} MUST NOT be enumerated in the VNF’s Heat Orchestration Template’s Environment File. test_environment_file_parameters test_neutron_port_external_fixedips_ipaddress_parameter_doesnt_exist_in_environment_file
R-29765

When the VNF’s Heat Orchestration Template’s Resource OS::Neutron::Port is attaching to an internal network (per the ONAP definition, see Requirements R-52425 and R-46461), and an IPv6 address is assigned using the property fixed_ips map property ip_address and the parameter type is defined as a comma_delimited_list, the parameter name MUST follow the naming convention

  • {vm-type}_int_{network-role}_v6_ips

where

  • {vm-type} is the {vm-type} associated with the OS::Nova::Server
  • {network-role} is the {network-role} of the internal network
test_fixed_ips_include_vm_type_network_role test_internal_fip_format
R-100330

When the VNF’s Heat Orchestration Template’s resource OS::ContrailV2::VirtualMachineInterface is attaching to an external network (per the ONAP definition, see Requirement R-57424), and an IPv6 Virtual IP (VIP) is required to be supported by the ONAP data model, the map property

virtual_machine_interface_allowed_address_pairs,

virtual_machine_interface_allowed_address_pairs_allowed_address_pair,

virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip,

virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix

parameter name MUST follow the naming convention

  • {vm-type}_{network-role}_floating_v6_ip

where

  • {vm-type} is the {vm-type} associated with the OS::Nova::Server
  • {network-role} is the {network-role} of the external network

And the parameter MUST be declared as type string.

The ONAP data model can only support one IPv6 VIP address.

test_allowed_address_pairs_include_vm_type_network_role test_external_aap_format_contrail
R-26351

A VNF’s Heat Orchestration Template’s Resource OS::Neutron::Port that is attaching to an internal network Resource ID MUST use the naming convention

  • {vm-type}_{vm-type_index}_int_{network-role}_port_{port-index}

where

  • {vm-type} is the vm-type
  • {vm-type_index} references the instance of the {vm-type} in the VNF. The {vm-type_index} is a numeric value that MUST start at zero in the VNF and MUST increment by one each time a new instance of a {vm-type} is referenced.
  • {network-role} is the network-role of the network that the port is attached to
  • {port_index} references the instance of the port on the {vm-type} attached to {network-role} network. The {port_index} is a numeric value that MUST start at zero on an instance of a {vm-type} and MUST increment by one each time a new port is defined on the instance of the {vm-type} attached to {network-role} network.
test_port_resource_ids test_port_resource_ids
R-100210 The VNF’s Heat Orchestration Template’s Resource OS::ContrailV2::InstanceIp property subnet_uuid parameter {network-role}_subnet_id MUST NOT be enumerated in the VNF’s Heat Orchestration Template’s Environment File. test_environment_file_parameters test_contrail_subnet_uuid_does_not_exist_in_environment_file
R-85734 If a VNF’s Heat Orchestration Template contains the property name for a non OS::Nova::Server resource, the intrinsic function str_replace MUST be used in conjunction with the ONAP supplied metadata parameter vnf_name to generate a unique value. Additional data MAY be used in the str_replace construct to generate a unique value. test_non_server_name test_non_server_name
R-76718 If a VNF’s Heat Orchestration Template uses the intrinsic function get_file, the get_file target MUST be referenced in the Heat Orchestration Template by file name. test_get_file_only_reference_local_files test_get_file_only_reference_local_files
R-71493 A VNF’s Heat Orchestration Template’s OS::Nova::Server resource property metadata MUST contain the key/value pair vf_module_id and the value MUST be obtained via a get_param. test_servers_have_required_metadata test_servers_have_required_metadata
R-44001 A VNF’s Heat Orchestration Template parameter declaration MUST contain the attribute description. test_heat_template_parameters_contain_required_fields test_heat_template_parameters_contain_required_fields
R-39067 A VNF’s Heat Orchestration Template’s OS::Nova::Server resource property metadata key/value pair vf_module_name parameter MUST be declared as vf_module_name and the parameter MUST be defined as type: string. test_server_parameters test_vf_module_name_parameter_type_and_parameter_name
R-100050

When the VNF’s Heat Orchestration Template’s Resource OS::ContrailV2::InstanceIp is assigning an IP address to an external network (per the ONAP definition, see Requirement R-57424), and an IPv6 address is assigned using the property instance_ip_address and the parameter type is defined as a string, the parameter name MUST follow the naming convention

  • {vm-type}_{network-role}_v6_ip_{index}

where

  • {vm-type} is the {vm-type} associated with the OS::Nova::Server
  • {network-role} is the {network-role} of the external network
  • {index} is a numeric value that MUST start at zero in a VNF’s Heat Orchestration Template and MUST increment by one
test_contrail_instance_ip_parameters test_contrail_external_instance_ip_address_parameter
R-100360

When the VNF’s Heat Orchestration Template’s Resource OS::ContrailV2::VirtualMachineInterface is attaching to an internal network (per the ONAP definition, see Requirements R-52425 and R-46461), and an IPv4 Virtual IP (VIP) address is assigned using the map property, virtual_machine_interface_allowed_address_pairs, virtual_machine_interface_allowed_address_pairs_allowed_address_pair, virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip, virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix , the parameter name MUST follow the naming convention

  • {vm-type}_int_{network-role}_floating_ip

where

  • {vm-type} is the {vm-type} associated with the OS::Nova::Server
  • {network-role} is the {network-role} of the external network

And the parameter MUST be declared as type: string and MUST be enumerated in the environment file.

OR

the parameter name MUST follow the naming convention

  • {vm-type}_int_{network-role}_floating_ips

where

  • {vm-type} is the {vm-type} associated with the OS::Nova::Server
  • {network-role} is the {network-role} of the external network

And the parameter MUST be declared as type: comma_delimited_list and MUST be enumerated in the environment file.

test_allowed_address_pairs_include_vm_type_network_role test_contrail_internal_vmi_aap_parameter
R-76057 VNF Heat Orchestration Template’s Nested YAML file name MUST contain only alphanumeric characters and underscores ‘_’ and MUST NOT contain the case insensitive string base. test_base_template_names test_base_template_names
R-100270 The VNF’s Heat Orchestration Template’s Resource OS::ContrailV2::InstanceIp property subnet_uuid parameter int_{network-role}_v6_subnet_id MUST NOT be enumerated in the VNF’s Heat Orchestration Template’s Environment File. test_environment_file_parameters test_contrail_subnet_uuid_does_not_exist_in_environment_file
R-100140 The VNF’s Heat Orchestration Template’s Resource OS::ContrailV2::InstanceIp property instance_ip_address parameter {vm-type}_int_{network-role}_v6_ip_{index} MUST be enumerated in the VNF’s Heat Orchestration Template’s Environment File. test_environment_file_parameters test_contrail_internal_instance_ip_does_exist_in_environment_file
R-62428 A VNF’s Heat Orchestration Template’s OS::Nova::Server resource property metadata key/value pair vnf_name parameter MUST be declared as vnf_name and the parameter MUST be defined as type: string. test_server_parameters test_vnf_name_parameter_type_and_parameter_name
R-39841 The VNF’s Heat Orchestration Template’s Resource OS::Neutron::Port property fixed_ips map property ip_address parameter {vm-type}_{network-role}_ip_{index} MUST NOT be enumerated in the VNF’s Heat Orchestration Template’s Environment File. test_environment_file_parameters test_neutron_port_external_fixedips_ipaddress_parameter_doesnt_exist_in_environment_file
R-54171

When the VNF’s Heat Orchestration Template’s Resource OS::Nova::Server property name parameter is defined as a string, the parameter name MUST follow the naming convention

  • {vm-type}_name_{index}

where {index} is a numeric value that MUST start at zero in a VNF’s Heat Orchestration Template and MUST increment by one.

test_nova_servers_vm_types test_nova_server_name_parameter
R-71577

When the VNF’s Heat Orchestration Template’s Resource OS::Neutron::Port is attaching to an external network (per the ONAP definition, see Requirement R-57424), and an IPv6 address is assigned using the property fixed_ips map property ip_address and the parameter type is defined as a string, the parameter name MUST follow the naming convention

  • {vm-type}_{network-role}_v6_ip_{index}

where

  • {vm-type} is the {vm-type} associated with the OS::Nova::Server
  • {network-role} is the {network-role} of the external network
  • {index} is a numeric value that MUST start at zero in a VNF’s Heat Orchestration Template and MUST increment by one
test_fixed_ips_include_vm_type_network_role test_external_fip_format
R-23664 A VNF’s Heat Orchestration template MUST contain the section resources:. test_heat_template_structure test_heat_template_structure_contains_resources
R-100160 The VNF’s Heat Orchestration Template’s Resource OS::ContrailV2::InstanceIp property instance_ip_address map property ip_address parameter {vm-type}_int_{network-role}_v6_ips MUST be enumerated in the VNF’s Heat Orchestration Template’s Environment File. test_environment_file_parameters test_contrail_internal_instance_ip_does_exist_in_environment_file
R-35666

If a VNF has an internal network, the VNF Heat Orchestration Template MUST include the heat resources to create the internal network.

A VNF’s Internal Network is created using Neutron Heat Resources (i.e., OS::Neutron::Net, OS::Neutron::Subnet) and/or Contrail Heat Resources (i.e., OS::ContrailV2::VirtualNetwork, ContrailV2::NetworkIpam).

test_network_format test_network_resource_id_format
R-44318 A VNF’s Heat Orchestration Template’s OS::Nova::Server resource property metadata key/value pair vnf_name parameter vnf_name MUST NOT have parameter constraints defined. test_required_parameters_no_constraints test_vnf_name_parameter_has_no_constraints
R-38474 A VNF’s Base Module MUST have a corresponding Environment File. test_env_and_yaml_same_name test_env_and_yaml_same_name
R-100120 The VNF’s Heat Orchestration Template’s Resource OS::ContrailV2::InstanceIp property instance_ip_address parameter {vm-type}_int_{network-role}_int_ips MUST be enumerated in the VNF’s Heat Orchestration Template’s Environment File. test_environment_file_parameters test_contrail_internal_instance_ip_does_exist_in_environment_file
R-27078 A VNF’s Heat Orchestration template MUST contain the section heat_template_version:. test_heat_template_structure test_heat_template_structure_contains_heat_template_version
R-29751

A VNF’s Heat Orchestration Template’s Resource OS::Nova::Server Resource ID MUST use the naming convention

  • {vm-type}_server_{index}

where

  • {vm-type} is the vm-type
  • {index} is the index. The {index} MUST starts at zero and increment by one as described in R-11690.
test_nova_server_resource_id test_nova_server_resource_id
R-100310

When the VNF’s Heat Orchestration Template’s resource OS::ContrailV2::VirtualMachineInterface is attaching to an external network (per the ONAP definition, see Requirement R-57424), and an IPv4 Virtual IP (VIP) is required to be supported by the ONAP data model, the map property

virtual_machine_interface_allowed_address_pairs,

virtual_machine_interface_allowed_address_pairs_allowed_address_pair,

virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip,

virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix

parameter name MUST follow the naming convention

  • {vm-type}_{network-role}_floating_ip

where

  • {vm-type} is the {vm-type} associated with the OS::Nova::Server
  • {network-role} is the {network-role} of the external network

And the parameter MUST be declared as type string.

The ONAP data model can only support one IPv4 VIP address.

test_allowed_address_pairs_include_vm_type_network_role test_external_aap_format_contrail
R-100260

When

  • the VNF’s Heat Orchestration Template’s resource OS::ContrailV2::InstanceIp in an Incremental Module is attaching to an internal network (per the ONAP definition, see Requirements R-52425 and R-46461) that is created in the Base Module, AND
  • an IPv6 address is being cloud assigned by OpenStack’s DHCP Service AND
  • the internal network IPv6 subnet is to be specified using the property subnet_uuid,

the parameter MUST follow the naming convention int_{network-role}_v6_subnet_id, where {network-role} is the network role of the internal network.

Note that the parameter MUST be defined as an output parameter in the base module.

test_contrail_instance_ip_parameters test_contrail_incremental_module_internal_subnet_usage
R-22838 The VNF’s Heat Orchestration Template’s Resource OS::Nova::Server property name parameter MUST NOT be enumerated in the Heat Orchestration Template’s Environment File. test_environment_file_parameters test_nova_server_name_parameter_doesnt_exist_in_environment_file

2.1.2. CSAR/TOSCA Package Validations

Please refer to the VNFSDK project’s list of verified requirements for the current coverage for CSAR and TOSCA.

2.1.3. VNF Requirements corresponding Information Elements w/Range limits

Will be generated in future releases.