==================================
Network Forwarding Path Management
==================================

.. warning::
    Network Forwarding Path Management commands are deprecated
    and will be removed in the first major release after the Tacker server
    version 9.0.0 (2023.1 Antelope release).

Network Forwarding Path (NFP) is composed of a Service Function Chain (SFC)
and a Flow Classifier (FC) in VNF Forwarding Graph (VNFFG).

This document describes how to manage NFP with CLI in Tacker.

Prerequisites
-------------

The following packages should be installed:

* tacker
* python-tackerclient

A default VIM should be registered according to :doc:`./cli-legacy-vim`.

The following VNFDs are created with the name ``VNFD1`` and ``VNFD2``
according to :doc:`./cli-legacy-vnfd`.

* `tosca-vnffg-vnfd1.yaml <https://opendev.org/openstack/tacker/src/branch/master/samples/tosca-templates/vnffgd/tosca-vnffg-vnfd1.yaml>`_
* `tosca-vnffg-vnfd2.yaml <https://opendev.org/openstack/tacker/src/branch/master/samples/tosca-templates/vnffgd/tosca-vnffg-vnfd2.yaml>`_

.. code-block:: console

  $ openstack vnf descriptor create --vnfd-file tosca-vnffg-vnfd1.yaml VNFD1
  $ openstack vnf descriptor create --vnfd-file tosca-vnffg-vnfd2.yaml VNFD2


The VNFs from the created VNFDs are deployed with the name ``VNF1`` and
``VNF2`` according to :doc:`./cli-legacy-vnf`.

.. code-block:: console

  $ openstack vnf create --vnfd-name VNFD1 VNF1
  $ openstack vnf create --vnfd-name VNFD2 VNF2


A VNFFG should be deployed according to :doc:`./cli-legacy-vnffg`. Before
deploying the VNFFG, a VNFFGD may need to be created according to
:doc:`./cli-legacy-vnffgd`.

CLI reference for NFP Management
--------------------------------

1. List Network Forwarding Path
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.. code-block:: console

  $ openstack vnf network forwarding path list


Result:

.. code-block:: console

  +--------------------------------------+------------------+--------+--------------------------------------+---------+
  | ID                                   | Name             | Status | VNFFG ID                             | Path ID |
  +--------------------------------------+------------------+--------+--------------------------------------+---------+
  | ed450e71-345d-4dc8-8f32-69e3a697ad56 | Forwarding_path1 | ACTIVE | 3b1be255-4b3b-4ff2-b985-19f043f3f40c | 51      |
  +--------------------------------------+------------------+--------+--------------------------------------+---------+


Help:

.. code-block:: console

  $ openstack vnf network forwarding path list --help
  usage: openstack vnf network forwarding path list [-h]
                                                    [-f {csv,json,table,value,yaml}]
                                                    [-c COLUMN]
                                                    [--quote {all,minimal,none,nonnumeric}]
                                                    [--noindent]
                                                    [--max-width <integer>]
                                                    [--fit-width]
                                                    [--print-empty]
                                                    [--sort-column SORT_COLUMN]
                                                    [--vnffg-id VNFFG_ID]

  List NFP(s) that belong to a given tenant.

  optional arguments:
    -h, --help            show this help message and exit
    --vnffg-id VNFFG_ID   List NFP(s) with specific VNFFG ID


2. Show Network Forwarding Path
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.. code-block:: console

  $ openstack vnf network forwarding path show <NFP>


Result:

.. code-block:: console

  +-------------+--------------------------------------+
  | Field       | Value                                |
  +-------------+--------------------------------------+
  | chain_id    | 89f99c03-a152-413b-bb39-c7618a54b23a |
  | id          | ed450e71-345d-4dc8-8f32-69e3a697ad56 |
  | name        | Forwarding_path1                     |
  | path_id     | 51                                   |
  | project_id  | e77397d2a02c4af1b7d79cef2a406396     |
  | status      | ACTIVE                               |
  | symmetrical | False                                |
  | vnffg_id    | 3b1be255-4b3b-4ff2-b985-19f043f3f40c |
  +-------------+--------------------------------------+


Help:

.. code-block:: console

  $ openstack vnf network forwarding path show --help
  usage: openstack vnf network forwarding path show [-h]
                                                    [-f {json,shell,table,value,yaml}]
                                                    [-c COLUMN] [--noindent]
                                                    [--prefix PREFIX]
                                                    [--max-width <integer>]
                                                    [--fit-width]
                                                    [--print-empty]
                                                    <NFP>

  Display NFP details

  positional arguments:
    <NFP>                 NFP to display (name or ID)

  optional arguments:
    -h, --help            show this help message and exit
