Go to file
Louis Scalbert 9ed86fe07e isisd: fix wrongly disabled flex-algo
A configured flex-algo algorithm may remain in disabled state after its
definition is advertised on the area.

It happens sometimes that, in isis_sr_flex_algo_topo1 topotest step 4 or
8, flex-algo 203 is disabled. It depends on the following sequence:

 1. Flex-algo 203 is configured on a remote router to be re-advertised.
 2. A LSP is received on the local router and contains the algo 203
    definition.
 3. The local router re-builds its own LSP with lsp_build().
 4. local router isis_run_spf() recomputes the algo 203 SPF tree.

A 1. 2. 3. 4. sequence results in a working test. The reception of the
remote LSP (2.) does not trigger the built of the local LSP. If for
some reasons, the sequence is 1. 3. 4. 2. 4., isis_run_spf() will not
knows that flex-algo 203 has been re-enabled because
flex_algo_get_state() only returns the state from the local LSP.

Compare in sequence step 4. the flex-algo state from the local LSP with
the actual state. If the state is not the same, request a new local LSP
generation and quits the re-computation of algo SPF tree. The SPF tree
will be recomputed just after the built of the local LSP.

Fixes: 3f55b8c621 ("isisd: fix disabled flex-algo on race condition")
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-06-01 14:26:39 +02:00
.github github: Add rebase label on PR if it's > 50 commits behind 2023-05-09 09:37:23 +03:00
alpine docker: Enable Lua (scripting) for Alpine images 2023-04-08 21:04:07 +03:00
babeld Merge pull request #13354 from zmw12306/parse_request_subtlv 2023-05-02 10:28:20 -04:00
bfdd Merge pull request #13556 from donaldsharp/token_to_desc 2023-05-23 08:21:51 -04:00
bgpd bgpd: fix bgpd core when unintern attr 2023-05-30 22:49:07 +00:00
debian mgmtd: nb library for client front-end code 2023-03-21 22:08:32 -04:00
doc tests: selecting results by regexp and ragnes, add container support 2023-05-26 06:32:24 -04:00
docker Merge pull request #12797 from jvidalallende/ubi8_minimal_dockerfile 2023-04-12 05:47:38 +00:00
eigrpd *: Convert event.h to frrevent.h 2023-03-24 08:32:17 -04:00
fpm *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
gdb *: Rename thread.[ch] to event.[ch] 2023-03-24 08:32:16 -04:00
grpc *: manual SPDX License ID conversions 2023-02-09 14:09:07 +01:00
include Merge pull request #12780 from opensourcerouting/spdx-license-id 2023-02-17 09:43:05 -05:00
isisd isisd: fix wrongly disabled flex-algo 2023-06-01 14:26:39 +02:00
ldpd ldpd: changes for code maintainability 2023-05-23 23:20:01 +05:30
lib Merge pull request #13631 from donaldsharp/fix_some_ping_issues 2023-05-30 21:26:24 +03:00
m4 build: fix sed regex in Lua macro 2022-12-08 12:39:17 +01:00
mgmtd Merge pull request #13632 from LabNConsulting/chopps/mgmt-avoid-race 2023-05-31 07:28:50 -04:00
mlag build: fix AM_LDFLAGS usage (and gcov) 2021-07-21 17:10:08 +02:00
nhrpd nhrpd: Fix nhrpd memory leak 2023-04-24 11:18:39 +04:00
ospf6d ospfd, ospf6d: fix time_t truncation 2023-05-30 19:47:28 -03:00
ospfclient *: Convert event.h to frrevent.h 2023-03-24 08:32:17 -04:00
ospfd ospfd, ospf6d: fix time_t truncation 2023-05-30 19:47:28 -03:00
pathd Merge pull request #12933 from Orange-OpenSource/link_state 2023-04-20 18:33:21 +02:00
pbrd *: Convert event.h to frrevent.h 2023-03-24 08:32:17 -04:00
pceplib *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pimd Merge pull request #13450 from patrasar/mld_core 2023-06-01 09:13:30 +03:00
pkgsrc mgmtd: Bringup MGMTD daemon and datastore module support 2023-03-21 22:08:32 -04:00
python mgmtd: fully implement debug flags for mgmtd and clients 2023-05-01 13:47:12 -04:00
qpb mgmtd: Bringup MGMTD daemon and datastore module support 2023-03-21 22:08:32 -04:00
redhat mgmtd: Bringup MGMTD daemon and datastore module support 2023-03-21 22:08:32 -04:00
ripd ripd: embed BFD YANG models 2023-05-25 13:47:54 +02:00
ripngd ripngd: Make sure we do not overuse higher values for ECMP count 2023-05-23 09:29:02 +03:00
sharpd Merge pull request #12933 from Orange-OpenSource/link_state 2023-04-20 18:33:21 +02:00
snapcraft snapcraft: Add pim6 daemon for PIM IPv6 to snap package 2022-11-19 12:52:36 +01:00
staticd staticd: remove connect notify function, not needed 2023-05-28 05:13:22 -04:00
tests tests: fix mpls table check in isis_sr_flex_algo_topo1 2023-06-01 14:14:51 +02:00
tools style: add format checker config that matches FRR style standards 2023-04-18 05:18:26 -04:00
vrrpd lib: Remove getopt.c and getopt1.c 2023-03-28 10:07:38 -04:00
vtysh vtysh: Give actual pam error messages 2023-05-26 07:44:11 -04:00
watchfrr *: Convert event.h to frrevent.h 2023-03-24 08:32:17 -04:00
yang ripng: Implement allow-ecmp X command 2023-05-23 09:29:01 +03:00
zebra Merge pull request #13631 from donaldsharp/fix_some_ping_issues 2023-05-30 21:26:24 +03:00
.clang-format Revert "tools: config clang-format to allow aligned macros" 2023-05-15 15:32:48 +03:00
.dockerignore docker: Make docker image on CentOS 7 2019-11-26 19:29:30 +00:00
.flake8 style: add format checker config that matches FRR style standards 2023-04-18 05:18:26 -04:00
.git-blame-ignore-revs tools: Ignore mass renaming of topotests for git blame 2021-05-11 14:14:26 +03:00
.gitignore doc: configure: add configure option to generate .ccls file 2023-05-18 09:32:32 -04:00
.isort.cfg style: add format checker config that matches FRR style standards 2023-04-18 05:18:26 -04:00
.pylintrc style: add format checker config that matches FRR style standards 2023-04-18 05:18:26 -04: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 *: manual SPDX License ID conversions 2023-02-09 14:09:07 +01:00
config.version.in build: carry --with-pkg-extra-version into tarballs 2018-10-24 15:11:50 +02:00
configure.ac doc: configure: add configure option to generate .ccls file 2023-05-18 09:32:32 -04:00
COPYING *: sort out & explain licenses used in FRR 2023-02-09 12:46:13 +01:00
Makefile.am build: clean up mgmtd lib protobuf make syntax 2023-03-27 16:44:27 -04:00
README.md doc: Fix the link that points to Slack invitation in README 2022-03-24 13:13:37 +02: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