:EP: 14
:Title: Pathfinder NApp Improvements
:Status: Finished

************************************
EP014 - Pathfinder NApp Improvements
************************************

Summary
=======

Authors
-------
Jeronimo Bezerra (Amlight), Vinicius Arcanjo (RNP), Antonio Francisco (ANSP),
Rogerio Motitsuki (ANSP), Beraldo Leal, (Kytos), Renan Rodrigo (Kytos)

Priority
--------
high

Tags
----
topology, paths, sdn

Milestone Target
----------------
2018.1 (dalva)

Implementation
--------------
finished

Assignees
---------
Renan Rodrigo

Approvers (PTL)
---------------
Beraldo Leal

Version
-------
0.0.1

Specifications
--------------

Description
===========

When creating a circuit or defining its path one might want to specify which
links must be present or absent in the result. The Pathfinder NApp can find a
valid path between two nodes in the topology, accepting simple weights.
However, it needs to be able to filter the results based on desired or
undesired links.

Implementation details:
-----------------------
The NApp needs a new step just after the paths are computed to filter the
results before defining the best path based on the chosen metric.

The first part of the filter should receive the list of computed
paths and a list of desired links, and return a list with the available paths
that contain all of the desired links.

The second part of the filter should receive the list generated by the first
one and a list of undesired links, and return a list with the available paths
that not contain any of the undesired links.

Both parts may be implemented as a single method for simplicity and cleanness
of the code.

Both lists contain link 'names' or 'id's, as they are defined in the
Topology NApp.
