Update VNFFGD Descriptor Template Guide criteria syntax sample
Change-Id: Icbe9414612ad0efea8ae2ee17e0f403558e7d54b
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user