Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     The VNF or PNF **MUST** provide Ansible playbooks that are designed to run
     using an inventory hosts file in a supported format with only IP addresses
     or IP addresses and VM/VNF or PNF names.
-    
+
 
 .. container:: note
 
     upload of SSH public keys, SSH public keys loaded during (heat)
     instantiation shall be preserved and not removed by (heat) embedded
     (userdata) scripts.
-    
+
 
 .. container:: note
 
     The VNF or PNF **MUST** support SSH and allow SSH access by the
     Ansible server to the endpoint VM(s) and comply with the Network
     Cloud Service Provider guidelines for authentication and access.
-    
+
 
 .. container:: note
 
 
     The VNF or PNF **MUST** provide the ability to remove root access once
     post-instantiation configuration (Configure) is completed.
-    
+
 
 .. container:: note
 
     addresses of the Ansible Servers in the Cluster, separated by coma, to
     restrict use of the SSH key pair to elements that are part of the Ansible
     Cluster owner of the issued and assigned mechanized user ID.
-    
+
 
 .. container:: note
 
     The VNF or PNF **MUST** provide the ability to include a "from=" clause in
     SSH public keys associated with mechanized user IDs created for an Ansible
     Server cluster to use for VNF or PNF VM authentication.
-    
+
 
 .. container:: note
 
     The VNF or PNF **MUST** permit authentication, using root account, only
     right after instantiation and until post-instantiation configuration is
     completed.
-    
+
 
 .. container:: note
 
     instantiation to support Ansible. This may include creating Mechanized user
     ID(s) used by the Ansible Server(s) on VNF VM(s) and uploading and
     installing new SSH keys used by the mechanized use ID(s).
-    
+
 
 .. container:: note
 
     using an inventory hosts file in a supported format; with group names
     matching VNFC 3-character string adding "vip" for groups with virtual IP
     addresses shared by multiple VMs as seen in examples provided in Appendix.
-    
+
 
 .. container:: note
 
     VNF or PNF that playbooks will target. ONAP will initiate requests to the
     Ansible Server for invocation of playbooks against these end
     points [#7.3.3]_.
-    
+
 
 .. container:: note
 
 
     The VNF or PNF **MUST** have Python >= 2.6 on the endpoint VM(s)
     of a VNF or PNF on which an Ansible playbook will be executed.
-    
+
 
 .. container:: note
 
     using an inventory hosts file in a supported format; with site group that
     shall be used to add site specific configurations to the target VNF or PNF
     VM(s) as needed.
-    
+
 
 .. container:: note
 
 
     **Note**: Ansible Server itself may be used to upload new SSH public
     keys onto supported VNFs or PNFs.
-    
+
 
 Configuration Management > Ansible Standards and Capabilities > VNF or PNF Configuration via Ansible Requirements > Ansible Playbook Requirements
 -------------------------------------------------------------------------------------------------------------------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     The VNF or PNF provider **MUST** assign a new point release to the updated
     playbook set. The functionality of a new playbook set must be tested before
     it is deployed to the production.
-    
+
 
 .. container:: note
 
     models, that send remediation action requests to an APPC/SDN-C; these
     are triggered as a response to an event or correlated events published
     to Event Bus.
-    
+
 
 .. container:: note
 
     The VNF or PNF provider **MUST** deliver a new set of playbooks that
     includes all updated and unchanged playbooks for any new revision to an
     existing set of playbooks.
-    
+
 
 .. container:: note
 
     playbook completed all tasks. When starting services, return control
     only after all services are up. This is critical for workflows where
     the next steps are dependent on prior tasks being fully completed.
-    
+
 
 .. container:: note
 
     on workflow to terminate and re-instantiate VNF VMs and then re-run
     playbook(s)). Backing up updated files is also recommended to support
     rollback when soft rollback is feasible.
-    
+
 
 .. container:: note
 
     input by playbooks, shall be provisioned (and distributed) in advance of
     use, e.g., VNF or PNF instantiation. Recommendation is to avoid these
     instance specific, manually created in advance of instantiation, files.
-    
+
 
 .. container:: note
 
     **Note**: There are cases where playbooks need to interpret results
     of a task and then determine success or failure and return result
     accordingly (failure for failed tasks).
-    
+
 
 .. container:: note
 
     the VNF or PNF with the name '<VNF or PNF name>_results.txt'. All playbook
     output results, for all VNF or PNF VMs, to be provided as a response to the
     request, must be written to this response file.
-    
+
 
 .. container:: note
 
 
     The VNF or PNF **MUST** support Ansible playbooks that are compatible with
     Ansible version 2.6 or later.
-    
+
 
 .. container:: note
 
 
     The VNF or PNF **MUST NOT** use any instance specific parameters
     in a playbook.
-    
+
 
 .. container:: note
 
 
     The VNF or PNF **MUST** make available playbooks that conform
     to the ONAP requirement.
-    
+
 
 .. container:: note
 
     operations such as backing out of software upgrades, configuration
     changes or other work as this will help backing out of configuration
     changes when needed.
