Go to file
Renato Westphal d47d6089e0 isisd: refactor handling of SR Prefix-SIDs
Embed Prefix-SID information inside SPF data structures so that
Prefix-SIDs can be installed together with their associated routes
at the end of the SPF algorithm. This is different from the current
implementation where Prefix-SIDs are parsed and processed separately,
which is vastly suboptimal.

Advantages of the new code:
* No need to parse the LSPDB an additional time to detect and process
  SR-related changes;
* Routes are installed with their Prefix-SID labels in the same ZAPI
  message. This can prevent packet dropping for a few milliseconds
  after each SPF run if there are BGP-labeled routes (e.g. L3VPN) that
  recurse on IGP labeled routes;
* Much easier to support Anycast-SIDs, as the SPF code will naturally
  figure out the best nexthops and use only them (that can't be done
  in any reasonable way if the Prefix-SID Sub-TVLs are processed
  separately);
* Less code to maintain and reduced memory footprint;

The "show isis segment-routing prefix-sids" command was removed as
it doesn't make sense anymore now that "show isis route" exists.
Prefix-SIDs are a property of routes, so what was done was to extend
the "show isis route" command with a new "prefix-sid" option that
changes the output table to show the Prefix-SID information associated
to each route.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2020-10-23 10:31:39 -03:00
.github .github: improve bug report template 2020-10-20 16:12:03 -04:00
alpine alpine: enable multi-arch builds 2020-06-24 16:33:18 -04:00
babeld babeld: replace inet_ntoa 2020-10-22 16:25:41 -04:00
bfdd :* Convert prefix2str to %pFX 2020-10-22 09:07:41 +03:00
bgpd Merge pull request #7345 from opensourcerouting/bgp-aggr-suppress 2020-10-23 15:02:57 +03:00
debian Lower the debhelper depends for Debian Jessie and Ubuntu Xenial 2020-09-26 12:14:32 +02:00
doc isisd: refactor handling of SR Prefix-SIDs 2020-10-23 10:31:39 -03:00
docker docker: don't fail on chown /etc/frr 2020-06-10 00:20:04 -04:00
eigrpd eigrpd: Tone down warning when command is not implemented yet 2020-10-22 09:02:00 -04: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 Merge pull request #7155 from donaldsharp/TRAP 2020-09-23 16:06:37 -04:00
isisd isisd: refactor handling of SR Prefix-SIDs 2020-10-23 10:31:39 -03:00
ldpd ldpd: replace inet_ntoa 2020-10-22 15:49:56 -04:00
lib lib: Convert inet_ntoa to %pI4 2020-10-22 15:32:50 +03: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 :* Convert prefix2str to %pFX 2020-10-22 09:07:41 +03:00
ospf6d :* Convert prefix2str to %pFX 2020-10-22 09:07:41 +03:00
ospfclient ospfclient: replace inet_ntoa 2020-10-22 13:41:51 -04:00
ospfd ospfd: replace inet_ntoa 2020-10-22 13:37:25 -04:00
pbrd :* Convert prefix2str to %pFX 2020-10-22 09:07:41 +03:00
pimd pimd: replace inet_ntoa 2020-10-22 10:13:56 -04: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 build, yang: bump libyang minimum required version to 1.0.184 2020-08-07 14:07:46 -03:00
ripd ripd: replace inet_ntoa 2020-10-22 16:25:41 -04:00
ripngd ripngd: Convert to using %pFX 2020-10-17 13:39:10 -04:00
sharpd :* Convert prefix2str to %pFX 2020-10-22 09:07:41 +03:00
snapcraft snapcraft: Update libyang version 2020-09-10 09:13:36 -04:00
staticd staticd: replace inet_ntoa 2020-10-22 16:25:41 -04:00
tests isisd: refactor handling of SR Prefix-SIDs 2020-10-23 10:31:39 -03:00
tools tools: use function chownfrr 2020-10-13 09:46:42 +02:00
vrrpd vrrpd: Convert to using %pFX 2020-10-15 16:57:11 +01:00
vtysh Merge pull request #7251 from wesleycoakley/fix-vtysh-node-build-warn-errors 2020-10-12 21:31:04 +03:00
watchfrr *: Use proper semantics for turning off thread 2020-10-12 08:35:18 -04:00
yang yang: fix circular chain of leafrefs 2020-10-19 23:46:19 -03:00
zebra zebra: replace inet_ntoa 2020-10-22 13:37:25 -04: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 python: add graphviz callgraphs 2020-05-05 14:39:12 +02: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 debian: cleanly split off from dist tarball 2019-02-19 21:31:18 +01:00
config.version.in build: carry --with-pkg-extra-version into tarballs 2018-10-24 15:11:50 +02:00
configure.ac nhrp: Make vici socket path configurable 2020-10-12 19:34:53 +02: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 vtysh: dynamically generate the list of daemons for commands 2020-10-02 15:06:27 +03: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