Go to file
Renato Westphal 88a7d121d1 lib: fix NETCONF network-wide transactions for confd and sysrepo
ConfD and Sysrepo implement configuration transactions using a
two-phase commit protocol (prepare + abort/apply). For network-wide
transactions to work, ConfD and Sysrepo move to the second phase of
the commit protocol only after receiving the results of the first
phase from all devices involved in the transaction. If all devices
succeed in the 'prepare' phase, then all of them move to the 'apply'
phase and the transaction is committed. On the other hand, if any
device fails in the 'prepare' phase, all of them move to 'abort'
phase and the transaction is aborted.

The confd and sysrepo plugins were implementing the full
two-phase commit protocol upon receiving a request to validate
the configuration changes and allocate all resources required to
apply them (first phase). The notifications to abort or apply the
changes (second phase) were being ignored since everything was being
done in the first phase for simplicity. This wasn't a problem for
single-device transactions, but it is for transactions involving
multiple devices.  Rework the code a bit to do things properly and
fix this problem.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2018-12-07 16:01:34 -02:00
.github
alpine
babeld
bfdd
bgpd Merge pull request #3438 from opensourcerouting/bgp-rfapi-default-value 2018-12-06 19:32:07 -05:00
debianpkg
doc
docker
eigrpd
fpm
gdb
include
isisd isisd: trigger hellos on adjacency state change 2018-12-04 16:13:24 +01:00
ldpd
lib lib: fix NETCONF network-wide transactions for confd and sysrepo 2018-12-07 16:01:34 -02:00
m4
nhrpd
ospf6d
ospfclient
ospfd
pbrd
pimd
pkgsrc
ports
python
qpb
redhat
ripd
ripngd
sharpd
snapcraft
solaris
staticd
tests Merge pull request #3437 from opensourcerouting/bugfix/topotests-use-copy 2018-12-06 19:31:26 -05:00
tools
vtysh
watchfrr
yang
zebra zebra: don't log errors on unsupported medias 2018-12-05 17:22:56 -02:00
.clang-format
.dir-locals.el
.dockerignore
.gitignore
bootstrap.sh
buildtest.sh
config.version.in
configure.ac
COPYING
COPYING-LGPLv2.1
defaults.h
Makefile.am
README.md
stamp-h.in

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 as well as Solaris 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
  • EIGRP (alpha)
  • NHRP (alpha)

Installation & Use

Packages are available for various distributions on our releases page.

Snaps are also available here.

Instructions on building and installing from source for supported platforms may be found here.

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. Please email the mailing list to request an invite as we do not issue automatic invites.

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