summaryrefslogtreecommitdiffstats
path: root/docs/changes-by-section-guilin.rst
diff options
context:
space:
mode:
Diffstat (limited to 'docs/changes-by-section-guilin.rst')
-rw-r--r--docs/changes-by-section-guilin.rst1581
1 files changed, 1581 insertions, 0 deletions
diff --git a/docs/changes-by-section-guilin.rst b/docs/changes-by-section-guilin.rst
new file mode 100644
index 0000000..cc08426
--- /dev/null
+++ b/docs/changes-by-section-guilin.rst
@@ -0,0 +1,1581 @@
+.. Modifications Copyright © 2017-2018 AT&T Intellectual Property.
+
+.. Licensed under the Creative Commons License, Attribution 4.0 Intl.
+ (the "License"); you may not use this documentation except in compliance
+ with the License. You may obtain a copy of the License at
+
+.. https://creativecommons.org/licenses/by/4.0/
+
+.. Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+
+Requirement Changes Introduced in Guilin
+----------------------------------------
+
+This document summarizes the requirement changes by section that were
+introduced between the Frankfurt release and
+Guilin release. Click on the requirement number to
+navigate to the
+
+.. contents::
+ :depth: 2
+
+Summary of Changes
+^^^^^^^^^^^^^^^^^^
+
+* **Requirements Added:** 30
+* **Requirements Changed:** 51
+* **Requirements Removed:** 37
+
+
+Configuration Management > Ansible Standards and Capabilities > VNF or PNF Configuration via Ansible Requirements > Ansible Client Requirements
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+Requirements Changed
+~~~~~~~~~~~~~~~~~~~~
+
+
+.. container:: note
+
+ :need:`R-67124`
+
+ The VNF or PNF Provider's Ansible playbooks **MUST** be designed to run
+ 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
+
+ :need:`R-94567`
+
+ The VNF or PNF Provider's Ansible playbooks **MUST** be 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
+
+ :need:`R-24482`
+
+ The VNF or PNF Provider's Ansible playbooks **MUST** be designed to run
+ 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
+
+ :need:`R-82018`
+
+ The VNF or PNF **MUST** load the Ansible Server SSH public key onto VNF or
+ PNF VM(s) /root/.ssh/authorized_keys as part of instantiation. Alternative,
+ is for Ansible Server SSH public key to be loaded onto VNF or PNF
+ under /home/<Mechanized user ID>/.ssh/authorized_keys as part of
+ instantiation, when a Mechanized user ID is created during instantiation,
+ and Configure and all playbooks are designed to use a mechanized user ID
+ only for authentication (never using root authentication during Configure
+ playbook run). This will allow the Ansible Server to authenticate to
+ perform post-instantiation configuration without manual intervention and
+ without requiring specific VNF or PNF login IDs and passwords.
+
+ *CAUTION*: For VNFs or PNFs configured using Ansible, to eliminate the need
+ for manual steps, post-instantiation and pre-configuration, to
+ 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
+
+ :need:`R-92866`
+
+ The VNF or PNF Provider **MUST** include as part of post-instantiation
+ configuration done by Ansible Playbooks the removal/update of the SSH
+ public key from ``/root/.ssh/authorized_keys``, and update of SSH keys
+ loaded through 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).
+
+
+Configuration Management > Ansible Standards and Capabilities > VNF or PNF Configuration via Ansible Requirements > Ansible Playbook Requirements
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+Requirements Added
+~~~~~~~~~~~~~~~~~~
+
+
+.. container:: note
+
+ :need:`R-195620`
+
+ The VNF or PNF Provider's Ansible playbooks **SHOULD** compare the version(s)
+ of Ansible that the VNF Provider developed and tested against to the
+ ``ansible_version.full`` value during playbook execution, and issue a
+ ``WARNING`` message if the operator version is not one of the tested
+ versions.
+
+
+.. container:: note
+
+ :need:`R-444446`
+
+ The VNF or PNF Provider's Ansible playbooks **SHOULD** issue log messages
+ in the same format as Ansible's default messages:
+ ``[<Log Level>]: <message>``
+
+ Example:
+
+ ``[WARNING]: Ansible version 2.9.3 does not match a known,
+ tested version: 2.8.1, 2.8.2``
+
+
+.. container:: note
+
+ :need:`R-918136`
+
+ The VNF or PNF Provider's Ansible playbooks **MUST NOT** fail due to
+ a mismatched version check as specified in R-918136. The warning message
+ should be issued, and the playbook execution should continue as normal.
+
+
+Requirements Changed
+~~~~~~~~~~~~~~~~~~~~
+
+
+.. container:: note
+
+ :need:`R-49911`
+
+ The VNF or PNF Provider **MUST** assign a new point release to the updated
+ Ansible playbook set. The functionality of a new playbook set must be
+ tested before it is deployed to the production.
+
+
+.. container:: note
+
+ :need:`R-24189`
+
+ The VNF or PNF Provider **MUST** deliver a new set of Ansible playbooks that
+ includes all updated and unchanged playbooks for any new revision to an
+ existing set of playbooks.
+
+
+.. container:: note
+
+ :need:`R-53245`
+
+ The VNF or PNF Provider's Ansible playbooks **MUST NOT** require
+ passwords or secrets to be passed in clear text in the command line or
+ Rest API request to run the playbook.
+
+
+.. container:: note
+
+ :need:`R-51442`
+
+ The VNF or PNF Provider's Ansible playbooks **SHOULD** be 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).
+
+ **Note**: In case rollback at the playbook level is not supported or
+ possible, the VNF or PNF provider shall provide alternative rollback
+ mechanism (e.g., for a small VNF or PNF the rollback mechanism may rely
+ 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
+
+ :need:`R-49396`
+
+ The VNF or PNF Provider's Ansible playbooks **MUST** support each APPC/SDN-C
+ VNF or PNF action 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.
+
+
+.. container:: note
+
+ :need:`R-50252`
+
+ The VNF or PNF Provider's Ansible playbooks **MUST** write to a response
+ file in JSON format that will be retrieved and made available by the
+ Ansible Server if, as part of a VNF or PNF action (e.g., audit), a playbook
+ is required to return any VNF or PNF information/response. The text files
+ must be written in the main playbook home directory, in JSON format. The
+ JSON file must be created for the VNF or PNF with the name '<VNF or PNF name>_results.txt'. All playbook
+ output results, for all VNF VMS or PNF Server/Blades, to be provided as a
+ response to the request, must be written to this response file.
+
+
+.. container:: note
+
+ :need:`R-58301`
+
+ The VNF or PNF Provider's Ansible playbooks **SHOULD NOT** make requests to
+ Cloud resources e.g. Openstack (nova, neutron, glance, heat, etc.);
+ therefore, there is no use for Cloud specific variables like Openstack
+ UUIDs in Ansible Playbook related artifacts.
+
+ **Rationale**: Flows that require interactions with Cloud services e.g.
+ Openstack shall rely on workflows run by an Orchestrator
+ (Change Management) or other capability (such as a control loop or
+ Operations GUI) outside Ansible Server which can be executed by a
+ APPC/SDN-C. There are policies, as part of Control Loop
+ 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
+
+ :need:`R-09209`
+
+ The VNF or PNF Provider's Ansible playbooks **MUST** store any playbook
+ configuration data that requires encryption (passwords, secrets, etc.) in
+ a JSON (.json), YAML (.yaml|.yml) or INI (.ini) file, which will be placed
+ in ``<VNF type>/<Version>/ansible/vars`` directory.
+
+
+.. container:: note
+
+ :need:`R-46823`
+
+ The VNF or PNF Provider's Ansible playbooks **MUST** store passwords and
+ other attributes that must remain secret in JSON, YAML or INI with
+ differentiated names when passwords and secrets vary from environment to
+ environment. Example, name must include <Mechanized user ID>_...json or
+ <Mechanized user ID>_...xml when labs and production use different passwords
+ and/or secrets. The <Mechanized user ID> is discovered from the environment
+ ``/etc/ansible/ansible.cfg`` where the playbook runs.
+
+
+.. container:: note
+
+ :need:`R-48698`
+
+ The VNF or PNF Provider's Ansible playbooks **MUST** utilize information
+ from key value pairs that will be provided by the Ansible Server as
+ ``extra-vars`` during invocation to execute the desired VNF or PNF action.
+ The "extra-vars" attribute-value pairs are passed to the Ansible Server by
+ an APPC/SDN-C as part of the Rest API request. If the playbook requires
+ files, they must also be supplied using the methodology detailed in the
+ Ansible Server API, unless they are bundled with playbooks, example,
+ generic templates. Any files containing instance specific info
+ (attribute-value pairs), not obtainable
+ from any ONAP inventory databases or other sources, referenced and used as
+ 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
+
+ :need:`R-83092`
+
+ The VNF or PNF Provider's Ansible playbooks **MUST** load passwords
+ and other attributes that must remain secret from JSON, YAML or INI files
+ that can be encrypted/decrypted using Ansible Vault capabilities.
+
+
+.. container:: note
+
+ :need:`R-39003`
+
+ The VNF or PNF Provider's Ansible playbooks **MUST** store passwords and
+ other attributes that must remain secret in JSON, YAML or INI files that
+ can be encrypted/decrypted using Ansible Vault capabilities.
+
+
+.. container:: note
+
+ :need:`R-43253`
+
+ The VNF or PNF Provider's Ansible playbooks **MUST** be designed to allow
+ Ansible Server to infer failure or success based on the "PLAY_RECAP"
+ capability.
+
+ **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
+
+ :need:`R-78640`
+
+ The VNF or PNF Provider's Ansible playbooks **SHOULD** provide a single
+ YAML or JSON file with all the passwords and secrets to reduce the number
+ of files to be decrypted/encrypted before on-boarding into the central
+ repository.
+
+
+.. container:: note
+
+ :need:`R-20988`
+
+ The VNF or PNF Provider's Ansible playbooks **MUST** not log or
+ display passwords and other attributes that must remain secret when
+ running playbook in debug mode.
+
+ NOTE: Use ``no_log: True``
+
+
+.. container:: note
+
+ :need:`R-42333`
+
+ The VNF or PNF Provider's Ansible playbooks that target a subset of VMs (or
+ servers/blades) part of a VNF (or PNF) instance **MUST** be designed to use
+ the VNF or PNF inventory host file and to use a parameter named
+ ``target_vm_list`` to provide the subset of VMs in the VNF instance
+ specifically targeted by the playbook.
+
+ NOTE: Example of such playbooks would be playbooks used to configure VMs
+ added to a VNF instance as part of a scale-out/up or scale-in/down
+ operation. Such playbook is expected to also need to perform
+ configuration/reconfiguration tasks part of the base VNF instance build.
+
+
+.. container:: note
+
+ :need:`R-43353`
+
+ The VNF or PNF Provider's Ansible playbooks **MUST** return control only
+ after all tasks performed by playbook are fully complete, signaling that the
+ 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
+
+ :need:`R-88786`
+
+ The VNF or PNF Provider's Ansible playbooks **SHOULD** place the passwords
+ and secrets to be edited at the top of the single YAML or JSON file with
+ all the secrets, and the (default) ones that are to remain unchanged '
+ towards the bottom, with commentary separating them.
+
+
+.. container:: note
+
+ :need:`R-33280`
+
+ The VNF or PNF Provider's Ansible playbooks **MUST NOT** contain instance
+ specific values that can not be provided by a parameter to the playbook.
+
+
+.. container:: note
+
+ :need:`R-56988`
+
+ The VNF or PNF Provider's Ansible playbooks **MUST** load any configuration
+ data that requires encryption (passwords, secrets, etc.) in a JSON (.json),
+ YAML (.yaml|.yml) or INI (.ini) file, from the
+ ``<VNF type>/<Version>/ansible/vars`` directory.
+
+
+.. container:: note
+
+ :need:`R-02651`
+
+ The VNF or PNF Provider's Ansible playbooks **SHOULD** use available backup
+ capabilities to save a copy of configuration files before implementing
+ changes to support operations such as backing out of software upgrades,
+ configuration changes or other work as this will help backing out of
+ configuration changes when needed.
+
+
+Requirements Removed
+~~~~~~~~~~~~~~~~~~~~
+
+
+.. container:: note
+
+ R-40293
+
+ The VNF or PNF **MUST** make available playbooks that conform
+ to the ONAP requirement.
+
+
+.. container:: note
+
+ R-49751
+
+ The VNF or PNF **MUST** support Ansible playbooks that are compatible with
+ Ansible version 2.6 or later.
+
+
+Monitoring & Management > Bulk Performance Measurement
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+Requirements Changed
+~~~~~~~~~~~~~~~~~~~~
+
+
+.. container:: note
+
+ :need:`R-75943`
+
+ The VNF or PNF **SHOULD** support the data schema defined in 3GPP TS 32.435 or 3GPP TS 28.532, when
+ supporting the event-driven bulk transfer of monitoring data.
+
+
+Monitoring & Management > Monitoring & Management Requirements > Addressing and Delivery Protocol
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+Requirements Removed
+~~~~~~~~~~~~~~~~~~~~
+
+
+.. container:: note
+
+ R-01033
+
+ The VNF or PNF **MAY** use another option which is expected to include SFTP
+ for asynchronous bulk files, such as bulk files that contain large volumes
+ 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
+
+ R-03070
+
+ The VNF or PNF **MUST**, by ONAP Policy, provide the ONAP addresses
+ as data destinations for each VNF or PNF, and may be changed by Policy while
+ 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
+
+ R-08312
+
+ The VNF or PNF **MAY** use another option which is expected to include REST
+ delivery of binary encoded data sets.
+
+
+.. container:: note
+
+ R-63229
+
+ 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).
+
+
+.. container:: note
+
+ R-79412
+
+ The VNF or PNF **MAY** use another option which is expected to include TCP
+ 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
+
+ R-81777
+
+ The VNF or PNF **MUST** be configured with initial address(es) to use
+ at deployment time. Subsequently, address(es) may be changed through
+ 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
+
+ R-84879
+
+ The VNF or PNF **MUST** have the capability of maintaining a primary
+ and backup DNS name (URL) for connecting to ONAP collectors, with the
+ ability to switch between addresses based on conditions defined by policy
+ such as time-outs, and buffering to store messages until they can be
+ delivered. At its discretion, the service provider may choose to populate
+ 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
+
+ R-88482
+
+ 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.
+
+
+Monitoring & Management > Monitoring & Management Requirements > Asynchronous and Synchronous Data Delivery
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+Requirements Removed
+~~~~~~~~~~~~~~~~~~~~
+
+
+.. container:: note
+
+ R-11240
+
+ 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
+
+ R-34660
+
+ The VNF or PNF **MUST** use the RESTCONF/NETCONF framework used by
+ the ONAP configuration subsystem for synchronous communication.
+
+
+.. container:: note
+
+ R-42140
+
+ The VNF or PNF **MUST** respond to data requests from ONAP as soon
+ as those requests are received, as a synchronous response.
+
+
+.. container:: note
+
+ R-43327
+
+ The VNF or PNF **SHOULD** use `Modeling JSON text with YANG
+ <https://tools.ietf.org/html/rfc7951>`_, If YANG models need to be
+ 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.
+
+
+.. container:: note
+
+ R-46290
+
+ 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
+
+ R-70266
+
+ The VNF or PNF **MUST** respond to an ONAP request to deliver the
+ current data for any of the record types defined in
+ `Event Records - Data Structure Description`_ by returning the requested
+ record, populated with the current field values. (Currently the defined
+ 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
+
+ R-73285
+
+ The VNF or PNF **MUST** must encode, address and deliver the data
+ as described in the previous paragraphs.
+
+
+.. container:: note
+
+ R-86586
+
+ The VNF or PNF **MUST** use the YANG configuration models and RESTCONF
+ [RFC8040] (https://tools.ietf.org/html/rfc8040).
+
+
+Monitoring & Management > Monitoring & Management Requirements > Google Protocol Buffers (GPB)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+Requirements Removed
+~~~~~~~~~~~~~~~~~~~~
+
+
+.. container:: note
+
+ R-257367
+
+ The VNF or PNF, when leveraging Google Protocol Buffers for events, **MUST**
+ serialize the events using native Google Protocol Buffers (GPB) according
+ to the following guidelines:
+
+ * The keys are represented as integers pointing to the system resources
+ for the VNF or PNF being monitored
+ * The values correspond to integers or strings that identify the
+ operational state of the VNF resource, such a statistics counters and
+ 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
+
+ R-978752
+
+ The VNF or PNF providers **MUST** provide the Service Provider the following
+ artifacts to support the delivery of high-volume VNF or PNF telemetry to
+ DCAE via GPB over TLS/TCP:
+
+ * A valid VES Event .proto definition file, to be used validate and
+ decode an event
+ * A valid high volume measurement .proto definition file, to be used for
+ 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 Removed
+~~~~~~~~~~~~~~~~~~~~
+
+
+.. container:: note
+
+ R-19624
+
+ The VNF or PNF, when leveraging JSON for events, **MUST** encode and serialize
+ content delivered to ONAP using JSON (RFC 7159) plain text format.
+ 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 Removed
+~~~~~~~~~~~~~~~~~~~~
+
+
+.. container:: note
+
+ R-146931
+
+ The VNF or PNF **MUST** report exactly one Measurement event per period
+ per source name.
+
+
+.. container:: note
+
+ R-98191
+
+ The VNF or PNF **MUST** vary the frequency that asynchronous data
+ is delivered based on the content and how data may be aggregated or
+ grouped together.
+
+ Note:
+
+ - For example, alarms and alerts are expected to be delivered as
+ soon as they appear. In contrast, other content, such as performance
+ measurements, KPIs or reported network signaling may have various
+ ways of packaging and delivering content. Some content should be
+ streamed immediately; or content may be monitored over a time
+ interval, then packaged as collection of records and delivered
+ as block; or data may be collected until a package of a certain
+ size has been collected; or content may be summarized statistically
+ over a time interval, or computed as a KPI, with the summary or KPI
+ being delivered.
+ - We expect the reporting frequency to be configurable depending on
+ the virtual network functions needs for management. For example,
+ Service Provider may choose to vary the frequency of collection
+ between normal and trouble-shooting scenarios.
+ - Decisions about the frequency of data reporting will affect
+ the size of delivered data sets, recommended delivery method,
+ and how the data will be interpreted by ONAP. These considerations
+ should not affect deserialization and decoding of the data, which
+ will be guided by the accompanying JSON schema or GPB definition
+ files.
+
+
+Monitoring & Management > Monitoring & Management Requirements > Security
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+Requirements Removed
+~~~~~~~~~~~~~~~~~~~~
+
+
+.. container:: note
+
+ R-01427
+
+ If the VNF or PNF is using Basic Authentication, then the VNF or
+ PNF **MUST** support the provisioning of security and authentication
+ parameters (HTTP username and password) in order to be able to
+ authenticate with DCAE VES Event Listener.
+
+ Note: The configuration management and provisioning software
+ are specific to a vendor architecture.
+
+
+.. container:: note
+
+ R-42366
+
+ The VNF or PNF **MUST** support secure connections and transports such as
+ Transport Layer Security (TLS) protocol
+ [`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
+
+ R-43387
+
+ If the VNF or PNF is using Certificate Authentication, the
+ VNF or PNF **MUST** support mutual TLS authentication and the Subject
+ Name in the end-entity certificate MUST be used according to
+ `RFC5280 <https://tools.ietf.org/html/rfc5280>`_.
+
+ Note: In mutual TLS authentication, the client (VNF or PNF) must
+ authenticate the server (DCAE) certificate and must provide its own
+ X.509v3 end-entity certificate to the server for authentication.
+
+
+.. container:: note
+
+ R-44290
+
+ 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
+
+ R-47597
+
+ The VNF or PNF **MUST** carry data in motion only over secure connections.
+
+
+.. container:: note
+
+ R-55634
+
+ If VNF or PNF is using Basic Authentication, then the VNF or PNF
+ **MUST** be in compliance with
+ `RFC7617 <https://tools.ietf.org/html/rfc7617>`_ for authenticating HTTPS
+ connections to the DCAE VES Event Listener.
+
+
+.. container:: note
+
+ R-894004
+
+ If the VNF or PNF is using Basic Authentication, then when the VNF
+ or PNF sets up a HTTPS connection to the DCAE VES Event Listener,
+ the VNF or PNF **MUST** provide a username and password to the
+ DCAE VES Event Listener in the Authorization header and the VNF
+ or PNF MUST support one-way TLS authentication.
+
+ Note: In one-way TLS authentication, the client (VNF or PNF)
+ must authentication the server (DCAE) certificate.
+
+
+Monitoring & Management > Monitoring & Management Requirements > VNF telemetry via standardized interface
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+Requirements Removed
+~~~~~~~~~~~~~~~~~~~~
+
+
+.. container:: note
+
+ R-821473
+
+ The VNF or PNF MUST produce heartbeat indicators consisting of events containing
+ the common event header only per the VES Listener Specification.
+
+
+Monitoring & Management > Monitoring and Fault Protocol Selection
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+Requirements Added
+~~~~~~~~~~~~~~~~~~
+
+
+.. container:: note
+
+ :need:`R-209104`
+
+ The VNF or PNF producing VES syslog events **SHOULD** restrict these
+ events to those that convey significant errors or warnings needed to support
+ the operation or troubleshooting of the VNF or PNF. It is expected the
+ volume of such events would be lower (e.g. less than 2000 per day) than
+ more detailed events produced in the course of normal operations.
+
+
+.. container:: note
+
+ :need:`R-554966`
+
+ The VNF or PNF **MUST** report performance metrics using
+ :ref:`Virtual Function Event Streaming (VES) <ves_monitoring_requirements>`
+ or :ref:`bulk_performance_measurement`.
+
+
+.. container:: note
+
+ :need:`R-63105`
+
+ The VNF or PNF **MAY** produce telemetry data using the
+ :doc:`RESTConf Collector <dcae:sections/services/restconf/index>`, but this
+ requires additional coordination with the operator to appropriately
+ map the data internally to a VES-like structure used within ONAP. If this
+ option is needed, then the VNF or PNF Provider must coordinate with with the
+ Operator for the data to be successfully collected and processed by DCAE.
+
+
+.. container:: note
+
+ :need:`R-69111`
+
+ The VNF or PNF **MUST** report application logs using either
+ :ref:`Virtual Function Event Streaming (VES) <ves_monitoring_requirements>`
+ or Syslog in compliance with
+ `RFC 5424 <https://tools.ietf.org/html/rfc5424>`__ .
+
+
+.. container:: note
+
+ :need:`R-82909`
+
+ The VNF or PNF **MUST** report faults and alarms using either
+ :ref:`Virtual Function Event Streaming (VES) <ves_monitoring_requirements>`
+ or :ref:`SNMP <snmp_monitoring_requirements>`. (NOTE: See relevant sections
+ for more detailed requirements)
+
+
+.. container:: note
+
+ :need:`R-857511`
+
+ VNF or PNF Provider **MUST** have agreement with the Service Provider before
+ utilizing the :doc:`HV-VES option <dcae:sections/services/ves-hv/index>`
+ for monitoring as this option does not fully integrate with the ONAP's DCAE
+ event processing capabilities.
+
+
+.. container:: note
+
+ :need:`R-935717`
+
+ The VNF or PNF **MUST** report heartbeats using
+ :ref:`Virtual Function Event Streaming (VES) <ves_monitoring_requirements>`.
+
+
+Requirements Changed
+~~~~~~~~~~~~~~~~~~~~
+
+
+.. container:: note
+
+ :need:`R-697654`
+
+ The VNF or PNF **MAY** leverage ONAP's High Volume VNF Event Streaming
+ (HV-VES) when there is a need to deliver large volumes of real-time
+ performance management metrics. See
+ :doc:`HV-VES collector <dcae:sections/services/ves-hv/index>`
+ service details for more information.
+
+
+.. container:: note
+
+ :need:`R-332680`
+
+ The VNF or PNF producing VES events **SHOULD** deliver syslog messages
+ that meet the criteria in R-209104 to the VES Event Listener using the
+ ``syslog`` VES domain.
+
+
+.. container:: note
+
+ :need:`R-908291`
+
+ The VNF or PNF **MAY** leverage a bulk VNF or PNF telemetry transmission
+ mechanism in instances where other transmission
+ methods are not practical or advisable.
+
+ NOTE: For additional information and use cases for the Bulk Telemetry
+ Transmission Mechanism, please refer to
+ the :ref:`bulk_performance_measurement` requirements and the
+ `5G - Bulk PM ONAP Development <https://wiki.onap.org/display/DW/5G+-+Bulk+PM>`__
+ Wiki page.
+
+
+Monitoring & Management > SNMP Monitoring Requirements
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+Requirements Added
+~~~~~~~~~~~~~~~~~~
+
+
+.. container:: note
+
+ :need:`R-233922`
+
+ If the VNF or PNF is using SNMP, then the VNF or PNF Provider **SHOULD**
+ provide examples of all SNMP alarms.
+
+
+.. container:: note
+
+ :need:`R-261501`
+
+ If the VNF or PNF is using SNMP, then the VNF or PNF Provider **MUST**
+ provide a Management Information Base (MIB) file that uniquely identifies
+ and describes all SNMP events exposed by the network function.
+
+
+Monitoring & Management > Transports and Protocols Supporting Resource Interfaces
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+Requirements Removed
+~~~~~~~~~~~~~~~~~~~~
+
+
+.. container:: note
+
+ R-798933
+
+ The VNF or PNF **SHOULD** deliver event records that fall into the event domains
+ supported by VES.
+
+
+.. container:: note
+
+ R-821839
+
+ The VNF or PNF **MUST** deliver event records to ONAP using the common
+ transport mechanisms and protocols defined in this specification.
+
+
+.. container:: note
+
+ R-932071
+
+ 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 > VNF or PNF Telemetry using VES/JSON Model
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+Requirements Removed
+~~~~~~~~~~~~~~~~~~~~
+
+
+.. container:: note
+
+ R-659655
+
+ The VNF or PNF **SHOULD** leverage the JSON-driven model, as depicted in Figure 2,
+ for data delivery unless there are specific performance or operational
+ concerns agreed upon by the Service Provider that would warrant using an
+ alternate model.
+
+
+Monitoring & Management > Virtual Function Event Streaming (VES) Client Requirements > Buffering and Redelivery
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+Requirements Added
+~~~~~~~~~~~~~~~~~~
+
+
+.. container:: note
+
+ :need:`R-103464`
+
+ A VNF or PNF producing VES events that is buffering events due to an
+ unavailable VES Event Listener **MAY** leverage to ``publishEventBatch``
+ operation to redeliver buffered events. Please note this can only be
+ used when all buffered events belong to the same domain due to the
+ restrictions in place for the operation.
+
+
+.. container:: note
+
+ :need:`R-346137`
+
+ A VNF or PNF producing VES events that is buffering events per R-658596
+ **MUST** store in-scope events even when the maximum capacity of the
+ buffer (defined in R-636251) has been reached. To make room for new events
+ in this situation, hte oldest event in the buffer shall be removed
+ as necessary. (i.e. First In First Out)
+
+
+.. container:: note
+
+ :need:`R-379523`
+
+ A VNF or PNF producing VES events that is buffering events due to an
+ unavailable VES Event Listener **MUST** redeliver all buffered events
+ according to the following rules when the VNF or PNF detects the VES Event
+ Listener has become available:
+
+ * Deliver all previously buffered events before sending new events
+ * Deliver buffered events in the order they were received
+
+
+.. container:: note
+
+ :need:`R-498679`
+
+ A VNF or PNF producing VES events **MAY** discard buffered events older
+ than a maximum retention period, not less than 1 hour, even if the event
+ was never successfully delivered to the event listener. While discarding
+ based on this retention period is supported for backwards compatibility, it
+ is recommended to retain events until the maximum buffer size is reached per
+ R-346137 as that will maximize the number of events delivered.
+
+
+.. container:: note
+
+ :need:`R-636251`
+
+ A VNF or PNF producing VES events **MUST** size the event buffer
+ referenced in R-658596 such that it can buffer a minimum of 1 hours of
+ events under nominal load.
+
+
+.. container:: note
+
+ :need:`R-658596`
+
+ A VNF or PNF producing VES events **MUST** buffer events that meet the
+ following criteria if the VES Event Listener is unreachable or the request
+ encounters a timeout.
+
+ * Faults with eventSeverity of ``MINOR``, ``MAJOR``, ``NORMAL``, or
+ ``CRITICAL``
+ * Syslog with syslogSev of ``Emergency``, ``Alert``, ``Critical``,
+ ``Error``, or ``Warning``
+ * All measurement events
+
+
+.. container:: note
+
+ :need:`R-818859`
+
+ The VNF or PNF producing VES events **MUST** not allow an unavailable or
+ timing out VES Event Listener to impact the performance, stability, or
+ correct execution of network function.
+
+
+Monitoring & Management > Virtual Function Event Streaming (VES) Client Requirements > Configuration Requirements
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+Requirements Added
+~~~~~~~~~~~~~~~~~~
+
+
+.. container:: note
+
+ :need:`R-460012`
+
+ The VNF or PNF producing VES events **MUST** allow the configuration of
+ the attributes defined in Table 1 and utilize the provided default value
+ (where applicable) when the configuration value is not provided by the
+ Service Provider.
+
+
+.. container:: note
+
+ :need:`R-940591`
+
+ A VNF or PNF producing VES events **SHOULD** use the recommended parameter
+ name for the configurable value from Table 1.
+
+
+Monitoring & Management > Virtual Function Event Streaming (VES) Client Requirements > Configuration Requirements > VES Listener Endpoint and DNS Resolution
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+Requirements Added
+~~~~~~~~~~~~~~~~~~
+
+
+.. container:: note
+
+ :need:`R-130645`
+
+ The VNF or PNF **MUST** respect the Time To Live provided by the DNS for
+ the VES Event Listener FQDN.
+
+
+.. container:: note
+
+ :need:`R-70492`
+
+ The VNF or PNF **MUST** support DNS resolution of the VES Listener Endpoint
+ if a Fully Qualified Domain Name (FQDN) is provided.
+
+
+Monitoring & Management > Virtual Function Event Streaming (VES) Client Requirements > Event Definition and Registration
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+Requirements Changed
+~~~~~~~~~~~~~~~~~~~~
+
+
+.. container:: note
+
+ :need:`R-120182`
+
+ A VNF or PNF Provider utilizing VES **MUST** indicate specific conditions
+ that may arise, and 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>`.
+
+ **NOTE:** The Service Provider may override VNF or PNF provider Event
+ Registrations using the ONAP SDC Design Studio to finalizes Service
+ Provider engineering rules for the processing of the VNF or PNF events.
+ These changes may modify any of the following:
+
+ * Threshold levels
+ * Specified actions related to conditions
+
+
+.. container:: note
+
+ :need:`R-520802`
+
+ If the VNF or PNF is using VES, then the VNF or PNF Provider **MUST** provide
+ a YAML file formatted in adherence with the
+ :ref:`VES Event Registration specification <ves_event_registration_3_2>`
+ that defines the following information for each event produced by the VNF:
+
+ * ``eventName``
+ * Required fields
+ * Optional fields
+ * Any special handling to be performed for that event
+
+
+Monitoring & Management > Virtual Function Event Streaming (VES) Client Requirements > Event Delivery Requirements
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+Requirements Added
+~~~~~~~~~~~~~~~~~~
+
+
+.. container:: note
+
+ :need:`R-176945`
+
+ The VNF or PNF producing VES events **SHOULD NOT** send syslog events to the
+ VES Event Listener during debug mode, but rather store syslog events locally
+ for access or possible file transfer.
+
+
+.. container:: note
+
+ :need:`R-655209`
+
+ The VNF or PNF producing VES events **MUST** respect the configured
+ VES Timeout Value when delivering VES events, and abort any call where
+ the VES Event Listener does not successfully acknowledge the delivery of
+ event(s) within the Timeout Value. These failed transactions should be
+ buffered and retried in accordance with the
+ :ref:`ves_buffering_requirements` Requirements.
+
+
+Requirements Changed
+~~~~~~~~~~~~~~~~~~~~
+
+
+.. container:: note
+
+ :need:`R-06924`
+
+ The VNF or PNF producing VES events **MUST** deliver VES events as it
+ becomes available or according to the configured measurement interval.
+
+
+Monitoring & Management > Virtual Function Event Streaming (VES) Client Requirements > Event Formatting and Usage
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+Requirements Added
+~~~~~~~~~~~~~~~~~~
+
+
+.. container:: note
+
+ :need:`R-408814`
+
+ The VNF or a PNF producing VES stndDefined domain events to report
+ standards-organization defined events to ONAP, **MUST** set the
+ event.stndDefinedNamespace property. By default, ONAP ships with support
+ for the following:
+
+ * 3GPP-Provisioning
+ * 3GPP-Heartbeat
+ * 3GPP-FaultSupervision
+ * 3GPP-PerformanceAssurance
+
+ Another namespace, outside of the list provided, needs to registered in ONAP in coordination
+ with the operator before it can be used.
+
+
+.. container:: note
+
+ :need:`R-408815`
+
+ If the VNF or PNF producing VES stndDefined domain events provides
+ the event.stndDefinedFields.schemaReference then it **MUST** set its value
+ to the publicUrl value in DCAE's VES Collector `etc/externalRepo/schema-map.json <https://github.com/onap/dcaegen2-collectors-ves/blob/guilin/etc/externalRepo/schema-map.json/>`_
+ that describes the data being sent in event.stndDefinedFields.data.
+
+
+.. container:: note
+
+ :need:`R-408816`
+
+ If the VNF or PNF producing VES stndDefined domain events provides
+ the event.stndDefinedFields.schemaReference then it **MUST** only pass events
+ that conform to schema references previously registered with DCAE otherwise
+ the event will be rejected. By default, ONAP ships with support for schemas
+ found in DCAE's VES Collector `etc/externalRepo/schema-map.json <https://github.com/onap/dcaegen2-collectors-ves/blob/guilin/etc/externalRepo/schema-map.json/>`_.
+
+
+.. container:: note
+
+ :need:`R-408817`
+
+ The VNF or PNF Provider producing stndDefined events **MUST** coordinate with
+ the operator, willing to validate stndDefined events, to configure DCAE to
+ accept any new event schema prior to sending those events or the events
+ will be rejected.
+
+
+.. container:: note
+
+ :need:`R-408818`
+
+ If the VNF or PNF producing VES stndDefined domain events provides
+ the event.stndDefinedFields.schemaReference then it **MUST** set the
+ event.stndDefined.schemaReference property to an exact structure,
+ from supported schemaReference, describing the notification within
+ an openAPI specification, using JSON Pointer as URI fragment e.g.
+ “https://forge.3gpp.org/.../faultMnS.yaml#/components/schemas/notifyNewAlarm"
+
+
+Requirements Changed
+~~~~~~~~~~~~~~~~~~~~
+
+
+.. container:: note
+
+ :need:`R-408813`
+
+ A VNF or PNF producing VES events **MUST** pass all information it is
+ able to collect even if the information field is identified as optional.
+ However, if the data cannot be collected, then optional fields can be
+ omitted.
+
+
+.. container:: note
+
+ :need:`R-570134`
+
+ The VES events produced by the VNF or PNF **MUST** be compliant with the
+ common event formats defined in one of the following specifications:
+
+ * :ref:`VES Event Listener 5.4.1<ves_event_listener_5_4_1>`
+ * :ref:`VES Event Listener 7.1.1<ves_event_listener_7_1>`
+ * :ref:`VES Event Listener 7.2<ves_event_listener_7_2>`
+
+ The latest version (7.2) should be preferred. Earlier versions are
+ provided for backwards compatibility.
+
+
+.. container:: note
+
+ :need:`R-283988`
+
+ A VNF or PNF producing VES events **MUST NOT** send information through
+ extensible structures if the event specification has explicitly defined
+ fields for that information.
+
+
+.. container:: note
+
+ :need:`R-528866`
+
+ The VES events produced by the VNF or PNF **MUST** conform to the schema and
+ other formatting requirements specified in the relevant VES Event Listener
+ specification.
+
+
+.. container:: note
+
+ :need:`R-470963`
+
+ A VNF or PNF producing VES events **SHOULD** leverage camel case to
+ separate words and acronyms used as keys that will be sent through extensible
+ fields. When an acronym is used as the key, then only the first letter shall
+ be capitalized.
+
+
+Monitoring & Management > Virtual Function Event Streaming (VES) Client Requirements > Security
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+Requirements Changed
+~~~~~~~~~~~~~~~~~~~~
+
+
+.. container:: note
+
+ :need:`R-33878`
+
+ The VNF or PNF **MUST** utilize one of the authentication methods
+ prescribed by the relevant VES Event Listener specification.
+
+
+ONAP Heat VNF Modularity
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+Requirements Changed
+~~~~~~~~~~~~~~~~~~~~
+
+
+.. container:: note
+
+ :need:`R-610030`
+
+ A VNF's Heat Orchestration Template's Incremental Module **MUST**
+ declare
+
+ - one or more ``OS::Nova::Server`` resources OR
+ - one or more ``OS::Cinder::Volume`` resources.
+
+ An ``OS::Nova::Server``
+ **MAY** be created in the incremental module or a nested yaml file invoked
+ by the incremental module.
+
+ An ``OS::Cinder::Volume``
+ **MAY** be created in the incremental module or a nested yaml file invoked
+ by the incremental module.
+
+
+PNF Plug and Play > PNF Plug and Play
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+Requirements Changed
+~~~~~~~~~~~~~~~~~~~~
+
+
+.. container:: note
+
+ :need:`R-106240`
+
+ A PNF MUST support the pnfRegistration VES event which is required to integrate with ONAP’s PNF Plug and Play capabilities.
+
+
+TOSCA PNF Descriptor > Capability Types
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+Requirements Changed
+~~~~~~~~~~~~~~~~~~~~
+
+
+.. container:: note
+
+ :need:`R-177937`
+
+ The PNFD provided by a PNF vendor **MUST** comply with the following
+ Capabilities Types as specified in ETSI NFV-SOL001 standard:
+
+ - tosca.capabilities.nfv.VirtualLinkable
+
+
+TOSCA PNF Descriptor > Policy Types
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+Requirements Changed
+~~~~~~~~~~~~~~~~~~~~
+
+
+.. container:: note
+
+ :need:`R-596064`
+
+ The PNFD provided by a PNF vendor **MUST** comply with the following Policy
+ Types as specified in ETSI NFV-SOL001 standard:
+
+ - tosca.policies.nfv.SecurityGroupRule
+
+
+TOSCA PNF Descriptor > Relationship Types
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+Requirements Changed
+~~~~~~~~~~~~~~~~~~~~
+
+
+.. container:: note
+
+ :need:`R-64064`
+
+ The PNFD provided by a PNF vendor **MUST** comply with the following
+ Relationship Types as specified in ETSI NFV-SOL001 standard:
+
+ - tosca.relations.nfv.VirtualLinksTo
+
+
+VNF and PNF On-boarding and package management > Licensing Requirements
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+Requirements Changed
+~~~~~~~~~~~~~~~~~~~~
+
+
+.. container:: note
+
+ :need:`R-85991`
+
+ If the VNF or PNF requires a license then the VNF or PNF provider **MUST** provide a universal license key
+ per VNF or PNF to be used as needed by services (i.e., not tied to a VM
+ instance) as the recommended solution. The VNF or PNF provider may provide
+ pools of Unique VNF or PNF License Keys, where there is a unique key for
+ each VNF or PNF instance as an alternate solution. In all cases, licensing issues should
+ be resolved without interrupting in-service VNFs or PNFs.
+
+
+.. container:: note
+
+ :need:`R-44569`
+
+ If ONAP licensing management solution is used, then 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
+
+ :need:`R-13613`
+
+ The VNF **MUST** provide clear measurements for licensing
+ purposes if needed to allow automated scale up/down by the management system.
+
+
+.. container:: note
+
+ :need:`R-47849`
+
+ If ONAP licensing management solution is used, then the VNF or PNF provider
+ **MUST** support the metadata about licenses (and their applicable
+ entitlements) as defined in the
+ `ONAP License Management Information Model <https://docs.onap.org/projects/onap-modeling-modelspec/en/latest/ONAP%20Model%20Spec/im/License/LicenseModel.html>`__,
+ and any license keys required to authorize use of the VNF or PNF software.
+ This metadata will be used to facilitate onboarding the VNF or PNF into the
+ ONAP environment and automating processes for putting the licenses into use
+ and managing the full lifecycle of the licenses.
+
+
+.. container:: note
+
+ :need:`R-85653`
+
+ If ONAP licensing management solution is used, then 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.
+
+
+Requirements Removed
+~~~~~~~~~~~~~~~~~~~~
+
+
+.. container:: note
+
+ R-44125
+
+ 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
+
+ R-97293
+
+ The VNF or PNF provider **MUST NOT** require audits
+ of Service Provider's business.
+
+
+VNF and PNF On-boarding and package management > Resource Description
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+Requirements Changed
+~~~~~~~~~~~~~~~~~~~~
+
+
+.. container:: note
+
+ :need:`R-22346`
+
+ The VNF or PNF Provider **MUST** provide :ref:`VES Event Registration <ves_event_registration_3_2>`
+ for all VES events provided by that VNF or PNF.
+
+
+VNF or PNF CSAR Package > VNF or PNF Package Contents
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+Requirements Changed
+~~~~~~~~~~~~~~~~~~~~
+
+
+.. container:: note
+
+ :need:`R-40820`
+
+ The VNF CSAR PACKAGE **MUST** enumerate all of the open source
+ licenses their VNF(s) incorporate. CSAR License directory as per ETSI
+ SOL004.
+
+ for example ROOT\\Licenses\\ **License_term.txt**
+