From ac4cd1442a93d31f37624774c46789a7089d468b Mon Sep 17 00:00:00 2001 From: "Bozawglanian, Hagop (hb755d)" Date: Fri, 6 Apr 2018 23:28:28 +0000 Subject: VNFRQTS - Fixing format for doc8 errors Final fix for the doc8 formatting errors, remaining errors are components that are added during runtime. Change-Id: Ied510f9e5928d5a862f4a55cdf2678fff706451b Issue-ID: VNFRQTS-200 Signed-off-by: Bozawglanian, Hagop (hb755d) --- docs/Chapter2.rst | 21 +- docs/Chapter3.rst | 3 +- docs/Chapter5.rst | 1205 +++++++++++++++++++++++++++--------------------- docs/Chapter7.rst | 311 +++++++++---- docs/Chapter8.rst | 754 ++++++++++++++++++++---------- docs/release-notes.rst | 90 ++-- 6 files changed, 1476 insertions(+), 908 deletions(-) (limited to 'docs') diff --git a/docs/Chapter2.rst b/docs/Chapter2.rst index 1dd3340..d8cd4cb 100644 --- a/docs/Chapter2.rst +++ b/docs/Chapter2.rst @@ -24,19 +24,20 @@ for informational purposes only. Normative References ^^^^^^^^^^^^^^^^^^^^^^^ -+---------------+---------------------------------------------------------------------------------------------------------------+ -| Reference | Description | -+===============+===============================================================================================================+ -| [RFC 2119] | IETF RFC2119, Key words for use in RFCs to Indicate Requirement Levels, S. Bradner, March 1997. | -+---------------+---------------------------------------------------------------------------------------------------------------+ ++---------------+-----------------------------------------------------+ +| Reference | Description | ++===============+=====================================================+ +| [RFC 2119] | IETF RFC2119, Key words for use in RFCs to Indicate | +| | Requirement Levels, S. Bradner, March 1997. | ++---------------+-----------------------------------------------------+ Informative References ^^^^^^^^^^^^^^^^^^^^^^^^ -+---------------+---------------------------------------------------------------------------------------------------------------+ -| Reference | Description | -+===============+===============================================================================================================+ -| | | -+---------------+---------------------------------------------------------------------------------------------------------------+ ++---------------+-----------------------------------------------------+ +| Reference | Description | ++===============+=====================================================+ +| | | ++---------------+-----------------------------------------------------+ Reference Acquisition ^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/docs/Chapter3.rst b/docs/Chapter3.rst index f7106a4..f6101f3 100644 --- a/docs/Chapter3.rst +++ b/docs/Chapter3.rst @@ -15,7 +15,8 @@ efficiently within a cloud environment. Requirements cover design, resiliency, security, modularity and DevOps. - Chapter 5 describes the different data models the VNF/PNF provider - needs to understand. There are currently 2 models described in this document: + needs to understand. There are currently 2 models described in this + document: - The first model is the onboarding package data model. This is a TOSCA model that will describe how all the elements passed from the VNF/PNF diff --git a/docs/Chapter5.rst b/docs/Chapter5.rst index 00946db..55628fd 100644 --- a/docs/Chapter5.rst +++ b/docs/Chapter5.rst @@ -130,37 +130,43 @@ The following table defines the TOSCA Type “derived from” values that SHALL be used when using the TOSCA Simple Profile for NFV version 1.0 specification [TOSCA-Simple-Profile-NFV-v1.0] for NFV VNFD. -+-----------------------------------------+---------------------------------------+-----------------------+ -| **ETSI NFV Element** | **TOSCA VNFD** | **Derived from** | -| | | | -| **[IFA011]** | **[TOSCA-Simple-Profile-NFV-v1.0]** | | -+=========================================+=======================================+=======================+ -| VNF | tosca.nodes.nfv.VNF | tosca.nodes.Root | -+-----------------------------------------+---------------------------------------+-----------------------+ -| VDU | tosca.nodes.nfv.VDU | tosca.nodes.Root | -+-----------------------------------------+---------------------------------------+-----------------------+ -| Cpd (Connection Point) | tosca.nodes.nfv.Cpd | tosca.nodes.Root | -+-----------------------------------------+---------------------------------------+-----------------------+ -| VduCpd (internal connection point) | tosca.nodes.nfv.VduCpd | tosca.nodes.nfv.Cpd | -+-----------------------------------------+---------------------------------------+-----------------------+ -| VnfVirtualLinkDesc (Virtual Link) | tosca.nodes.nfv.VnfVirtualLinkDesc | tosca.nodes.Root | -+-----------------------------------------+---------------------------------------+-----------------------+ -| VnfExtCpd (External Connection Point) | tosca.nodes.nfv.VnfExtCpd | tosca.nodes.Root | -+-----------------------------------------+---------------------------------------+-----------------------+ -| Virtual Storage | | | -+-----------------------------------------+---------------------------------------+-----------------------+ -| Virtual Compute | | | -+-----------------------------------------+---------------------------------------+-----------------------+ -| Software Image | | | -+-----------------------------------------+---------------------------------------+-----------------------+ -| Deployment Flavour | | | -+-----------------------------------------+---------------------------------------+-----------------------+ -| Scaling Aspect | | | -+-----------------------------------------+---------------------------------------+-----------------------+ -| Element Group | | | -+-----------------------------------------+---------------------------------------+-----------------------+ -| Instantiation Level | | | -+-----------------------------------------+---------------------------------------+-----------------------+ ++---------------------+------------------------------------+-----------------+ +| **ETSI NFV Element**| **TOSCA VNFD** | **Derived from**| +| | | | +| **[IFA011]** | **[TOSCA-Simple-Profile-NFV-v1.0]**| | ++=====================+====================================+=================+ +| VNF | tosca.nodes.nfv.VNF | tosca.nodes.Root| ++---------------------+------------------------------------+-----------------+ +| VDU | tosca.nodes.nfv.VDU | tosca.nodes.Root| ++---------------------+------------------------------------+-----------------+ +| Cpd (Connection | tosca.nodes.nfv.Cpd | tosca.nodes.Root| +| Point) | tosca.nodes.nfv.Cpd | tosca.nodes.Root| ++---------------------+------------------------------------+-----------------+ +| VduCpd (internal | tosca.nodes.nfv.VduCpd | tosca.nodes.\ | +| connection point) | | nfv.Cpd | ++---------------------+------------------------------------+-----------------+ +| VnfVirtualLinkDesc | tosca.nodes.nfv.VnfVirtualLinkDesc | tosca.nodes.Root| +| (Virtual Link) | | | ++---------------------+------------------------------------+-----------------+ +| VnfExtCpd (External | tosca.nodes.nfv.VnfExtCpd | tosca.nodes.Root| +| Connection Point) | | | ++---------------------+------------------------------------+-----------------+ +| Virtual Storage | | | ++---------------------+------------------------------------+-----------------+ +| Virtual Compute | | | ++---------------------+------------------------------------+-----------------+ +| Software Image | | | ++---------------------+------------------------------------+-----------------+ +| Deployment Flavour | | | ++---------------------+------------------------------------+-----------------+ +| Scaling Aspect | | | ++---------------------+------------------------------------+-----------------+ +| Element Group | | | ++---------------------+------------------------------------+-----------------+ +| Instantiation | | | +| Level | | | ++---------------------+------------------------------------+-----------------+ + +--------------------------------------------------------------------+ | +--------------------------------------------------------------+ | @@ -426,18 +432,27 @@ tosca.capabilites.nfv.VirtualCompute Properties +++++++++++ -+-------------------------------------+------------+-----------------------------------------------------+---------------+---------------------------------------------------------+ -| Name | Required | Type | Constraints | Description | -+=====================================+============+=====================================================+===============+=========================================================+ -| request\_additional\_capabilities | No | tosca.datatypes.nfv.RequestedAdditionalCapability | | Describes additional capability for a particular VDU. | -+-------------------------------------+------------+-----------------------------------------------------+---------------+---------------------------------------------------------+ -| virtual\_memory | yes | tosca.datatypes.nfv.VirtualMemory | | Describes virtual memory of the virtualized compute | -+-------------------------------------+------------+-----------------------------------------------------+---------------+---------------------------------------------------------+ -| virtual\_cpu | yes | tosca.datatypes.nfv.VirtualCpu | | Describes virtual CPU(s) of the virtualized compute. | -+-------------------------------------+------------+-----------------------------------------------------+---------------+---------------------------------------------------------+ -+-------------------------------------+------------+-----------------------------------------------------+---------------+---------------------------------------------------------+ -| name | yes | | | | -+-------------------------------------+------------+-----------------------------------------------------+---------------+---------------------------------------------------------+ ++---------------+---------+---------------+------------+----------------------+ +| Name | Required| Type | Constraints| Description | ++===============+=========+===============+============+======================+ +| request\ | No | tosca.\ | | Describes additional | +| _additional\ | | datatypes.\ | | capability for a | +| _capabilities | | nfv.Requested\| | particular VDU. | +| | | Additional\ | | | +| | | Capability | | | ++---------------+---------+---------------+------------+----------------------+ +| virtual\ | yes | tosca.\ | | Describes virtual | +| _memory | | datatypes.\ | | memory of the | +| | | nfv.Virtual\ | | virtualized compute. | +| | | Memory | | | ++---------------+---------+---------------+------------+----------------------+ +| virtual\ | yes | tosca.\ | | Describes virtual | +| _cpu | | datatypes.\ | | CPU(s) of the | +| | | nfv.Virtual\ | | virtualized compute. | +| | | Cpu | | | ++---------------+---------+---------------+------------+----------------------+ +| name | yes | | | | ++---------------+---------+---------------+------------+----------------------+ Definition +++++++++++ @@ -501,169 +516,186 @@ None Capabilities ++++++++++++++ -+-------------------------+-------------------------------------------------+---------------+-----------------------------------------------------------------------------------------------------+ -| Name | Type | Constraints | Description | -+=========================+=================================================+===============+=====================================================================================================+ -| virtual\_compute | tosca.capabilities.nfv.VirtualCompute | | Describes virtual compute resources capabilities. | -+-------------------------+-------------------------------------------------+---------------+-----------------------------------------------------------------------------------------------------+ -| monitoring\_parameter | tosca.capabilities.nfv.Metric | None | Monitoring parameter, which can be tracked for a VNFC based on this VDU | -| | | | | -| | | | Examples include: memory-consumption, CPU-utilisation, bandwidth-consumption, VNFC downtime, etc. | -+-------------------------+-------------------------------------------------+---------------+-----------------------------------------------------------------------------------------------------+ -| Virtual\_binding | tosca.capabilities.nfv.VirtualBindable | | Defines ability of VirtualBindable | -| | | | | -| | editor note: need to create a capability type | | | -+-------------------------+-------------------------------------------------+---------------+-----------------------------------------------------------------------------------------------------+ ++------------+--------------------+------------+------------------------------+ +| Name | Type | Constraints| Description | ++============+====================+============+==============================+ +| virtual\ | tosca.\ | | Describes virtual compute | +| _compute | capabilities.nfv.\ | | resources capabilities. | +| | VirtualCompute | | | ++------------+--------------------+------------+------------------------------+ +| monitoring\| tosca.\ | None | Monitoring parameter, which | +| _parameter | capabilities.nfv.\ | | can be tracked for a VNFC | +| | Metric | | based on this VDU | +| | | | | +| | | | Examples include: | +| | | | memory-consumption, | +| | | | CPU-utilisation, | +| | | | bandwidth-consumption, VNFC | +| | | | downtime, etc. | ++------------+--------------------+------------+------------------------------+ +| Virtual\ | tosca.\ | | Defines ability of | +| _binding | capabilities.nfv.\ | | VirtualBindable | +| | VirtualBindable | | | +| | | | | +| | editor note: need | | | +| | to create a | | | +| | capability type | | | ++------------+--------------------+------------+------------------------------+ Definition ++++++++++++ -+-----------------------------------------------------------------------------------------------------+ -| tosca.nodes.nfv.VDU.Compute: | -| | -| derived\_from: tosca.nodes.Compute | -| | -| properties: | -| | -| name: | -| | -| type: string | -| | -| required: true | -| | -| description: | -| | -| type: string | -| | -| required: true | -| | -| boot\_order: | -| | -| type: list # explicit index (boot index) not necessary, contrary to IFA011 | -| | -| entry\_schema: | -| | -| type: string | -| | -| required: false | -| | -| nfvi\_constraints: | -| | -| type: list | -| | -| entry\_schema: | -| | -| type: string | -| | -| required: false | -| | -| configurable\_properties: | -| | -| type: map | -| | -| entry\_schema: | -| | -| type: tosca.datatypes.nfv.VnfcConfigurableProperties | -| | -| required: true  | -| | -| attributes: | -| | -| private\_address: | -| | -| status: deprecated | -| | -| public\_address: | -| | -| status: deprecated | -| | -| networks: | -| | -| status: deprecated | -| | -| ports: | -| | -| status: deprecated | -| | -| capabilities: | -| | -| virtual\_compute: | -| | -| type: tosca.capabilities.nfv.VirtualCompute | -| | -| virtual\_binding: | -| | -| type: tosca.capabilities.nfv.VirtualBindable | -| | -| #monitoring\_parameter: | -| | -| # modeled as ad hoc (named) capabilities in VDU node template | -| | -| # for example: | -| | -| #capabilities: | -| | -| # cpu\_load: tosca.capabilities.nfv.Metric | -| | -| # memory\_usage: tosca.capabilities.nfv.Metric | -| | -| host: #Editor note: FFS. How this capabilities should be used in NFV Profile | -| | -| type: `*tosca.capabilities.Container* <#DEFN_TYPE_CAPABILITIES_CONTAINER>`__ | -| | -| valid\_source\_types: [`*tosca.nodes.SoftwareComponent* <#DEFN_TYPE_NODES_SOFTWARE_COMPONENT>`__] | -| | -| occurrences: [0,UNBOUNDED] | -| | -| endpoint: | -| | -| occurrences: [0,0] | -| | -| os: | -| | -| occurrences: [0,0] | -| | -| scalable: #Editor note: FFS. How this capabilities should be used in NFV Profile | -| | -| type: `*tosca.capabilities.Scalable* <#DEFN_TYPE_CAPABILITIES_SCALABLE>`__ | -| | -| binding: | -| | -| occurrences: [0,UNBOUND] | -| | -| requirements: | -| | -| - virtual\_storage: | -| | -| capability: tosca.capabilities.nfv.VirtualStorage | -| | -| relationship: tosca.relationships.nfv.VDU.AttachedTo | -| | -| node: tosca.nodes.nfv.VDU.VirtualStorage | -| | -| occurences: [ 0, UNBOUNDED ] | -| | -| - local\_storage: #For NFV Profile, this requirement is deprecated. | -| | -| occurrences: [0,0] | -| | -| artifacts: | -| | -| - sw\_image: | -| | -| file: | -| | -| type: tosca.artifacts.nfv.SwImage | -+-----------------------------------------------------------------------------------------------------+ ++-----------------------------------------------------------------------------+ +| tosca.nodes.nfv.VDU.Compute: | +| | +| derived\_from: tosca.nodes.Compute | +| | +| properties: | +| | +| name: | +| | +| type: string | +| | +| required: true | +| | +| description: | +| | +| type: string | +| | +| required: true | +| | +| boot\_order: | +| | +| type: list # explicit index (boot index) not necessary, contrary to IFA011 | +| | +| entry\_schema: | +| | +| type: string | +| | +| required: false | +| | +| nfvi\_constraints: | +| | +| type: list | +| | +| entry\_schema: | +| | +| type: string | +| | +| required: false | +| | +| configurable\_properties: | +| | +| type: map | +| | +| entry\_schema: | +| | +| type: tosca.datatypes.nfv.VnfcConfigurableProperties | +| | +| required: true  | +| | +| attributes: | +| | +| private\_address: | +| | +| status: deprecated | +| | +| public\_address: | +| | +| status: deprecated | +| | +| networks: | +| | +| status: deprecated | +| | +| ports: | +| | +| status: deprecated | +| | +| capabilities: | +| | +| virtual\_compute: | +| | +| type: tosca.capabilities.nfv.VirtualCompute | +| | +| virtual\_binding: | +| | +| type: tosca.capabilities.nfv.VirtualBindable | +| | +| #monitoring\_parameter: | +| | +| # modeled as ad hoc (named) capabilities in VDU node template | +| | +| # for example: | +| | +| #capabilities: | +| | +| # cpu\_load: tosca.capabilities.nfv.Metric | +| | +| # memory\_usage: tosca.capabilities.nfv.Metric | +| | +| host: #Editor note: FFS. How this capabilities should be used in NFV Profile| +| | +| type: `*tosca.capabilities.Container* <#DEFN_TYPE_CAPABILITIES_CONTAINER>`__| +| | +| valid\_source\_types: | +| [`*tosca.nodes.SoftwareComponent* <#DEFN_TYPE_NODES_SOFTWARE_COMPONENT>`__] | +| | +| occurrences: [0,UNBOUNDED] | +| | +| endpoint: | +| | +| occurrences: [0,0] | +| | +| os: | +| | +| occurrences: [0,0] | +| | +| scalable: | +| #Editor note: FFS. How this capabilities should be used in NFV Profile | +| | +| type: `*tosca.capabilities.Scalable* <#DEFN_TYPE_CAPABILITIES_SCALABLE>`__ | +| | +| binding: | +| | +| occurrences: [0,UNBOUND] | +| | +| requirements: | +| | +| - virtual\_storage: | +| | +| capability: tosca.capabilities.nfv.VirtualStorage | +| | +| relationship: tosca.relationships.nfv.VDU.AttachedTo | +| | +| node: tosca.nodes.nfv.VDU.VirtualStorage | +| | +| occurences: [ 0, UNBOUNDED ] | +| | +| - local\_storage: #For NFV Profile, this requirement is deprecated. | +| | +| occurrences: [0,0] | +| | +| artifacts: | +| | +| - sw\_image: | +| | +| file: | +| | +| type: tosca.artifacts.nfv.SwImage | ++-----------------------------------------------------------------------------+ Artifact -+++++++++ -+-----------+------------+-------------------------------+---------------+------------------------------------------------+ -| Name | Required | Type | Constraints | Description | -+===========+============+===============================+===============+================================================+ -| SwImage | Yes | tosca.artifacts.nfv.SwImage | | Describes the software image which is | -| | | | | directly realizing this virtual storage | -+-----------+------------+-------------------------------+---------------+------------------------------------------------+ +++++++++++ + ++--------+---------+----------------+------------+------------------------+ +| Name | Required| Type | Constraints| Description | ++========+=========+================+============+========================+ +| SwImage| Yes | tosca.\ | | Describes the software | +| | | artifacts.nfv.\| | image which is directly| +| | | SwImage | | realizing this virtual | +| | | | | storage | ++--------+---------+----------------+------------+------------------------+ |image2| @@ -775,14 +807,20 @@ Properties +++++++++++ -+-------------------------------+------------+------------------------------------------+---------------+----------------------------------------------------------+ -| Name | Required | Type | Constraints | Description | -+===============================+============+==========================================+==========================================================================+ -| bitrate_requirement | no | integer | | Bitrate requirement on this connection point. | -+-------------------------------+------------+------------------------------------------+---------------+----------------------------------------------------------+ -| virtual\_network\_interface_\ | no | VirtualNetworkInterfaceRequirements | | Specifies requirements on a virtual network | -| requirements | | | | realising the CPs instantiated from this CPD | -+-------------------------------+------------+------------------------------------------+---------------+----------------------------------------------------------+ ++-----------------+---------+---------------+------------+--------------------+ +| Name | Required| Type | Constraints| Description | ++=================+=========+===============+============+====================+ +| bitrate\ | no | integer | | Bitrate requirement| +| _requirement | | | | on this connection | +| | | | | point. | ++-----------------+---------+---------------+------------+--------------------+ +| virtual\ | | Virtual\ | | Specifies | +| _network\ | no | Network\ | | requirements on a | +| _interface_\ | | Interface\ | | virtual network | +| requirements | | Requirements\ | | realising the CPs | +| | | | | instantiated from | +| | | | | this CPD | ++-----------------+---------+---------------+------------+--------------------+ Attributes +++++++++++ @@ -792,13 +830,18 @@ None Requirements +++++++++++++ -+--------------------+------------+------------------------------------------+---------------+----------------------------------------------------------+ -| Name | Required | Type | Constraints | Description | -+====================+============+==========================================+===============+==========================================================+ -| virtual\_binding | yes | tosca.capabilities.nfv.VirtualBindable | | Describe the requirement for binding with VDU | -+--------------------+------------+------------------------------------------+---------------+----------------------------------------------------------+ -| virtual\_link | no | tosca.capabilities.nfv.VirtualLinkable | | Describes the requirements for linking to virtual link | -+--------------------+------------+------------------------------------------+---------------+----------------------------------------------------------+ ++----------+---------+--------------------+------------+----------------------+ +| Name | Required| Type | Constraints| Description | ++==========+=========+====================+============+======================+ +| virtual\ | yes | tosca.\ | | Describe the | +| _binding | | capabilities.nfv.\ | | requirement for | +| | | VirtualBindable\ | | binding with VDU | ++----------+---------+--------------------+------------+----------------------+ +| virtual\ | no | tosca.\ | | Describes the | +| _link | | capabilities.nfv.\ | | requirements for | +| | | VirtualLinkable | | linking to virtual | +| | | | | link | ++----------+---------+--------------------+------------+----------------------+ Definition +++++++++++ @@ -883,31 +926,55 @@ tosca.artifacts.nfv.SwImage Properties ++++++++++++ -+------------------------------------------+------------+--------------------+---------------+----------------------------------------------------------------------------------------------------+ -| Name | Required | Type | Constraints | Description | -+==========================================+============+====================+===============+====================================================================================================+ -| name | yes | string | | Name of this software image | -+------------------------------------------+------------+--------------------+---------------+----------------------------------------------------------------------------------------------------+ -| version | yes | string | | Version of this software image | -+------------------------------------------+------------+--------------------+---------------+----------------------------------------------------------------------------------------------------+ -| checksum | yes | string | | Checksum of the software image file | -+------------------------------------------+------------+--------------------+---------------+----------------------------------------------------------------------------------------------------+ -| container\_format | yes | string | | The container format describes the container file format in which software image is provided. | -+------------------------------------------+------------+--------------------+---------------+----------------------------------------------------------------------------------------------------+ -| disk\_format | yes | string | | The disk format of a software image is the format of the underlying disk image | -+------------------------------------------+------------+--------------------+---------------+----------------------------------------------------------------------------------------------------+ -| min\_disk | yes | scalar-unit.size | | The minimal disk size requirement for this software image. | -+------------------------------------------+------------+--------------------+---------------+----------------------------------------------------------------------------------------------------+ -| min\_ram | no | scalar-unit.size | | The minimal RAM requirement for this software image. | -+------------------------------------------+------------+--------------------+---------------+----------------------------------------------------------------------------------------------------+ -| Size | yes | scalar-unit.size | | The size of this software image | -+------------------------------------------+------------+--------------------+---------------+----------------------------------------------------------------------------------------------------+ -| sw\_image | yes | string | | A reference to the actual software image within VNF Package, or url. | -+------------------------------------------+------------+--------------------+---------------+----------------------------------------------------------------------------------------------------+ -| operating\_system | no | string | | Identifies the operating system used in the software image. | -+------------------------------------------+------------+--------------------+---------------+----------------------------------------------------------------------------------------------------+ -| supported \_virtualization\_enviroment | no | list | | Identifies the virtualization environments (e.g. hypervisor) compatible with this software image | -+------------------------------------------+------------+--------------------+---------------+----------------------------------------------------------------------------------------------------+ ++-----------------+---------+----------+------------+-------------------------+ +| Name | Required| Type | Constraints| Description | ++=================+=========+==========+============+=========================+ +| name | yes | string | | Name of this software | +| | | | | image | ++-----------------+---------+----------+------------+-------------------------+ +| version | yes | string | | Version of this software| +| | | | | image | ++-----------------+---------+----------+------------+-------------------------+ +| checksum | yes | string | | Checksum of the software| +| | | | | image file | ++-----------------+---------+----------+------------+-------------------------+ +| container\ | yes | string | | The container format | +| _format | | | | describes the container | +| | | | | file format in which | +| | | | | software image is | +| | | | | provided. | ++-----------------+---------+----------+------------+-------------------------+ +| disk\_format | yes | string | | The disk format of a | +| | | | | software image is the | +| | | | | format of the underlying| +| | | | | disk image | ++-----------------+---------+----------+------------+-------------------------+ +| min\_disk | yes | scalar-\ | | The minimal disk size | +| | | unit.size| | requirement for this | +| | | | | software image. | ++-----------------+---------+----------+------------+-------------------------+ +| min\_ram | no | scalar-\ | | The minimal RAM | +| | | unit.size| | requirement for this | +| | | | | software image. | ++-----------------+---------+----------+------------+-------------------------+ +| Size | yes | scalar-\ | | The size of this | +| | | unit.size| | software image | ++-----------------+---------+----------+------------+-------------------------+ +| sw\_image | yes | string | | A reference to the | +| | | | | actual software image | +| | | | | within VNF Package, or | +| | | | | url. | ++-----------------+---------+----------+------------+-------------------------+ +| operating\ | no | string | | Identifies the operating| +| _system | | | | system used in the | +| | | | | software image. | ++-----------------+---------+----------+------------+-------------------------+ +| supported\ | no | list | | Identifies the | +| _virtualization\| | | | virtualization | +| _enviroment | | | | environments (e.g. | +| | | | | hypervisor) compatible | +| | | | | with this software image| ++-----------------+---------+----------+------------+-------------------------+ Definition +++++++++++ @@ -1570,7 +1637,8 @@ YAML rules include: - Tabs are NOT allowed, use spaces ONLY. -- R-43125 The VNF Heat **MUST** indent properties and lists with 1 or more spaces. +- R-43125 The VNF Heat **MUST** indent properties and lists with 1 or + more spaces. - All Resource IDs and resource property parameters are case-sensitive. (e.g., "ThIs", is not the same as "thiS") @@ -1651,8 +1719,8 @@ the template. Each parameter is specified in a separated nested block with the name of the parameters defined in the first line and additional attributes (e.g., type, label) defined as nested elements. -R-90279 The VNF Heat **MUST** use in a resource all parameters declared in a template -except for the parameters for the OS::Nova::Server property +R-90279 The VNF Heat **MUST** use in a resource all parameters declared in +a template except for the parameters for the OS::Nova::Server property availability\_zone. See `Property: availability\_zone`_. for more details on availability\_zone. @@ -1682,8 +1750,8 @@ availability\_zone. - The type of the parameter. Supported types are string, number, comma\_delimited\_list, json and boolean. - - R-28657 The VNF Heat **MUST** provide the attribute 'type' on parameters per the OpenStack Heat - Orchestration Template standard. + - R-28657 The VNF Heat **MUST** provide the attribute 'type' on + parameters per the OpenStack Heat Orchestration Template standard. - label: @@ -1695,17 +1763,17 @@ availability\_zone. - A human readable description for the parameter. - - R-44001 The VNF Heat **MUST** provide the attribute 'description' on parameters. (Note that - this attribute is OpenStack optional.) + - R-44001 The VNF Heat **MUST** provide the attribute 'description' + on parameters. (Note that this attribute is OpenStack optional.) - default: - A default value for the parameter. - R-90526 The VNF Heat **MUST NOT** use the attribute 'default'. - If a parameter has a default - value, it must be provided in the environment file. (Note that - this attribute is OpenStack optional.) + If a parameter has a default value, it must be provided in + the environment file. (Note that this attribute is OpenStack + optional.) - hidden: @@ -1740,7 +1808,8 @@ availability\_zone. If omitted, a default validation message is presented to the user. This attribute is optional. -- R-88863 The VNF Heat **MUST** have a constraint of range or allowed\_values for a parameter type 'number'. +- R-88863 The VNF Heat **MUST** have a constraint of range or + allowed\_values for a parameter type 'number'. - range: The range constraint applies to parameters of type number. It defines a lower and upper limit for the numeric value of the @@ -1776,7 +1845,9 @@ availability\_zone. - Note that constrains must not be defined for any parameter enumerated in a nested heat template. -- Some ONAP parameters must never have constraints defined. See `ONAP Resource ID and Parameter Naming Convention`_ for the use cases where these exceptions exist. +- Some ONAP parameters must never have constraints defined. See + `ONAP Resource ID and Parameter Naming Convention`_ for the + use cases where these exceptions exist. - immutable: @@ -1788,7 +1859,8 @@ availability\_zone. resources ++++++++++ -R-23664 The VNF Heat **MUST** have a resources: section with the declaration of at least one resource. +R-23664 The VNF Heat **MUST** have a resources: section with the +declaration of at least one resource. This section contains the declaration of the single resources of the template. This @@ -1835,21 +1907,25 @@ with the following syntax. - properties - A list of resource-specific properties. The property value can be - provided in place, or via a function (e.g., Intrinsic functions). This section is optional. + provided in place, or via a function (e.g., Intrinsic functions). + This section is optional. - - The naming convention for property parameters is provided in `ONAP Resource ID and Parameter Naming Convention`_. + - The naming convention for property parameters is provided in + `ONAP Resource ID and Parameter Naming Convention`_. - metadata - Resource-specific metadata. This section is optional, except for the resource OS::Nova::Server. See `Resource: OS::Nova::Server - Parameters`_. - - R-97199 The VNF Heat **MUST** use the metadata property for OS::Nova::Server resource type. + - R-97199 The VNF Heat **MUST** use the metadata property for + OS::Nova::Server resource type. - depends\_on - Dependencies of the resource on one or more resources of the - template. This attribute is optional. See `Resource Data Synchronization`_ for additional details. + template. This attribute is optional. See + `Resource Data Synchronization`_ for additional details. - update\_policy @@ -1889,7 +1965,8 @@ outputs This ONAP optional section allows for specifying output parameters available to users once the template has been instantiated. If the section is specified, it will need to adhere to specific requirements. -See `ONAP Parameter Classifications Overview`_ and `ONAP Output Parameter Names`_ for additional details. +See `ONAP Parameter Classifications Overview`_ and +`ONAP Output Parameter Names`_ for additional details. Environment File Format ^^^^^^^^^^^^^^^^^^^^^^^^ @@ -1913,7 +1990,8 @@ The environment file can contain the following sections: - parameter\_merge\_strategies: Merge strategies for merging parameters and parameter defaults from the environment file. -R-03324 The VNF Heat **MUST** contain the following sections in the environment file: +R-03324 The VNF Heat **MUST** contain the following sections in the +environment file: - parameters: @@ -1951,7 +2029,8 @@ created. ONAP has requirements for what parameters must be enumerated in the environment file and what parameter must not be enumerated in the -environment file. See `ONAP Parameter Classifications Overview`_ and `ONAP Resource ID and Parameter Naming Convention`_ for more details. +environment file. See `ONAP Parameter Classifications Overview`_ and +`ONAP Resource ID and Parameter Naming Convention`_ for more details. Nested Heat Orchestration Templates Overview ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -1990,9 +2069,11 @@ must not contain any special characters and must not contain the word Base Modules ~~~~~~~~~~~~~~ -R-19473 The VNF Heat **MUST** include “base” in the filename for the base module +R-19473 The VNF Heat **MUST** include “base” in the filename for the +base module -R-81339 The VNF Heat **MUST** match one of the following options for the base module file name: +R-81339 The VNF Heat **MUST** match one of the following options for +the base module file name: - base\_.y[a]ml @@ -2002,8 +2083,9 @@ R-81339 The VNF Heat **MUST** match one of the following options for the base mo - \_base\_.y[a]ml -R-91342 The VNF Heat **MUST** name the base module’s corresponding environment file to be identical -to the base module with “.y[a]ml” replaced with “.env”. +R-91342 The VNF Heat **MUST** name the base module’s corresponding +environment file to be identical to the base module with “.y[a]ml” +replaced with “.env”. Incremental Modules ~~~~~~~~~~~~~~~~~~~~~ @@ -2011,12 +2093,14 @@ Incremental Modules There is no explicit naming convention for the incremental modules. As noted above, represents any alphanumeric string. -R-87247 The VNF Heat **MUST NOT** use any special characters or the word “base” in the name of the incremental module. +R-87247 The VNF Heat **MUST NOT** use any special characters or the +word “base” in the name of the incremental module. - .y[a]ml -R-94509 The VNF Heat **MUST** name the incremental module’s corresponding environment file to be -identical to the incremental module with “.y[a]ml” replaced with “.env”. +R-94509 The VNF Heat **MUST** name the incremental module’s +corresponding environment file to be identical to the incremental +module with “.y[a]ml” replaced with “.env”. To clearly identify the incremental module, it is recommended to use the following naming options for modules: @@ -2030,16 +2114,17 @@ following naming options for modules: Cinder Volume Modules ~~~~~~~~~~~~~~~~~~~~~~~ -R-82732 The VNF Heat **MUST** name the Cinder volume module file name to be the same as the -corresponding module it is supporting (base module or incremental -module) with “\_volume” appended. +R-82732 The VNF Heat **MUST** name the Cinder volume module file name +to be the same as the corresponding module it is supporting (base +module or incremental module) with “\_volume” appended. - \_volume.y[a]ml - \_volume.y[a]ml -R-31141 The VNF Heat **MUST** name the volume module’s corresponding environment file -to be identical to the volume module with “.y[a]ml” replaced with “.env”. +R-31141 The VNF Heat **MUST** name the volume module’s corresponding +environment file to be identical to the volume module with “.y[a]ml” +replaced with “.env”. Nested Heat file ~~~~~~~~~~~~~~~~~~ @@ -2057,9 +2142,9 @@ As noted above, represents any alphanumeric string. Nested Heat files do not have corresponding environment files, per OpenStack specifications. -R-18224 The VNF Heat **MUST** pass in as properties all parameter values associated with the -nested heat file in the resource -definition defined in the parent heat template. +R-18224 The VNF Heat **MUST** pass in as properties all parameter values +associated with the nested heat file in the resource definition defined +in the parent heat template. ONAP Parameter Classifications Overview ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -2089,7 +2174,8 @@ associated with the resource OS::Nova::Server. - Both mandatory and optional (if specified) ONAP metadata parameter names must follow the ONAP metadata parameter naming convention. -`Resource: OS::Nova::Server – Metadata Parameters`_ provides more details on the metadata parameters. +`Resource: OS::Nova::Server – Metadata Parameters`_ provides more details on +the metadata parameters. Instance specific parameters ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -2119,8 +2205,9 @@ prior to instantiation.) specified, they must adhere to the OpenStack specifications. - The ONAP orchestration parameter names must follow the ONAP - orchestration parameter naming convention. `ONAP Resource ID and Parameter Naming Convention`_ provides - additional details. + orchestration parameter naming convention. + `ONAP Resource ID and Parameter Naming Convention`_ + provides additional details. VNF Orchestration Parameters +++++++++++++++++++++++++++++ @@ -2140,15 +2227,17 @@ The per instance values are loaded into ONAP prior to VNF instantiation. specified, they must adhere to the OpenStack specifications. - The VNF orchestration parameter names should follow the VNF - orchestration parameter naming convention. `ONAP Resource ID and Parameter Naming Convention`_ provides - additional details. + orchestration parameter naming convention. + `ONAP Resource ID and Parameter Naming Convention`_ + provides additional details. Constant Parameters ~~~~~~~~~~~~~~~~~~~~~ The constant parameters are parameters that remain constant across many VNF instances (e.g., image, flavor). The constant parameters are -subdivided into two categories: **ONAP Constant Parameters** and **VNF Constant Parameters.** +subdivided into two categories: **ONAP Constant Parameters** and +**VNF Constant Parameters.** ONAP Constant Parameters ++++++++++++++++++++++++++ @@ -2164,7 +2253,9 @@ ONAP Constant Parameters they must adhere to the OpenStack specifications. - The ONAP Constant Parameter names must follow the ONAP orchestration - parameter naming convention. `ONAP Resource ID and Parameter Naming Convention`_ provides additional details. + parameter naming convention. + `ONAP Resource ID and Parameter Naming Convention`_ + provides additional details. VNF Constant Parameters ++++++++++++++++++++++++ @@ -2180,8 +2271,9 @@ VNF Constant Parameters they must adhere to the OpenStack specifications. - The VNF Constant Parameters names should follow the ONAP - orchestration parameter naming convention. `ONAP Resource ID and Parameter Naming Convention`_ provides - additional details. + orchestration parameter naming convention. + `ONAP Resource ID and Parameter Naming Convention`_ + provides additional details. Output Parameters ~~~~~~~~~~~~~~~~~~~ @@ -2238,8 +2330,8 @@ The volume template output parameters are only available for the module module (base or incremental) that the Cinder volume module is associated with. -- R-07443 The VNF Heat **MUST** match the Output parameter name and type with the - input parameter name and type unless the Output parameter is of the +- R-07443 The VNF Heat **MUST** match the Output parameter name and type with + the input parameter name and type unless the Output parameter is of the type comma\_delimited\_list. - If the Output parameter has a comma\_delimited\_list value (e.g., a @@ -2308,8 +2400,8 @@ LCPs. An External Network may be a Neutron Network or a Contrail Network -R-23983 The VNF **MUST** pass the external networks into the VNF Heat Orchestration -Templates as parameters. +R-23983 The VNF **MUST** pass the external networks into the VNF Heat +Orchestration Templates as parameters. - Neutron Network-id (UUID) @@ -2318,14 +2410,17 @@ Templates as parameters. - Contrail Network Fully Qualified Domain Name (FQDN) ONAP enforces a naming convention for parameters associated with -external networks. `ONAP Resource ID and Parameter Naming Convention`_ provides additional details. +external networks. `ONAP Resource ID and Parameter Naming Convention`_ +provides additional details. Parameter values associated with an external network will be generated and/or assigned by ONAP at orchestration time. Parameter values associated with an external network must not be enumerated in the -environment file. `ONAP Resource ID and Parameter Naming Convention`_ provides additional details. +environment file. `ONAP Resource ID and Parameter Naming Convention`_ +provides additional details. -VNFs may use **Cloud assigned IP addresses** or **ONAP SDN-C assigned IP addresses** +VNFs may use **Cloud assigned IP addresses** or +**ONAP SDN-C assigned IP addresses** when attaching VMs to an external network - A Cloud assigned IP address is assigned by OpenStack’s DHCP Service. @@ -2353,15 +2448,15 @@ create the internal network. The internal network must be either a Neutron Network or a Contrail Network. R-86972 The VNF Heat **MUST** create internal networks in the Base -Module, in the modular approach, with their resource IDs exposed as outputs (i.e., ONAP Base -Module Output Parameters) for use by all incremental modules. If the -Network resource ID is required in the base template, then a -get\_resource must be used. +Module, in the modular approach, with their resource IDs exposed as outputs +(i.e., ONAP Base Module Output Parameters) for use by all incremental +modules. If the Network resource ID is required in the base template, +then a get\_resource must be used. R-68936 The VNF Heat **SHOULD** assign a unique {network-role} in the context of the VNF, when the internal network is -created. `ONAP Resource ID and Parameter Naming Convention`_ provides additional -details. +created. `ONAP Resource ID and Parameter Naming Convention`_ provides +additional details. VNFs may use **Cloud assigned IP addresses** or **predetermined static IPs** when attaching VMs to an internal network. @@ -2383,7 +2478,9 @@ VNFs may use **Cloud assigned IP addresses** or ONAP does not programmatically enforce a naming convention for parameters for internal network. However, a naming convention is -provided that must be followed. `ONAP Resource ID and Parameter Naming Convention`_ provides additional details. +provided that must be followed. +`ONAP Resource ID and Parameter Naming Convention`_ +provides additional details. ONAP Resource ID and Parameter Naming Convention ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -2420,9 +2517,11 @@ The {vm-type} should not contain the string “\_int” or “int\_” or “\_int\_”. It may cause the Pre-Amsterdam VNF Validation Program (i.e., ICE Project) process to produce erroneous error messages. -R-32394 The VNF Heat **MUST** use the same case for {vm-type} for all parameter names in the VNF. +R-32394 The VNF Heat **MUST** use the same case for {vm-type} for all +parameter names in the VNF. -R-46839 The VNF Heat **MUST** use the same case for {vm-type} for all Resource IDs in the VNF. +R-46839 The VNF Heat **MUST** use the same case for {vm-type} for all +Resource IDs in the VNF. It is recommended that the {vm-type} case in the parameter names matches the {vm-type} case in the Resource IDs. @@ -2430,9 +2529,10 @@ the {vm-type} case in the Resource IDs. There are two exceptions to the above rules: 1. R-05008 The VNF Heat **MUST NOT** be prefixed with a common - {vm-type} identifier for the six ONAP Metadata parameters. They are *vnf\_name*, *vnf\_id*, - *vf\_module\_id*, *vf\_module\_name, vm\_role*. The ONAP Metadata - parameters are described in `Resource: OS::Nova::Server – Metadata Parameters`_. + {vm-type} identifier for the six ONAP Metadata parameters. + They are *vnf\_name*, *vnf\_id*, *vf\_module\_id*, *vf\_module\_name, + vm\_role*. The ONAP Metadata parameters are described in + `Resource: OS::Nova::Server – Metadata Parameters`_. 2. R-15422 The VNF Heat **MUST NOT** be prefixed with a common {vm-type} identifier the parameter referring to the OS::Nova::Server property @@ -2443,17 +2543,18 @@ There are two exceptions to the above rules: The assignment of a {network-role} is discussed in `Networking`_. -R-21330 The VNF Heat **MUST** include -the {network-role} as part of the parameter name for any parameter that is associated with an external network. +R-21330 The VNF Heat **MUST** include the {network-role} as part of the +parameter name for any parameter that is associated with an external network. -R-11168 The VNF Heat **MUST** include -the {network-role} as part of the resource ID for any resource ID that is associated with an external network must. +R-11168 The VNF Heat **MUST** include the {network-role} as part of the +resource ID for any resource ID that is associated with an external network +must. -R-84322 The VNF Heat **MUST** include -int\_{network-role} as part of the parameter name for any parameter that is associated with an internal network. +R-84322 The VNF Heat **MUST** include int\_{network-role} as part of the +parameter name for any parameter that is associated with an internal network. -R-96983 The VNF Heat **MUST** include -int\_{network-role} as part of the resource ID for any resource ID that is associated with an internal network. +R-96983 The VNF Heat **MUST** include int\_{network-role} as part of the +resource ID for any resource ID that is associated with an internal network. Note that {network-role} must not be a substring of {vm-type}. A substring of a string is another string that occurs "in". For example, @@ -2465,10 +2566,11 @@ The {network-role} should not contain the string “\_int” or “int\_” or “\_int\_”. It may cause the Pre-Amsterdam VNF Validation Program (i.e., ICE Project) process to produce erroneous error messages. -R-58424 The VNF Heat **MUST** use the same case for {network-role} for all parameter names in the -VNF. +R-58424 The VNF Heat **MUST** use the same case for {network-role} for +all parameter names in the VNF. -R-21511 The VNF Heat **MUST** use the same case for {network-role} for all Resource IDs in the VNF. +R-21511 The VNF Heat **MUST** use the same case for {network-role} for +all Resource IDs in the VNF. It is recommended that the {network-role} case in the parameter names matches the {network-role} case in the Resource IDs. @@ -2478,8 +2580,9 @@ Resource IDs Heat Orchestration Template resources are described in `resources`_ -R-59629 The VNF Heat **MUST** have unique resource IDs within the resources section of a Heat -Orchestration Template. This is an OpenStack Requirement. +R-59629 The VNF Heat **MUST** have unique resource IDs within the +resources section of a Heat Orchestration Template. This is an +OpenStack Requirement. R-43319 The VNF Heat **MUST** have unique resource IDs across all modules that compose the VNF, @@ -2528,8 +2631,8 @@ than one network, the resource ID - should contain the term “shared” and/or contain text that identifies the VNF. -R-69287 The VNF Heat **MUST** use only alphanumeric characters and “\_” underscores in the -resource ID. Special characters must not be used. +R-69287 The VNF Heat **MUST** use only alphanumeric characters and “\_” +underscores in the resource ID. Special characters must not be used. All {index} values must be zero based. That is, the {index} must start at zero and increment by one. @@ -2537,60 +2640,63 @@ at zero and increment by one. The table below provides example OpenStack Heat resource ID for resources only associated with one {vm-type} and/or one network. -+--------------------------------+------------------------------------------------------------+ -| Resource Type | Resource ID Format | -+================================+============================================================+ -| OS::Cinder::Volume | {vm\_type}\_volume\_{index} | -+--------------------------------+------------------------------------------------------------+ -| OS::Cinder::VolumeAttachment | {vm\_type}\_volumeattachment\_{index} | -+--------------------------------+------------------------------------------------------------+ -| OS::Heat::CloudConfig | {vm\_type}\_RCC | -+--------------------------------+------------------------------------------------------------+ -| OS::Heat::MultipartMime | {vm\_type}\_RMM | -+--------------------------------+------------------------------------------------------------+ -| OS::Heat::ResourceGroup | {vm\_type}\_RRG | -+--------------------------------+------------------------------------------------------------+ -| OS::Heat::SoftwareConfig | {vm\_type}\_RSC | -+--------------------------------+------------------------------------------------------------+ -| OS::Neutron::Port | {vm\_type}\_{index}\_{network\_role}\_{index}\_port | -+--------------------------------+------------------------------------------------------------+ -| | {vm\_type}\_{index}\_int\_{network\_role}\_{index}\_port | -+--------------------------------+------------------------------------------------------------+ -| OS::Neutron::SecurityGroup | {vm\_type}\_RSG | -+--------------------------------+------------------------------------------------------------+ -| OS::Neutron::Subnet | {network\_role}\_subnet\_{index} | -+--------------------------------+------------------------------------------------------------+ -| OS::Nova::Server | {vm\_type}\_{index} | -+--------------------------------+------------------------------------------------------------+ -| OS::Nova::ServerGroup | {vm\_type}\_RSG | -+--------------------------------+------------------------------------------------------------+ -| OS::Swift::Container | {vm\_type}\_RSwiftC | -+--------------------------------+------------------------------------------------------------+ ++-----------------------------+--------------------------------------+ +| Resource Type | Resource ID Format | ++=============================+======================================+ +| OS::Cinder::Volume | {vm\_type}\_volume\_{index} | ++-----------------------------+--------------------------------------+ +| OS::Cinder::VolumeAttachment| {vm\_type}\_volumeattachment\_{index}| ++-----------------------------+--------------------------------------+ +| OS::Heat::CloudConfig | {vm\_type}\_RCC | ++-----------------------------+--------------------------------------+ +| OS::Heat::MultipartMime | {vm\_type}\_RMM | ++-----------------------------+--------------------------------------+ +| OS::Heat::ResourceGroup | {vm\_type}\_RRG | ++-----------------------------+--------------------------------------+ +| OS::Heat::SoftwareConfig | {vm\_type}\_RSC | ++-----------------------------+--------------------------------------+ +| OS::Neutron::Port | {vm\_type}\_{index}\ | +| | _{network\_role}\_{index}\_port | ++-----------------------------+--------------------------------------+ +| | {vm\_type}\_{index}\ | +| | _int\_{network\_role}\_{index}\_port | ++-----------------------------+--------------------------------------+ +| OS::Neutron::SecurityGroup | {vm\_type}\_RSG | ++-----------------------------+--------------------------------------+ +| OS::Neutron::Subnet | {network\_role}\_subnet\_{index} | ++-----------------------------+--------------------------------------+ +| OS::Nova::Server | {vm\_type}\_{index} | ++-----------------------------+--------------------------------------+ +| OS::Nova::ServerGroup | {vm\_type}\_RSG | ++-----------------------------+--------------------------------------+ +| OS::Swift::Container | {vm\_type}\_RSwiftC | ++-----------------------------+--------------------------------------+ Table 1: Example OpenStack Heat Resource ID The table below provides example Contrail Heat resource ID for resources only associated with one {vm-type} and/or one network. -+-------------------------------------------+---------------------------------------------+ -| Resource Type | Resource ID Format | -+===========================================+=============================================+ -| OS::ContrailV2::InstanceIp | {vm\_type}\_{index}\_{network\_role}\_RII | -+-------------------------------------------+---------------------------------------------+ -| OS::ContrailV2::InterfaceRouteTable | {network\_role}\_RIRT | -+-------------------------------------------+---------------------------------------------+ -| OS::ContrailV2::NetworkIpam | {network\_role}\_RNI | -+-------------------------------------------+---------------------------------------------+ -| OS::ContrailV2::PortTuple | {vm\_type}\_RPT | -+-------------------------------------------+---------------------------------------------+ -| OS::ContrailV2::ServiceHealthCheck | {vm\_type}\_RSHC\_{LEFT\|RIGHT} | -+-------------------------------------------+---------------------------------------------+ -| OS::ContrailV2::ServiceTemplate | {vm\_type}\_RST\_{index} | -+-------------------------------------------+---------------------------------------------+ -| OS::ContrailV2::VirtualMachineInterface | int\_{network\_role}\_RVMI | -+-------------------------------------------+---------------------------------------------+ -| OS::ContrailV2::VirtualNetwork | int\_{network\_role}\_RVN | -+-------------------------------------------+---------------------------------------------+ ++-------------------------------------------+---------------------------------+ +| Resource Type | Resource ID Format | ++===========================================+=================================+ +| OS::ContrailV2::InstanceIp | {vm\_type}\_{index}\ | +| | _{network\_role}\_RII | ++-------------------------------------------+---------------------------------+ +| OS::ContrailV2::InterfaceRouteTable | {network\_role}\_RIRT | ++-------------------------------------------+---------------------------------+ +| OS::ContrailV2::NetworkIpam | {network\_role}\_RNI | ++-------------------------------------------+---------------------------------+ +| OS::ContrailV2::PortTuple | {vm\_type}\_RPT | ++-------------------------------------------+---------------------------------+ +| OS::ContrailV2::ServiceHealthCheck | {vm\_type}\_RSHC\_{LEFT\|RIGHT} | ++-------------------------------------------+---------------------------------+ +| OS::ContrailV2::ServiceTemplate | {vm\_type}\_RST\_{index} | ++-------------------------------------------+---------------------------------+ +| OS::ContrailV2::VirtualMachineInterface | int\_{network\_role}\_RVMI | ++-------------------------------------------+---------------------------------+ +| OS::ContrailV2::VirtualNetwork | int\_{network\_role}\_RVN | ++-------------------------------------------+---------------------------------+ Table 2: Example Contrail Heat resource ID @@ -2618,21 +2724,27 @@ additional details. Note that the {vm\_type} must be identical across all four property parameters for a given OS::Nova::Server resource. -+-----------------------------+-------------------------------+------------------+------------------------------+---------------------------------+ -| Resource OS::Nova::Server | -+=============================+===============================+==================+==============================+=================================+ -| Property Name | ONAP Parameter Name | Parameter Type | Parameter Value Generation | ONAP Parameter Classification | -+-----------------------------+-------------------------------+------------------+------------------------------+---------------------------------+ -| image | {vm-type}\_image\_name | string | Environment File | ONAP Constant | -+-----------------------------+-------------------------------+------------------+------------------------------+---------------------------------+ -| flavor | {vm-type}\_flavor\_name | string | Environment File | ONAP Constant | -+-----------------------------+-------------------------------+------------------+------------------------------+---------------------------------+ -| name | {vm-type}\_name\_{index} | string | ONAP | ONAP Orchestration | -+-----------------------------+-------------------------------+------------------+------------------------------+---------------------------------+ -| | {vm-type}\_names | CDL | ONAP | ONAP Orchestration | -+-----------------------------+-------------------------------+------------------+------------------------------+---------------------------------+ -| availability\_zone | availability\_zone\_{index} | string | ONAP | ONAP Orchestration | -+-----------------------------+-------------------------------+------------------+------------------------------+---------------------------------+ ++----------------------------------------------------------------------------+ +| Resource OS::Nova::Server | ++--------------+----------------+----------+----------------+----------------+ +| Property Name| ONAP Parameter | Parameter| Parameter Value| ONAP Parameter | +| | Name | Type | Generation | Classification | ++==============+================+==========+================+================+ +| image | {vm-type}\ | string | Environment | ONAP | +| | _image\_name | string | File | Constant | ++--------------+----------------+----------+----------------+----------------+ +| flavor | {vm-type}\ | string | Environment | ONAP | +| | _flavor\_name | | File | Constant | ++--------------+----------------+----------+----------------+----------------+ +| name | {vm-type}\ | string | ONAP | ONAP | +| | _name\_{index} | | | Orchestration | ++--------------+----------------+----------+----------------+----------------+ +| | {vm-type}\ | CDL | ONAP | ONAP | +| | _names | | | Orchestration | ++--------------+----------------+----------+----------------+----------------+ +| availability\| availability\ | string | ONAP | ONAP | +| _zone | _zone\_{index} | | | Orchestration | ++--------------+----------------+----------+----------------+----------------+ Table 3 Resource Property Parameter Names @@ -2645,15 +2757,15 @@ parameter. The parameters must be named {vm-type}\_image\_name in the Heat Orchestration Template. -R-71152 The VNF Heat **MUST** declare as type: string the parameter for property image. +R-71152 The VNF Heat **MUST** declare as type: string the parameter +for property image. -R-91125 The VNF Heat **MUST** enumerate the parameter for property image in the Heat Orchestration Template -environment file. +R-91125 The VNF Heat **MUST** enumerate the parameter for property +image in the Heat Orchestration Template environment file. R-57282 The VNF Heat **MUST** have a separate parameter for image for -Each VM type (i.e., {vm-type}) -even if more than one {vm-type} shares the same image. This provides -maximum clarity and flexibility. +Each VM type (i.e., {vm-type}) even if more than one {vm-type} shares +the same image. This provides maximum clarity and flexibility. *Example Parameter Definition* @@ -2673,14 +2785,15 @@ parameter. The parameters must be named {vm-type}\_flavor\_name in the Heat Orchestration Template. -R-50436 The VNF Heat **MUST** declare the parameter property for flavor as type: string. +R-50436 The VNF Heat **MUST** declare the parameter property for +flavor as type: string. -R-69431 The VNF Heat **MUST** enumerate the parameter for property flavor in the Heat Orchestration Template -environment file. +R-69431 The VNF Heat **MUST** enumerate the parameter for property +flavor in the Heat Orchestration Template environment file. -R-40499 The VNF Heat **MUST** have a separate parameter for flavor for each VM type -(i.e., {vm-type}) even if more than one {vm-type} shares the same flavor. This -provides maximum clarity and flexibility. +R-40499 The VNF Heat **MUST** have a separate parameter for flavor for each +VM type (i.e., {vm-type}) even if more than one {vm-type} shares the same +flavor. This provides maximum clarity and flexibility. *Example Parameter Definition* @@ -2702,8 +2815,8 @@ The parameter value is provided to the Heat template by ONAP. R-22838 The VNF Heat **MUST NOT** enumerate the parameter for property name in the environment file. -R-51430 The VNF Heat **MUST** declare the parameter for property name as type: string or type: -comma\_delimited\_list +R-51430 The VNF Heat **MUST** declare the parameter for property name as +type: string or type: comma\_delimited\_list If the parameter is declared as type:string, the parameter must be named {vm-type}\_name\_{index}, where {index} is a numeric value that starts @@ -2806,8 +2919,8 @@ Orchestration parameter. The parameter value is provided to the Heat template by ONAP. The parameter must not be enumerated in the environment file. -R-98450 The VNF Heat **MUST** name the parameter availability\_zone\_{index} in the Heat -Orchestration Template. +R-98450 The VNF Heat **MUST** name the parameter availability\_zone\_{index} +in the Heat Orchestration Template. R-13561 The VNF Heat **MUST** start the {index} at zero. @@ -2906,8 +3019,8 @@ The resource OS::Nova::Server has an OpenStack optional property metadata. The metadata property is mandatory for ONAP Heat Orchestration Templates; it must be included. -R-17020 The VNF Heat **MUST** include the following three mandatory metadata parameters for an -OS::Nova::Server resource: +R-17020 The VNF Heat **MUST** include the following three mandatory +metadata parameters for an OS::Nova::Server resource: - vnf\_id @@ -2931,22 +3044,24 @@ parameter names must not change. The table below provides a summary. The sections that follow provides additional details. -+---------------------------+------------------+----------------------+------------------------------+ -| Metadata Parameter Name | Parameter Type | Mandatory/Optional | Parameter Value Generation | -+===========================+==================+======================+==============================+ -| vnf\_id | string | Mandatory | ONAP | -+---------------------------+------------------+----------------------+------------------------------+ -| vf\_module\_id | string | Mandatory | ONAP | -+---------------------------+------------------+----------------------+------------------------------+ -| vnf\_name | string | Mandatory | ONAP | -+---------------------------+------------------+----------------------+------------------------------+ -| vf\_module\_name | string | Optional | ONAP | -+---------------------------+------------------+----------------------+------------------------------+ -| vm\_role | string | Optional | YAML or Environment File | -+---------------------------+------------------+----------------------+------------------------------+ -+---------------------------+------------------+----------------------+------------------------------+ - - Table 4: ONAP Metadata ++-------------------+----------+-------------------+----------------+ +| Metadata Parameter| Parameter| Mandatory/Optional| Parameter Value| +| Name | Type | | Generation | ++===================+==========+===================+================+ +| vnf\_id | string | Mandatory | ONAP | ++-------------------+----------+-------------------+----------------+ +| vf\_module\_id | string | Mandatory | ONAP | ++-------------------+----------+-------------------+----------------+ +| vnf\_name | string | Mandatory | ONAP | ++-------------------+----------+-------------------+----------------+ +| vf\_module\_name | string | Optional | ONAP | ++-------------------+----------+-------------------+----------------+ +| vm\_role | string | Optional | YAML or | +| | | | Environment | +| | | | File | ++-------------------+----------+-------------------+----------------+ + +Table 4: ONAP Metadata vnf\_id ~~~~~~~~~ @@ -2960,9 +3075,11 @@ Template at orchestration time. The parameter must be declared as type: string -R-55218 The VNF Heat **MUST NOT** have parameter constraints defined for the OS::Nova::Server metadata parameter vnf\_id. +R-55218 The VNF Heat **MUST NOT** have parameter constraints defined +for the OS::Nova::Server metadata parameter vnf\_id. -R-20856 The VNF Heat **MUST NOT** enumerate the OS::Nova::Server metadata parameter vnf\_id in environment file. +R-20856 The VNF Heat **MUST NOT** enumerate the OS::Nova::Server +metadata parameter vnf\_id in environment file. *Example Parameter Definition* @@ -2985,9 +3102,11 @@ Heat Orchestration Template at orchestration time. The parameter must be declared as type: string -R-98374 The VNF Heat **MUST NOT** have parameter constraints defined for the OS::Nova::Server metadata parameter vf\_module\_id. +R-98374 The VNF Heat **MUST NOT** have parameter constraints +defined for the OS::Nova::Server metadata parameter vf\_module\_id. -R-72871 The VNF Heat **MUST NOT** enumerate the OS::Nova::Server metadata parameter vf\_module\_id in environment file. +R-72871 The VNF Heat **MUST NOT** enumerate the OS::Nova::Server +metadata parameter vf\_module\_id in environment file. *Example Parameter Definition* @@ -3010,9 +3129,11 @@ time. The parameter must be declared as type: string -R-44318 The VNF Heat **MUST NOT** have parameter constraints defined for the OS::Nova::Server metadata parameter vnf\_name. +R-44318 The VNF Heat **MUST NOT** have parameter constraints defined +for the OS::Nova::Server metadata parameter vnf\_name. -R-36542 The VNF Heat **MUST NOT** enumerate the OS::Nova::Server metadata parameter vnf\_name in the environment file. +R-36542 The VNF Heat **MUST NOT** enumerate the OS::Nova::Server +metadata parameter vnf\_name in the environment file. *Example Parameter Definition* @@ -3187,37 +3308,49 @@ When the parameter references an external network - the parameter is classified as an ONAP Orchestration Parameter -+----------------------------------------+-----------------------------------------------+--------------------------+ -| Property Name | ONAP Parameter Name | Parameter Type | -+========================================+===============================================+==========================+ -| network | {network-role}\_net\_id | string | -+----------------------------------------+-----------------------------------------------+--------------------------+ -| | {network-role}\_net\_name | string | -+----------------------------------------+-----------------------------------------------+--------------------------+ -| fixed\_ips, ip\_address | {vm-type}\_{network-role}\_ip\_{index} | string | -+----------------------------------------+-----------------------------------------------+--------------------------+ -| | {vm-type}\_{network-role}\_ips | comma\_delimited\_list | -+----------------------------------------+-----------------------------------------------+--------------------------+ -| | {vm-type}\_{network-role}\_v6\_ip\_{index} | string | -+----------------------------------------+-----------------------------------------------+--------------------------+ -| | {vm-type}\_{network-role}\_v6\_ips | comma\_delimited\_list | -+----------------------------------------+-----------------------------------------------+--------------------------+ -| fixed\_ips, subnet | {network-role}\_subnet\_id | string | -+----------------------------------------+-----------------------------------------------+--------------------------+ -| | {network-role}\_v6\_subnet\_id | string | -+----------------------------------------+-----------------------------------------------+--------------------------+ -| allowed\_address\_pairs, ip\_address | {vm-type}\_{network-role}\_floating\_ip | string | -+----------------------------------------+-----------------------------------------------+--------------------------+ -| | {vm-type}\_{network-role}\_floating\_v6\_ip | string | -+----------------------------------------+-----------------------------------------------+--------------------------+ -| | {vm-type}\_{network-role}\_ip\_{index} | string | -+----------------------------------------+-----------------------------------------------+--------------------------+ -| | {vm-type}\_{network-role}\_ips | comma\_delimited\_list | -+----------------------------------------+-----------------------------------------------+--------------------------+ -| | {vm-type}\_{network-role}\_v6\_ip\_{index} | string | -+----------------------------------------+-----------------------------------------------+--------------------------+ -| | {vm-type}\_{network-role}\_v6\_ips | comma\_delimited\_list | -+----------------------------------------+-----------------------------------------------+--------------------------+ ++----------------------+---------------------------+--------------------------+ +| Property Name | ONAP Parameter Name | Parameter Type | ++======================+===========================+==========================+ +| network | {network-role}\_net\_id | string | +| +---------------------------+--------------------------+ +| | {network-role}\_net\_name | string | ++----------------------+---------------------------+--------------------------+ +| fixed\_ips, | {vm-type}\_{network-role}\| string | +| ip\_address | _ip\_{index} | | +| +---------------------------+--------------------------+ +| | {vm-type}\_{network-role}\| comma\_delimited\_list | +| | _ips | | +| +---------------------------+--------------------------+ +| | {vm-type}\_{network-role}\| string | +| | _v6\_ip\_{index} | | +| +---------------------------+--------------------------+ +| | {vm-type}\_{network-role}\| comma\_delimited\_list | +| | _v6\_ips | | ++----------------------+---------------------------+--------------------------+ +| fixed\_ips, subnet | {network-role}\ | string | +| | _subnet\_id | | +| +---------------------------+--------------------------+ +| | {network-role}\ | string | +| | _v6\_subnet\_id | | ++----------------------+---------------------------+--------------------------+ +| allowed\_address | {vm-type}\_{network-role}\| string | +| \_pairs, ip\_address | _floating\_ip | | +| +---------------------------+--------------------------+ +| | {vm-type}\_{network-role}\| string | +| | _floating\_v6\_ip | | +| +---------------------------+--------------------------+ +| | {vm-type}\_{network-role}\| string | +| | _ip\_{index} | | +| +---------------------------+--------------------------+ +| | {vm-type}\_{network-role}\| comma\_delimited\_list | +| | _ips | | +| +---------------------------+--------------------------+ +| | {vm-type}\_{network-role}\| string | +| | _v6\_ip\_{index} | | +| +---------------------------+--------------------------+ +| | {vm-type}\_{network-role}\| comma\_delimited\_list | +| | _v6\_ips | | ++----------------------+---------------------------+--------------------------+ Table 5: OS::Neutron::Port Resource Property Parameters (External Networks) @@ -3227,41 +3360,57 @@ Internal Networks When the parameter references an internal network -- R-57576 The VNF Heat **MUST** contain int\_{network-role} in the parameter name. +- R-57576 The VNF Heat **MUST** contain int\_{network-role} + in the parameter name. - the parameter may be enumerated in the environment file. -+----------------------------------------+----------------------------------------------------+--------------------------+ -| Property | Parameter Name for Internal Networks | Parameter Type | -+========================================+====================================================+==========================+ -| network | int\_{network-role}\_net\_id | string | -+----------------------------------------+----------------------------------------------------+--------------------------+ -| | int\_{network-role}\_net\_name | string | -+----------------------------------------+----------------------------------------------------+--------------------------+ -| fixed\_ips, ip\_address | {vm-type}\_int\_{network-role}\_ip\_{index} | string | -+----------------------------------------+----------------------------------------------------+--------------------------+ -| | {vm-type}\_int\_{network-role}\_ips | comma\_delimited\_list | -+----------------------------------------+----------------------------------------------------+--------------------------+ -| | {vm-type}\_int\_{network-role}\_v6\_ip\_{index} | string | -+----------------------------------------+----------------------------------------------------+--------------------------+ -| | {vm-type}\_int\_{network-role}\_v6\_ips | comma\_delimited\_list | -+----------------------------------------+----------------------------------------------------+--------------------------+ -| fixed\_ips, subnet | int\_{network-role}\_subnet\_id | string | -+----------------------------------------+----------------------------------------------------+--------------------------+ -| | int\_{network-role}\_v6\_subnet\_id | string | -+----------------------------------------+----------------------------------------------------+--------------------------+ -| allowed\_address\_pairs, ip\_address | {vm-type}\_int\_{network-role}\_floating\_ip | string | -+----------------------------------------+----------------------------------------------------+--------------------------+ -| | {vm-type}\_int\_{network-role}\_floating\_v6\_ip | string | -+----------------------------------------+----------------------------------------------------+--------------------------+ -| | {vm-type}\_int\_{network-role}\_ip\_{index} | string | -+----------------------------------------+----------------------------------------------------+--------------------------+ -| | {vm-type}\_int\_{network-role}\_ips | comma\_delimited\_list | -+----------------------------------------+----------------------------------------------------+--------------------------+ -| | {vm-type}\_int\_{network-role}\_v6\_ip\_{index} | string | -+----------------------------------------+----------------------------------------------------+--------------------------+ -| | {vm-type}\_int\_{network-role}\_v6\_ips | comma\_delimited\_list | -+----------------------------------------+----------------------------------------------------+--------------------------+ ++-------------------------+--------------------------------+-----------------+ +| Property | Parameter Name for | Parameter Type | +| | Internal Networks | | ++=========================+================================+=================+ +| network | int\_{network-role}\ | string | +| | _net\_id | | +| +--------------------------------+-----------------+ +| | int\_{network-role}\ | string | +| | _net\_name | | ++-------------------------+--------------------------------+-----------------+ +| fixed\_ips, ip\_address | {vm-type}\_int\_{network-role}\| string | +| | _ip\_{index} | | +| +--------------------------------+-----------------+ +| | {vm-type}\_int\_{network-role}\| comma\ | +| | _ips | _delimited\_list| +| +--------------------------------+-----------------+ +| | {vm-type}\_int\_{network-role}\| string | +| | _v6\_ip\_{index} | | +| +--------------------------------+-----------------+ +| | {vm-type}\_int\_{network-role}\| comma\ | +| | _v6\_ips | _delimited\_list| ++-------------------------+--------------------------------+-----------------+ +| fixed\_ips, subnet | int\_{network-role}\ | string | +| | _subnet\_id | | +| +--------------------------------+-----------------+ +| | int\_{network-role}\ | string | +| | _v6\_subnet\_id | | ++-------------------------+--------------------------------+-----------------+ +| allowed\_address\_pairs,| {vm-type}\_int\_{network-role}\| string | +| ip\_address | _floating\_ip | | +| +--------------------------------+-----------------+ +| | {vm-type}\_int\_{network-role}\| string | +| | _floating\_v6\_ip | | +| +--------------------------------+-----------------+ +| | {vm-type}\_int\_{network-role}\| string | +| | _ip\_{index} | | +| +--------------------------------+-----------------+ +| | {vm-type}\_int\_{network-role}\| comma\ | +| | _ips | _delimited\_list| +| +--------------------------------+-----------------+ +| | {vm-type}\_int\_{network-role}\| string | +| | _v6\_ip\_{index} | | +| +--------------------------------+-----------------+ +| | {vm-type}\_int\_{network-role}\| comma\ | +| | _v6\_ips | _delimited\_list| ++-------------------------+--------------------------------+-----------------+ Table 6: Port Resource Property Parameters (Internal Networks) @@ -3276,8 +3425,8 @@ External Networks ++++++++++++++++++ R-93272 The VNF Heat **MUST** adhere to the following parameter naming -convention in the Heat Orchestration Template, when the parameter associated with the property network is referencing -an “external” network: +convention in the Heat Orchestration Template, when the parameter +associated with the property network is referencing an “external” network: - {network-role}\_net\_id for the Neutron network ID @@ -3323,8 +3472,8 @@ Internal Networks ++++++++++++++++++ R-65373 The VNF Heat **MUST** adhere to the following parameter naming -convention, when the parameter associated with the property network is referencing -an “internal” network: +convention, when the parameter associated with the property network is +referencing an “internal” network: - int\_{network-role}\_net\_id for the Neutron network ID @@ -3370,9 +3519,10 @@ assigned IP addresses. Subnet of an External Networks +++++++++++++++++++++++++++++++ -R-47716 The VNF Heat **MUST** adhere to the following parameter naming convention -for the property fixed\_ips and Map Property subnet\_id parameter, -when the parameter is referencing a subnet of an “external” network. +R-47716 The VNF Heat **MUST** adhere to the following parameter naming +convention for the property fixed\_ips and Map Property subnet\_id +parameter, when the parameter is referencing a subnet of an +“external” network. - {network-role}\_subnet\_id if the subnet is an IPv4 subnet @@ -3500,8 +3650,9 @@ An IP address is assigned to a port on a VM (referenced by {vm-type}) that is connected to an external network (referenced by {network-role}) or internal network (referenced by int\_{network-role}). -R-41177 The VNF Heat **MUST** include {vm-type} and {network-role} in the parameter name, -when a SDN-C IP assignment is made to a port connected to an external network. +R-41177 The VNF Heat **MUST** include {vm-type} and {network-role} +in the parameter name, when a SDN-C IP assignment is made to a +port connected to an external network. When a SDN-C IP assignment is made to a port connected to an internal network, the parameter name must contain {vm-type} and @@ -3603,7 +3754,8 @@ The parameter must not be enumerated in the Heat environment file. type: string description: Fixed IPv6 assignment for {vm-type} VM {index} on the{network-role} network -*Example: string parameters for IPv4 and IPv6 Address Assignments to an external network* +*Example: string parameters for IPv4 and IPv6 Address Assignments +to an external network* In this example, the {network-role} has been defined as “oam” to represent an oam network and the {vm-type} has been defined as “db” for @@ -3753,7 +3905,8 @@ every VNF instance. type: string description: Fixed IPv6 assignment for {vm-type} VM {index} on the{network-role} network -*Example: string parameters for IPv4 and IPv6 Address Assignments to an internal network* +*Example: string parameters for IPv4 and IPv6 Address Assignments +to an internal network* In this example, the {network-role} has been defined as oam\_int to represent an oam network internal to the vnf. The role oam\_int was @@ -3898,9 +4051,9 @@ an oam network and the {vm-type} has been defined as db for database. Internal Networks +++++++++++++++++++ -R-16805 The VNF Heat **MUST** adhere to the following naming convention for the property -allowed\_address\_pairs and Map Property ip\_address parameter -when the parameter is referencing an “internal” network. +R-16805 The VNF Heat **MUST** adhere to the following naming convention +for the property allowed\_address\_pairs and Map Property ip\_address +parameter when the parameter is referencing an “internal” network. - {vm-type}\_int\_{network-role}\_floating\_ip for an IPv4 address @@ -4035,7 +4188,8 @@ Resource Property “name” ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The parameter naming convention of the property name for the resource -OS::Nova::Server has been defined in `Resource: OS::Nova::Server – Metadata Parameters`_. +OS::Nova::Server has been defined in +`Resource: OS::Nova::Server – Metadata Parameters`_. This section provides the requirements how the property name for non OS::Nova::Server resources must be defined when the property is used. @@ -4122,7 +4276,8 @@ the only special characters supported are: ONAP Output Parameter Names ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -ONAP defines three types of Output Parameters as detailed in `Output Parameters`_. +ONAP defines three types of Output Parameters as detailed in +`Output Parameters`_. ONAP Base Module Output Parameters: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -4459,9 +4614,9 @@ The following rules apply to independent volume Heat templates: - A single Cinder volume module must include all Cinder volumes needed by the Base/Incremental module. -- R-79531 The VNF Heat **MUST** define “outputs” in the volume template for each Cinder volume - resource universally unique identifier (UUID) (i.e. ONAP Volume - Template Output Parameters). +- R-79531 The VNF Heat **MUST** define “outputs” in the volume + template for each Cinder volume resource universally unique + identifier (UUID) (i.e. ONAP Volume Template Output Parameters). - The VNF Incremental Module or Base Module must define input parameters that match each Volume output parameter (i.e., ONAP Volume @@ -4558,7 +4713,8 @@ environment file for a Base Module. R-35727 The VNF Heat **MUST** have a corresponding environment file for an Incremental module. -R-22656 The VNF Heat **MUST** have a corresponding environment file for a Cinder Volume Module. +R-22656 The VNF Heat **MUST** have a corresponding environment file +for a Cinder Volume Module. A nested heat template must not have an environment file; OpenStack does not support it. @@ -4568,9 +4724,10 @@ Orchestration Constants and VNF Orchestration Constants. These parameters are identical across all instances of a VNF type, and expected to change infrequently. The ONAP Orchestration Constants are associated with OS::Nova::Server image and flavor properties (See -`Property: image`_ and `Property: flavor`_). Examples of VNF Orchestration Constants are the networking -parameters associated with an internal network (e.g., private IP ranges) -and Cinder volume sizes. +`Property: image`_ and `Property: flavor`_). Examples of VNF +Orchestration Constants are the networking parameters associated +with an internal network (e.g., private IP ranges) and Cinder +volume sizes. The environment file must not contain parameter values for parameters that are instance specific (ONAP Orchestration Parameters, VNF @@ -4639,8 +4796,9 @@ be used. R-89868 The VNF Heat **MUST** have unique file names within the scope of the VNF for a nested heat yaml file. -R-52530 The VNF Heat **MUST NOT** use a directory hierarchy for nested templates. All -templates must be in a single, flat directory (per VNF). +R-52530 The VNF Heat **MUST NOT** use a directory hierarchy for +nested templates. All templates must be in a single, flat directory +(per VNF). A nested heat template may be used by any module within a given VNF. @@ -4649,8 +4807,9 @@ Note that: - Constrains must not be defined for any parameter enumerated in a nested heat template. -- R-11041 The VNF Heat **MUST** have the resource calling the nested yaml file pass - in as properties all parameters defined in nested yaml file. +- R-11041 The VNF Heat **MUST** have the resource calling the + nested yaml file pass in as properties all parameters defined + in nested yaml file. - R-61183 The VNF Heat **MUST NOT** change the parameter names, when OS::Nova::Server metadata parameters are past into a nested heat template. @@ -4878,9 +5037,9 @@ a VM on startup via the “personality” property. Support for Heat Files is subject to the following limitations: -R-76718 The VNF Heat **MUST** reference the get\_files targets in Heat templates by file -name, and the corresponding files should be delivered to ONAP along -with the Heat templates. +R-76718 The VNF Heat **MUST** reference the get\_files targets in +Heat templates by file name, and the corresponding files should be +delivered to ONAP along with the Heat templates. R-41888 The VNE Heat **MUST NOT** use URL-based file retrieval. @@ -5145,19 +5304,21 @@ validated and tested. 2. The VNF Provider supplies a vendor-specific VNFM driver in ONAP, which is a microservice providing a translation interface from VF-C to -the vendor-specific VNFM. The interface definitions of vendor-specific VNFM adaptors are supplied by -the VNF Providers themselves. +the vendor-specific VNFM. The interface definitions of vendor-specific +VNFM adaptors are supplied by the VNF Providers themselves. Creating Vendor-Specific VNFM Adaptor Microservices ------------------------------------------------------------------------------------------------ -VNFs can be managed by vendor-specific VNFMs. To add a vendor-specific VNFM to ONAP, a -vendor-specific VNFM adaptor is added to ONAP implementing the interface of the vendor-specific VNFM. +VNFs can be managed by vendor-specific VNFMs. To add a vendor-specific +VNFM to ONAP, a vendor-specific VNFM adaptor is added to ONAP implementing +the interface of the vendor-specific VNFM. -A vendor-specific VNFM adaptor is a microservice with a unique name and an appointed -port. When started up, the vendor-specific VNFM adaptor microservice is automatically registered to the -Microservices Bus (MSB). The following RESTful example describes the scenario of -registering a vendor-specific VNFM adaptor to MSB: +A vendor-specific VNFM adaptor is a microservice with a unique name and +an appointed port. When started up, the vendor-specific VNFM adaptor +microservice is automatically registered to the Microservices Bus (MSB). +The following RESTful example describes the scenario of registering a +vendor-specific VNFM adaptor to MSB: .. code-block:: java diff --git a/docs/Chapter7.rst b/docs/Chapter7.rst index 257f19f..8a24cd1 100644 --- a/docs/Chapter7.rst +++ b/docs/Chapter7.rst @@ -970,105 +970,242 @@ commands from ONAP. Table 8. ONAP Controller APIs and NETCONF Commands -+---------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| **Action** | **Description** | **NETCONF Commands** | -+=====================+==================================================================================================================================================================================================================================================================================+===============================================================================================================================================================================================================================+ -| Action | Queries ONAP Controller for the current state of a previously submitted runtime LCM (Lifecycle Management) action. | There is currently no way to check the request status in NETCONF so action status is managed internally by the ONAP controller. | -| | | | -| Status | | | -+---------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| Audit, Sync | Compare active (uploaded) configuration against the current configuration in the ONAP controller. Audit returns failure if different. Sync considers the active (uploaded) configuration as the current configuration. | The operation is used to retrieve the running configuration from the VNF. | -+---------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| Lock, | Returns true when the given VNF has been locked. | There is currently no way to query lock state in NETCONF so VNF locking and unlocking is managed internally by the ONAP controller. | -| | | | -| Unlock, | | | -| | | | -| CheckLock | | | -+---------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| Configure, | Configure applies a post-instantiation configuration the target VNF or VNFC. ConfigModify updates only a subset of the total configuration parameters of a VNF. | The operation loads all or part of a specified configuration data set to the specified target database. If there is no database, then the target is the database. A follows. | -| | | | -| ConfigModify | | | -+---------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| Health | Executes a VNF health check and returns the result. A health check is VNF-specific. | This command has no existing NETCONF RPC action. It must be supported either by REST (see `VNF REST APIs`_) or using Ansible or Chef. | -| | | | -| Check | | | -+---------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| StartApplication, | ONAP requests application to be started or stopped on the VNF. These actions do not need to be supported if (1) the application starts automatically after Configure or if the VM’s are started and (2) the application gracefully shuts down if the VM’s are stopped. | These commands have no specific NETCONF RPC action. | -| | | | -| StopApplication | | If applicable, these commands must be supported using Ansible or Chef (see Table 9 below). | -+---------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| ConfigBackup, | ONAP requests the VNF configuration parameters to be backed up or restored (replacing existing configuration parameters on the VNF). | These commands have no specific NETCONF RPC action. | -| | | | -| ConfigRestore | | They can be supported using Ansible or Chef (see Table 9 below). | -+---------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ ++------------------+---------------------------------+------------------------+ +| **Action** | **Description** | **NETCONF Commands** | ++==================+=================================+========================+ +| Action | Queries ONAP Controller for the | There is currently no | +| Status | current state of a previously | way to check the | +| | submitted runtime LCM (Lifecycle| request status in | +| | Management) action. | NETCONF so action | +| | | status is managed | +| | | internally by the ONAP | +| | | controller. | ++------------------+---------------------------------+------------------------+ +| Audit, Sync | Compare active (uploaded) | The | +| | configuration against the | operation is used to | +| | current configuration in the | retrieve the running | +| | ONAP controller. Audit returns | configuration from the | +| | failure if different. Sync | VNF. | +| | considers the active (uploaded) | | +| | configuration as the current | | +| | configuration. | | ++------------------+---------------------------------+------------------------+ +| Lock, | Returns true when the given VNF | There is currently no | +| Unlock, | has been locked. | way to query lock state| +| CheckLock | | in NETCONF so VNF | +| | | locking and unlocking | +| | | is managed internally | +| | | by the ONAP controller.| ++------------------+---------------------------------+------------------------+ +| Configure, | Configure applies a | The | +| ConfigModify | post-instantiation configuration| operation loads all or | +| | the target VNF or VNFC. | part of a specified | +| | ConfigModify updates only a | configuration data set | +| | subset of the total | to the specified target| +| | configuration parameters of a | database. If there is | +| | VNF. | no | +| | | database, then the | +| | | target is the | +| | | database. A | +| | | follows. | ++------------------+---------------------------------+------------------------+ +| Health | Executes a VNF health check and | This command has no | +| Check | returns the result. A health | existing NETCONF RPC | +| | check is VNF-specific. | action. It must be | +| | | supported either by | +| | | REST (see | +| | | `VNF REST APIs`_) or | +| | | using Ansible or Chef. | ++------------------+---------------------------------+------------------------+ +| StartApplication,| ONAP requests application to be | These commands have no | +| StopApplication | started or stopped on the VNF. | specific NETCONF RPC | +| | These actions do not need to be | action. | +| | supported if (1) the application| | +| | starts automatically after | | +| | Configure or if the VM’s are | | +| | started and (2) the application | | +| | gracefully shuts down if the | | +| | VM’s are stopped. | | +| | | | +| | | If applicable, these | +| | | commands must be | +| | | supported using Ansible| +| | | or Chef (see Table 9 | +| | | below). | ++------------------+---------------------------------+------------------------+ +| ConfigBackup, | ONAP requests the VNF | These commands have no | +| ConfigRestore | configuration parameters to be | specific NETCONF RPC | +| | backed up or restored (replacing| action. | +| | existing configuration | | +| | parameters on the VNF). | | +| | | | +| | | They can be supported | +| | | using Ansible or Chef | +| | | (see Table 9 below). | ++------------------+---------------------------------+------------------------+ Table 9 lists the required Chef and Ansible support for commands from ONAP. Table 9. ONAP Controller APIs and Chef/Ansible Support -+---------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| **Action** | **Chef** | **Ansible** | -+=====================+==================================================================================================================================================================================================================================================================================================+=============================================================================================================================================================================================================================================================================================+ -| Action | Not needed. ActionStatus is managed internally by the ONAP controller. | Not needed. ActionStatus is managed internally by the ONAP controller. | -| | | | -| Status | | | -+---------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| Audit, Sync | VNF provider must provide any necessary roles, cookbooks, recipes to retrieve the running configuration from a VNF and place it in the respective Node Objects ‘PushJobOutput’ attribute of all nodes in NodeList when triggered by a chef-client run. | VNF provider must provide an Ansible playbook to retrieve the running configuration from a VNF and place the output on the Ansible server in a manner aligned with playbook requirements listed in this document. | -| | | | -| | The JSON file for this VNF action is required to set “PushJobFlag” to “True” and “GetOutputFlag” to “True”. The “Node” JSON dictionary must have the run list populated with the necessary sequence of roles, cookbooks, recipes. | The PlaybookName must be provided in the JSON file. | -| | | | -| | The Environment and Node values should contain all appropriate configuration attributes. | NodeList must list FQDNs of an example VNF on which to execute playbook. | -| | | | -| | NodeList must list sample FQDNs that are required to conduct a chef-client run for this VNF Action. | | -+---------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| Lock, | Not needed. VNF locking and unlocking is managed internally by the ONAP controller. | Not needed. VNF locking and unlocking is managed internally by the ONAP controller. | -| | | | -| Unlock, | | | -| | | | -| CheckLock | | | -+---------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| Configure, | VNF provider must provide any necessary roles, cookbooks, recipes to apply configuration attributes to the VNF when triggered by a chef-client run. All configurable attributes must be obtained from the Environment and Node objects on the Chef Server. | VNF provider must provide an Ansible playbook that can configure the VNF with parameters supplied by the Ansible Server. | -| | | | -| ConfigModify | The JSON file for this VNF action should include all configurable attributes in the Environment and/or Node JSON dictionary. | The PlaybookName must be provided in the JSON file. | -| | | | -| | The “PushJobFlag” must be set to “True”. | The “EnvParameters” and/or “FileParameters” field values should be provided and contain all configurable parameters for the VNF. | -| | | | -| | The “Node” JSON dictionary must have the run list populated with necessary sequence of roles, cookbooks, recipes. This action is not expected to return an output. | NodeList must list FQDNs of an example VNF on which to execute playbook. | -| | | | -| | “GetOutputFlag” must be set to “False”. | | -| | | | -| | NodeList must list sample FQDNs that are required to conduct a chef-client run for this VNF Action. | | -+---------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| Health | The VNF level HealthCheck run a check over the entire scope of the VNF (for more details, see `VNF REST APIs`_). It can be supported either via a REST interface or with Chef roles, cookbooks, and recipes. | The VNF level HealthCheck run a check over the entire scope of the VNF (for more details, see `VNF REST APIs`_). It can be supported either via a REST interface or with an Ansible playbook. | -| | | | -| Check | | | -+---------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| StartApplication, | VNF provider must provide roles, cookbooks, recipes to start an application on the VNF when triggered by a chef-client run. If application does not start, the run must fail or raise an exception. If application is already started, or starts successfully, the run must finish successfully. | VNF provider must provide an Ansible playbook to start the application on the VNF. If application does not start, the playbook must indicate failure. If application is already started, or starts successfully, the playbook must finish successfully. | -| | | | -| StopApplication | For StopApplication, the application must be stopped gracefully (no loss of traffic). | For StopApplication, the application must be stopped gracefully (no loss of traffic). | -+---------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| ConfigBackup, | VNF provider must provide roles, cookbooks, recipes to backup or restore the configuration parameters on the VNF when triggered by an ECOMP request. | VNF provider must provide an Ansible playbook to backup or restore the configuration parameters on the VNF when triggered by an ECOMP request. | -| | | | -| | When the ConfigBackup command is executed, the current VNF configuration parameters are copied over to the Ansible or Chef server (if there is an existing set of backed up parameters, they are overwritten). When the ConfigRestore command is executed, the VNF configuration parameters | When the ConfigBackup command is executed, the current VNF configuration parameters are copied over to the Ansible or Chef server (if there is an existing set of backed up parameters, they are overwritten). When the ConfigRestore command is executed, the VNF configuration parameters | -| ConfigRestore | which are backed up on the Ansible or Chef server are applied to the VNF (replacing existing parameters). It can be assumed that the VNF is not in service when a ConfigRestore command is executed. | which are backed up on the Ansible or Chef server are applied to the VNF (replacing existing parameters). It can be assumed that the VNF is not in service when a ConfigRestore command is executed. | -| | | | -| | If either command fails, the run must fail or raise an exception. | If either command fails, the run must fail or raise an exception. | -+---------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ ++------------------+------------------------------+---------------------------+ +| **Action** | **Chef** | **Ansible** | ++==================+==============================+===========================+ +| Action | Not needed. ActionStatus is | Not needed. ActionStatus | +| Status | managed internally by the | is managed internally by | +| | ONAP controller. | the ONAP controller. | ++------------------+------------------------------+---------------------------+ +| Audit, Sync | VNF provider must provide any| VNF provider must provide | +| | necessary roles, cookbooks, | an Ansible playbook to | +| | recipes to retrieve the | retrieve the running | +| | running configuration from a | configuration from a VNF | +| | VNF and place it in the | and place the output on | +| | respective Node Objects | the Ansible server in a | +| | ‘PushJobOutput’ attribute of | manner aligned with | +| | all nodes in NodeList when | playbook requirements | +| | triggered by a chef-client | listed in this document. | +| | run. | | +| | | | +| | The JSON file for this VNF | The PlaybookName must be | +| | action is required to set | provided in the JSON file.| +| | “PushJobFlag” to “True” and | | +| | “GetOutputFlag” to “True”. | | +| | The “Node” JSON dictionary | | +| | must have the run list | | +| | populated with the necessary | | +| | sequence of roles, cookbooks,| | +| | recipes. | | +| | | | +| | The Environment and Node | NodeList must list FQDNs | +| | values should contain all | of an example VNF on which| +| | appropriate configuration | to execute playbook. | +| | attributes. | | +| | | | +| | NodeList must list sample | | +| | FQDNs that are required to | | +| | conduct a chef-client run for| | +| | this VNF Action. | | ++------------------+------------------------------+---------------------------+ +| Lock, | Not needed. VNF locking and | Not needed. VNF locking | +| Unlock, | unlocking is managed | and unlocking is managed | +| CheckLock | internally by the ONAP | internally by the ONAP | +| | controller. | controller. | ++------------------+------------------------------+---------------------------+ +| Configure, | VNF provider must provide any| VNF provider must provide | +| ConfigModify | necessary roles, cookbooks, | an Ansible playbook that | +| | recipes to apply | can configure the VNF with| +| | configuration attributes to | parameters supplied by the| +| | the VNF when triggered by a | Ansible Server. | +| | chef-client run. All | | +| | configurable attributes must | | +| | be obtained from the | | +| | Environment and Node objects | | +| | on the Chef Server. | | +| | | | +| | The JSON file for this VNF | The PlaybookName must be | +| | action should include all | provided in the JSON file.| +| | configurable attributes in | | +| | the Environment and/or Node | | +| | JSON dictionary. | | +| | | | +| | The “PushJobFlag” must be set| The “EnvParameters” and/or| +| | to “True”. | “FileParameters” field | +| | | values should be provided | +| | | and contain all | +| | | configurable parameters | +| | | for the VNF. | +| | | | +| | The “Node” JSON dictionary | NodeList must list FQDNs | +| | must have the run list | of an example VNF on which| +| | populated with necessary | to execute playbook. | +| | sequence of roles, cookbooks,| | +| | recipes. This action is not | | +| | expected to return an output.| | +| | | | +| | “GetOutputFlag” must be set | | +| | to “False”. | | +| | | | +| | NodeList must list sample | | +| | FQDNs that are required to | | +| | conduct a chef-client run for| | +| | this VNF Action. | | ++------------------+------------------------------+---------------------------+ +| Health | The VNF level HealthCheck run| The VNF level HealthCheck | +| Check | a check over the entire scope| run a check over the | +| | of the VNF (for more details,| entire scope of the VNF | +| | see `VNF REST APIs`_). It | (for more details, see | +| | can be supported either via a| `VNF REST APIs`_). It can| +| | REST interface or with Chef | be supported either via a | +| | roles, cookbooks, and | REST interface or with an | +| | recipes. | Ansible playbook. | ++------------------+------------------------------+---------------------------+ +| StartApplication,| VNF provider must provide | VNF provider must provide | +| | roles, cookbooks, recipes to | an Ansible playbook to | +| | start an application on the | start the application on | +| | VNF when triggered by a | the VNF. If application | +| | chef-client run. If | does not start, the | +| | application does not start, | playbook must indicate | +| | the run must fail or raise an| failure. If application is| +| | exception. If application is | already started, or starts| +| | already started, or starts | successfully, the playbook| +| | successfully, the run must | must finish successfully. | +| | finish successfully. | | +| | | | +| StopApplication | For StopApplication, the | For StopApplication, the | +| | application must be stopped | application must be | +| | gracefully (no loss of | stopped gracefully (no | +| | traffic). | loss of traffic). | ++------------------+------------------------------+---------------------------+ +| ConfigBackup, | VNF provider must provide | VNF provider must provide | +| | roles, cookbooks, recipes to | an Ansible playbook to | +| | backup or restore the | backup or restore the | +| | configuration parameters on | configuration parameters | +| | the VNF when triggered by an | on the VNF when triggered | +| | ECOMP request. | by an ECOMP request. | +| | | | +| | When the ConfigBackup command| When the ConfigBackup | +| | is executed, the current VNF | command is executed, the | +| | configuration parameters are | current VNF configuration | +| | copied over to the Ansible or| parameters are copied over| +| | Chef server (if there is an | to the Ansible or Chef | +| | existing set of backed up | server (if there is an | +| | parameters, they are | existing set of backed up | +| | overwritten). When the | parameters, they are | +| | ConfigRestore command is | overwritten). When the | +| | executed, the VNF | ConfigRestore command is | +| | configuration parameters | executed, the VNF | +| ConfigRestore | which are backed up on the | configuration parameters | +| | Ansible or Chef server are | which are backed up on the| +| | applied to the VNF (replacing| Ansible or Chef server are| +| | existing parameters). It can | applied to the VNF | +| | be assumed that the VNF is | (replacing existing | +| | not in service when a | parameters). It can be | +| | ConfigRestore command is | assumed that the VNF is | +| | executed. | not in service when a | +| | | ConfigRestore command is | +| | | executed. | +| | | | +| | If either command fails, the | If either command fails, | +| | run must fail or raise an | the run must fail or raise| +| | exception. | an exception. | ++------------------+------------------------------+---------------------------+ For information purposes, the following ONAP controller functions are planned in the future: Table 10. Planned ONAP Controller Functions -+------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| Action | Description | -+==================+=================================================================================================================================================================================+ -| UpgradeSoftware | Upgrades the target VNF to a new software version. | -+------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| QuiesceTraffic, | Quiesces traffic (stops traffic gracefully) and resume traffic on the VNF. These commands do not stop the application processes (which is done using StopApplication). | -| ResumeTraffic | | -+------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ ++------------------+-------------------------------------------------------+ +| Action | Description | ++==================+=======================================================+ +| UpgradeSoftware | Upgrades the target VNF to a new software version. | ++------------------+-------------------------------------------------------+ +| QuiesceTraffic, | Quiesces traffic (stops traffic gracefully) and resume| +| ResumeTraffic | traffic on the VNF. These commands do not stop the | +| | application processes (which is done using | +| | StopApplication). | ++------------------+-------------------------------------------------------+ Monitoring & Management diff --git a/docs/Chapter8.rst b/docs/Chapter8.rst index 6412815..2d4a0a6 100644 --- a/docs/Chapter8.rst +++ b/docs/Chapter8.rst @@ -15,23 +15,71 @@ JSON file supporting Chef action. Table A1. Chef JSON File key value description ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -+-------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------+-----------------------------------------------------------------------------------------------------------------------------------------+ -| **Field Name** | **Description** | **Type** | **Comment** | -+===================+===================================================================================================================================================================================================================================================================================================+=============+=========================================================================================================================================+ -| Environment | A JSON dictionary representing a Chef Environment object. If the VNF action requires loading or modifying Chef environment attributes associated with the VNF, all the relevant information must be provided in this JSON dictionary in a structure that conforms to a Chef Environment Object. | Optional | Depends on VNF action. | -+-------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------+-----------------------------------------------------------------------------------------------------------------------------------------+ -| Node | A JSON dictionary representing a Chef Node Object. | Mandatory | | -| | | | | -| | The Node JSON dictionary must include the run list to be triggered for the desired VNF action by the push job. It should also include any attributes that need to be configured on the Node Object as part of the VNF action. | | | -+-------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------+-----------------------------------------------------------------------------------------------------------------------------------------+ -| NodeList | Array of FQDNs that correspond to the endpoints (VMs) of a VNF registered with the Chef Server that need to trigger a chef-client run as part of the desired VNF action. | Mandatory | | -+-------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------+-----------------------------------------------------------------------------------------------------------------------------------------+ -| PushJobFlag | This field indicates whether the VNF action requires a push Job. Push job object will be created by ONAP if required. | Mandatory | If set to “True”, ONAP will request a push job. Ignored otherwise. | -+-------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------+-----------------------------------------------------------------------------------------------------------------------------------------+ -| CallbackCapable | This field indicates if the chef-client run invoked by push job corresponding to the VNF action is capable of posting results on a callback URL. | Optional | If Chef cookbook is callback capable, VNF owner is required to set it to “True”. Ignored otherwise. | -+-------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------+-----------------------------------------------------------------------------------------------------------------------------------------+ -| GetOutputFlag | Flag which indicates whether ONAP should retrieve output generated in a chef-client run from Node object attribute node[‘PushJobOutput’] for this VNF action (e.g., in Audit). | Mandatory | ONAP will retrieve output from NodeObject attributes [‘PushJobOutput’] for all nodes in NodeList if set to “True”. Ignored otherwise. | -+-------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------+-----------------------------------------------------------------------------------------------------------------------------------------+ ++----------------+--------------------------+---------+----------------------+ +| **Field Name** | **Description** | **Type**| **Comment** | ++================+==========================+=========+======================+ +| Environment | A JSON dictionary | Optional|Depends on VNF action.| +| | representing a Chef | | | +| | Environment object. If | | | +| | the VNF action requires | | | +| | loading or modifying Chef| | | +| | environment attributes | | | +| | associated with the VNF, | | | +| | all the relevant | | | +| | information must be | | | +| | provided in this JSON | | | +| | dictionary in a structure| | | +| | that conforms to a Chef | | | +| | Environment Object. | | | ++----------------+--------------------------+---------+----------------------+ +| Node | A JSON dictionary |Mandatory| | +| | representing a Chef Node | | | +| | Object. | | | +| | | | | +| | The Node JSON dictionary | | | +| | must include the run list| | | +| | to be triggered for the | | | +| | desired VNF action by the| | | +| | push job. It should also | | | +| | include any attributes | | | +| | that need to be | | | +| | configured on the Node | | | +| | Object as part of the VNF| | | +| | action. | | | ++----------------+--------------------------+---------+----------------------+ +| NodeList | Array of FQDNs that |Mandatory| | +| | correspond to the | | | +| | endpoints (VMs) of a VNF | | | +| | registered with the Chef | | | +| | Server that need to | | | +| | trigger a chef-client run| | | +| | as part of the desired | | | +| | VNF action. | | | ++----------------+--------------------------+---------+----------------------+ +| PushJobFlag | This field indicates |Mandatory| If set to “True”, | +| | whether the VNF action | | ONAP will request a | +| | requires a push Job. Push| | push job. Ignored | +| | job object will be | | otherwise. | +| | created by ONAP if | | | +| | required. | | | ++----------------+--------------------------+---------+----------------------+ +| CallbackCapable| This field indicates if | Optional| If Chef cookbook is | +| | the chef-client run | | callback capable, VNF| +| | invoked by push job | | owner is required to | +| | corresponding to the VNF | | set it to “True”. | +| | action is capable of | | Ignored otherwise. | +| | posting results on a | | | +| | callback URL. | | | ++----------------+--------------------------+---------+----------------------+ +| GetOutputFlag | Flag which indicates |Mandatory| ONAP will retrieve | +| | whether ONAP should | | output from | +| | retrieve output generated| | NodeObject attributes| +| | in a chef-client run from| | [‘PushJobOutput’] for| +| | Node object attribute | | all nodes in NodeList| +| | node[‘PushJobOutput’] for| | if set to “True”. | +| | this VNF action (e.g., in| | Ignored otherwise. | +| | Audit). | | | ++----------------+--------------------------+---------+----------------------+ Chef Template example: @@ -92,27 +140,42 @@ The following table describes the JSON dictionary to post in Callback. Table A2. JSON Dictionary to Post in Callback ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -+-----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------+-------------------------------------------------------------+ -| **Key** | **Description** | **Type** | **Comment** | -+=================+===========================================================================================================================================================================================================+=============+=============================================================+ -| RequestId | A unique string associated with the original request by ONAP. This key-value pair will be provided by ONAP in the environment of the push job request and must be returned as part of the POST message. | Mandatory | | -+-----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------+-------------------------------------------------------------+ -| StatusCode | An integer that must be set to | Mandatory | | -| | | | | -| | 200 if chef-client run on the node finished successfully | | | -| | | | | -| | 500 otherwise. | | | -+-----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------+-------------------------------------------------------------+ -| StatusMessage | A string which must be set to | Mandatory | | -| | | | | -| | ‘SUCCESS’ if StatusCode was 200 | | | -| | | | | -| | Appropriate error message otherwise. | | | -+-----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------+-------------------------------------------------------------+ -| Name | A string which corresponds to the name of the node where push job is run. It is required that the value be retrieved from the node object attributes (where it is always defined). | Mandatory | | -+-----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------+-------------------------------------------------------------+ -| PushJobOutput | Any output from the chef-client run that needs to be returned to ONAP. | Optional | Depends on VNF action. If empty, it must not be included. | -+-----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------+-------------------------------------------------------------+ ++--------------+----------------------------+---------+-----------------------+ +| **Key** | **Description** | **Type**| **Comment** | ++==============+============================+=========+=======================+ +| RequestId | A unique string associated |Mandatory| | +| | with the original request | | | +| | by ONAP. This key-value | | | +| | pair will be provided by | | | +| | ONAP in the environment of | | | +| | the push job request and | | | +| | must be returned as part of| | | +| | the POST message. | | | ++--------------+----------------------------+---------+-----------------------+ +| StatusCode | An integer that must be set|Mandatory| | +| | to 200 if chef-client run | | | +| | on the node finished | | | +| | successfully 500 otherwise.| | | ++--------------+----------------------------+---------+-----------------------+ +| StatusMessage| A string which must be set |Mandatory| | +| | to ‘SUCCESS’ if StatusCode | | | +| | was 200 | | | +| | | | | +| | Appropriate error message | | | +| | otherwise. | | | ++--------------+----------------------------+---------+-----------------------+ +| Name | A string which corresponds |Mandatory| | +| | to the name of the node | | | +| | where push job is run. It | | | +| | is required that the value | | | +| | be retrieved from the node | | | +| | object attributes (where it| | | +| | is always defined). | | | ++--------------+----------------------------+---------+-----------------------+ +| PushJobOutput| Any output from the |Optional | Depends on VNF action.| +| | chef-client run that needs | | If empty, it must not | +| | to be returned to ONAP. | | be included. | ++--------------+----------------------------+---------+-----------------------+ Ansible JSON Key Value Description ------------------------------------------------------------- @@ -123,21 +186,60 @@ JSON file supporting Ansible action. Table B1. Ansible JSON File key value description ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -+------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------+---------------------------------------------------------------------+ -| **Field Name** | **Description** | **Type** | **Comment** | -+==================+============================================================================================================================================================================================================================================================================================+=============+=====================================================================+ -| PlaybookName | VNF providor must list name of the playbook used to execute the VNF action. | Mandatory | | -+------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------+---------------------------------------------------------------------+ -| Action | Name of VNF action. | Optional | | -+------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------+---------------------------------------------------------------------+ -| EnvParameters | A JSON dictionary which should list key value pairs to be passed to the Ansible playbook. These values would correspond to instance specific parameters that a playbook may need to execute an action. | Optional | Depends on the VNF action. | -+------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------+---------------------------------------------------------------------+ -| NodeList | A JSON array of FQDNs that the playbook must be executed on. | Optional | If not provided, playbook will be executed on the Ansible Server. | -+------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------+---------------------------------------------------------------------+ -| FileParameters | A JSON dictionary where keys are filenames and values are contents of files. The Ansible Server will utilize this feature to generate files with keys as filenames and values as content. This attribute can be used to generate files that a playbook may require as part of execution. | Optional | Depends on the VNF action and playbook design. | -+------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------+---------------------------------------------------------------------+ -| Timeout | Time (in seconds) that a playbook is expected to take to finish execution for the VNF. If playbook execution time exceeds this value, Ansible Server will terminate the playbook process. | Optional | | -+------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------+---------------------------------------------------------------------+ ++---------------+----------------------+---------+----------------------------+ +| **Field Name**| **Description** | **Type**| **Comment** | ++===============+======================+=========+============================+ +| PlaybookName | VNF providor must |Mandatory| | +| | list name of the | | | +| | playbook used to | | | +| | execute the VNF | | | +| | action. | | | ++---------------+----------------------+---------+----------------------------+ +| Action | Name of VNF action. | Optional| | ++---------------+----------------------+---------+----------------------------+ +| EnvParameters | A JSON dictionary | Optional| Depends on the VNF action. | +| | which should list key| | | +| | value pairs to be | | | +| | passed to the Ansible| | | +| | playbook. These | | | +| | values would | | | +| | correspond to | | | +| | instance specific | | | +| | parameters that a | | | +| | playbook may need to | | | +| | execute an action. | | | ++---------------+----------------------+---------+----------------------------+ +| NodeList | A JSON array of FQDNs| Optional| If not provided, playbook | +| | that the playbook | | will be executed on the | +| | must be executed on. | | Ansible Server. | ++---------------+----------------------+---------+----------------------------+ +| FileParameters| A JSON dictionary | Optional| Depends on the VNF action | +| | where keys are | | and playbook design. | +| | filenames and values | | | +| | are contents of | | | +| | files. The Ansible | | | +| | Server will utilize | | | +| | this feature to | | | +| | generate files with | | | +| | keys as filenames and| | | +| | values as content. | | | +| | This attribute can be| | | +| | used to generate | | | +| | files that a playbook| | | +| | may require as part | | | +| | of execution. | | | ++---------------+----------------------+---------+----------------------------+ +| Timeout | Time (in seconds) | Optional| | +| | that a playbook is | | | +| | expected to take to | | | +| | finish execution for | | | +| | the VNF. If playbook | | | +| | execution time | | | +| | exceeds this value, | | | +| | Ansible Server will | | | +| | terminate the | | | +| | playbook process. | | | ++---------------+----------------------+---------+----------------------------+ Ansible JSON file example: @@ -182,21 +284,40 @@ Table C1 defines the required and optional fields for licenses. Table C1. Required Fields for General Information ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -+---------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+-------------+ -| **Field Name** | **Description** | **Data Type** | **Type** | -+=============================================+===========================================================================================================================================================================================================================================================================================================+===================+=============+ -| VNF Provider Name | The name of the VNF provider. | String | Mandatory | -+---------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+-------------+ -| VNF Provider Product | The name of the product to which this agreement applies. | String | Mandatory | -| | | | | -| | Note: a contract/agreement may apply to more than one VNF provider product. In that case, provide the metadata for each product separately. | | | -+---------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+-------------+ -| VNF Provider Product Description | A general description of VNF provider software product. | String | Optional | -+---------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+-------------+ -| Export Control Classification Number (ECCN) | ECCNs are 5-character alpha-numeric designations used on the Commerce Control List (CCL) to identify dual-use items for export control purposes. An ECCN categorizes items based on the nature of the product, i.e. type of commodity, software, or technology and its respective technical parameters. | String | Mandatory | -+---------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+-------------+ -| Reporting Requirements | A list of any reporting requirements on the usage of the software product. | List of strings | Optional | -+---------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+-------------+ ++---------------+-----------------------------------+--------------+----------+ +| **Field Name**| **Description** | **Data Type**| **Type** | ++===============+===================================+==============+==========+ +| VNF Provider | The name of the VNF provider. | String | Mandatory| +| Name | | | | ++---------------+-----------------------------------+--------------+----------+ +| VNF Provider | The name of the product to which | String | Mandatory| +| Product | this agreement applies. | | | +| | | | | +| | Note: a contract/agreement may | | | +| | apply to more than one VNF | | | +| | provider product. In that case, | | | +| | provide the metadata for each | | | +| | product separately. | | | ++---------------+-----------------------------------+--------------+----------+ +| VNF Provider | A general description of VNF | String | Optional | +| Product | provider software product. | | | +| Description | | | | ++---------------+-----------------------------------+--------------+----------+ +| Export Control| ECCNs are 5-character | String | Mandatory| +| Classification| alpha-numeric designations used on| | | +| Number (ECCN) | the Commerce Control List (CCL) to| | | +| | identify dual-use items for export| | | +| | control purposes. An ECCN | | | +| | categorizes items based on the | | | +| | nature of the product, i.e. type | | | +| | of commodity, software, or | | | +| | technology and its respective | | | +| | technical parameters. | | | ++---------------+-----------------------------------+--------------+----------+ +| Reporting | A list of any reporting | List of | Optional | +| Requirements | requirements on the usage of the | strings | | +| | software product. | | | ++---------------+-----------------------------------+--------------+----------+ 1. Entitlements @@ -211,33 +332,57 @@ following fields: Table C2. Required Fields for Entitlements ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -+---------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+---------------+ -| **Field Name** | **Description** | **Data Type** | **Type** | -+=========================================================+=======================================================================================================================================================================================+===================+===============+ -| VNF Provider Part Number / Manufacture Reference Number | Identifier for the entitlement as described by the VNF provider in their price list / catalog / contract. | String | Mandatory | -+---------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+---------------+ -| Description | Verbiage that describes the entitlement. | String | Optional | -+---------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+---------------+ -| Entitlement Identifier | Each entitlement defined must be identified by a unique value (e.g., numbered 1, 2, 3….) | String | Mandatory | -+---------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+---------------+ -| Minimum Order Requirement | The minimum number of entitlements that need to be purchased. For example, the entitlements must be purchased in a block of 100. If no minimum is required, the value will be zero. | Number | Mandatory | -+---------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+---------------+ -| Unique Reporting Requirements | A list of any reporting requirements on the usage of the software product. (e.g.: quarterly usage reports are required) | List of Strings | Optional | -+---------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+---------------+ -| License Type | Type of license applicable to the software product. (e.g.: fixed-term, perpetual, trial, subscription.) | String | Mandatory | -+---------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+---------------+ -| License Duration | Valid values: | String | Conditional | -| | | | | -| | **year**, **quarter**, **month**, **day**. | | | -| | | | | -| | Not applicable when license type is Perpetual. | | | -+---------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+---------------+ -| License Duration Quantification | Number of years, quarters, months, or days for which the license is valid. | Number | Conditional | -| | | | | -| | Not applicable when license type is Perpetual. | | | -+---------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+---------------+ -| Limits | see section C.4 for possible values | List | Optional | -+---------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+---------------+ ++---------------+-----------------------------------+-------------+-----------+ +| **Field Name**| **Description** |**Data Type**| **Type** | ++===============+===================================+=============+===========+ +| VNF Provider | Identifier for the entitlement as | String | Mandatory | +| Part Number / | described by the VNF provider in | | | +| Manufacture | their price list / catalog / | | | +| Reference | contract. | | | +| Number | | | | ++---------------+-----------------------------------+-------------+-----------+ +| Description | Verbiage that describes the | String | Optional | +| | entitlement | | | ++---------------+-----------------------------------+-------------+-----------+ +| Entitlement | Each entitlement defined must be | String | Mandatory | +| Identifier | identified by a unique value (e.g.| | | +| | numbered 1, 2, 3….) | | | ++---------------+-----------------------------------+-------------+-----------+ +| Minimum Order | The minimum number of entitlements| Number | Mandatory | +| Requirement | that need to be purchased. | | | +| | For example, the entitlements must| | | +| | be purchased in a block of 100. If| | | +| | no minimum is required, the value | | | +| | will be zero. | | | ++---------------+-----------------------------------+-------------+-----------+ +| Unique | A list of any reporting | List of | Optional | +| Reporting | requirements on the usage of the | Strings | | +| Requirements | software product. (e.g.: quarterly| | | +| | usage reports are required) | | | ++---------------+-----------------------------------+-------------+-----------+ +| License Type | Type of license applicable to the | String | Mandatory | +| | software product. (e.g.: | | | +| | fixed-term, perpetual, trial, | | | +| | subscription.) | | | ++---------------+-----------------------------------+-------------+-----------+ +| License | Valid values: | String |Conditional| +| Duration | | | | +| | **year**, **quarter**, **month**, | | | +| | **day**. | | | +| | | | | +| | Not applicable when license type | | | +| | is Perpetual. | | | ++---------------+-----------------------------------+-------------+-----------+ +| License | Number of years, quarters, months,| Number |Conditional| +| Duration | or days for which the license is | | | +| Quantification| valid. | | | +| | | | | +| | Not applicable when license type | | | +| | is Perpetual. | | | ++---------------+-----------------------------------+-------------+-----------+ +| Limits | see section C.4 for possible | List | Optional | +| | values | | | ++---------------+-----------------------------------+-------------+-----------+ 1. License Keys @@ -252,25 +397,37 @@ be defined; each one consists of the following fields: Table C3. Required Fields for License Keys ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -+--------------------------+---------------------------------------------------------------------------------------------------------------+-----------------+-------------+ -| **Field Name** | **Description** | **Data Type** | **Type** | -+==========================+===============================================================================================================+=================+=============+ -| Description | Verbiage that describes the license key | String | Mandatory | -+--------------------------+---------------------------------------------------------------------------------------------------------------+-----------------+-------------+ -| License Key Identifier | Each license key defined must be identified by a unique value (e.g., numbered 1, 2, 3….) | String | Mandatory | -+--------------------------+---------------------------------------------------------------------------------------------------------------+-----------------+-------------+ -| Key Function | Lifecycle stage (e.g., Instantiation or Activation) at which the license key is applied to the software. | String | Optional | -+--------------------------+---------------------------------------------------------------------------------------------------------------+-----------------+-------------+ -| License Key Type | Valid values: | String | Mandatory | -| | | | | -| | **Universal, Unique** | | | -| | | | | -| | **Universal** - a single license key value that may be used with any number of instances of the software. | | | -| | | | | -| | **Unique**- a unique license key value is required for each instance of the software. | | | -+--------------------------+---------------------------------------------------------------------------------------------------------------+-----------------+-------------+ -| Limits | see section C.4 for possible values | List | Optional | -+--------------------------+---------------------------------------------------------------------------------------------------------------+-----------------+-------------+ ++---------------+-----------------------------------+--------------+----------+ +| **Field Name**| **Description** | **Data Type**| **Type** | ++===============+===================================+==============+==========+ +| Description | Verbiage that describes the | String | Mandatory| +| | license key | | | ++---------------+-----------------------------------+--------------+----------+ +| License Key | Each license key defined must be | String | Mandatory| +| Identifier | identified by a unique value | | | +| | (e.g., numbered 1, 2, 3….) | | | ++---------------+-----------------------------------+--------------+----------+ +| Key Function | Lifecycle stage (e.g., | String | Optional | +| | Instantiation or Activation) at | | | +| | which the license key is applied | | | +| | to the software. | | | ++---------------+-----------------------------------+--------------+----------+ +| License Key | Valid values: | String | Mandatory| +| Type | | | | +| | **Universal, Unique** | | | +| | | | | +| | **Universal** - a single license | | | +| | key value that may be used with | | | +| | any number of instances of the | | | +| | software. | | | +| | | | | +| | **Unique**- a unique license key | | | +| | value is required for each | | | +| | instance of the software. | | | ++---------------+-----------------------------------+--------------+----------+ +| Limits | see section C.4 for possible | List | Optional | +| | values | | | ++---------------+-----------------------------------+--------------+----------+ 1. Entitlement and License Key Limits @@ -318,31 +475,42 @@ example: Table C4. Required Fields for Location ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -+------------------------+---------------------------------------------------------------------------------------------------------------------+------------------+-------------+ -| **Field Name** | **Description** | **Data Type** | **Type** | -+========================+=====================================================================================================================+==================+=============+ -| Limit Identifier | Each limit defined for an entitlement or license key must be identified by a unique value (e.g., numbered 1,2,3…) | String | Mandatory | -+------------------------+---------------------------------------------------------------------------------------------------------------------+------------------+-------------+ -| Limit Description | Verbiage describing the limit. | String | Mandatory | -+------------------------+---------------------------------------------------------------------------------------------------------------------+------------------+-------------+ -| Limit Behavior | Description of the actions taken when the limit boundaries are reached. | String | Mandatory | -+------------------------+---------------------------------------------------------------------------------------------------------------------+------------------+-------------+ -| Limit Category | Valid value: **location** | String | Mandatory | -+------------------------+---------------------------------------------------------------------------------------------------------------------+------------------+-------------+ -| Limit Type | Valid values: **city, county, state, country, region, MSA, BTA, CLLI** | String | Mandatory | -+------------------------+---------------------------------------------------------------------------------------------------------------------+------------------+-------------+ -| Limit List | List of locations where the VNF provider Product can be used or needs to be restricted from use | List of String | Mandatory | -+------------------------+---------------------------------------------------------------------------------------------------------------------+------------------+-------------+ -| Limit Set Type | Indicates if the list is an inclusion or exclusion. | String | Mandatory | -| | | | | -| | Valid Values: | | | -| | | | | -| | **Allowed** | | | -| | | | | -| | **Not allowed** | | | -+------------------------+---------------------------------------------------------------------------------------------------------------------+------------------+-------------+ -| Limit Quantification | The quantity (amount) the limit expresses. | Number | Optional | -+------------------------+---------------------------------------------------------------------------------------------------------------------+------------------+-------------+ ++------------------+--------------------------------+--------------+----------+ +| **Field Name** | **Description** | **Data Type**| **Type** | ++==================+================================+==============+==========+ +| Limit Identifier | Each limit defined for an | String | Mandatory| +| | entitlement or license key must| | | +| | be identified by a unique value| | | +| | (e.g., numbered 1,2,3…) | | | ++------------------+--------------------------------+--------------+----------+ +| Limit Description| Verbiage describing the limit. | String | Mandatory| ++------------------+--------------------------------+--------------+----------+ +| Limit Behavior | Description of the actions | String | Mandatory| +| | taken when the limit boundaries| | | +| | are reached. | | | ++------------------+--------------------------------+--------------+----------+ +| Limit Category | Valid value: **location** | String | Mandatory| ++------------------+--------------------------------+--------------+----------+ +| Limit Type | Valid values: **city, county, | String | Mandatory| +| | state, country, region, MSA, | | | +| | BTA, CLLI** | | | ++------------------+--------------------------------+--------------+----------+ +| Limit List | List of locations where the VNF| List of | Mandatory| +| | provider Product can be used or| String | | +| | needs to be restricted from use| | | ++------------------+--------------------------------+--------------+----------+ +| Limit Set Type | Indicates if the list is an | String | Mandatory| +| | inclusion or exclusion. | | | +| | | | | +| | Valid Values: | | | +| | | | | +| | **Allowed** | | | +| | | | | +| | **Not allowed** | | | ++------------------+--------------------------------+--------------+----------+ +| Limit | The quantity (amount) the limit| Number | Optional | +| Quantification | expresses. | | | ++------------------+--------------------------------+--------------+----------+ 1. Time @@ -355,31 +523,51 @@ Limit on the length of time the software may be used. For example: Table C5. Required Fields for Time ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -+------------------------+-------------------------------------------------------------------------------------------------------------------------------+------------------+---------------+ -| **Field Name** | **Description** | **Data Type** | **Type** | -+========================+===============================================================================================================================+==================+===============+ -| Limit Identifier | Each limit defined for an entitlement or license key must be identified by a unique value (e.g., numbered) | String | Mandatory | -+------------------------+-------------------------------------------------------------------------------------------------------------------------------+------------------+---------------+ -| Limit Description | Verbiage describing the limit. | String | Mandatory | -+------------------------+-------------------------------------------------------------------------------------------------------------------------------+------------------+---------------+ -| Limit Behavior | Description of the actions taken when the limit boundaries are reached. | String | Mandatory | -| | | | | -| | The limit behavior may also describe when a time limit takes effect. (e.g., key is valid for 1 year from date of purchase). | | | -+------------------------+-------------------------------------------------------------------------------------------------------------------------------+------------------+---------------+ -| Limit Category | Valid value: **time** | String | Mandatory | -+------------------------+-------------------------------------------------------------------------------------------------------------------------------+------------------+---------------+ -| Limit Type | Valid values: **duration, date** | String | Mandatory | -+------------------------+-------------------------------------------------------------------------------------------------------------------------------+------------------+---------------+ -| Limit List | List of times for which the VNF Provider Product can be used or needs to be restricted from use | List of String | Mandatory | -+------------------------+-------------------------------------------------------------------------------------------------------------------------------+------------------+---------------+ -| Duration Units | Required when limit type is duration. Valid values: **perpetual, year, quarter, month, day, minute, second, millisecond** | String | Conditional | -+------------------------+-------------------------------------------------------------------------------------------------------------------------------+------------------+---------------+ -| Limit Quantification | The quantity (amount) the limit expresses. | Number | Optional | -+------------------------+-------------------------------------------------------------------------------------------------------------------------------+------------------+---------------+ -| Start Date | Required when limit type is date. | Date | Optional | -+------------------------+-------------------------------------------------------------------------------------------------------------------------------+------------------+---------------+ -| End Date | May be used when limit type is date. | Date | Optional | -+------------------------+-------------------------------------------------------------------------------------------------------------------------------+------------------+---------------+ ++------------------+-------------------------------+--------------+-----------+ +| **Field Name** | **Description** | **Data Type**| **Type** | ++==================+===============================+==============+===========+ +| Limit Identifier | Each limit defined for an | String | Mandatory | +| | entitlement or license key | | | +| | must be identified by a unique| | | +| | value (e.g., numbered) | | | ++------------------+-------------------------------+--------------+-----------+ +| Limit Description| Verbiage describing the limit.| String | Mandatory | ++------------------+-------------------------------+--------------+-----------+ +| Limit Behavior | Description of the actions | String | Mandatory | +| | taken when the limit | | | +| | boundaries are reached. | | | +| | | | | +| | The limit behavior may also | | | +| | describe when a time limit | | | +| | takes effect. (e.g., key is | | | +| | valid for 1 year from date of | | | +| | purchase). | | | ++------------------+-------------------------------+--------------+-----------+ +| Limit Category | Valid value: **time** | String | Mandatory | ++------------------+-------------------------------+--------------+-----------+ +| Limit Type | Valid values: | String | Mandatory | +| | **duration, date** | | | ++------------------+-------------------------------+--------------+-----------+ +| Limit List | List of times for which the | List of | Mandatory | +| | VNF Provider Product can be | String | | +| | used or needs to be restricted| | | +| | from use | | | ++------------------+-------------------------------+--------------+-----------+ +| Duration Units | Required when limit type is | String |Conditional| +| | duration. Valid values: | | | +| | **perpetual, year, quarter, | | | +| | month, day, minute, second, | | | +| | millisecond** | | | ++------------------+-------------------------------+--------------+-----------+ +| Limit | The quantity (amount) the | Number | Optional | +| Quantification | limit expresses. | | | ++------------------+-------------------------------+--------------+-----------+ +| Start Date | Required when limit type is | Date | Optional | +| | date. | | | ++------------------+-------------------------------+--------------+-----------+ +| End Date | May be used when limit type is| Date | Optional | +| | date. | | | ++------------------+-------------------------------+--------------+-----------+ 1. Usage @@ -398,31 +586,42 @@ Limits based on how the software is used. For example: Table C6. Required Fields for Usage ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -+------------------------+--------------------------------------------------------------------------------------------------------------+------------------+-------------+ -| **Field Name** | **Description** | **Data Type** | **Type** | -+========================+==============================================================================================================+==================+=============+ -| Limit Identifier | Each limit defined for an entitlement or license key must be identified by a unique value (e.g., numbered) | String | Mandatory | -+------------------------+--------------------------------------------------------------------------------------------------------------+------------------+-------------+ -| Limit Description | Verbiage describing the limit. | String | Mandatory | -+------------------------+--------------------------------------------------------------------------------------------------------------+------------------+-------------+ -| Limit Behavior | Description of the actions taken when the limit boundaries are reached. | String | Mandatory | -+------------------------+--------------------------------------------------------------------------------------------------------------+------------------+-------------+ -| Limit Category | Valid value: **usages** | String | Mandatory | -+------------------------+--------------------------------------------------------------------------------------------------------------+------------------+-------------+ -| Limit Type | Valid values: **feature, environment, processor, version** | String | Mandatory | -+------------------------+--------------------------------------------------------------------------------------------------------------+------------------+-------------+ -| Limit List | List of usage limits (e.g., test, development, vm, core, R1.2.1, R1.3.5…) | List of String | Mandatory | -+------------------------+--------------------------------------------------------------------------------------------------------------+------------------+-------------+ -| Limit Set Type | Indicates if the list is an inclusion or exclusion. | String | Mandatory | -| | | | | -| | Valid Values: | | | -| | | | | -| | **Allowed** | | | -| | | | | -| | **Not allowed** | | | -+------------------------+--------------------------------------------------------------------------------------------------------------+------------------+-------------+ -| Limit Quantification | The quantity (amount) the limit expresses. | Number | Optional | -+------------------------+--------------------------------------------------------------------------------------------------------------+------------------+-------------+ ++------------------+-------------------------------+---------------+----------+ +| **Field Name** | **Description** | **Data Type** | **Type** | ++==================+===============================+===============+==========+ +| Limit Identifier | Each limit defined for an | String | Mandatory| +| | entitlement or license key | | | +| | must be identified by a unique| | | +| | value (e.g., numbered) | | | ++------------------+-------------------------------+---------------+----------+ +| Limit Description| Verbiage describing the limit.| String | Mandatory| ++------------------+-------------------------------+---------------+----------+ +| Limit Behavior | Description of the actions | String | Mandatory| +| | taken when the limit | | | +| | boundaries are reached. | | | ++------------------+-------------------------------+---------------+----------+ +| Limit Category | Valid value: **usages** | String | Mandatory| ++------------------+-------------------------------+---------------+----------+ +| Limit Type | Valid values: **feature, | String | Mandatory| +| | environment, processor, | | | +| | version** | | | ++------------------+-------------------------------+---------------+----------+ +| Limit List | List of usage limits (e.g., | List of String| Mandatory| +| | test, development, vm, core, | | | +| | R1.2.1, R1.3.5…) | | | ++------------------+-------------------------------+---------------+----------+ +| Limit Set Type | Indicates if the list is an | String | Mandatory| +| | inclusion or exclusion. | | | +| | | | | +| | Valid Values: | | | +| | | | | +| | **Allowed** | | | +| | | | | +| | **Not allowed** | | | ++------------------+-------------------------------+---------------+----------+ +| Limit | The quantity (amount) the | Number | Optional | +| Quantification | limit expresses. | | | ++------------------+-------------------------------+---------------+----------+ 1. Entity @@ -436,31 +635,43 @@ make use of the software. For example: Table C7. Required Fields for Entity ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -+------------------------+--------------------------------------------------------------------------------------------------------------+------------------+-------------+ -| **Field Name** | **Description** | **Data Type** | **Type** | -+========================+==============================================================================================================+==================+=============+ -| Limit Identifier | Each limit defined for an entitlement or license key must be identified by a unique value (e.g., numbered) | String | Mandatory | -+------------------------+--------------------------------------------------------------------------------------------------------------+------------------+-------------+ -| Limit Description | Verbiage describing the limit. | String | Mandatory | -+------------------------+--------------------------------------------------------------------------------------------------------------+------------------+-------------+ -| Limit Behavior | Description of the actions taken when the limit boundaries are reached. | String | Mandatory | -+------------------------+--------------------------------------------------------------------------------------------------------------+------------------+-------------+ -| Limit Category | Valid value: **entity** | String | Mandatory | -+------------------------+--------------------------------------------------------------------------------------------------------------+------------------+-------------+ -| Limit Type | Valid values: **product line, organization, internal customer, external customer** | String | Mandatory | -+------------------------+--------------------------------------------------------------------------------------------------------------+------------------+-------------+ -| Limit List | List of entities for which the VNF Provider Product can be used or needs to be restricted from use | List of String | Mandatory | -+------------------------+--------------------------------------------------------------------------------------------------------------+------------------+-------------+ -| Limit Set Type | Indicates if the list is an inclusion or exclusion. | String | Mandatory | -| | | | | -| | Valid Values: | | | -| | | | | -| | **Allowed** | | | -| | | | | -| | **Not allowed** | | | -+------------------------+--------------------------------------------------------------------------------------------------------------+------------------+-------------+ -| Limit Quantification | The quantity (amount) the limit expresses. | Number | Optional | -+------------------------+--------------------------------------------------------------------------------------------------------------+------------------+-------------+ ++------------------+--------------------------------+--------------+----------+ +| **Field Name** | **Description** |**Data Type** | **Type** | ++==================+================================+==============+==========+ +| Limit Identifier | Each limit defined for an | String | Mandatory| +| | entitlement or license key must| | | +| | be identified by a unique value| | | +| | (e.g., numbered) | | | ++------------------+--------------------------------+--------------+----------+ +| Limit Description| Verbiage describing the limit. | String | Mandatory| ++------------------+--------------------------------+--------------+----------+ +| Limit Behavior | Description of the actions | String | Mandatory| +| | taken when the limit boundaries| | | +| | are reached. | | | ++------------------+--------------------------------+--------------+----------+ +| Limit Category | Valid value: **entity** | String | Mandatory| ++------------------+--------------------------------+--------------+----------+ +| Limit Type | Valid values: **product line, | String | Mandatory| +| | organization, internal | | | +| | customer, external customer** | | | ++------------------+--------------------------------+--------------+----------+ +| Limit List | List of entities for which the |List of String| Mandatory| +| | VNF Provider Product can be | | | +| | used or needs to be restricted | | | +| | from use | | | ++------------------+--------------------------------+--------------+----------+ +| Limit Set Type | Indicates if the list is an | String | Mandatory| +| | inclusion or exclusion. | | | +| | | | | +| | Valid Values: | | | +| | | | | +| | **Allowed** | | | +| | | | | +| | **Not allowed** | | | ++------------------+--------------------------------+--------------+----------+ +| Limit | The quantity (amount) the limit| Number | Optional | +| Quantification | expresses. | | | ++------------------+--------------------------------+--------------+----------+ 1. Amount @@ -479,45 +690,76 @@ interval (day, month, quarter, year, etc.). Table C8. Required Fields for Amount ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -+------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------+-------------+ -| **Field Name** | **Description** | **Data Type** | **Type** | -+========================+================================================================================================================================================================================================================================================================+=================+=============+ -| Limit Identifier | Each limit defined for an entitlement or license key must be identified by a unique value (e.g., numbered) | String | Mandatory | -+------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------+-------------+ -| Limit Description | Verbiage describing the limit. | String | Mandatory | -+------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------+-------------+ -| Limit Behavior | Description of the actions taken when the limit boundaries are reached. | String | Mandatory | -+------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------+-------------+ -| Limit Category | Valid value: **amount** | String | Mandatory | -+------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------+-------------+ -| Limit Type | Valid values: **trunk, user, subscriber, session, token, transactions, seats, KB, MB, TB, GB** | String | Mandatory | -+------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------+-------------+ -| Type of Utilization | Is the limit relative to utilization of the functions of the software or relative to utilization of other resources? | String | Mandatory | -| | | | | -| | Valid values: | | | -| | | | | -| | - **software functions** | | | -| | | | | -| | - **other resources** | | | -+------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------+-------------+ -| Limit Quantification | The quantity (amount) the limit expresses. | Number | Optional | -+------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------+-------------+ -| Aggregation Function | Valid values: **peak, average** | String | Optional | -+------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------+-------------+ -| Aggregation Interval | Time period over which the aggregation is done (e.g., average sessions per quarter). Required when an Aggregation Function is specified. | String | Optional | -| | | | | -| | Valid values: **day, month, quarter, year, minute, second, millisecond** | | | -+------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------+-------------+ -| Aggregation Scope | Is the limit quantity applicable to a single entitlement or license key (each separately)? Or may the limit quantity be combined with others of the same type (resulting in limit amount that is the sum of all the purchased entitlements or license keys)? | String | Optional | -| | | | | -| | Valid values: | | | -| | | | | -| | - **single** | | | -| | | | | -| | - **combined** | | | -+------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------+-------------+ -| Type of User | Describes the types of users of the functionality offered by the software (e.g., authorized, named). This field is included when Limit Type is user. | String | Optional | -+------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------+-------------+ ++------------------+---------------------------------+-------------+----------+ +| **Field Name** | **Description** |**Data Type**| **Type** | ++==================+=================================+=============+==========+ +| Limit Identifier | Each limit defined for an | String | Mandatory| +| | entitlement or license key must | | | +| | be identified by a unique value | | | +| | (e.g., numbered) | | | ++------------------+---------------------------------+-------------+----------+ +| Limit Description| Verbiage describing the limit. | String | Mandatory| ++------------------+---------------------------------+-------------+----------+ +| Limit Behavior | Description of the actions taken| String | Mandatory| +| | when the limit boundaries are | | | +| | reached. | | | ++------------------+---------------------------------+-------------+----------+ +| Limit Category | Valid value: **amount** | String | Mandatory| ++------------------+---------------------------------+-------------+----------+ +| Limit Type | Valid values: **trunk, user, | String | Mandatory| +| | subscriber, session, token, | | | +| | transactions, seats, KB, MB, TB,| | | +| | GB** | | | ++------------------+---------------------------------+-------------+----------+ +| Type of | Is the limit relative to | String | Mandatory| +| Utilization | utilization of the functions of | | | +| | the software or relative to | | | +| | utilization of other resources? | | | +| | | | | +| | Valid values: | | | +| | | | | +| | - **software functions** | | | +| | | | | +| | - **other resources** | | | ++------------------+---------------------------------+-------------+----------+ +| Limit | The quantity (amount) the limit | Number | Optional | +| Quantification | expresses. | | | ++------------------+---------------------------------+-------------+----------+ +| Aggregation | Valid values: **peak, average** | String | Optional | +| Function | | | | ++------------------+---------------------------------+-------------+----------+ +| Aggregation | Time period over which the | String | Optional | +| Interval | aggregation is done (e.g., | | | +| | average sessions per quarter). | | | +| | Required when an Aggregation | | | +| | Function is specified. | | | +| | | | | +| | Valid values: **day, month, | | | +| | quarter, year, minute, second, | | | +| | millisecond** | | | ++------------------+---------------------------------+-------------+----------+ +| Aggregation | Is the limit quantity applicable| String | Optional | +| Scope | to a single entitlement or | | | +| | license key (each separately)? | | | +| | Or may the limit quantity be | | | +| | combined with others of the same| | | +| | type (resulting in limit amount | | | +| | that is the sum of all the | | | +| | purchased entitlements or | | | +| | license keys)? | | | +| | | | | +| | Valid values: | | | +| | | | | +| | - **single** | | | +| | | | | +| | - **combined** | | | ++------------------+---------------------------------+-------------+----------+ +| Type of User | Describes the types of users of | String | Optional | +| | the functionality offered by the| | | +| | software (e.g., authorized, | | | +| | named). This field is included | | | +| | when Limit Type is user. | | | ++------------------+---------------------------------+-------------+----------+ TOSCA model ----------------------------- @@ -594,7 +836,8 @@ Table D2. TOSCA CSAR structure This section defines the requirements around the CSAR structure. -The table below describes the numbered requirements for CSAR structure as agreed with SDC. The format of the CSAR is specified in SOL004. +The table below describes the numbered requirements for CSAR structure as +agreed with SDC. The format of the CSAR is specified in SOL004. +------------+-------------------------------------+--------------------------+ | Requirement| Description | CSAR artifact directory | @@ -785,7 +1028,8 @@ R-15671: The VNF **MUST NOT** provide public or unrestricted access to any data without the permission of the data owner. All data classification and access controls must be followed. -R-39342: The VNF **MUST**, if not using the NCSP’s IDAM API, comply with "password changes (includes default passwords)" policy. Products +R-39342: The VNF **MUST**, if not using the NCSP’s IDAM API, comply with +"password changes (includes default passwords)" policy. Products will support password aging, syntax and other credential management practices on a configurable basis. diff --git a/docs/release-notes.rst b/docs/release-notes.rst index 3bc6a85..8a451f5 100644 --- a/docs/release-notes.rst +++ b/docs/release-notes.rst @@ -13,48 +13,60 @@ Version: 2.0.0 **New Features** - -Chapter 5 Requirements changed from test to numbered requirements. - *https://jira.onap.org/browse/VNFRQTS-83 + - Chapter 5 Requirements changed from test to numbered requirements. - -Chapter Header re-structured to help readability of documents. - *https://jira.onap.org/browse/VNFRQTS-130 - *https://wiki.onap.org/display/DW/VNF+Requirement+Updated+Header+Structure + -https://jira.onap.org/browse/VNFRQTS-83 - -Changed language to take into consider PNF (xNF). - *https://jira.onap.org/browse/VNFRQTS-188 - *https://jira.onap.org/browse/VNFRQTS-189 + - Chapter Header re-structured to help readability of documents. - -Added copyright License Header in all source files - *https://jira.onap.org/browse/VNFRQTS-180 + - https://jira.onap.org/browse/VNFRQTS-130 + - https://wiki.onap.org/display/DW/VNF+Requirement+Updated+Header+Structure + + - Changed language to take into consider PNF (xNF). + + - https://jira.onap.org/browse/VNFRQTS-188 + - https://jira.onap.org/browse/VNFRQTS-189 + + - Added copyright License Header in all source files + + - https://jira.onap.org/browse/VNFRQTS-180 **Bug Fixes** - - Fixed Chapter Header Structure warnings. - *https://jira.onap.org/browse/VNFRQTS-193 + - Fixed Chapter Header Structure warnings. - -Found table in Chapter 8 section C.2 that was not printing, corrected format. - *https://jira.onap.org/browse/VNFRQTS-192 + - https://jira.onap.org/browse/VNFRQTS-193 - -Fixes for language within requirements from clarification/grammar. - *- The full list of changes made to requirements is available on `JIRA `_ + - Found table in Chapter 8 section C.2 that was not printing, + corrected format. + + - https://jira.onap.org/browse/VNFRQTS-192 + + - Fixes for language within requirements from clarification/grammar. + + - The full list of changes made to requirements is available on `JIRA `_ **Known Issues** - - Need to review requirements that have bullet points as well as paragraphs to meet guidelines listed on `VNFRQTS `_ - *https://jira.onap.org/browse/VNFRQTS-195 + - Need to review requirements that have bullet points as well as paragraphs to meet guidelines listed on `VNFRQTS `_ + + - https://jira.onap.org/browse/VNFRQTS-195 **Security Issues** - - None + - None **Upgrade Notes** - - Requirements will still need to go and be updated in multiple locations, but there is an upgrade proposal to handle this. + - Requirements will still need to go and be updated in multiple + locations, but there is an upgrade proposal to handle this. **Deprecation Notes** - - Chapter numbers will no longer be used, numbers for chapters will be assigned dynamically based off of the header structure in rst. - *More information on the new header structure is available on `Headers `_ + - Chapter numbers will no longer be used, numbers for chapters + will be assigned dynamically based off of the header structure in rst. + + - More information on the new header structure is available on `Headers `_ **Other** @@ -68,32 +80,44 @@ Version: 1.0.0 **New Features** - Initial release of VNF Provider Guidelines and Requirements for Open Network Automation Platform (ONAP) - This intitial releases is based on seed documents that came from Open-O and Open ECOMP. For details, refer `Seed Document Mappings to VNFRQTS Deliverable Outlines `_. + - Initial release of VNF Provider Guidelines and Requirements for + Open Network Automation Platform (ONAP) + + - This intitial releases is based on seed documents that came from Open-O and Open ECOMP. For details, refer `Seed Document Mappings to VNFRQTS Deliverable Outlines `_. - This release provides a consolidated list of requirements as prototype text for RFPs to acquire VNFs to run in an ONAP context. The requirements are uniquely numbered and in a consistent format. + - This release provides a consolidated list of requirements as prototype + text for RFPs to acquire VNFs to run in an ONAP context. The + requirements are uniquely numbered and in a consistent format. **Bug Fixes** - - None + + - None **Known Issues** - - `VNFRQTS-83 Chapter 5, Section B Requirements `_. - - Heat requirments have not been formatted into the standard format used througout the document. + - `VNFRQTS-83 Chapter 5, Section B Requirements `_. + + - Heat requirments have not been formatted into the standard + format used througout the document. - - Therefore they are not included in the summary of requirements listed in Appendix 8.d. + - Therefore they are not included in the summary of requirements + listed in Appendix 8.d. - - These requirements can be found by searching for the keywords must, should in the sections of the document that discuss Heat. + - These requirements can be found by searching for the keywords must, + should in the sections of the document that discuss Heat. **Security Issues** - - No known security issues. + + - No known security issues. **Upgrade Notes** - - Initial release - none + + - Initial release - none **Deprecation Notes** - - Initial release - none + + - Initial release - none **Other** -- cgit 1.2.3-korg