-    
+
 
 .. container:: note
 
     by invocation of **one** playbook [#7.3.4]_. The playbook will be
     responsible for executing all necessary tasks (as well as calling other
     playbooks) to complete the request.
-    
+
 
 Configuration Management > Chef Standards and Capabilities > VNF or PNF Configuration via Chef Requirements > Chef Client Requirements
 --------------------------------------------------------------------------------------------------------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
 
     The VNF or PNF **MAY** expose a single endpoint that is
     responsible for all functionality.
-    
+
 
 .. container:: note
 
     The VNF or PNF **MUST** have the chef-client be preloaded with
     validator keys and configuration to register with the designated
     Chef Server as part of the installation process.
-    
+
 
 .. container:: note
 
 
     The VNF or PNF **MUST** be installed with Chef-Client >= 12.0 and Chef
     push jobs client >= 2.0.
-    
+
 
 .. container:: note
 
     (VMs) of a VNF or PNF that contain chef-clients which are used to register
     with the Chef Server.  As part of invoking VNF or PNF actions, ONAP will
     trigger push jobs against FQDNs of endpoints for a VNF or PNF, if required.
-    
+
 
 Configuration Management > Chef Standards and Capabilities > VNF or PNF Configuration via Chef Requirements > Chef Roles/Requirements
 -------------------------------------------------------------------------------------------------------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     The VNF or PNF **MUST** accept all necessary instance specific
     data from the environment or node object attributes for the VNF or PNF
     in roles/cookbooks/recipes invoked for a VNF or PNF action.
-    
+
 
 .. container:: note
 
     The VNF or PNF **MUST** over-ride any default values for
     configurable parameters that can be set by ONAP in the roles,
     cookbooks and recipes.
-    
+
 
 .. container:: note
 
     designed to automatically 'rollback' to the original state in case of
     any errors for actions that change state of the VNF or PNF (e.g.,
     configure).
-    
+
 
 .. container:: note
 
     (see Section 7.c, APPC/SDN-C APIs and Behavior, for list of VNF or PNF
     actions and requirements), when triggered by a chef-client run list
     in JSON file.
-    
+
 
 .. container:: note
 
     The VNF or PNF Package **MUST** include all relevant Chef artifacts
     (roles/cookbooks/recipes) required to execute VNF or PNF actions requested
     by ONAP for loading on appropriate Chef Server.
-    
+
 
 .. container:: note
 
     ['PushJobOutput'] with the desired output on all nodes in the push job
     that execute chef-client run if the VNF or PNF action requires the output
     of a chef-client run be made available (e.g., get running configuration).
-    
+
 
 .. container:: note
 
     considered a critical error. That is, if the chef-client successfully
     completes the VNF or PNF action, it should reflect this status on the Chef
     Server regardless of whether the Callback succeeded or not.
-    
+
 
 .. container:: note
 
 
     -  If the CallbackUrl field is empty or missing in the push job, then
        the chef-client run need not post the results back via callback.
-    
+
 
 .. container:: note
 
     The VNF or PNF **MUST NOT** use any instance specific parameters
     for the VNF or PNF in roles/cookbooks/recipes invoked for a VNF or PNF
     action.
-    
+
 
 .. container:: note
 
     appropriately (e.g., via a fail or raise an exception) if the
     chef-client run encounters any critical errors/failures when
     executing a VNF or PNF action.
-    
+
 
 Configuration Management > Controller Interactions With VNF or PNF > Configuration Commands
 -------------------------------------------------------------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     :need:`R-20741`
 
     The VNF or PNF **MUST** support APPC/SDN-C ``Configure`` command.
-    
+
 
 .. container:: note
 
     :need:`R-56385`
 
     The VNF or PNF **MUST** support APPC ``Audit`` command.
-    
+
 
 .. container:: note
 
     :need:`R-48247`
 
     The VNF or PNF **MUST** support APPC ``ConfigRestore`` command.
-    
+
 
 .. container:: note
 
     :need:`R-94084`
 
     The VNF or PNF **MUST** support APPC/SDN-C ``ConfigScaleOut`` command.
-    
+
 
 .. container:: note
 
     :need:`R-19366`
 
     The VNF or PNF **MUST** support APPC ``ConfigModify`` command.
-    
+
 
 .. container:: note
 
     :need:`R-32981`
 
     The VNF or PNF **MUST** support APPC ``ConfigBackup`` command.
-    
+
 
 Configuration Management > Controller Interactions With VNF or PNF > HealthCheck and Failure Related Commands
 -------------------------------------------------------------------------------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     :need:`R-41430`
 
     The VNF or PNF **MUST** support APPC/SDN-C ``HealthCheck`` command.
-    
+
 
 Configuration Management > Controller Interactions With VNF or PNF > Lifecycle Management Related Commands
 ----------------------------------------------------------------------------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     :need:`R-65641`
 
     The VNF or PNF **MUST** support APPC/SDN-C ``UpgradeBackOut`` command.
-    
+
 
 .. container:: note
 
     :need:`R-97343`
 
     The VNF or PNF **MUST** support APPC/SDN-C ``UpgradeBackup`` command.
-    
+
 
 .. container:: note
 
     :need:`R-45856`
 
     The VNF or PNF **MUST** support APPC/SDN-C ``UpgradePostCheck`` command.
-    
+
 
 .. container:: note
 
     :need:`R-07251`
 
     The VNF or PNF **MUST** support APPC/SDN-C ``ResumeTraffic`` command.
-    
+
 
 .. container:: note
 
     :need:`R-19922`
 
     The VNF or PNF **MUST** support APPC/SDN-C ``UpgradePrecheck`` command.
-    
+
 
 .. container:: note
 
     :need:`R-49466`
 
     The VNF or PNF **MUST** support APPC/SDN-C ``UpgradeSoftware`` command.
-    
+
 
 .. container:: note
 
     :need:`R-82811`
 
     The VNF or PNF **MUST** support APPC ``StartApplication`` command.
-    
+
 
 .. container:: note
 
     :need:`R-12706`
 
     The VNF or PNF **MUST** support APPC/SDN-C ``QuiesceTraffic`` command.
-    
+
 
 .. container:: note
 
     The VNF or PNF **MUST**, if serving as a distribution point or anchor point for
     steering point from source to destination, support the ONAP Controller's
     ``DistributeTraffic`` command.
-    
+
 
 .. container:: note
 
     :need:`R-83146`
 
     The VNF or PNF **MUST** support APPC ``StopApplication`` command.
-    
+
 
 Configuration Management > NETCONF Standards and Capabilities > VNF or PNF Configuration via NETCONF Requirements > Configuration Management
 --------------------------------------------------------------------------------------------------------------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
 
     The VNF or PNF **MUST** provide a NETCONF interface fully defined
     by supplied YANG models for the embedded NETCONF server.
-    
+
 
 .. container:: note
 
 
     The VNF or PNF **MUST** include a NETCONF server enabling
     runtime configuration and lifecycle management capabilities.
-    
+
 
 Configuration Management > NETCONF Standards and Capabilities > VNF or PNF Configuration via NETCONF Requirements > NETCONF Server Requirements
 -----------------------------------------------------------------------------------------------------------------------------------------------
 
 Requirements Added
 ~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
 
     The VNF or PNF **SHOULD** support TLS as secure transport for the NETCONF
     protocol according to [RFC7589].
-    
+
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     [RFC6020] section 10 for YANG 1.0 modules, and [RFC7950] section 11
     for YANG 1.1 modules. All deviations from the aforementioned update
     rules shall be handled by a built-in  automatic upgrade mechanism.
-    
+
 
 .. container:: note
 
 
     The VNF or PNF **MUST** support parallel and simultaneous
     configuration of separate objects within itself.
-    
+
 
 .. container:: note
 
 
     The VNF or PNF **MUST** implement the data model discovery and
     download as defined in [RFC6022].
-    
+
 
 .. container:: note
 
     :need:`R-83790`
 
     The VNF or PNF **MUST** implement the ``:validate`` capability.
-    
+
 
 .. container:: note
 
     The VNF or PNF **MUST** allow all configuration data to be
     edited through a NETCONF <edit-config> operation. Proprietary
     NETCONF RPCs that make configuration changes are not sufficient.
-    
+
 
 .. container:: note
 
     store (e.g., if an interface parameter is being configured then it
     should be locked out for configuration by a simultaneous configuration
     operation on that same interface parameter).
-    
+
 
 .. container:: note
 
     The VNF or PNF **SHOULD** implement the protocol operation:
     ``delete-config(target)`` - Delete the named configuration
     data store target.
-    
+
 
 .. container:: note
 
     The VNF or PNF **MUST** release locks to prevent permanent lock-outs
     when/if a session applying the lock is terminated (e.g., SSH session
     is terminated).
-    
+
 
 .. container:: note
 
 
     The VNF or PNF **MUST** implement ``:confirmed-commit`` If
     ``:candidate`` is supported.
-    
+
 
 .. container:: note
 
 
     The VNF or PNF **MUST** implement the protocol operation:
     ``unlock(target)`` - Unlock the configuration data store target.
-    
+
 
 .. container:: note
 
 
     The VNF or PNF **SHOULD** conform its YANG model to RFC 6536,
     "NETCONF Access Control Model".
-    
+
 
 .. container:: note
 
     The VNF or PNF **MUST** allow the entire configuration of the VNF or PNF to be
     retrieved via NETCONF's <get-config> and <edit-config>, independently
     of whether it was configured via NETCONF or other mechanisms.
-    
+
 
 .. container:: note
 
     The VNF or PNF **MUST** allow another NETCONF session to be able to
     initiate the release of the lock by killing the session owning the lock,
     using the <kill-session> operation to guard against hung NETCONF sessions.
-    
+
 
 .. container:: note
 
 
     The VNF or PNF **MUST** conform to the NETCONF RFC 6241,
     "NETCONF Configuration Protocol".
-    
+
 
 .. container:: note
 
     :need:`R-60656`
 
     The VNF or PNF **MUST** support sub tree filtering.
-    
+
 
 .. container:: note
 
     The VNF or PNF **MUST** implement the protocol operation:
     ``get-config(source, filter`` - Retrieve a (filtered subset of
     a) configuration from the configuration data store source.
-    
+
 
 .. container:: note
 
 
     The VNF or PNF **MUST** conform to the NETCONF RFC 5717,
     "Partial Lock Remote Procedure Call".
-    
+
 
 .. container:: note
 
 
     The VNF or PNF **MUST** conform to the NETCONF RFC 4741,
     "NETCONF Configuration Protocol".
-    
+
 
 .. container:: note
 
     .. code-block:: text
 
       $ pyang --verbose --strict <YANG-file-name(s)> $ echo $!
-    
+
 
 .. container:: note
 
 
     The VNF or PNF **SHOULD** conform its YANG model to RFC 7223,
     "A YANG Data Model for Interface Management".
-    
+
 
 .. container:: note
 
 
     The VNF or PNF **SHOULD** conform its YANG model to RFC 6991,
     "Common YANG Data Types".
-    
+
 
 .. container:: note
 
 
     The VNF or PNF **MUST** support simultaneous <commit> operations
     within the context of this locking requirements framework.
-    
+
 
 .. container:: note
 
 
     The VNF or PNF **MUST** implement the protocol operation:
     ``kill-session(session``- Force the termination of **session**.
-    
+
 
 .. container:: note
 
 
     The VNF or PNF **SHOULD** conform its YANG model to RFC 7223,
     "IANA Interface Type YANG Module".
-    
+
 
 .. container:: note
 
 
     The VNF or PNF **MUST** implement the protocol operation:
     ``close-session()`` - Gracefully close the current session.
-    
+
 
 .. container:: note
 
 
     The VNF or PNF **MUST** release locks to prevent permanent lock-outs
     when the corresponding <partial-unlock> operation succeeds.
-    
+
 
 .. container:: note
 
     YANG 1.1 [RFC7950]. A combination of YANG 1.0 and YANG 1.1 modules is
     allowed subject to the rules in [RFC7950] section 12. The mapping to
     NETCONF shall follow the rules defined in this RFC.
-    
+
 
 .. container:: note
 
     The VNF or PNF **SHOULD** implement the protocol operation:
     ``copy-config(target, source)`` - Copy the content of the
     configuration data store source to the configuration data store target.
-    
+
 
 .. container:: note
 
     The VNF or PNF **MUST** support the ``:startup`` capability. It
     will allow the running configuration to be copied to this special
     database. It can also be locked and unlocked.
-    
+
 
 .. container:: note
 
     :need:`R-80898`
 
     TThe VNF or PNF **MUST** support heartbeat via a <get> with null filter.
-    
+
 
 .. container:: note
 
     attempted to the BUM filter rate from multiple interfaces on the same
     EVC, then they need to be sequenced in the VNF or PNF without locking either
     configuration method out).
-    
+
 
 .. container:: note
 
     server. A server may support partial XPath retrieval filtering, but
     it cannot advertise the ``:xpath`` capability unless the entire XPath
     1.0 specification is supported.
-    
+
 
 .. container:: note
 
     when a user configured timer has expired forcing the NETCONF SSH Session
     termination (i.e., product must expose a configuration knob for a user
     setting of a lock expiration timer).
-    
+
 
 .. container:: note
 
 
     The VNF or PNF **MUST** have the echo command return a zero value
     otherwise the validation has failed.
-    
+
 
 .. container:: note
 
     change, rollback configurations using each configuration data element,
     query each state (non-configuration) data element, execute each YANG
     RPC, and receive data through each notification statement.
-    
+
 
 .. container:: note
 
     The VNF or PNF **MUST** implement the protocol operation:
     ``commit(confirmed, confirm-timeout)`` - Commit candidate
     configuration data store to the running configuration.
-    
+
 
 .. container:: note
 
     The VNF or PNF **SHOULD** conform its YANG model to RFC 7407,
     "A YANG Data Model for SNMP Configuration", if Netconf used to
     configure SNMP engine.
-    
+
 
 .. container:: note
 
 
     The VNF or PNF **MUST** conform to the NETCONF RFC 5277,
     "NETCONF Event Notification".
-    
+
 
 .. container:: note
 
 
     The VNF or PNF **MUST** conform its YANG model to RFC 6470,
     "NETCONF Base Notifications".
-    
+
 
 .. container:: note
 
 
     The VNF or PNF **MUST** conform to the NETCONF RFC 6242,
     "Using the Network Configuration Protocol over Secure Shell".
-    
+
 
 .. container:: note
 
 
     The VNF or PNF **MUST** conform its YANG model to RFC 6087,
     "Guidelines for Authors and Reviewers of YANG Data Model specification".
-    
+
 
 .. container:: note
 
 
     The VNF or PNF **SHOULD** implement the protocol operation:
     ``get-schema(identifier, version, format)`` - Retrieve the YANG schema.
-    
+
 
 .. container:: note
 
     The VNF or PNF **MUST** implement the protocol operation:
     ``discard-changes()`` - Revert the candidate configuration
     data store to the running configuration.
-    
+
 
 .. container:: note
 
     ``edit-config(target, default-operation, test-option, error-option,
     config)`` - Edit the target configuration data store by merging,
     replacing, creating, or deleting new config elements.
-    
+
 
 .. container:: note
 
 
     The VNF or PNF **MUST** implement the protocol operation:
     ``lock(target)`` - Lock the configuration data store target.
-    
+
 
 .. container:: note
 
     The VNF or PNF **MUST** implement both ``:candidate`` and
     ``:writable-running`` capabilities. When both ``:candidate`` and
     ``:writable-running`` are provided then two locks should be supported.
-    
+
 
 .. container:: note
 
 
     The VNF or PNF **MUST** conform its YANG model to RFC 6244,
     "An Architecture for Network Management Using NETCONF and YANG".
-    
+
 
 .. container:: note
 
     ``get(filter)`` - Retrieve (a filtered subset of) the running
     configuration and device state information. This should include
     the list of VNF or PNF supported schemas.
-    
+
 
 .. container:: note
 
 
     The VNF or PNF **SHOULD** conform its YANG model to RFC 7317,
     "A YANG Data Model for System Management".
-    
+
 
 .. container:: note
 
     database (usually the running configuration) will be left unaffected.
     This provides an 'all-or-nothing' edit mode for a single <edit-config>
     request.
-    
+
 
 .. container:: note
 
     parameters to be configurable during virtual machine instantiation
     through Heat templates where SSH keys, usernames, passwords, SSH
     service and SSH port numbers are Heat template parameters.
-    
+
 
 .. container:: note
 
     ``:partial-unlock`` capabilities, defined in RFC 5717. This
     allows multiple independent clients to each write to a different
     part of the <running> configuration at the same time.
-    
+
 
 .. container:: note
 
     that the server supports within a particular URL value. The 'file'
     scheme allows for editable local configuration databases. The other
     schemes allow for remote storage of configuration databases.
-    
+
 
 .. container:: note
 
     The VNF or PNF **MUST** apply locking based on the sequence of
     NETCONF operations, with the first configuration operation locking
     out all others until completed.
-    
+
 
 .. container:: note
 
     The VNF or PNF **MUST** support all operations, administration and
     management (OAM) functions available from the supplier for VNFs or PNFs
     using the supplied YANG code and associated NETCONF servers.
-    
+
 
 .. container:: note
 
 
     The VNF or PNF **MUST** be able to specify the granularity of the
     lock via a restricted or full XPath expression.
-    
+
 
 .. container:: note
 
 
     The VNF or PNF **SHOULD** conform its YANG model to RFC 7277,
     "A YANG Data Model for IP Management".
-    
+
 
 .. container:: note
 
     configuration should not be locked out if an interface is being
     configured or entire Interface configuration should not be locked out
     if a non-overlapping parameter on the interface is being configured).
-    
+
 
 .. container:: note
 
 
     The VNF or PNF **MUST** implement the ``:with-defaults`` capability
     [RFC6243].
-    
+
 
 .. container:: note
 
 
     The VNF or PNF **MUST** conform to the NETCONF RFC 4742,
     "Using the NETCONF Configuration Protocol over Secure Shell (SSH)".
-    
+
 
 Configuration Management > NETCONF Standards and Capabilities > xNF Configuration via NETCONF Requirements > NETCONF Server Requirements
 ----------------------------------------------------------------------------------------------------------------------------------------
 
 Requirements Removed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     The xNF **MUST** conform its YANG model to RFC 6060,
     "YANG - A Data Modeling Language for the Network Configuration
     Protocol (NETCONF)".
-    
+
 
 Configuration Management > VNF or PNF REST APIs > REST APIs
 -----------------------------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     unhealthy), scope identifier, time-stamp and one or more blocks containing
     info and fault information. If the VNF or PNF is unable to run the
     HealthCheck, return a standard http error code and message.
