Go to file
Pooja Jagadeesh Doijode 19f451913e ospfd: Fix for vitual-link crash in signal handler
Whenever OSPF virtual-link is created, a virtual interface is
associated with it. Name of the virtual interface is derived by
combining "VLINK" string with the value of vlink_count, which is a global
variable.

Problem:
Consider a scenario where 2 virtual links A and B are created in OSPF with
virtual interfaces VLINK0 and VLINK1 respectively. When virtual-link A is unconfigured
and reconfigured, new interface name derived for it will be VLINK1, which is already
associated with virtual-link B. Due to this, both virtual-links A and B will
point to the same interface, VLINK1.

During FRR restart when signal handler is called, OSPF goes through all the virtual
links and deletes the interface(oi) associated with it. During the deletion of interface
for virtual-link B,it accesses the interface which was deleted already(which was deleted
during deletion of virual-link A) and whose fields were set to NULL. This
leads to OSPF crash.

Fixed it by not decrementing vlink_count during unconfig/deletion for virtual-link.

Signed-off-by: Pooja Jagadeesh Doijode <pdoijode@nvidia.com>
2023-03-27 14:20:10 -07:00
.github tools: Use specific syntax for conditions for Github actions 2023-03-13 09:52:13 +02:00
alpine docker,alpine: Remove isl from dependencies 2023-01-06 23:48:23 +09:00
babeld *: Convert event.h to frrevent.h 2023-03-24 08:32:17 -04:00
bfdd *: Convert event.h to frrevent.h 2023-03-24 08:32:17 -04:00
bgpd Merge pull request #13084 from opensourcerouting/fix/bgp_vrf_md5_password 2023-03-26 08:21:31 -04:00
debian mgmtd: nb library for client front-end code 2023-03-21 22:08:32 -04:00
doc *: Convert event.h to frrevent.h 2023-03-24 08:32:17 -04:00
docker doc: Add documentation for MGMT daemon 2023-03-21 22:09:10 -04: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 *: Convert event.h to frrevent.h 2023-03-24 08:32:17 -04:00
ldpd *: Convert event.h to frrevent.h 2023-03-24 08:32:17 -04:00
lib lib/clippy: bail out on newline inside string 2023-03-25 12:34:35 +09:00
m4 build: fix sed regex in Lua macro 2022-12-08 12:39:17 +01:00
mgmtd Merge pull request #12953 from donaldsharp/struct_event 2023-03-24 13:48:53 -05:00
mlag build: fix AM_LDFLAGS usage (and gcov) 2021-07-21 17:10:08 +02:00
nhrpd *: Convert event.h to frrevent.h 2023-03-24 08:32:17 -04:00
ospf6d *: Convert event.h to frrevent.h 2023-03-24 08:32:17 -04:00
ospfclient *: Convert event.h to frrevent.h 2023-03-24 08:32:17 -04:00
ospfd ospfd: Fix for vitual-link crash in signal handler 2023-03-27 14:20:10 -07:00
pathd *: Convert event.h to frrevent.h 2023-03-24 08:32:17 -04: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 #12931 from SaiGomathiN/yang 2023-03-27 13:45:00 +03:00
pkgsrc mgmtd: Bringup MGMTD daemon and datastore module support 2023-03-21 22:08:32 -04:00
python lib: convert xref_threadsched to xref_eventsched 2023-03-24 08:32:17 -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 *: Fixup formatting issues due to reordering 2023-03-24 08:37:21 -04:00
ripngd *: Convert event.h to frrevent.h 2023-03-24 08:32:17 -04:00
sharpd *: Convert event.h to frrevent.h 2023-03-24 08:32:17 -04:00
snapcraft snapcraft: Add pim6 daemon for PIM IPv6 to snap package 2022-11-19 12:52:36 +01:00
staticd *: Convert event.h to frrevent.h 2023-03-24 08:32:17 -04:00
tests Merge pull request #13084 from opensourcerouting/fix/bgp_vrf_md5_password 2023-03-26 08:21:31 -04:00
tools Merge pull request #13101 from opensourcerouting/fix/bindir_for_frr-reload 2023-03-26 08:20:33 -04:00
vrrpd *: Convert event.h to frrevent.h 2023-03-24 08:32:17 -04:00
vtysh *: Convert struct event_master to struct event_loop 2023-03-24 08:32:17 -04:00
watchfrr *: Convert event.h to frrevent.h 2023-03-24 08:32:17 -04:00
yang bgpd: Do not allow setting set distance via route-maps to zero 2023-03-21 22:09:50 +02:00
zebra *: Convert event.h to frrevent.h 2023-03-24 08:32:17 -04:00
.clang-format mgmtd: Add MGMT Transaction Framework 2023-03-21 22:08:32 -04:00
.dir-locals.el tests: remove python format block from dir-locals 2021-09-13 10:04:29 -04: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 *: Add some missed make check generated files in .gitignore 2021-09-16 08:13:17 -04:00
.pylintrc tests: micronet: update infra 2021-09-04 09:04:46 -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 tools: Set correct directory of vtysh for frr-reload.py 2023-03-24 19:38:46 +02:00
COPYING *: sort out & explain licenses used in FRR 2023-02-09 12:46:13 +01:00
Makefile.am mgmtd: Bringup MGMTD daemon and datastore module support 2023-03-21 22:08:32 -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