]> git.puffer.fish Git - matthieu/frr.git/commit
pathd: Add optional support for PCEP to pathd
authorSebastien Merle <sebastien@netdef.org>
Fri, 16 Oct 2020 14:55:51 +0000 (16:55 +0200)
committerSebastien Merle <sebastien@netdef.org>
Fri, 18 Dec 2020 15:47:52 +0000 (16:47 +0100)
commitefba0985fcddee80df257147f7e398b52dad089b
treec668019fceae6ee01caf43fd7fcacf3df58fccb4
parent4d7b695d3abe80fbb1b666aed8faa1b9e9387fdb
pathd: Add optional support for PCEP to pathd

This new dynamic module makes pathd behave as a PCC for dynamic candidate path
using the external library pcpelib https://github.com/volta-networks/pceplib .

The candidate paths defined as dynamic will trigger computation requests to the
configured PCE, and the PCE response will be used to update the policy.

It supports multiple PCE. The one with smaller precedence will be elected
as the master PCE, and only if the connection repeatedly fails, the PCC will
switch to another PCE.

Example of configuration:

segment-routing
 traffic-eng
  pcep
   pce-config CONF
    source-address ip 10.10.10.10
    sr-draft07
   !
   pce PCE1
    config CONF
    address ip 1.1.1.1
   !
   pce PCE2
    config CONF
    address ip 2.2.2.2
   !
   pcc
    peer PCE1 precedence 10
    peer PCE2 precedence 20
   !
  !
 !
!

Co-authored-by: Brady Johnson <brady@voltanet.io>
Co-authored-by: Emanuele Di Pascale <emanuele@voltanet.io>
Co-authored-by: GalaxyGorilla <sascha@netdef.org>
Co-authored-by: Javier Garcia <javier.garcia@voltanet.io>
Co-authored-by: Renato Westphal <renato@opensourcerouting.org>
Co-authored-by: Sebastien Merle <sebastien@netdef.org>
Signed-off-by: Sebastien Merle <sebastien@netdef.org>
31 files changed:
configure.ac
doc/developer/path-internals-pcep.rst [new file with mode: 0644]
doc/developer/path-internals.rst
doc/developer/subdir.am
doc/figures/pcep_module_threading_overview.svg [new file with mode: 0644]
doc/user/pathd.rst
lib/command.c
lib/command.h
lib/northbound.h
pathd/path_errors.c
pathd/path_errors.h
pathd/path_pcep.c [new file with mode: 0644]
pathd/path_pcep.h [new file with mode: 0644]
pathd/path_pcep_cli.c [new file with mode: 0644]
pathd/path_pcep_cli.h [new file with mode: 0644]
pathd/path_pcep_config.c [new file with mode: 0644]
pathd/path_pcep_config.h [new file with mode: 0644]
pathd/path_pcep_controller.c [new file with mode: 0644]
pathd/path_pcep_controller.h [new file with mode: 0644]
pathd/path_pcep_debug.c [new file with mode: 0644]
pathd/path_pcep_debug.h [new file with mode: 0644]
pathd/path_pcep_lib.c [new file with mode: 0644]
pathd/path_pcep_lib.h [new file with mode: 0644]
pathd/path_pcep_memory.c [new file with mode: 0644]
pathd/path_pcep_memory.h [new file with mode: 0644]
pathd/path_pcep_pcc.c [new file with mode: 0644]
pathd/path_pcep_pcc.h [new file with mode: 0644]
pathd/pathd.conf.sample
pathd/subdir.am
tools/frr-reload.py
vtysh/vtysh.c