-    
+
 
 Contrail Resource Parameters > OS::ContrailV2::VirtualMachineInterface Property virtual_machine_interface_allowed_address_pairs > External Networks
 ---------------------------------------------------------------------------------------------------------------------------------------------------
 
 Requirements Added
 ~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     parameter
     **MUST NOT** be enumerated in the
     VNF's Heat Orchestration Template's Environment File.
-    
+
 
 .. container:: note
 
     And the parameter **MUST** be declared as type ``string``.
 
     The ONAP data model can only support one IPv4 VIP address.
-    
+
 
 .. container:: note
 
     And the parameter **MUST** be declared as type ``string``.
 
     The ONAP data model can only support one IPv6 VIP address.
-    
+
 
 .. container:: note
 
     ``virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix``
 
     parameters **not** supported by the ONAP data model.
-    
+
 
 Contrail Resource Parameters > OS::ContrailV2::VirtualMachineInterface Property virtual_machine_interface_allowed_address_pairs > Internal Networks
 ---------------------------------------------------------------------------------------------------------------------------------------------------
 
 Requirements Added
 ~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
 
     And the parameter **MUST** be declared as ``type: comma_delimited_list``
     and **MUST** be enumerated in the environment file.
-    
+
 
 .. container:: note
 
 
     And the parameter **MUST** be declared as ``type: comma_delimited_list``
     and **MUST** be enumerated in the environment file.
-    
+
 
 Contrail Resource Parameters > Resource OS::ContrailV2::InstanceIp > Resource OS::ContrailV2::InstanceIp Property instance_ip_address
 -------------------------------------------------------------------------------------------------------------------------------------
 
 Requirements Added
 ~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     parameter
     **MUST** be declared as either type ``string`` or type
     ``comma_delimited_list``.
