mirror_frr/doc/developer
Sebastien Merle 4d7b695d3a pathd: New SR-TE policy management daemon
This new daemon manages Segment-Routing Traffic-Engineering
(SR-TE) Policies and installs them into zebra. It provides
the usual yang support and vtysh commands to define or change
SR-TE Policies.

In a nutshell SR-TE Policies provide the possibility to steer
traffic through a (possibly dynamic) list of Segment Routing
segments to the endpoint of the policy. This list of segments
is part of a Candidate Path which again belongs to the SR-TE
Policy. SR-TE Policies are uniquely identified by their color
and endpoint. The color can be used to e.g. match BGP
communities on incoming traffic.

There can be multiple Candidate Paths for a single
policy, the active Candidate Path is chosen according to
certain conditions of which the most important is its
preference. Candidate Paths can be explicit (fixed list of
segments) or dynamic (list of segment comes from e.g. PCEP, see
below).

Configuration example:

segment-routing
 traffic-eng
  segment-list SL
   index 10 mpls label 1111
   index 20 mpls label 2222
  !
  policy color 4 endpoint 10.10.10.4
   name POL4
   binding-sid 104
   candidate-path preference 100 name exp explicit segment-list SL
   candidate-path preference 200 name dyn dynamic
  !
 !
!

There is an important connection between dynamic Candidate
Paths and the overall topic of Path Computation. Later on for
pathd a dynamic module will be introduced that is capable
of communicating via the PCEP protocol with a PCE (Path
Computation Element) which again is capable of calculating
paths according to its local TED (Traffic Engineering Database).
This dynamic module will be able to inject the mentioned
dynamic Candidate Paths into pathd based on calculated paths
from a PCE.

https://tools.ietf.org/html/draft-ietf-spring-segment-routing-policy-06

