Update VNFFGD Descriptor Template Guide criteria syntax sample

Change-Id: Icbe9414612ad0efea8ae2ee17e0f403558e7d54b
This commit is contained in:
Trinh Nguyen
2018-02-23 17:01:49 +09:00
parent ffc9a84d73
commit 5e8a0e8464
@@ -4,8 +4,9 @@ Overview
--------
This document explains VNFFGD template structure and its various fields based
on TOSCA standards `V1.0 CSD 03 <http://docs.oasis-open.org/tosca/tosca-nfv/
v1.0/tosca-nfv-v1.0.html>`_.
on TOSCA standards V1.0 CSD 03 [#f1]_.
For VNFFG usage, please refer to the document available at [#f6]_.
The behavioural and deployment information of a VNFFG in Tacker is defined in a
template known as VNFFG Descriptor (VNFFGD). The template is based on TOSCA
@@ -13,7 +14,7 @@ standards and is written in YAML. It is on-boarded in a VNFFG catalog.
Each VNFFGD template will have below fields:
::
.. code-block:: yaml
tosca_definitions_version:
This defines the TOSCA definition version on which the template is based.
@@ -40,91 +41,127 @@ Each VNFFGD template will have below fields:
VNFFG:
Describes properties and members of a VNF Forwarding Graph.
For examples, please refer sample VNFD templates available at `GitHub <https:
//github.com/openstack/tacker/tree/master/samples/tosca-templates/vnffgd>`_.
..
For examples, please refer sample VNFD templates available at GitHub [#f2]_.
Node types
----------
For Tacker purposes a VNFFGD only includes **Forwarding Path**. In a full
For Tacker purposes a VNFFGD only includes **Forwarding Path**. In a full
Network Services Descriptor (NSD), it would include information about each
VNFD as well. However until that implementation, VNFD is described in a
separate template. Only a single Forwarding Path is currently supported.
VNFD as well. However until that implementation, VNFD is described in a
separate template. Only a single Forwarding Path is currently supported.
**node_templates** is a child of **topology_template**.
Forwarding Path
---------------
Forwarding Path is a required entry in a VNFFGD. It describes the chain as
Forwarding Path is a required entry in a VNFFGD. It describes the chain as
well as the classifier that will eventually be created to form a path
through a set of VNFs.
:type:
tosca.nodes.nfv.FP.Tacker
:properties:
Describes the properties of a FP. These include id (path ID), policy
Describes the properties of a FP. These include id (path ID), policy
(traffic match policy to flow through the path), and path (chain of
VNFs/Connection Points). A complete list of VNFFG properties currently
supported by Tacker are listed `here <https://github
.com/openstack/tacker/blob/master/tacker/
tosca/lib/tacker_nfv_defs.yaml>`_ under **properties** section of
**tosca.nodes.nfv.FP.Tacker** field.
supported by Tacker are listed here [#f3]_ under **properties** section of
**tosca.nodes.nfv.FP.TackerV2** field.
Specifying FP properties
^^^^^^^^^^^^^^^^^^^^^^^^
An example FP shown below:
::
.. code-block:: yaml
node_templates:
Forwarding_path1:
type: tosca.nodes.nfv.FP.Tacker
description: creates path (CP11->CP12->CP32)
type: tosca.nodes.nfv.FP.TackerV2
description: creates path (CP12->CP22)
properties:
id: 51
policy:
type: ACL
criteria:
- network_src_port_id: 640dfd77-c92b-45a3-b8fc-22712de480e1
- destination_port_range: 80-1024
- ip_proto: 6
- ip_dst_prefix: 192.168.1.2/24
path:
- forwarder: VNF1
capability: CP1
- forwarder: VNF2
capability: CP2
- name: block_tcp
classifier:
network_src_port_id: 640dfd77-c92b-45a3-b8fc-22712de480e1
destination_port_range: 80-1024
ip_proto: 6
ip_dst_prefix: 192.168.1.2/24
path:
- forwarder: VNFD1
capability: CP12
- forwarder: VNFD2
capability: CP22
..
Or, you can add more named classifiers like below since the current Tacker's
TOSCA template support multiple named classifiers
.. code-block:: yaml
node_templates:
Forwarding_path1:
type: tosca.nodes.nfv.FP.TackerV2
description: creates path (CP12->CP22)
properties:
id: 51
policy:
type: ACL
criteria:
- name: block_tcp
classifier:
network_src_port_id: 640dfd77-c92b-45a3-b8fc-22712de480e1
destination_port_range: 80-1024
ip_proto: 6
ip_dst_prefix: 192.168.1.2/24
- name: block_udp
classifier:
network_src_port_id: 640dfd77-c92b-45a3-b8fc-22712de480eda
destination_port_range: 80-1024
ip_proto: 17
ip_dst_prefix: 192.168.2.2/24
path:
- forwarder: VNFD1
capability: CP12
- forwarder: VNFD2
capability: CP22
..
id
""
ID from the above example is used to identify the path. This path ID will
ID from the above example is used to identify the path. This path ID will
be used in future implementations of Network Service Header (NSH) to
identify paths via the Service Path Identifier (SPI) attribute.
policy
""""""
Policy defines the type of match policy that will be used to distinguish
which traffic should enter this Forwarding Path. The only currently
which traffic should enter this Forwarding Path. The only currently
supported type is ACL (access-list).
Please reference `tosca.nfv.datatypes.aclType
<https://github.com/openstack/tacker/blob/master/tacker/tosca/lib/
tacker_nfv_defs.yaml>`_ under **properties** section for more information on
supported match criteria.
Please reference tosca.nfv.datatypes.aclType [#f4]_ under **properties**
section for more information on supported match criteria.
path
""""
Path defines an ordered list of nodes to traverse in a Forwarding Path. Each
Path defines an ordered list of nodes to traverse in a Forwarding Path. Each
node is really a logical port, which is defined in the path as a Connection
Point (CP) belonging to a specific VNFD. It is not necessary at VNFFGD
creation time to have predefined these VNFDs used in the path. They may be
created later. Up to 2 CPs may be listed (in order) per VNFD. If 2 are
Point (CP) belonging to a specific VNFD. It is not necessary at VNFFGD
creation time to have predefined these VNFDs used in the path. They may be
created later. Up to 2 CPs may be listed (in order) per VNFD. If 2 are
listed, the first will be considered the ingress port for traffic and the
second will be the egress. If only one port is provided, then it will be
second will be the egress. If only one port is provided, then it will be
interpreted as both the ingress and egress port for traffic.
Groups
------
In Tacker and TOSCA, the VNFFG itself is described in this section. There
In Tacker and TOSCA, the VNFFG itself is described in this section. There
may only be a single VNFFG described in each VNFFGD under this section.
VNFFG
@@ -135,21 +172,19 @@ section.
:type:
tosca.groups.nfv.VNFFG
:properties:
Describes the properties of a VNFFG. These include vendor, version,
Describes the properties of a VNFFG. These include vendor, version,
dependent_virtual_link, connection_points, constituent_vnfs.
. A complete list of VNFFG properties currently
supported by Tacker are listed in `TOSCA <http://docs.oasis-open
.org/tosca/tosca-nfv/v1.0/csd03/tosca-nfv-v1.0-csd03
.html#_Toc447714727>`_.
supported by Tacker are listed in TOSCA [#f5]_.
:members:
A list of Forwarding Paths which belong to this VNFFG. At the moment
A list of Forwarding Paths which belong to this VNFFG. At the moment
only one is supported.
Specifying VNFFG properties and members
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
An example VNFFG shown below:
::
.. code-block:: yaml
groups:
VNFFG1:
@@ -164,6 +199,8 @@ An example VNFFG shown below:
constituent_vnfs: [VNF1,VNF2]
members: [Forwarding_path1]
..
number_of_endpoints
"""""""""""""""""""
Number of CPs included in this VNFFG.
@@ -185,46 +222,59 @@ Path).
Summary
-------
To summarize VNFFGD is written in YAML and describes a VNFFG topology. It is
composed of a Forwarding Path and a VNFFG. A full VNFFGD is shown below:
composed of a Forwarding Path and a VNFFG. A full VNFFGD is shown below:
::
.. code-block:: yaml
tosca_definitions_version: tosca_simple_profile_for_nfv_1_0_0
tosca_definitions_version: tosca_simple_profile_for_nfv_1_0_0
description: Sample VNFFG template
description: Sample VNFFG template
topology_template:
description: Sample VNFFG template
topology_template:
description: Sample VNFFG template
node_templates:
node_templates:
Forwarding_path1:
type: tosca.nodes.nfv.FP.Tacker
description: creates path (CP12->CP22)
properties:
id: 51
policy:
type: ACL
criteria:
- network_src_port_id: 640dfd77-c92b-45a3-b8fc-22712de480e1
- destination_port_range: 80-1024
- ip_proto: 6
- ip_dst_prefix: 192.168.1.2/24
path:
- forwarder: VNFD1
capability: CP12
- forwarder: VNFD2
capability: CP22
Forwarding_path1:
type: tosca.nodes.nfv.FP.TackerV2
description: creates path (CP12->CP22)
properties:
id: 51
policy:
type: ACL
criteria:
- name: block_tcp
classifier:
network_src_port_id: 640dfd77-c92b-45a3-b8fc-22712de480e1
destination_port_range: 80-1024
ip_proto: 6
ip_dst_prefix: 192.168.1.2/24
path:
- forwarder: VNFD1
capability: CP12
- forwarder: VNFD2
capability: CP22
groups:
VNFFG1:
type: tosca.groups.nfv.VNFFG
description: HTTP to Corporate Net
properties:
vendor: tacker
version: 1.0
number_of_endpoints: 2
dependent_virtual_link: [VL12,VL22]
connection_point: [CP12,CP22]
constituent_vnfs: [VNFD1,VNFD2]
members: [Forwarding_path1]
groups:
VNFFG1:
type: tosca.groups.nfv.VNFFG
description: HTTP to Corporate Net
properties:
vendor: tacker
version: 1.0
number_of_endpoints: 2
dependent_virtual_link: [VL12,VL22]
connection_point: [CP12,CP22]
constituent_vnfs: [VNFD1,VNFD2]
members: [Forwarding_path1]
..
.. rubric:: Footnotes
.. [#f1] http://docs.oasis-open.org/tosca/tosca-nfv/v1.0/tosca-nfv-v1.0.html
.. [#f2] https://github.com/openstack/tacker/tree/master/samples/tosca-templates/vnffgd
.. [#f3] https://github.com/openstack/tacker/blob/master/tacker/tosca/lib/tacker_nfv_defs.yaml
.. [#f4] https://github.com/openstack/tacker/blob/master/tacker/tosca/lib/tacker_nfv_defs.yaml
.. [#f5] http://docs.oasis-open.org/tosca/tosca-nfv/v1.0/csd03/tosca-nfv-v1.0-csd03.html#_Toc447714727
.. [#f6] https://docs.openstack.org/tacker/latest/user/vnffg_usage_guide.html