summaryrefslogtreecommitdiffstats
path: root/configure.ac
diff options
context:
space:
mode:
authorSebastien Merle <sebastien@netdef.org>2020-10-16 16:55:51 +0200
committerSebastien Merle <sebastien@netdef.org>2020-12-18 16:47:52 +0100
commitefba0985fcddee80df257147f7e398b52dad089b (patch)
treec668019fceae6ee01caf43fd7fcacf3df58fccb4 /configure.ac
parentpathd: New SR-TE policy management daemon (diff)
downloadfrr-efba0985fcddee80df257147f7e398b52dad089b.tar.xz
frr-efba0985fcddee80df257147f7e398b52dad089b.zip
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>
Diffstat (limited to 'configure.ac')
-rwxr-xr-xconfigure.ac18
1 files changed, 18 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
index 168a9041d..0cbf4d22e 100755
--- a/configure.ac
+++ b/configure.ac
@@ -627,6 +627,8 @@ AC_ARG_ENABLE([pcreposix],
AS_HELP_STRING([--enable-pcreposix], [enable using PCRE Posix libs for regex functions]))
AC_ARG_ENABLE([fpm],
AS_HELP_STRING([--enable-fpm], [enable Forwarding Plane Manager support]))
+AC_ARG_ENABLE([pcep],
+ AS_HELP_STRING([--enable-pcep], [enable PCEP support for pathd]))
AC_ARG_ENABLE([systemd],
AS_HELP_STRING([--enable-systemd], [enable Systemd support]))
AC_ARG_ENABLE([werror],
@@ -1681,6 +1683,10 @@ AS_IF([test "$enable_pathd" != "no"], [
AC_DEFINE([HAVE_PATHD], [1], [pathd])
])
+AS_IF([test "$enable_pcep" != "no"], [
+ AC_DEFINE([HAVE_PATHD_PCEP], [1], [pathd-pcep])
+])
+
if test "$ac_cv_lib_json_c_json_object_get" = "no" -a "$BFDD" = "bfdd"; then
AC_MSG_ERROR(["you must use json-c library to use bfdd"])
fi
@@ -2473,6 +2479,18 @@ AM_CONDITIONAL([IRDP], [$IRDP])
AM_CONDITIONAL([FPM], [test "$enable_fpm" = "yes"])
AM_CONDITIONAL([HAVE_PROTOBUF], [test "$enable_protobuf" = "yes"])
AM_CONDITIONAL([HAVE_PROTOBUF3], [$PROTO3])
+
+dnl PCEP plugin
+AM_CONDITIONAL([HAVE_PATHD_PCEP], [test "$enable_pcep" = "yes"])
+AS_IF([test "$enable_pcep" = "yes"], [
+ AC_CHECK_LIB([pcep_pcc], [initialize_pcc], [
+ PATHD_PCEP_LIBS="-lpcep_pcc"
+ ],[
+ AC_MSG_ERROR([PCEP library libpcep_pcc not found])
+ ])
+ AC_SUBST([PATHD_PCEP_LIBS])
+])
+
dnl daemons
AM_CONDITIONAL([VTYSH], [test "$VTYSH" = "vtysh"])
AM_CONDITIONAL([ZEBRA], [test "$enable_zebra" != "no"])