The FRRouting Protocol Suite
Find a file
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
.github .github: improve bug report template 2020-10-20 16:12:03 -04:00
alpine alpine: Remove old docker deps for alpine 2020-10-22 03:03:53 -04:00
babeld babeld: Free ifc leak 2020-11-14 21:19:42 -05:00
bfdd bfd: fix session lookup 2020-12-04 14:38:30 +03:00
bgpd Merge pull request #7735 from ton31337/fix/move_to_options_bgp_master_extra_zebra_data 2020-12-15 07:14:17 -05:00
debian Revert "debian: Merge various debian changelogs in debian/changelog" 2020-11-19 17:12:42 -05:00
doc pathd: New SR-TE policy management daemon 2020-12-18 16:34:02 +01:00
docker docker: don't fail on chown /etc/frr 2020-06-10 00:20:04 -04:00
eigrpd *: Replace s_addr check agains 0 with INADDR_ANY 2020-12-14 21:03:38 +02:00
fpm *: Replace sizeof something to sizeof(something) 2020-03-08 21:44:53 +02:00
gdb bgpd: Convert binfo to path 2018-10-09 14:26:30 -04:00
grpc lib: don't ignore error messages generated during the commit apply phase 2020-08-14 21:37:14 -03:00
include include: Update rtnetlink.h 2020-11-15 10:12:50 -05:00
isisd *: Replace s_addr check agains 0 with INADDR_ANY 2020-12-14 21:03:38 +02:00
ldpd Merge pull request #7703 from volta-networks/fix_ldpsync_remove_hello 2020-12-09 20:21:11 -05:00
lib pathd: New SR-TE policy management daemon 2020-12-18 16:34:02 +01:00
m4 build: find all future minor versions of python3 2020-07-09 06:47:31 +02:00
mlag zebra: Do not build mlag protobuf support if version 3 is not avail 2019-12-15 09:37:51 -05:00
nhrpd nhrpd: fix SA warning in nhrp_interface 2020-12-08 09:10:10 -05:00
ospf6d Merge pull request #7717 from ranjanyash54/2368 2020-12-15 07:29:10 -05:00
ospfclient ospfclient: replace inet_ntoa 2020-10-22 13:41:51 -04:00
ospfd Merge pull request #7736 from ton31337/fix/s_addr_INADDR_ANY 2020-12-15 07:12:49 -05:00
pathd pathd: New SR-TE policy management daemon 2020-12-18 16:34:02 +01:00
pbrd *: Convert all usage of zclient_send_message to new enum 2020-11-15 15:04:52 -05:00
pimd *: Replace s_addr check agains 0 with INADDR_ANY 2020-12-14 21:03:38 +02:00
pkgsrc *: cleanup .gitignore files 2018-09-08 21:30:42 +02:00
python *: reformat python files 2020-10-07 17:22:26 -04:00
qpb build: add LLVM bitcode targets 2020-05-05 14:39:12 +02:00
redhat pathd: New SR-TE policy management daemon 2020-12-18 16:34:02 +01:00
ripd *: Replace s_addr check agains 0 with INADDR_ANY 2020-12-14 21:03:38 +02:00
ripngd *: Remove route_map_object_t from the system 2020-11-13 19:35:20 -05:00
sharpd *: Replace s_addr check agains 0 with INADDR_ANY 2020-12-14 21:03:38 +02:00
snapcraft snapcraft: Update libyang version 2020-09-10 09:13:36 -04:00
staticd Merge pull request #7478 from donaldsharp/buffer 2020-11-18 08:30:47 -05:00
tests pathd: New SR-TE policy management daemon 2020-12-18 16:34:02 +01:00
tools pathd: New SR-TE policy management daemon 2020-12-18 16:34:02 +01:00
vrrpd *: Convert all usage of zclient_send_message to new enum 2020-11-15 15:04:52 -05:00
vtysh pathd: New SR-TE policy management daemon 2020-12-18 16:34:02 +01:00
watchfrr *: unify thread/event cancel macros 2020-10-23 12:16:52 -04:00
yang pathd: New SR-TE policy management daemon 2020-12-18 16:34:02 +01:00
zebra Merge pull request #7736 from ton31337/fix/s_addr_INADDR_ANY 2020-12-15 07:12:49 -05:00
.clang-format clang-format: add FOREACH_SAFI to the ForEachMacros list 2020-08-03 12:18:24 -03:00
.dir-locals.el tools: fix emacs configuration file 2019-11-04 11:45:52 -03:00
.dockerignore docker: Make docker image on CentOS 7 2019-11-26 19:29:30 +00:00
.git-blame-ignore-revs *: Consolidate on first git blame ignore revs 2020-10-13 16:07:18 -04:00
.gitignore Revert "debian: Adjust tarsource.sh to use native debian/changelog" 2020-11-19 17:12:41 -05:00
bootstrap.sh autoreconf -i 2007-02-06 19:28:28 +00:00
buildtest.sh config: switch a few references to say FRR 2017-07-12 11:25:33 -05:00
changelog-auto.in Revert "debian: Adjust tarsource.sh to use native debian/changelog" 2020-11-19 17:12:41 -05:00
config.version.in build: carry --with-pkg-extra-version into tarballs 2018-10-24 15:11:50 +02:00
configure.ac pathd: New SR-TE policy management daemon 2020-12-18 16:34:02 +01:00
COPYING *: make consistent & update GPLv2 file headers 2017-05-15 16:37:41 +02:00
COPYING-LGPLv2.1 build: remove LGPL v2.0, add LGPL v2.1 2016-11-15 17:19:38 +09:00
Makefile.am pathd: New SR-TE policy management daemon 2020-12-18 16:34:02 +01:00
README.md doc: Update Documentation to note Solaris Unsupported status 2020-09-21 10:02:20 -04:00
stamp-h.in Initial revision 2002-12-13 20:15:29 +00:00

Icon

FRRouting

FRR is free software that implements and manages various IPv4 and IPv6 routing protocols. It runs on nearly all distributions of Linux and BSD and supports all modern CPU architectures.

FRR currently supports the following protocols:

  • BGP
  • OSPFv2
  • OSPFv3
  • RIPv1
  • RIPv2
  • RIPng
  • IS-IS
  • PIM-SM/MSDP
  • LDP
  • BFD
  • Babel
  • PBR
  • OpenFabric
  • VRRP
  • EIGRP (alpha)
  • NHRP (alpha)

Installation & Use

For source tarballs, see the releases page.

For Debian and its derivatives, use the APT repository at https://deb.frrouting.org/.

Instructions on building and installing from source for supported platforms may be found in the developer docs.

Once installed, please refer to the user guide for instructions on use.

Community

The FRRouting email list server is located here and offers the following public lists:

Topic List
Development dev@lists.frrouting.org
Users & Operators frog@lists.frrouting.org
Announcements announce@lists.frrouting.org

For chat, we currently use Slack. You can join by clicking the "Slack" link under the Participate section of our website.

Contributing

FRR maintains developer's documentation which contains the project workflow and expectations for contributors. Some technical documentation on project internals is also available.

We welcome and appreciate all contributions, no matter how small!

Security

To report security issues, please use our security mailing list:

security [at] lists.frrouting.org