-    
+
 
 .. container:: note
 
     * ``{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
-    
+
 
 .. container:: note
 
     ``{vm-type}_{network-role}_ip_{index}``
     **MUST NOT** be enumerated in the
     VNF's Heat Orchestration Template's Environment File.
-    
+
 
 .. container:: note
 
         ``OS::Nova::Server``
       * ``{network-role}`` is the {network-role} of the external
         network
-    
+
 
 .. container:: note
 
     ``{vm-type}_{network-role}_ips``
     **MUST NOT** be enumerated in the
     VNF's Heat Orchestration Template's Environment File.
-    
+
 
 .. container:: note
 
     * ``{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
-    
+
 
 .. container:: note
 
     ``{vm-type}_{network-role}_v6_ip_{index}``
     **MUST NOT** be enumerated in the
     VNF's Heat Orchestration Template's Environment File.
-    
+
 
 .. container:: note
 
         OS::Nova::Server
       * ``{network-role}`` is the {network-role} of the external
         network
-    
+
 
 .. container:: note
 
     ``{vm-type}_{network-role}_v6_ips``
     **MUST NOT** be enumerated in the
     VNF's Heat Orchestration Template's Environment File.
-    
+
 
 .. container:: note
 
     * ``{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
-    
+
 
 .. container:: note
 
     ``{vm-type}_int_{network-role}_ip_{index}``
     **MUST** be enumerated in the
     VNF's Heat Orchestration Template's Environment File.
-    
+
 
 .. container:: note
 
         ``OS::Nova::Server``
       * ``{network-role}`` is the {network-role} of the internal
         network
-    
+
 
 .. container:: note
 
     ``{vm-type}_int_{network-role}_int_ips``
     **MUST** be enumerated in the
     VNF's Heat Orchestration Template's Environment File.
-    
+
 
 .. container:: note
 
     * ``{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
-    
+
 
 .. container:: note
 
     ``{vm-type}_int_{network-role}_v6_ip_{index}``
     **MUST** be enumerated in the
     VNF's Heat Orchestration Template's Environment File.
-    
+
 
 .. container:: note
 
         ``OS::Nova::Server``
       * ``{network-role}`` is the {network-role} of the internal
         network
-    
+
 
 .. container:: note
 
     ``{vm-type}_int_{network-role}_v6_ips``
     **MUST** be enumerated in the
     VNF's Heat Orchestration Template's Environment File.
-    
+
 
 .. container:: note
 
     **MUST NOT** be enumerated in the Heat Orchestration
     Template's Environment File.  ONAP provides the IP address
     assignments at orchestration time.
-    
+
 
 .. container:: note
 
     **MUST** be enumerated in the Heat Orchestration
     Template's Environment File and IP addresses **MUST** be
     assigned.
-    
+
 
 Contrail Resource Parameters > Resource OS::ContrailV2::InstanceIp > Resource OS::ContrailV2::InstanceIp Property subnet_uuid
 -----------------------------------------------------------------------------------------------------------------------------
 
 Requirements Added
 ~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     resource ``OS::ContrailV2::InstanceIp`` property ``subnet_uuid``
     parameter
     **MUST** be declared type ``string``.
-    
+
 
 .. container:: note
 
     where
 
       * ``{network-role}`` is the network role of the network.
-    
+
 
 .. container:: note
 
     ``{network-role}_subnet_id``
     **MUST NOT** be enumerated in the
     VNF's Heat Orchestration Template's Environment File.
-    
+
 
 .. container:: note
 
     where
 
       * ``{network-role}`` is the network role of the network.
-    
+
 
 .. container:: note
 
     ``{network-role}_v6_subnet_id``
     **MUST NOT** be enumerated in the
     VNF's Heat Orchestration Template's Environment File.
-    
+
 
 .. container:: note
 
 
     Note that the parameter **MUST** be defined as an ``output`` parameter in
     the base module.
-    
+
 
 .. container:: note
 
     ``int_{network-role}_subnet_id``
     **MUST NOT** be enumerated in the
     VNF's Heat Orchestration Template's Environment File.
-    
+
 
 .. container:: note
 
 
     Note that the parameter **MUST** be defined as an ``output`` parameter in
     the base module.
-    
+
 
 .. container:: note
 
     ``int_{network-role}_v6_subnet_id``
     **MUST NOT** be enumerated in the
     VNF's Heat Orchestration Template's Environment File.
-    
+
 
 Monitoring & Management > Data Structure Specification of the Event Record
 --------------------------------------------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     recommend actions that may be taken at specific thresholds, or if specific
     conditions repeat within a specified time interval, using the semantics and
     syntax described by the :ref:`VES Event Registration specification <ves_event_registration_3_2>`.
-    
+
 
 .. container:: note
 
     event format defined in the
     :ref:`VES Event Listener<ves_event_listener_7_1>`
     specification.
-    
+
 
 .. container:: note
 
     * Required fields
     * Optional fields
     * Any special handling to be performed for that event
-    
+
 
 .. container:: note
 
     The VNF or PNF Provider **MAY** require that specific events, identified by their
     ``eventName``, require that certain fields, which are optional in the common
     event format, must be present when they are published.
-    
+
 
 Monitoring & Management > Event Records - Data Structure Description > Common Event Header
 ------------------------------------------------------------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
      * ``version`` - the version of the event header
      * ``vesEventListenerVersion`` - Version of the VES event listener API spec
        that this event is compliant with
-    
+
 
 Monitoring & Management > Monitoring & Management Requirements > Addressing and Delivery Protocol
 -------------------------------------------------------------------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     only one collector address for a VNF or PNF. In this case, the network will
     promptly resolve connectivity problems caused by a collector or network
     failure transparently to the VNF or PNF.
-    
+
 
 .. container:: note
 
     The VNF or PNF **SHOULD** use REST using HTTPS delivery of plain
     text JSON for moderate sized asynchronous data sets, and for high
     volume data sets when feasible.
-    
+
 
 .. container:: note
 
     ONAP-defined policies delivered from ONAP to the VNF or PNF using PUTs to a
     RESTful API, in the same manner that other controls over data reporting
     will be controlled by policy.
-    
+
 
 .. container:: note
 
     for high volume streaming asynchronous data sets and for other high volume
     data sets. TCP delivery can be used for either JSON or binary encoded data
     sets.
-    
+
 
 .. container:: note
 
     of data collected over a long time interval or data collected across many
     VNFs or PNFs. (Preferred is to reorganize the data into more frequent or more focused
     data sets, and deliver these by REST or TCP as appropriate.)
-    
+
 
 .. container:: note
 
     the VNF or PNF is in operation. We expect the VNF or PNF to be capable of redirecting
     traffic to changed destinations with no loss of data, for example from
     one REST URL to another, or from one TCP host and port to another.
-    
+
 
 .. container:: note
 
 
     The VNF or PNF **MAY** use another option which is expected to include REST
     delivery of binary encoded data sets.
-    
+
 
 .. container:: note
 
 
     The VNF or PNF **MAY** use another option which is expected to include REST
     for synchronous data, using RESTCONF (e.g., for VNF or PNF state polling).
-    
+
 
 Monitoring & Management > Monitoring & Management Requirements > Asynchronous and Synchronous Data Delivery
 -----------------------------------------------------------------------------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
 
     The VNF or PNF **MUST** must encode, address and deliver the data
     as described in the previous paragraphs.
-    
+
 
 .. container:: note
 
 
     The VNF or PNF **MUST** deliver asynchronous data as data becomes
     available, or according to the configured frequency.
-    
+
 
 .. container:: note
 
 
     The VNF or PNF **MUST** use the YANG configuration models and RESTCONF
     [RFC8040] (https://tools.ietf.org/html/rfc8040).
-    
+
 
 .. container:: note
 
     record types include fault fields, mobile flow fields, measurements for
     VNF or PNF scaling fields, and syslog fields. Other record types will be added
     in the future as they become standardized and are made available.)
-    
+
 
 .. container:: note
 
 
     The VNF or PNF **MUST** use the RESTCONF/NETCONF framework used by
     the ONAP configuration subsystem for synchronous communication.
-    
+
 
 .. container:: note
 
 
     The VNF or PNF **SHOULD** deliver all syslog messages to the VES Collector per the
     specifications in Monitoring and Management chapter.
-    
+
 
 .. container:: note
 
     The VNF or PNF **MUST** respond to an ONAP request to deliver granular
     data on device or subsystem status or performance, referencing the YANG
     configuration model for the VNF or PNF by returning the requested data elements.
-    
+
 
 .. container:: note
 
 
     The VNF or PNF **MUST** respond to data requests from ONAP as soon
     as those requests are received, as a synchronous response.
-    
+
 
 .. container:: note
 
     The VNF or PNF **MUST** respond with content encoded in JSON, as
     described in the RESTCONF specification. This way the encoding of a
     synchronous communication will be consistent with Avro.
-    
+
 
 .. container:: note
 
     translated to and from JSON{RFC7951]. YANG configuration and content can
     be represented via JSON, consistent with Avro, as described in "Encoding
     and Serialization" section.
-    
+
 
 Monitoring & Management > Monitoring & Management Requirements > Bulk Performance Measurement
 ---------------------------------------------------------------------------------------------
 
 Requirements Added
 ~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     available at VNF or PNF.
 
     Note: Recommended period is at least 24 hours.
-    
+
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
 
     The VNF or PNF **SHOULD** support FileReady VES event for event-driven bulk transfer
     of monitoring data.
-    
+
 
 .. container:: note
 
 
     The VNF or PNF **SHOULD** support File transferring protocol, such as FTPES or SFTP,
     when supporting the event-driven bulk transfer of monitoring data.
-    
+
 
 .. container:: note
 
 
     The VNF or PNF **SHOULD** support the data schema defined in 3GPP TS 32.435, when
     supporting the event-driven bulk transfer of monitoring data.
-    
+
 
 Monitoring & Management > Monitoring & Management Requirements > Google Protocol Buffers (GPB)
 ----------------------------------------------------------------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
          the state of an VNF or PNF resource.
        * The required Google Protocol Buffers (GPB) metadata is provided in the
          form of .proto files.
-    
+
 
 .. container:: note
 
          processing high volume events
        * A supporting PM content metadata file to be used by analytics
          applications to process high volume measurement events
-    
+
 
 Monitoring & Management > Monitoring & Management Requirements > JSON
 ---------------------------------------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     High-volume data is to be encoded and serialized using
     `Avro <http://avro.apache.org/>`_, where the Avro data
     format are described using JSON.
-    
+
 
 Monitoring & Management > Monitoring & Management Requirements > Reporting Frequency
 ------------------------------------------------------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
           should not affect deserialization and decoding of the data, which
           will be guided by the accompanying JSON schema or GPB definition
           files.
-    
+
 
 .. container:: note
 
 
     The VNF or PNF **MUST** report exactly one Measurement event per period
     per source name.
-    
+
 
 Monitoring & Management > Monitoring & Management Requirements > Security
 -------------------------------------------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     [`RFC5246 <https://tools.ietf.org/html/rfc5246>`_] and should adhere to
     the best current practices outlined in
     `RFC7525 <https://tools.ietf.org/html/rfc7525>`_.
-    
+
 
 .. container:: note
 
 
     The VNF or PNF **MUST** control access to ONAP and to VNFs or PNFs, and creation
     of connections, through secure credentials, log-on and exchange mechanisms.
-    
+
 
 .. container:: note
 
     Note: HTTP Basic Authentication has 4 steps: Request, Authenticate,
     Authorization with Username/Password Credentials, and Authentication Status
     as per RFC7617 and RFC 2617.
-    
+
 
 .. container:: note
 
 
     Note: The configuration management and provisioning software are specific
     to a vendor architecture.
-    
+
 
 .. container:: note
 
     The VNF or PNF **MUST** encrypt any content containing Sensitive Personal
     Information (SPI) or certain proprietary data, in addition to applying the
     regular procedures for securing access and delivery.
-    
+
 
 .. container:: note
 
     :need:`R-47597`
 
     The VNF or PNF **MUST** carry data in motion only over secure connections.
-    
+
 
 Monitoring & Management > Monitoring & Management Requirements > VNF telemetry via standardized interface
 ---------------------------------------------------------------------------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
 
     The VNF or PNF MUST produce heartbeat indicators consisting of events containing
     the common event header only per the VES Listener Specification.
-    
+
 
 Monitoring & Management > Transports and Protocols Supporting Resource Interfaces
 ---------------------------------------------------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
 
     The VNF or PNF **MUST** deliver event records to ONAP using the common
     transport mechanisms and protocols defined in this specification.
-    
+
 
 .. container:: note
 
 
     The VNF or PNF **SHOULD** deliver event records that fall into the event domains
     supported by VES.
-    
+
 
 .. container:: note
 
     The VNF or PNF provider **MUST** reach agreement with the Service Provider on
     the selected methods for encoding, serialization and data delivery
     prior to the on-boarding of the VNF or PNF into ONAP SDC Design Studio.
-    
+
 
 Monitoring & Management > Transports and Protocols Supporting Resource Interfaces > Bulk Telemetry Transmission
 ---------------------------------------------------------------------------------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     The VNF or PNF **MAY** leverage bulk VNF or PNF telemetry transmission mechanism, as
     depicted in Figure 4, in instances where other transmission methods are not
     practical or advisable.
-    
+
 
 Monitoring & Management > Transports and Protocols Supporting Resource Interfaces > VNF or PNF Telemetry using Google Protocol Buffers
 --------------------------------------------------------------------------------------------------------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     depicted in Figure 3 to support real-time performance management (PM) data.
     In this model the VES events are streamed as binary-encoded GBPs over via
     TCP sockets.
-    
+
 
 Monitoring & Management > Transports and Protocols Supporting Resource Interfaces > VNF or PNF Telemetry using VES/JSON Model
 -----------------------------------------------------------------------------------------------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     for data delivery unless there are specific performance or operational
     concerns agreed upon by the Service Provider that would warrant using an
     alternate model.
-    
+
 
 ONAP Heat Heat Template Constructs > Heat Files Support (get_file)
 ------------------------------------------------------------------
 
 Requirements Removed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     single, flat directory per VNF. A VNF's Heat Orchestration
     Template's ``get_file`` target files **MUST** be in the same
     directory hierarchy as the VNF's Heat Orchestration Templates.
-    
+
 
 ONAP Heat Heat Template Constructs > Key Pairs
 ----------------------------------------------
 
 Requirements Added
 ~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
 
     This allows re-use of the key by ONAP when triggering scale out, recovery,
     or other day 1 operations.
-    
+
 
 ONAP Heat Heat Template Constructs > Nested Heat Templates > Nested Heat Template Requirements
 ----------------------------------------------------------------------------------------------
 
 Requirements Added
 ~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
       ``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``
-    
+
 
 Requirements Removed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     A VNF's Heat Orchestration Template's Nested YAML file
     **MUST** be in the same directory hierarchy as the VNF's Heat
     Orchestration Templates.
-    
+
 
 .. container:: note
 
     A VNF's Heat Orchestration Template **MUST** reference a Nested YAML
     file by name. The use of ``resource_registry`` in the VNF's Heat
     Orchestration Templates Environment File **MUST NOT** be used.
-    
+
 
 ONAP Heat Networking > External Networks
 ----------------------------------------
 
 Requirements Removed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     A VNF's ``{network-role}`` assigned to an external network **MUST**
     be different than the ``{network-role}`` assigned to the VNF's
     internal networks, if internal networks exist.
-    
+
 
 ONAP Heat Networking > Internal Networks
 ----------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     (i.e., ``OS::Neutron::Net``, ``OS::Neutron::Subnet``) and/or
     Contrail Heat Resources (i.e., ``OS::ContrailV2::VirtualNetwork``,
     ``ContrailV2::NetworkIpam``).
-    
+
 
 .. container:: note
 
     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.
-    
+
 
 Requirements Removed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     When a VNF creates two or more internal networks, each internal
     network **MUST** be assigned a unique ``{network-role}`` in the context
     of the VNF for use in the VNF's Heat Orchestration Template.
-    
+
 
 .. container:: note
 
     When a VNF creates an internal network, a network role, referred to as
     the ``{network-role}`` **MUST** be assigned to the internal network
     for use in the VNF's Heat Orchestration Template.
-    
+
 
 .. container:: note
 
     A VNF's ``{network-role}`` assigned to an internal network **MUST**
     be different than the ``{network-role}`` assigned to the VNF's external
     networks.
-    
+
 
 ONAP Heat Orchestration Template Format > Heat Orchestration Template Structure > parameters > constraints
 ----------------------------------------------------------------------------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     A VNF's Heat Orchestration Template's parameter defined
     in a nested YAML file
     **SHOULD NOT** have a parameter constraint defined.
-    
+
 
 .. container:: note
 
     A VNF's Heat Orchestration Template's parameter defined
     in a non-nested YAML file as type
     ``number`` **MAY** have a parameter constraint defined.
-    
+
 
 ONAP Heat Orchestration Template Format > Heat Orchestration Template Structure > resources > properties
 --------------------------------------------------------------------------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
 
       * ``name: {get_param: [ {vm-type}_names, { get_param: [ indexlist, 0 ] } ] }``
       * ``name: {get_param: [ {vm-type}_names, { get_param: [ indexlist1, { get_param: indexlist2 } ] } ] }``
-    
+
 
 ONAP Heat Orchestration Templates Overview > ONAP Heat Orchestration Template Filenames > Base Modules
 ------------------------------------------------------------------------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     where ``<text>`` **MUST** contain only alphanumeric characters and
     underscores '_' and **MUST NOT** contain the case insensitive string
     ``base`` or ``volume``.
-    
+
 
 ONAP Heat Orchestration Templates Overview > ONAP Heat Orchestration Template Filenames > Cinder Volume Modules
 ---------------------------------------------------------------------------------------------------------------
 
 Requirements Added
 ~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
       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
-    
+
 
 ONAP Heat Orchestration Templates Overview > ONAP Heat Orchestration Template Filenames > Incremental Modules
 -------------------------------------------------------------------------------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     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``.
-    
+
 
 ONAP Heat Orchestration Templates Overview > ONAP Heat Orchestration Template Filenames > Nested Heat file
 ----------------------------------------------------------------------------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     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``.
-    
+
 
 ONAP Heat Orchestration Templates Overview > ONAP VNF Modularity Overview
 -------------------------------------------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
 
     A VNF's Heat Orchestration Template's Resource ``OS::Cinder::Volume``
     **MAY** be defined in an Incremental Module.
-    
+
 
 .. container:: note
 
 
     A VNF's Heat Orchestration Template's Resource ``OS::Cinder::Volume``
     **MAY** be defined in a Cinder Volume Module.
-    
+
 
 .. container:: note
 
 
     A VNF's Heat Orchestration Template's Resource ``OS::Cinder::Volume``
     **MAY** be defined in a Base Module.
-    
+
 
 Requirements Removed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
 
     At orchestration time, the VNF's Base Module **MUST**
     be deployed first, prior to any incremental modules.
-    
+
 
 ONAP Heat Orchestration Templates Overview > ONAP VNF On-Boarding
 -----------------------------------------------------------------
 
 Requirements Added
 ~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
 
     The VNF's Heat Orchestration Template's ZIP file **MUST NOT** include
     a binary image file.
-    
+
 
 .. container:: note
 
     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.
-    
+
 
 ONAP Heat Orchestration Templates Overview > Output Parameters > ONAP Base Module Output Parameters
 ---------------------------------------------------------------------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     VNF's Heat Orchestration Template's Base Module's output parameter's
     name and type **MUST** match the VNF's Heat Orchestration Template's
     incremental Module's name and type.
-    
+
 
 .. container:: note
 
     When a VNF's Heat Orchestration Template's Base Module's output
     parameter is declared as an input parameter in an Incremental Module,
     the parameter attribute ``constraints:`` **SHOULD NOT** be declared.
-    
+
 
 ONAP Heat Orchestration Templates Overview > Output Parameters > ONAP Volume Module Output Parameters
 -----------------------------------------------------------------------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     When an ONAP Volume Module Output Parameter is declared as an input
     parameter in a base or an incremental module Heat Orchestration
     Template, parameter constraints **SHOULD NOT** be declared.
-    
+
 
 .. container:: note
 
     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.
-    
+
 
 .. container:: note
 
     Parameter(s)
     **MUST** include the
     UUID(s) of the Cinder Volumes created in template.
-    
+
 
 ONAP Heat Support of Environment Files
 --------------------------------------
 
 Requirements Added
 ~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     in the
     corresponding VNF's Heat Orchestration Template's YAML file's
     ``parameters:`` section.
-    
+
 
 ONAP Heat VNF Modularity
 ------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     ONAP will capture the output parameter name and value in the base module
     and provide the value to the corresponding parameter(s) in the
     incremental module(s).
-    
+
 
 ONAP TOSCA VNFD Requirements > VNF CSAR Package > VNF Package Contents
 ----------------------------------------------------------------------
 
 Requirements Removed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
 
     Note: Currently, ONAP doesn't have the capability of Image management,
     we upload the image into VIM/VNFM manually.
-    
+
 
 ONAP TOSCA VNFD or PNFD Requirements > TOSCA PNF Descriptor > Capability Types
 ------------------------------------------------------------------------------
 
 Requirements Added
 ~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     Capabilities Types as specified in ETSI NFV-SOL001 standard:
 
       - tosca.datatypes.nfv.VirtualLinkable
-    
+
 
 ONAP TOSCA VNFD or PNFD Requirements > TOSCA PNF Descriptor > Data Types
 ------------------------------------------------------------------------
 
 Requirements Added
 ~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
       - tosca.datatypes.nfv.LocationInfo
 
       - tosca.datatypes.nfv.CivicAddressElement
-    
+
 
 ONAP TOSCA VNFD or PNFD Requirements > TOSCA PNF Descriptor > General
 ---------------------------------------------------------------------
 
 Requirements Added
 ~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     The PNF Descriptor (PNFD) provided by PNF vendor **MUST** comply with
     TOSCA/YAML based Service template for PNF descriptor specified in ETSI
     NFV-SOL001.
-    
+
 
 ONAP TOSCA VNFD or PNFD Requirements > TOSCA PNF Descriptor > Node Types
 ------------------------------------------------------------------------
 
 Requirements Added
 ~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
       - tosca.nodes.nfv.PnfExtCp
 
       - tosca.nodes.nfv.Cp
-    
+
 
 ONAP TOSCA VNFD or PNFD Requirements > TOSCA PNF Descriptor > Policy Types
 --------------------------------------------------------------------------
 
 Requirements Added
 ~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     Types as specified in ETSI NFV-SOL001 standard:
 
       - tosca.datatypes.nfv.SecurityGroupRule
-    
+
 
 ONAP TOSCA VNFD or PNFD Requirements > TOSCA PNF Descriptor > Relationship Types
 --------------------------------------------------------------------------------
 
 Requirements Added
 ~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     Relationship Types as specified in ETSI NFV-SOL001 standard:
 
       - tosca.datatypes.nfv.VirtualLinksTo
-    
+
 
 ONAP TOSCA VNFD or PNFD Requirements > TOSCA VNF Descriptor > General
 ---------------------------------------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     The VNFD **MUST** comply with ETSI GS NFV-SOL001 specification endorsing
     the above mentioned NFV Profile and maintaining the gaps with the
     requirements specified in ETSI GS NFV-IFA011 standard.
-    
+
 
 ONAP TOSCA VNFD or PNFD Requirements > VNF or PNF CSAR Package > VNF Package Contents
 -------------------------------------------------------------------------------------
 
 Requirements Added
 ~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
 
       - onap_others: contains any other non_MANO artifacts, e.g. informational
         documents
-    
+
 
 .. container:: note
 
     file. The Change Log file keeps a history describing any changes in the VNF
     or PNF package. The Change Log file is kept up to date continuously from
     the creation of the CSAR package.
-    
+
 
 .. container:: note
 
     the TOSCA.meta metadata file. The TOSCA.meta metadata file includes block_0
     with the Entry-Definitions keyword pointing to a TOSCA definitions YAML
     file used as entry for parsing the contents of the overall CSAR archive.
-    
+
 
 .. container:: note
 
       - pnfd_release_date_time
 
       - pnfd_archive_version
-    
+
 
 .. container:: note
 
       - vnf_release_date_time
 
       - vnf_package_version
-    
+
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     The VNF or PNF CSAR package **MUST** include all artifacts required by
     ETSI GS NFV-SOL004 including Manifest file, VNFD or PNFD (or Main
     TOSCA/YAML based Service Template) and other optional artifacts.
-    
+
 
 .. container:: note
 
     SOL004.
 
     for example ROOT\\Licenses\\ **License_term.txt**
-    
+
 
 .. container:: note
 
     including their respected URI's, an algorithm to calculate a digest and
     a digest result calculated on the content of each artifacts, as specified
     in ETSI GS NFV-SOL004.
-    
+
 
 ONAP TOSCA VNFD or PNFD Requirements > VNF or PNF CSAR Package > VNF Package Structure and Format
 -------------------------------------------------------------------------------------------------
 
 Requirements Added
 ~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     :need:`R-506221`
 
     The VNF or PNF TOSCA CSAR file **MUST** be a zip file with .csar extension.
-    
+
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
 
     The VNF or PNF CSAR package **MUST** be arranged as a CSAR archive as
     specified in TOSCA Simple Profile in YAML 1.2.
-    
+
 
 .. container:: note
 
 
     **Note:** SDC supports only the CSAR Option 1 in Dublin. The Option 2
     will be considered in future ONAP releases.
-    
+
 
 ONAP TOSCA VNFD or PNFD Requirements > VNF or PNF CSAR Package > VNF or PNF Package Authenticity and Integrity
 --------------------------------------------------------------------------------------------------------------
 
 Requirements Added
 ~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     TOSCA pre-defined naming convention and located either at the root of the
     archive or in a predefined location specified by the TOSCA.meta file with
     the corresponding entry named "ETSI-Entry-Certificate".
-    
+
 
 .. container:: note
 
     .csar extension, signature and certificate files. The signature and
     certificate files must be siblings of the CSAR file with extensions .cms
     and .cert respectively.
-    
+
 
 PNF Plug and Play > PNF Plug and Play
 -------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
 
     Note: The PNF Controller may be VF-C, APP-C or SDN-C based on the
     PNF and PNF domain.
-    
+
 
 .. container:: note
 
 
     Note: these VES Events are emitted from the PNF to support PNF Plug and
     Play, High Volume Measurements, and Fault events respectively.
-    
+
 
 Resource IDs
 ------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     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.
-    
+
 
 Resource IDs > Contrail Heat Resources Resource ID Naming Convention > OS::ContrailV2::InstanceIp
 -------------------------------------------------------------------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
       instance of a virtual machine interface and **MUST** increment by one
       each time a new IPv4 address is configured on the
       virtual machine interface.
-    
+
 
 .. container:: note
 
       instance of a virtual machine interface and **MUST** increment by one
       each time a new IPv6 address is configured on the
       virtual machine interface.
-    
+
 
 .. container:: note
 
       instance of a virtual machine interface and **MUST** increment by one
       each time a new IPv4 address is configured on the
       virtual machine interface.
-    
+
 
 .. container:: note
 
       instance of a virtual machine interface and **MUST** increment by one
       each time a new IPv6 address is configured on the
       virtual machine interface.
-    
+
 
 Requirements Removed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
       attached to the network of ``{network-role}``
     * ``IP`` signifies that an IPv4 address is being configured
     * ``{index}`` is the index of the IPv4 address
-    
+
 
 .. container:: note
 
       attached to the network of ``{network-role}``
     * ``v6_IP`` signifies that an IPv6 address is being configured
     * ``{index}`` is the index of the IPv6 address
-    
+
 
 Resource IDs > Contrail Heat Resources Resource ID Naming Convention > OS::ContrailV2::ServiceTemplate
 ------------------------------------------------------------------------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     * ``{index}`` is the index.
       The ``{index}`` starts at zero and increments by one
       (as described in R-11690).
-    
+
 
 Resource IDs > Contrail Heat Resources Resource ID Naming Convention > OS::ContrailV2::VirtualMachineInterface
 --------------------------------------------------------------------------------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
       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.
-    
+
 
 .. container:: note
 
       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.
-    
+
 
 Requirements Removed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
       that the port (i.e. virtual machine interface) is attached to
     * ``{vmi_index}`` is the instance of the the vmi on the vm-type
       attached to the network of ``{network-role}``
-    
+
 
 Resource IDs > Contrail Heat Resources Resource ID Naming Convention > OS::ContrailV2::VirtualNetwork
 -----------------------------------------------------------------------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     There is no ``{index}`` after ``{network-role}`` because ``{network-role}``
     **MUST** be unique in the scope of the VNF's
     Heat Orchestration Template.
-    
+
 
 Resource IDs > OpenStack Heat Resources Resource ID Naming Convention > OS::Cinder::Volume
 ------------------------------------------------------------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
 
     * ``{vm-type}`` is the vm-type
     * ``{index}`` starts at zero and increments by one (as described in R-11690)
-    
+
 
 Resource IDs > OpenStack Heat Resources Resource ID Naming Convention > OS::Cinder::VolumeAttachment
 ----------------------------------------------------------------------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
 
     * ``{vm-type}`` is the vm-type
     * ``{index}`` starts at zero and increments by one (as described in R-11690)
-    
+
 
 Resource IDs > OpenStack Heat Resources Resource ID Naming Convention > OS::Heat::ResourceGroup
 -----------------------------------------------------------------------------------------------
 
 Requirements Removed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
       that the sub-interfaces attach to
     * ``{port-index}`` is the instance of the the port on the vm-type
       attached to the network of ``{network-role}``
-    
+
 
 Resource IDs > OpenStack Heat Resources Resource ID Naming Convention > OS::Neutron::Port
 -----------------------------------------------------------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
       for the vm-type attached to the network of ``{network-role}``.
       The ``{index}`` starts at zero and increments by one
       (as described in R-11690).
-    
+
 
 .. container:: note
 
       for the vm-type attached to the network of ``{network-role}``.
       The ``{index}`` starts at zero and increments by one
       (as described in R-11690).
-    
+
 
 .. container:: note
 
       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.
-    
+
 
 .. container:: note
 
       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.
-    
+
 
 Resource IDs > OpenStack Heat Resources Resource ID Naming Convention > OS::Neutron::Subnet
 -------------------------------------------------------------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     * ``{index}`` is the ``{index}`` of the subnet of the network.
       The ``{index}`` starts at zero and increments by one
       (as described in R-11690).
-    
+
 
 Resource IDs > OpenStack Heat Resources Resource ID Naming Convention > OS::Nova::Keypair
 -----------------------------------------------------------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     * ``{index}`` is the ``{index}`` of the keypair.
       The ``{index}`` starts at zero and increments by one
       (as described in R-11690).
-    
+
 
 .. container:: note
 
     where
 
     * ``{vnf-type}`` describes the VNF
-    
+
 
 Resource IDs > OpenStack Heat Resources Resource ID Naming Convention > OS::Nova::Server
 ----------------------------------------------------------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     * ``{index}`` is the index.
       The ``{index}`` **MUST** starts at zero and increment by one
       as described in R-11690.
-    
+
 
 Resource Property “name”
 ------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     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.
-    
+
 
 Requirements Removed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     a unique value, additional data **MUST** be used in the
     ``str_replace`` to create a unique value, such as ``OS::stack_name``
     and/or the ``OS::Heat::ResourceGroup`` ``index``.
-    
+
 
 Resource: OS::Neutron::Port - Parameters > Introduction > Items to Note
 -----------------------------------------------------------------------
 
 Requirements Added
 ~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
       R-41492 and R-83418)
 
     **MUST** contain the identical ``{network-role}``.
-    
+
 
 Requirements Removed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     all the IPv4 Addresses **MUST** be from
     the same subnet and all the IPv6 Addresses **MUST** be from the
     same subnet.
-    
+
 
 .. container:: note
 
     internal network. All VNF ports connected to the unique internal
     network **MUST** have cloud assigned IP Addresses
     or **MUST** have statically assigned IP addresses.
-    
+
 
 .. container:: note
 
     external network. All VNF ports connected to the unique external
     network **MUST** have cloud assigned IP Addresses
     or **MUST** have ONAP SDN-C assigned IP addresses.
-    
+
 
 Resource: OS::Neutron::Port - Parameters > Property: allowed_address_pairs, Map Property: ip_address
 ----------------------------------------------------------------------------------------------------
 
 Requirements Removed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     ``OS::Neutron::Port`` property ``allowed_address_pairs``
     map property ``ip_address`` parameter
     **MUST** be used.
-    
+
 
 Resource: OS::Neutron::Port - Parameters > Property: allowed_address_pairs, Map Property: ip_address > VIP Assignment, External Networks
 ----------------------------------------------------------------------------------------------------------------------------------------
 
 Requirements Added
 ~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     key value ``aap_exempt`` with a list of all
     ``allowed_address_pairs`` map property ``ip_address`` parameters
     **not** supported by the ONAP data model.
-    
+
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
 
     As noted in the introduction to this section, the ONAP data model
     can only support one IPv6 VIP address.
-    
+
 
 .. container:: note
 
     map property ``ip_address`` parameter(s)
     **MUST NOT** be enumerated in the
     VNF's Heat Orchestration Template's Environment File.
-    
+
 
 .. container:: note
 
 
     As noted in the introduction to this section, the ONAP data model
     can only support one IPv4 VIP address.
-    
+
 
 Resource: OS::Neutron::Port - Parameters > Property: allowed_address_pairs, Map Property: ip_address > VIP Assignment, External Networks, Supported by Automation
 -----------------------------------------------------------------------------------------------------------------------------------------------------------------
 
 Requirements Removed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     all the Virtual Machines using the VIP address **MUST**
     be instantiated in the same Base Module Heat Orchestration Template
     or in the same Incremental Module Heat Orchestration Template.
-    
+
 
 .. container:: note
 
     If a VNF requires ONAP to assign a Virtual IP (VIP) Address to
     ports connected an external network, the port
     **MUST NOT** have more than one IPv6 VIP address.
-    
+
 
 .. container:: note
 
     ``{vm-type}_{network-role}_floating_v6_ip``
     **MUST NOT** be enumerated in the
     VNF's Heat Orchestration Template's Environment File.
-    
+
 
 .. container:: note
 
     If a VNF requires ONAP to assign a Virtual IP (VIP) Address to
     ports connected an external network, the port
     **MUST NOT** have more than one IPv4 VIP address.
-    
+
 
 .. container:: note
 
     ``OS::Neutron::Port`` property ``allowed_address_pairs``
     map property ``ip_address`` parameter
     **MUST** be declared as type ``string``.
-    
+
 
 Resource: OS::Neutron::Port - Parameters > Property: allowed_address_pairs, Map Property: ip_address > VIP Assignment, Internal Networks
 ----------------------------------------------------------------------------------------------------------------------------------------
 
 Requirements Added
 ~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
 
     And the parameter **MUST** be declared as ``type: comma_delimited_list``
     and **MUST** be enumerated in the environment file.
-    
+
 
 .. container:: note
 
 
     And the parameter **MUST** be declared as ``type: comma_delimited_list``
     and **MUST** be enumerated in the environment file.
-    
+
 
 Resource: OS::Neutron::Port - Parameters > Property: fixed_ips, Map Property: ip_address
 ----------------------------------------------------------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     * ``{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
-    
+
 
 .. container:: note
 
     * ``{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
-    
+
 
 .. container:: note
 
     * ``{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
-    
+
 
 .. container:: note
 
     * ``{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
-    
+
 
 Resource: OS::Neutron::Port - Parameters > Property: network
 ------------------------------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
 
     where ``{network-role}`` is the network-role of the internal network and
     a ``get_param`` **MUST** be used as the intrinsic function.
-    
+
 
 Requirements Removed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     of the internal network by using the intrinsic function
     ``get_resource``
     and referencing the Resource ID of the internal network.
-    
+
 
 Resource: OS::Nova::Server - Parameters
 ---------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     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).
-    
+
 
 Resource: OS::Nova::Server - Parameters > Property: Name
 --------------------------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
 
     where ``{index}`` is a numeric value that **MUST** start at
     zero in a VNF's Heat Orchestration Template and **MUST** increment by one.
-    
+
 
 Requirements Removed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     property ``name`` parameter is defined as a ``string``, a parameter
     **MUST** be delcared for
     each ``OS::Nova::Server`` resource associated with the ``{vm-type}``.
-    
+
 
 .. container:: note
 
     property ``name`` parameter is defined as a ``comma_delimited_list``,
     a parameter **MUST** be delcared once for all ``OS::Nova::Server`` resources
     associated with the ``{vm-type}``.
-    
+
 
 Resource: OS::Nova::Server - Parameters > Property: availability_zone
 ---------------------------------------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     where ``{index}`` is a numeric value that **MUST** start at zero
     in a VNF's Heat Orchestration Templates and **MUST**
     increment by one.
-    
+
 
 Resource: OS::Nova::Server Metadata Parameters > environment_context
 --------------------------------------------------------------------
 
 Requirements Removed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     ``metadata`` map value parameter ``environment_context`` is passed into a
     Nested YAML
     file, the parameter name ``environment_context`` **MUST NOT** change.
-    
+
 
 Resource: OS::Nova::Server Metadata Parameters > vf_module_id
 -------------------------------------------------------------
 
 Requirements Removed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     ``metadata`` key/value pair ``vf_module_id`` is passed into a
     Nested YAML
     file, the key/value pair name ``vf_module_id`` **MUST NOT** change.
-    
+
 
 Resource: OS::Nova::Server Metadata Parameters > vf_module_index
 ----------------------------------------------------------------
 
 Requirements Added
 ~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     A VNF's Heat Orchestration Template's ``OS::Nova::Server``
     resource  property ``metadata`` **MAY**
     contain the key/value pair ``vf_module_index``.
-    
+
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     resource  property ``metadata``
     key/value pair ``vf_module_index``
     value **MUST** be obtained via a ``get_param``.
-    
+
 
 Requirements Removed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     property ``metadata`` key/value pair ``vf_module_index`` is passed into a
     Nested YAML file, the key/value pair
     ``vf_module_index`` **MUST NOT** change.
-    
+
 
 Resource: OS::Nova::Server Metadata Parameters > vf_module_name
 ---------------------------------------------------------------
 
 Requirements Added
 ~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
 
     A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
     property metadata **SHOULD** contain the key/value pair ``vf_module_name``.
-    
+
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     property ``metadata`` key/value pair ``vf_module_name``
     value **MUST**
     be obtained via a ``get_param``.
-    
+
 
 Requirements Removed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     property ``metadata`` key/value pair ``vf_module_name`` is passed into a
     Nested YAML
     file, the key/value pair name ``vf_module_name`` **MUST NOT** change.
-    
+
 
 Resource: OS::Nova::Server Metadata Parameters > vm_role
 --------------------------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     * ``vm_role`` and the parameter defined as ``type: string``.
     * ``vm_roles`` and the parameter defined as ``type: comma_delimited_list``.
     * ``{vm-type}_vm_role`` and the parameter defined as ``type: string``.
-    
+
 
 Requirements Removed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     property ``metadata`` key/value pair ``vm_role`` is passed into a Nested
     YAML
     file, the key/value pair name ``vm_role`` **MUST NOT** change.
-    
+
 
 Resource: OS::Nova::Server Metadata Parameters > vnf_id
 -------------------------------------------------------
 
 Requirements Removed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     property
     ``metadata`` key/value pair ``vnf_id`` is passed into a Nested YAML
     file, the key/value pair name ``vnf_id`` **MUST NOT** change.
-    
+
 
 Resource: OS::Nova::Server Metadata Parameters > vnf_name
 ---------------------------------------------------------
 
 Requirements Removed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     property
     ``metadata`` key/value pair ``vnf_name`` is passed into a Nested YAML
     file, the key/value pair name ``vnf_name`` **MUST NOT** change.
-    
+
 
 Resource: OS::Nova::Server Metadata Parameters > workload_context
 -----------------------------------------------------------------
 
 Requirements Removed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     property ``metadata`` key/value pair ``workload_context``
     is passed into a Nested YAML
     file, the key/value pair name ``workload_context`` **MUST NOT** change.
-    
+
 
 VNF On-boarding and package management > Compute, Network, and Storage Requirements
 -----------------------------------------------------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     The VNF or PNF Provider **MUST** provide human readable documentation
     (not in the on-boarding package) to describe scaling capabilities to manage
     scaling characteristics of the VNF or PNF.
-    
+
 
 .. container:: note
 
 
     The VNF provider **MUST** provide the binaries and images
     needed to instantiate the VNF (VNF and VNFC images).
-    
+
 
 .. container:: note
 
     network and application connectivity internal and external to the VNF
     including Link type, KPIs, Bandwidth, latency, jitter, QoS (if applicable)
     for each interface.
-    
+
 
 VNF On-boarding and package management > Licensing Requirements
 ---------------------------------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     The VNF or PNF provider **MUST NOT** require additional
     infrastructure such as a VNF or PNF provider license server for VNF or PNF provider
     functions and metrics.
-    
+
 
 .. container:: note
 
 
     The VNF or PNF provider **MUST** enumerate all of the open
     source licenses their VNF or PNF(s) incorporate.
-    
+
 
 .. container:: note
 
     The VNF or PNF provider **MUST** agree to the process that can
     be met by Service Provider reporting infrastructure. The Contract
     shall define the reporting process and the available reporting tools.
-    
+
 
 .. container:: note
 
 
     The VNF or PNF provider **MUST NOT** require audits
     of Service Provider's business.
-    
+
 
 .. container:: note
 
     pools of Unique VNF or PNF License Keys, where there is a unique key for
     each VNF or PNF instance as an alternate solution. Licensing issues should
     be resolved without interrupting in-service VNFs or PNFs.
-    
+
 
 .. container:: note
 
 
     Note: License metadata support in ONAP is not currently available
     and planned for 1Q 2018.
-    
+
 
 .. container:: note
 
     The VNF or PNF **MUST** provide metrics (e.g., number of sessions,
     number of subscribers, number of seats, etc.) to ONAP for tracking
     every license.
-    
+
 
 VNF On-boarding and package management > Resource Configuration
 ---------------------------------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     Note: The requirements for Netconf/YANG, Chef, and Ansible protocols
     are provided separately and must be supported only if the corresponding
     protocol option is provided by the VNF or PNF providor.
-    
+
 
 VNF On-boarding and package management > Resource Configuration > Configuration Management via Ansible
 ------------------------------------------------------------------------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
 
     The VNF or PNF provider **MUST** provide playbooks to be loaded
     on the appropriate Ansible Server.
-    
+
 
 .. container:: note
 
     pairs with all relevant values populated with sample data that illustrates
     its usage. The fields and their description are defined in Table B1
     in the Appendix.
-    
+
 
 .. container:: note
 
 
     The VNF or PNF Package **MUST** include configuration scripts
     for boot sequence and configuration.
-    
+
 
 .. container:: note
 
     (if unable to conform to YANG model) including VNF or PNF attributes/parameters
     and valid values, dynamic attributes and cross parameter dependencies
     (e.g., customer provisioning data).
-    
+
 
 VNF On-boarding and package management > Resource Configuration > Configuration Management via Chef
 ---------------------------------------------------------------------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     and A2 in the Appendix.
 
     Note: Chef support in ONAP is not currently available and planned for 4Q 2017.
-    
+
 
 .. container:: note
 
 
     The VNF or PNF provider **MUST** provide cookbooks to be loaded
     on the appropriate Chef Server.
-    
+
 
 VNF On-boarding and package management > Resource Configuration > Configuration Management via NETCONF/YANG
 -----------------------------------------------------------------------------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
 
     The VNF or PNF provider **SHOULD** provide a Resource/Device YANG model
     as a foundation for creating the YANG model for configuration.
-    
+
 
 VNF On-boarding and package management > Resource Control Loop
 --------------------------------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
 
     The VNF or PNF Package **MUST** include documentation for each KPI, provide
     lower and upper limits.
-    
+
 
 .. container:: note
 
     The VNF or PNF Package **MUST** include documentation for each KPI,
     identify the suggested actions that need to be performed when a
     threshold crossing alert event is recorded.
-    
+
 
 .. container:: note
 
     The VNF or PNF Documentation Package **MUST** describe the
     fault, performance, capacity events/alarms and other event records
     that are made available by the VNF or PNF.
-    
+
 
 .. container:: note
 
     include a unique identification string for the specific VNF or PNF, a description
     of the problem that caused the error, and steps or procedures to perform
     Root Cause Analysis and resolve the issue.
-    
+
 
 .. container:: note
 
     any requirements for the monitoring component of tools for Network
     Cloud automation and management to provide these records to components
     of the VNF or PNF.
-    
+
 
 .. container:: note
 
     The VNF or PNF Package **MUST** include documentation to when applicable,
     provide calculators needed to convert raw data into appropriate reporting
     artifacts.
-    
+
 
 .. container:: note
 
     and quality (e.g., DPM) for the key transactions/functions supported by
     the VNF or PNF and those that must be exercised by the VNF or PNF in order to perform
     its function.
-    
+
 
 .. container:: note
 
     The VNF or PNF Package **MUST** include documentation about monitoring
     parameters/counters exposed for virtual resource management and VNF or PNF
     application management.
-    
+
 
 .. container:: note
 
     The VNF or PNF Documentation Package **MUST**, when relevant,
     provide a threshold crossing alert point for each KPI and describe the
     significance of the threshold crossing.
-    
+
 
 .. container:: note
 
 
     The VNF or PNF Documentation Package **MUST** describe
     the characteristics for the VNF or PNF reliability and high availability.
-    
+
 
 .. container:: note
 
     parameters that are available to monitor the VNF or PNF after instantiation
     (includes all counters, OIDs, PM data, KPIs, etc.) that must be
     collected for reporting purposes.
-    
+
 
 .. container:: note
 
     The VNF Package **MUST** include documentation about KPIs and
     metrics that need to be collected at each VM for capacity planning
     and performance management purposes.
-    
+
 
 .. container:: note
 
     Policy Description to manage the VNF or PNF runtime lifecycle. The document
     must include a description of how the policies (conditions and actions)
     are implemented in the VNF or PNF.
-    
+
 
 .. container:: note
 
     The VNF or PNF Package **MUST** include documentation which must include
     all events (fault, measurement for VNF or PNF Scaling, Syslogs, State Change
     and Mobile Flow), that need to be collected at each VM, VNFC (defined in `VNF Guidelines <https://onap.readthedocs.io/en/latest/submodules/vnfrqts/guidelines.git/docs/vnf_guidelines.html>`__ ) and for the overall VNF or PNF.
-    
+
 
 .. container:: note
 
     The VNF or PNF Package **MUST** include documentation which must include
     all events, severity level (e.g., informational, warning, error) and
     descriptions including causes/fixes if applicable for the event.
-    
+
 
 .. container:: note
 
     The VNF or PNF Documentation Package **MUST** describe
     supported VNF or PNF scaling capabilities and capacity limits (e.g., number
     of users, bandwidth, throughput, concurrent calls).
-    
+
 
 Requirements Removed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     The xNF provider **MUST** provide an XML file that contains a
     list of xNF error codes, descriptions of the error, and possible
     causes/corrective action.
-    
+
 
 .. container:: note
 
     reference to the specific release of the xNF Event Stream Common Event
     Data Model document it is based on. (e.g.,
     `VES Event Listener <https://onap.readthedocs.io/en/latest/submodules/vnfsdk/model.git/docs/files/VESEventListener.html>`__)
-    
+
 
 VNF On-boarding and package management > Resource Description
 -------------------------------------------------------------
 
 Requirements Added
 ~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     included in the VES Registration YAML file with each fault event
     supported by that NF at onboarding time and the Meta Data must follow
     the VES Event Listener and VES Event Registration Specifications.
-    
+
 
 .. container:: note
 
     onboarding and must follow the VES Event Listener Specification and VES
     Event Registration Specification which contain the format and content
     required.
-    
+
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
 
     The VNF Provider **MUST** provide documentation regarding any dependency
     (e.g. affinity, anti-affinity) the VNF has on other VNFs and resources.
-    
+
 
 .. container:: note
 
     The VNF or PNF Documentation Package **MUST** describe the
     VNF or PNF Functional Capabilities that are utilized to operationalize the
     VNF or PNF and compose complex services.
-    
+
 
 .. container:: note
 
     a description of parameters that can be monitored for the VNF or PNF
     and event records (status, fault, flow, session, call, control
     plane, etc.) generated by the VNF or PNF after instantiation.
-    
+
 
 .. container:: note
 
     (e.g., NETCONF APIs) which includes a description of configurable
     parameters for the VNF or PNF and whether the parameters can be configured
     after VNF or PNF instantiation.
-    
+
 
 .. container:: note
 
 
     The VNF or PNF package **MUST** provide :ref:`VES Event Registration <ves_event_registration_3_2>`
     for all VES events provided by that VNF or PNF.
-    
+
 
 .. container:: note
 
 
     The VNF Documentation Package **MUST** contain a list of the files within the VNF
     package that are static during the VNF's runtime.
-    
+
 
 .. container:: note
 
     application services. This document describes the externally exposed
     functional inputs and outputs for the VNF or PNF, including interface
     format and protocols supported.
-    
+
 
 .. container:: note
 
     Management APIs, which must include information and tools for
     ONAP to monitor the health of the VNF or PNF (conditions that require
     healing and/or scaling responses).
-    
+
 
 .. container:: note
 
     The VNF or PNF Documentation Package **MUST** include a
     description of runtime lifecycle events and related actions (e.g.,
     control responses, tests) which can be performed for the VNF or PNF.
-    
+
 
 .. container:: note
 
     uniquely identify the resource for a given VNF provider. The identification
     data must include: an identifier for the VNF, the name of the VNF as was
     given by the VNF provider, VNF description, VNF provider, and version.
-    
+
 
 Requirements Removed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
 
     The xNF provider **MUST** include a Manifest File that
     contains a list of all the components in the xNF package.
-    
+
 
 VNF On-boarding and package management > Testing
 ------------------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     or systems that connect to the VNF system under test. This component is
     necessary only if the existing testing environment does not have the
     necessary simulators.
-    
+
 
 .. container:: note
 
 
     The VNF Documentation Package **MUST** describe
     the tests that were conducted by the VNF provider and the test results.
-    
+
 
 .. container:: note
 
 
     The VNF provider **MUST** provide their testing scripts to
     support testing.
-    
+
 
 VNF Resiliency > Monitoring & Dashboard
 ---------------------------------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     The VNF **MUST** provide a method of metrics gathering for each
     layer's performance to identify variances in the allocations so
     they can be addressed.
-    
+
 
 {network-role}
 --------------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     network **MUST** be assigned a unique ``{network-role}``
     in the context of the VNF for use in the VNF's Heat Orchestration
     Template.
-    
+
 
 .. container:: note
 
     use in the VNF's Heat Orchestration Template.  The ``{network-role}``
     is used in the VNF's Heat Orchestration Template resource IDs
     and resource property parameter names.
-    
+
 
 .. container:: note
 
     * **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
-    
+
 
 {vm-type}
 ---------
 
 Requirements Changed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
         - Each VM in the "class" **MUST** have the identical number of
           ports connecting to the identical networks and requiring the identical
           IP address configuration.
-    
+
 
 Requirements Removed
 ~~~~~~~~~~~~~~~~~~~~
-    
+
 
 .. container:: note
 
     A VNF's Heat Orchestration Template's Resource that is associated with a
     unique Virtual Machine type **MUST** include ``{vm-type}`` as part of the
     resource ID.
-    
+
 
 .. container:: note
 
      ``vf_module_name``, ``vm_role``,
      ``vf_module_index``, ``environment_context``, ``workload_context``)
      **MUST NOT** be prefixed with a common ``{vm-type}`` identifier.
-    
+