Co-authored-by: Sebastien Merle <sebastien@netdef.org>
Co-authored-by: Renato Westphal <renato@opensourcerouting.org>
Co-authored-by: GalaxyGorilla <sascha@netdef.org>
Co-authored-by: Emanuele Di Pascale <emanuele@voltanet.io>
Signed-off-by: Sebastien Merle <sebastien@netdef.org>
2020-12-18 16:34:02 +01:00
..
_static doc: orange FRR theme 2019-02-18 14:39:13 +01:00
.gitignore doc: fix distclean 2018-05-18 19:35:24 +00:00
bgp-typecodes.rst doc: cleanup some misc files 2018-03-20 15:20:33 -04:00
bgpd.rst doc: cleanup some misc files 2018-03-20 15:20:34 -04:00
building-docker.rst doc: add docker image build instructions 2020-06-24 19:14:19 -04:00
building-frr-for-alpine.rst *: get rid of most daemons.conf references 2018-12-06 23:05:48 +01:00
building-frr-for-archlinux.rst doc: fix typo in archlinux doc 2020-04-27 08:47:34 -04:00
building-frr-for-centos6.rst docs: document libyang build magic (from Martin) for centos 6 2020-03-19 19:51:20 -04:00
building-frr-for-centos7.rst doc: Replace wrong paths for centos/fedora source build instructions 2020-01-10 00:11:09 +02:00
building-frr-for-centos8.rst doc: Replace wrong paths for centos/fedora source build instructions 2020-01-10 00:11:09 +02:00
building-frr-for-debian8.rst doc: suggest the installation of the libcap development library 2019-08-06 15:53:42 -03:00
building-frr-for-debian9.rst doc: suggest the installation of the libcap development library 2019-08-06 15:53:42 -03:00
building-frr-for-fedora.rst doc: Replace wrong paths for centos/fedora source build instructions 2020-01-10 00:11:09 +02:00
building-frr-for-freebsd9.rst build: refactor & revamp python autoconf logic 2019-06-04 16:21:20 +02:00
building-frr-for-freebsd10.rst build: refactor & revamp python autoconf logic 2019-06-04 16:21:20 +02:00
building-frr-for-freebsd11.rst build: refactor & revamp python autoconf logic 2019-06-04 16:21:20 +02:00
building-frr-for-netbsd6.rst build: refactor & revamp python autoconf logic 2019-06-04 16:21:20 +02:00
building-frr-for-netbsd7.rst build: refactor & revamp python autoconf logic 2019-06-04 16:21:20 +02:00
building-frr-for-openbsd6.rst doc: remove unneeded build deps 2019-03-29 18:56:20 +00:00
building-frr-for-opensuse.rst doc: add building steps for openSUSE 2020-12-03 11:59:01 +01:00
building-frr-for-openwrt.rst doc: use anonymous link refs 2020-11-09 15:25:26 -05:00
building-frr-for-ubuntu1404.rst doc: suggest the installation of the libcap development library 2019-08-06 15:53:42 -03:00
building-frr-for-ubuntu1604.rst doc: suggest the installation of the libcap development library 2019-08-06 15:53:42 -03:00
building-frr-for-ubuntu1804.rst doc: suggest the installation of the libcap development library 2019-08-06 15:53:42 -03:00
building-frr-for-ubuntu2004.rst doc: clarify python and pip2 for ubuntu 20 2020-09-14 09:52:16 -04:00
building-libyang.rst doc: fix rpm link under libyang help 2020-09-11 14:11:48 -04:00
building.rst doc: add building steps for openSUSE 2020-12-03 11:59:01 +01:00
cli.rst doc: CLI source references backwards 2020-03-09 15:27:25 -04:00
conf.py *: reformat python files 2020-10-07 17:22:26 -04:00
draft-zebra-00.ms doc: reorganize 2018-01-30 16:14:24 -05:00
fpm.rst doc: update FPM documentation 2020-04-17 20:18:54 -03:00
frr-release-procedure.rst doc: Update release procedure 2020-11-17 07:39:42 -05:00
fuzzing.rst doc: add docs on fuzzing stuff 2020-11-09 15:25:26 -05:00
grpc.rst doc: initial documentation for gRPC 2020-08-10 16:39:06 -03:00
hooks.rst doc: fix a couple of typos 2019-03-20 20:08:33 +01:00
include-compile.rst doc: pull out compile instructions into snippet 2019-03-25 20:21:10 +00:00
index.rst pathd: New SR-TE policy management daemon 2020-12-18 16:34:02 +01:00
ldpd-basic-test-setup.md doc: reorganize 2018-01-30 16:14:24 -05:00
library.rst doc: Add some basic how-to for lua 2020-02-14 14:17:52 -05:00
lists.rst doc: add notes about hash table invariants 2020-09-08 12:10:10 -04:00
locking.rst doc: Fixup some missing syntax 2020-02-14 14:17:52 -05:00
logging.rst doc: Add %pBD print formatter to doc 2020-10-17 08:52:35 -04:00
lua.rst doc: remove trailing whitespace 2020-07-07 14:02:35 -04:00
Makefile build: non-recursive doc + parallel sphinx 2018-08-30 08:06:44 +02:00
memtypes.rst doc: add description of the new memory macro 2020-12-01 11:39:40 +03:00
modules.rst doc: Fixup some missing syntax 2020-02-14 14:17:52 -05:00
next-hop-tracking.rst bgpd: Remove not used bgp_find_nexthop() function 2019-11-08 15:04:29 +02:00
ospf-api.rst doc: typo / grammar pass on OSPF API docs 2019-04-24 17:41:06 +00:00
ospf-sr.rst ospfd: Add Segment Routing Local Block 2020-08-20 14:37:40 +02:00
ospf.rst doc: make ospf section 2018-03-20 15:20:34 -04:00
packaging-debian.rst doc: move rpm build doc to dev docs 2019-03-22 16:08:28 +00:00
packaging-redhat.rst doc: Update RedHat packaging description to use Python 3 2020-01-25 23:00:47 +01:00
packaging.rst doc: update release procedure docs 2019-10-18 18:50:10 +00:00
path-internals-daemon.rst pathd: New SR-TE policy management daemon 2020-12-18 16:34:02 +01:00
path-internals.rst pathd: New SR-TE policy management daemon 2020-12-18 16:34:02 +01:00
path.rst pathd: New SR-TE policy management daemon 2020-12-18 16:34:02 +01:00
process-architecture.rst doc: clarify independence of THREAD_READ and _WRITE 2020-09-14 11:01:44 -04:00
rcu.rst lib: RCU 2019-07-31 03:34:09 +02:00
release-announcement-template.md doc: update release procedure docs 2019-10-18 18:50:10 +00:00
static-linking.rst doc: Fix borked up syntax for static-linking 2020-02-14 14:18:38 -05:00
subdir.am pathd: New SR-TE policy management daemon 2020-12-18 16:34:02 +01:00
testing.rst doc: clean up && index topotest json docs 2019-11-04 18:51:31 +00:00
topotests-jsontopo.rst doc: topotest json typo error 2020-11-19 13:18:22 +00:00
topotests-snippets.rst doc: fix a couple of typos 2019-03-20 20:08:33 +01:00
topotests.rst tests: use .items instead of .iteritems in topotests 2020-09-18 15:55:23 -04:00
tracing.rst doc: add developer docs for tracing 2020-10-23 15:13:51 -04:00
vtysh.rst doc: fix a couple of typos 2019-03-20 20:08:33 +01:00
workflow.rst doc: document use of black for python formatting 2020-10-08 12:53:13 -04:00
zebra.rst lib, zebra: add support for sending ARP requests 2020-08-12 23:19:58 +02:00