summaryrefslogtreecommitdiffstats
path: root/docs/Chapter7/Configuration-Management.rst
diff options
context:
space:
mode:
authorHagop Bozawglanian <hagop.bozawglanian@att.com>2019-04-17 04:30:50 +0000
committerHagop Bozawglanian <hagop.bozawglanian@att.com>2019-04-17 04:30:50 +0000
commita43ef5023419467adb704ea6c2f0b2b488fd0e38 (patch)
tree1d560974abea26373294a1b1e19cd9c17054df06 /docs/Chapter7/Configuration-Management.rst
parenta0c6ca75f1ce52556a89ae21d8491c64107af636 (diff)
VNFRQTS - xNF to VNF or PNF
Change-Id: I4a6a445a6c713c4be53be8cd79e158a1a10bc975 Issue-ID: VNFRQTS-571 Signed-off-by: Hagop Bozawglanian <hagop.bozawglanian@att.com>
Diffstat (limited to 'docs/Chapter7/Configuration-Management.rst')
-rwxr-xr-xdocs/Chapter7/Configuration-Management.rst738
1 files changed, 369 insertions, 369 deletions
diff --git a/docs/Chapter7/Configuration-Management.rst b/docs/Chapter7/Configuration-Management.rst
index 1e2ec72..e7e36bf 100755
--- a/docs/Chapter7/Configuration-Management.rst
+++ b/docs/Chapter7/Configuration-Management.rst
@@ -17,32 +17,32 @@
Configuration Management
------------------------
-Controller Interactions With xNF
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Controller Interactions With VNF or PNF
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
APPC/SDN-C expose a northbound API to clients (such as SO) in order for
-the clients to initiate an activity (aka command) on a xNF. APPC/SDN-C
-interact with xNFs through Network and Application Adapters to perform
+the clients to initiate an activity (aka command) on a VNF or PNF. APPC/SDN-C
+interact with VNFs or PNFs through Network and Application Adapters to perform
configuration and other lifecycle management activities within NFV environment.
The standardized models, protocols and mechanisms by which network functions
are configured are equally applicable to VNFs and PNFs.
This section describes the list of commands that should be supported
-by the xNF. The following sections describe the standard protocols
+by the VNF or PNF. The following sections describe the standard protocols
that are supported (NETCONF, Chef, Ansible, and REST).
-The commands below are expected to be supported on all xNF's, unless
-The commands below are expected to be supported on all xNF's, unless
+The commands below are expected to be supported on all VNF or PNF's, unless
+The commands below are expected to be supported on all VNF or PNF's, unless
noted otherwise, either directly (via the NETCONF or REST interface)
or indirectly (via a Chef Cookbook or Ansible server).
**Note that there are additional commands offered to northbound clients that
are not shown below, as these commands either act internally on APPC/SDN-C
itself or depend upon network cloud components for implementation (thus, these
-actions do not put any special requirement on the xNF provider).**
+actions do not put any special requirement on the VNF or PNF provider).**
The commands allow for parametric data to be passed from APPC/SDN-C
-to the xNF or Ansible/Chef server in the request. The format of the
+to the VNF or PNF or Ansible/Chef server in the request. The format of the
parameter data can be either xml (for NETCONF) or JSON (for Ansible,
Chef, or REST).
@@ -50,38 +50,38 @@ Configuration Commands
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
``Configure``: The APPC/SDN-C client is requesting that a post-instantiation
-configuration be applied to the target xNF. After the Configure
-action is completed, the xNF instance should be ready for service.
+configuration be applied to the target VNF or PNF. After the Configure
+action is completed, the VNF or PNF instance should be ready for service.
Note that customer specific configurations may need to be applied using
the ConfigModify action. This command requires exclusive access rights of
-the xNF.
+the VNF or PNF.
``ConfigModify``: The APPC client is requesting a configuration
-update to a subset of the total configuration parameters of an xNF or to
+update to a subset of the total configuration parameters of an VNF or PNF or to
apply customer specific configurations. The configuration update is
-typically done while the xNF is in service and should not disrupt traffic.
-This command requires exclusive access rights of the xNF.
+typically done while the VNF or PNF is in service and should not disrupt traffic.
+This command requires exclusive access rights of the VNF or PNF.
``ConfigBackup``: The APPC client is requesting a backup of the
-configuration parameters where the parameters are stored on the xNF.
+configuration parameters where the parameters are stored on the VNF or PNF.
This command is typically requested as part of an orchestration flow
for scenarios such as a software upgrade. The ConfigBackup is typically
-done while the xNF is not in service (i.e., in a maintenance state).
-When the ConfigBackup command is executed, the current xNF configuration
+done while the VNF or PNF is not in service (i.e., in a maintenance state).
+When the ConfigBackup command is executed, the current VNF or PNF configuration
parameters are saved in storage that is preserved (if there is an existing
set of backed up parameters, they are overwritten). This command requires
-exclusive access rights of the xNF.
+exclusive access rights of the VNF or PNF.
``ConfigRestore``: The APPC client is requesting a restore action of
-the configuration parameters to the xNF that were saved by ConfigBackup
+the configuration parameters to the VNF or PNF that were saved by ConfigBackup
command. This command is typically requested as part of an orchestration
flow for scenarios such as a software upgrade where the software upgrade
-may have failed and the xNF needs to be rolled back to the prior configuration.
-When the ConfigRestore command is executed, the xNF configuration parameters
-which were backed to persistent preserved storage are applied to the xNF
+may have failed and the VNF or PNF needs to be rolled back to the prior configuration.
+When the ConfigRestore command is executed, the VNF or PNF configuration parameters
+which were backed to persistent preserved storage are applied to the VNF or PNF
(replacing existing parameters). The ConfigRestore is typically done while
-the xNF is not in service (i.e., in a maintenance state). This command
-requires exclusive access rights of the xNF.
+the VNF or PNF is not in service (i.e., in a maintenance state). This command
+requires exclusive access rights of the VNF or PNF.
``ConfigScaleOut``: The APPC/SDN-C client is requesting that a configuration
be applied after the VNF instance has been scaled out (i.e., one or more
@@ -97,51 +97,51 @@ configuration update) is audited against the running configuration on the VNF
.. req::
:id: R-20741
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
:updated: casablanca
- The xNF **MUST** support APPC/SDN-C ``Configure`` command.
+ The VNF or PNF **MUST** support APPC/SDN-C ``Configure`` command.
.. req::
:id: R-19366
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
:updated: casablanca
- The xNF **MUST** support APPC ``ConfigModify`` command.
+ The VNF or PNF **MUST** support APPC ``ConfigModify`` command.
.. req::
:id: R-32981
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
:updated: casablanca
- The xNF **MUST** support APPC ``ConfigBackup`` command.
+ The VNF or PNF **MUST** support APPC ``ConfigBackup`` command.
.. req::
:id: R-48247
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
:updated: casablanca
- The xNF **MUST** support APPC ``ConfigRestore`` command.
+ The VNF or PNF **MUST** support APPC ``ConfigRestore`` command.
.. req::
:id: R-94084
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
:updated: casablanca
- The xNF **MUST** support APPC/SDN-C ``ConfigScaleOut`` command.
+ The VNF or PNF **MUST** support APPC/SDN-C ``ConfigScaleOut`` command.
.. req::
:id: R-56385
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
:updated: casablanca
- The xNF **MUST** support APPC ``Audit`` command.
+ The VNF or PNF **MUST** support APPC ``Audit`` command.
Lifecycle Management Related Commands
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -164,147 +164,147 @@ command may need to follow traffic distribution changes (assigning weight 0
or very low weight to VNF instance). The VNF application remains in an active
state.
-``QuiesceTraffic`` The APPC/SDN-C client is requesting the xNF gracefully
+``QuiesceTraffic`` The APPC/SDN-C client is requesting the VNF or PNF gracefully
stop traffic (aka block and drain traffic). The method for quiescing traffic
-is specific to the xNF architecture. The action is completed when all
-(in-flight transactions) traffic has stopped. The xNF remains in an active
-state where the xNF is able to process traffic (initiated using the
+is specific to the VNF or PNF architecture. The action is completed when all
+(in-flight transactions) traffic has stopped. The VNF or PNF remains in an active
+state where the VNF or PNF is able to process traffic (initiated using the
ResumeTraffic action).
-``ResumeTraffic``: The APPC/SDN-C client is requesting the xNF resume
-processing traffic. The method to resume traffic is specific to the xNF
+``ResumeTraffic``: The APPC/SDN-C client is requesting the VNF or PNF resume
+processing traffic. The method to resume traffic is specific to the VNF or PNF
architecture.
``StopApplication``: The APPC client is requesting that the application
-running on the xNF is stopped gracefully (i.e., without traffic loss).
+running on the VNF or PNF is stopped gracefully (i.e., without traffic loss).
This is equivalent to quiescing the traffic and then stopping the application
processes. The processes can be restarted using the StartApplication command.
``StartApplication``: The APPC client is requesting that the application
-running on the xNF is started. Get ready to process traffic. Traffic processing
+running on the VNF or PNF is started. Get ready to process traffic. Traffic processing
can be resumed using the ResumeTraffic command.
**The following commands are needed to support software upgrades, in-place or
-other type of software upgrade. The xNF instance may be removed from service
+other type of software upgrade. The VNF or PNF instance may be removed from service
for the upgrade.**
``UpgradePrecheck``: The APPC/SDN-C client is requesting a confirmation that
-the xNF can (and needs to) be upgraded to a specific software version
+the VNF or PNF can (and needs to) be upgraded to a specific software version
(specified in the request). Checking software installed and running on
-the xNF matches software version, intended to be upgraded, is one of the
+the VNF or PNF matches software version, intended to be upgraded, is one of the
recommended checks.
``UpgradeSoftware``: The APPC/SDN-C client is requesting that a (in-place)
-software upgrade be performed on the xNF. The software to be applied is
+software upgrade be performed on the VNF or PNF. The software to be applied is
pre-loaded to a specified location.
``UpgradePostCheck``: The APPC/SDN-C client is requesting a confirmation that
-the xNF software upgrade has been completed successfully (xNF upgraded to
-the new software version). Checking software installed and running on the xNF
+the VNF or PNF software upgrade has been completed successfully (VNF or PNF upgraded to
+the new software version). Checking software installed and running on the VNF or PNF
matches software version, of the newly upgraded software, is one of the
recommended checks.
-``UpgradeBackup``: The APPC/SDN-C client is requesting that the xNF is backed
+``UpgradeBackup``: The APPC/SDN-C client is requesting that the VNF or PNF is backed
up prior to the UpgradeSoftware.
-``UpgradeBackOut``: The APPC/SDN-C client is requesting that the xNF upgrade
+``UpgradeBackOut``: The APPC/SDN-C client is requesting that the VNF or PNF upgrade
is backed out (in the event that the SoftwareUpgrade or UpgradePostCheck
failed).
.. req::
:id: R-328086
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
:introduced: casablanca
- The xNF **MUST**, if serving as a distribution point or anchor point for
+ 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.
.. req::
:id: R-12706
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
:updated: casablanca
- The xNF **MUST** support APPC/SDN-C ``QuiesceTraffic`` command.
+ The VNF or PNF **MUST** support APPC/SDN-C ``QuiesceTraffic`` command.
.. req::
:id: R-07251
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
:updated: casablanca
- The xNF **MUST** support APPC/SDN-C ``ResumeTraffic`` command.
+ The VNF or PNF **MUST** support APPC/SDN-C ``ResumeTraffic`` command.
.. req::
:id: R-83146
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
:updated: casablanca
- The xNF **MUST** support APPC ``StopApplication`` command.
+ The VNF or PNF **MUST** support APPC ``StopApplication`` command.
.. req::
:id: R-82811
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
:updated: casablanca
- The xNF **MUST** support APPC ``StartApplication`` command.
+ The VNF or PNF **MUST** support APPC ``StartApplication`` command.
.. req::
:id: R-19922
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
:updated: casablanca
- The xNF **MUST** support APPC/SDN-C ``UpgradePrecheck`` command.
+ The VNF or PNF **MUST** support APPC/SDN-C ``UpgradePrecheck`` command.
.. req::
:id: R-49466
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
:updated: casablanca
- The xNF **MUST** support APPC/SDN-C ``UpgradeSoftware`` command.
+ The VNF or PNF **MUST** support APPC/SDN-C ``UpgradeSoftware`` command.
.. req::
:id: R-45856
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
:updated: casablanca
- The xNF **MUST** support APPC/SDN-C ``UpgradePostCheck`` command.
+ The VNF or PNF **MUST** support APPC/SDN-C ``UpgradePostCheck`` command.
.. req::
:id: R-97343
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
:updated: casablanca
- The xNF **MUST** support APPC/SDN-C ``UpgradeBackup`` command.
+ The VNF or PNF **MUST** support APPC/SDN-C ``UpgradeBackup`` command.
.. req::
:id: R-65641
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
:updated: casablanca
- The xNF **MUST** support APPC/SDN-C ``UpgradeBackOut`` command.
+ The VNF or PNF **MUST** support APPC/SDN-C ``UpgradeBackOut`` command.
HealthCheck and Failure Related Commands
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
``HealthCheck`` The APPC/SDN-C client is requesting a health check over the
-entire scope of the xNF. The xNF must be 100% healthy, ready to take requests
-and provide services, with all xNF required capabilities ready to provide
+entire scope of the VNF or PNF. The VNF or PNF must be 100% healthy, ready to take requests
+and provide services, with all VNF or PNF required capabilities ready to provide
services and with all active and standby resources fully ready with no open
MINOR, MAJOR or CRITICAL alarms. This is expected to be the default in the
event that no parameter is passed to the Healthcheck playbook, cookbook, etc.
-Some xNFs may support and desire to run partial healthchecks and receive a
+Some VNFs or PNFs may support and desire to run partial healthchecks and receive a
successful response when partial health check completes without errors.
The parameter name used by HealthCheck playbook to request non-default
partial health check is healthcheck_type. Example of health check types
@@ -321,24 +321,24 @@ automated fashion.
.. req::
:id: R-41430
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
:updated: casablanca
- The xNF **MUST** support APPC/SDN-C ``HealthCheck`` command.
+ The VNF or PNF **MUST** support APPC/SDN-C ``HealthCheck`` command.
Notes On Command Support Using APPC/SDN-C Southbound Protocols
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
APPC/SDN-C are designed to support a standard set of protocols in
-order to communicate with the xNF instance. The supported protocols are
+order to communicate with the VNF or PNF instance. The supported protocols are
NETCONF, Ansible, Chef, and REST.
-NETCONF and REST require the xNF to implement a server which supports the RPC
+NETCONF and REST require the VNF or PNF to implement a server which supports the RPC
or REST calls.
Ansible and Chef require the use of a Ansible or Chef server which communicates
-with the APPC/SDN-C (northbound) and the xNF VM's (southbound).
+with the APPC/SDN-C (northbound) and the VNF or PNF VM's (southbound).
The vendor must select which protocol to support for the commands listed above.
Notes:
@@ -360,12 +360,12 @@ NETCONF Standards and Capabilities
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
APPC/SDN-C and their Adapters utilize device YANG model and
-NETCONF APIs to make the required changes in the xNF state and
-configuration. The xNF providers must provide the Device YANG model and
+NETCONF APIs to make the required changes in the VNF or PNF state and
+configuration. The VNF or PNF providers must provide the Device YANG model and
NETCONF server supporting NETCONF APIs to comply with target ONAP and
industry standards.
-xNF Configuration via NETCONF Requirements
+VNF or PNF Configuration via NETCONF Requirements
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Configuration Management
@@ -374,18 +374,18 @@ Configuration Management
.. req::
:id: R-88026
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
- The xNF **MUST** include a NETCONF server enabling
+ The VNF or PNF **MUST** include a NETCONF server enabling
runtime configuration and lifecycle management capabilities.
.. req::
:id: R-95950
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
- The xNF **MUST** provide a NETCONF interface fully defined
+ The VNF or PNF **MUST** provide a NETCONF interface fully defined
by supplied YANG models for the embedded NETCONF server.
NETCONF Server Requirements
@@ -394,163 +394,163 @@ NETCONF Server Requirements
.. req::
:id: R-73468
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
- The xNF **MUST** allow the NETCONF server connection
+ The VNF or PNF **MUST** allow the NETCONF server connection
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.
.. req::
:id: R-90007
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
:updated: casablanca
- The xNF **MUST** implement the protocol operation:
+ The VNF or PNF **MUST** implement the protocol operation:
``close-session()`` - Gracefully close the current session.
.. req::
:id: R-70496
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
:updated: casablanca
- The xNF **MUST** implement the protocol operation:
+ The VNF or PNF **MUST** implement the protocol operation:
``commit(confirmed, confirm-timeout)`` - Commit candidate
configuration data store to the running configuration.
.. req::
:id: R-18733
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
:updated: casablanca
- The xNF **MUST** implement the protocol operation:
+ The VNF or PNF **MUST** implement the protocol operation:
``discard-changes()`` - Revert the candidate configuration
data store to the running configuration.
.. req::
:id: R-44281
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
:updated: casablanca
- The xNF **MUST** implement the protocol operation:
+ The VNF or PNF **MUST** implement the protocol operation:
``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.
.. req::
:id: R-60106
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
- The xNF **MUST** implement the protocol operation:
+ The VNF or PNF **MUST** implement the protocol operation:
``get(filter)`` - Retrieve (a filtered subset of) the running
configuration and device state information. This should include
- the list of xNF supported schemas.
+ the list of VNF or PNF supported schemas.
.. req::
:id: R-29488
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
:updated: casablanca
- The xNF **MUST** implement the protocol operation:
+ 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.
.. req::
:id: R-11235
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
:updated: casablanca
- The xNF **MUST** implement the protocol operation:
+ The VNF or PNF **MUST** implement the protocol operation:
``kill-session(session``- Force the termination of **session**.
.. req::
:id: R-02597
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
:updated: casablanca
- The xNF **MUST** implement the protocol operation:
+ The VNF or PNF **MUST** implement the protocol operation:
``lock(target)`` - Lock the configuration data store target.
.. req::
:id: R-96554
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
:updated: casablanca
- The xNF **MUST** implement the protocol operation:
+ The VNF or PNF **MUST** implement the protocol operation:
``unlock(target)`` - Unlock the configuration data store target.
.. req::
:id: R-29324
- :target: XNF
+ :target: VNF or PNF
:keyword: SHOULD
:updated: casablanca
- The xNF **SHOULD** implement the protocol operation:
+ 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.
.. req::
:id: R-88031
- :target: XNF
+ :target: VNF or PNF
:keyword: SHOULD
:updated: casablanca
- The xNF **SHOULD** implement the protocol operation:
+ The VNF or PNF **SHOULD** implement the protocol operation:
``delete-config(target)`` - Delete the named configuration
data store target.
.. req::
:id: R-97529
- :target: XNF
+ :target: VNF or PNF
:keyword: SHOULD
- The xNF **SHOULD** implement the protocol operation:
+ The VNF or PNF **SHOULD** implement the protocol operation:
``get-schema(identifier, version, format)`` - Retrieve the YANG schema.
.. req::
:id: R-62468
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
- The xNF **MUST** allow all configuration data to be
+ 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.
.. req::
:id: R-01382
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
- The xNF **MUST** allow the entire configuration of the xNF to be
+ 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.
.. req::
:id: R-28756
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
- The xNF **MUST** support ``:partial-lock`` and
+ The VNF or PNF **MUST** support ``:partial-lock`` and
``: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.
.. req::
:id: R-83873
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
- The xNF **MUST** support ``:rollback-on-error`` value for
+ The VNF or PNF **MUST** support ``:rollback-on-error`` value for
the <error-option> parameter to the <edit-config> operation. If any
error occurs during the requested edit operation, then the target
database (usually the running configuration) will be left unaffected.
@@ -559,19 +559,19 @@ NETCONF Server Requirements
.. req::
:id: R-68990
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
- The xNF **MUST** support the ``:startup`` capability. It
+ 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.
.. req::
:id: R-68200
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
- The xNF **MUST** support the ``:url`` value to specify
+ The VNF or PNF **MUST** support the ``:url`` value to specify
protocol operation source and target parameters. The capability URI
for this feature will indicate which schemes (e.g., file, https, sftp)
that the server supports within a particular URL value. The 'file'
@@ -580,19 +580,19 @@ NETCONF Server Requirements
.. req::
:id: R-20353
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
- The xNF **MUST** implement both ``:candidate`` and
+ 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.
.. req::
:id: R-11499
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
- The xNF **MUST** fully support the XPath 1.0 specification
+ The VNF or PNF **MUST** fully support the XPath 1.0 specification
for filtered retrieval of configuration and other database contents.
The 'type' attribute within the <filter> parameter for <get> and
<get-config> operations may be set to 'xpath'. The 'select' attribute
@@ -603,33 +603,33 @@ NETCONF Server Requirements
.. req::
:id: R-83790
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
- The xNF **MUST** implement the ``:validate`` capability.
+ The VNF or PNF **MUST** implement the ``:validate`` capability.
.. req::
:id: R-49145
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
- The xNF **MUST** implement ``:confirmed-commit`` If
+ The VNF or PNF **MUST** implement ``:confirmed-commit`` If
``:candidate`` is supported.
.. req::
:id: R-58358
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
- The xNF **MUST** implement the ``:with-defaults`` capability
+ The VNF or PNF **MUST** implement the ``:with-defaults`` capability
[RFC6243].
.. req::
:id: R-59610
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
- The xNF **MUST** implement the data model discovery and
+ The VNF or PNF **MUST** implement the data model discovery and
download as defined in [RFC6022].
.. req::
@@ -654,40 +654,40 @@ NETCONF Server Requirements
.. req::
:id: R-10716
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
- The xNF **MUST** support parallel and simultaneous
+ The VNF or PNF **MUST** support parallel and simultaneous
configuration of separate objects within itself.
.. req::
:id: R-29495
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
- The xNF **MUST** support locking if a common object is
+ The VNF or PNF **MUST** support locking if a common object is
being manipulated by two simultaneous NETCONF configuration operations
- on the same xNF within the context of the same writable running data
+ on the same VNF or PNF within the context of the same writable running data
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).
.. req::
:id: R-53015
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
- The xNF **MUST** apply locking based on the sequence of
+ 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.
.. req::
:id: R-02616
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
- The xNF **MUST** permit locking at the finest granularity
- if a xNF needs to lock an object for configuration to avoid blocking
+ The VNF or PNF **MUST** permit locking at the finest granularity
+ if a VNF or PNF needs to lock an object for configuration to avoid blocking
simultaneous configuration operations on unrelated objects (e.g., BGP
configuration should not be locked out if an interface is being
configured or entire Interface configuration should not be locked out
@@ -695,96 +695,96 @@ NETCONF Server Requirements
.. req::
:id: R-41829
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
- The xNF **MUST** be able to specify the granularity of the
+ The VNF or PNF **MUST** be able to specify the granularity of the
lock via a restricted or full XPath expression.
.. req::
:id: R-66793
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
- The xNF **MUST** guarantee the xNF configuration integrity
+ The VNF or PNF **MUST** guarantee the VNF or PNF configuration integrity
for all simultaneous configuration operations (e.g., if a change is
attempted to the BUM filter rate from multiple interfaces on the same
- EVC, then they need to be sequenced in the xNF without locking either
+ EVC, then they need to be sequenced in the VNF or PNF without locking either
configuration method out).
.. req::
:id: R-54190
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
- The xNF **MUST** release locks to prevent permanent lock-outs
+ 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).
.. req::
:id: R-03465
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
- The xNF **MUST** release locks to prevent permanent lock-outs
+ The VNF or PNF **MUST** release locks to prevent permanent lock-outs
when the corresponding <partial-unlock> operation succeeds.
.. req::
:id: R-63935
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
- The xNF **MUST** release locks to prevent permanent lock-outs
+ The VNF or PNF **MUST** release locks to prevent permanent lock-outs
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).
.. req::
:id: R-10173
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
- The xNF **MUST** allow another NETCONF session to be able to
+ 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.
.. req::
:id: R-88899
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
- The xNF **MUST** support simultaneous <commit> operations
+ The VNF or PNF **MUST** support simultaneous <commit> operations
within the context of this locking requirements framework.
.. req::
:id: R-07545
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
- The xNF **MUST** support all operations, administration and
- management (OAM) functions available from the supplier for xNFs using
+ 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.
.. req::
:id: R-60656
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
- The xNF **MUST** support sub tree filtering.
+ The VNF or PNF **MUST** support sub tree filtering.
.. req::
:id: R-80898
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
- TThe xNF **MUST** support heartbeat via a <get> with null filter.
+ TThe VNF or PNF **MUST** support heartbeat via a <get> with null filter.
.. req::
:id: R-25238
:target: VNF
:keyword: MUST
- The xNF PACKAGE **MUST** validated YANG code using the open
+ The VNF or PNF PACKAGE **MUST** validated YANG code using the open
source pyang [#7.3.1]_ program using the following commands:
.. code-block:: text
@@ -793,18 +793,18 @@ NETCONF Server Requirements
.. req::
:id: R-63953
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
- The xNF **MUST** have the echo command return a zero value
+ The VNF or PNF **MUST** have the echo command return a zero value
otherwise the validation has failed.
.. req::
:id: R-26508
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
- The xNF **MUST** support a NETCONF server that can be mounted on
+ The VNF or PNF **MUST** support a NETCONF server that can be mounted on
OpenDaylight (client) and perform the operations of: modify, update,
change, rollback configurations using each configuration data element,
query each state (non-configuration) data element, execute each YANG
@@ -816,82 +816,82 @@ conform, and those where applicable, that suppliers need to use.
.. req::
:id: R-22700
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
- The xNF **MUST** conform its YANG model to RFC 6470,
+ The VNF or PNF **MUST** conform its YANG model to RFC 6470,
"NETCONF Base Notifications".
.. req::
:id: R-10353
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
- The xNF **MUST** conform its YANG model to RFC 6244,
+ The VNF or PNF **MUST** conform its YANG model to RFC 6244,
"An Architecture for Network Management Using NETCONF and YANG".
.. req::
:id: R-53317
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
- The xNF **MUST** conform its YANG model to RFC 6087,
+ The VNF or PNF **MUST** conform its YANG model to RFC 6087,
"Guidelines for Authors and Reviewers of YANG Data Model specification".
.. req::
:id: R-33955
- :target: XNF
+ :target: VNF or PNF
:keyword: SHOULD
- The xNF **SHOULD** conform its YANG model to RFC 6991,
+ The VNF or PNF **SHOULD** conform its YANG model to RFC 6991,
"Common YANG Data Types".
.. req::
:id: R-22946
- :target: XNF
+ :target: VNF or PNF
:keyword: SHOULD
- The xNF **SHOULD** conform its YANG model to RFC 6536,
+ The VNF or PNF **SHOULD** conform its YANG model to RFC 6536,
"NETCONF Access Control Model".
.. req::
:id: R-10129
- :target: XNF
+ :target: VNF or PNF
:keyword: SHOULD
- The xNF **SHOULD** conform its YANG model to RFC 7223,
+ The VNF or PNF **SHOULD** conform its YANG model to RFC 7223,
"A YANG Data Model for Interface Management".
.. req::
:id: R-12271
- :target: XNF
+ :target: VNF or PNF
:keyword: SHOULD
- The xNF **SHOULD** conform its YANG model to RFC 7223,
+ The VNF or PNF **SHOULD** conform its YANG model to RFC 7223,
"IANA Interface Type YANG Module".
.. req::
:id: R-49036
- :target: XNF
+ :target: VNF or PNF
:keyword: SHOULD
- The xNF **SHOULD** conform its YANG model to RFC 7277,
+ The VNF or PNF **SHOULD** conform its YANG model to RFC 7277,
"A YANG Data Model for IP Management".
.. req::
:id: R-87564
- :target: XNF
+ :target: VNF or PNF
:keyword: SHOULD
- The xNF **SHOULD** conform its YANG model to RFC 7317,
+ The VNF or PNF **SHOULD** conform its YANG model to RFC 7317,
"A YANG Data Model for System Management".
.. req::
:id: R-24269
- :target: XNF
+ :target: VNF or PNF
:keyword: SHOULD
- The xNF **SHOULD** conform its YANG model to RFC 7407,
+ 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.
@@ -901,50 +901,50 @@ NETCONF RFCs.
.. req::
:id: R-33946
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
- The xNF **MUST** conform to the NETCONF RFC 4741,
+ The VNF or PNF **MUST** conform to the NETCONF RFC 4741,
"NETCONF Configuration Protocol".
.. req::
:id: R-04158
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
- The xNF **MUST** conform to the NETCONF RFC 4742,
+ The VNF or PNF **MUST** conform to the NETCONF RFC 4742,
"Using the NETCONF Configuration Protocol over Secure Shell (SSH)".
.. req::
:id: R-13800
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
- The xNF **MUST** conform to the NETCONF RFC 5277,
+ The VNF or PNF **MUST** conform to the NETCONF RFC 5277,
"NETCONF Event Notification".
.. req::
:id: R-01334
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
- The xNF **MUST** conform to the NETCONF RFC 5717,
+ The VNF or PNF **MUST** conform to the NETCONF RFC 5717,
"Partial Lock Remote Procedure Call".
.. req::
:id: R-08134
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
- The xNF **MUST** conform to the NETCONF RFC 6241,
+ The VNF or PNF **MUST** conform to the NETCONF RFC 6241,
"NETCONF Configuration Protocol".
.. req::
:id: R-78282
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
- The xNF **MUST** conform to the NETCONF RFC 6242,
+ The VNF or PNF **MUST** conform to the NETCONF RFC 6242,
"Using the Network Configuration Protocol over Secure Shell".
.. req::
@@ -959,8 +959,8 @@ NETCONF RFCs.
.. _xnf_rest_apis:
-xNF REST APIs
-^^^^^^^^^^^^^^^
+VNF or PNF REST APIs
+^^^^^^^^^^^^^^^^^^^^
HealthCheck is a command for which no NETCONF support exists.
Therefore, this must be supported using a RESTful interface
@@ -971,27 +971,27 @@ Therefore, this must be supported using a RESTful interface
See section 7.3.1.4 for the definition of Full Healthcheck and Partial
Healthchecks.
-The xNF must provide a REST formatted GET RPCs to support HealthCheck
+The VNF or PNF must provide a REST formatted GET RPCs to support HealthCheck
queries via the GET method over HTTP(s).
The port number, url, and other authentication information is provided
-by the xNF provider.
+by the VNF or PNF provider.
REST APIs
~~~~~~~~~
.. req::
:id: R-31809
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
- The xNF **MUST** support the HealthCheck RPC. The HealthCheck
- RPC executes a xNF Provider-defined xNF HealthCheck over the scope of
- the entire xNF (e.g., if there are multiple VNFCs, then run a health check,
+ The VNF or PNF **MUST** support the HealthCheck RPC. The HealthCheck
+ RPC executes a VNF or PNF Provider-defined VNF or PNF HealthCheck over the scope of
+ the entire VNF or PNF (e.g., if there are multiple VNFCs, then run a health check,
as appropriate, for all VNFCs). It returns a 200 OK if the test completes.
A JSON object is returned indicating state (healthy, unhealthy), scope
identifier, time-stamp and one or more blocks containing info and fault
- information. If the xNF is unable to run the HealthCheck, return a
+ information. If the VNF or PNF is unable to run the HealthCheck, return a
standard http error code and message.
Examples of responses when HealthCheck runs and is able to provide a healthy
@@ -1023,23 +1023,23 @@ or unhealthy response:
Chef Standards and Capabilities
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-ONAP will support configuration of xNFs via Chef subject to the
+ONAP will support configuration of VNFs or PNFs via Chef subject to the
requirements and guidelines defined in this section.
The Chef configuration management mechanism follows a client-server
-model. It requires the presence of a Chef-Client on the xNF that will be
+model. It requires the presence of a Chef-Client on the VNF or PNF that will be
directly managed by a Chef Server. The Chef-client will register with
the appropriate Chef Server and are managed via 'cookbooks' and
configuration attributes loaded on the Chef Server which contain all
-necessary information to execute the appropriate actions on the xNF via
+necessary information to execute the appropriate actions on the VNF or PNF via
the Chef-client.
ONAP will utilize the open source Chef Server, invoke the documented
-Chef REST APIs to manage the xNF and requires the use of open source
-Chef-Client and Push Jobs Client on the xNF
+Chef REST APIs to manage the VNF or PNF and requires the use of open source
+Chef-Client and Push Jobs Client on the VNF or PNF
(https://downloads.chef.io/).
-xNF Configuration via Chef Requirements
+VNF or PNF Configuration via Chef Requirements
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Chef Client Requirements
@@ -1048,29 +1048,29 @@ Chef Client Requirements
.. req::
:id: R-79224
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
- The xNF **MUST** have the chef-client be preloaded with
+ 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.
.. req::
:id: R-72184
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
- The xNF **MUST** have routable FQDNs for all the endpoints
- (VMs) of a xNF that contain chef-clients which are used to register
- with the Chef Server. As part of invoking xNF actions, ONAP will
- trigger push jobs against FQDNs of endpoints for a xNF, if required.
+ The VNF or PNF **MUST** have routable FQDNs for all the endpoints
+ (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.
.. req::
:id: R-47068
- :target: XNF
+ :target: VNF or PNF
:keyword: MAY
- The xNF **MAY** expose a single endpoint that is
+ The VNF or PNF **MAY** expose a single endpoint that is
responsible for all functionality.
.. req::
@@ -1078,7 +1078,7 @@ Chef Client Requirements
:target: VNF
:keyword: MUST
- The xNF **MUST** be installed with Chef-Client >= 12.0 and Chef
+ The VNF or PNF **MUST** be installed with Chef-Client >= 12.0 and Chef
push jobs client >= 2.0.
Chef Roles/Requirements
@@ -1086,89 +1086,89 @@ Chef Roles/Requirements
.. req::
:id: R-27310
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
- The xNF Package **MUST** include all relevant Chef artifacts
- (roles/cookbooks/recipes) required to execute xNF actions requested by
+ 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.
.. req::
:id: R-26567
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
:updated: casablanca
- The xNF Package **MUST** include a run list of
- roles/cookbooks/recipes, for each supported xNF action, that will
- perform the desired xNF action in its entirety as specified by ONAP
- (see Section 7.c, APPC/SDN-C APIs and Behavior, for list of xNF
+ The VNF or PNF Package **MUST** include a run list of
+ roles/cookbooks/recipes, for each supported VNF or PNF action, that will
+ perform the desired VNF or PNF action in its entirety as specified by ONAP
+ (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.
.. req::
:id: R-98911
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST NOT
- The xNF **MUST NOT** use any instance specific parameters
- for the xNF in roles/cookbooks/recipes invoked for a xNF action.
+ 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.
.. req::
:id: R-37929
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
- The xNF **MUST** accept all necessary instance specific
- data from the environment or node object attributes for the xNF
- in roles/cookbooks/recipes invoked for a xNF action.
+ 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.
.. req::
:id: R-62170
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
- The xNF **MUST** over-ride any default values for
+ 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.
.. req::
:id: R-78116
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
- The xNF **MUST** update status on the Chef Server
+ The VNF or PNF **MUST** update status on the Chef Server
appropriately (e.g., via a fail or raise an exception) if the
chef-client run encounters any critical errors/failures when
- executing a xNF action.
+ executing a VNF or PNF action.
.. req::
:id: R-44013
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
- The xNF **MUST** populate an attribute, defined as node
+ The VNF or PNF **MUST** populate an attribute, defined as node
['PushJobOutput'] with the desired output on all nodes in the push job
- that execute chef-client run if the xNF action requires the output of a
+ 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).
.. req::
:id: R-30654
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
- The xNF Package **MUST** have appropriate cookbooks that are
+ The VNF or PNF Package **MUST** have appropriate cookbooks that are
designed to automatically 'rollback' to the original state in case of
- any errors for actions that change state of the xNF (e.g., configure).
+ any errors for actions that change state of the VNF or PNF (e.g., configure).
.. req::
:id: R-65755
- :target: XNF
+ :target: VNF or PNF
:keyword: SHOULD
- The xNF **SHOULD** support callback URLs to return information
+ The VNF or PNF **SHOULD** support callback URLs to return information
to ONAP upon completion of the chef-client run for any chef-client run
- associated with a xNF action.
+ associated with a VNF or PNF action.
- As part of the push job, ONAP will provide two parameters in the
environment of the push job JSON object:
@@ -1181,26 +1181,26 @@ Chef Roles/Requirements
.. req::
:id: R-15885
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
- The xNF **MUST** Upon completion of the chef-client run,
+ The VNF or PNF **MUST** Upon completion of the chef-client run,
POST back on the callback URL, a JSON object as described in Table
A2 if the chef-client run list includes a cookbook/recipe that is
callback capable. Failure to POST on the Callback Url should not be
considered a critical error. That is, if the chef-client successfully
- completes the xNF action, it should reflect this status on the Chef
+ completes the VNF or PNF action, it should reflect this status on the Chef
Server regardless of whether the Callback succeeded or not.
ONAP Chef API Usage
~~~~~~~~~~~~~~~~~~~
This section outlines the workflow that ONAP invokes when it receives an
-action request against a Chef managed xNF.
+action request against a Chef managed VNF or PNF.
-1. When ONAP receives a request for an action for a Chef Managed xNF, it
+1. When ONAP receives a request for an action for a Chef Managed VNF or PNF, it
retrieves the corresponding template (based on **action** and
- **xNF**) from its database and sets necessary values in the
+ **VNF or PNF**) from its database and sets necessary values in the
"Environment", "Node" and "NodeList" keys (if present) from either
the payload of the received action or internal data.
@@ -1251,18 +1251,18 @@ action request against a Chef managed xNF.
Ansible Standards and Capabilities
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-ONAP will support configuration of xNFs via Ansible subject to the
+ONAP will support configuration of VNFs or PNFs via Ansible subject to the
requirements and guidelines defined in this section.
-Ansible allows agentless management of xNFs/VMs/VNFCs via execution
+Ansible allows agentless management of VNFs or PNFs/VMs/VNFCs via execution
of 'playbooks' over ssh. The 'playbooks' are a structured set of
tasks which contain all the necessary resources and execution capabilities
to take the necessary action on one or more target VMs (and/or VNFCs)
of the VNF. ONAP will utilize the framework of an Ansible Server that
-will host all Ansible artifacts and run playbooks to manage xNFs that support
+will host all Ansible artifacts and run playbooks to manage VNFs or PNFs that support
Ansible.
-xNF Configuration via Ansible Requirements
+VNF or PNF Configuration via Ansible Requirements
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Ansible Client Requirements
@@ -1271,52 +1271,52 @@ Ansible Client Requirements
.. req::
:id: R-32217
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
:updated: casablanca
- The xNF **MUST** have routable management IP addresses or FQDNs that
+ The VNF or PNF **MUST** have routable management IP addresses or FQDNs that
are reachable via the Ansible Server for the endpoints (VMs) of a
- xNF that playbooks will target. ONAP will initiate requests to the
+ 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]_.
.. req::
:id: R-54373
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
- The xNF **MUST** have Python >= 2.6 on the endpoint VM(s)
- of a xNF on which an Ansible playbook will be executed.
+ 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.
.. req::
:id: R-35401
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
:updated: casablanca
- The xNF **MUST** support SSH and allow SSH access by the
+ 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.
.. req::
:id: R-82018
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
:updated: casablanca
- The xNF **MUST** load the Ansible Server SSH public key onto xNF
+ 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 xNF VM(s) under
+ is for Ansible Server SSH public key to be loaded onto VNF or PNF VM(s) 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 xNF login IDs and passwords.
+ requiring specific VNF or PNF login IDs and passwords.
- *CAUTION*: For xNFs configured using Ansible, to eliminate the need
+ *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
@@ -1324,11 +1324,11 @@ Ansible Client Requirements
.. req::
:id: R-92866
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
:updated: casablanca
- The xNF **MUST** include as part of post-instantiation configuration
+ The VNF or PNF **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
@@ -1337,87 +1337,87 @@ Ansible Client Requirements
.. req::
:id: R-97345
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
:introduced: casablanca
- The xNF **MUST** permit authentication, using root account, only right
+ The VNF or PNF **MUST** permit authentication, using root account, only right
after instantiation and until post-instantiation configuration is
completed.
.. req::
:id: R-97451
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
:introduced: casablanca
- The xNF **MUST** provide the ability to remove root access once
+ The VNF or PNF **MUST** provide the ability to remove root access once
post-instantiation configuration (Configure) is completed.
.. req::
:id: R-91745
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
:updated: casablanca
- The xNF **MUST** update the Ansible Server and other entities
+ The VNF or PNF **MUST** update the Ansible Server and other entities
storing and using the SSH keys for authentication when the SSH
keys used by Ansible are regenerated/updated.
**Note**: Ansible Server itself may be used to upload new SSH public
- keys onto supported xNFs.
+ keys onto supported VNFs or PNFs.
.. req::
:id: R-73459
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
:introduced: casablanca
- The xNF **MUST** provide the ability to include a "from=" clause in SSH
+ 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 xNF VM authentication.
+ Server cluster to use for VNF or PNF VM authentication.
.. req::
:id: R-45197
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
:introduced: casablanca
- The xNF **MUST** define the "from=" clause to provide the list of IP
+ The VNF or PNF **MUST** define the "from=" clause to provide the list of IP
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.
.. req::
:id: R-94567
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
:introduced: casablanca
- The xNF **MUST** provide Ansible playbooks that are designed to run using
+ 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/xNF names.
+ IP addresses and VM/VNF or PNF names.
.. req::
:id: R-67124
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
:introduced: casablanca
- The xNF **MUST** provide Ansible playbooks that are designed to run using
+ The VNF or PNF **MUST** provide Ansible playbooks that are 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.
.. req::
:id: R-24482
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
:introduced: casablanca
- The xNF **MUST** provide Ansible playbooks that are designed to run using
+ The VNF or PNF **MUST** provide Ansible playbooks that are 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 xNF VM(s) as
+ be used to add site specific configurations to the target VNF or PNF VM(s) as
needed.
Ansible Playbook Requirements
@@ -1429,49 +1429,49 @@ complete the desired action.
.. req::
:id: R-49751
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
:introduced: casablanca
- The xNF **MUST** support Ansible playbooks that are compatible with
+ The VNF or PNF **MUST** support Ansible playbooks that are compatible with
Ansible version 2.6 or later.
.. req::
:id: R-40293
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
- The xNF **MUST** make available playbooks that conform
+ The VNF or PNF **MUST** make available playbooks that conform
to the ONAP requirement.
.. req::
:id: R-49396
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
:updated: casablanca
- The xNF **MUST** support each APPC/SDN-C xNF action
+ The VNF or PNF **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.
.. req::
:id: R-33280
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST NOT
- The xNF **MUST NOT** use any instance specific parameters
+ The VNF or PNF **MUST NOT** use any instance specific parameters
in a playbook.
.. req::
:id: R-48698
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
:updated: casablanca
- The xNF **MUST** utilize information from key value pairs that will be
+ The VNF or PNF **MUST** utilize information from key value pairs that will be
provided by the Ansible Server as "extra-vars" during invocation to
- execute the desired xNF action. The "extra-vars" attribute-value pairs
+ 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
@@ -1479,11 +1479,11 @@ complete the desired action.
containing instance specific info (attribute-value pairs), not obtainable
from any ONAP inventory databases or other sources, referenced and used an
input by playbooks, shall be provisioned (and distributed) in advance of
- use, e.g., xNF instantiation. Recommendation is to avoid these instance
+ use, e.g., VNF or PNF instantiation. Recommendation is to avoid these instance
specific, manually created in advance of instantiation, files.
The Ansible Server will determine if a playbook invoked to execute an
-xNF action finished successfully or not using the "PLAY_RECAP" summary
+VNF or PNF action finished successfully or not using the "PLAY_RECAP" summary
in Ansible log. The playbook will be considered to successfully finish
only if the "PLAY RECAP" section at the end of playbook execution output
has no unreachable hosts and no failed tasks. Otherwise, the playbook
@@ -1492,10 +1492,10 @@ will be considered to have failed.
.. req::
:id: R-43253
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
- The xNF **MUST** use playbooks designed to allow Ansible
+ The VNF or PNF **MUST** use playbooks 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
@@ -1504,43 +1504,43 @@ will be considered to have failed.
.. req::
:id: R-50252
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
:updated: casablanca
- The xNF **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 xNF
- action (e.g., audit), a playbook is required to return any xNF
+ The VNF or PNF **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 xNF
- with the name '<xNF name>_results.txt'. All playbook output results, for
- all xNF VMs, to be provided as a response to the request, must be written
+ 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 or PNF VMs, to be provided as a response to the request, must be written
to this response file.
.. req::
:id: R-51442
- :target: XNF
+ :target: VNF or PNF
:keyword: SHOULD
:updated: casablanca
- The xNF **SHOULD** use playbooks that are designed to
+ The VNF or PNF **SHOULD** use playbooks that are designed to
automatically 'rollback' to the original state in case of any errors
- for actions that change state of the xNF (e.g., configure).
+ 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 xNF provider shall provide alternative rollback
- mechanism (e.g., for a small xNF the rollback mechanism may rely
+ 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.
.. req::
:id: R-58301
- :target: XNF
+ :target: VNF or PNF
:keyword: SHOULD NOT
:updated: casablanca
- The xNF **SHOULD NOT** use playbooks that make requests to
+ The VNF or PNF **SHOULD NOT** use playbooks that 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.
@@ -1556,11 +1556,11 @@ will be considered to have failed.
.. req::
:id: R-02651
- :target: XNF
+ :target: VNF or PNF
:keyword: SHOULD
:updated: casablanca
- The xNF **SHOULD** use available backup capabilities to save a
+ The VNF or PNF **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
@@ -1568,11 +1568,11 @@ will be considered to have failed.
.. req::
:id: R-43353
- :target: XNF
+ :target: VNF or PNF
:keyword: MUST
:updated: casablanca
- The xNF **MUST** return control from Ansible Playbooks only after all
+ The VNF or PNF **MUST** return control from Ansible Playbooks 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
@@ -1581,11 +1581,11 @@ will be considered to have failed.
Detailed examples:
``StopApplication Playbook`` – StopApplication Playbook shall return control
-and a completion status response only after xNF application is fully stopped,
+and a completion status response only after VNF or PNF application is fully stopped,
all processes/services stopped.
``StartApplication Playbook`` – StartApplication Playbook shall return control
-and a completion status only after all xNF application services are fully up,
+and a completion status only after all VNF or PNF application services are fully up,
all processes/services started and ready to provide services.
**NOTE**: Start Playbook should not be declared complete/done after starting
@@ -1594,18 +1594,18 @@ one or several processes that start the other processes.
HealthCheck Playbook:
SUCCESS – HealthCheck success shall be returned (return code 0) by a
-Playbook or Cookbook only when xNF is 100% healthy, ready to take requests
-and provide services, with all xNF required capabilities ready to provide
+Playbook or Cookbook only when VNF or PNF is 100% healthy, ready to take requests
+and provide services, with all VNF or PNF required capabilities ready to provide
services and with all active and standby resources fully ready with no
open MINOR, MAJOR or CRITICAL alarms.
-NOTE: In some cases, a switch may need to be turned on, but a xNF
+NOTE: In some cases, a switch may need to be turned on, but a VNF or PNF
reported as healthy, should be ready to take service requests or be
already processing service requests successfully.
A successful execution of a health-check playbook shall create one response
-file (per xNF) in JSON format, named after the xNF instance, followed by
-"_results.txt" (<xNF instance name>_results.txt) to be provided as a response
+file (per VNF or PNF) in JSON format, named after the VNF or PNF instance, followed by
+"_results.txt" (<VNF or PNF instance name>_results.txt) to be provided as a response
to the requestor, indicating health-check was executed and completed
successfully, example: vfdb9904v_results.txt, with the following contents:
@@ -1632,17 +1632,17 @@ Example:
**NOTE**: See section 7.3.1.4 for comments on support of partial health checks.
FAILURE – A health check playbook shall return a non-zero return code in
-case xNF is not 100% healthy because one or more xNF application processes
+case VNF or PNF is not 100% healthy because one or more VNF or PNF application processes
are stopped or not ready to take service requests or because critical or
non-critical resources are not ready or because there are open MINOR, MAJOR
-or CRITICAL traps/alarms or because there are issues with the xNF that
-need attention even if they do not impact services provided by the xNF.
+or CRITICAL traps/alarms or because there are issues with the VNF or PNF that
+need attention even if they do not impact services provided by the VNF or PNF.
-A failed health-check playbook shall also create one file (per xNF), in
-JSON format, named after the xNF instance name, followed by "_results.txt"
+A failed health-check playbook shall also create one file (per VNF or PNF), in
+JSON format, named after the VNF or PNF instance name, followed by "_results.txt"
to indicate health-check was executed and found issues in the health of
-the xNF. This is to differentiate from failure to run health-check playbook
-or playbook tasks to verify the health of the xNF,
+the VNF or PNF. This is to differentiate from failure to run health-check playbook
+or playbook tasks to verify the health of the VNF or PNF,
example: vfdb9904v_results.txt, with the following contents:
.. code-block:: java
@@ -1678,9 +1678,9 @@ Example:
}
-See `xNF REST APIs`_ for additional details on HealthCheck.
+See `VNF or PNF REST APIs`_ for additional details on HealthCheck.
-Some xNFs may support and desire to run partial health checks and receive
+Some VNFs or PNFs may support and desire to run partial health checks and receive
a successful response when partial health check completes without errors.
The parameter name used by HealthCheck playbook to request non-default
partial health check is healthcheck_type. Example of health check types
@@ -1690,26 +1690,26 @@ attribute-value pair may be passed by Orchestrator or Workflow or other
(northbound) APPC/SDN-C clients to APPC/SDN-C as part of the request.
By default, when no argument/parameter is passed, healthcheck playbook
-performs a full xNF health check.
+performs a full VNF or PNF health check.
.. req::
:id: R-24189
- :target: XNF
+ :target: VNF or PNF
:keyword: SHOULD
:introduced: casablanca
- The xNF provider **MUST** deliver a new set of playbooks that includes
+ 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.
.. req::
:id: R-49911
- :target: XNF
+ :target: VNF or PNF
:keyword: SHOULD
:updated: casablanca
:introduced: casablanca
- The xNF provider **MUST** assign a new point release to the updated
+ 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.
@@ -1718,11 +1718,11 @@ Ansible API Usage
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This section outlines the workflow that APPC/SDN-C invokes when
-it receives an action request against an Ansible managed xNF.
+it receives an action request against an Ansible managed VNF or PNF.
#. When APPC/SDN-C receives a request for an action for an
- Ansible managed xNF, it retrieves the corresponding template (based
- on **action** and **xNF Type**) from its database and sets necessary
+ Ansible managed VNF or PNF, it retrieves the corresponding template (based
+ on **action** and **VNF or PNF Type**) from its database and sets necessary
values (such as an Id, NodeList, and EnvParameters) from either
information either in the request or data obtained from other sources,
inventory database, is an example of such sources.
@@ -1750,14 +1750,14 @@ Table 8. APPC/SDN-C APIs and NETCONF Commands
+-------------+--------------------+--------------------+--------------------+
|**Command** |**NETCONF Support** |**Chef Support** |**Ansible** |
+=============+====================+====================+====================+
-|General |For each RPC, the |xNF Vendor must |VNF Vendor must |
+|General |For each RPC, the |VNF or PNF Vendor must |VNF Vendor must |
|Comments |appropriate RPC |provide any |provide an Ansible |
| |operation is listed.|necessary roles, |playbook to retrieve|
| | |cookbooks, recipes |the running |
| | |to retrieve the |configuration from a|
| | |running |VNF and place the |
| | |configuration from |output on the |
-| | |a xNF and place it |Ansible server in |
+| | |a VNF or PNF and place it |Ansible server in |
| | |in the respective |a manner aligned |
| | |Node Objects |with playbook |
| | |'PushJobOutput' |requirements listed |
@@ -1768,7 +1768,7 @@ Table 8. APPC/SDN-C APIs and NETCONF Commands
| | |run. |in the JSON file. |
| | | | |
| | |The JSON file for |NodeList must list |
-| | |this xNF action is |IP addresses or DNS |
+| | |this VNF or PNF action is |IP addresses or DNS |
| | |required to set |supported FQDNs of |
| | |"PushJobFlag" to |an example VNF |
| | |"True" and |on which to |
@@ -1802,7 +1802,7 @@ Table 8. APPC/SDN-C APIs and NETCONF Commands
+-------------+--------------------+--------------------+--------------------+
|Configure, |The <edit-config> |Supported via a |Supported via a |
|ModifyConfig |operation loads all |cookbook that |playbook that |
-| |or part of a |updates the xNF |updates the VNF |
+| |or part of a |updates the VNF or PNF |updates the VNF |
| |specified data set |configuration. |configuration. |
| |to the specified | | |
| |target database. If | | |
@@ -1840,7 +1840,7 @@ Table 8. APPC/SDN-C APIs and NETCONF Commands
.. [#7.3.2]
Recall that the Node Object **is required** to be identical across
- all VMs of a xNF invoked as part of the action except for the "name".
+ all VMs of a VNF or PNF invoked as part of the action except for the "name".
.. [#7.3.3]
Upstream elements must provide the appropriate FQDN in the request to