Go to file
Louis Scalbert 46aeabedaf bgpd: split soft reconfigure table task into several jobs to not block vtysh
BGP configuration changes that imply recomputing the BGP route table
(e.g. modifying route-maps, setting bgp graceful-shutdown) might be a
long time process depending on the size of the BGP table and the
route-map numbers and complexity. For example, setups with full
Internet routes take something like one minute to reprocess all the
prefixes when graceful-shutdown is configured. During this time, a
"show bgp commands" request on vtysh results in blocking the shell until
the soft reconfigure table task is over.

This patch splits bgp_soft_reconfig_table task into thread jobs of 25K
prefixes.

Some tests on a full Internet route setup show that after reconfiguring
route-maps or graceful-shutdown, vtysh is not stucked anymore. We are
now able to request commands like "show bgp summary" after 1 or 2
seconds instead of 30 to 60s.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2021-06-07 10:33:31 +02:00
.github .github: improve bug report template 2020-10-20 16:12:03 -04:00
alpine alpine: add missing libelf-dev dependency 2021-04-16 13:02:15 -04:00
babeld babeld: Allow babeld to actually register to use distribute-list 2021-05-04 16:23:37 -04:00
bfdd lib: adapt to version 2 of libyang 2021-05-13 16:24:48 -04:00
bgpd bgpd: split soft reconfigure table task into several jobs to not block vtysh 2021-06-07 10:33:31 +02:00
debian lib: adapt to version 2 of libyang 2021-05-13 16:24:48 -04:00
doc doc: remove varnames from command descriptions 2021-06-03 02:19:36 +03:00
docker docker: fix ubuntu containers 2021-05-27 15:57:03 +03:00
eigrpd northbound: KISS always batch yang config (file read), it's faster 2021-06-02 14:05:26 +00:00
fpm build: make builddir include path consistent 2021-04-21 15:42:33 +02:00
gdb bgpd: Convert binfo to path 2018-10-09 14:26:30 -04:00
grpc build: fix protobuf out-of-tree build 2021-04-21 11:13:25 +02:00
include nhrpd: cleaning netlink gre information 2021-04-30 10:33:18 +02:00
isisd Merge pull request #8210 from LabNConsulting/chopps/always-batch 2021-06-02 18:13:42 -04:00
ldpd ldpd: make allowing broken-lsps to be installed with pop operation configurable 2021-05-03 09:02:36 -04:00
lib Merge pull request #8210 from LabNConsulting/chopps/always-batch 2021-06-02 18:13:42 -04:00
m4 grpc: improve checks for GRPC C++ requirements 2021-05-22 00:01:06 +00:00
mlag zebra: Do not build mlag protobuf support if version 3 is not avail 2019-12-15 09:37:51 -05:00
nhrpd Merge pull request #8237 from pguibert6WIND/nhrp_use_zebra_2 2021-05-05 07:57:04 -04:00
ospf6d Merge pull request #8759 from idryzhov/ospf6-vrf-fix 2021-06-01 16:31:26 -04:00
ospfclient *: require semicolon after FRR_DAEMON_INFO & co. 2021-03-17 06:18:39 +01:00
ospfd ospfd: if destroy the whole ospf, then remove ospf's interface config: passive-interface 2021-06-03 13:06:34 +08:00
pathd pathd: fix render candidate-path bandwidth 2021-06-01 19:19:05 +02:00
pbrd Merge pull request #8675 from wesleycoakley/pbr-table-range-core-fix 2021-05-25 14:09:41 -04:00
pceplib pceplib: fix mixup of global/local variables 2021-05-28 20:39:37 +03:00
pimd isisd, ospf6d, pimd: set vrf_id when creating bfd sessions 2021-05-31 15:04:13 +03:00
pkgsrc *: cleanup .gitignore files 2018-09-08 21:30:42 +02:00
python *: make sure config.h or zebra.h is first 2021-04-23 12:06:35 +02:00
qpb build: fix assert() use in .pb-c.c files 2021-05-03 18:48:33 +02:00
redhat lib: adapt to version 2 of libyang 2021-05-13 16:24:48 -04:00
ripd northbound: KISS always batch yang config (file read), it's faster 2021-06-02 14:05:26 +00:00
ripngd northbound: KISS always batch yang config (file read), it's faster 2021-06-02 14:05:26 +00:00
sharpd sharpd: add v4 redistribute watching 2021-05-03 19:38:38 -04:00
snapcraft snapcraft: Update rtrlib to 0.7.0 2021-01-07 02:16:19 +01:00
staticd Merge pull request #8740 from mjstapp/fix_static_ret 2021-05-28 11:35:43 +03:00
tests Merge pull request #8210 from LabNConsulting/chopps/always-batch 2021-06-02 18:13:42 -04:00
tools Merge pull request #8353 from opensourcerouting/llvm-20210327 2021-06-01 19:08:32 +00:00
vrrpd lib: adapt to version 2 of libyang 2021-05-13 16:24:48 -04:00
vtysh lib: adapt to version 2 of libyang 2021-05-13 16:24:48 -04:00
watchfrr lib: adapt to version 2 of libyang 2021-05-13 16:24:48 -04:00
yang bgpd: fix default for extended-nexthop-capability 2021-05-23 20:30:04 +00:00
zebra Merge pull request #6317 from rgirada/fix_route_dump 2021-05-28 18:12:17 -03:00
.clang-format lib: adapt to version 2 of libyang 2021-05-13 16:24:48 -04: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 tools: Ignore mass renaming of topotests for git blame 2021-05-11 14:14:26 +03:00
.gitignore Merge pull request #8353 from opensourcerouting/llvm-20210327 2021-06-01 19:08:32 +00:00
.travis.yml lib: libyang2 add missed conversion 2021-05-17 22:13:59 -04:00
bootstrap.sh build: turn on automake warnings (& symlinks) 2021-04-21 15:42:37 +02: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 grpc: improve checks for GRPC C++ requirements 2021-05-27 12:04:33 +00: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 lib: libyang2 add missed conversion 2021-05-17 22:13:59 -04: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
version.h build: make builddir include path consistent 2021-04-21 15:42:33 +02: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