--- /dev/null
+# -*- coding: utf8 -*-
+# org.onap.vnfrqts/requirements
+# ============LICENSE_START====================================================
+# Copyright © 2018 AT&T Intellectual Property. All rights reserved.
+#
+# Unless otherwise specified, all software contained herein is licensed
+# under the Apache License, Version 2.0 (the "License");
+# you may not use this software except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# Unless otherwise specified, all documentation contained herein is licensed
+# under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+# you may not use this documentation except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://creativecommons.org/licenses/by/4.0/
+#
+# Unless required by applicable law or agreed to in writing, documentation
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# ============LICENSE_END============================================
+
+"""
+This script should be run before every commit to ensure proper
+standards are being followed within the project. The script
+will also automatically fix certain issues when they are encountered, and
+warn about other issues it cannot automatically resolve.
+
+Warnings:
+- Requirement missing required attributes
+- Invalid values for attributes
+- Invalid section header usage in any file
+- :keyword: and requirement mismatch
+
+Auto Updates:
+- Assigning :id: on new requirements where an ID missing
+- Adding :introduced: attribute on new requirements
+- Adding/correcting :updated: attribute on changed requirements
+"""
+
+import os
+import random
+import re
+import sys
+from abc import ABC, abstractmethod
+from collections import OrderedDict, deque
+from pathlib import Path
+from typing import Deque, List, Mapping, Callable, Set
+
+import requests
+
+THIS_DIR = Path(__file__).parent
+CONF_PATH = THIS_DIR / "docs/conf.py"
+
+NEEDS_JSON_URL = (
+ "https://nexus.onap.org/service/local/repositories/raw/content"
+ "/org.onap.vnfrqts.requirements/master/needs.json"
+)
+
+HEADING_LEVELS = ("-", "^", "~", "+", "*", '"')
+
+SPACES = re.compile(r"\s+")
+REQ_DIRECTIVE_PATTERN = re.compile(r"\.\.\s+req::.*")
+ATTRIBUTE_PATTERN = re.compile(r"^\s+(:\w+:)\s+(.*)$")
+VERSION_PATTERN = re.compile(r"version\s+=\s+'(.*?)'")
+
+VALID_KEYWORDS = ("MUST", "MUST NOT", "SHOULD", "SHOULD NOT", "MAY", "MAY NOT")
+VALID_VERSIONS = (
+ "amsterdam",
+ "beijing",
+ "casablanca",
+ "dublin",
+ "el alto",
+ "frankfurt",
+ "guilin",
+)
+REQUIRED_ATTRIBUTES = (":keyword:", ":target:", ":id:")
+VALID_TARGETS = (
+ "VNF",
+ "PNF",
+ "VNF or PNF",
+ "VNF DOCUMENTATION PACKAGE",
+ "PNF DOCUMENTATION PACKAGE",
+ "VNF or PNF DOCUMENTATION PACKAGE",
+ "VNF PROVIDER",
+ "PNF PROVIDER",
+ "VNF or PNF PROVIDER",
+ "VNF CSAR PACKAGE",
+ "PNF CSAR PACKAGE",
+ "VNF or PNF CSAR PACKAGE",
+ "VNF HEAT PACKAGE",
+)
+VALID_VALIDATION_MODES = ("static", "none", "in_service")
+
+
+def check(predicate: bool, msg: str):
+ """
+ Raises RuntimeError with given msg if predicate is False
+ """
+ if not predicate:
+ raise RuntimeError(msg)
+
+
+def get_version() -> str:
+ """
+ Returns the version value from conf.py
+ """
+ with open(CONF_PATH) as f:
+ for line in f:
+ m = VERSION_PATTERN.match(line)
+ if m:
+ version = m.groups()[0]
+ if version not in VALID_VERSIONS:
+ print(
+ f"ERROR: {version} in conf.py is not defined in "
+ f"VALID_VERSIONS. Update the script to continue"
+ )
+ sys.exit(1)
+ return version
+
+
+VERSION = get_version()
+
+
+def normalize(text: str):
+ """
+ Strips out formatting, line breaks, and repeated spaces to normalize
+ the string for comparison. This ensures minor formatting changes
+ are not tagged as meaningful changes
+ """
+ s = text.lower()
+ s = s.replace("\n", " ")
+ s = re.sub(r'[`*\'"]', "", s)
+ s = re.sub(r"\s+", " ", s)
+ return s
+
+
+def warn(path: str, msg: str, req: "RequirementDirective" = None):
+ """
+ Log a warning
+ """
+ req_id = req.requirement_id or "UNKNOWN" if req else "UNKNOWN"
+ print(f"WARNING: {path} | {req_id} | {msg}")
+
+
+class RequirementRepository:
+ """
+ Pulls needs.json and provides various options to interact with the data.
+ """
+
+ def __init__(self, data=None):
+ self.data = data or requests.get(NEEDS_JSON_URL).json()
+ self.all_ids = {
+ r["id"]
+ for version in self.data["versions"].values()
+ for r in version["needs"].values()
+ }
+
+ @property
+ def current_requirements(self) -> Mapping:
+ """
+ Returns the requirements specified by current_version in needs.json.
+ """
+ version = self.data["current_version"]
+ return self.data["versions"][version]["needs"]
+
+ @property
+ def unique_targets(self) -> Set[str]:
+ return {r["target"] for r in self.current_requirements.values()}
+
+ @property
+ def unique_validation_modes(self) -> Set[str]:
+ return {r["validation_mode"] for r in self.current_requirements.values()}
+
+ def create_id(self) -> str:
+ """
+ Generates a requirements ID that has not been used in any version
+ of the requirements.
+ """
+ while True:
+ new_id = "R-{:0>5d}".format(random.randint(0, 99999))
+ if new_id in self.all_ids:
+ continue # skip this one and generate another one
+ self.all_ids.add(new_id)
+ return new_id
+
+ def is_new_requirement(self, req: "RequirementDirective") -> bool:
+ return req.requirement_id not in self.current_requirements
+
+ def has_changed(self, req: "RequirementDirective") -> bool:
+ """
+ Returns True if the requirement already exists and the contents has
+ meaningfully changed. Small changes in spaces or formatting are not considered.
+ """
+ current_req = self.current_requirements.get(req.requirement_id)
+ if not current_req:
+ return False
+ return normalize(current_req["description"]) == normalize("".join(req.content))
+
+
+class RequirementDirective:
+ """
+ Data structure to hold a .. req:: directive
+ """
+
+ ATTRIBUTE_ORDER = (
+ ":id:",
+ ":target:",
+ ":keyword:",
+ ":introduced:",
+ ":updated:",
+ ":validation_mode:",
+ ":impacts:",
+ )
+
+ def __init__(self, path: str):
+ self.path = path
+ self.attributes = OrderedDict()
+ self.content = []
+ self.indent = None
+
+ @property
+ def requirement_id(self) -> str:
+ return self.attributes.get(":id:", "")
+
+ @requirement_id.setter
+ def requirement_id(self, r_id: str):
+ self._update(":id:", r_id)
+
+ @property
+ def keyword(self) -> str:
+ return self.attributes.get(":keyword:", "")
+
+ @keyword.setter
+ def keyword(self, k: str):
+ self._update(":keyword:", k)
+
+ @property
+ def target(self) -> str:
+ return self.attributes.get(":target:", "")
+
+ @target.setter
+ def target(self, value: str):
+ self._update(":target", value)
+
+ @property
+ def introduced(self) -> str:
+ return self.attributes.get(":introduced:", "")
+
+ @introduced.setter
+ def introduced(self, version: str):
+ self._update(":introduced:", version)
+
+ @property
+ def updated(self) -> str:
+ return self.attributes.get(":updated:", "")
+
+ @updated.setter
+ def updated(self, version: str):
+ self._update(":updated:", version)
+
+ @property
+ def validation_mode(self) -> str:
+ return self.attributes.get(":validation_mode:", "")
+
+ @validation_mode.setter
+ def validation_mode(self, value: str):
+ self._update(":validation_mode:", value)
+
+ def parse(self, lines: Deque[str]):
+ """
+ Parses a ..req:: directive and populates the data structre
+ """
+ parsing_attrs = True
+ while lines:
+ line = lines.popleft()
+ match = ATTRIBUTE_PATTERN.match(line) if parsing_attrs else None
+ if match:
+ self.indent = self.indent or self.calc_indent(line)
+ attr, value = match.groups()
+ self.attributes[attr] = value
+ else:
+ parsing_attrs = False # passed attributes, capture content
+ if line.strip() and self.calc_indent(line) < self.indent:
+ # past end of the directive so we'll put this line back
+ lines.appendleft(line)
+ break
+ else:
+ self.content.append(line)
+
+ def format_attributes(self) -> List[str]:
+ """
+ Converts a dict back to properly indented lines using ATTRIBUTE_ORDER
+ """
+ spaces = " " * self.indent
+ attr_lines = []
+ for key in self.ATTRIBUTE_ORDER:
+ value = self.attributes.get(key)
+ if value:
+ attr_lines.append(f"{spaces}{key} {value}\n")
+ return attr_lines
+
+ @staticmethod
+ def calc_indent(line: str) -> int:
+ """
+ Number of leading spaces of the line
+ """
+ return len(line) - len(line.lstrip())
+
+ def __str__(self):
+ return "".join(self.format_attributes() + self.content)
+
+ def _notify(self, field, value):
+ req_id = self.requirement_id or "UNKNOWN"
+ print(f"UPDATE: {self.path} | {req_id} | Setting {field} to {value}")
+
+ def _update(self, attr, value):
+ self.attributes[attr] = value
+ self._notify(attr, value)
+
+
+class RequirementVisitor:
+ """
+ Walks a directory for reStructuredText files and and passes contents to
+ visitors when the content is encountered.
+
+ Types of visitors supported:
+
+ - Requirement: Take the path and a RequirementDirective which may be modified
+ If modified, the file will be updated using the modified directive
+ - Post Processor: Take the path and all lines for processing; returning a
+ potentially changed set of lines
+ """
+
+ def __init__(
+ self,
+ req_visitors: List[Callable[[str, RequirementDirective], None]],
+ post_processors: List[Callable[[str, List[str]], List[str]]],
+ ):
+ self.req_visitors = req_visitors or []
+ self.post_processors = post_processors or []
+
+ def process(self, root_dir: Path):
+ """
+ Walks the `root_dir` looking for rst to files to parse
+ """
+ for dir_path, sub_dirs, filenames in os.walk(root_dir.as_posix()):
+ for filename in filenames:
+ if filename.lower().endswith(".rst"):
+ self.handle_rst_file(os.path.join(dir_path, filename))
+
+ @staticmethod
+ def read(path):
+ """Read file at `path` and return lines as list"""
+ with open(path, "r") as f:
+ return list(f)
+
+ @staticmethod
+ def write(path, content):
+ """Write a content to the given path"""
+ with open(path, "w") as f:
+ for line in content:
+ f.write(line)
+
+ def handle_rst_file(self, path):
+ """
+ Parse the RST file notifying the registered visitors
+ """
+ lines = deque(self.read(path))
+ new_contents = []
+ while lines:
+ line = lines.popleft()
+ if self.is_req_directive(line):
+ req = RequirementDirective(path)
+ req.parse(lines)
+ for func in self.req_visitors:
+ func(path, req)
+ # Put the lines back for processing by the line visitor
+ lines.extendleft(reversed(req.format_attributes() + req.content))
+ new_contents.append(line)
+ for processor in self.post_processors:
+ new_contents = processor(path, new_contents) or new_contents
+ self.write(path, new_contents)
+
+ @staticmethod
+ def is_req_directive(line):
+ """Returns True if the line denotes the start of a needs directive"""
+ return bool(REQ_DIRECTIVE_PATTERN.match(line))
+
+
+class AbstractRequirementVisitor(ABC):
+ @abstractmethod
+ def __call__(self, path: str, req: RequirementDirective):
+ raise NotImplementedError()
+
+
+class MetadataFixer(AbstractRequirementVisitor):
+ """
+ Updates metadata based on the status of the requirement and contents of
+ the metadata
+ """
+
+ def __init__(self, repos: RequirementRepository):
+ self.repos = repos
+
+ def __call__(self, path: str, req: RequirementDirective):
+ if not req.requirement_id:
+ req.requirement_id = self.repos.create_id()
+ if self.repos.is_new_requirement(req) and req.introduced != VERSION:
+ req.introduced = VERSION
+ if self.repos.has_changed(req) and req.updated != VERSION:
+ req.updated = VERSION
+
+
+class MetadataValidator(AbstractRequirementVisitor):
+ def __init__(self, repos: RequirementRepository):
+ self.repos = repos
+
+ def __call__(self, path: str, req: RequirementDirective):
+ for attr in REQUIRED_ATTRIBUTES:
+ if attr not in req.attributes:
+ warn(path, f"Missing required attribute {attr}", req)
+ if req.keyword and req.keyword not in VALID_KEYWORDS:
+ warn(path, f"Invalid :keyword: value ({req.keyword})", req)
+ if repository.is_new_requirement(req) and req.introduced != VERSION:
+ warn(path, f":introduced: is not {VERSION} on new requirement", req)
+ if req.introduced and req.introduced not in VALID_VERSIONS:
+ warn(path, f"Invalid :introduced: value ({req.introduced})", req)
+ if req.updated and req.updated not in VALID_VERSIONS:
+ warn(path, f"Invalid :updated: value ({req.updated})", req)
+ if req.target and req.target not in VALID_TARGETS:
+ warn(path, f"Invalid :target: value ({req.target})", req)
+ if req.validation_mode and req.validation_mode not in VALID_VALIDATION_MODES:
+ warn(path, f"Invalid :validation_mode: value ({req.validation_mode})", req)
+
+
+def check_section_headers(path: str, lines: List[str]) -> List[str]:
+ """
+ Ensure hierarchy of section headers follows the expected progression as defined
+ by `HEADING_LEVELS`, and that section heading marks match the length of the
+ section title.
+ """
+ current_heading_level = 0
+ for i, line in enumerate(lines):
+ if any(line.startswith(char * 3) for char in HEADING_LEVELS):
+ # heading level should go down, stay the same, or be next level
+ expected = HEADING_LEVELS[0 : current_heading_level + 2]
+ if line[0] not in expected:
+ warn(
+ path,
+ f"Unexpected heading char ({line[0]}) on line {i+1}. "
+ f"Expected one of {' '.join(expected)}",
+ )
+ if len(line.strip()) != len(lines[i - 1].strip()):
+ lines[i] = (line[0] * len(lines[i - 1].strip())) + "\n"
+ print(
+ f"UPDATE: {path} | Matching section mark to title length "
+ f"on line {i+1}"
+ )
+ current_heading_level = HEADING_LEVELS.index(line[0])
+ return lines
+
+
+def check_keyword_text_alignment(path: str, req: RequirementDirective):
+ if not req.keyword:
+ return req
+ keyword = f"**{req.keyword}**"
+ if not any(keyword in line for line in req.content):
+ warn(path, f"Keyword is {req.keyword}, but {keyword} not in requirement", req)
+
+
+if __name__ == "__main__":
+ print("Valid Versions")
+ print("-----------------------")
+ print("\n".join(VALID_VERSIONS))
+ print()
+ print("Valid Keywords")
+ print("-----------------------")
+ print("\n".join(VALID_KEYWORDS))
+ print()
+ print("Valid Targets")
+ print("-----------------------")
+ print("\n".join(VALID_TARGETS))
+ print()
+ print("Valid Validation Modes")
+ print("-----------------------")
+ print("\n".join(VALID_VALIDATION_MODES))
+ print()
+ print("Check-up Report")
+ print("-" * 100)
+ repository = RequirementRepository()
+ visitor = RequirementVisitor(
+ req_visitors=[
+ MetadataFixer(repository),
+ MetadataValidator(repository),
+ check_keyword_text_alignment,
+ ],
+ post_processors=[check_section_headers],
+ )
+ visitor.process(THIS_DIR / "docs")
VNF Devops
----------------------
+----------
This section includes guidelines for VNF providers to ensure that a Network
Cloud Service Provider’s operations personnel have a common and
that will be introduced.
ONAP VNF Modularity
-^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^
ONAP supports a modular Heat Orchestration Template design pattern,
referred to as *VNF Modularity.* With this approach, a single VNF may be
template.
Suggested Patterns for Modular VNFs
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
There are numerous variations of VNF modularity. Below are two suggested
usage patterns.
options.
Modularity Rules
-^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^
There are some rules to follow when building modular VNF templates:
VNF Resiliency
--------------------------
+--------------
The VNF is responsible for meeting its resiliency goals and must factor
in expected availability of the targeted virtualization environment.
Below are more detailed resiliency requirements for VNFs.
All Layer Redundancy
-^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^
Design the VNF to be resilient to the failures of the underlying
virtualized infrastructure (Network Cloud). VNF design considerations
and evacuate for rollback or back out mechanism.
Minimize Cross Data-Center Traffic
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Avoid performance-sapping data center-to-data center replication delay
by applying techniques such as caching and persistent transaction paths
across multiple data centers to avoid cross data center traffic.
Application Resilient Error Handling
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Ensure an application communicating with a downstream peer is equipped
to intelligently handle all error conditions. Make sure code can handle
location can take over traffic and process service requests.
System Resource Optimization
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Ensure an application is using appropriate system resources for the task
at hand; for example, do not use network or IO operations inside
to not prevent use of these assets by other entities.
Application Configuration Management
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Leverage configuration management audit capability to drive conformity
to develop gold configurations for technologies like Java, Python, etc.
to be bounced so that the VNF availability is not effected.
Intelligent Transaction Distribution & Management
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Leverage Intelligent Load Balancing and redundant components (hardware
and modules) for all transactions, such that at any point in the
is able to control its load against the VNF.
Deployment Optimization
-^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^
Reduce opportunity for failure, by human or by machine, through smarter
deployment practices and automation. This can include rolling code
not met.
Monitoring & Dashboard
-^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^
Promote dashboarding as a tool to monitor and support the general
operational health of a system. It is critical to the support of the
development of the VNF.
Virtual Function - Container Recovery Requirements
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
As part of life cycle management, for Cloud environment, VNFs need to
support a set of basic recovery capabilities to maintain the health
VNF Security
-----------------------
+------------
The objective of this section is to provide the key security
requirements that need to be met by VNFs. The security requirements are
requirements associated with data protection.
VNF General Security Requirements
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This section provides details on the VNF general security requirements
on various security areas such as user access control, network security,
are secure. All non-compliances with the benchmarks MUST be documented.
VNF Identity and Access Management Requirements
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The following security requirements for logging, identity, and access
management need to be met by the solution in a virtual environment:
VNF API Security Requirements
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This section covers API security requirements when these are used by the
VNFs. Key security areas covered in API security are Access Control,
should be tested for spoofed MIME types.
VNF Security Analytics Requirements
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This section covers VNF security analytics requirements that are mostly
applicable to security monitoring. The VNF Security Analytics cover the
elevated privileges.
VNF Data Protection Requirements
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This section covers VNF data protection requirements that are mostly
applicable to security monitoring.
VNF Cryptography Requirements
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This section covers VNF cryptography requirements that are mostly
applicable to encryption or protocol meethods.
.. _General Guidelines for Heat:
General Guidelines for Heat
-----------------------------
+---------------------------
This section contains general Heat Orchestration Template guidelines
and requirements.
Heat Template Compliance
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^
The Heat Orchestration Template requirements with RFC 2119
keywords **MUST** and **MUST NOT** can be validated against a set of Heat
YAML Format
-^^^^^^^^^^^^^^
+^^^^^^^^^^^
.. req::
:id: R-95303
.. _ONAP Heat Cinder Volumes:
ONAP Heat Cinder Volumes
-----------------------------
+------------------------
Cinder Volumes are created with the heat resource OS::Cinder::Volume.
:id: R-270358
:target: VNF
:keyword: MUST
- :validation_mode: static
:introduced: casablanca
+ :validation_mode: static
A VNF's Heat Orchestration Template's Cinder Volume Template **MUST**
contain either
an ``OS::Cinder::Volume`` resource
Optional Property availability_zone
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. req::
:id: R-25190
``availability_zone_{index}``).
Optional Property volume_type
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
OpenStack supports multiple volume types. If the ``OS::Cinder::Volume``
optional property ``volume_type`` is not specified, the OpenStack default
are no requirements on the parameter naming convention.
Cinder Volume Examples
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^
*Examples: Volume Template*
.. _ONAP Heat High Availability:
ONAP Heat High Availability
-------------------------------
+---------------------------
VNF/VM parameters may include availability zone IDs for VNFs that
require high availability.
.. _ONAP Heat Networking:
ONAP Heat Networking
------------------------
+--------------------
ONAP defines two types of networks: External Networks and Internal Networks.
External Networks
-^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^
An ONAP external network is created by using VID or by invoking SO directly
to instantiate the network.
:id: R-16968
:target: VNF
:keyword: MUST NOT
- :validation_mode: static
:updated: frankfurt
+ :validation_mode: static
A VNF's Heat Orchestration Templates **MUST NOT** include heat
resources to create an ONAP external network.
:id: R-57424
:target: VNF
:keyword: MAY
- :validation_mode: none
:updated: frankfurt
+ :validation_mode: none
A VNF's port connected to an ONAP external network **MAY**
use the port for the purpose of
:id: R-99794
:target: VNF
:keyword: MUST
- :validation_mode: none
:updated: frankfurt
+ :validation_mode: none
An ONAP external network **MUST** have one subnet. An external network
**MAY** have more than one subnet.
provides additional details.
Internal Networks
-^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^
An ONAP internal network is created by the VNF's Heat Orchestration Template.
That is, the VNF's Heat Orchestration Template contains the heat resources to
:id: R-35666
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: frankfurt
+ :validation_mode: static
If a VNF has an ONAP internal network, the VNF's Heat Orchestration
Template **MUST** include the heat resources to create the
:id: R-52425
:target: VNF
:keyword: MUST
- :validation_mode: none
:updated: frankfurt
+ :validation_mode: none
A VNF's port connected to an ONAP internal network **MUST**
use the port for the purpose of reaching VMs in the same VNF.
+.. req::
+ :id: R-41542
+ :target: VNF
+ :keyword: MUST
+ :introduced: guilin
+ :validation_mode: none
+
+ A VNF's port connected to fdfsafd ONAP internal network **MUST**
+ use the port for the purpose of reaching VMs in the same VNF.
+
.. req::
:id: R-46461
:target: VNF
:keyword: MUST NOT
- :validation_mode: none
:updated: frankfurt
+ :validation_mode: none
A VNF's port connected to an ONAP internal network **MUST NOT**
use the port
:id: R-16241
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: frankfurt
+ :validation_mode: static
A VNF's ONAP internal network **MUST** have one subnet.
A VNF's ONAP internal network **MAY** have more than one subnet.
:id: R-22688
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: frankfurt
+ :validation_mode: static
When a VNF's Heat Orchestration Template creates an ONAP internal network
(per the ONAP definition, see Requirements R-52425 and R-46461
.. _ONAP Heat Orchestration Template Format:
ONAP Heat Orchestration Template Format
-------------------------------------------------
+---------------------------------------
As stated above, Heat Orchestration templates must be defined in YAML.
.. req::
:id: R-92635
+ :target: VNF
:keyword: MUST
- :validation_mode: static
:introduced: casablanca
- :target: VNF
+ :validation_mode: static
A VNF's Heat Orchestration Template **MUST** be compliant with the
OpenStack Template Guide.
https://docs.openstack.org/heat/latest/template_guide/index.html#top.
Heat Orchestration Template Structure
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Heat Orchestration template structure follows the following format, as
defined by OpenStack at
heat_template_version
-~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~
.. req::
:id: R-27078
- :keyword: MUST
:target: VNF
+ :keyword: MUST
:validation_mode: static
A VNF's Heat Orchestration template **MUST** contain the
is supported by the OpenStack environment.
description
-~~~~~~~~~~~~
+~~~~~~~~~~~
.. req::
:id: R-39402
+ :target: VNF
:keyword: MUST
:validation_mode: static
- :target: VNF
A VNF's Heat Orchestration Template **MUST** contain the
section ``description:``.
parameter_groups
-~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~
A VNF Heat Orchestration template may
contain the section "parameter_groups:".
parameters
-~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~
.. req::
:id: R-35414
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: frankfurt
+ :validation_mode: static
A VNF Heat Orchestration's template
**MUST** contain the section ``parameters:`` with at least one
:id: R-90279
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: frankfurt
+ :validation_mode: static
A VNF Heat Orchestration's template's parameter **MUST** be used
maybe declared but not used in a resource.
<param name>
-+++++++++++++
+++++++++++++
The name of the parameter.
:id: R-11441
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
A VNF's Heat Orchestration Template's parameter type **MUST** be one of
the following values:
* ``boolean``
label
-++++++
++++++
.. req::
contain the attribute ``label:``.
description
-+++++++++++++
++++++++++++
.. req::
ONAP implementation requires this attribute.
default
-++++++++
++++++++
.. req::
:id: R-90526
:target: VNF
- :keyword: MUST
+ :keyword: MUST NOT
:validation_mode: static
A VNF Heat Orchestration Template parameter declaration **MUST NOT**
:id: R-26124
:target: VNF
:keyword: MUST
- :validation_mode: none
:updated: casablanca
+ :validation_mode: none
If a VNF Heat Orchestration Template parameter has a default value,
it **MUST** be enumerated in the environment file.
ONAP implementation prohibits the use of this attribute.
hidden
-+++++++
+++++++
.. req::
This attribute can be used to hide passwords specified as parameters.
constraints
-++++++++++++
++++++++++++
The parameter attribute ``constraints:`` is an OpenStack optional attribute
that defines a list of constraints to apply to the parameter.
:id: R-88863
:target: VNF
:keyword: MAY
- :validation_mode: none
:updated: dublin
+ :validation_mode: none
A VNF's Heat Orchestration Template's parameter defined
in a non-nested YAML file as type
:id: R-00011
:target: VNF
:keyword: SHOULD NOT
- :validation_mode: static
:updated: dublin
+ :validation_mode: static
A VNF's Heat Orchestration Template's parameter defined
in a nested YAML file
- ...
immutable
-++++++++++++
++++++++++
.. req::
value is changed. This attribute ``immutable`` defaults to ``false``.
tags
-++++++++++++
+++++
.. req::
:id: R-225891
- :keyword: MAY
:target: VNF
+ :keyword: MAY
:introduced: el alto
A VNF's Heat Orchestration Template parameter declaration
.. _resources:
resources
-~~~~~~~~~~~~
+~~~~~~~~~
.. req::
:id: R-23663
:id: R-23664
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: frankfurt
+ :validation_mode: static
A VNF's Heat Orchestration template's incremental
module and volume module **MUST**
resource ID
-+++++++++++++
++++++++++++
.. req::
:id: R-75141
Orchestration Templates the compose the VNF.
type
-+++++
+++++
The resource attribute ``type`` is an OpenStack required attribute that
defines the resource type, such as ``OS::Nova::Server`` or
**MUST NOT** reference a HTTP-based Nested YAML file.
properties
-+++++++++++++
+++++++++++
The resource attribute ``properties`` is an OpenStack optional attribute that
provides a list of resource-specific properties. The property value can
:id: R-10834
:target: VNF
:keyword: MUST NOT
- :validation_mode: static
:updated: el alto
+ :validation_mode: static
A VNF's Heat Orchestration Template resource attribute ``property:``
**MUST NOT** use more than two levels of nested ``get_param`` intrinsic
metadata
-++++++++++
+++++++++
The resource attribute ``metadata`` is an OpenStack optional attribute.
:id: R-67386
:target: VNF
:keyword: MAY
- :validation_mode: static
:introduced: casablanca
+ :validation_mode: static
A VNF's Heat Orchestration Template's Resource **MAY** declare the
attribute ``metadata``.
depends_on
-+++++++++++
+++++++++++
The resource attribute ``depends_on`` is an OpenStack optional attribute.
See `Section <https://docs.openstack.org/developer/heat/template_guide/hot_spec.html#hot-spec-resources-dependencies>`__ 9.7 for additional details.
attribute ``depends_on:``.
update_policy
-++++++++++++++
++++++++++++++
.. req::
attribute ``update_policy:``.
deletion_policy
-+++++++++++++++++++
++++++++++++++++
.. req::
deleting a resource from the stack.
external_id
-++++++++++++
++++++++++++
.. req::
condition
-+++++++++++
++++++++++
The resource attribute ``condition`` is an OpenStack optional attribute.
outputs
-~~~~~~~~~
+~~~~~~~
.. req::
:ref:`ONAP Output Parameter Names` for additional details.
Environment File Format
-^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^
A VNF's Heat Orchestration Template's environment file is a yaml text file.
(https://docs.openstack.org/developer/heat/template_guide/environment.html)
:id: R-86285
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
A VNF's Heat Orchestration template **MUST** have a
corresponding environment file.
:id: R-03324
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
A VNF's Heat Orchestration template's Environment File **MUST**
contain the ``parameters:`` section.
.. _ONAP Heat Orchestration Templates Overview:
ONAP Heat Orchestration Templates Overview
------------------------------------------------
+------------------------------------------
ONAP supports a modular Heat Orchestration Template design pattern,
referred to as *VNF Modularity.*
.. _heat_onap_vnf_modularity_overview:
ONAP VNF Modularity Overview
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. req::
:id: R-11200
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
A VNF's Cinder Volume Module, when it exists, **MUST** be 1:1
with a Base module or Incremental module.
:id: R-38474
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
A VNF's Base Module **MUST** have a corresponding Environment File.
:id: R-81725
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
A VNF's Incremental Module **MUST** have a corresponding Environment File
:id: R-53433
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
A VNF's Cinder Volume Module **MUST** have a corresponding environment file
that will be introduced.
Nested Heat Orchestration Templates Overview
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ONAP supports nested Heat Orchestration Templates per OpenStack
specifications.
See :ref:`Nested Heat Templates` for additional details.
ONAP Heat Orchestration Template Filenames
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
In order to enable ONAP to understand the relationship between Heat
files, the following Heat file naming convention must be utilized.
:id: R-81339
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: el alto
+ :validation_mode: static
A VNF Heat Orchestration Template's Base Module file name **MUST** include
case insensitive 'base' in the filename and
:id: R-87247
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: el alto
+ :validation_mode: static
VNF Heat Orchestration Template's Incremental Module file name
**MUST** contain only alphanumeric characters and underscores
:id: R-82732
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
A VNF Heat Orchestration Template's Cinder Volume Module **MUST**
be named identical to the base or incremental module it is supporting with
.. req::
:id: R-589037
+ :target: VNF
:keyword: MUST
- :validation_mode: static
:introduced: dublin
:updated: el alto
+ :validation_mode: static
A VNF Heat Orchestration Template's Cinder Volume Module ``resources:``
section
:id: R-31141
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
VNF Heat Orchestration Template's Cinder Volume Module's Environment File
**MUST** be named identical to the VNF Heat Orchestration Template's
:id: R-76057
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: el alto
+ :validation_mode: static
VNF Heat Orchestration Template's Nested YAML file name **MUST** contain
only alphanumeric characters and underscores '_' and
.. _Output Parameters:
Output Parameters
-^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^
The output parameters are parameters defined in the output section of a
Heat Orchestration Template. The ONAP output parameters are subdivided
3. ONAP Predefined Output Parameters.
ONAP Base Module Output Parameters
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ONAP Base Module Output Parameters are declared in the ``outputs:`` section
of the VNF's Heat Orchestration Template's Base Module. A Base Module Output
:id: R-52753
:target: VNF
:keyword: MUST
- :validation_mode: none
:updated: dublin
+ :validation_mode: none
VNF's Heat Orchestration Template's Base Module's output parameter's
name and type **MUST** match the VNF's Heat Orchestration Template's
:id: R-22608
:target: VNF
:keyword: SHOULD NOT
- :validation_mode: static
:updated: dublin
+ :validation_mode: static
When a VNF's Heat Orchestration Template's Base Module's output
parameter is declared as an input parameter in an Incremental Module,
:id: R-89913
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: dublin
+ :validation_mode: static
A VNF's Heat Orchestration Template's Cinder Volume Module Output
Parameter(s)
:id: R-07443
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: dublin
+ :validation_mode: static
A VNF's Heat Orchestration Templates' Cinder Volume Module Output
Parameter's name and type **MUST** match the input parameter name and type
:id: R-20547
:target: VNF
:keyword: SHOULD NOT
- :validation_mode: static
:updated: dublin
+ :validation_mode: static
When an ONAP Volume Module Output Parameter is declared as an input
parameter in a base or an incremental module Heat Orchestration
:ref:`ONAP Output Parameter Names` and :ref:`ONAP Heat Cinder Volumes`.
ONAP Predefined Output Parameters
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ONAP will look for a small set of pre-defined Heat output parameters to
capture resource attributes for inventory in ONAP. These output parameters
:ref:`OAM Management IP Addresses`.
Support of heat stack update
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ONAP does not support the use of heat stack-update command for scaling
(growth/de-growth).
image upgrades.
Scope of a Heat Orchestration Template
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. req::
.. req::
:id: R-511776
+ :target: VNF
:keyword: MUST
:introduced: dublin
:validation_mode: static
.. req::
:id: R-348813
- :keyword: MUST
- :validation_mode: static
+ :target: VNF HEAT PACKAGE
+ :keyword: MUST NOT
:introduced: dublin
+ :validation_mode: static
The VNF's Heat Orchestration Template's ZIP file **MUST NOT** include
a binary image file.
.. _ONAP Heat Post Orchestration & VNF Configuration:
ONAP Heat Post Orchestration & VNF Configuration
---------------------------------------------------
+------------------------------------------------
Heat templates should contain a minimum amount of post-orchestration
configuration data. For instance, *do not* embed complex user-data
:id: R-02164
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: frankfurt
+ :validation_mode: static
When a VNF's Heat Orchestration Template's Contrail resource
``OS::ContrailV2::InstanceIp`` and/or
:id: R-92193
:target: VNF
:keyword: MUST NOT
- :validation_mode: static
:updated: frankfurt
+ :validation_mode: static
A VNF's Heat Orchestration Template's Contrail resource
``OS::ContrailV2::InstanceIp`` and/or
:id: R-28222
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
If a VNF's Heat Orchestration Template
``OS::ContrailV2::InterfaceRouteTable`` resource
:id: R-19756
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
If a VNF's Heat Orchestration Template
``OS::ContrailV2::InterfaceRouteTable`` resource
:id: R-76682
:target: VNF
:keyword: MUST NOT
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
If a VNF's Heat Orchestration Template
``OS::ContrailV2::InterfaceRouteTable`` resource
.. req::
:id: R-100000
- :keyword: MUST
- :validation_mode: static
:target: VNF
+ :keyword: MUST
:introduced: dublin
+ :validation_mode: static
The VNF's Heat Orchestration Template's
resource ``OS::ContrailV2::InstanceIp`` property ``instance_ip_address``
.. req::
:id: R-100010
+ :target: VNF
:keyword: MUST
:introduced: dublin
- :validation_mode: static
- :target: VNF
:updated: frankfurt
+ :validation_mode: static
When the VNF's Heat Orchestration Template's Resource
``OS::ContrailV2::InstanceIp`` is assigning an IP address
.. req::
:id: R-100020
- :keyword: MUST NOT
- :validation_mode: static
:target: VNF
+ :keyword: MUST NOT
:introduced: dublin
+ :validation_mode: static
The VNF's Heat Orchestration Template's Resource
``OS::ContrailV2::InstanceIp`` property ``instance_ip_address``
.. req::
:id: R-100030
- :keyword: MUST
- :validation_mode: static
:target: VNF
+ :keyword: MUST
:introduced: dublin
:updated: frankfurt
+ :validation_mode: static
When the VNF's Heat Orchestration Template's Resource
``OS::ContrailV2::InstanceIp`` is assigning an IP address
.. req::
:id: R-100040
- :keyword: MUST NOT
- :validation_mode: static
:target: VNF
+ :keyword: MUST NOT
:introduced: dublin
+ :validation_mode: static
The VNF's Heat Orchestration Template's Resource
``OS::ContrailV2::InstanceIp`` property ``instance_ip_address``
.. req::
:id: R-100050
+ :target: VNF
:keyword: MUST
:introduced: dublin
- :validation_mode: static
- :target: VNF
:updated: frankfurt
+ :validation_mode: static
When the VNF's Heat Orchestration Template's Resource
``OS::ContrailV2::InstanceIp`` is assigning an IP address
.. req::
:id: R-100060
+ :target: VNF
:keyword: MUST NOT
- :validation_mode: static
:introduced: dublin
- :target: VNF
+ :validation_mode: static
The VNF's Heat Orchestration Template's Resource
``OS::ContrailV2::InstanceIp`` property ``instance_ip_address``
.. req::
:id: R-100070
+ :target: VNF
:keyword: MUST
- :validation_mode: static
:introduced: dublin
- :target: VNF
:updated: frankfurt
+ :validation_mode: static
When the VNF's Heat Orchestration Template's Resource
``OS::ContrailV2::InstanceIp`` is assigning an IP address
.. req::
:id: R-100080
+ :target: VNF
:keyword: MUST NOT
- :validation_mode: static
:introduced: dublin
- :target: VNF
+ :validation_mode: static
The VNF's Heat Orchestration Template's Resource
``OS::ContrailV2::InstanceIp`` property ``instance_ip_address``
.. req::
:id: R-100090
+ :target: VNF
:keyword: MUST
:introduced: dublin
- :validation_mode: static
- :target: VNF
:updated: frankfurt
+ :validation_mode: static
When the VNF's Heat Orchestration Template's Resource
``OS::ContrailV2::InstanceIp`` is assigning an IP address
.. req::
:id: R-100100
- :keyword: MUST
- :validation_mode: static
:target: VNF
+ :keyword: MUST
:introduced: dublin
+ :validation_mode: static
The VNF's Heat Orchestration Template's Resource
``OS::ContrailV2::InstanceIp`` property ``instance_ip_address``
.. req::
:id: R-100110
- :keyword: MUST
- :validation_mode: static
:target: VNF
+ :keyword: MUST
:introduced: dublin
:updated: frankfurt
+ :validation_mode: static
When the VNF's Heat Orchestration Template's Resource
``OS::ContrailV2::InstanceIp`` is assigning an IP address
.. req::
:id: R-100120
- :keyword: MUST
- :validation_mode: static
:target: VNF
+ :keyword: MUST
:introduced: dublin
+ :validation_mode: static
The VNF's Heat Orchestration Template's Resource
``OS::ContrailV2::InstanceIp`` property ``instance_ip_address``
.. req::
:id: R-100130
+ :target: VNF
:keyword: MUST
:introduced: dublin
- :validation_mode: static
- :target: VNF
:updated: frankfurt
+ :validation_mode: static
When the VNF's Heat Orchestration Template's Resource
``OS::ContrailV2::InstanceIp`` is assigning an IP address to an
.. req::
:id: R-100140
- :keyword: MUST
- :validation_mode: static
:target: VNF
+ :keyword: MUST
:introduced: dublin
+ :validation_mode: static
The VNF's Heat Orchestration Template's Resource
``OS::ContrailV2::InstanceIp`` property ``instance_ip_address``
.. req::
:id: R-100150
- :keyword: MUST
- :validation_mode: static
:target: VNF
+ :keyword: MUST
:introduced: dublin
:updated: frankfurt
+ :validation_mode: static
When the VNF's Heat Orchestration Template's Resource
``OS::ContrailV2::InstanceIp`` is assigning an IP address to an
.. req::
:id: R-100160
- :keyword: MUST
- :validation_mode: static
:target: VNF
+ :keyword: MUST
:introduced: dublin
+ :validation_mode: static
The VNF's Heat Orchestration Template's Resource
``OS::ContrailV2::InstanceIp`` property ``instance_ip_address``
.. req::
:id: R-100170
- :keyword: MUST NOT
- :validation_mode: static
:target: VNF
+ :keyword: MUST NOT
:introduced: dublin
:updated: frankfurt
+ :validation_mode: static
The VNF's Heat Orchestration Template's Resource
``OS::ContrailV2::InstanceIp``
.. req::
:id: R-100180
- :keyword: MUST
- :validation_mode: static
:target: VNF
+ :keyword: MUST
:introduced: dublin
:updated: frankfurt
+ :validation_mode: static
The VNF's Heat Orchestration Template's Resource
``OS::ContrailV2::InstanceIp``
.. req::
:id: R-100190
- :keyword: MUST
- :validation_mode: static
:target: VNF
+ :keyword: MUST
:introduced: dublin
+ :validation_mode: static
The VNF's Heat Orchestration Template's
resource ``OS::ContrailV2::InstanceIp`` property ``subnet_uuid``
.. req::
:id: R-100200
- :keyword: MUST
- :validation_mode: static
:target: VNF
+ :keyword: MUST
:introduced: dublin
:updated: frankfurt
+ :validation_mode: static
When the VNF's Heat Orchestration Template's
resource ``OS::ContrailV2::InstanceIp`` is assigning an IP address
.. req::
:id: R-100210
- :keyword: MUST NOT
- :validation_mode: static
:target: VNF
+ :keyword: MUST NOT
:introduced: dublin
+ :validation_mode: static
The VNF's Heat Orchestration Template's Resource
``OS::ContrailV2::InstanceIp`` property ``subnet_uuid``
.. req::
:id: R-100220
- :keyword: MUST
- :validation_mode: static
:target: VNF
+ :keyword: MUST
:introduced: dublin
:updated: frankfurt
+ :validation_mode: static
When the VNF's Heat Orchestration Template's
resource ``OS::ContrailV2::InstanceIp`` is assigning an IP address
.. req::
:id: R-100230
- :keyword: MUST NOT
- :validation_mode: static
:target: VNF
+ :keyword: MUST NOT
:introduced: dublin
+ :validation_mode: static
The VNF's Heat Orchestration Template's Resource
``OS::ContrailV2::InstanceIp`` property ``subnet_uuid``
.. req::
:id: R-100240
- :keyword: MUST
- :validation_mode: static
:target: VNF
+ :keyword: MUST
:introduced: dublin
:updated: frankfurt
+ :validation_mode: static
When
.. req::
:id: R-100250
- :keyword: MUST NOT
- :validation_mode: static
:target: VNF
+ :keyword: MUST NOT
:introduced: dublin
+ :validation_mode: static
The VNF's Heat Orchestration Template's Resource
``OS::ContrailV2::InstanceIp`` property ``subnet_uuid``
.. req::
:id: R-100260
- :keyword: MUST
- :validation_mode: static
:target: VNF
+ :keyword: MUST
:introduced: dublin
:updated: frankfurt
+ :validation_mode: static
When
.. req::
:id: R-100270
- :keyword: MUST NOT
- :validation_mode: static
:target: VNF
+ :keyword: MUST NOT
:introduced: dublin
+ :validation_mode: static
The VNF's Heat Orchestration Template's Resource
``OS::ContrailV2::InstanceIp`` property ``subnet_uuid``
.. req::
:id: R-100280
- :keyword: MUST NOT
- :validation_mode: static
:target: VNF
+ :keyword: MUST NOT
:introduced: dublin
:updated: frankfurt
+ :validation_mode: static
If a VNF's Heat Orchestration Template's resource
``OS::ContrailV2::VirtualMachineInterface``
``virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip``,
``virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix``
-
+
parameter
**MUST NOT** be enumerated in the
VNF's Heat Orchestration Template's Environment File.
.. req::
:id: R-100310
- :keyword: MUST
- :validation_mode: static
:target: VNF
+ :keyword: MUST
:introduced: dublin
:updated: frankfurt
+ :validation_mode: static
When the VNF's Heat Orchestration Template's resource
``OS::ContrailV2::VirtualMachineInterface`` is attaching to an ONAP external
``virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip``,
``virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix``
-
+
parameter name **MUST** follow the naming convention
* ``{vm-type}_{network-role}_floating_ip``
.. req::
:id: R-100330
- :keyword: MUST
- :validation_mode: static
:target: VNF
+ :keyword: MUST
:introduced: dublin
:updated: frankfurt
+ :validation_mode: static
When the VNF's Heat Orchestration Template's resource
``OS::ContrailV2::VirtualMachineInterface`` is attaching to an ONAP
``virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip``,
``virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix``
-
+
parameter name **MUST** follow the naming convention
* ``{vm-type}_{network-role}_floating_v6_ip``
.. req::
:id: R-100350
- :keyword: MUST NOT
- :introduced: dublin
- :validation_mode: static
:target: VNF
+ :keyword: MUST
+ :introduced: dublin
:updated: frankfurt
+ :validation_mode: static
When the VNF's Heat Orchestration Template's resource
``OS::ContrailV2::VirtualMachineInterface`` is attaching to an
.. req::
:id: R-100360
+ :target: VNF
:keyword: MUST
:introduced: dublin
- :validation_mode: static
- :target: VNF
:updated: frankfurt
+ :validation_mode: static
When the VNF's Heat Orchestration Template's Resource
``OS::ContrailV2::VirtualMachineInterface`` is attaching to an
.. req::
:id: R-100370
+ :target: VNF
:keyword: MUST
:introduced: dublin
- :validation_mode: static
- :target: VNF
:updated: frankfurt
+ :validation_mode: static
When the VNF's Heat Orchestration Template's Resource
``OS::ContrailV2::VirtualMachineInterface`` is attaching to an
(See https://docs.openstack.org/developer/heat/template_guide/openstack.html#OS::Neutron::Port)
Introduction
-^^^^^^^^^^^^^
+^^^^^^^^^^^^
Four properties of the resource ``OS::Neutron::Port`` must follow the ONAP
naming convention. The four properties are:
:id: R-45602
:target: VNF
:keyword: MUST NOT
- :validation_mode: none
:updated: casablanca
+ :validation_mode: none
If a VNF's Port is attached to a network (internal or external)
and the port's IP addresses are cloud assigned by OpenStack's DHCP
:id: R-48880
:target: VNF
:keyword: MUST
- :validation_mode: none
:updated: frankfurt
+ :validation_mode: none
If a VNF's Port is attached to an ONAP external network (per the ONAP
definition, see Requirement R-57424 and R-16968) and the port's
:id: R-70964
:target: VNF
:keyword: MUST NOT
- :validation_mode: none
:updated: frankfurt
+ :validation_mode: none
If a VNF's Port is attached to an ONAP internal network
(per the ONAP definition, see Requirements R-52425 and R-46461 and R-35666)
:id: R-681859
:target: VNF
:keyword: MUST
- :validation_mode: static
:introduced: dublin
+ :validation_mode: static
A VNF's Heat Orchestration Template's ``OS::Neutron::Port`` resource's
:id: R-18008
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
The VNF's Heat Orchestration Template's Resource ``OS::Neutron::Port``
property ``network`` parameter **MUST** be declared as type: ``string``.
:id: R-62983
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: frankfurt
+ :validation_mode: static
When the VNF's Heat Orchestration Template's Resource
``OS::Neutron::Port`` is attaching to an ONAP external network (per the
:id: R-86182
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: frankfurt
+ :validation_mode: static
When the VNF's Heat Orchestration Template's Resource
``OS::Neutron::Port``
:id: R-29872
:target: VNF
:keyword: MUST NOT
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
The VNF's Heat Orchestration Template's Resource ``OS::Neutron::Port``
property ``network``
:id: R-34037
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
The VNF's Heat Orchestration Template's
resource ``OS::Neutron::Port`` property ``fixed_ips``
:id: R-40971
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: frankfurt
+ :validation_mode: static
When the VNF's Heat Orchestration Template's Resource
``OS::Neutron::Port`` is attaching to an ONAP external network (per the
:id: R-39841
:target: VNF
:keyword: MUST NOT
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
The VNF's Heat Orchestration Template's Resource
``OS::Neutron::Port`` property ``fixed_ips``
:id: R-04697
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: frankfurt
+ :validation_mode: static
When the VNF's Heat Orchestration Template's Resource
``OS::Neutron::Port`` is attaching to an ONAP external network (per the
:id: R-98905
:target: VNF
:keyword: MUST NOT
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
The VNF's Heat Orchestration Template's Resource
``OS::Neutron::Port`` property ``fixed_ips``
:id: R-71577
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: frankfurt
+ :validation_mode: static
When the VNF's Heat Orchestration Template's Resource
``OS::Neutron::Port`` is attaching to an ONAP external network (per the
:id: R-87123
:target: VNF
:keyword: MUST NOT
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
The VNF's Heat Orchestration Template's Resource
``OS::Neutron::Port`` property ``fixed_ips``
:id: R-23503
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: frankfurt
+ :validation_mode: static
When the VNF's Heat Orchestration Template's Resource
``OS::Neutron::Port`` is attaching to an ONAP external network (per the
:id: R-93030
:target: VNF
:keyword: MUST NOT
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
The VNF's Heat Orchestration Template's Resource
``OS::Neutron::Port`` property ``fixed_ips``
:id: R-78380
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: frankfurt
+ :validation_mode: static
When the VNF's Heat Orchestration Template's Resource
``OS::Neutron::Port`` is attaching to an ONAP internal network (per the
:id: R-28795
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
The VNF's Heat Orchestration Template's Resource
``OS::Neutron::Port`` property ``fixed_ips``
:id: R-85235
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: frankfurt
+ :validation_mode: static
When the VNF's Heat Orchestration Template's Resource
``OS::Neutron::Port`` is attaching to an ONAP internal network (per the
:id: R-90206
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
The VNF's Heat Orchestration Template's Resource
``OS::Neutron::Port`` property ``fixed_ips``
:id: R-27818
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: frankfurt
+ :validation_mode: static
When the VNF's Heat Orchestration Template's Resource
``OS::Neutron::Port`` is attaching to an ONAP internal network (per the
:id: R-97201
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
The VNF's Heat Orchestration Template's Resource
``OS::Neutron::Port`` property ``fixed_ips``
:id: R-29765
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: frankfurt
+ :validation_mode: static
When the VNF's Heat Orchestration Template's Resource
``OS::Neutron::Port`` is attaching to an ONAP internal network (per the
:id: R-98569
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
The VNF's Heat Orchestration Template's Resource
``OS::Neutron::Port`` property ``fixed_ips``
:id: R-62590
:target: VNF
:keyword: MUST NOT
- :validation_mode: static
:updated: frankfurt
+ :validation_mode: static
The VNF's Heat Orchestration Template's Resource ``OS::Neutron::Port``
property ``fixed_ips``
:id: R-93496
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: frankfurt
+ :validation_mode: static
The VNF's Heat Orchestration Template's Resource ``OS::Neutron::Port``
property ``fixed_ips``
:id: R-38236
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
The VNF's Heat Orchestration Template's
resource ``OS::Neutron::Port`` property ``fixed_ips``
:id: R-62802
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: frankfurt
+ :validation_mode: static
When the VNF's Heat Orchestration Template's
resource ``OS::Neutron::Port`` is attaching
:id: R-83677
:target: VNF
:keyword: MUST NOT
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
The VNF's Heat Orchestration Template's Resource
:id: R-15287
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: frankfurt
+ :validation_mode: static
When the VNF's Heat Orchestration Template's
resource ``OS::Neutron::Port`` is attaching
:id: R-80829
:target: VNF
:keyword: MUST NOT
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
The VNF's Heat Orchestration Template's Resource
``OS::Neutron::Port`` property ``fixed_ips``
:id: R-84123
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: frankfurt
+ :validation_mode: static
When
:id: R-69634
:target: VNF
:keyword: MUST NOT
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
The VNF's Heat Orchestration Template's Resource
``OS::Neutron::Port`` property ``fixed_ips``
:id: R-76160
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: frankfurt
+ :validation_mode: static
When
:id: R-22288
:target: VNF
:keyword: MUST NOT
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
The VNF's Heat Orchestration Template's Resource
``OS::Neutron::Port`` property ``fixed_ips``
:id: R-83412
:target: VNF
:keyword: MUST NOT
- :validation_mode: static
:updated: frankfurt
+ :validation_mode: static
If a VNF's Heat Orchestration Template's resource
``OS::Neutron::Port`` is attaching to an ONAP external network (per the
:id: R-41492
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: frankfurt
+ :validation_mode: static
When the VNF's Heat Orchestration Template's resource
``OS::Neutron::Port`` is attaching to an ONAP external network
:id: R-35735
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: frankfurt
+ :validation_mode: static
When the VNF's Heat Orchestration Template's resource
``OS::Neutron::Port`` is attaching to an ONAP external network
:id: R-41493
:target: VNF
:keyword: MUST
- :validation_mode: static
:introduced: dublin
:updated: frankfurt
+ :validation_mode: static
When the VNF's Heat Orchestration Template's resource
``OS::Neutron::Port`` is attaching to an ONAP external network
:id: R-05257
:target: VNF
:keyword: MUST NOT
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
A VNF's Heat Orchestration Template's **MUST NOT**
contain the Resource ``OS::Neutron::FloatingIP``.
:id: R-76449
:target: VNF
:keyword: MUST NOT
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
A VNF's Heat Orchestration Template's **MUST NOT**
contain the Resource ``OS::Neutron::FloatingIPAssociation``.
.. req::
:id: R-717227
+ :target: VNF
:keyword: MUST
:introduced: dublin
- :validation_mode: static
- :target: VNF
:updated: frankfurt
+ :validation_mode: static
When the VNF's Heat Orchestration Template's Resource
``OS::Neutron::Port`` is attaching to an ONAP internal network (per the
.. req::
:id: R-805572
+ :target: VNF
:keyword: MUST
:introduced: dublin
- :validation_mode: static
- :target: VNF
:updated: frankfurt
+ :validation_mode: static
When the VNF's Heat Orchestration Template's Resource
``OS::Neutron::Port`` is attaching to an ONAP internal network (per the
.. _Nova Server - Metadata Parameters:
Resource: OS::Nova::Server Metadata Parameters
---------------------------------------------------------------------------------
+----------------------------------------------
The ``OS::Nova::Server`` resource property ``metadata`` is an optional
OpenStack property.
OS::Nova::Server, metadata, environment_context, string, **MUST**, ONAP
vnf_id
-^^^^^^^^^
+^^^^^^
The ``OS::Nova::Server`` resource property ``metadata`` key/value pair
``vnf_id`` is an ONAP generated UUID that identifies the VNF. The value
:id: R-37437
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
A VNF's Heat Orchestration Template's ``OS::Nova::Server``
resource property ``metadata`` **MUST**
:id: R-07507
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
A VNF's Heat Orchestration Template's ``OS::Nova::Server``
resource property
:id: R-55218
:target: VNF
:keyword: MUST NOT
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
A VNF's Heat Orchestration Template's ``OS::Nova::Server``
resource property
:id: R-20856
:target: VNF
:keyword: MUST NOT
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
A VNF's Heat Orchestration Template's ``OS::Nova::Server``
resource property
description: Unique ID for this VNF instance
vf_module_id
-^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^
The OS::Nova::Server Resource ``metadata`` map value parameter ``vf_module_id``
is an ONAP generated UUID that identifies the VF Module (e.g., Heat
:id: R-71493
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
property ``metadata`` **MUST**
:id: R-82134
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource property
``metadata`` key/value pair ``vf_module_id`` parameter **MUST**
:id: R-98374
:target: VNF
:keyword: MUST NOT
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource property
``metadata`` key/value pair ``vf_module_id`` parameter ``vf_module_id``
:id: R-72871
:target: VNF
:keyword: MUST NOT
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource property
``metadata`` key/value pair ``vf_module_id`` parameter ``vf_module_id``
vnf_name
-^^^^^^^^^
+^^^^^^^^
The ``OS::Nova::Server`` Resource ``metadata`` map value parameter ``vnf_name``
is the ONAP (SDN-C) generated alphanumeric name of the deployed VNF instance.
:id: R-72483
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource property
``metadata`` **MUST** contain the key/value pair ``vnf_name`` and the
:id: R-62428
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
property ``metadata`` key/value pair ``vnf_name`` parameter **MUST**
:id: R-44318
:target: VNF
:keyword: MUST NOT
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
property ``metadata`` key/value pair ``vnf_name``
:id: R-36542
:target: VNF
:keyword: MUST NOT
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
property ``metadata`` key/value pair ``vnf_name`` parameter
description: Unique name for this VNF instance
vf_module_name
-^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^
The ``OS::Nova::Server`` Resource ``metadata`` map value parameter
``vf_module_name``
.. req::
:id: R-100400
+ :target: VNF
:keyword: SHOULD
:introduced: dublin
- :target: VNF
A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
property metadata **SHOULD** contain the key/value pair ``vf_module_name``.
.. req::
:id: R-68023
- :keyword: MUST
- :validation_mode: static
:target: VNF
+ :keyword: MUST
:updated: dublin
+ :validation_mode: static
A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
property ``metadata`` key/value pair ``vf_module_name``
:id: R-39067
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
property
:id: R-15480
:target: VNF
:keyword: MUST NOT
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
property
:id: R-80374
:target: VNF
:keyword: MUST NOT
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
description: Unique name for this VNF Module instance
vm_role
-^^^^^^^^^
+^^^^^^^
The ``OS::Nova::Server`` Resource ``metadata`` map value parameter ``vm_role``
is a ``metadata`` tag that describes the role of the Virtual Machine.
:id: R-95430
:target: VNF
:keyword: MAY
- :validation_mode: none
:updated: dublin
+ :validation_mode: none
If a VNF's Heat Orchestration Template's ``OS::Nova::Server``
resource property
:id: R-67597
:target: VNF
:keyword: MUST NOT
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
property ``metadata`` key/value pair ``vm_role`` parameter ``vm_role``
:id: R-86476
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
property ``metadata`` key/value pair ``vm_role`` value **MUST**
vm_role: { get_param: vm_role }
Example vnf_id, vf_module_id, vnf_name, vf_module_name, vm_role
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The example below depicts part of a Heat Orchestration Template that
uses the five of the ``OS::Nova::Server`` resource
vm_role: lb
vf_module_index
-^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^
.. req::
:id: R-100410
+ :target: VNF
:keyword: MAY
:introduced: dublin
- :target: VNF
A VNF's Heat Orchestration Template's ``OS::Nova::Server``
resource property ``metadata`` **MAY**
.. req::
:id: R-50816
- :keyword: MUST
:target: VNF
- :validation_mode: static
+ :keyword: MUST
:updated: dublin
+ :validation_mode: static
A VNF's Heat Orchestration Template's ``OS::Nova::Server``
resource property ``metadata``
:id: R-54340
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
property
:id: R-09811
:target: VNF
:keyword: MUST NOT
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
:id: R-37039
:target: VNF
:keyword: MUST NOT
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
property
:id: R-55306
:target: VNF
:keyword: MUST NOT
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
property ``metadata`` key/value pair ``vf_module_index`` **MUST NOT**
:id: R-55307
:target: VNF
:keyword: MUST NOT
- :validation_mode: static
:introduced: frankfurt
+ :validation_mode: static
A VNF's Heat Orchestration Template's parameter ``vf_module_index``
**MUST NOT** be used for indexing an:
fixed_ips: [ { "ip_address": {get_param: [ oam_vm_int_ctrl_ips, { get_param: vf_module_index} ]}}]
workload_context
-^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^
.. req::
:id: R-47061
:id: R-74978
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
property ``metadata`` key/value pair ``workload_context``
:id: R-34055
:target: VNF
:keyword: MUST NOT
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
property ``metadata`` key/value pair ``workload_context``
:id: R-02691
:target: VNF
:keyword: MUST NOT
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
workload_context: {get_param: workload_context}
environment_context
-^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^
.. req::
:id: R-88536
:id: R-20308
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
property ``metadata`` key/value pair ``environment_context``
:id: R-56183
:target: VNF
:keyword: MUST NOT
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
property ``metadata``key/value pair ``environment_context``
:id: R-13194
:target: VNF
:keyword: MUST NOT
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
property
Resource: OS::Nova::Server - Parameters
------------------------------------------------------------------------
+---------------------------------------
The OS::Nova::Server resource manages the running virtual machine (VM)
instance within an OpenStack cloud. (See
:id: R-304011
:target: VNF
:keyword: MUST
- :validation_mode: static
:introduced: casablanca
:updated: el alto
+ :validation_mode: static
A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource's
:id: R-901331
:target: VNF
:keyword: MUST
- :validation_mode: static
:introduced: casablanca
+ :validation_mode: static
The VNF's Heat Orchestration Template's Resource ``OS::Nova::Server``
property ``image`` value **MUST** be be obtained via a ``get_param``.
:id: R-71152
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
The VNF's Heat Orchestration Template's Resource ``OS::Nova::Server``
property
:id: R-58670
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
The VNF's Heat Orchestration Template's Resource ``OS::Nova::Server``
property
:id: R-91125
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
The VNF's Heat Orchestration Template's Resource ``OS::Nova::Server``
property
:id: R-57282
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
Each VNF's Heat Orchestration Template's ``{vm-type}`` **MUST**
have a unique parameter name for the ``OS::Nova::Server`` property
.. _Property flavor:
Property: flavor
-^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^
.. req::
:id: R-481670
:target: VNF
:keyword: MUST
- :validation_mode: static
:introduced: casablanca
+ :validation_mode: static
The VNF's Heat Orchestration Template's Resource ``OS::Nova::Server``
property ``flavor`` value **MUST** be be obtained via a ``get_param``.
:id: R-50436
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
The VNF's Heat Orchestration Template's Resource ``OS::Nova::Server``
property
:id: R-45188
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
The VNF's Heat Orchestration Template's Resource 'OS::Nova::Server' property
``flavor`` parameter name **MUST** follow the naming convention
:id: R-69431
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
The VNF's Heat Orchestration Template's Resource ``OS::Nova::Server``
property
:id: R-40499
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
Each VNF's Heat Orchestration Template's ``{vm-type}`` **MUST**
have a unique parameter name for the ``OS::Nova::Server`` property
description: {vm-type} flavor
Property: Name
-^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^
.. req::
:id: R-663631
:target: VNF
:keyword: MUST
- :validation_mode: static
:introduced: casablanca
+ :validation_mode: static
The VNF's Heat Orchestration Template's Resource ``OS::Nova::Server``
property ``name`` value **MUST** be be obtained via a ``get_param``.
:id: R-51430
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
The VNF's Heat Orchestration Template's Resource ``OS::Nova::Server``
property
:id: R-54171
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: dublin
+ :validation_mode: static
When the VNF's Heat Orchestration Template's Resource ``OS::Nova::Server``
property ``name`` parameter is defined as a ``string``,
:id: R-87817
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
When the VNF's Heat Orchestration Template's Resource ``OS::Nova::Server``
property ``name`` parameter is defined as a ``comma_delimited_list``,
:id: R-22838
:target: VNF
:keyword: MUST NOT
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
The VNF's Heat Orchestration Template's Resource ``OS::Nova::Server``
property
...
Contrail Issue with Values for OS::Nova::Server Property Name
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. req::
:id: R-98450
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: el alto
+ :validation_mode: static
A VNF's Heat Orchestration Template's base module or incremental module
resource ``OS::Nova::Server``
:id: R-23311
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: el alto
+ :validation_mode: static
The VNF's Heat Orchestration Template's base module or incremental module
resource ``OS::Nova::Server`` property
:id: R-59568
:target: VNF
:keyword: MUST NOT
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
The VNF's Heat Orchestration Template's Resource ``OS::Nova::Server``
property
:id: R-256790
:target: VNF
:keyword: MAY
- :validation_mode: none
:introduced: el alto
+ :validation_mode: none
A VNF's Heat Orchestration Template's Resource ``OS::Nova::Server``
property ``availability_zone`` parameter name **MAY** change when
resources in the Heat Orchestration Template.
Example
-^^^^^^^^^^^
+^^^^^^^
The example below depicts part of a Heat Orchestration Template that
uses the four ``OS::Nova::Server`` properties discussed in this section.
. . .
Boot Options
-^^^^^^^^^^^^^^^
+^^^^^^^^^^^^
.. req::
:id: R-83706
:target: VNF
:keyword: MUST
- :validation_mode: none
:updated: casablanca
+ :validation_mode: none
When a VNF's Heat Orchestration Template's Virtual Machine
(i.e., ``OS::Nova::Server`` resource) boots from an image, the
:id: R-69588
:target: VNF
:keyword: MUST
- :validation_mode: none
:updated: casablanca
+ :validation_mode: none
When a VNF's Heat Orchestration Template's Virtual Machine
(i.e., ``OS::Nova::Server`` Resource) boots from Cinder Volume, the
.. _ONAP Output Parameter Names:
ONAP Output Parameter Names
--------------------------------------------------------------
+---------------------------
ONAP defines three types of Output Parameters as detailed in
:ref:`Output Parameters`.
ONAP Base Module Output Parameters:
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ONAP Base Module Output Parameters do not have an explicit naming
convention.
:id: R-97726
:target: VNF
:keyword: MUST
- :validation_mode: none
:updated: casablanca
+ :validation_mode: none
A VNF's Heat Orchestration Template's Base Module Output Parameter names
**MUST** contain ``{vm-type}`` and/or ``{network-role}`` when appropriate.
ONAP Volume Template Output Parameters:
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. req::
:id: R-88524
:target: VNF
:keyword: MUST
- :validation_mode: none
:updated: casablanca
+ :validation_mode: none
A VNF's Heat Orchestration Template's Volume Template
Output Parameter names
**MUST** contain ``{vm-type}`` when appropriate.
Predefined Output Parameters
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ONAP currently defines one predefined output parameter the OAM
Management IP Addresses.
.. _OAM Management IP Addresses:
OAM Management IP Addresses
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
A VNF may have a management interface for application controllers to
interact with and configure the VNF. Typically, this will be via a
:id: R-18683
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
If a VNF has one IPv4 OAM Management IP Address and the
IP Address needs to be inventoried in ONAP's A&AI
:id: R-94669
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
If a VNF has one IPv6 OAM Management IP Address and the
IP Address needs to be inventoried in ONAP's A&AI
:id: R-56287
:target: VNF
:keyword: MUST
- :validation_mode: none
:updated: casablanca
+ :validation_mode: none
If the VNF's OAM Management IP Address is assigned by ONAP SDN-C and
assigned in the VNF's Heat Orchestration Template's via a heat resource
:id: R-48987
:target: VNF
:keyword: MUST
- :validation_mode: none
:updated: casablanca
+ :validation_mode: none
If the VNF's OAM Management IP Address is cloud assigned and
and the OAM IP Address is required to be inventoried in ONAP A&AI,
:id: R-54517
:target: VNF
:keyword: MUST
- :validation_mode: none
:updated: casablanca
+ :validation_mode: none
When a VNF's Heat Orchestration Template's resource is associated with
a single ``{vm-type}``, the Resource ID **MUST** contain the
:id: R-96482
:target: VNF
:keyword: MUST
- :validation_mode: none
:updated: frankfurt
+ :validation_mode: none
When a VNF's Heat Orchestration Template's resource is associated
with a single ONAP external network, the Resource ID **MUST** contain the
:id: R-98138
:target: VNF
:keyword: MUST
- :validation_mode: none
:updated: frankfurt
+ :validation_mode: none
When a VNF's Heat Orchestration Template's resource is associated with a
single ONAP internal network (per the ONAP definition, see
:id: R-82115
:target: VNF
:keyword: MUST
- :validation_mode: none
:updated: frankfurt
+ :validation_mode: none
When a VNF's Heat Orchestration Template's resource is associated with a
single ``{vm-type}``
:id: R-82551
:target: VNF
:keyword: MUST
- :validation_mode: none
:updated: frankfurt
+ :validation_mode: none
When a VNF's Heat Orchestration Template's resource is associated with a
single ``{vm-type}`` and a single ONAP internal network (per the ONAP
:id: R-67793
:target: VNF
:keyword: MUST NOT
- :validation_mode: none
:updated: frankfurt
+ :validation_mode: none
When a VNF's Heat Orchestration Template's resource is associated
with more than one ``{vm-type}`` and/or more than one ONAP internal network
:id: R-11690
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: dublin
+ :validation_mode: static
When a VNF's Heat Orchestration Template's Resource ID contains an
``{index}``, the ``{index}`` is a numeric value that **MUST** start at
in the following sections.
OS::Cinder::Volume
-~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~
.. req::
:id: R-87004
* ``{index}`` starts at zero and increments by one (as described in R-11690)
OS::Cinder::VolumeAttachment
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. req::
:id: R-86497
* ``{index}`` starts at zero and increments by one (as described in R-11690)
OS::Heat::CloudConfig
-~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~
.. req::
:id: R-04747
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
A VNF's Heat Orchestration Template's Resource ``OS::Heat::CloudConfig``
Resource ID **MUST** contain the ``{vm-type}``.
:id: R-30804
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
A VNF's Heat Orchestration Template's Resource
``OS::Heat::MultipartMime``
* ``RMM`` signifies that it is the Resource Multipart Mime
OS::Heat::ResourceGroup
-~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~
There is no mandatory naming convention for
the resource 'OS::Heat::ResourceGroup'.
:id: R-08975
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
A VNF's Heat Orchestration Template's Resource ``OS::Heat::SoftwareConfig``
Resource ID **MUST** contain the ``{vm-type}``.
:id: R-25720
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: frankfurt
+ :validation_mode: static
A VNF's Heat Orchestration Template's Resource ``OS::Neutron::Net``
Resource ID **MUST** use the naming convention
Heat Orchestration Template.
OS::Neutron::Port
-~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~
.. req::
:id: R-20453
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: frankfurt
+ :validation_mode: static
A VNF's Heat Orchestration Template's Resource ``OS::Neutron::Port``
that is attaching to an ONAP external network (per the ONAP definition,
:id: R-26351
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: frankfurt
+ :validation_mode: static
A VNF's Heat Orchestration Template's Resource ``OS::Neutron::Port``
that is attaching to an ONAP internal network
:id: R-27469
:target: VNF
:keyword: SHOULD
- :validation_mode: none
:updated: frankfurt
+ :validation_mode: none
A VNF's Heat Orchestration Template's Resource ``OS::Neutron::Port``
that is creating a *Reserve Port* with an IPv4 address, the
:id: R-68520
:target: VNF
:keyword: SHOULD
- :validation_mode: none
:updated: frankfurt
+ :validation_mode: none
A VNF's Heat Orchestration Template's Resource ``OS::Neutron::Port``
that is creating a *Reserve Port* with an IPv6 address, the
:id: R-29751
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: dublin
+ :validation_mode: static
A VNF's Heat Orchestration Template's Resource ``OS::Nova::Server``
Resource ID
* ``{vm-type}_servergroup``
Contrail Heat Resources Resource ID Naming Convention
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Some Contrail Heat Resources Resource IDs
have mandatory or suggested naming conventions. They are provided
OS::ContrailV2::InstanceIp
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~
.. req::
:id: R-53310
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: frankfurt
+ :validation_mode: static
A VNF's Heat Orchestration Template's Resource
:id: R-46128
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: frankfurt
+ :validation_mode: static
A VNF's Heat Orchestration Template's Resource
``OS::ContrailV2::InstanceIp`` Resource ID
:id: R-62187
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: frankfurt
+ :validation_mode: static
A VNF's Heat Orchestration Template's Resource
``OS::ContrailV2::InstanceIp`` Resource ID
:id: R-87563
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: frankfurt
+ :validation_mode: static
A VNF's Heat Orchestration Template's Resource
``OS::ContrailV2::InstanceIp`` Resource ID
:id: R-81214
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
A VNF's Heat Orchestration Template's Resource
``OS::ContrailV2::InterfaceRouteTable``
* ``RIRT`` signifies that it is the Resource Interface Route Table
OS::ContrailV2::NetworkIpam
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. req::
:id: R-30753
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: frankfurt
+ :validation_mode: static
A VNF's Heat Orchestration Template's Resource
``OS::ContrailV2::NetworkIpam``
:id: R-20065
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
A VNF's Heat Orchestration Template's Resource
``OS::ContrailV2::PortTuple``
* ``RPT`` signifies that it is the Resource Port Tuple
OS::ContrailV2::ServiceHealthCheck
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. req::
:id: R-76014
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
A VNF's Heat Orchestration Template's Resource
``OS::ContrailV2::ServiceHealthCheck``
* ``RIGHT`` is used if the Service Health Check is on the right interface
OS::ContrailV2::ServiceTemplate
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. req::
:id: R-16437
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
A VNF's Heat Orchestration Template's Resource
``OS::ContrailV2::ServiceTemplate``
(as described in R-11690).
OS::ContrailV2::VirtualMachineInterface
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. req::
:id: R-96253
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: frankfurt
+ :validation_mode: static
A VNF's Heat Orchestration Template's Resource
``OS::ContrailV2::VirtualMachineInterface`` Resource ID
:id: R-50468
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: frankfurt
+ :validation_mode: static
A VNF's Heat Orchestration Template's Resource
``OS::ContrailV2::VirtualMachineInterface`` Resource ID
OS::ContrailV2::VirtualNetwork
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. req::
:id: R-99110
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: frankfurt
+ :validation_mode: static
A VNF's Heat Orchestration Template's Resource
``OS::ContrailV2::VirtualNetwork`` Resource ID **MUST** use the naming
.. Copyright 2017 AT&T Intellectual Property. All rights reserved.
Resource Property "name"
-----------------------------
+------------------------
The parameter naming convention of the property ``name`` for the resource
``OS::Nova::Server`` has been defined in
:id: R-85734
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: dublin
+ :validation_mode: static
If a VNF's Heat Orchestration Template contains the property ``name``
for a non ``OS::Nova::Server`` resource, the intrinsic function
:id: R-99812
:target: VNF
:keyword: MUST NOT
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
A value for VNF's Heat Orchestration Template's property ``name``
for a non ``OS::Nova::Server`` resource **MUST NOT** be declared
. . . .
Contrail Issue with Values for the Property Name
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. req::
.. Copyright 2017 AT&T Intellectual Property. All rights reserved.
Suggested Naming Convention for Common Parameters
-----------------------------------------------------------------------------------------------------------
+-------------------------------------------------
Many VNFs use the parameters in the table below are used in user_data.
The table below provides a suggested naming convention for these common
parameters.
Netmask
-^^^^^^^^^^^^^^^^^^
+^^^^^^^
.. csv-table:: **Table 8: Suggested Naming Convention for Common Parameters: Netmask**
:header: Parameter Name,Parameter Type,Notes
int_{network-role}_v6_subnet_<index>_netmask, string,
CIDR
-^^^^^^^^^^^^^^^^^^
+^^^^
.. csv-table:: **Table 9: Suggested Naming Convention for Common Parameters: CIDR**
:header: Parameter Name,Parameter Type,Notes
int_<network-role>_v6_subnet_<index>_cidr, string,
Default Gateway
-^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^
.. csv-table:: **Table 10: Suggested Naming Convention for Common Parameters: Default Gateway**
:header: Parameter Name,Parameter Type,Notes
{network-role}_v6_subnet_<index>_default_gateway, string,
DCAE Collector IP Address
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^
.. csv-table:: **Table 11: Suggested Naming Convention for Common Parameters: DCAE Collector Address**
:header: Parameter Name,Parameter Type,Notes
dcae_collector_v6_ip_<index>, string,
NTP Server IP Address
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^
.. csv-table:: **Table 12: Suggested Naming Convention for Common Parameters: NTP Server IP Address**
:header: Parameter Name,Parameter Type,Notes
ntp_v6_ip_<index>, string,
DNS
-^^^^^^^^^^^^^^^^^^
+^^^
.. csv-table:: **Table 13: Suggested Naming Convention for Common Parameters: DCAE Collector Address**
:header: Parameter Name,Parameter Type,Notes
dns_{network-role}_v6_ip_<index>, string,
Security Group
-^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^
.. csv-table:: **Table 14: Suggested Naming Convention for Common Parameters: Security Group**
:header: Parameter Name,Parameter Type,Notes
.. Copyright 2017 AT&T Intellectual Property. All rights reserved.
{network-role}
------------------------------
+--------------
.. req::
:id: R-69014
:target: VNF
:keyword: MUST
- :validation_mode: none
:updated: frankfurt
+ :validation_mode: none
When a VNF's port connects to an ONAP internal network or ONAP
external network,
:id: R-05201
:target: VNF
:keyword: MUST
- :validation_mode: none
:updated: dublin
+ :validation_mode: none
When a VNF connects to two or more unique networks, each
network **MUST** be assigned a unique ``{network-role}``
:id: R-21330
:target: VNF
:keyword: MUST
- :validation_mode: none
:updated: frankfurt
+ :validation_mode: none
A VNF's Heat Orchestration Template's Resource property parameter that is
associated with an ONAP
:id: R-11168
:target: VNF
:keyword: MUST
- :validation_mode: none
:updated: frankfurt
+ :validation_mode: none
A VNF's Heat Orchestration Template's Resource ID that is associated with
an ONAP external network **MUST** include the ``{network-role}`` as part
:id: R-84322
:target: VNF
:keyword: MUST
- :validation_mode: none
:updated: frankfurt
+ :validation_mode: none
A VNF's Heat Orchestration Template's Resource property parameter that
is associated with an ONAP internal network (per the ONAP definition, see
:id: R-96983
:target: VNF
:keyword: MUST
- :validation_mode: none
:updated: frankfurt
+ :validation_mode: none
A VNF's Heat Orchestration Template's Resource ID that is associated
with an ONAP internal network (per the ONAP definition, see Requirements
:id: R-26506
:target: VNF
:keyword: MUST NOT
- :validation_mode: static
:updated: dublin
+ :validation_mode: static
A VNF's Heat Orchestration Template's ``{network-role}`` **MUST** contain
only alphanumeric characters and/or underscores '_' and
:id: R-00977
:target: VNF
:keyword: MUST NOT
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
A VNF's Heat Orchestration Template's ``{network-role}``
**MUST NOT** be a substring of ``{vm-type}``.
:id: R-58424
:target: VNF
:keyword: MUST
- :validation_mode: none
:updated: casablanca
+ :validation_mode: none
A VNF's Heat Orchestration Template's use of ``{network-role}``
in all Resource property parameter names **MUST** be the same case.
:id: R-21511
:target: VNF
:keyword: MUST
- :validation_mode: none
:updated: casablanca
+ :validation_mode: none
A VNF's Heat Orchestration Template's use of ``{network-role}``
in all Resource IDs **MUST** be the same case.
{vm-type}
------------------
+---------
.. req::
:id: R-01455
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: dublin
+ :validation_mode: static
When a VNF's Heat Orchestration Template creates a Virtual Machine
(i.e., ``OS::Nova::Server``),
:id: R-98407
:target: VNF
:keyword: MUST NOT
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
A VNF's Heat Orchestration Template's ``{vm-type}`` **MUST** contain only
alphanumeric characters and/or underscores '_' and **MUST NOT**
:id: R-48067
:target: VNF
:keyword: MUST NOT
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
A VNF's Heat Orchestration Template's ``{vm-type}`` **MUST NOT** be a
substring
:id: R-32394
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
A VNF's Heat Orchestration Template's use of ``{vm-type}`` in all Resource
property parameter names **MUST** be the same case.
:id: R-46839
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
A VNF's Heat Orchestration Template's use of ``{vm-type}``
in all Resource IDs **MUST** be the same case.
.. _ONAP Heat Support of Environment Files:
ONAP Heat Support of Environment Files
------------------------------------------
+--------------------------------------
.. req::
:id: R-599443
:target: VNF
:keyword: MUST
- :validation_mode: static
:introduced: dublin
+ :validation_mode: static
A parameter enumerated in a
VNF's Heat Orchestration Template's environment file **MUST** be declared
.. _ONAP Heat Heat Template Constructs:
ONAP Heat Heat Template Constructs
---------------------------------------
+----------------------------------
.. _Nested Heat Templates:
.. req::
:id: R-60011
+ :target: VNF
:keyword: MUST
:updated: casablanca
:validation_mode: static
.. req::
:id: R-17528
- :keyword: MUST
+ :target: VNF
+ :keyword: MUST NOT
:updated: frankfurt
:validation_mode: static
.. req::
:id: R-708564
+ :target: VNF
:keyword: MUST NOT
:introduced: dublin
:validation_mode: static
.. req::
:id: R-11041
+ :target: VNF
:keyword: MUST
:updated: casablanca
:validation_mode: static
.. req::
:id: R-90022
+ :target: VNF
:keyword: MAY
:updated: casablanca
.. req::
:id: R-04344
+ :target: VNF
:keyword: MAY
:updated: casablanca
:id: R-50011
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
A VNF's Heat Orchestration Template's ``OS::Heat::ResourceGroup``
property ``count`` **MUST** be enumerated in the VNF's
:id: R-76718
:target: VNF
:keyword: MUST
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
If a VNF's Heat Orchestration Template uses the intrinsic function
``get_file``, the ``get_file`` target **MUST** be referenced in
:id: R-41888
:target: VNF
:keyword: MUST NOT
- :validation_mode: static
:updated: casablanca
+ :validation_mode: static
A VNF's Heat Orchestration Template intrinsic function
``get_file`` **MUST NOT** utilize URL-based file retrieval.
.. req::
:id: R-100380
+ :target: VNF
:keyword: SHOULD
:introduced: dublin
:validation_mode: none
- :target: VNF
If a VNF requires the use of an SSH key created by OpenStack, the VNF
Heat Orchestration Template **SHOULD** create the ``OS::Nova::Keypair``
.. _ONAP Heat VNF Modularity:
ONAP Heat VNF Modularity
----------------------------
+------------------------
ONAP supports a modular Heat Orchestration Template design pattern,
referred to as *VNF Modularity.* With this approach, a single VNF **MAY** be
:id: R-610010
:target: VNF
:keyword: MAY
- :validation_mode: none
:introduced: el alto
+ :validation_mode: none
A VNF's Heat Orchestration Template's Base Module **MAY** declare zero, one,
or more than one ``OS::Nova::Server`` resource. A ``OS::Nova::Server``
:id: R-610020
:target: VNF
:keyword: MAY
- :validation_mode: none
:introduced: el alto
+ :validation_mode: none
If a VNF's Heat Orchestration Template's Base Module contains two or more
``OS::Nova::Server`` resources (created in the base module itself and/or
:id: R-610030
:target: VNF
:keyword: MUST
- :validation_mode: static
:introduced: el alto
+ :validation_mode: static
A VNF's Heat Orchestration Template's Incremental Module **MUST**
declare one or more ``OS::Nova::Server`` resources. A ``OS::Nova::Server``
:id: R-610040
:target: VNF
:keyword: MAY
- :validation_mode: none
:introduced: el alto
+ :validation_mode: none
If a VNF's Heat Orchestration Template's Incremental Module contains two or
more ``OS::Nova::Server`` resources, the ``OS::Nova::Server`` resources
:id: R-610050
:target: VNF
:keyword: MAY
- :validation_mode: none
:introduced: el alto
+ :validation_mode: none
The same ``{vm-type}`` for a VNF's Heat Orchestration Template's
``OS::Nova::Server`` resource (as defined in R-01455) **MAY** exist in
:id: R-61001
:target: VNF
:keyword: MUST
- :validation_mode: none
:updated: dublin
+ :validation_mode: none
A shared Heat Orchestration Template resource is a resource that **MUST**
be defined in the base module and will be referenced by one or
template.
Suggested Patterns for Modular VNFs
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
There are numerous variations of VNF modularity. Below are two suggested
usage patterns.
options.
Modularity Rules
-^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^
There are some rules to follow when building modular VNF templates:
name in the add-on module
VNF Modularity Examples
-^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^
*Example: Base Module creates SecurityGroup*
HPA Requirements
------------------
+----------------
1. SR-IOV Passthrought
Artifact
-~~~~~~~~~~
+~~~~~~~~
Note: currently not supported.
supports self-defined node or other extensions.
TOSCA Introduction
-^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^
TOSCA defines a Meta model for defining IT services. This Meta model
defines both the structure of a service as well as how to manage it. A
Data Types
-^^^^^^^^^^^^^^
+^^^^^^^^^^
.. req::
:id: R-484843
Capability Types
-^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^
.. req::
:id: R-177937
Requirements Types
-^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^
Relationship Types
-^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^
.. req::
:id: R-64064
Interface Types
-^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^
No interface type is currently supported in ONAP.
Node Types
-^^^^^^^^^^^^^^
+^^^^^^^^^^
.. req::
:id: R-535009
Group Types
-^^^^^^^^^^^^^^
+^^^^^^^^^^^
No group type is currently supported in ONAP.
Policy Types
-^^^^^^^^^^^^^^
+^^^^^^^^^^^^
.. req::
:id: R-596064
VNF or PNF CSAR Package
-------------------------
+-----------------------
CSAR Overview
^^^^^^^^^^^^^
VNF or PNF Package Authenticity and Integrity
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
VNF or PNF CSAR package shall support a method for authenticity and integrity
assurance. According to ETSI SOL004 the onboarding package shall be secured.
:keyword: MUST
:introduced: frankfurt
- The VNF or PNF MUST support configuration management including
+ The VNF or PNF **MUST** support configuration management including
life cycle management (LCM) using at least one of the following
protocols a)NETCONF/YANG, b)Ansible and c)Chef.
The requirements for supporting of SDN-C/APPC LCM API for LCM operations are documented in section 7.3.1.
Controller Interactions With VNF or PNF
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This section is not applicable to LCM operations using CDS self-service API.
APPC/SDN-C expose a northbound API to clients (such as SO) in order for
Chef, or REST).
Configuration Commands
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~
``Configure``: The APPC/SDN-C client is requesting that a post-instantiation
configuration be applied to the target VNF or PNF. After the Configure
The VNF or PNF **MUST** support APPC ``Audit`` command.
Lifecycle Management Related Commands
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
**The following commands are needed to support various lifecycle management
flows where the VNF may need to be removed for service.**
HealthCheck and Failure Related Commands
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
``HealthCheck`` The APPC/SDN-C client is requesting a health check over the
entire scope of the VNF or PNF. The VNF or PNF must be 100% healthy, ready to
The VNF or PNF **MUST** support APPC/SDN-C ``HealthCheck`` command.
Notes On Command Support Using APPC/SDN-C Southbound Protocols
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
APPC/SDN-C are designed to support a standard set of protocols in
order to communicate with the VNF or PNF instance. The supported protocols are
the `ONAP SDNC project <https://onap.readthedocs.io/en/latest/submodules/sdnc/oam.git/docs/index.html>`_.
NETCONF Standards and Capabilities
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
APPC/SDN-C and their Adapters utilize device YANG model and
NETCONF APIs to make the required changes in the VNF or PNF state and
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Configuration Management
-+++++++++++++++++++++++++++
+++++++++++++++++++++++++
.. req::
by supplied YANG models for the embedded NETCONF server.
NETCONF Server Requirements
-++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++
.. req::
LCM Operations via NETCONF
-++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++
.. req::
:id: R-246519
:keyword: MAY
:introduced: frankfurt
- As alternative to Ansible, Chef or REST, a VNF or PNF MAY support YANG models
+ As alternative to Ansible, Chef or REST, a VNF or PNF **MAY** support YANG models
allowing execution of standard controller LCM operations including HealthCheck.
Note: To support vendor YANG models for LCM operations, the controller is responsible
for performing VNF/PNF specific translation of north-bound API requests into one or more
Chef Standards and Capabilities
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. container:: note
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Chef Client Requirements
-+++++++++++++++++++++++++
+++++++++++++++++++++++++
.. req::
push jobs client >= 2.0.
Chef Roles/Requirements
-++++++++++++++++++++++++++
++++++++++++++++++++++++
.. req::
:id: R-27310
.. _ansible_playbook_requirements:
Ansible Standards and Capabilities
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ONAP will support configuration of VNFs or PNFs via Ansible subject to the
requirements and guidelines defined in this section.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Ansible Client Requirements
-+++++++++++++++++++++++++++++
++++++++++++++++++++++++++++
.. req::
.. req::
:id: R-92866
- :target: VNF or PNF Provider
+ :target: VNF or PNF PROVIDER
:keyword: MUST
:updated: dublin
.. req::
:id: R-94567
- :target: VNF or PNF Provider
+ :target: VNF or PNF PROVIDER
:keyword: MUST
:introduced: casablanca
:updated: guilin
.. req::
:id: R-67124
- :target: VNF or PNF Provider
+ :target: VNF or PNF PROVIDER
:keyword: MUST
:introduced: casablanca
:updated: guilin
.. req::
:id: R-24482
- :target: VNF or PNF Provider
+ :target: VNF or PNF PROVIDER
:keyword: MUST
:introduced: casablanca
:updated: guilin
VM(s) as needed.
Ansible Playbook Requirements
-+++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++
An Ansible playbook is a collection of tasks that is executed on the
Ansible server (local host) and/or the target VM (s) in order to
.. req::
:id: R-49396
- :target: VNF or PNF Provider
+ :target: VNF or PNF PROVIDER
:keyword: MUST
:updated: guilin
.. req::
:id: R-33280
- :target: VNF or PNF Provider
+ :target: VNF or PNF PROVIDER
:keyword: MUST NOT
:updated: guilin
.. req::
:id: R-195620
+ :target: VNF or PNF PROVIDER
:keyword: SHOULD
- :target: VNF or PNF Provider
:introduced: guilin
The VNF or PNF Provider's Ansible playbooks **SHOULD** compare the version(s)
.. req::
:id: R-918136
+ :target: VNF or PNF PROVIDER
:keyword: MUST NOT
- :target: VNF or PNF Provider
:introduced: guilin
The VNF or PNF Provider's Ansible playbooks **MUST NOT** fail due to
.. req::
:id: R-444446
+ :target: VNF or PNF PROVIDER
:keyword: SHOULD
- :target: VNF or PNF Provider
:introduced: guilin
The VNF or PNF Provider's Ansible playbooks **SHOULD** issue log messages
.. req::
:id: R-48698
- :target: VNF or PNF Provider
+ :target: VNF or PNF PROVIDER
:keyword: MUST
:updated: guilin
.. req::
:id: R-43253
- :target: VNF or PNF Provider
+ :target: VNF or PNF PROVIDER
:keyword: MUST
:updated: guilin
.. req::
:id: R-50252
- :target: VNF or PNF Provider
+ :target: VNF or PNF PROVIDER
:keyword: MUST
:updated: guilin
.. req::
:id: R-51442
- :target: VNF or PNF Provider
+ :target: VNF or PNF PROVIDER
:keyword: SHOULD
:updated: guilin
.. req::
:id: R-58301
- :target: VNF or PNF Provider
+ :target: VNF or PNF PROVIDER
:keyword: SHOULD NOT
:updated: dublin
.. req::
:id: R-02651
- :target: VNF or PNF Provider
+ :target: VNF or PNF PROVIDER
:keyword: SHOULD
:updated: guilin
.. req::
:id: R-43353
- :target: VNF or PNF Provider
+ :target: VNF or PNF PROVIDER
:keyword: MUST
:updated: guilin
.. req::
:id: R-24189
- :target: VNF or PNF Provider
+ :target: VNF or PNF PROVIDER
:keyword: MUST
:introduced: casablanca
:updated: guilin
.. req::
:id: R-49911
- :target: VNF or PNF Provider
+ :target: VNF or PNF PROVIDER
:keyword: MUST
- :updated: guilin
:introduced: casablanca
+ :updated: guilin
The VNF or PNF Provider **MUST** assign a new point release to the updated
Ansible playbook set. The functionality of a new playbook set must be
.. req::
:id: R-42333
- :target: VNF or PNF Provider
+ :target: VNF or PNF PROVIDER
:keyword: MUST
:introduced: frankfurt
:updated: guilin
.. req::
:id: R-39003
- :target: VNF or PNF Provider
+ :target: VNF or PNF PROVIDER
:keyword: MUST
:introduced: frankfurt
:updated: guilin
.. req::
:id: R-46823
- :target: VNF or PNF Provider
+ :target: VNF or PNF PROVIDER
:keyword: MUST
:introduced: frankfurt
.. req::
:id: R-83092
- :target: VNF or PNF Provider
+ :target: VNF or PNF PROVIDER
:keyword: MUST
:introduced: frankfurt
:updated: guilin
.. req::
:id: R-09209
- :target: VNF or PNF Provider
+ :target: VNF or PNF PROVIDER
:keyword: MUST
:introduced: frankfurt
:updated: guilin
.. req::
:id: R-56988
- :target: VNF or PNF Provider
+ :target: VNF or PNF PROVIDER
:keyword: MUST
:introduced: frankfurt
.. req::
:id: R-20988
- :target: VNF or PNF Provider
+ :target: VNF or PNF PROVIDER
:keyword: MUST
:introduced: frankfurt
:updated: guilin
.. req::
:id: R-53245
- :target: VNF or PNF Provider
+ :target: VNF or PNF PROVIDER
:keyword: MUST NOT
:introduced: frankfurt
:updated: guilin
- The VNF or PNF Provider's Ansible playbooks **MUST** require
+ The VNF or PNF Provider's Ansible playbooks **MUST NOT** require
passwords or secrets to be passed in clear text in the command line or
Rest API request to run the playbook.
.. req::
:id: R-78640
- :target: VNF or PNF Provider
+ :target: VNF or PNF PROVIDER
:keyword: SHOULD
:introduced: frankfurt
:updated: guilin
.. req::
:id: R-88786
- :target: VNF or PNF Provider
- :keyword: MUST
+ :target: VNF or PNF PROVIDER
+ :keyword: SHOULD
:introduced: frankfurt
:updated: guilin
.. req::
:id: R-88002
- :target: VNF or PNF Provider
+ :target: VNF or PNF PROVIDER
:keyword: MUST
:introduced: frankfurt
into the central repository for distribution.
Ansible API Usage
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~
This section outlines the workflow that APPC/SDN-C invokes when
it receives an action request against an Ansible managed VNF or PNF.
Support of APPC/SDN-C Commands And Southbound Protocols
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The following table summarizes the commands and possible protocols selected.
Note that the HealthCheck can also be supported via REST.
:id: R-332680
:target: VNF or PNF
:keyword: SHOULD
- :impacts: dcae
- :validation_mode: in_service
:introduced: casablanca
:updated: guilin
+ :validation_mode: in_service
+ :impacts: dcae
The VNF or PNF producing VES events **SHOULD** deliver syslog messages
that meet the criteria in R-209104 to the VES Event Listener using the
:keyword: MAY
:introduced: casablanca
:updated: guilin
- :impacts: DCAE
:validation_mode: in_service
+ :impacts: DCAE
The VNF or PNF **MAY** leverage ONAP's High Volume VNF Event Streaming
(HV-VES) when there is a need to deliver large volumes of real-time
:target: VNF or PNF PROVIDER
:keyword: MUST
:introduced: guilin
- :impacts: DCAE
:validation_mode: none
+ :impacts: DCAE
VNF or PNF Provider **MUST** have agreement with the Service Provider before
utilizing the HV-VES option for monitoring as this option does not fully
:target: VNF or PNF
:keyword: MAY
:introduced: casablanca
- :impacts: dcae, dmaap
- :validation_mode: in_service
:updated: guilin
+ :validation_mode: in_service
+ :impacts: dcae, dmaap
The VNF or PNF **MAY** leverage a bulk VNF or PNF telemetry transmission
mechanism in instances where other transmission
:target: VNF or PNF PROVIDER
:keyword: MUST
:introduced: casablanca
+ :updated: guilin
:validation_mode: static
:impacts: dcae
- :updated: guilin
If the VNF or PNF is using VES, then the VNF or PNF Provider **MUST** provide
a YAML file formatted in adherence with the
.. req::
:id: R-123044
:target: VNF or PNF PROVIDER
- :keyword: MUST
+ :keyword: MAY
:introduced: casablanca
+ :updated: dublin
:validation_mode: in_service
:impacts: dcae
- :updated: dublin
The VNF or PNF Provider **MAY** require that specific events, identified by
their ``eventName``, require that certain fields, which are optional in the
.. req::
:id: R-528866
:target: VNF or PNF
+ :keyword: MUST
:introduced: casablanca
+ :updated: guilin
:validation_mode: in_service
:impacts: dcae
- :keyword: MUST
- :updated: guilin
The VES events produced by the VNF or PNF **MUST** conform to the schema and
other formatting requirements specified in the relevant VES Event Listener
.. req::
:id: R-283988
:target: VNF or PNF
+ :keyword: MUST NOT
:introduced: casablanca
:updated: guilin
:validation_mode: in_service
:impacts: dcae
- :keyword: MUST NOT
A VNF or PNF producing VES events **MUST NOT** send information through
extensible structures if the event specification has explicitly defined
.. req::
:id: R-470963
:target: VNF or PNF
+ :keyword: SHOULD
:introduced: casablanca
:updated: guilin
:validation_mode: in_service
:impacts: dcae
- :keyword: SHOULD
A VNF or PNF producing VES events **SHOULD** leverage camel case to
separate words and acronyms used as keys that will be sent through extensible
restrictions in place for the operation.
Security
-~~~~~~~~~~
+~~~~~~~~
.. req::
:id: R-68165
:target: VNF or PNF
:keyword: SHOULD
:introduced: casablanca
- :impacts: dcae, dmaap
:updated: dublin
+ :impacts: dcae, dmaap
The VNF or PNF **SHOULD** support FileReady VES event for event-driven bulk transfer
of monitoring data.
:target: VNF or PNF
:keyword: SHOULD
:introduced: casablanca
- :impacts: dcae, dmaap
:updated: dublin
+ :impacts: dcae, dmaap
The VNF or PNF **SHOULD** support File transferring protocol, such as FTPES or SFTP,
when supporting the event-driven bulk transfer of monitoring data.
:target: VNF or PNF
:keyword: SHOULD
:introduced: casablanca
+ :updated: guilin
:impacts: dcae, dmaap
- :updated: guilin
The VNF or PNF **SHOULD** support the data schema defined in 3GPP TS 32.435 or 3GPP TS 28.532, when
supporting the event-driven bulk transfer of monitoring data.
PNF Plug and Play
-------------------------
+-----------------
PNF Plug and Play
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^
The following are the requirements related to PNF Plug and Play.
:target: PNF
:keyword: SHOULD
:introduced: casablanca
- :updated: El Alto
+ :updated: el alto
The following VES Events **SHOULD** be supported by the PNF: pnfRegistration
VES Event, HVol VES Event, and Fault VES Event. These are onboarded via
.. req::
:id: R-284934
:target: PNF
- :keyword: MUST
+ :keyword: MAY
:introduced: casablanca
If the PNF encounters an error authenticating, reaching the ONAP DCAE VES
----------------------------------------------
Design Definition
-^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^
The ONAP Design Time Framework provides the ability to design NFV
resources including VNFs, Services, and products. The VNF provider must
(NFV), Management and Orchestration, VNF Packaging Specification.
Resource Description
-^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^
.. req::
:id: R-66070
- :target: VNF Package
+ :target: VNF HEAT PACKAGE
:keyword: MUST
:updated: dublin
.. req::
:id: R-22346
- :target: VNF or PNF PACKAGE
+ :target: VNF or PNF PROVIDER
:keyword: MUST
:introduced: casablanca
- :updated: el alto
+ :updated: guilin
:validation_mode: static
- The VNF or PNF package **MUST** provide :ref:`VES Event Registration <ves_event_registration_3_2>`
+ The VNF or PNF Provider **MUST** provide :ref:`VES Event Registration <ves_event_registration_3_2>`
for all VES events provided by that VNF or PNF.
.. req::
:target: VNF or PNF PROVIDER
:keyword: MUST
:updated: frankfurt
- :impacts: DCAE,Documentation,Integration,SDC
:validation_mode: static
+ :impacts: DCAE,Documentation,Integration,SDC
The VNF or PNF PROVIDER **MUST** provide :ref:`FM_meta_data` to support the
analysis of fault events delivered to DCAE. The metadata must be
supported by that VNF or PNF at onboarding time. The metadata must follow
the VES Event Listener Specifications for Fault domain and VES Event
Registration Specifications for YAML registration file format.
-
+
.. req::
:id: R-816745
:keyword: MUST
:introduced: dublin
:updated: frankfurt
- :impacts: DCAE,Documentation,Integration,SDC
:validation_mode: static
+ :impacts: DCAE,Documentation,Integration,SDC
THe VNF or PNF PROVIDER **MUST** provide PM Meta Data (:ref:`PM_Dictionary`)
to support the analysis of PM data delivered to DCAE.
which contain the format and content required.
Resource Configuration
-^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^
.. req::
Configuration Management via NETCONF/YANG
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. req::
:id: R-30278
as a foundation for creating the YANG model for configuration.
Configuration Management via Chef
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. req::
(e.g., customer provisioning data).
Resource Control Loop
-^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^
.. req::
Compute, Network, and Storage Requirements
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. req::
Testing
-^^^^^^^^^^
+^^^^^^^
.. req::
:id: R-43958
necessary simulators.
Licensing Requirements
-^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^
ONAP can support external licensing management solution (e.g. vendor specific)
in addition to its own licensing management solution. If licensing management
solution is provided by ONAP, then ONAP operators build the VNF License using SDC during onboarding.
Ansible JSON Key Value Description
--------------------------------------------------------------
+----------------------------------
The following provides the key value pairs that must be contained in the
JSON file supporting APPC/SDN-C Ansible action.
Table B1. Ansible JSON File key value description
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. csv-table:: **TOSCA Definition**
:file: Ansible JSON File Key Value Description.csv
Ansible Playbook Examples
------------------------------------------------
+-------------------------
The following sections contain examples of Ansible playbooks
which follow the guidelines.
Guidelines for Playbooks to properly integrate with APPC/SDN-C
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
**NOTE**: To support concurrent requests to multiple playbooks, targeting VNF
instances of same or different type, VNF files dynamically created by playbooks
playbook take precedence over any defaults stored in Ansible Server.
Ansible Playbooks – Notes On Artifacts Required to Run Playbooks
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Inventory hosts file: should be VNF instance specific.
Ansible Inventory Hosts File – Supported Formats
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Supported inventory hosts file examples, built from this NodeList model,
extracted from A&AI by APPC/SDN-C and passed to the Ansible
Ansible Server – On-boarding Ansible Playbooks
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Once playbooks are developed following these guidelines, playbooks need to be
on-boarded onto Development Ansible Server(s), and placed under (git) code
Chef JSON Key Value Description
--------------------------------------
+-------------------------------
The following provides the key value pairs that must be contained in the
JSON file supporting Chef action.
Table A1. Chef JSON File key value description
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+----------------+--------------------------+---------+----------------------+
| **Field Name** | **Description** | **Type**| **Comment** |
The following table describes the JSON dictionary to post in Callback.
Table A2. JSON Dictionary to Post in Callback
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+--------------+----------------------------+---------+-----------------------+
| **Key** | **Description** | **Type**| **Comment** |
-----------
Table D1. ONAP Resource DM TOSCA/YAML constructs
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Standard TOSCA/YAML definitions agreed by VNF SDK Modeling team to be used by
VNF vendors to create a standard VNF descriptor.
Table D2. TOSCA CSAR structure
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This section defines the requirements around the CSAR structure.
across a Service Provider's infrastructure.
Relation to the Common Event Format
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The Common Event Format described in the VES Event Listener service
specification defines the structure of VES events including optional
allowed by the Common Event Format (e.g., ``MINOR`` or ``NORMAL``).
Relation to Service Design and Creation
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Event registration for a VNF (or other event source) is provided to the
Service Provider's Service Creation and Design Environment (e.g., SDC)
HeartbeatAction
-++++++++++++++++
++++++++++++++++
The ``heartbeatAction`` keyword is provided on the ``event`` objectName for
heartbeat events only. It provides design time guidance to the service
}
Presence
-+++++++++
+++++++++
The ``presence`` keyword may be defined as 'required' or 'optional'. If
not provided, the element is assumed to be 'optional'.
# by omitting a presence definition, the element is assumed to be optional
Range
-+++++++
++++++
The ``range`` keyword applies to fields (i.e., simpleTypes); indicates the
value of the field is a number within a specified range of values from
fieldname: { range: [ 0, 3.14 ] }
Structure
-++++++++++
++++++++++
The ``structure`` keyword indicates that the element is a complexType
(i.e., an object) and is followed by curly braces containing that
}
Units
-+++++++
++++++
The ``units`` qualifier may be applied to values provided in VES Common
Event Format extensible field structures. The 'units' qualifier
}
Value
-+++++++
++++++
The ``value`` keyword applies to fields (i.e., simpleTypes); indicates a
single value or an enumeration of possible values. If not provided, it
...
Rules Syntax and Semantics
-++++++++++++++++++++++++++++
+++++++++++++++++++++++++++
The YAML ``rules`` document begins with the keyword ``rules`` followed by a
colon and square brackets. Each rule is then defined within the square
microservices and alerts may be specified.
Simple Triggers
-++++++++++++++++
++++++++++++++++
The trigger is based on the named ``conditions`` asserted in the action
qualifiers within the event definitions earlier in the YAML file. The
clarity.
Time Based Qualifiers
-+++++++++++++++++++++++
++++++++++++++++++++++
Time based rules may be established by following any named condition
with a colon and curly braces. The time based rule is placed in the
.. _PM_Dictionary:
PM Dictionary
-~~~~~~~~~~~~~~
+~~~~~~~~~~~~~
The Performance Management (PM) Dictionary is used by analytics
applications to interpret and process perf3gpp measurement information
.. _FM_meta_data:
FM Meta Data
-~~~~~~~~~~~~~
+~~~~~~~~~~~~
FM Meta Data enables vendors to provide meta information about FM events
using a set of standard keywords. FM Meta Data is conveyed in the YAML
make machine processing of FM Meta Data Keywords easier to perform.
Alarm Meta Data Keywords
-++++++++++++++++++++++++++++
+++++++++++++++++++++++++
The following is a list of standard Alarm Meta Data Keywords. Note: the
keywords are in CAPS so they can be easily found within the YAML
+------------+---------+-----------------------------------------------------+
Fault Meta Data Keywords
-+++++++++++++++++++++++++
+++++++++++++++++++++++++
The following is a list of standard Fault Meta Data Keywords. Note: the
keywords are in CAPS so they can be easily found within the YAML
+------------------------+---------+------------------------------------------+
FM Meta Data Example
-+++++++++++++++++++++
+++++++++++++++++++++
The following is a snippet of a fault event registration showing use of
the FM Meta Data keywords. Note: it is recommended the information be
easier to rapidly find examples of different types of events.
Fault
-~~~~~~
+~~~~~
.. code-block:: yaml
}
Heartbeat
-~~~~~~~~~~
+~~~~~~~~~
.. code-block:: yaml
Measurements
-~~~~~~~~~~~~~
+~~~~~~~~~~~~
.. code-block:: yaml
Sip Signaling
-~~~~~~~~~~~~~~
+~~~~~~~~~~~~~
.. code-block:: yaml
Voice Quality
-~~~~~~~~~~~~~~
+~~~~~~~~~~~~~
.. code-block:: yaml
Rules
-~~~~~~
+~~~~~
.. code-block:: yaml
Appendix: Historical Change Log
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
For the latest changes, see the Change Block just before the Table of
Contents.
following fields:
Table C2. Required Fields for Entitlements
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+---------------+-----------------------------------+-------------+-----------+
| **Field Name**| **Description** |**Data Type**| **Type** |
be defined; each one consists of the following fields:
Table C3. Required Fields for License Keys
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+---------------+-----------------------------------+--------------+----------+
| **Field Name**| **Description** | **Data Type**| **Type** |
- use is allowed in Canada
Table C4. Required Fields for Location
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+------------------+--------------------------------+--------------+----------+
| **Field Name** | **Description** | **Data Type**| **Type** |
- entitlement valid from 15 May 2018 thru 30 June 2020
Table C5. Required Fields for Time
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+------------------+-------------------------------+--------------+-----------+
| **Field Name** | **Description** | **Data Type**| **Type** |
- use is limited by software release
Table C6. Required Fields for Usage
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+------------------+-------------------------------+---------------+----------+
| **Field Name** | **Description** | **Data Type** | **Type** |
- allowed to be used only for government entities
Table C7. Required Fields for Entity
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+------------------+--------------------------------+--------------+----------+
| **Field Name** | **Description** |**Data Type** | **Type** |
interval (day, month, quarter, year, etc.).
Table C8. Required Fields for Amount
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+------------------+---------------------------------+-------------+----------+
| **Field Name** | **Description** |**Data Type**| **Type** |
that should be performed on those eventNames.
Naming Standards for eventName
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
To prevent naming collisions, eventNames sent as part of the
commonEventHeader, should conform to the following naming convention
and isHomogeneous keywords.
Syslogs
-~~~~~~~~
+~~~~~~~
Syslog’s can be classified as either Control or Session/Traffic. They
differ by message content and expected volume:
Versioning
-~~~~~~~~~~~
+~~~~~~~~~~
Three types of version numbers supported by this specification:
to the field descriptions) will increment only the minor number.
Field Block Versions
-+++++++++++++++++++++
+++++++++++++++++++++
A summary of the latest field block version enums as of this version of
the API spec is provided below:
than HTTP) should be used. HTTPS will also encrypt and protect event contents.
Sample Request and Response
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sample Request
++++++++++++++
Sample Success Response
-++++++++++++++++++++++++
++++++++++++++++++++++++
.. code-block:: http
Mutual TLS Certificate Authentication
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
When using Certificate Authentication, the event source must initialize the
HTTPS connection with TLS 1.2 or higher and execute mutual authentication
The {Port} above is typically 8443.
Common Event Format
-^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^
A JSON schema describing the Common Event Format is provided below and
is reproduced in the tables that follow.
capitalized.
Common Event Datatypes
-~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~
Datatype: arrayOfJsonObject
-++++++++++++++++++++++++++++
++++++++++++++++++++++++++++
The arrayOfJsonObject datatype provides an array of json objects, each
of which is describ ed by name, schema and other meta-information. It
+---------------------+------------------+----------+----------------------+
Datatype: arrayOfNamedHashMap
-++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++
The arrayOfNamedHashMap datatype provides an array of hashMaps, each of
which is associated with a descriptive name. It consists of the
+---------------------+------------------+-----------+-----------------------+
Datatype: event
-++++++++++++++++
++++++++++++++++
The event datatype consists of the following fields which constitute the
‘root level’ of the common event format:
+--------------+--------------+-----------+-----------------------------------+
Datatype: eventList
-++++++++++++++++++++
++++++++++++++++++++
The eventList datatype consists of the following fields:
+-------------+-------------+----------+-------------------+
Datatype: hashMap
-+++++++++++++++++++
++++++++++++++++++
The hashMap datatype is an ‘associative array’, which is an unordered
collection of key-value pairs of the form "key": "value", where each key
+--------------+--------------+-----------+----------------------------------+
Datatype: jsonObjectInstance
-+++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++
The jsonObjectInstance datatype provides meta-information about an
instance of a jsonObject along with the actual object instance:
+----------------+------------+----------+-----------------------------------+
Datatype: key
-+++++++++++++++
++++++++++++++
The key datatype is a tuple which provides the name of a key along with
its value and relative order; it consists of the following fields:
+----------+---------+-----------+-------------------------------------------+
Datatype: namedHashMap
-++++++++++++++++++++++++
+++++++++++++++++++++++
The namedHashMap datatype is a hashMap which is associated with and
described by a name; it consists of the following fields:
+---------+---------+-----------+--------------------------------------------+
Datatype: requestError
-+++++++++++++++++++++++
+++++++++++++++++++++++
The requestError datatype defines the standard request error data
structure:
+-----------+--------+-----------+-------------------------------------------+
Datatype: vendorNfNameFields
-+++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++
The vendorNfNameFields provides vendor, nf and nfModule identifying
information:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Datatype: commonEventHeader
-++++++++++++++++++++++++++++
++++++++++++++++++++++++++++
The commonEventHeader datatype consists of the following fields common
to all events:
Listener.
Technology Independent Datatypes
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
‘Fault’ Domain Datatypes
-+++++++++++++++++++++++++
+++++++++++++++++++++++++
Datatype: faultFields
*********************
+-----------------+---------+-----------+-------------------------------------+
Heartbeat’ Domain Datatypes
-++++++++++++++++++++++++++++
++++++++++++++++++++++++++++
Datatype: heartbeatFields
*************************
+---------------+---------+-----------+---------------------------------------+
‘Measurements’ Domain Datatypes
-++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++
Note: NFs are required to report exactly one Measurement event per
period per sourceName.
+------------------+-----------+----------+--------------------------------+
Datatype: cpuUsage
-*******************
+******************
The cpuUsage datatype defines the usage of an identifier CPU and
consists of the following fields:
+------------+--------+-----------+-------------------------------------------+
Datatype: diskUsage
-********************
+*******************
The diskUsage datatype defines the usage of a disk and consists of the
following fields:
+-------------+-------+----------+--------------------------------------------+
Datatype: filesystemUsage
-***************************
+*************************
The filesystemUsage datatype consists of the following fields:
+-------------+--------+-----------+------------------------------------------+
Datatype: hugePages
-********************
+*******************
The hugePages datatype provides metrics on system hugePages; it consists
of the following fields:
+--------------------+--------+----------+------------------------------------+
Datatype: ipmi (Intelligent Platform Management Interface)
-***********************************************************
+**********************************************************
The ipmi datatype provides intelligent platform management interface
metrics; it consists of the following fields:
+-------------+---------------------+-----------+-----------------------------+
Datatype: ipmiBaseboardTemperature
-************************************
+**********************************
The ipmiBaseboardTemperature datatype consists of the following fields
which describe ipmi baseboard temperature metrics:
+-------------+--------+-----------+------------------------------------------+
Datatype: ipmiBaseboardVoltageRegulator
-*****************************************
+***************************************
The ipmiBaseboardVoltageRegulator datatype consists of the following
fields which describe ipmi baseboard voltage regulator metrics:
+--------------------+-------+----------+-------------------------------------+
Datatype: ipmiBattery
-**********************
+*********************
The ipmiBattery datatype consists of the following fields which describe
ipmi battery metrics:
+---------------------+--------+----------+------------------------------+
Datatype: ipmiFan
-********************
+*****************
The ipmiFan datatype consists of the following fields which describe
ipmi fan metrics:
+--------------+-------+----------+-------------------------------------------+
Datatype: ipmiGlobalAggregateTemperatureMargin
-***********************************************
+**********************************************
The ipmiGlobalAggregateTemperatureMargin datatype consists of the
following fields:
+-------------+-------+----------+--------------------------------------------+
Datatype: ipmiHsbp
-*******************
+******************
The ipmiHsbp datatype provides ipmi hot swap backplane power metrics; it
consists of the following fields:
+------------+-------+----------+---------------------------------------------+
Datatype: ipmiNic
-******************
+*****************
The ipmiNic datatype provides network interface control care metrics; it
consists of the following fields:
+------------+-------+----------+---------------------------------------------+
Datatype: ipmiPowerSupply
-**************************
+*************************
The ipmiPowerSupply datatype provides ipmi power supply metrics; it
consists of the following fields:
+-----------+-------+----------+----------------------------------------------+
Datatype: ipmiProcessor
-************************
+***********************
The ipmiProcessor datatype provides ipmi processor metrics; it consists
of the following fields:
+------------+------------------+-----------+---------------------------------+
Datatype: latencyBucketMeasure
-*******************************
+******************************
The latencyBucketMeasure datatype consists of the following fields which
describe the number of counts falling within a defined latency bucket:
+-----------+-------+----------+----------------------------------------------+
Datatype: load
-****************
+**************
The load datatype provides metrics on system cpu and io utilization
obtained using /proc/loadavg; it consists of the following fields:
+----------+-------+----------+-----------------------------------------------+
Datatype: machineCheckException
-********************************
+*******************************
The machineCheckException datatype describes machine check exceptions;
it consists of the following fields:
+-------------+-------+----------+--------------------------------------------+
Datatype: measurementFields
-****************************
+***************************
The measurementFields datatype consists of the following fields:
+-------------+--------------+----------+-------------------------------------+
Datatype: memoryUsage
-**********************
+*********************
The memoryUsage datatype defines the memory usage of a virtual machine
and consists of the following fields:
+-----------+-------+----------+----------------------------------------------+
Datatype: nicPerformance
-*************************
+************************
The nicPerformance datatype consists of the following fields which
describe the performance and errors of an of an identified virtual
+----------------+-------+----------+-----------------------------------------+
Datatype: processorDimmAggregateThermalMargin
-**********************************************
+*********************************************
The processorDimmAggregateThermalMargin datatype provides intelligent
platform management interface (ipmi) processor dual inline memory module
+-----------------+-------+----------+----------------------------------------+
Datatype: processStats
-***********************
+**********************
The processStats datatype provides metrics on system processes; it
consists of the following fields:
+-----------+-------+----------+----------------------------------------------+
‘Notification’ Domain Datatypes
-++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++
Datatype: notificationFields
-******************************
+****************************
The notificationFields datatype consists of the following fields:
Other notificationFields are not used for fileReady.
‘Other’ Domain Datatypes
-+++++++++++++++++++++++++
+++++++++++++++++++++++++
Datatype: otherFields
-**********************
+*********************
The otherFields datatype defines fields for events belonging to the
'other' domain of the commonEventHeader domain enumeration; it consists
+-------------+-------------+----------+--------------------------------------+
‘perf3gpp’ Domain Datatypes
-++++++++++++++++++++++++++++
++++++++++++++++++++++++++++
Datatype: measDataCollection
-*****************************
+****************************
The measDataCollection datatype defines a 3GPP measurement collection
structure aligned with the 3GPP PM format; it consists of the following
+----------------+---------+----------+---------------------------------------+
Datatype: measInfo
-********************
+******************
The measInfo datatype provides measurement information; it consists of
the following fields:
+-------+--------------------------+----------+-------------------------------+
Datatype: measInfoIdInteger
-****************************
+***************************
The measInfoIdInteger datatype provides an integer measurement group
identifier; it consists of the following fields:
+---------------+---------+----------+--------------------------------------+
Datatype: measInfoIdString
-***************************
+**************************
The measInfoIdString datatype provides a string measurement group
identifier; it consists of the following fields:
+---------------+-----------+----------+--------------------------------------+
Datatype: measResultInteger
-****************************
+***************************
The measResultInteger datatype provides an integer 3GPP PM measurement
result; it consists of the following fields:
+----------+-----------+-------------+------------------------------------+
Datatype: measResultNull
-*************************
+************************
The measResultNull datatype provides a null 3GPP PM measurement result;
it consists of the following fields:
+----------+-----------+-------------+------------------------------------+
Datatype: measResultNumber
-***************************
+**************************
The measResultNumber datatype provides a number 3GPP PM measurement
result; it consists of the following fields:
+----------+-----------+-------------+------------------------------------+
Datatype: measResultString
-***************************
+**************************
The measResultString datatype provides a string 3GPP PM measurement
result; it consists of the following fields:
+----------+-----------+-------------+------------------------------------+
Datatype: measTypesInteger
-***************************
+**************************
The measTypesInteger datatype provides an array of integer measurement
identifiers associated with the measurement results; it consists of the
+----------+--------+----------+----------------------------------------------+
Datatype: measTypesString
-**************************
+*************************
The measTypesString datatype provides an array of string measurement
identifiers associated with the measurement results; it consists of the
+----------+-------+----------+-----------------------------------------------+
Datatype: measValues
-*********************
+********************
The measValues datatype provides 3GPP measurement values; it consists of
the following fields:
+---------+----------------------------------+----------+---------------------+
Datatype: perf3gppFields
-*************************
+************************
The perf3gppFields datatype defines fields for 3GPP PM format events,
based on 3GPP TS 28.550, belonging to the 'perf3gpp' domain of the
+--------------+-----------+----------+---------------------------------------+
‘pnfRegistration’ Domain Datatypes
-++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++
Datatype: pnfRegistrationFields
-********************************
+*******************************
The pnfRegistrationFields datatype defines fields for events belonging
to the 'pnfRegistration' domain of the commonEventHeader domain
+-----------------+--------+----------+---------------------------------------+
‘State Change’ Domain Datatypes
-++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++
Datatype: stateChangeFields
-*****************************
+***************************
The stateChangeFields datatype consists of the following fields:
+--------------+--------+----------+------------------------------------------+
‘Syslog’ Domain Datatypes
-++++++++++++++++++++++++++
++++++++++++++++++++++++++
Datatype: syslogFields
-***********************
+**********************
The syslogFields datatype consists of the following fields:
https://www.iana.org/assignments/syslog-parameters/syslog-parameters.xhtml
‘Threshold Crossing Alert’ Domain Datatypes
-++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++
Datatype: counter
-******************
+*****************
The counter datatype consists of the following fields:
+------------+--------+----------+--------------------------------------------+
Datatype: thresholdCrossingAlertFields
-****************************************
+**************************************
The thresholdCrossingAlertFields datatype consists of the following
fields:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Mobile Flow’ Domain Datatypes
-++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++
Datatype: gtpPerFlowMetrics
-****************************
+***************************
The gtpPerFlowMetrics datatype consists of the following fields:
+---------------+--------+----------+-----------------------------------------+
Datatype: mobileFlowFields
-***************************
+**************************
The mobileFlowFields datatype consists of the following fields:
+++++++++++++++++++++++++++++++
Datatype: sipSignalingFields
-*****************************
+****************************
The sipSignalingFields datatype communicates information about sip
signaling messages, parameters and signaling state; it consists of the
+--------------+-----------+----------+---------------------------------------+
‘Voice Quality’ Domain Datatypes
-+++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++
Datatype: endOfCallVqmSummaries
-*********************************
+*******************************
The endOfCallVqmSummaries datatype provides end of call voice quality
metrics; it consists of the following fields:
+--------------+-------+----------+-------------------------------------------+
Datatype: voiceQualityFields
-*****************************
+****************************
The voiceQualityFields datatype provides statistics related to customer
facing voice products; consists of the following fields:
+--------------+-------------+----------+-------------------------------------+
Exceptions
-^^^^^^^^^^^
+^^^^^^^^^^
RESTful Web Services Exceptions
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
RESTful services generate and send exceptions to clients in response to
invocation errors. Exceptions send HTTP status codes (specified later in
+-----------+---------------+-------------+-----------------------------------+
Service Exceptions
-~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~
When a service is not able to process a request, and retrying the
request with the same information will also result in a failure, and
Table - Service Exceptions
Policy Exceptions
-~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~
When a service is not able to complete because the request fails to
meet a policy criteria, then the service will issue a fault using the
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
REST Operation Overview
-~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~
REST Operation Summary
-+++++++++++++++++++++++
+++++++++++++++++++++++
+---------------------+---------+------------------------------------------+
| **Operation Action**| **HTTP**| Resource URL relative to {ServerRoot}\ |
a mandatory requirement.
Operation: publishAnyEvent
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~
Functional Behavior
-+++++++++++++++++++++
++++++++++++++++++++
Allows authorized clients to publish any single event to the VES event
listener.
messages
Call Flow
-++++++++++
++++++++++
.. seqdiag::
:caption: ``publishAnyEvent`` Call Flow
}
Input Parameters
-+++++++++++++++++
+++++++++++++++++
Header Fields (note: all parameter names shall be treated as
case-insensitive):
+--------------+--------------+--------------+-------------------------------+
Output Parameters
-++++++++++++++++++
++++++++++++++++++
Header fields:
+--------------+--------------+----------------+------------------------------+
HTTP Status Codes
-++++++++++++++++++
++++++++++++++++++
+-----+--------------+--------------------------------------------------------+
| Code| Reason Phrase| Description |
+-----+--------------+--------------------------------------------------------+
Sample Request and Response
-++++++++++++++++++++++++++++
++++++++++++++++++++++++++++
Sample Request
-***************
+**************
.. code-block:: http
Sample Success Response
-************************
+***********************
.. code-block:: http
X-LatestVersion: 7.1.1
Sample Error Responses
-************************
+**********************
Sample Policy Exception
-""""""""""""""""""""""""
+"""""""""""""""""""""""
.. code-block:: http
Sample Service Exception
-"""""""""""""""""""""""""
+""""""""""""""""""""""""
.. code-block:: http
}
Operation: publishEventBatch
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Functional Behavior
+++++++++++++++++++
messages
Call Flow
-+++++++++++
++++++++++
.. seqdiag::
:caption: ``publishEventBatch`` Call Flow
}
Input Parameters
-+++++++++++++++++
+++++++++++++++++
Header Fields (note: all parameter names shall be treated as
case-insensitive):
+--------------+--------------+--------------+-------------------------------+
Output Parameters
-+++++++++++++++++++
++++++++++++++++++
Header fields:
+-----+--------------+--------------------------------------------------------+
Sample Request and Response
-+++++++++++++++++++++++++++++
++++++++++++++++++++++++++++
Sample Request
-****************
+**************
.. code-block:: http
}
Sample Success Response
-*************************
+***********************
.. code-block:: http
X-LatestVersion: 7.1.1
Sample Error Responses
-************************
+**********************
Sample Policy Exception
-""""""""""""""""""""""""
+"""""""""""""""""""""""
.. code-block:: http
Sample Service Exception
-"""""""""""""""""""""""""
+""""""""""""""""""""""""
.. code-block:: http
Terminology
-^^^^^^^^^^^^
+^^^^^^^^^^^
Terminology used in this document is summarized below:
re-usable, and responsible for a single capability.
Appendix: Historical Change Log
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
For the latest changes, see the Change Block just before the Table of
Contents.
.. _ves_event_listener_5_4_1:
-===================================
Service: *VES Event Listener 5.4.1*
-===================================
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. contents:: Table of Contents
Introduction
-============
+^^^^^^^^^^^^
This document describes the RESTful interface for the VES (Virtual function
Event Streaming) Event Listener. The VES Event Listener is capable of receiving
make use of persistent TCP connections for high volumes of streaming events.
Event Registration
-------------------
+^^^^^^^^^^^^^^^^^^
All events must be compliant with the common event format, but specific events
identified by their eventNames, may require that certain fields, which are
performed on those eventNames.
Naming Standards for eventName
-------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
To prevent naming collisions, eventNames sent as part of the
commonEventHeader, should conform to the following naming convention designed
environment (i.e., SDC).
Support for Protocols Other Than HTTPS
---------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This API specification describes an HTTPS RESTful interface using the JSON
content-type.
provided in this document.
Versioning
-----------
+^^^^^^^^^^
Three types of version numbers supported by this specification:
minor number.
Security
---------
+^^^^^^^^
Event sources must identify themselves to the VES Event Listener.
reproduced in the tables that follow.
Common Event Datatypes
-----------------------
+^^^^^^^^^^^^^^^^^^^^^^
Common Event Datatypes
~~~~~~~~~~~~~~~~~~~~~~
+----------------+----------+-------------+---------------------------------------------------------------+
'Common Event Header'Datatypes
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Datatype: commonEventHeader
^^^^^^^^^^^^^^^^^^^^^^^^^^^
received by the VES Event Listener:
Technology Independent Datatypes
---------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
'Fault'Domain Datatypes
-~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~
Datatype: faultFields
^^^^^^^^^^^^^^^^^^^^^
+-------------------------------+-------------+-------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
'Heartbeat'Domain Datatypes
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
Datatype: heartbeatFields
^^^^^^^^^^^^^^^^^^^^^^^^^
+------------------------------------------+----------+-------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
'Other'Domain Datatypes
-~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~
Datatype: otherFields
^^^^^^^^^^^^^^^^^^^^^
+-----------------------------+--------------------------+-------------+------------------------------------------------------------------------------+
'State Change'Domain Datatypes
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Datatype: stateChangeFields
^^^^^^^^^^^^^^^^^^^^^^^^^^^
+----------------------------+-------------+-------------+----------------------------------------------------------------------------+
'Syslog'Domain Datatypes
-~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~
Datatype: syslogFields
^^^^^^^^^^^^^^^^^^^^^^
; except '=', SP, ']', %d34 (")
'Threshold Crossing Alert'Domain Datatypes
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Datatype: counter
^^^^^^^^^^^^^^^^^
+-----------------------------------+---------------+-------------+-----------------------------------------------------------------------------------------------------------------------------+
Technology Specific Datatypes
------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
'Mobile Flow' Domain Datatypes
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
==========
RESTful Web Services Exceptions
--------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
RESTful services generate and send exceptions to clients in response to
invocation errors. Exceptions send HTTP status codes (specified later in
+------------------+----------------------------+-----------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Service Exceptions
-------------------
+^^^^^^^^^^^^^^^^^^
When a service is not able to process a request, and retrying the
request with the same information will also result in a failure, and the
Table - Service Exceptions
Policy Exceptions
------------------
+^^^^^^^^^^^^^^^^^
When a service is not able to complete because the request fails to meet
a policy criteria, then the service will issue a fault using the policy
===============================
REST Operation Overview
------------------------
+^^^^^^^^^^^^^^^^^^^^^^^
REST Operation Summary
-~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~
+--------------------------------+------------+----------------------------------------------------------------------------+
| **Operation Action** | **HTTP** | **Resource URL relative to {ServerRoot}, which is defined in section 3** |
use v2 without error).
Buffering of Events
-~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~
{ServerRoot} is defined in section 3 of this document, which defines the
REST resource URL. One or more FQDNs may be provisioned in an event
oldest events first).
Operation: publishAnyEvent
---------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^
Functional Behavior
~~~~~~~~~~~~~~~~~~~
}
Operation: publishEventBatch
-----------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Functional Behavior
~~~~~~~~~~~~~~~~~~~
.. _ves_common_event_format_7_2:
Common Event Format
-^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^
A JSON schema describing the Common Event Format is provided below and
is reproduced in the tables that follow.
capitalized.
Common Event Datatypes
-~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~
Datatype: arrayOfJsonObject
-++++++++++++++++++++++++++++
++++++++++++++++++++++++++++
The arrayOfJsonObject datatype provides an array of json objects, each
of which is describ ed by name, schema and other meta-information. It
+---------------------+------------------+----------+----------------------+
Datatype: arrayOfNamedHashMap
-++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++
The arrayOfNamedHashMap datatype provides an array of hashMaps, each of
which is associated with a descriptive name. It consists of the
+---------------------+------------------+-----------+-----------------------+
Datatype: event
-++++++++++++++++
++++++++++++++++
The event datatype consists of the following fields which constitute the
‘root level’ of the common event format:
+--------------+--------------+-----------+-----------------------------------+
Datatype: eventList
-++++++++++++++++++++
++++++++++++++++++++
The eventList datatype consists of the following fields:
+-------------+-------------+----------+-------------------+
Datatype: hashMap
-+++++++++++++++++++
++++++++++++++++++
The hashMap datatype is an ‘associative array’, which is an unordered
collection of key-value pairs of the form "key": "value", where each key
+--------------+--------------+-----------+----------------------------------+
Datatype: jsonObjectInstance
-+++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++
The jsonObjectInstance datatype provides meta-information about an
instance of a jsonObject along with the actual object instance:
+----------------+------------+----------+-----------------------------------+
Datatype: key
-+++++++++++++++
++++++++++++++
The key datatype is a tuple which provides the name of a key along with
its value and relative order; it consists of the following fields:
+----------+---------+-----------+-------------------------------------------+
Datatype: namedHashMap
-++++++++++++++++++++++++
+++++++++++++++++++++++
The namedHashMap datatype is a hashMap which is associated with and
described by a name; it consists of the following fields:
+---------+---------+-----------+--------------------------------------------+
Datatype: requestError
-+++++++++++++++++++++++
+++++++++++++++++++++++
The requestError datatype defines the standard request error data
structure:
+-----------+--------+-----------+-------------------------------------------+
Datatype: vendorNfNameFields
-+++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++
The vendorNfNameFields provides vendor, nf and nfModule identifying
information:
.. _ves_common_event_header_7_2:
Datatype: commonEventHeader
-++++++++++++++++++++++++++++
++++++++++++++++++++++++++++
The commonEventHeader datatype consists of the following fields common
to all events:
Technology Independent Datatypes
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
‘Fault’ Domain Datatypes
-+++++++++++++++++++++++++
+++++++++++++++++++++++++
Datatype: faultFields
*********************
+-----------------+---------+-----------+-------------------------------------+
Heartbeat’ Domain Datatypes
-++++++++++++++++++++++++++++
++++++++++++++++++++++++++++
Datatype: heartbeatFields
*************************
+---------------+---------+-----------+---------------------------------------+
‘Measurements’ Domain Datatypes
-++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++
Note: NFs are required to report exactly one Measurement event per
period per sourceName.
+------------------+-----------+----------+--------------------------------+
Datatype: cpuUsage
-*******************
+******************
The cpuUsage datatype defines the usage of an identifier CPU and
consists of the following fields:
+------------+--------+-----------+-------------------------------------------+
Datatype: diskUsage
-********************
+*******************
The diskUsage datatype defines the usage of a disk and consists of the
following fields:
+-------------+-------+----------+--------------------------------------------+
Datatype: filesystemUsage
-***************************
+*************************
The filesystemUsage datatype consists of the following fields:
+-------------+--------+-----------+------------------------------------------+
Datatype: hugePages
-********************
+*******************
The hugePages datatype provides metrics on system hugePages; it consists
of the following fields:
+--------------------+--------+----------+------------------------------------+
Datatype: ipmi (Intelligent Platform Management Interface)
-***********************************************************
+**********************************************************
The ipmi datatype provides intelligent platform management interface
metrics; it consists of the following fields:
+-------------+---------------------+-----------+-----------------------------+
Datatype: ipmiBaseboardTemperature
-************************************
+**********************************
The ipmiBaseboardTemperature datatype consists of the following fields
which describe ipmi baseboard temperature metrics:
+-------------+--------+-----------+------------------------------------------+
Datatype: ipmiBaseboardVoltageRegulator
-*****************************************
+***************************************
The ipmiBaseboardVoltageRegulator datatype consists of the following
fields which describe ipmi baseboard voltage regulator metrics:
+--------------------+-------+----------+-------------------------------------+
Datatype: ipmiBattery
-**********************
+*********************
The ipmiBattery datatype consists of the following fields which describe
ipmi battery metrics:
+---------------------+--------+----------+------------------------------+
Datatype: ipmiFan
-********************
+*****************
The ipmiFan datatype consists of the following fields which describe
ipmi fan metrics:
+--------------+-------+----------+-------------------------------------------+
Datatype: ipmiGlobalAggregateTemperatureMargin
-***********************************************
+**********************************************
The ipmiGlobalAggregateTemperatureMargin datatype consists of the
following fields:
+-------------+-------+----------+--------------------------------------------+
Datatype: ipmiHsbp
-*******************
+******************
The ipmiHsbp datatype provides ipmi hot swap backplane power metrics; it
consists of the following fields:
+------------+-------+----------+---------------------------------------------+
Datatype: ipmiNic
-******************
+*****************
The ipmiNic datatype provides network interface control care metrics; it
consists of the following fields:
+------------+-------+----------+---------------------------------------------+
Datatype: ipmiPowerSupply
-**************************
+*************************
The ipmiPowerSupply datatype provides ipmi power supply metrics; it
consists of the following fields:
+-----------+-------+----------+----------------------------------------------+
Datatype: ipmiProcessor
-************************
+***********************
The ipmiProcessor datatype provides ipmi processor metrics; it consists
of the following fields:
+------------+------------------+-----------+---------------------------------+
Datatype: latencyBucketMeasure
-*******************************
+******************************
The latencyBucketMeasure datatype consists of the following fields which
describe the number of counts falling within a defined latency bucket:
+-----------+-------+----------+----------------------------------------------+
Datatype: load
-****************
+**************
The load datatype provides metrics on system cpu and io utilization
obtained using /proc/loadavg; it consists of the following fields:
+----------+-------+----------+-----------------------------------------------+
Datatype: machineCheckException
-********************************
+*******************************
The machineCheckException datatype describes machine check exceptions;
it consists of the following fields:
+-------------+-------+----------+--------------------------------------------+
Datatype: measurementFields
-****************************
+***************************
The ``measurementFields`` datatype consists of the following fields:
particular the ``aggregationRole``, ``castTo``, and ``isHomogeneous`` keywords.
Datatype: memoryUsage
-**********************
+*********************
The memoryUsage datatype defines the memory usage of a virtual machine
and consists of the following fields:
+-----------+-------+----------+----------------------------------------------+
Datatype: nicPerformance
-*************************
+************************
The nicPerformance datatype consists of the following fields which
describe the performance and errors of an of an identified virtual
+----------------+-------+----------+-----------------------------------------+
Datatype: processorDimmAggregateThermalMargin
-**********************************************
+*********************************************
The processorDimmAggregateThermalMargin datatype provides intelligent
platform management interface (ipmi) processor dual inline memory module
+-----------------+-------+----------+----------------------------------------+
Datatype: processStats
-***********************
+**********************
The processStats datatype provides metrics on system processes; it
consists of the following fields:
+-----------+-------+----------+----------------------------------------------+
‘Notification’ Domain Datatypes
-++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++
Datatype: notificationFields
-******************************
+****************************
The notificationFields datatype consists of the following fields:
Other notificationFields are not used for fileReady.
‘Other’ Domain Datatypes
-+++++++++++++++++++++++++
+++++++++++++++++++++++++
Datatype: otherFields
-**********************
+*********************
The otherFields datatype defines fields for events belonging to the
'other' domain of the commonEventHeader domain enumeration; it consists
+-------------+-------------+----------+--------------------------------------+
‘perf3gpp’ Domain Datatypes
-++++++++++++++++++++++++++++
++++++++++++++++++++++++++++
Datatype: measDataCollection
-*****************************
+****************************
The measDataCollection datatype defines a 3GPP measurement collection
structure aligned with the 3GPP PM format; it consists of the following
+----------------+---------+----------+---------------------------------------+
Datatype: measInfo
-********************
+******************
The measInfo datatype provides measurement information; it consists of
the following fields:
+-------+--------------------------+----------+-------------------------------+
Datatype: measInfoIdInteger
-****************************
+***************************
The measInfoIdInteger datatype provides an integer measurement group
identifier; it consists of the following fields:
+---------------+---------+----------+--------------------------------------+
Datatype: measInfoIdString
-***************************
+**************************
The measInfoIdString datatype provides a string measurement group
identifier; it consists of the following fields:
+---------------+-----------+----------+--------------------------------------+
Datatype: measResultInteger
-****************************
+***************************
The measResultInteger datatype provides an integer 3GPP PM measurement
result; it consists of the following fields:
+----------+-----------+-------------+------------------------------------+
Datatype: measResultNull
-*************************
+************************
The measResultNull datatype provides a null 3GPP PM measurement result;
it consists of the following fields:
+----------+-----------+-------------+------------------------------------+
Datatype: measResultNumber
-***************************
+**************************
The measResultNumber datatype provides a number 3GPP PM measurement
result; it consists of the following fields:
+----------+-----------+-------------+------------------------------------+
Datatype: measResultString
-***************************
+**************************
The measResultString datatype provides a string 3GPP PM measurement
result; it consists of the following fields:
+----------+-----------+-------------+------------------------------------+
Datatype: measTypesInteger
-***************************
+**************************
The measTypesInteger datatype provides an array of integer measurement
identifiers associated with the measurement results; it consists of the
+----------+--------+----------+----------------------------------------------+
Datatype: measTypesString
-**************************
+*************************
The measTypesString datatype provides an array of string measurement
identifiers associated with the measurement results; it consists of the
+----------+-------+----------+-----------------------------------------------+
Datatype: measValues
-*********************
+********************
The measValues datatype provides 3GPP measurement values; it consists of
the following fields:
+---------+----------------------------------+----------+---------------------+
Datatype: perf3gppFields
-*************************
+************************
The perf3gppFields datatype defines fields for 3GPP PM format events,
based on 3GPP TS 28.550, belonging to the 'perf3gpp' domain of the
+--------------+-----------+----------+---------------------------------------+
‘pnfRegistration’ Domain Datatypes
-++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++
Datatype: pnfRegistrationFields
-********************************
+*******************************
The pnfRegistrationFields datatype defines fields for events belonging
to the 'pnfRegistration' domain of the commonEventHeader domain
+-----------------+--------+----------+---------------------------------------+
‘State Change’ Domain Datatypes
-++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++
Datatype: stateChangeFields
-*****************************
+***************************
The stateChangeFields datatype consists of the following fields:
+--------------+--------+----------+------------------------------------------+
‘StndDefined’ Domain Datatypes
-++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++
Datatype: stndDefinedFields
-*****************************
+***************************
The stndDefinedFields datatype consists of the following fields:
+--------------+--------+----------+------------------------------------------+
Additional rules, when using stndDefined domain
-************************************************
+***********************************************
Following rules shall be followed, when using the StndDefined domain:
VES.commonEventHeader.stndDefinedNamespace set.
‘Syslog’ Domain Datatypes
-++++++++++++++++++++++++++
++++++++++++++++++++++++++
Datatype: syslogFields
-***********************
+**********************
The syslogFields datatype consists of the following fields:
https://www.iana.org/assignments/syslog-parameters/syslog-parameters.xhtml
‘Threshold Crossing Alert’ Domain Datatypes
-++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++
Datatype: counter
-******************
+*****************
The counter datatype consists of the following fields:
+------------+--------+----------+--------------------------------------------+
Datatype: thresholdCrossingAlertFields
-****************************************
+**************************************
The thresholdCrossingAlertFields datatype consists of the following
fields:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Mobile Flow’ Domain Datatypes
-++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++
Datatype: gtpPerFlowMetrics
-****************************
+***************************
The gtpPerFlowMetrics datatype consists of the following fields:
+---------------+--------+----------+-----------------------------------------+
Datatype: mobileFlowFields
-***************************
+**************************
The mobileFlowFields datatype consists of the following fields:
+++++++++++++++++++++++++++++++
Datatype: sipSignalingFields
-*****************************
+****************************
The sipSignalingFields datatype communicates information about sip
signaling messages, parameters and signaling state; it consists of the
+--------------+-----------+----------+---------------------------------------+
‘Voice Quality’ Domain Datatypes
-+++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++
Datatype: endOfCallVqmSummaries
-*********************************
+*******************************
The endOfCallVqmSummaries datatype provides end of call voice quality
metrics; it consists of the following fields:
+--------------+-------+----------+-------------------------------------------+
Datatype: voiceQualityFields
-*****************************
+****************************
The voiceQualityFields datatype provides statistics related to customer
facing voice products; consists of the following fields:
Table - Policy Exceptions
REST Operation Overview
-~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~
REST Operation Summary
-+++++++++++++++++++++++
+++++++++++++++++++++++
+---------------------+---------+------------------------------------------+
| **Operation Action**| **HTTP**| Resource URL relative to {ServerRoot}\ |
a mandatory requirement.
Operation: publishAnyEvent
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~
Functional Behavior
-+++++++++++++++++++++
++++++++++++++++++++
Allows authorized clients to publish any single event to the VES event
listener.
messages
Call Flow
-++++++++++
++++++++++
.. seqdiag::
:caption: ``publishAnyEvent`` Call Flow
}
Input Parameters
-+++++++++++++++++
+++++++++++++++++
Header Fields (note: all parameter names shall be treated as
case-insensitive):
+--------------+--------------+--------------+-------------------------------+
Output Parameters
-++++++++++++++++++
++++++++++++++++++
Header fields:
+--------------+--------------+----------------+------------------------------+
HTTP Status Codes
-++++++++++++++++++
++++++++++++++++++
+-----+--------------+--------------------------------------------------------+
| Code| Reason Phrase| Description |
+-----+--------------+--------------------------------------------------------+
Sample Request and Response
-++++++++++++++++++++++++++++
++++++++++++++++++++++++++++
Sample Request
-***************
+**************
.. code-block:: http
Sample Success Response
-************************
+***********************
.. code-block:: http
X-LatestVersion: 7.2
Sample Error Responses
-************************
+**********************
Sample Policy Exception
-""""""""""""""""""""""""
+"""""""""""""""""""""""
.. code-block:: http
Sample Service Exception
-"""""""""""""""""""""""""
+""""""""""""""""""""""""
.. code-block:: http
}
Operation: publishEventBatch
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Functional Behavior
+++++++++++++++++++
not individual events within the ``publishEventBatch``.
Call Flow
-+++++++++++
++++++++++
.. seqdiag::
:caption: ``publishEventBatch`` Call Flow
}
Input Parameters
-+++++++++++++++++
+++++++++++++++++
Header Fields (note: all parameter names shall be treated as
case-insensitive):
+--------------+--------------+--------------+-------------------------------+
Output Parameters
-+++++++++++++++++++
++++++++++++++++++
Header fields:
+-----+--------------+--------------------------------------------------------+
Sample Request and Response
-+++++++++++++++++++++++++++++
++++++++++++++++++++++++++++
Sample Request
-****************
+**************
.. code-block:: http
}
Sample Success Response
-*************************
+***********************
.. code-block:: http
X-LatestVersion: 7.2
Sample Error Responses
-************************
+**********************
Sample Policy Exception
-""""""""""""""""""""""""
+"""""""""""""""""""""""
.. code-block:: http
Sample Service Exception
-"""""""""""""""""""""""""
+""""""""""""""""""""""""
.. code-block:: http
Terminology
-^^^^^^^^^^^^
+^^^^^^^^^^^
Terminology used in this document is summarized below:
re-usable, and responsible for a single capability.
Appendix: Historical Change Log
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
For the latest changes, see the Change Block just before the Table of
Contents.
Requirement Changes Introduced in Casablanca
-========================================================
+--------------------------------------------
This document summarizes the requirement changes by section that were
introduced between the Beijing release and
:depth: 2
Summary of Changes
-------------------
+^^^^^^^^^^^^^^^^^^
* **Requirements Added:** 102
* **Requirements Changed:** 232
Configuration Management > Ansible Standards and Capabilities > xNF Configuration via Ansible Requirements > Ansible Client Requirements
-----------------------------------------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Added
Configuration Management > Ansible Standards and Capabilities > xNF Configuration via Ansible Requirements > Ansible Playbook Requirements
-------------------------------------------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Added
Configuration Management > Chef Standards and Capabilities > xNF Configuration via Chef Requirements > Chef Roles/Requirements
-------------------------------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Configuration Management > Controller Interactions With xNF > Configuration Commands
-------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Configuration Management > Controller Interactions With xNF > HealthCheck and Failure Related Commands
-------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Configuration Management > Controller Interactions With xNF > Lifecycle Management Related Commands
----------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Added
Configuration Management > NETCONF Standards and Capabilities > xNF Configuration via NETCONF Requirements > NETCONF Server Requirements
-----------------------------------------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Contrail Resource Parameters > Contrail Network Parameters > External Networks
-------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Heat > Cinder Volumes
----------------------
+^^^^^^^^^^^^^^^^^^^^^
Requirements Removed
Heat > Heat Orchestration Template Format > Heat Orchestration Template Structure > resources > metadata
---------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Removed
Heat > Heat Template Constructs > Heat Files Support (get_file)
----------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Removed
Heat > Heat Template Constructs > Nested Heat Template Requirements
--------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Removed
Heat > Networking > External Networks
--------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Removed
Heat > Networking > Internal Networks
--------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Removed
Heat > ONAP Resource ID and Parameter Naming Convention > Contrail Resource Parameters > Contrail Network Parameters > External Networks
-----------------------------------------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Removed
Heat > ONAP Resource ID and Parameter Naming Convention > Resource: OS::Nova::Server – Metadata Parameters > vm_role
---------------------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Removed
Heat > ONAP Support of Environment Files
-----------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Removed
Monitoring & Management > Data Structure Specification of the Event Record
---------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Added
Monitoring & Management > Event Records - Data Structure Description > Common Event Header
-------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Added
Monitoring & Management > Event Records - Data Structure Description > Miscellaneous
-------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Added
Monitoring & Management > Monitoring & Management Requirements > Asynchronous and Synchronous Data Delivery
------------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Added
Monitoring & Management > Monitoring & Management Requirements > Bulk Performance Measurement
----------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Added
Monitoring & Management > Monitoring & Management Requirements > Google Protocol Buffers (GPB)
-----------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Added
Monitoring & Management > Monitoring & Management Requirements > JSON
----------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Monitoring & Management > Monitoring & Management Requirements > Reporting Frequency
-------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Added
Monitoring & Management > Monitoring & Management Requirements > VNF telemetry via standardized interface
----------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Added
Monitoring & Management > Transports and Protocols Supporting Resource Interfaces
----------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Added
Monitoring & Management > Transports and Protocols Supporting Resource Interfaces > Bulk Telemetry Transmission
----------------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Added
Monitoring & Management > Transports and Protocols Supporting Resource Interfaces > xNF Telemetry using Google Protocol Buffers
--------------------------------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Added
Monitoring & Management > Transports and Protocols Supporting Resource Interfaces > xNF Telemetry using VES/JSON Model
-----------------------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Added
ONAP Heat Cinder Volumes
-------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Added
ONAP Heat Heat Template Constructs > Heat Files Support (get_file)
-------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
ONAP Heat Heat Template Constructs > Nested Heat Templates > Nested Heat Template Requirements
-----------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Added
ONAP Heat Networking > External Networks
-----------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
ONAP Heat Networking > Internal Networks
-----------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
ONAP Heat Orchestration Template Format
----------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Added
ONAP Heat Orchestration Template Format > Environment File Format
------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
ONAP Heat Orchestration Template Format > Heat Orchestration Template Structure > parameters
---------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
ONAP Heat Orchestration Template Format > Heat Orchestration Template Structure > parameters > constraints
-----------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
ONAP Heat Orchestration Template Format > Heat Orchestration Template Structure > parameters > default
-------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
ONAP Heat Orchestration Template Format > Heat Orchestration Template Structure > parameters > type
----------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
ONAP Heat Orchestration Template Format > Heat Orchestration Template Structure > resources
--------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
ONAP Heat Orchestration Template Format > Heat Orchestration Template Structure > resources > deletion_policy
--------------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
ONAP Heat Orchestration Template Format > Heat Orchestration Template Structure > resources > external_id
----------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
ONAP Heat Orchestration Template Format > Heat Orchestration Template Structure > resources > metadata
-------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Added
ONAP Heat Orchestration Template Format > Heat Orchestration Template Structure > resources > properties
---------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
ONAP Heat Orchestration Templates Overview > ONAP Heat Orchestration Template Filenames > Base Modules
-------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
ONAP Heat Orchestration Templates Overview > ONAP Heat Orchestration Template Filenames > Cinder Volume Modules
----------------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
ONAP Heat Orchestration Templates Overview > ONAP Heat Orchestration Template Filenames > Incremental Modules
--------------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
ONAP Heat Orchestration Templates Overview > ONAP Heat Orchestration Template Filenames > Nested Heat file
-----------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
ONAP Heat Orchestration Templates Overview > ONAP VNF Modularity Overview
--------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
ONAP Heat Orchestration Templates Overview > Output Parameters > ONAP Volume Module Output Parameters
------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
ONAP Heat VNF Modularity
-------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
ONAP Output Parameter Names > Predefined Output Parameters > OAM Management IP Addresses
-----------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
ONAP TOSCA VNFD Requirements > TOSCA VNF Descriptor > Capability Types
-----------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Added
ONAP TOSCA VNFD Requirements > TOSCA VNF Descriptor > Data Types
-----------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Added
ONAP TOSCA VNFD Requirements > TOSCA VNF Descriptor > General
--------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Added
ONAP TOSCA VNFD Requirements > TOSCA VNF Descriptor > Interface Types
----------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Added
ONAP TOSCA VNFD Requirements > TOSCA VNF Descriptor > Relationship Types
-------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Added
ONAP TOSCA VNFD Requirements > VNF CSAR Package > VNF Package Contents
-----------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Added
ONAP TOSCA VNFD Requirements > VNF CSAR Package > VNF Package Structure and Format
-----------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Added
PNF Plug and Play > PNF Plug and Play
--------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Added
Resource IDs
-------------
+^^^^^^^^^^^^
Requirements Changed
Resource IDs > Contrail Heat Resources Resource ID Naming Convention > OS::ContrailV2::VirtualNetwork
------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Resource IDs > OpenStack Heat Resources Resource ID Naming Convention > OS::Neutron::Net
-----------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Resource: OS::Neutron::Port - Parameters > Introduction > Items to Note
------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Resource: OS::Neutron::Port - Parameters > Property: allowed_address_pairs, Map Property: ip_address > VIP Assignment, External Networks, Supported by Automation
------------------------------------------------------------------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Resource: OS::Neutron::Port - Parameters > Property: fixed_ips, Map Property: ip_address
-----------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Resource: OS::Neutron::Port - Parameters > Property: fixed_ips, Map Property: subnet
-------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Resource: OS::Neutron::Port - Parameters > Property: network
-------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Resource: OS::Nova::Server - Parameters
----------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Added
Resource: OS::Nova::Server - Parameters > Property: Name
---------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Added
Resource: OS::Nova::Server - Parameters > Property: Name > Contrail Issue with Values for OS::Nova::Server Property Name
-------------------------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Resource: OS::Nova::Server - Parameters > Property: availability_zone
----------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Resource: OS::Nova::Server - Parameters > Property: flavor
-----------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Added
Resource: OS::Nova::Server - Parameters > Property: image
----------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Added
Resource: OS::Nova::Server Metadata Parameters > environment_context
---------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Resource: OS::Nova::Server Metadata Parameters > vf_module_id
--------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Resource: OS::Nova::Server Metadata Parameters > vf_module_index
-----------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Resource: OS::Nova::Server Metadata Parameters > vf_module_name
----------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Resource: OS::Nova::Server Metadata Parameters > vm_role
---------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Resource: OS::Nova::Server Metadata Parameters > vnf_id
--------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Resource: OS::Nova::Server Metadata Parameters > vnf_name
----------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Resource: OS::Nova::Server Metadata Parameters > workload_context
------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
VNF On-boarding and package management > Resource Description
--------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Added
VNF On-boarding and package management > Testing
-------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
VNF Resiliency > Virtual Function - Container Recovery Requirements
--------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Added
VNF Security > VNF API Security Requirements
---------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
VNF Security > VNF Cryptography Requirements
---------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
VNF Security > VNF Data Protection Requirements
------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
VNF Security > VNF General Security Requirements
-------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Added
VNF Security > VNF Identity and Access Management Requirements
---------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Added
VNF Security > VNF Security Analytics Requirements
---------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Added
{network-role}
---------------
+^^^^^^^^^^^^^^
Requirements Changed
{vm-type}
----------
+^^^^^^^^^
Requirements Changed
Requirement Changes Introduced in Dublin
-========================================================
+----------------------------------------
This document summarizes the requirement changes by section that were
introduced between the Casablanca release and
:depth: 2
Summary of Changes
-------------------
+^^^^^^^^^^^^^^^^^^
* **Requirements Added:** 64
* **Requirements Changed:** 275
Configuration Management > Ansible Standards and Capabilities > VNF or PNF Configuration via Ansible Requirements > Ansible Client Requirements
------------------------------------------------------------------------------------------------------------------------------------------------
-
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
~~~~~~~~~~~~~~~~~~~~
Configuration Management > Ansible Standards and Capabilities > VNF or PNF Configuration via Ansible Requirements > Ansible Playbook Requirements
--------------------------------------------------------------------------------------------------------------------------------------------------
-
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
~~~~~~~~~~~~~~~~~~~~
Configuration Management > Chef Standards and Capabilities > VNF or PNF Configuration via Chef Requirements > Chef Client Requirements
---------------------------------------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Configuration Management > Chef Standards and Capabilities > VNF or PNF Configuration via Chef Requirements > Chef Roles/Requirements
--------------------------------------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Configuration Management > Controller Interactions With VNF or PNF > Configuration Commands
--------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Configuration Management > Controller Interactions With VNF or PNF > HealthCheck and Failure Related Commands
--------------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Configuration Management > Controller Interactions With VNF or PNF > Lifecycle Management Related Commands
-----------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Configuration Management > NETCONF Standards and Capabilities > VNF or PNF Configuration via NETCONF Requirements > Configuration Management
---------------------------------------------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Configuration Management > NETCONF Standards and Capabilities > VNF or PNF Configuration via NETCONF Requirements > NETCONF Server Requirements
------------------------------------------------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Added
Configuration Management > NETCONF Standards and Capabilities > xNF Configuration via NETCONF Requirements > NETCONF Server Requirements
-----------------------------------------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Removed
Configuration Management > VNF or PNF REST APIs > REST APIs
------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Contrail Resource Parameters > OS::ContrailV2::VirtualMachineInterface Property virtual_machine_interface_allowed_address_pairs > External Networks
----------------------------------------------------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Added
Contrail Resource Parameters > OS::ContrailV2::VirtualMachineInterface Property virtual_machine_interface_allowed_address_pairs > Internal Networks
----------------------------------------------------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Added
Contrail Resource Parameters > Resource OS::ContrailV2::InstanceIp > Resource OS::ContrailV2::InstanceIp Property instance_ip_address
--------------------------------------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Added
Contrail Resource Parameters > Resource OS::ContrailV2::InstanceIp > Resource OS::ContrailV2::InstanceIp Property subnet_uuid
------------------------------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Added
Monitoring & Management > Data Structure Specification of the Event Record
---------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Monitoring & Management > Event Records - Data Structure Description > Common Event Header
-------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Monitoring & Management > Monitoring & Management Requirements > Addressing and Delivery Protocol
--------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Monitoring & Management > Monitoring & Management Requirements > Asynchronous and Synchronous Data Delivery
------------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Monitoring & Management > Monitoring & Management Requirements > Bulk Performance Measurement
----------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Added
Monitoring & Management > Monitoring & Management Requirements > Google Protocol Buffers (GPB)
-----------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Monitoring & Management > Monitoring & Management Requirements > JSON
----------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Monitoring & Management > Monitoring & Management Requirements > Reporting Frequency
-------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Monitoring & Management > Monitoring & Management Requirements > Security
--------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Monitoring & Management > Monitoring & Management Requirements > VNF telemetry via standardized interface
----------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Monitoring & Management > Transports and Protocols Supporting Resource Interfaces
----------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Monitoring & Management > Transports and Protocols Supporting Resource Interfaces > Bulk Telemetry Transmission
----------------------------------------------------------------------------------------------------------------
+
Requirements Changed
Monitoring & Management > Transports and Protocols Supporting Resource Interfaces > VNF or PNF Telemetry using Google Protocol Buffers
---------------------------------------------------------------------------------------------------------------------------------------
+
Requirements Changed
Monitoring & Management > Transports and Protocols Supporting Resource Interfaces > VNF or PNF Telemetry using VES/JSON Model
------------------------------------------------------------------------------------------------------------------------------
+
Requirements Changed
ONAP Heat Heat Template Constructs > Heat Files Support (get_file)
-------------------------------------------------------------------
+
Requirements Removed
ONAP Heat Heat Template Constructs > Key Pairs
-----------------------------------------------
+
Requirements Added
ONAP Heat Heat Template Constructs > Nested Heat Templates > Nested Heat Template Requirements
-----------------------------------------------------------------------------------------------
+
Requirements Added
ONAP Heat Networking > External Networks
-----------------------------------------
+
Requirements Removed
ONAP Heat Networking > Internal Networks
-----------------------------------------
+
Requirements Changed
ONAP Heat Orchestration Template Format > Heat Orchestration Template Structure > parameters > constraints
-----------------------------------------------------------------------------------------------------------
+
Requirements Changed
ONAP Heat Orchestration Template Format > Heat Orchestration Template Structure > resources > properties
---------------------------------------------------------------------------------------------------------
+
Requirements Changed
ONAP Heat Orchestration Templates Overview > ONAP Heat Orchestration Template Filenames > Base Modules
-------------------------------------------------------------------------------------------------------
+
Requirements Changed
ONAP Heat Orchestration Templates Overview > ONAP Heat Orchestration Template Filenames > Cinder Volume Modules
----------------------------------------------------------------------------------------------------------------
+
Requirements Added
ONAP Heat Orchestration Templates Overview > ONAP Heat Orchestration Template Filenames > Incremental Modules
--------------------------------------------------------------------------------------------------------------
+
Requirements Changed
ONAP Heat Orchestration Templates Overview > ONAP Heat Orchestration Template Filenames > Nested Heat file
-----------------------------------------------------------------------------------------------------------
+
Requirements Changed
ONAP Heat Orchestration Templates Overview > ONAP VNF Modularity Overview
--------------------------------------------------------------------------
+
Requirements Changed
ONAP Heat Orchestration Templates Overview > ONAP VNF On-Boarding
------------------------------------------------------------------
+
Requirements Added
ONAP Heat Orchestration Templates Overview > Output Parameters > ONAP Base Module Output Parameters
----------------------------------------------------------------------------------------------------
+
Requirements Changed
ONAP Heat Orchestration Templates Overview > Output Parameters > ONAP Volume Module Output Parameters
------------------------------------------------------------------------------------------------------
+
Requirements Changed
ONAP Heat Support of Environment Files
---------------------------------------
+
Requirements Added
ONAP Heat VNF Modularity
-------------------------
+
Requirements Changed
ONAP TOSCA VNFD Requirements > VNF CSAR Package > VNF Package Contents
-----------------------------------------------------------------------
+
Requirements Removed
ONAP TOSCA VNFD or PNFD Requirements > TOSCA PNF Descriptor > Capability Types
-------------------------------------------------------------------------------
+
Requirements Added
ONAP TOSCA VNFD or PNFD Requirements > TOSCA PNF Descriptor > Data Types
-------------------------------------------------------------------------
+
Requirements Added
ONAP TOSCA VNFD or PNFD Requirements > TOSCA PNF Descriptor > General
----------------------------------------------------------------------
+
Requirements Added
ONAP TOSCA VNFD or PNFD Requirements > TOSCA PNF Descriptor > Node Types
-------------------------------------------------------------------------
+
Requirements Added
ONAP TOSCA VNFD or PNFD Requirements > TOSCA PNF Descriptor > Policy Types
---------------------------------------------------------------------------
+
Requirements Added
ONAP TOSCA VNFD or PNFD Requirements > TOSCA PNF Descriptor > Relationship Types
---------------------------------------------------------------------------------
+
Requirements Added
ONAP TOSCA VNFD or PNFD Requirements > TOSCA VNF Descriptor > General
----------------------------------------------------------------------
+
Requirements Changed
ONAP TOSCA VNFD or PNFD Requirements > VNF or PNF CSAR Package > VNF Package Contents
--------------------------------------------------------------------------------------
+
Requirements Added
ONAP TOSCA VNFD or PNFD Requirements > VNF or PNF CSAR Package > VNF Package Structure and Format
--------------------------------------------------------------------------------------------------
+
Requirements Added
ONAP TOSCA VNFD or PNFD Requirements > VNF or PNF CSAR Package > VNF or PNF Package Authenticity and Integrity
---------------------------------------------------------------------------------------------------------------
+
Requirements Added
PNF Plug and Play > PNF Plug and Play
--------------------------------------
+
Requirements Changed
Resource IDs
-------------
+
Requirements Changed
Resource IDs > Contrail Heat Resources Resource ID Naming Convention > OS::ContrailV2::InstanceIp
--------------------------------------------------------------------------------------------------
+
Requirements Changed
Resource IDs > Contrail Heat Resources Resource ID Naming Convention > OS::ContrailV2::ServiceTemplate
-------------------------------------------------------------------------------------------------------
+
Requirements Changed
Resource IDs > Contrail Heat Resources Resource ID Naming Convention > OS::ContrailV2::VirtualMachineInterface
---------------------------------------------------------------------------------------------------------------
+
Requirements Changed
Resource IDs > Contrail Heat Resources Resource ID Naming Convention > OS::ContrailV2::VirtualNetwork
------------------------------------------------------------------------------------------------------
+
Requirements Changed
Resource IDs > OpenStack Heat Resources Resource ID Naming Convention > OS::Cinder::Volume
-------------------------------------------------------------------------------------------
+
Requirements Changed
Resource IDs > OpenStack Heat Resources Resource ID Naming Convention > OS::Cinder::VolumeAttachment
-----------------------------------------------------------------------------------------------------
+
Requirements Changed
Resource IDs > OpenStack Heat Resources Resource ID Naming Convention > OS::Heat::ResourceGroup
------------------------------------------------------------------------------------------------
+
Requirements Removed
Resource IDs > OpenStack Heat Resources Resource ID Naming Convention > OS::Neutron::Port
------------------------------------------------------------------------------------------
+
Requirements Changed
Resource IDs > OpenStack Heat Resources Resource ID Naming Convention > OS::Neutron::Subnet
--------------------------------------------------------------------------------------------
+
Requirements Changed
Resource IDs > OpenStack Heat Resources Resource ID Naming Convention > OS::Nova::Keypair
------------------------------------------------------------------------------------------
+
Requirements Changed
Resource IDs > OpenStack Heat Resources Resource ID Naming Convention > OS::Nova::Server
-----------------------------------------------------------------------------------------
+
Requirements Changed
Resource Property “name”
-------------------------
+
Requirements Changed
Resource: OS::Neutron::Port - Parameters > Introduction > Items to Note
------------------------------------------------------------------------
+
Requirements Added
Resource: OS::Neutron::Port - Parameters > Property: allowed_address_pairs, Map Property: ip_address
-----------------------------------------------------------------------------------------------------
+
Requirements Removed
Resource: OS::Neutron::Port - Parameters > Property: allowed_address_pairs, Map Property: ip_address > VIP Assignment, External Networks
-----------------------------------------------------------------------------------------------------------------------------------------
+
Requirements Added
Resource: OS::Neutron::Port - Parameters > Property: allowed_address_pairs, Map Property: ip_address > VIP Assignment, External Networks, Supported by Automation
------------------------------------------------------------------------------------------------------------------------------------------------------------------
+
Requirements Removed
Resource: OS::Neutron::Port - Parameters > Property: allowed_address_pairs, Map Property: ip_address > VIP Assignment, Internal Networks
-----------------------------------------------------------------------------------------------------------------------------------------
+
Requirements Added
Resource: OS::Neutron::Port - Parameters > Property: fixed_ips, Map Property: ip_address
-----------------------------------------------------------------------------------------
+
Requirements Changed
Resource: OS::Neutron::Port - Parameters > Property: network
-------------------------------------------------------------
+
Requirements Changed
Resource: OS::Nova::Server - Parameters
----------------------------------------
+
Requirements Changed
Resource: OS::Nova::Server - Parameters > Property: Name
---------------------------------------------------------
+
Requirements Changed
Resource: OS::Nova::Server - Parameters > Property: availability_zone
----------------------------------------------------------------------
+
Requirements Changed
Resource: OS::Nova::Server Metadata Parameters > environment_context
---------------------------------------------------------------------
+
Requirements Removed
Resource: OS::Nova::Server Metadata Parameters > vf_module_id
--------------------------------------------------------------
+
Requirements Removed
Resource: OS::Nova::Server Metadata Parameters > vf_module_index
-----------------------------------------------------------------
+
Requirements Added
Resource: OS::Nova::Server Metadata Parameters > vf_module_name
----------------------------------------------------------------
+
Requirements Added
Resource: OS::Nova::Server Metadata Parameters > vm_role
---------------------------------------------------------
+
Requirements Changed
Resource: OS::Nova::Server Metadata Parameters > vnf_id
--------------------------------------------------------
+
Requirements Removed
Resource: OS::Nova::Server Metadata Parameters > vnf_name
----------------------------------------------------------
+
Requirements Removed
Resource: OS::Nova::Server Metadata Parameters > workload_context
------------------------------------------------------------------
+
Requirements Removed
VNF On-boarding and package management > Compute, Network, and Storage Requirements
------------------------------------------------------------------------------------
+
Requirements Changed
VNF On-boarding and package management > Licensing Requirements
----------------------------------------------------------------
+
Requirements Changed
VNF On-boarding and package management > Resource Configuration
----------------------------------------------------------------
+
Requirements Changed
VNF On-boarding and package management > Resource Configuration > Configuration Management via Ansible
-------------------------------------------------------------------------------------------------------
+
Requirements Changed
VNF On-boarding and package management > Resource Configuration > Configuration Management via Chef
----------------------------------------------------------------------------------------------------
+
Requirements Changed
VNF On-boarding and package management > Resource Configuration > Configuration Management via NETCONF/YANG
------------------------------------------------------------------------------------------------------------
+
Requirements Changed
VNF On-boarding and package management > Resource Control Loop
---------------------------------------------------------------
+
Requirements Changed
VNF On-boarding and package management > Resource Description
--------------------------------------------------------------
+
Requirements Added
VNF On-boarding and package management > Testing
-------------------------------------------------
+
Requirements Changed
VNF Resiliency > Monitoring & Dashboard
----------------------------------------
+
Requirements Changed
{network-role}
---------------
+
Requirements Changed
{vm-type}
----------
+
Requirements Changed
Requirement Changes Introduced in El Alto
-========================================================
+-----------------------------------------
This document summarizes the requirement changes by section that were
introduced between the Dublin release and
:depth: 2
Summary of Changes
-------------------
+^^^^^^^^^^^^^^^^^^
* **Requirements Added:** 9
* **Requirements Changed:** 21
Monitoring & Management > Data Structure Specification of the Event Record
---------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Monitoring & Management > Monitoring & Management Requirements > Security
--------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Added
ONAP Heat Orchestration Template Format > Heat Orchestration Template Structure > resources > properties
---------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
ONAP Heat Orchestration Templates Overview > ONAP Heat Orchestration Template Filenames > Base Modules
-------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
ONAP Heat Orchestration Templates Overview > ONAP Heat Orchestration Template Filenames > Cinder Volume Modules
----------------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
ONAP Heat Orchestration Templates Overview > ONAP Heat Orchestration Template Filenames > Incremental Modules
--------------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
ONAP Heat Orchestration Templates Overview > ONAP Heat Orchestration Template Filenames > Nested Heat file
-----------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
ONAP Heat VNF Modularity
-------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Added
PNF Plug and Play > PNF Plug and Play
--------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Resource: OS::Nova::Server - Parameters
----------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Resource: OS::Nova::Server - Parameters > Property: availability_zone
----------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Added
VNF On-boarding and package management > Resource Control Loop
---------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
VNF On-boarding and package management > Resource Description
--------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
VNF Security > VNF Cryptography Requirements
---------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
VNF Security > VNF General Security Requirements
-------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
VNF Security > VNF Identity and Access Management Requirements
---------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Removed
VNF Security > VNF Security Analytics Requirements
---------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Removed
VNF or PNF CSAR Package > VNF Package Contents
-----------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
VNF or PNF CSAR Package > VNF or PNF Package Authenticity and Integrity
------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Requirement Changes Introduced in Frankfurt
-========================================================
+-------------------------------------------
This document summarizes the requirement changes by section that were
introduced between the El Alto release and
:depth: 2
Summary of Changes
-------------------
+^^^^^^^^^^^^^^^^^^
* **Requirements Added:** 22
* **Requirements Changed:** 129
Configuration Management
-------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Added
Configuration Management > Ansible Standards and Capabilities > VNF or PNF Configuration via Ansible Requirements > Ansible Client Requirements
------------------------------------------------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Configuration Management > Ansible Standards and Capabilities > VNF or PNF Configuration via Ansible Requirements > Ansible Playbook Requirements
--------------------------------------------------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Added
Configuration Management > NETCONF Standards and Capabilities > VNF or PNF Configuration via NETCONF Requirements > LCM Operations via NETCONF
-----------------------------------------------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Added
Configuration Management > NETCONF Standards and Capabilities > VNF or PNF Configuration via NETCONF Requirements > NETCONF Server Requirements
------------------------------------------------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Contrail Resource Parameters > Contrail Network Parameters > ONAP External Networks
------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Contrail Resource Parameters > OS::ContrailV2::VirtualMachineInterface Property virtual_machine_interface_allowed_address_pairs > ONAP External Networks
---------------------------------------------------------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Contrail Resource Parameters > OS::ContrailV2::VirtualMachineInterface Property virtual_machine_interface_allowed_address_pairs > ONAP Internal Networks
---------------------------------------------------------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Contrail Resource Parameters > Resource OS::ContrailV2::InstanceIp > Resource OS::ContrailV2::InstanceIp Property instance_ip_address
--------------------------------------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Contrail Resource Parameters > Resource OS::ContrailV2::InstanceIp > Resource OS::ContrailV2::InstanceIp Property subnet_uuid
------------------------------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Monitoring & Management > Data Structure Specification of the Event Record
---------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
ONAP Heat Heat Template Constructs > Nested Heat Templates > Nested Heat Template Requirements
-----------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
ONAP Heat Networking > External Networks
-----------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
ONAP Heat Networking > Internal Networks
-----------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
ONAP Heat Orchestration Template Format > Heat Orchestration Template Structure > parameters
---------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Added
ONAP Heat Orchestration Template Format > Heat Orchestration Template Structure > resources
--------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Added
Resource IDs
-------------
+^^^^^^^^^^^^
Requirements Changed
Resource IDs > Contrail Heat Resources Resource ID Naming Convention > OS::ContrailV2::InstanceIp
--------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Resource IDs > Contrail Heat Resources Resource ID Naming Convention > OS::ContrailV2::NetworkIpam
---------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Resource IDs > Contrail Heat Resources Resource ID Naming Convention > OS::ContrailV2::VirtualMachineInterface
---------------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Resource IDs > Contrail Heat Resources Resource ID Naming Convention > OS::ContrailV2::VirtualNetwork
------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Resource IDs > OpenStack Heat Resources Resource ID Naming Convention > OS::Neutron::Net
-----------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Resource IDs > OpenStack Heat Resources Resource ID Naming Convention > OS::Neutron::Port
------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Resource IDs > OpenStack Heat Resources Resource ID Naming Convention > OS::Neutron::SecurityGroup
---------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Resource IDs > OpenStack Heat Resources Resource ID Naming Convention > OS::Neutron::Subnet
--------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Resource IDs > OpenStack Heat Resources Resource ID Naming Convention > OS::Nova::Keypair
------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Resource: OS::Neutron::Port - Parameters > Introduction > Items to Note
------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Resource: OS::Neutron::Port - Parameters > Property: allowed_address_pairs, Map Property: ip_address > VIP Assignment, ONAP External Networks
----------------------------------------------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Resource: OS::Neutron::Port - Parameters > Property: allowed_address_pairs, Map Property: ip_address > VIP Assignment, ONAP Internal Networks
----------------------------------------------------------------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Resource: OS::Neutron::Port - Parameters > Property: fixed_ips, Map Property: ip_address
-----------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Resource: OS::Neutron::Port - Parameters > Property: fixed_ips, Map Property: subnet
-------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Resource: OS::Neutron::Port - Parameters > Property: network
-------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
Resource: OS::Nova::Server Metadata Parameters > vf_module_index
-----------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Added
VNF Security > VNF General Security Requirements
-------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Added
VNF Security > VNF Identity and Access Management Requirements
---------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Added
VNF and PNF On-boarding and package management > Resource Configuration
------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
VNF or PNF CSAR Package > VNF or PNF Package Contents
------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Added
VNF or PNF CSAR Package > VNF or PNF Package Structure and Format
------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requirements Changed
{network-role}
---------------
+^^^^^^^^^^^^^^
Requirements Changed
"updated": directives.unchanged,
"impacts": directives.unchanged,
"validation_mode": directives.unchanged,
- "validated_by": directives.unchanged,
- "test": directives.unchanged,
- "test_case": directives.unchanged,
- "test_file": directives.unchanged,
- "notes": directives.unchanged,
}
needs_id_regex = "^[A-Z0-9]+-[A-Z0-9]+"
+++ /dev/null
-# -*- coding: utf8 -*-
-# org.onap.vnfrqts/requirements
-# ============LICENSE_START====================================================
-# Copyright © 2018 AT&T Intellectual Property. All rights reserved.
-#
-# Unless otherwise specified, all software contained herein is licensed
-# under the Apache License, Version 2.0 (the "License");
-# you may not use this software except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-# Unless otherwise specified, all documentation contained herein is licensed
-# under the Creative Commons License, Attribution 4.0 Intl. (the "License");
-# you may not use this documentation except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# https://creativecommons.org/licenses/by/4.0/
-#
-# Unless required by applicable law or agreed to in writing, documentation
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-# ============LICENSE_END============================================
-
-"""
-This script will consume the `invalid_metadata.csv` file produced by
-`gen_requirement_changes.py`, then add/update any `:introduced:` or `:updated:`
-attributes that may be missing from req directives.
-"""
-import csv
-import os
-import re
-from collections import OrderedDict
-
-import pytest
-
-INPUT_FILE = "invalid_metadata.csv"
-
-
-def load_invalid_reqs(fileobj):
- """Load the invalid requirements from the input file into a dict"""
- reader = csv.reader(fileobj)
- next(reader) # skip header
- return {row[0]: (row[1].strip(), row[2].strip()) for row in reader}
-
-
-def check(predicate, msg):
- """Raises a RuntimeError with the given msg if the predicate is false"""
- if not predicate:
- raise RuntimeError(msg)
-
-
-class MetadataFixer:
- """Takes a dict of requirement ID to expected metadata value. The
- NeedsVisitor will pass the requirement attributes as a a dict
- to `__call__`. If the requirement is one that needs to be fixed, then
- it will add or update the attributes as needed and return it to the
- visitor, otherwise it will return the attributes unchanged."""
-
- def __init__(self, reqs_to_fix):
- """Initialize the fixer with a dict of requirement ID to tuple of
- (attr name, attr value)."""
- self.reqs_to_fix = reqs_to_fix
-
- def __call__(self, metadata):
- """If metadata is for a requirement that needs to be fixed, then
- adds or updates the attribute as needed and returns it, otherwise
- it returns metadata unchanged."""
- r_id = metadata[":id:"]
- if r_id in self.reqs_to_fix:
- attr, value = self.reqs_to_fix[r_id]
- metadata[attr] = value
- return metadata
-
-
-class NeedsVisitor:
- """Walks a directory for reStructuredText files and detects needs
- directives as defined by sphinxcontrib-needs. When a directive is
- found, then attributes are passed to a callback for processing if the
- callback returns a dict of attributes, then the revised dict is used
- instead of the attributes that were passed"""
-
- def __init__(self, func):
- self.directives = re.compile("\.\.\s+req::.*")
- self.func = func
-
- def process(self, root_dir):
- """Walks the `root_dir` looking for rst to files to parse"""
- for dir_path, sub_dirs, filenames in os.walk(root_dir):
- for filename in filenames:
- if filename.lower().endswith(".rst"):
- self.handle_rst_file(os.path.join(dir_path, filename))
-
- @staticmethod
- def read(path):
- """Read file at `path` and return lines as list"""
- with open(path, "r") as f:
- print("path=", path)
- return list(f)
-
- @staticmethod
- def write(path, content):
- """Write a content to the given path"""
- with open(path, "w") as f:
- for line in content:
- f.write(line)
-
- def handle_rst_file(self, path):
- lines = (line for line in self.read(path))
- new_contents = []
- for line in lines:
- if self.is_needs_directive(line):
- metadata_lines = self.handle_need(lines)
- new_contents.append(line)
- new_contents.extend(metadata_lines)
- else:
- new_contents.append(line)
- self.write(path, new_contents)
-
- def is_needs_directive(self, line):
- """Returns True if the line denotes the start of a needs directive"""
- return bool(self.directives.match(line))
-
- def handle_need(self, lines):
- """Called when a needs directive is encountered. The lines
- will be positioned on the line after the directive. The attributes
- will be read, and then passed to the visitor for processing"""
- attributes = OrderedDict()
- indent = 4
- for line in lines:
- if line.strip().startswith(":"):
- indent = self.calc_indent(line)
- attr, value = self.parse_attribute(line)
- attributes[attr] = value
- else:
- if attributes:
- new_attributes = self.func(attributes)
- attr_lines = self.format_attributes(new_attributes, indent)
- return attr_lines + [line]
- else:
- return [line]
-
- @staticmethod
- def format_attributes(attrs, indent):
- """Converts a dict back to properly indented lines"""
- spaces = " " * indent
- return ["{}{} {}\n".format(spaces, k, v) for k, v in attrs.items()]
-
- @staticmethod
- def parse_attribute(line):
- return re.split("\s+", line.strip(), maxsplit=1)
-
- @staticmethod
- def calc_indent(line):
- return len(line) - len(line.lstrip())
-
-
-if __name__ == '__main__':
- with open(INPUT_FILE, "r") as f:
- invalid_reqs = load_invalid_reqs(f)
- metadata_fixer = MetadataFixer(invalid_reqs)
- visitor = NeedsVisitor(metadata_fixer)
- visitor.process("docs")
-
-
-# Tests
-@pytest.fixture
-def metadata_fixer():
- fixes = {
- "R-1234": (":introduced:", "casablanca"),
- "R-5678": (":updated:", "casablanca"),
- }
- return MetadataFixer(fixes)
-
-
-def test_check_raises_when_false():
- with pytest.raises(RuntimeError):
- check(False, "error")
-
-
-def test_check_does_not_raise_when_true():
- check(True, "error")
-
-
-def test_load_invalid_req():
- contents = [
- "reqt_id, attribute, value",
- "R-1234,:introduced:, casablanca",
- "R-5678,:updated:, casablanca",
- ]
- result = load_invalid_reqs(contents)
- assert len(result) == 2
- assert result["R-1234"][0] == ":introduced:"
- assert result["R-1234"][1] == "casablanca"
-
-
-def test_metadata_fixer_adds_when_missing(metadata_fixer):
- attributes = {":id:": "R-5678", ":introduced:": "beijing"}
- result = metadata_fixer(attributes)
- assert ":updated:" in result
- assert result[":updated:"] == "casablanca"
-
-
-def test_metadata_fixer_updates_when_incorrect(metadata_fixer):
- attributes = {":id:": "R-5678", ":updated:": "beijing"}
- result = metadata_fixer(attributes)
- assert ":updated:" in result
- assert result[":updated:"] == "casablanca"
- assert ":introduced:" not in result
-
-
-def test_needs_visitor_process(monkeypatch):
- v = NeedsVisitor(lambda x: x)
- paths = []
-
- def mock_handle_rst(path):
- paths.append(path)
-
- monkeypatch.setattr(v, "handle_rst_file", mock_handle_rst)
- v.process("docs")
-
- assert len(paths) > 1
- assert all(path.endswith(".rst") for path in paths)
-
-
-def test_needs_visitor_is_needs_directive():
- v = NeedsVisitor(lambda x: x)
- assert v.is_needs_directive(".. req::")
- assert not v.is_needs_directive("test")
- assert not v.is_needs_directive(".. code::")
-
-
-def test_needs_visitor_format_attributes():
- v = NeedsVisitor(lambda x: x)
- attr = OrderedDict()
- attr[":id:"] = "R-12345"
- attr[":updated:"] = "casablanca"
- lines = v.format_attributes(attr, 4)
- assert len(lines) == 2
- assert lines[0] == " :id: R-12345"
- assert lines[1] == " :updated: casablanca"
-
-
-def test_needs_visitor_parse_attributes():
- v = NeedsVisitor(lambda x: x)
- assert v.parse_attribute(" :id: R-12345") == [":id:", "R-12345"]
- assert v.parse_attribute(" :key: one two") == [":key:", "one two"]
-
-
-def test_needs_visitor_calc_indent():
- v = NeedsVisitor(lambda x: x)
- assert v.calc_indent(" test") == 4
- assert v.calc_indent(" test") == 3
- assert v.calc_indent("test") == 0
-
-
-def test_needs_visitor_no_change(monkeypatch):
- v = NeedsVisitor(lambda x: x)
- lines = """.. req::
- :id: R-12345
- :updated: casablanca
-
- Here's my requirement"""
- monkeypatch.setattr(v, "read", lambda path: lines.split("\n"))
- result = []
- monkeypatch.setattr(v, "write", lambda _, content: result.extend(content))
-
- v.handle_rst_file("dummy_path")
- assert len(result) == 5
- assert "\n".join(result) == lines
-
-
-def test_needs_visitor_with_fix(monkeypatch):
- fixer = MetadataFixer({"R-12345": (":introduced:", "casablanca")})
- v = NeedsVisitor(fixer)
- lines = """.. req::
- :id: R-12345
-
- Here's my requirement"""
- monkeypatch.setattr(v, "read", lambda path: lines.split("\n"))
- result = []
- monkeypatch.setattr(v, "write", lambda _, content: result.extend(content))
-
- v.handle_rst_file("dummy_path")
- assert len(result) == 5
- assert ":introduced: casablanca" in "\n".join(result)
-
-
-def test_load_invalid_reqs():
- input_file = [
- "r_id,attr,value",
- "R-12345,:updated:,casablanca"
- ]
- result = load_invalid_reqs(input_file)
- assert "R-12345" in result
- assert result["R-12345"][0] == ":updated:"
- assert result["R-12345"][1] == "casablanca"
Requirement Changes Introduced in {{ current_version|title }}
-========================================================
+-------------------------------------------------------
This document summarizes the requirement changes by section that were
introduced between the {{ prior_version|title }} release and
:depth: 2
Summary of Changes
-------------------
+^^^^^^^^^^^^^^^^^^
* **Requirements Added:** {{ num_added }}
* **Requirements Changed:** {{ num_changed }}
commands =
sphinx-build -b html -n -d {envtmpdir}/doctrees ./docs/ {toxinidir}/docs/_build/html
echo "Generated docs available in {toxinidir}/_build/html"
+ python check.py
whitelist_externals =
echo
git
sh
+ python
[testenv:needs]
basepython = python3