summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Lamparter <equinox@opensourcerouting.org>2017-04-04 18:34:08 +0200
committerDavid Lamparter <equinox@opensourcerouting.org>2017-04-04 19:01:47 +0200
commit3e7c8d040ce092d42b485cb45461af575a99e39e (patch)
tree20ddb4bf5d39b348041af75b7102623e4f0d29c2
parente5fd248c254463830f96eb35d8ea60385ab226c0 (diff)
parent3e71b5d907e9a58049e188cd88ad86614c5ad4f6 (diff)
Merge branch 'stable/2.0'
Fixed minor conflicts from "defaults" change on stable. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
-rw-r--r--COMMUNITY.md93
-rw-r--r--ChangeLog4
-rw-r--r--Makefile.am2
-rw-r--r--REPORTING-BUGS8
-rw-r--r--bgpd/bgpd.c36
-rw-r--r--bgpd/bgpd.h8
-rwxr-xr-xconfigure.ac16
-rw-r--r--debian/README.Debian2
-rw-r--r--debian/copyright4
-rw-r--r--defaults.h54
-rw-r--r--doc/Building_FRR_on_CentOS6.md4
-rw-r--r--doc/Building_FRR_on_CentOS7.md4
-rw-r--r--doc/Building_FRR_on_Debian8.md4
-rw-r--r--doc/Building_FRR_on_Fedora24.md4
-rw-r--r--doc/Building_FRR_on_FreeBSD10.md2
-rw-r--r--doc/Building_FRR_on_FreeBSD11.md2
-rw-r--r--doc/Building_FRR_on_FreeBSD9.md2
-rw-r--r--doc/Building_FRR_on_NetBSD6.md2
-rw-r--r--doc/Building_FRR_on_NetBSD7.md2
-rw-r--r--doc/Building_FRR_on_OmniOS.md2
-rw-r--r--doc/Building_FRR_on_OpenBSD6.md2
-rw-r--r--doc/Building_FRR_on_Ubuntu1204.md2
-rw-r--r--doc/Building_FRR_on_Ubuntu1404.md2
-rw-r--r--doc/Building_FRR_on_Ubuntu1604.md2
-rw-r--r--doc/frr.texi12
-rw-r--r--doc/git_branches.svg721
-rw-r--r--doc/overview.texi12
-rw-r--r--lib/command.c94
-rw-r--r--lib/privs.c2
-rw-r--r--lib/version.h.in3
-rw-r--r--ospf6d/ospf6_top.c8
-rw-r--r--ospfd/ospf_dump_api.c2
-rw-r--r--ospfd/ospf_dump_api.h2
-rw-r--r--ospfd/ospf_vty.c5
-rw-r--r--ospfd/ospfd.c4
-rw-r--r--redhat/README.rpm_build.md4
-rw-r--r--redhat/frr.spec.in20
-rw-r--r--snapcraft/Makefile.am14
-rw-r--r--snapcraft/README.snap_build.md12
-rw-r--r--snapcraft/README.usage.md12
-rw-r--r--snapcraft/setup/gui/icon.pngbin21830 -> 0 bytes
-rw-r--r--snapcraft/snap/gui/icon.pngbin0 -> 35316 bytes
-rw-r--r--snapcraft/snapcraft.yaml.in6
-rw-r--r--solaris/README.txt12
-rw-r--r--solaris/depend.daemons.in2
-rw-r--r--solaris/depend.dev.in2
-rw-r--r--solaris/depend.libs.in2
-rw-r--r--solaris/depend.smf.in2
-rwxr-xr-xsolaris/frr.init.in12
-rw-r--r--solaris/frr.xml.in42
-rw-r--r--solaris/pkginfo.tmpl.in4
-rw-r--r--tests/helpers/python/frrtest.py16
-rw-r--r--tests/lib/cli/.gitignore1
-rw-r--r--tests/lib/cli/test_cli.refout.in (renamed from tests/lib/cli/test_cli.refout)6
-rw-r--r--vtysh/vtysh_config.c1
-rw-r--r--zebra/zebra_fpm_dt.c2
-rw-r--r--zebra/zebra_fpm_protobuf.c4
57 files changed, 1112 insertions, 192 deletions
diff --git a/COMMUNITY.md b/COMMUNITY.md
index 52777da968..704c47a95e 100644
--- a/COMMUNITY.md
+++ b/COMMUNITY.md
@@ -2,6 +2,16 @@
[TOC]
+## General note on this document
+
+This document is "descriptive/post-factual" in that it documents pratices that
+are in use; it is not "definitive/pre-factual" in prescribing practices.
+
+This means that when a procedure changes, it is agreed upon, then put into
+practice, and then documented here. If this document doesn't match reality,
+it's the document that needs to be updated, not reality.
+
+
## Git Structure
The master Git for PROJECT resides on Github at
@@ -10,20 +20,21 @@ The master Git for PROJECT resides on Github at
![git branches continually merging to the left from 3 lanes; float-right](doc/git_branches.svg
"git branch mechanics")
-There are 3 main branches for development and a release branch for each
+There is one main branch for development and a release branch for each
major release.
-New contributions are done against the head of the Develop branch. The CI
+New contributions are done against the head of the master branch. The CI
systems will pick up the Github Pull Requests or the new patch from
-Patchwork, run some basic build and functional tests and will merge them
-into the branch automatically on success.
-
-Code on the develop branch will then be further tested and reviewed by the
-community and merged to master on a regular interval.
+Patchwork, run some basic build and functional tests.
For each major release (1.0, 1.1 etc) a new release branch is created based
on the master.
+There was an attempt to use a "develop" branch automatically maintained by
+the CI system. This is not currently in active use, though the system is
+operational. If the "develop" branch is in active use and this paragraph
+is still here, this document obviously wasn't updated.
+
## Programming language, Tools and Libraries
@@ -250,16 +261,72 @@ Portions:
### Code styling / format
-GNU coding standards apply. Indentation follows the result of invoking GNU
-indent (as of 2.2.8a) with the `-nut -nfc1` arguments.
+Coding style standards in FRR vary depending on location. Pre-existing
+code uses GNU coding standards. New code may use Linux kernel coding style.
+
+GNU coding style apply to the following parts:
+
+* lib/
+* zebra/
+* bgpd/
+* ospfd/
+* ospf6d/
+* isisd/
+* ripd/
+* ripngd/
+* vtysh/
+
+Linux kernel coding style applies to:
+
+* nhrpd/
+* watchfrr/
+* pimd/
+* lib/{checksum,hook,imsg-buffer,imsg,libfrr,md5,module,monotime,queue}.[ch]
+
+BSD coding style applies to:
+
+* ldpd/
+
+**Whitespace changes in untouched parts of the code are not acceptable in
+patches that change actual code.** To change/fix formatting issues, please
+create a separate patch that only does formatting changes and nothing else.
+
+It is acceptable to rewrap entire files to Linux kernel style, but this
+**MUST** come as a separate patch that does nothing other than this
+reformatting.
+
+
+#### GNU style
+
+For GNU coding style, Indentation follows the result of invoking GNU indent:
```
indent -nut -nfc1 file_for_submission.c
```
-Please don’t reformat existing files (or only sections modified by your
-changes), even if they don’t follow the standard. This makes it very hard to
-highlight the changes
+Originally, tabs were used instead of spaces, with tabs are every 8 columns.
+However, tab interoperability issues mean space characters are now preferred for
+new changes. We generally only clean up whitespace when code is unmaintainable
+due to whitespace issues, to minimise merging conflicts.
+
+
+#### Linux kernel & BSD style
+
+These styles are documented externally:
+
+* [https://www.kernel.org/doc/Documentation/CodingStyle](https://www.kernel.org/doc/Documentation/CodingStyle).
+* [http://man.openbsd.org/style](http://man.openbsd.org/style)
+
+They are relatively similar but differ in details.
+
+pimd deviates from Linux kernel style in using 2 spaces for indentation, with
+Tabs replacing 8 spaces, as well as adding a line break between `}` and `else`.
+It is acceptable to convert indentation in pimd/ to Linux kernel style, but
+please convert an entire file at a time. (Rationale: apart from 2-space
+indentation, the styles are sufficiently close to not upset when mixed.)
+
+Unlike GNU style, these styles use tabs, not spaces.
+
### Compile-Time conditional code
@@ -307,4 +374,4 @@ of their debugs.
CLI's are a complicated ugly beast. Additions or changes to the CLI
should use a DEFUN to encapsulate one setting as much as is possible.
Additionally as new DEFUN's are added to the system, documentation
-should be provided for the new commands. \ No newline at end of file
+should be provided for the new commands.
diff --git a/ChangeLog b/ChangeLog
index a201bb6819..ec7e6cdde8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,4 @@
-ChangeLog information for FreeRangeRouting is for now recorded in source-code
+ChangeLog information for FRRouting is for now recorded in source-code
management system. Please see:
- http://www.freerangerouting.org/
+ http://www.frrouting.org/
diff --git a/Makefile.am b/Makefile.am
index aa978b7d25..89e7ea890e 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -17,3 +17,5 @@ EXTRA_DIST = aclocal.m4 SERVICES REPORTING-BUGS \
tools/zebra.el tools/multiple-bgpd.sh
ACLOCAL_AMFLAGS = -I m4
+
+noinst_HEADERS = defaults.h
diff --git a/REPORTING-BUGS b/REPORTING-BUGS
index ea36ff5eed..01f25a2051 100644
--- a/REPORTING-BUGS
+++ b/REPORTING-BUGS
@@ -1,5 +1,5 @@
-This file describes the procedure for reporting FreeRangeRouting bugs. You are not
-obliged to follow this format, but it would be great help for FreeRangeRouting developers
+This file describes the procedure for reporting FRRouting bugs. You are not
+obliged to follow this format, but it would be great help for FRRouting developers
if you report a bug as described below.
Bugs submitted with woefully incomplete information may be summarily
@@ -10,10 +10,10 @@ non-response to requests to reconfirm or supply additional
information.
Report bugs on Github Issue Tracker at
- https://github.com/freerangerouting/frr/issues
+ https://github.com/frrouting/frr/issues
Please supply the following information:
-1. Your FreeRangeRouting version or if it is from git then the commit reference.
+1. Your FRRouting version or if it is from git then the commit reference.
Please try to report bugs against git master or the latest release.
2. FRR daemons you run e.g. bgpd or ripd and full name of your OS. Any
specific options you compiled Quagga with.
diff --git a/bgpd/bgpd.c b/bgpd/bgpd.c
index 30243e80b2..2b4f4c2695 100644
--- a/bgpd/bgpd.c
+++ b/bgpd/bgpd.c
@@ -2937,10 +2937,18 @@ bgp_create (as_t *as, const char *name, enum bgp_instance_type inst_type)
bgp->stalepath_time = BGP_DEFAULT_STALEPATH_TIME;
bgp->dynamic_neighbors_limit = BGP_DYNAMIC_NEIGHBORS_LIMIT_DEFAULT;
bgp->dynamic_neighbors_count = 0;
+#if DFLT_BGP_IMPORT_CHECK
bgp_flag_set (bgp, BGP_FLAG_IMPORT_CHECK);
+#endif
+#if DFLT_BGP_SHOW_HOSTNAME
bgp_flag_set (bgp, BGP_FLAG_SHOW_HOSTNAME);
+#endif
+#if DFLT_BGP_LOG_NEIGHBOR_CHANGES
bgp_flag_set (bgp, BGP_FLAG_LOG_NEIGHBOR_CHANGES);
+#endif
+#if DFLT_BGP_DETERMINISTIC_MED
bgp_flag_set (bgp, BGP_FLAG_DETERMINISTIC_MED);
+#endif
bgp->addpath_tx_id = BGP_ADDPATH_TX_ID_FOR_DEFAULT_ORIGINATE;
bgp->as = *as;
@@ -7379,8 +7387,11 @@ bgp_config_write (struct vty *vty)
inet_ntoa (bgp->router_id_static), VTY_NEWLINE);
/* BGP log-neighbor-changes. */
- if (!bgp_flag_check (bgp, BGP_FLAG_LOG_NEIGHBOR_CHANGES))
- vty_out (vty, " no bgp log-neighbor-changes%s", VTY_NEWLINE);
+ if (!!bgp_flag_check (bgp, BGP_FLAG_LOG_NEIGHBOR_CHANGES)
+ != DFLT_BGP_LOG_NEIGHBOR_CHANGES)
+ vty_out (vty, " %sbgp log-neighbor-changes%s",
+ bgp_flag_check (bgp, BGP_FLAG_LOG_NEIGHBOR_CHANGES) ? "" : "no ",
+ VTY_NEWLINE);
/* BGP configuration. */
if (bgp_flag_check (bgp, BGP_FLAG_ALWAYS_COMPARE_MED))
@@ -7396,8 +7407,11 @@ bgp_config_write (struct vty *vty)
bgp->default_local_pref, VTY_NEWLINE);
/* BGP default show-hostname */
- if (!bgp_flag_check(bgp, BGP_FLAG_SHOW_HOSTNAME))
- vty_out (vty, " no bgp default show-hostname%s", VTY_NEWLINE);
+ if (!!bgp_flag_check(bgp, BGP_FLAG_SHOW_HOSTNAME)
+ != DFLT_BGP_SHOW_HOSTNAME)
+ vty_out (vty, " %sbgp default show-hostname%s",
+ bgp_flag_check (bgp, BGP_FLAG_SHOW_HOSTNAME) ? "" : "no ",
+ VTY_NEWLINE);
/* BGP default subgroup-pkt-queue-max. */
if (bgp->default_subgroup_pkt_queue_max != BGP_DEFAULT_SUBGROUP_PKT_QUEUE_MAX)
@@ -7440,8 +7454,11 @@ bgp_config_write (struct vty *vty)
vty_out (vty, " bgp enforce-first-as%s", VTY_NEWLINE);
/* BGP deterministic-med. */
- if (!bgp_flag_check (bgp, BGP_FLAG_DETERMINISTIC_MED))
- vty_out (vty, " no bgp deterministic-med%s", VTY_NEWLINE);
+ if (!!bgp_flag_check (bgp, BGP_FLAG_DETERMINISTIC_MED)
+ != DFLT_BGP_DETERMINISTIC_MED)
+ vty_out (vty, " %sbgp deterministic-med%s",
+ bgp_flag_check (bgp, BGP_FLAG_DETERMINISTIC_MED) ? "" : "no ",
+ VTY_NEWLINE);
/* BGP update-delay. */
bgp_config_write_update_delay (vty, bgp);
@@ -7517,8 +7534,11 @@ bgp_config_write (struct vty *vty)
}
/* BGP network import check. */
- if (!bgp_flag_check (bgp, BGP_FLAG_IMPORT_CHECK))
- vty_out (vty, " no bgp network import-check%s", VTY_NEWLINE);
+ if (!!bgp_flag_check (bgp, BGP_FLAG_IMPORT_CHECK)
+ != DFLT_BGP_IMPORT_CHECK)
+ vty_out (vty, " %sbgp network import-check%s",
+ bgp_flag_check (bgp, BGP_FLAG_IMPORT_CHECK) ? "" : "no ",
+ VTY_NEWLINE);
/* BGP flag dampening. */
if (CHECK_FLAG (bgp->af_flags[AFI_IP][SAFI_UNICAST],
diff --git a/bgpd/bgpd.h b/bgpd/bgpd.h
index 9ccc0e39de..a72974bc1d 100644
--- a/bgpd/bgpd.h
+++ b/bgpd/bgpd.h
@@ -31,6 +31,7 @@ Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
#include "sockunion.h"
#include "routemap.h"
#include "linklist.h"
+#include "defaults.h"
#include "bgp_memory.h"
#define BGP_MAX_HOSTNAME 64 /* Linux max, is larger than most other sys */
@@ -1068,12 +1069,13 @@ struct bgp_nlri
#define BGP_EVENTS_MAX 15
/* BGP timers default value. */
+/* note: the DFLT_ ones depend on compile-time "defaults" selection */
#define BGP_INIT_START_TIMER 1
-#define BGP_DEFAULT_HOLDTIME 9
-#define BGP_DEFAULT_KEEPALIVE 3
+#define BGP_DEFAULT_HOLDTIME DFLT_BGP_HOLDTIME
+#define BGP_DEFAULT_KEEPALIVE DFLT_BGP_KEEPALIVE
#define BGP_DEFAULT_EBGP_ROUTEADV 0
#define BGP_DEFAULT_IBGP_ROUTEADV 0
-#define BGP_DEFAULT_CONNECT_RETRY 10
+#define BGP_DEFAULT_CONNECT_RETRY DFLT_BGP_TIMERS_CONNECT
/* BGP default local preference. */
#define BGP_DEFAULT_LOCAL_PREF 100
diff --git a/configure.ac b/configure.ac
index e46e44a8b7..1c34e6f489 100755
--- a/configure.ac
+++ b/configure.ac
@@ -1,5 +1,5 @@
##
-## Configure template file for FreeRangeRouting.
+## Configure template file for FRRouting.
## autoconf will generate configure script.
##
## Copyright (c) 1996, 97, 98, 99, 2000 Kunihiro Ishiguro <kunihiro@zebra.org>
@@ -7,9 +7,9 @@
##
AC_PREREQ(2.60)
-AC_INIT(frr, 2.1-dev, [https://github.com/freerangerouting/frr/issues])
-PACKAGE_URL="https://freerangerouting.org/"
-PACKAGE_FULLNAME="FreeRangeRouting"
+AC_INIT(frr, 2.1-dev, [https://github.com/frrouting/frr/issues])
+PACKAGE_URL="https://frrouting.org/"
+PACKAGE_FULLNAME="FRRouting"
AC_SUBST(PACKAGE_FULLNAME)
CONFIG_ARGS="$ac_configure_args"
@@ -352,7 +352,12 @@ AC_SUBST(MPLS_METHOD)
if test "${enable_cumulus}" = "yes" ; then
AC_DEFINE(HAVE_CUMULUS,,Compile Special Cumulus Code in)
+ DFLT_NAME="datacenter"
+else
+ DFLT_NAME="traditional"
fi
+AC_SUBST(DFLT_NAME)
+AC_DEFINE_UNQUOTED(DFLT_NAME,["$DFLT_NAME"], Name of the configuration default set)
if test "${enable_shell_access}" = "yes"; then
AC_DEFINE(HAVE_SHELL_ACCESS,,Allow user to use ssh/telnet/bash)
@@ -1681,6 +1686,7 @@ AC_CONFIG_FILES([Makefile lib/Makefile qpb/Makefile zebra/Makefile ripd/Makefile
snapcraft/Makefile
snapcraft/snapcraft.yaml
lib/version.h
+ tests/lib/cli/test_cli.refout
doc/defines.texi
doc/bgpd.8
doc/isisd.8
@@ -1716,7 +1722,7 @@ AC_CONFIG_FILES([vtysh/extract.pl],[chmod +x vtysh/extract.pl])
AC_OUTPUT
echo "
-FreeRangeRouting configuration
+FRRouting configuration
------------------------------
FRR version : ${PACKAGE_VERSION}
host operating system : ${host_os}
diff --git a/debian/README.Debian b/debian/README.Debian
index caded52075..4cf35d7e32 100644
--- a/debian/README.Debian
+++ b/debian/README.Debian
@@ -14,7 +14,7 @@ available forcing you to explicitly type "apt-get install frr" to upgrade it.
* What is frr?
=================
-http://www.freerangerouting.org/
+http://www.frrouting.org/
FRR is a routing software suite, providing implementations of OSPFv2,
OSPFv3, RIP v1 and v2, RIPng, ISIS, PIM, BGP and LDP for Unix platforms, particularly
FreeBSD and Linux and also NetBSD, to mention a few. FRR is a fork of Quagga
diff --git a/debian/copyright b/debian/copyright
index 6a5ed98f91..7b873abd31 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -1,7 +1,7 @@
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: Frr
-Upstream-Contact: maintainers@freerangerouting.org, security@freerangerouting.org
-Source: http://www.freerangerouting.org/
+Upstream-Contact: maintainers@frrouting.org, security@frrouting.org
+Source: http://www.frrouting.org/
Files: *
Copyright: 1996-2003 by the original Zebra authors:
diff --git a/defaults.h b/defaults.h
new file mode 100644
index 0000000000..57e35f3ce6
--- /dev/null
+++ b/defaults.h
@@ -0,0 +1,54 @@
+/*
+ * FRR switchable defaults.
+ * Copyright (C) 2017 David Lamparter for NetDEF, Inc.
+ *
+ * This file is part of FRRouting (FRR).
+ *
+ * FRR is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU General Public License as published by the Free Software
+ * Foundation; either version 2, or (at your option) any later version.
+ *
+ * FRR is distributed in the hope that it will be useful, but WITHOUT ANY
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with FRR; see the file COPYING. If not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef _FRR_DEFAULTS_H
+#define _FRR_DEFAULTS_H
+
+#include "config.h"
+
+#ifdef HAVE_CUMULUS
+
+#define DFLT_BGP_IMPORT_CHECK 1
+#define DFLT_BGP_TIMERS_CONNECT 10
+#define DFLT_BGP_HOLDTIME 9
+#define DFLT_BGP_KEEPALIVE 3
+#define DFLT_BGP_LOG_NEIGHBOR_CHANGES 1
+#define DFLT_BGP_SHOW_HOSTNAME 1
+#define DFLT_BGP_DETERMINISTIC_MED 1
+
+#define DFLT_OSPF_LOG_ADJACENCY_CHANGES 1
+#define DFLT_OSPF6_LOG_ADJACENCY_CHANGES 1
+
+#else /* !HAVE_CUMULUS */
+
+#define DFLT_BGP_IMPORT_CHECK 0
+#define DFLT_BGP_TIMERS_CONNECT 120
+#define DFLT_BGP_HOLDTIME 180
+#define DFLT_BGP_KEEPALIVE 60
+#define DFLT_BGP_LOG_NEIGHBOR_CHANGES 0
+#define DFLT_BGP_SHOW_HOSTNAME 0
+#define DFLT_BGP_DETERMINISTIC_MED 0
+
+#define DFLT_OSPF_LOG_ADJACENCY_CHANGES 0
+#define DFLT_OSPF6_LOG_ADJACENCY_CHANGES 0
+
+#endif /* !HAVE_CUMULUS */
+
+#endif /* _FRR_DEFAULTS_H */
diff --git a/doc/Building_FRR_on_CentOS6.md b/doc/Building_FRR_on_CentOS6.md
index b18e53470b..9f40418fff 100644
--- a/doc/Building_FRR_on_CentOS6.md
+++ b/doc/Building_FRR_on_CentOS6.md
@@ -69,7 +69,7 @@ any packages**
sudo groupadd -g 92 frr
sudo groupadd -r -g 85 frrvt
sudo useradd -u 92 -g 92 -M -r -G frrvt -s /sbin/nologin \
- -c "FRR FreeRangeRouting suite" -d /var/run/frr frr
+ -c "FRR FRRouting suite" -d /var/run/frr frr
### Download Source, configure and compile it
(You may prefer different options on configure statement. These are just
@@ -78,7 +78,7 @@ an example.)
You may want to pay special attention to `/usr/lib64` paths and change
them if you are not building on a x86_64 architecture
- git clone https://github.com/freerangerouting/frr.git frr
+ git clone https://github.com/frrouting/frr.git frr
cd frr
./bootstrap.sh
./configure \
diff --git a/doc/Building_FRR_on_CentOS7.md b/doc/Building_FRR_on_CentOS7.md
index e24c73a175..0ab5c0ff54 100644
--- a/doc/Building_FRR_on_CentOS7.md
+++ b/doc/Building_FRR_on_CentOS7.md
@@ -32,7 +32,7 @@ any packages**
sudo groupadd -g 92 frr
sudo groupadd -r -g 85 frrvt
sudo useradd -u 92 -g 92 -M -r -G frrvt -s /sbin/nologin \
- -c "FRR FreeRangeRouting suite" -d /var/run/frr frr
+ -c "FRR FRRouting suite" -d /var/run/frr frr
### Download Source, configure and compile it
(You may prefer different options on configure statement. These are just
@@ -41,7 +41,7 @@ an example.)
You may want to pay special attention to `/usr/lib64` paths and change
them if you are not building on a x86_64 architecture
- git clone https://github.com/freerangerouting/frr.git frr
+ git clone https://github.com/frrouting/frr.git frr
cd frr
./bootstrap.sh
./configure \
diff --git a/doc/Building_FRR_on_Debian8.md b/doc/Building_FRR_on_Debian8.md
index 1acbb802f6..b902033d5e 100644
--- a/doc/Building_FRR_on_Debian8.md
+++ b/doc/Building_FRR_on_Debian8.md
@@ -32,14 +32,14 @@ any packages**
sudo addgroup --system --gid 92 frr
sudo addgroup --system --gid 85 frrvty
sudo adduser --system --ingroup frr --groups frrvty --home /var/run/frr/ \
- --gecos "FRR FreeRangeRouting suite" --shell /bin/false frr
+ --gecos "FRR FRRouting suite" --shell /bin/false frr
sudo usermode
### Download Source, configure and compile it
(You may prefer different options on configure statement. These are just
an example.)
- git clone https://github.com/freerangerouting/frr.git frr
+ git clone https://github.com/frrouting/frr.git frr
cd frr
./bootstrap.sh
./configure \
diff --git a/doc/Building_FRR_on_Fedora24.md b/doc/Building_FRR_on_Fedora24.md
index 0b9872bb09..941126da42 100644
--- a/doc/Building_FRR_on_Fedora24.md
+++ b/doc/Building_FRR_on_Fedora24.md
@@ -22,7 +22,7 @@ using any packages**
sudo groupadd -g 92 frr
sudo groupadd -r -g 85 frrvt
sudo useradd -u 92 -g 92 -M -r -G frrvt -s /sbin/nologin \
- -c "FRR FreeRangeRouting suite" -d /var/run/frr frr
+ -c "FRR FRRouting suite" -d /var/run/frr frr
### Download Source, configure and compile it
(You may prefer different options on configure statement. These are just
@@ -31,7 +31,7 @@ an example.)
You may want to pay special attention to `/usr/lib64` paths and change
them if you are not building on a x86_64 architecture
- git clone https://github.com/freerangerouting/frr.git frr
+ git clone https://github.com/frrouting/frr.git frr
cd frr
./bootstrap.sh
./configure \
diff --git a/doc/Building_FRR_on_FreeBSD10.md b/doc/Building_FRR_on_FreeBSD10.md
index 5f50bee0d9..36ef573bb0 100644
--- a/doc/Building_FRR_on_FreeBSD10.md
+++ b/doc/Building_FRR_on_FreeBSD10.md
@@ -41,7 +41,7 @@ using any packages**
(You may prefer different options on configure statement. These are just
an example)
- git clone https://github.com/freerangerouting/frr.git frr
+ git clone https://github.com/frrouting/frr.git frr
cd frr
./bootstrap.sh
export MAKE=gmake
diff --git a/doc/Building_FRR_on_FreeBSD11.md b/doc/Building_FRR_on_FreeBSD11.md
index 9b327af1fd..d6affd688b 100644
--- a/doc/Building_FRR_on_FreeBSD11.md
+++ b/doc/Building_FRR_on_FreeBSD11.md
@@ -41,7 +41,7 @@ using any packages**
(You may prefer different options on configure statement. These are just
an example)
- git clone https://github.com/freerangerouting/frr.git frr
+ git clone https://github.com/frrouting/frr.git frr
cd frr
./bootstrap.sh
export MAKE=gmake
diff --git a/doc/Building_FRR_on_FreeBSD9.md b/doc/Building_FRR_on_FreeBSD9.md
index 2fd4f1095c..41d3148ad7 100644
--- a/doc/Building_FRR_on_FreeBSD9.md
+++ b/doc/Building_FRR_on_FreeBSD9.md
@@ -49,7 +49,7 @@ using any packages**
(You may prefer different options on configure statement. These are just
an example)
- git clone https://github.com/freerangerouting/frr.git frr
+ git clone https://github.com/frrouting/frr.git frr
cd frr
./bootstrap.sh
export MAKE=gmake
diff --git a/doc/Building_FRR_on_NetBSD6.md b/doc/Building_FRR_on_NetBSD6.md
index 3a2dea7c20..542a7f489e 100644
--- a/doc/Building_FRR_on_NetBSD6.md
+++ b/doc/Building_FRR_on_NetBSD6.md
@@ -45,7 +45,7 @@ Get FRR, compile it and install it (from Git)
(You may prefer different options on configure statement. These are just
an example)
- git clone https://github.com/freerangerouting/frr.git frr
+ git clone https://github.com/frrouting/frr.git frr
cd frr
./bootstrap.sh
MAKE=gmake
diff --git a/doc/Building_FRR_on_NetBSD7.md b/doc/Building_FRR_on_NetBSD7.md
index 38a116f4f1..821a6109f2 100644
--- a/doc/Building_FRR_on_NetBSD7.md
+++ b/doc/Building_FRR_on_NetBSD7.md
@@ -39,7 +39,7 @@ Get FRR, compile it and install it (from Git)
(You may prefer different options on configure statement. These are just
an example)
- git clone https://github.com/freerangerouting/frr.git frr
+ git clone https://github.com/frrouting/frr.git frr
cd frr
./bootstrap.sh
MAKE=gmake
diff --git a/doc/Building_FRR_on_OmniOS.md b/doc/Building_FRR_on_OmniOS.md
index a64b054417..2e9871467b 100644
--- a/doc/Building_FRR_on_OmniOS.md
+++ b/doc/Building_FRR_on_OmniOS.md
@@ -87,7 +87,7 @@ any packages**
(You may prefer different options on configure statement. These are just
an example)
- git clone https://github.com/freerangerouting/frr.git frr
+ git clone https://github.com/frrouting/frr.git frr
cd frr
./bootstrap.sh
export MAKE=gmake
diff --git a/doc/Building_FRR_on_OpenBSD6.md b/doc/Building_FRR_on_OpenBSD6.md
index 14a703b1d3..a59452a72b 100644
--- a/doc/Building_FRR_on_OpenBSD6.md
+++ b/doc/Building_FRR_on_OpenBSD6.md
@@ -34,7 +34,7 @@ any packages**
(You may prefer different options on configure statement. These are just
an example)
- git clone https://github.com/freerangerouting/frr.git frr
+ git clone https://github.com/frrouting/frr.git frr
cd frr
./bootstrap.sh
export LDFLAGS="-L/usr/local/lib"
diff --git a/doc/Building_FRR_on_Ubuntu1204.md b/doc/Building_FRR_on_Ubuntu1204.md
index 03d66af629..82404097c5 100644
--- a/doc/Building_FRR_on_Ubuntu1204.md
+++ b/doc/Building_FRR_on_Ubuntu1204.md
@@ -72,7 +72,7 @@ any packages**
(You may prefer different options on configure statement. These are just
an example.)
- git clone https://github.com/freerangerouting/frr.git frr
+ git clone https://github.com/frrouting/frr.git frr
cd frr
./bootstrap.sh
./configure \
diff --git a/doc/Building_FRR_on_Ubuntu1404.md b/doc/Building_FRR_on_Ubuntu1404.md
index 5de2fd8bb9..0d7c6f76fe 100644
--- a/doc/Building_FRR_on_Ubuntu1404.md
+++ b/doc/Building_FRR_on_Ubuntu1404.md
@@ -32,7 +32,7 @@ any packages**
(You may prefer different options on configure statement. These are just
an example.)
- git clone https://github.com/freerangerouting/frr.git frr
+ git clone https://github.com/frrouting/frr.git frr
cd frr
./bootstrap.sh
./configure \
diff --git a/doc/Building_FRR_on_Ubuntu1604.md b/doc/Building_FRR_on_Ubuntu1604.md
index 996b8da898..b6e18088f0 100644
--- a/doc/Building_FRR_on_Ubuntu1604.md
+++ b/doc/Building_FRR_on_Ubuntu1604.md
@@ -33,7 +33,7 @@ any packages**
(You may prefer different options on configure statement. These are just
an example.)
- git clone https://github.com/freerangerouting/frr.git frr
+ git clone https://github.com/frrouting/frr.git frr
cd frr
./bootstrap.sh
./configure \
diff --git a/doc/frr.texi b/doc/frr.texi
index a64dc9e729..b08bb6fd04 100644
--- a/doc/frr.texi
+++ b/doc/frr.texi
@@ -7,7 +7,7 @@
@setfilename frr.info
@c Set variables - sourced from defines.texi
@include defines.texi
-@settitle @uref{http://www.freerangerouting.org,,@value{PACKAGE_NAME}}
+@settitle @uref{http://www.frrouting.org,,@value{PACKAGE_NAME}}
@c %**end of header
@c automake will automatically generate version.texi
@@ -48,16 +48,16 @@ This file documents the Frr Software Routing Suite which manages common
TCP/IP routing protocols.
This is Edition @value{EDITION}, last updated @value{UPDATED} of
-@cite{The Frr Manual}, for @uref{http://www.freerangerouting.org/,,@value{PACKAGE_NAME}}
+@cite{The Frr Manual}, for @uref{http://www.frrouting.org/,,@value{PACKAGE_NAME}}
Version @value{VERSION}.
@insertcopying
@end ifinfo
@titlepage
-@title @uref{http://www.freerangerouting.org,,Frr}
+@title @uref{http://www.frrouting.org,,Frr}
@subtitle A routing software package for TCP/IP networks
-@subtitle @uref{http://www.freerangerouting.org,,@value{PACKAGE_NAME}} @value{VERSION}
+@subtitle @uref{http://www.frrouting.org,,@value{PACKAGE_NAME}} @value{VERSION}
@subtitle @value{UPDATED-MONTH}
@author @value{AUTHORS}
@@ -72,9 +72,9 @@ Version @value{VERSION}.
@node Top
@top Frr -- With Virtual Network Control
-@uref{http://www.freerangerouting.org,,Frr} is an advanced routing software package
+@uref{http://www.frrouting.org,,Frr} is an advanced routing software package
that provides a suite of TCP/IP based routing protocols. This is the Manual
-for @value{PACKAGE_STRING}. @uref{http://www.freerangerouting.org,,Frr} is a fork of
+for @value{PACKAGE_STRING}. @uref{http://www.frrouting.org,,Frr} is a fork of
@uref{http://www.quagga.net,,Quagga}.
@insertcopying
diff --git a/doc/git_branches.svg b/doc/git_branches.svg
index 3943eeacc8..0c2c96e39e 100644
--- a/doc/git_branches.svg
+++ b/doc/git_branches.svg
@@ -1,3 +1,720 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" viewBox="52,37,407,656" width="407" height="656" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g><path fill="none" stroke="#008000" stroke-width="8" d="M288,252 L288,98.125"/><path fill="#008000" d="M277,99.5 L288,72 L299,99.5"/></g><path fill="none" stroke="#008000" stroke-width="8" d="M288.084,324 L216,288"/><g><path fill="none" stroke="#000100" stroke-width="8" d="M216,98.125 L216,684"/><path fill="#000100" d="M205,99.5 L216,72 L227,99.5"/><path fill="#000100" d="M225.625,692.25 L216,684 L206.375,692.25 L206.375,662 L216,653.75 L225.625,662"/></g><path fill="none" stroke="#f00" stroke-width="8" d="M216,648 L144,612"/><path fill="none" stroke="#f00" stroke-width="8" d="M216,432 L144,396"/><path fill="none" stroke="#008000" stroke-width="8" d="M216,612 L288.084,648"/><path fill="none" stroke="#008000" stroke-width="8" d="M216,468 L288.084,504"/><path fill="none" stroke="#008000" stroke-width="8" d="M288.084,180 L216,144"/><text fill="#f00" font-family="Helvetica" font-weight="bold" font-size="12" text-anchor="middle" transform="matrix(1,0,0,1,146.988,431.607)" xml:space="preserve"><tspan>1.0</tspan><tspan x="0" y="16">Release</tspan><tspan x="0" y="32">Branch</tspan></text><path fill="none" stroke="#008000" stroke-width="8" d="M288.084,396 L216,360"/><path fill="none" stroke="#008000" stroke-width="8" d="M288.084,432 L216,396"/><path fill="none" stroke="#f00" stroke-width="8" d="M216.832,396 L144,360"/><path fill="none" stroke="#f00" stroke-width="8" d="M215.832,360 L144,324"/><path fill="#fffffe" stroke="#000100" d="M224,648 C224,652.418,220.418,656,216,656 C211.582,656,208,652.418,208,648 C208,643.582,211.582,640,216,640 C220.418,640,224,643.582,224,648 Z"/><path fill="#fffffe" stroke="#000100" d="M224,468 C224,472.418,220.418,476,216,476 C211.582,476,208,472.418,208,468 C208,463.582,211.582,460,216,460 C220.418,460,224,463.582,224,468 Z"/><path fill="#fffffe" stroke="#000100" d="M224,432 C224,436.418,220.418,440,216,440 C211.582,440,208,436.418,208,432 C208,427.582,211.582,424,216,424 C220.418,424,224,427.582,224,432 Z"/><path fill="#fffffe" stroke="#000100" d="M224,612 C224,616.418,220.418,620,216,620 C211.582,620,208,616.418,208,612 C208,607.582,211.582,604,216,604 C220.418,604,224,607.582,224,612 Z"/><path fill="#fffffe" stroke="#000100" d="M224,144 C224,148.418,220.418,152,216,152 C211.582,152,208,148.418,208,144 C208,139.582,211.582,136,216,136 C220.418,136,224,139.582,224,144 Z"/><path fill="#fffffe" stroke="#000100" d="M296,144 C296,148.418,292.418,152,288,152 C283.582,152,280,148.418,280,144 C280,139.582,283.582,136,288,136 C292.418,136,296,139.582,296,144 Z"/><path fill="#fffffe" stroke="#000100" d="M224,360 C224,364.418,220.418,368,216,368 C211.582,368,208,364.418,208,360 C208,355.582,211.582,352,216,352 C220.418,352,224,355.582,224,360 Z"/><path fill="#fffffe" stroke="#000100" d="M224,396 C224,400.418,220.418,404,216,404 C211.582,404,208,400.418,208,396 C208,391.582,211.582,388,216,388 C220.418,388,224,391.582,224,396 Z"/><text fill="#000100" font-family="Helvetica" font-weight="bold" font-size="12" text-anchor="middle" transform="matrix(1,0,0,1,216.312,49.5293)" xml:space="preserve"><tspan>Master</tspan><tspan x="0" y="16">(Stable)</tspan></text><g><path fill="none" stroke="#008000" stroke-width="8" d="M288,684 L288,432"/><path fill="#008000" d="M297.625,692.25 L288,684 L278.375,692.25 L278.375,662 L288,653.75 L297.625,662"/></g><path fill="none" stroke="#008000" stroke-width="8" d="M288,432 L288,252"/><path fill="#fffffe" stroke="#000100" d="M296,648 C296,652.418,292.418,656,288,656 C283.582,656,280,652.418,280,648 C280,643.582,283.582,640,288,640 C292.418,640,296,643.582,296,648 Z"/><text fill="#008000" font-family="Helvetica" font-weight="bold" font-size="12" text-anchor="middle" transform="matrix(1,0,0,1,287.841,62.2383)" xml:space="preserve"><tspan>Develop</tspan></text><g><path fill="none" stroke="#f00" stroke-width="8" d="M144.832,612 L144.832,494.125"/><path fill="#f00" d="M133.832,495.5 L144.832,468 L155.832,495.5"/></g><g><path fill="none" stroke="#f00" stroke-width="8" d="M144.832,396 L144.832,206.125"/><path fill="#f00" d="M133.832,207.5 L144.832,180 L155.832,207.5"/></g><text fill="#f00" font-family="Helvetica" font-weight="bold" font-size="12" text-anchor="middle" transform="matrix(1,0,0,1,146.988,142.607)" xml:space="preserve"><tspan>1.1</tspan><tspan x="0" y="16">Release</tspan><tspan x="0" y="32">Branch</tspan></text><text fill="#000100" font-family="Helvetica" font-size="12" transform="matrix(1,0,0,1,55,615.76)" xml:space="preserve"><tspan>Version 1.</tspan><tspan>0.a1</tspan></text><text fill="#000100" font-family="Helvetica" font-size="12" transform="matrix(1,0,0,1,55.7734,399.76)" xml:space="preserve"><tspan>Version 1.1.a1</tspan></text><text fill="#000100" font-family="Helvetica" font-size="12" transform="matrix(1,0,0,1,55,363.76)" xml:space="preserve"><tspan>Version 1.1.a2</tspan></text><path fill="#fffffe" stroke="#000100" d="M152,612 C152,616.418,148.418,620,144,620 C139.582,620,136,616.418,136,612 C136,607.582,139.582,604,144,604 C148.418,604,152,607.582,152,612 Z"/><path fill="#fffffe" stroke="#000100" d="M152,396 C152,400.418,148.418,404,144,404 C139.582,404,136,400.418,136,396 C136,391.582,139.582,388,144,388 C148.418,388,152,391.582,152,396 Z"/><path fill="#fffffe" stroke="#000100" d="M152,360 C152,364.418,148.418,368,144,368 C139.582,368,136,364.418,136,360 C136,355.582,139.582,352,144,352 C148.418,352,152,355.582,152,360 Z"/><path fill="#fffffe" stroke="#000100" d="M152,324 C152,328.418,148.418,332,144,332 C139.582,332,136,328.418,136,324 C136,319.582,139.582,316,144,316 C148.418,316,152,319.582,152,324 Z"/><text fill="#000100" font-family="Helvetica" font-size="12" transform="matrix(1,0,0,1,55.7734,327.76)" xml:space="preserve"><tspan>Version 1.</tspan><tspan>1.b1</tspan></text><path fill="#fffffe" stroke="#000100" d="M296,612 C296,616.418,292.418,620,288,620 C283.582,620,280,616.418,280,612 C280,607.582,283.582,604,288,604 C292.418,604,296,607.582,296,612 Z"/><path fill="#fffffe" stroke="#000100" d="M296,540 C296,544.418,292.418,548,288,548 C283.582,548,280,544.418,280,540 C280,535.582,283.582,532,288,532 C292.418,532,296,535.582,296,540 Z"/><path fill="#fffffe" stroke="#000100" d="M296,576 C296,580.418,292.418,584,288,584 C283.582,584,280,580.418,280,576 C280,571.582,283.582,568,288,568 C292.418,568,296,571.582,296,576 Z"/><path fill="#fffffe" stroke="#000100" d="M296,467 C296,471.418,292.418,475,288,475 C283.582,475,280,471.418,280,467 C280,462.582,283.582,459,288,459 C292.418,459,296,462.582,296,467 Z"/><path fill="#fffffe" stroke="#000100" d="M296,503 C296,507.418,292.418,511,288,511 C283.582,511,280,507.418,280,503 C280,498.582,283.582,495,288,495 C292.418,495,296,498.582,296,503 Z"/><path fill="#fffffe" stroke="#000100" d="M296,396 C296,400.418,292.418,404,288,404 C283.582,404,280,400.418,280,396 C280,391.582,283.582,388,288,388 C292.418,388,296,391.582,296,396 Z"/><path fill="#fffffe" stroke="#000100" d="M296,432 C296,436.418,292.418,440,288,440 C283.582,440,280,436.418,280,432 C280,427.582,283.582,424,288,424 C292.418,424,296,427.582,296,432 Z"/><path fill="#fffffe" stroke="#000100" d="M296,324 C296,328.418,292.418,332,288,332 C283.582,332,280,328.418,280,324 C280,319.582,283.582,316,288,316 C292.418,316,296,319.582,296,324 Z"/><path fill="#fffffe" stroke="#000100" d="M296,360 C296,364.418,292.418,368,288,368 C283.582,368,280,364.418,280,360 C280,355.582,283.582,352,288,352 C292.418,352,296,355.582,296,360 Z"/><path fill="#fffffe" stroke="#000100" d="M296,251 C296,255.418,292.418,259,288,259 C283.582,259,280,255.418,280,251 C280,246.582,283.582,243,288,243 C292.418,243,296,246.582,296,251 Z"/><path fill="#fffffe" stroke="#000100" d="M296,287 C296,291.418,292.418,295,288,295 C283.582,295,280,291.418,280,287 C280,282.582,283.582,279,288,279 C292.418,279,296,282.582,296,287 Z"/><path fill="#fffffe" stroke="#000100" d="M296,179 C296,183.418,292.418,187,288,187 C283.582,187,280,183.418,280,179 C280,174.582,283.582,171,288,171 C292.418,171,296,174.582,296,179 Z"/><path fill="#fffffe" stroke="#000100" d="M296,215 C296,219.418,292.418,223,288,223 C283.582,223,280,219.418,280,215 C280,210.582,283.582,207,288,207 C292.418,207,296,210.582,296,215 Z"/><g><path fill="none" stroke="#666" stroke-width="4" d="M432,540 L304.625,540"/><path fill="#666" d="M305.5,547 L288,540 L305.5,533"/></g><g><path fill="none" stroke="#666" stroke-width="4" d="M432,504 L304.625,504"/><path fill="#666" d="M305.5,511 L288,504 L305.5,497"/></g><g><path fill="none" stroke="#666" stroke-width="4" d="M432,468 L304.625,468"/><path fill="#666" d="M305.5,475 L288,468 L305.5,461"/></g><g><path fill="none" stroke="#666" stroke-width="4" d="M432,432 L304.625,432"/><path fill="#666" d="M305.5,439 L288,432 L305.5,425"/></g><g><path fill="none" stroke="#666" stroke-width="4" d="M432,396 L304.625,396"/><path fill="#666" d="M305.5,403 L288,396 L305.5,389"/></g><g><path fill="none" stroke="#666" stroke-width="4" d="M432,360 L304.625,360"/><path fill="#666" d="M305.5,367 L288,360 L305.5,353"/></g><g><path fill="none" stroke="#666" stroke-width="4" d="M432,324 L304.625,324"/><path fill="#666" d="M305.5,331 L288,324 L305.5,317"/></g><g><path fill="none" stroke="#666" stroke-width="4" d="M432,288 L304.625,288"/><path fill="#666" d="M305.5,295 L288,288 L305.5,281"/></g><g><path fill="none" stroke="#666" stroke-width="4" d="M432,252 L304.625,252"/><path fill="#666" d="M305.5,259 L288,252 L305.5,245"/></g><g><path fill="none" stroke="#666" stroke-width="4" d="M432,216 L304.625,216"/><path fill="#666" d="M305.5,223 L288,216 L305.5,209"/></g><g><path fill="none" stroke="#666" stroke-width="4" d="M404,180 L304.625,180"/><path fill="#666" d="M305.5,187 L288,180 L305.5,173"/></g><g><path fill="none" stroke="#666" stroke-width="4" d="M432,180 L304.625,180"/><path fill="#666" d="M305.5,187 L288,180 L305.5,173"/></g><g><path fill="none" stroke="#666" stroke-width="4" d="M432,144 L304.625,144"/><path fill="#666" d="M305.5,151 L288,144 L305.5,137"/></g><text fill="#000100" font-family="Helvetica" font-size="12" transform="matrix(1,0,0,1,324,535)" xml:space="preserve"><tspan>Patch Email (Patchwork)</tspan></text><text fill="#000100" font-family="Helvetica" font-size="12" transform="matrix(1,0,0,1,324,499)" xml:space="preserve"><tspan>Github Pull Request</tspan></text><text fill="#000100" font-family="Helvetica" font-size="12" transform="matrix(1,0,0,1,324,463)" xml:space="preserve"><tspan>Github Pull Request</tspan></text><text fill="#000100" font-family="Helvetica" font-size="12" transform="matrix(1,0,0,1,324,427)" xml:space="preserve"><tspan>Patch Email (Patchwork)</tspan></text><text fill="#000100" font-family="Helvetica" font-size="12" transform="matrix(1,0,0,1,324,391)" xml:space="preserve"><tspan>Patch Email (Patchwork)</tspan></text><text fill="#000100" font-family="Helvetica" font-size="12" transform="matrix(1,0,0,1,324,355)" xml:space="preserve"><tspan>Github Pull Request</tspan></text><text fill="#000100" font-family="Helvetica" font-size="12" transform="matrix(1,0,0,1,324,319)" xml:space="preserve"><tspan>Github Pull Request</tspan></text><text fill="#000100" font-family="Helvetica" font-size="12" transform="matrix(1,0,0,1,324,283)" xml:space="preserve"><tspan>Github Pull Request</tspan></text><text fill="#000100" font-family="Helvetica" font-size="12" transform="matrix(1,0,0,1,324,247)" xml:space="preserve"><tspan>Patch Email (Patchwork)</tspan></text><text fill="#000100" font-family="Helvetica" font-size="12" transform="matrix(1,0,0,1,324,211)" xml:space="preserve"><tspan>Github Pull Request</tspan></text><text fill="#000100" font-family="Helvetica" font-size="12" transform="matrix(1,0,0,1,324,175)" xml:space="preserve"><tspan>Github Pull Request</tspan></text><text fill="#000100" font-family="Helvetica" font-size="12" transform="matrix(1,0,0,1,324,139)" xml:space="preserve"><tspan>Github Pull Request</tspan></text><text fill="#000100" font-family="Helvetica" font-size="12" transform="matrix(1,0,0,1,324,607)" xml:space="preserve"><tspan>Github Pull Request</tspan></text><text fill="#000100" font-family="Helvetica" font-size="12" transform="matrix(1,0,0,1,324,571)" xml:space="preserve"><tspan>Github Pull Request</tspan></text><text fill="#000100" font-family="Helvetica" font-size="12" transform="matrix(1,0,0,1,324,571)" xml:space="preserve"><tspan>Github Pull Request</tspan></text><g><path fill="none" stroke="#666" stroke-width="4" d="M432,612 L304.28,612"/><path fill="#666" d="M305.155,619 L287.655,612 L305.155,605"/></g><g><path fill="none" stroke="#666" stroke-width="4" d="M432,576 L304.625,576"/><path fill="#666" d="M305.5,583 L288,576 L305.5,569"/></g><text fill="#000100" font-family="Helvetica" font-size="12" transform="matrix(1,0,0,1,56,581)" xml:space="preserve"><tspan>Version 1.</tspan><tspan>0.a2</tspan></text><text fill="#000100" font-family="Helvetica" font-size="12" transform="matrix(1,0,0,1,56,545)" xml:space="preserve"><tspan>Version 1.</tspan><tspan>0.b1</tspan></text><text fill="#000100" font-family="Helvetica" font-size="12" transform="matrix(1,0,0,1,56,509)" xml:space="preserve"><tspan>Version 1.</tspan><tspan>0.0</tspan></text><text fill="#000100" font-family="Helvetica" font-size="12" transform="matrix(1,0,0,1,55.7734,292.76)" xml:space="preserve"><tspan>Version 1.1.0</tspan></text><text fill="#000100" font-family="Helvetica" font-size="12" transform="matrix(1,0,0,1,55,256.76)" xml:space="preserve"><tspan>Version 1.1.1</tspan></text><text fill="#000100" font-family="Helvetica" font-size="12" transform="matrix(1,0,0,1,55.7734,220.76)" xml:space="preserve"><tspan>Version 1.</tspan><tspan>1.2</tspan></text><path fill="none" stroke="#f00" stroke-width="8" d="M216,612 L144,576"/><path fill="none" stroke="#f00" stroke-width="8" d="M216,576 L144,540"/><path fill="none" stroke="#f00" stroke-width="8" d="M216,540 L144,504"/><path fill="none" stroke="#f00" stroke-width="8" d="M216,324 L144,288"/><path fill="none" stroke="#f00" stroke-width="8" d="M216,288 L144,252"/><path fill="none" stroke="#f00" stroke-width="8" d="M216,252 L144,216"/><path fill="#fffffe" stroke="#000100" d="M152,575 C152,579.418,148.418,583,144,583 C139.582,583,136,579.418,136,575 C136,570.582,139.582,567,144,567 C148.418,567,152,570.582,152,575 Z"/><path fill="#fffffe" stroke="#000100" d="M152,539 C152,543.418,148.418,547,144,547 C139.582,547,136,543.418,136,539 C136,534.582,139.582,531,144,531 C148.418,531,152,534.582,152,539 Z"/><path fill="#fffffe" stroke="#000100" d="M152,503 C152,507.418,148.418,511,144,511 C139.582,511,136,507.418,136,503 C136,498.582,139.582,495,144,495 C148.418,495,152,498.582,152,503 Z"/><path fill="#fffffe" stroke="#000100" d="M152,288 C152,292.418,148.418,296,144,296 C139.582,296,136,292.418,136,288 C136,283.582,139.582,280,144,280 C148.418,280,152,283.582,152,288 Z"/><path fill="#fffffe" stroke="#000100" d="M152,252 C152,256.418,148.418,260,144,260 C139.582,260,136,256.418,136,252 C136,247.582,139.582,244,144,244 C148.418,244,152,247.582,152,252 Z"/><path fill="#fffffe" stroke="#000100" d="M152,216 C152,220.418,148.418,224,144,224 C139.582,224,136,220.418,136,216 C136,211.582,139.582,208,144,208 C148.418,208,152,211.582,152,216 Z"/><path fill="#fffffe" stroke="#000100" d="M224,576 C224,580.418,220.418,584,216,584 C211.582,584,208,580.418,208,576 C208,571.582,211.582,568,216,568 C220.418,568,224,571.582,224,576 Z"/><path fill="#fffffe" stroke="#000100" d="M224,540 C224,544.418,220.418,548,216,548 C211.582,548,208,544.418,208,540 C208,535.582,211.582,532,216,532 C220.418,532,224,535.582,224,540 Z"/><path fill="#fffffe" stroke="#000100" d="M224,324 C224,328.418,220.418,332,216,332 C211.582,332,208,328.418,208,324 C208,319.582,211.582,316,216,316 C220.418,316,224,319.582,224,324 Z"/><path fill="#fffffe" stroke="#000100" d="M224,252 C224,256.418,220.418,260,216,260 C211.582,260,208,256.418,208,252 C208,247.582,211.582,244,216,244 C220.418,244,224,247.582,224,252 Z"/><path fill="#fffffe" stroke="#000100" d="M224,288 C224,292.418,220.418,296,216,296 C211.582,296,208,292.418,208,288 C208,283.582,211.582,280,216,280 C220.418,280,224,283.582,224,288 Z"/></svg>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ version="1.1"
+ viewBox="52 37 349.25195 651.46875"
+ width="349.25195"
+ height="651.46875"
+ id="svg2"
+ inkscape:version="0.91 r13725"
+ sodipodi:docname="git_branches.svg">
+ <metadata
+ id="metadata376">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs374" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1596"
+ inkscape:window-height="848"
+ id="namedview372"
+ showgrid="false"
+ fit-margin-top="0"
+ fit-margin-left="0"
+ fit-margin-right="0"
+ fit-margin-bottom="0"
+ inkscape:zoom="0.89517435"
+ inkscape:cx="53.149337"
+ inkscape:cy="353.95197"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg2" />
+ <g
+ id="g12"
+ transform="translate(-3.09375,-3.7812531)">
+ <path
+ d="M 216,98.125 216,684"
+ id="path14"
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000100;stroke-width:8" />
+ <path
+ d="M 205,99.5 216,72 227,99.5"
+ id="path16"
+ inkscape:connector-curvature="0"
+ style="fill:#000100" />
+ <path
+ d="M 225.625,692.25 216,684 l -9.625,8.25 0,-30.25 9.625,-8.25 9.625,8.25"
+ id="path18"
+ inkscape:connector-curvature="0"
+ style="fill:#000100" />
+ </g>
+ <path
+ d="m 212.90625,644.21875 -72,-36"
+ id="path20"
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#ff0000;stroke-width:8" />
+ <path
+ d="m 212.90625,428.21875 -72,-36"
+ id="path22"
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#ff0000;stroke-width:8" />
+ <text
+ font-weight="bold"
+ font-size="12"
+ xml:space="preserve"
+ id="text30"
+ style="font-weight:bold;font-size:12px;font-family:Helvetica;text-anchor:middle;fill:#ff0000"
+ x="143.89426"
+ y="427.82574"><tspan
+ id="tspan32">1.0</tspan><tspan
+ x="143.89426"
+ y="443.82574"
+ id="tspan34">Release</tspan><tspan
+ x="143.89426"
+ y="459.82574"
+ id="tspan36">Branch</tspan></text>
+ <path
+ d="m 213.73825,392.21875 -72.832,-36"
+ id="path42"
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#ff0000;stroke-width:8" />
+ <path
+ d="m 212.73825,356.21875 -71.832,-36"
+ id="path44"
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#ff0000;stroke-width:8" />
+ <path
+ d="m 220.90625,644.21875 c 0,4.418 -3.582,8 -8,8 -4.418,0 -8,-3.582 -8,-8 0,-4.418 3.582,-8 8,-8 4.418,0 8,3.582 8,8 z"
+ id="path46"
+ inkscape:connector-curvature="0"
+ style="fill:#fffffe;stroke:#000100" />
+ <path
+ d="m 220.90625,464.21875 c 0,4.418 -3.582,8 -8,8 -4.418,0 -8,-3.582 -8,-8 0,-4.418 3.582,-8 8,-8 4.418,0 8,3.582 8,8 z"
+ id="path48"
+ inkscape:connector-curvature="0"
+ style="fill:#fffffe;stroke:#000100" />
+ <path
+ d="m 220.90625,428.21875 c 0,4.418 -3.582,8 -8,8 -4.418,0 -8,-3.582 -8,-8 0,-4.418 3.582,-8 8,-8 4.418,0 8,3.582 8,8 z"
+ id="path50"
+ inkscape:connector-curvature="0"
+ style="fill:#fffffe;stroke:#000100" />
+ <path
+ d="m 220.90625,608.21875 c 0,4.418 -3.582,8 -8,8 -4.418,0 -8,-3.582 -8,-8 0,-4.418 3.582,-8 8,-8 4.418,0 8,3.582 8,8 z"
+ id="path52"
+ inkscape:connector-curvature="0"
+ style="fill:#fffffe;stroke:#000100" />
+ <path
+ d="m 220.90625,140.21875 c 0,4.418 -3.582,8 -8,8 -4.418,0 -8,-3.582 -8,-8 0,-4.418 3.582,-8 8,-8 4.418,0 8,3.582 8,8 z"
+ id="path54"
+ inkscape:connector-curvature="0"
+ style="fill:#fffffe;stroke:#000100" />
+ <path
+ d="m 220.90625,356.21875 c 0,4.418 -3.582,8 -8,8 -4.418,0 -8,-3.582 -8,-8 0,-4.418 3.582,-8 8,-8 4.418,0 8,3.582 8,8 z"
+ id="path58"
+ inkscape:connector-curvature="0"
+ style="fill:#fffffe;stroke:#000100" />
+ <path
+ d="m 220.90625,392.21875 c 0,4.418 -3.582,8 -8,8 -4.418,0 -8,-3.582 -8,-8 0,-4.418 3.582,-8 8,-8 4.418,0 8,3.582 8,8 z"
+ id="path60"
+ inkscape:connector-curvature="0"
+ style="fill:#fffffe;stroke:#000100" />
+ <text
+ font-weight="bold"
+ font-size="12"
+ xml:space="preserve"
+ id="text62"
+ style="font-weight:bold;font-size:12px;font-family:Helvetica;text-anchor:middle;fill:#000100"
+ x="213.21825"
+ y="45.748047"><tspan
+ id="tspan64">Master</tspan><tspan
+ x="213.21825"
+ y="61.748047"
+ id="tspan66">(Stable)</tspan></text>
+ <g
+ id="g82"
+ transform="translate(-3.09375,-3.7812531)">
+ <path
+ d="m 144.832,612 0,-117.875"
+ id="path84"
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#ff0000;stroke-width:8" />
+ <path
+ d="m 133.832,495.5 11,-27.5 11,27.5"
+ id="path86"
+ inkscape:connector-curvature="0"
+ style="fill:#ff0000" />
+ </g>
+ <g
+ id="g88"
+ transform="translate(-3.09375,-3.7812531)">
+ <path
+ d="m 144.832,396 0,-189.875"
+ id="path90"
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#ff0000;stroke-width:8" />
+ <path
+ d="m 133.832,207.5 11,-27.5 11,27.5"
+ id="path92"
+ inkscape:connector-curvature="0"
+ style="fill:#ff0000" />
+ </g>
+ <text
+ font-weight="bold"
+ font-size="12"
+ xml:space="preserve"
+ id="text94"
+ style="font-weight:bold;font-size:12px;font-family:Helvetica;text-anchor:middle;fill:#ff0000"
+ x="143.89426"
+ y="138.82574"><tspan
+ id="tspan96">1.1</tspan><tspan
+ x="143.89426"
+ y="154.82574"
+ id="tspan98">Release</tspan><tspan
+ x="143.89426"
+ y="170.82574"
+ id="tspan100">Branch</tspan></text>
+ <text
+ font-size="12"
+ xml:space="preserve"
+ id="text102"
+ style="font-size:12px;font-family:Helvetica;fill:#000100"
+ x="51.90625"
+ y="611.97876"><tspan
+ id="tspan104">Version 1.</tspan><tspan
+ id="tspan106">0.a1</tspan></text>
+ <text
+ font-size="12"
+ xml:space="preserve"
+ id="text108"
+ style="font-size:12px;font-family:Helvetica;fill:#000100"
+ x="52.679649"
+ y="395.97876"><tspan
+ id="tspan110">Version 1.1.a1</tspan></text>
+ <text
+ font-size="12"
+ xml:space="preserve"
+ id="text112"
+ style="font-size:12px;font-family:Helvetica;fill:#000100"
+ x="51.90625"
+ y="359.97876"><tspan
+ id="tspan114">Version 1.1.a2</tspan></text>
+ <path
+ d="m 148.90625,608.21875 c 0,4.418 -3.582,8 -8,8 -4.418,0 -8,-3.582 -8,-8 0,-4.418 3.582,-8 8,-8 4.418,0 8,3.582 8,8 z"
+ id="path116"
+ inkscape:connector-curvature="0"
+ style="fill:#fffffe;stroke:#000100" />
+ <path
+ d="m 148.90625,392.21875 c 0,4.418 -3.582,8 -8,8 -4.418,0 -8,-3.582 -8,-8 0,-4.418 3.582,-8 8,-8 4.418,0 8,3.582 8,8 z"
+ id="path118"
+ inkscape:connector-curvature="0"
+ style="fill:#fffffe;stroke:#000100" />
+ <path
+ d="m 148.90625,356.21875 c 0,4.418 -3.582,8 -8,8 -4.418,0 -8,-3.582 -8,-8 0,-4.418 3.582,-8 8,-8 4.418,0 8,3.582 8,8 z"
+ id="path120"
+ inkscape:connector-curvature="0"
+ style="fill:#fffffe;stroke:#000100" />
+ <path
+ d="m 148.90625,320.21875 c 0,4.418 -3.582,8 -8,8 -4.418,0 -8,-3.582 -8,-8 0,-4.418 3.582,-8 8,-8 4.418,0 8,3.582 8,8 z"
+ id="path122"
+ inkscape:connector-curvature="0"
+ style="fill:#fffffe;stroke:#000100" />
+ <text
+ font-size="12"
+ xml:space="preserve"
+ id="text124"
+ style="font-size:12px;font-family:Helvetica;fill:#000100"
+ x="52.679649"
+ y="323.97876"><tspan
+ id="tspan126">Version 1.</tspan><tspan
+ id="tspan128">1.b1</tspan></text>
+ <g
+ id="g156"
+ transform="translate(-67.09375,-3.7812531)">
+ <path
+ d="m 432,540 -127.375,0"
+ id="path158"
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#666666;stroke-width:4" />
+ <path
+ d="m 305.5,547 -17.5,-7 17.5,-7"
+ id="path160"
+ inkscape:connector-curvature="0"
+ style="fill:#666666" />
+ </g>
+ <g
+ id="g162"
+ transform="translate(-67.09375,-3.7812531)">
+ <path
+ d="m 432,504 -127.375,0"
+ id="path164"
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#666666;stroke-width:4" />
+ <path
+ d="m 305.5,511 -17.5,-7 17.5,-7"
+ id="path166"
+ inkscape:connector-curvature="0"
+ style="fill:#666666" />
+ </g>
+ <g
+ id="g168"
+ transform="translate(-67.09375,-3.7812531)">
+ <path
+ d="m 432,468 -127.375,0"
+ id="path170"
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#666666;stroke-width:4" />
+ <path
+ d="m 305.5,475 -17.5,-7 17.5,-7"
+ id="path172"
+ inkscape:connector-curvature="0"
+ style="fill:#666666" />
+ </g>
+ <g
+ id="g174"
+ transform="translate(-67.09375,-3.7812531)">
+ <path
+ d="m 432,432 -127.375,0"
+ id="path176"
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#666666;stroke-width:4" />
+ <path
+ d="m 305.5,439 -17.5,-7 17.5,-7"
+ id="path178"
+ inkscape:connector-curvature="0"
+ style="fill:#666666" />
+ </g>
+ <g
+ id="g180"
+ transform="translate(-67.09375,-3.7812531)">
+ <path
+ d="m 432,396 -127.375,0"
+ id="path182"
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#666666;stroke-width:4" />
+ <path
+ d="m 305.5,403 -17.5,-7 17.5,-7"
+ id="path184"
+ inkscape:connector-curvature="0"
+ style="fill:#666666" />
+ </g>
+ <g
+ id="g186"
+ transform="translate(-67.09375,-3.7812531)">
+ <path
+ d="m 432,360 -127.375,0"
+ id="path188"
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#666666;stroke-width:4" />
+ <path
+ d="m 305.5,367 -17.5,-7 17.5,-7"
+ id="path190"
+ inkscape:connector-curvature="0"
+ style="fill:#666666" />
+ </g>
+ <g
+ id="g192"
+ transform="translate(-67.09375,-3.7812531)">
+ <path
+ d="m 432,324 -127.375,0"
+ id="path194"
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#666666;stroke-width:4" />
+ <path
+ d="m 305.5,331 -17.5,-7 17.5,-7"
+ id="path196"
+ inkscape:connector-curvature="0"
+ style="fill:#666666" />
+ </g>
+ <g
+ id="g198"
+ transform="translate(-67.09375,-3.7812531)">
+ <path
+ d="m 432,288 -127.375,0"
+ id="path200"
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#666666;stroke-width:4" />
+ <path
+ d="m 305.5,295 -17.5,-7 17.5,-7"
+ id="path202"
+ inkscape:connector-curvature="0"
+ style="fill:#666666" />
+ </g>
+ <g
+ id="g204"
+ transform="translate(-67.09375,-3.7812531)">
+ <path
+ d="m 432,252 -127.375,0"
+ id="path206"
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#666666;stroke-width:4" />
+ <path
+ d="m 305.5,259 -17.5,-7 17.5,-7"
+ id="path208"
+ inkscape:connector-curvature="0"
+ style="fill:#666666" />
+ </g>
+ <g
+ id="g210"
+ transform="translate(-67.09375,-3.7812531)">
+ <path
+ d="m 432,216 -127.375,0"
+ id="path212"
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#666666;stroke-width:4" />
+ <path
+ d="m 305.5,223 -17.5,-7 17.5,-7"
+ id="path214"
+ inkscape:connector-curvature="0"
+ style="fill:#666666" />
+ </g>
+ <g
+ id="g216"
+ transform="translate(-67.09375,-3.7812531)">
+ <path
+ d="m 404,180 -99.375,0"
+ id="path218"
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#666666;stroke-width:4" />
+ <path
+ d="m 305.5,187 -17.5,-7 17.5,-7"
+ id="path220"
+ inkscape:connector-curvature="0"
+ style="fill:#666666" />
+ </g>
+ <g
+ id="g222"
+ transform="translate(-67.09375,-3.7812531)">
+ <path
+ d="m 432,180 -127.375,0"
+ id="path224"
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#666666;stroke-width:4" />
+ <path
+ d="m 305.5,187 -17.5,-7 17.5,-7"
+ id="path226"
+ inkscape:connector-curvature="0"
+ style="fill:#666666" />
+ </g>
+ <g
+ id="g228"
+ transform="translate(-67.09375,-3.7812531)">
+ <path
+ d="m 432,144 -127.375,0"
+ id="path230"
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#666666;stroke-width:4" />
+ <path
+ d="m 305.5,151 -17.5,-7 17.5,-7"
+ id="path232"
+ inkscape:connector-curvature="0"
+ style="fill:#666666" />
+ </g>
+ <text
+ font-size="12"
+ xml:space="preserve"
+ id="text234"
+ x="256.90625"
+ y="531.21875"
+ style="font-size:12px;font-family:Helvetica;fill:#000100"><tspan
+ id="tspan236">Patch Email (Patchwork)</tspan></text>
+ <text
+ font-size="12"
+ xml:space="preserve"
+ id="text238"
+ x="256.90625"
+ y="495.21875"
+ style="font-size:12px;font-family:Helvetica;fill:#000100"><tspan
+ id="tspan240">Github Pull Request</tspan></text>
+ <text
+ font-size="12"
+ xml:space="preserve"
+ id="text242"
+ x="256.90625"
+ y="459.21875"
+ style="font-size:12px;font-family:Helvetica;fill:#000100"><tspan
+ id="tspan244">Github Pull Request</tspan></text>
+ <text
+ font-size="12"
+ xml:space="preserve"
+ id="text246"
+ x="256.90625"
+ y="423.21875"
+ style="font-size:12px;font-family:Helvetica;fill:#000100"><tspan
+ id="tspan248">Patch Email (Patchwork)</tspan></text>
+ <text
+ font-size="12"
+ xml:space="preserve"
+ id="text250"
+ x="256.90625"
+ y="387.21875"
+ style="font-size:12px;font-family:Helvetica;fill:#000100"><tspan
+ id="tspan252">Patch Email (Patchwork)</tspan></text>
+ <text
+ font-size="12"
+ xml:space="preserve"
+ id="text254"
+ x="256.90625"
+ y="351.21875"
+ style="font-size:12px;font-family:Helvetica;fill:#000100"><tspan
+ id="tspan256">Github Pull Request</tspan></text>
+ <text
+ font-size="12"
+ xml:space="preserve"
+ id="text258"
+ x="256.90625"
+ y="315.21875"
+ style="font-size:12px;font-family:Helvetica;fill:#000100"><tspan
+ id="tspan260">Github Pull Request</tspan></text>
+ <text
+ font-size="12"
+ xml:space="preserve"
+ id="text262"
+ x="256.90625"
+ y="279.21875"
+ style="font-size:12px;font-family:Helvetica;fill:#000100"><tspan
+ id="tspan264">Github Pull Request</tspan></text>
+ <text
+ font-size="12"
+ xml:space="preserve"
+ id="text266"
+ x="256.90625"
+ y="243.21875"
+ style="font-size:12px;font-family:Helvetica;fill:#000100"><tspan
+ id="tspan268">Patch Email (Patchwork)</tspan></text>
+ <text
+ font-size="12"
+ xml:space="preserve"
+ id="text270"
+ x="256.90625"
+ y="207.21875"
+ style="font-size:12px;font-family:Helvetica;fill:#000100"><tspan
+ id="tspan272">Github Pull Request</tspan></text>
+ <text
+ font-size="12"
+ xml:space="preserve"
+ id="text274"
+ x="256.90625"
+ y="171.21875"
+ style="font-size:12px;font-family:Helvetica;fill:#000100"><tspan
+ id="tspan276">Github Pull Request</tspan></text>
+ <text
+ font-size="12"
+ xml:space="preserve"
+ id="text278"
+ x="256.90625"
+ y="135.21875"
+ style="font-size:12px;font-family:Helvetica;fill:#000100"><tspan
+ id="tspan280">Github Pull Request</tspan></text>
+ <text
+ font-size="12"
+ xml:space="preserve"
+ id="text282"
+ x="256.90625"
+ y="603.21875"
+ style="font-size:12px;font-family:Helvetica;fill:#000100"><tspan
+ id="tspan284">Github Pull Request</tspan></text>
+ <text
+ font-size="12"
+ xml:space="preserve"
+ id="text286"
+ x="256.90625"
+ y="567.21875"
+ style="font-size:12px;font-family:Helvetica;fill:#000100"><tspan
+ id="tspan288">Github Pull Request</tspan></text>
+ <text
+ font-size="12"
+ xml:space="preserve"
+ id="text290"
+ x="256.90625"
+ y="567.21875"
+ style="font-size:12px;font-family:Helvetica;fill:#000100"><tspan
+ id="tspan292">Github Pull Request</tspan></text>
+ <g
+ id="g294"
+ transform="translate(-67.09375,-3.7812531)">
+ <path
+ d="m 432,612 -127.72,0"
+ id="path296"
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#666666;stroke-width:4" />
+ <path
+ d="m 305.155,619 -17.5,-7 17.5,-7"
+ id="path298"
+ inkscape:connector-curvature="0"
+ style="fill:#666666" />
+ </g>
+ <g
+ id="g300"
+ transform="translate(-67.09375,-3.7812531)">
+ <path
+ d="m 432,576 -127.375,0"
+ id="path302"
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#666666;stroke-width:4" />
+ <path
+ d="m 305.5,583 -17.5,-7 17.5,-7"
+ id="path304"
+ inkscape:connector-curvature="0"
+ style="fill:#666666" />
+ </g>
+ <text
+ font-size="12"
+ xml:space="preserve"
+ id="text306"
+ style="font-size:12px;font-family:Helvetica;fill:#000100"
+ x="52.90625"
+ y="577.21875"><tspan
+ id="tspan308">Version 1.</tspan><tspan
+ id="tspan310">0.a2</tspan></text>
+ <text
+ font-size="12"
+ xml:space="preserve"
+ id="text312"
+ style="font-size:12px;font-family:Helvetica;fill:#000100"
+ x="52.90625"
+ y="541.21875"><tspan
+ id="tspan314">Version 1.</tspan><tspan
+ id="tspan316">0.b1</tspan></text>
+ <text
+ font-size="12"
+ xml:space="preserve"
+ id="text318"
+ style="font-size:12px;font-family:Helvetica;fill:#000100"
+ x="52.90625"
+ y="505.21875"><tspan
+ id="tspan320">Version 1.</tspan><tspan
+ id="tspan322">0.0</tspan></text>
+ <text
+ font-size="12"
+ xml:space="preserve"
+ id="text324"
+ style="font-size:12px;font-family:Helvetica;fill:#000100"
+ x="52.679649"
+ y="288.97876"><tspan
+ id="tspan326">Version 1.1.0</tspan></text>
+ <text
+ font-size="12"
+ xml:space="preserve"
+ id="text328"
+ style="font-size:12px;font-family:Helvetica;fill:#000100"
+ x="51.90625"
+ y="252.97874"><tspan
+ id="tspan330">Version 1.1.1</tspan></text>
+ <text
+ font-size="12"
+ xml:space="preserve"
+ id="text332"
+ style="font-size:12px;font-family:Helvetica;fill:#000100"
+ x="52.679649"
+ y="216.97874"><tspan
+ id="tspan334">Version 1.</tspan><tspan
+ id="tspan336">1.2</tspan></text>
+ <path
+ d="m 212.90625,608.21875 -72,-36"
+ id="path338"
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#ff0000;stroke-width:8" />
+ <path
+ d="m 212.90625,572.21875 -72,-36"
+ id="path340"
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#ff0000;stroke-width:8" />
+ <path
+ d="m 212.90625,536.21875 -72,-36"
+ id="path342"
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#ff0000;stroke-width:8" />
+ <path
+ d="m 212.90625,320.21875 -72,-36"
+ id="path344"
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#ff0000;stroke-width:8" />
+ <path
+ d="m 212.90625,284.21875 -72,-36"
+ id="path346"
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#ff0000;stroke-width:8" />
+ <path
+ d="m 212.90625,248.21875 -72,-36"
+ id="path348"
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#ff0000;stroke-width:8" />
+ <path
+ d="m 148.90625,571.21875 c 0,4.418 -3.582,8 -8,8 -4.418,0 -8,-3.582 -8,-8 0,-4.418 3.582,-8 8,-8 4.418,0 8,3.582 8,8 z"
+ id="path350"
+ inkscape:connector-curvature="0"
+ style="fill:#fffffe;stroke:#000100" />
+ <path
+ d="m 148.90625,535.21875 c 0,4.418 -3.582,8 -8,8 -4.418,0 -8,-3.582 -8,-8 0,-4.418 3.582,-8 8,-8 4.418,0 8,3.582 8,8 z"
+ id="path352"
+ inkscape:connector-curvature="0"
+ style="fill:#fffffe;stroke:#000100" />
+ <path
+ d="m 148.90625,499.21875 c 0,4.418 -3.582,8 -8,8 -4.418,0 -8,-3.582 -8,-8 0,-4.418 3.582,-8 8,-8 4.418,0 8,3.582 8,8 z"
+ id="path354"
+ inkscape:connector-curvature="0"
+ style="fill:#fffffe;stroke:#000100" />
+ <path
+ d="m 148.90625,284.21875 c 0,4.418 -3.582,8 -8,8 -4.418,0 -8,-3.582 -8,-8 0,-4.418 3.582,-8 8,-8 4.418,0 8,3.582 8,8 z"
+ id="path356"
+ inkscape:connector-curvature="0"
+ style="fill:#fffffe;stroke:#000100" />
+ <path
+ d="m 148.90625,248.21875 c 0,4.418 -3.582,8 -8,8 -4.418,0 -8,-3.582 -8,-8 0,-4.418 3.582,-8 8,-8 4.418,0 8,3.582 8,8 z"
+ id="path358"
+ inkscape:connector-curvature="0"
+ style="fill:#fffffe;stroke:#000100" />
+ <path
+ d="m 148.90625,212.21875 c 0,4.418 -3.582,8 -8,8 -4.418,0 -8,-3.582 -8,-8 0,-4.418 3.582,-8 8,-8 4.418,0 8,3.582 8,8 z"
+ id="path360"
+ inkscape:connector-curvature="0"
+ style="fill:#fffffe;stroke:#000100" />
+ <path
+ d="m 220.90625,572.21875 c 0,4.418 -3.582,8 -8,8 -4.418,0 -8,-3.582 -8,-8 0,-4.418 3.582,-8 8,-8 4.418,0 8,3.582 8,8 z"
+ id="path362"
+ inkscape:connector-curvature="0"
+ style="fill:#fffffe;stroke:#000100" />
+ <path
+ d="m 220.90625,536.21875 c 0,4.418 -3.582,8 -8,8 -4.418,0 -8,-3.582 -8,-8 0,-4.418 3.582,-8 8,-8 4.418,0 8,3.582 8,8 z"
+ id="path364"
+ inkscape:connector-curvature="0"
+ style="fill:#fffffe;stroke:#000100" />
+ <path
+ d="m 220.90625,320.21875 c 0,4.418 -3.582,8 -8,8 -4.418,0 -8,-3.582 -8,-8 0,-4.418 3.582,-8 8,-8 4.418,0 8,3.582 8,8 z"
+ id="path366"
+ inkscape:connector-curvature="0"
+ style="fill:#fffffe;stroke:#000100" />
+ <path
+ d="m 220.90625,248.21875 c 0,4.418 -3.582,8 -8,8 -4.418,0 -8,-3.582 -8,-8 0,-4.418 3.582,-8 8,-8 4.418,0 8,3.582 8,8 z"
+ id="path368"
+ inkscape:connector-curvature="0"
+ style="fill:#fffffe;stroke:#000100" />
+ <path
+ d="m 220.90625,284.21875 c 0,4.418 -3.582,8 -8,8 -4.418,0 -8,-3.582 -8,-8 0,-4.418 3.582,-8 8,-8 4.418,0 8,3.582 8,8 z"
+ id="path370"
+ inkscape:connector-curvature="0"
+ style="fill:#fffffe;stroke:#000100" />
+</svg>
diff --git a/doc/overview.texi b/doc/overview.texi
index 370ada3f8a..7ecf3d95c3 100644
--- a/doc/overview.texi
+++ b/doc/overview.texi
@@ -2,7 +2,7 @@
@chapter Overview
@cindex Overview
- @uref{http://www.freerangerouting.org,,Frr} is a routing software package that
+ @uref{http://www.frrouting.org,,Frr} is a routing software package that
provides TCP/IP based routing services with routing protocols support such
as RIPv1, RIPv2, RIPng, OSPFv2, OSPFv3, IS-IS, BGP-4, and BGP-4+ (@pxref{Supported
RFCs}). Frr also supports special BGP Route Reflector and Route Server
@@ -275,12 +275,12 @@ November 1995.}
The official Frr web-site is located at:
-@uref{http://www.freerangerouting.org/}
+@uref{http://www.frrouting.org/}
and contains further information, as well as links to additional
resources.
-@uref{http://www.freerangerouting.org/,Frr} is a fork of Quagga, whose
+@uref{http://www.frrouting.org/,Frr} is a fork of Quagga, whose
web-site is located at:
@uref{http://www.quagga.net/}.
@@ -298,7 +298,7 @@ comments or suggestions to Frr, please subscribe to:
@uref{http://lists.nox.tf/listinfo/frr-users}.
-The @uref{http://www.freerangerouting.org/,,Frr} site has further information on
+The @uref{http://www.frrouting.org/,,Frr} site has further information on
the available mailing lists, see:
@uref{http://lists.nox.tf/lists.php}
@@ -315,7 +315,7 @@ the available mailing lists, see:
If you think you have found a bug, please send a bug report to:
-@uref{http://github.com/freerangerouting/frr/issues}
+@uref{http://github.com/frrouting/frr/issues}
When you send a bug report, please be careful about the points below.
@@ -334,4 +334,4 @@ arguments to the configure script please note that too.
Bug reports are very important for us to improve the quality of Frr.
Frr is still in the development stage, but please don't hesitate to
-send a bug report to @uref{http://github.com/freerangerouting/frr/issues}.
+send a bug report to @uref{http://github.com/frrouting/frr/issues}.
diff --git a/lib/command.c b/lib/command.c
index bfff581d9b..993d6f9055 100644
--- a/lib/command.c
+++ b/lib/command.c
@@ -41,6 +41,7 @@
#include "vrf.h"
#include "command_match.h"
#include "qobj.h"
+#include "defaults.h"
DEFINE_MTYPE( LIB, HOST, "Host config")
DEFINE_MTYPE( LIB, STRVEC, "String vector")
@@ -1536,6 +1537,23 @@ DEFUN (show_version,
return CMD_SUCCESS;
}
+/* "Set" version ... ignore version tags */
+DEFUN (frr_version_defaults,
+ frr_version_defaults_cmd,
+ "frr <version|defaults> LINE...",
+ "FRRouting global parameters\n"
+ "version configuration was written by\n"
+ "set of configuration defaults used\n"
+ "version string\n")
+{
+ if (vty->type == VTY_TERM || vty->type == VTY_SHELL)
+ /* only print this when the user tries to do run it */
+ vty_out (vty, "%% NOTE: This command currently does nothing.%s"
+ "%% It is written to the configuration for future reference.%s",
+ VTY_NEWLINE, VTY_NEWLINE);
+ return CMD_SUCCESS;
+}
+
/* Help display function for all node. */
DEFUN (config_help,
config_help_cmd,
@@ -1636,6 +1654,37 @@ DEFUN (show_commandtree,
return cmd_list_cmds (vty, argc == 3);
}
+static void
+vty_write_config (struct vty *vty)
+{
+ size_t i;
+ struct cmd_node *node;
+
+ if (vty->type == VTY_TERM)
+ {
+ vty_out (vty, "%sCurrent configuration:%s", VTY_NEWLINE,
+ VTY_NEWLINE);
+ vty_out (vty, "!%s", VTY_NEWLINE);
+ }
+
+ vty_out (vty, "frr version %s%s", FRR_VER_SHORT, VTY_NEWLINE);
+ vty_out (vty, "frr defaults %s%s", DFLT_NAME, VTY_NEWLINE);
+ vty_out (vty, "!%s", VTY_NEWLINE);
+
+ for (i = 0; i < vector_active (cmdvec); i++)
+ if ((node = vector_slot (cmdvec, i)) && node->func
+ && (node->vtysh || vty->type != VTY_SHELL))
+ {
+ if ((*node->func) (vty))
+ vty_out (vty, "!%s", VTY_NEWLINE);
+ }
+
+ if (vty->type == VTY_TERM)
+ {
+ vty_out (vty, "end%s",VTY_NEWLINE);
+ }
+}
+
/* Write current configuration into file. */
DEFUN (config_write,
@@ -1647,9 +1696,7 @@ DEFUN (config_write,
"Write configuration to terminal\n")
{
int idx_type = 1;
- unsigned int i;
int fd, dirfd;
- struct cmd_node *node;
char *config_file, *slash;
char *config_file_tmp = NULL;
char *config_file_sav = NULL;
@@ -1660,32 +1707,10 @@ DEFUN (config_write,
// if command was 'write terminal' or 'show running-config'
if (argc == 2 && (!strcmp(argv[idx_type]->text, "terminal") ||
!strcmp(argv[0]->text, "show")))
- {
- if (vty->type == VTY_SHELL_SERV)
- {
- for (i = 0; i < vector_active (cmdvec); i++)
- if ((node = vector_slot (cmdvec, i)) && node->func && node->vtysh)
- {
- if ((*node->func) (vty))
- vty_out (vty, "!%s", VTY_NEWLINE);
- }
- }
- else
- {
- vty_out (vty, "%sCurrent configuration:%s", VTY_NEWLINE,
- VTY_NEWLINE);
- vty_out (vty, "!%s", VTY_NEWLINE);
-
- for (i = 0; i < vector_active (cmdvec); i++)
- if ((node = vector_slot (cmdvec, i)) && node->func)
- {
- if ((*node->func) (vty))
- vty_out (vty, "!%s", VTY_NEWLINE);
- }
- vty_out (vty, "end%s",VTY_NEWLINE);
- }
- return CMD_SUCCESS;
- }
+ {
+ vty_write_config (vty);
+ return CMD_SUCCESS;
+ }
if (host.noconfig)
return CMD_SUCCESS;
@@ -1749,13 +1774,7 @@ DEFUN (config_write,
vty_out (file_vty, "!\n! Zebra configuration saved from vty\n! ");
vty_time_print (file_vty, 1);
vty_out (file_vty, "!\n");
-
- for (i = 0; i < vector_active (cmdvec); i++)
- if ((node = vector_slot (cmdvec, i)) && node->func)
- {
- if ((*node->func) (file_vty))
- vty_out (file_vty, "!\n");
- }
+ vty_write_config (file_vty);
vty_close (file_vty);
if (stat(config_file, &conf_stat) >= 0)
@@ -1817,7 +1836,9 @@ DEFUN (copy_runningconf_startupconf,
"Copy running config to... \n"
"Copy running config to startup config (same as write file)\n")
{
- return config_write (self, vty, argc, argv);
+ if (!host.noconfig)
+ vty_write_config (vty);
+ return CMD_SUCCESS;
}
/** -- **/
@@ -2694,6 +2715,7 @@ cmd_init (int terminal)
install_element (CONFIG_NODE, &hostname_cmd);
install_element (CONFIG_NODE, &no_hostname_cmd);
+ install_element (CONFIG_NODE, &frr_version_defaults_cmd);
if (terminal > 0)
{
diff --git a/lib/privs.c b/lib/privs.c
index 376d6f3365..decd4bb7db 100644
--- a/lib/privs.c
+++ b/lib/privs.c
@@ -731,7 +731,7 @@ zprivs_init(struct zebra_privs_t *zprivs)
if (zprivs->user)
{
ngroups = sizeof(groups);
- if ( (ngroups = getgrouplist (zprivs->user, zprivs_state.zgid, groups, &ngroups )) < 0 )
+ if (getgrouplist (zprivs->user, zprivs_state.zgid, groups, &ngroups) < 0)
{
/* cant use log.h here as it depends on vty */
fprintf (stderr, "privs_init: could not getgrouplist for user %s\n",
diff --git a/lib/version.h.in b/lib/version.h.in
index adc8278189..d9eabb9f81 100644
--- a/lib/version.h.in
+++ b/lib/version.h.in
@@ -39,8 +39,9 @@
#define FRR_SMUX_NAME "@PACKAGE_NAME@"
#define FRR_PTM_NAME "@PACKAGE_NAME@"
-#define FRR_FULL_NAME "FreeRangeRouting"
+#define FRR_FULL_NAME "FRRouting"
#define FRR_VERSION "@PACKAGE_VERSION@" GIT_SUFFIX
+#define FRR_VER_SHORT "@PACKAGE_VERSION@"
#define FRR_BUG_ADDRESS "@PACKAGE_BUGREPORT@"
#define FRR_COPYRIGHT "Copyright 1996-2005 Kunihiro Ishiguro, et al."
#define FRR_CONFIG_ARGS "@CONFIG_ARGS@"
diff --git a/ospf6d/ospf6_top.c b/ospf6d/ospf6_top.c
index 32dad36d9e..c2545afdc6 100644
--- a/ospf6d/ospf6_top.c
+++ b/ospf6d/ospf6_top.c
@@ -29,6 +29,7 @@
#include "table.h"
#include "thread.h"
#include "command.h"
+#include "defaults.h"
#include "ospf6_proto.h"
#include "ospf6_message.h"
@@ -160,7 +161,10 @@ ospf6_create (void)
o->distance_table = route_table_init ();
/* Enable "log-adjacency-changes" */
+#if DFLT_OSPF6_LOG_ADJACENCY_CHANGES
SET_FLAG(o->config_flags, OSPF6_LOG_ADJACENCY_CHANGES);
+#endif
+
QOBJ_REG (o, ospf6);
return o;
@@ -1022,8 +1026,10 @@ config_write_ospf6 (struct vty *vty)
{
if (CHECK_FLAG(ospf6->config_flags, OSPF6_LOG_ADJACENCY_DETAIL))
vty_out(vty, " log-adjacency-changes detail%s", VTY_NEWLINE);
+ else if (!DFLT_OSPF6_LOG_ADJACENCY_CHANGES)
+ vty_out(vty, " log-adjacency-changes%s", VTY_NEWLINE);
}
- else
+ else if (DFLT_OSPF6_LOG_ADJACENCY_CHANGES)
{
vty_out(vty, " no log-adjacency-changes%s", VTY_NEWLINE);
}
diff --git a/ospfd/ospf_dump_api.c b/ospfd/ospf_dump_api.c
index 20e7740d32..5ef262ce54 100644
--- a/ospfd/ospf_dump_api.c
+++ b/ospfd/ospf_dump_api.c
@@ -2,7 +2,7 @@
* OSPFd dump routine (parts used by ospfclient).
* Copyright (C) 1999, 2000 Toshiaki Takada
*
- * This file is part of FreeRangeRouting (FRR).
+ * This file is part of FRRouting (FRR).
*
* FRR is free software; you can redistribute it and/or modify it under the
* terms of the GNU General Public License as published by the Free Software
diff --git a/ospfd/ospf_dump_api.h b/ospfd/ospf_dump_api.h
index c3ff1e3f54..1cd8257f0c 100644
--- a/ospfd/ospf_dump_api.h
+++ b/ospfd/ospf_dump_api.h
@@ -2,7 +2,7 @@
* OSPFd dump routine (parts used by ospfclient).
* Copyright (C) 1999 Toshiaki Takada
*
- * This file is part of FreeRangeRouting (FRR).
+ * This file is part of FRRouting (FRR).
*
* FRR is free software; you can redistribute it and/or modify it under the
* terms of the GNU General Public License as published by the Free Software
diff --git a/ospfd/ospf_vty.c b/ospfd/ospf_vty.c
index 121ef018b2..6f72903695 100644
--- a/ospfd/ospf_vty.c
+++ b/ospfd/ospf_vty.c
@@ -34,6 +34,7 @@
#include "log.h"
#include "zclient.h"
#include <lib/json.h>
+#include "defaults.h"
#include "ospfd/ospfd.h"
#include "ospfd/ospf_asbr.h"
@@ -8806,8 +8807,10 @@ ospf_config_write (struct vty *vty)
{
if (CHECK_FLAG(ospf->config, OSPF_LOG_ADJACENCY_DETAIL))
vty_out(vty, " log-adjacency-changes detail%s", VTY_NEWLINE);
+ else if (!DFLT_OSPF_LOG_ADJACENCY_CHANGES)
+ vty_out(vty, " log-adjacency-changes%s", VTY_NEWLINE);
}
- else
+ else if (DFLT_OSPF_LOG_ADJACENCY_CHANGES)
{
vty_out(vty, " no log-adjacency-changes%s", VTY_NEWLINE);
}
diff --git a/ospfd/ospfd.c b/ospfd/ospfd.c
index 7cd3903678..30b1e9622f 100644
--- a/ospfd/ospfd.c
+++ b/ospfd/ospfd.c
@@ -35,6 +35,7 @@ Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
#include "plist.h"
#include "sockopt.h"
#include "bfd.h"
+#include "defaults.h"
#include "ospfd/ospfd.h"
#include "ospfd/ospf_network.h"
@@ -292,7 +293,10 @@ ospf_new (u_short instance)
new->write_oi_count = OSPF_WRITE_INTERFACE_COUNT_DEFAULT;
/* Enable "log-adjacency-changes" */
+#if DFLT_OSPF_LOG_ADJACENCY_CHANGES
SET_FLAG(new->config, OSPF_LOG_ADJACENCY_CHANGES);
+#endif
+
QOBJ_REG (new, ospf);
return new;
diff --git a/redhat/README.rpm_build.md b/redhat/README.rpm_build.md
index db3c7d45c8..6bec5d65cd 100644
--- a/redhat/README.rpm_build.md
+++ b/redhat/README.rpm_build.md
@@ -1,4 +1,4 @@
-Building your own FreeRangeRouting RPM
+Building your own FRRouting RPM
======================================
(Tested on CentOS 6, CentOS 7 and Fedora 22.)
@@ -12,7 +12,7 @@ Building your own FreeRangeRouting RPM
2. Checkout FRR under a **unpriviledged** user account
- git clone https://github.com/freerangerouting/frr.git frr
+ git clone https://github.com/frrouting/frr.git frr
3. Run Bootstrap and make distribution tar.gz
diff --git a/redhat/frr.spec.in b/redhat/frr.spec.in
index b86d115507..c32e3e3af8 100644
--- a/redhat/frr.spec.in
+++ b/redhat/frr.spec.in
@@ -8,7 +8,7 @@
# rpms again and again on the same day, so the newer rpms can be installed.
# bumping the number each time.
-####################### FreeRangeRouting (FRR) configure options #########################
+####################### FRRouting (FRR) configure options #########################
# with-feature options
%{!?with_tcp_zebra: %global with_tcp_zebra 0 }
%{!?with_pam: %global with_pam 0 }
@@ -107,8 +107,8 @@ Version: %{rpmversion}
Release: @CONFDATE@%{release_rev}%{?dist}
License: GPLv2+
Group: System Environment/Daemons
-Source0: http://www.freerangerouting.org/releases/frr/%{name}-%{frrversion}.tar.gz
-URL: http://www.freerangerouting.org
+Source0: http://www.frrouting.org/releases/frr/%{name}-%{frrversion}.tar.gz
+URL: http://www.frrouting.org
Requires: ncurses json-c
Requires(pre): /sbin/install-info
Requires(preun): /sbin/install-info
@@ -135,14 +135,14 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-root
Obsoletes: bird gated mrt zebra frr-sysvinit
%description
-FreeRangeRouting is a free software that manages TCP/IP based routing
+FRRouting is a free software that manages TCP/IP based routing
protocol. It takes multi-server and multi-thread approach to resolve
the current complexity of the Internet.
-FreeRangeRouting supports BGP4, OSPFv2, OSPFv3, ISIS, RIP, RIPng, PIM,
-LDP and NHRP.
+FRRouting supports BGP4, OSPFv2, OSPFv3, ISIS, RIP, RIPng, PIM, LDP
+and NHRP.
-FreeRangeRouting is a fork of Quagga.
+FRRouting is a fork of Quagga.
%package contrib
Summary: contrib tools for frr
@@ -315,7 +315,7 @@ if getent group %frr_user >/dev/null; then : ; else \
fi
if getent passwd %frr_user >/dev/null ; then : ; else \
/usr/sbin/useradd -u %frr_uid -g %frr_gid \
- -M -r -s /sbin/nologin -c "FreeRangeRouting suite" \
+ -M -r -s /sbin/nologin -c "FRRouting suite" \
-d %_localstatedir %frr_user 2> /dev/null || : ; \
fi
%if 0%{?vty_group:1}
@@ -594,8 +594,8 @@ rm -rf %{buildroot}
* Tue Feb 14 2017 Timo Teräs <timo.teras@iki.fi> - %{version}
- add nhrpd
-* Fri Jan 6 2017 Martin Winter <mwinter@opensourcerouting.org>
-- Renamed to frr for FreeRangeRouting fork of Quagga
+* Fri Jan 6 2017 Martin Winter <mwinter@opensourcerouting.org> - %{version}
+- Renamed to frr for FRRouting fork of Quagga
* Thu Feb 11 2016 Paul Jakma <paul@jakma.org>
- remove with_ipv6 conditionals, always build v6
diff --git a/snapcraft/Makefile.am b/snapcraft/Makefile.am
index 15813be72f..8cc4e0b4c6 100644
--- a/snapcraft/Makefile.am
+++ b/snapcraft/Makefile.am
@@ -1,11 +1,5 @@
EXTRA_DIST = snapcraft.yaml \
- scripts/Makefile scripts/zebra-service scripts/bgpd-service \
- scripts/isisd-service scripts/ripd-service scripts/ripngd-service \
- scripts/ospf6d-service scripts/ospfd-service \
- scripts/isisd-service scripts/pimd-service \
- scripts/ldpd-service \
- defaults/bgpd.conf.default defaults/isisd.conf.default \
- defaults/ospf6d.conf.default defaults/ospfd.conf.default \
- defaults/pimd.conf.default defaults/zebra.conf.default \
- defaults/ripd.conf.default defaults/ripngd.conf.default \
- defaults/ldpd.conf.default defaults/vtysh.conf.default
+ README.* \
+ scripts/Makefile scripts/*-service \
+ defaults/*.conf.default \
+ helpers snap
diff --git a/snapcraft/README.snap_build.md b/snapcraft/README.snap_build.md
index 341b210f71..c4db51bd6a 100644
--- a/snapcraft/README.snap_build.md
+++ b/snapcraft/README.snap_build.md
@@ -1,4 +1,4 @@
-Building your own FreeRangeRouting Snap
+Building your own FRRouting Snap
========================================
(Tested on Ubuntu 16.04 with Snap Version 2, does not work on Ubuntu 15.x
which uses earlier versions of snaps)
@@ -7,9 +7,9 @@ which uses earlier versions of snaps)
sudo apt-get install snapcraft
-2. Checkout FreeRangeRouting under a **unpriviledged** user account
+2. Checkout FRRouting under a **unpriviledged** user account
- git clone https://github.com/freerangerouting/frr.git
+ git clone https://github.com/frrouting/frr.git
cd frr
3. Run Bootstrap and make distribution tar.gz
@@ -56,8 +56,8 @@ The Snap will be auto-started and running.
Operations
==========
-### FreeRangeRouting Daemons
-At this time, all FreeRangeRouting daemons are auto-started.
+### FRRouting Daemons
+At this time, all FRRouting daemons are auto-started.
A daemon can be stopped/started with (ie ospf6d)
@@ -69,7 +69,7 @@ or disabled/enabled with
systemctl disable snap.frr.ospf6d.service
systemctl enable snap.frr.ospf6d.service
-### FreeRangeRouting Commands
+### FRRouting Commands
All the commands are prefixed with frr.
frr.vtysh -> vtysh
diff --git a/snapcraft/README.usage.md b/snapcraft/README.usage.md
index 2d2b32b6b7..aaff59438a 100644
--- a/snapcraft/README.usage.md
+++ b/snapcraft/README.usage.md
@@ -1,14 +1,14 @@
-Using the FreeRangeRouting Snap
+Using the FRRouting Snap
===============================
After installing the Snap, the priviledged plug need to be connected:
snap connect frr:network-control ubuntu-core:network-control
-Enabling/Disabling FreeRangeRouting Daemons
+Enabling/Disabling FRRouting Daemons
-------------------------------------------
-By default (at this time), all FreeRangeRouting daemons will be enabled
+By default (at this time), all FRRouting daemons will be enabled
on installation. If you want to disable a specific daemon, then use
the systemctl commands
@@ -24,7 +24,7 @@ Commands defined by this snap
-----------------------------
- `frr.vtysh`:
- FreeRangeRouting VTY Shell (configuration tool)
+ FRRouting VTY Shell (configuration tool)
- `frr.version`:
Returns output of `zebra --version` to display version and configured
options
@@ -62,10 +62,10 @@ FAQ
Sourcecode available
====================
-The source for this SNAP is available as part of the FreeRangeRouting
+The source for this SNAP is available as part of the FRRouting
Source Code Distribution.
- https://github.com/freerangerouting/frr.git
+ https://github.com/frrouting/frr.git
Instructions for rebuilding the snap are in `README.snap_build.md`
diff --git a/snapcraft/setup/gui/icon.png b/snapcraft/setup/gui/icon.png
deleted file mode 100644
index e8f68e6dde..0000000000
--- a/snapcraft/setup/gui/icon.png
+++ /dev/null
Binary files differ
diff --git a/snapcraft/snap/gui/icon.png b/snapcraft/snap/gui/icon.png
new file mode 100644
index 0000000000..3ab3f8fc16
--- /dev/null
+++ b/snapcraft/snap/gui/icon.png
Binary files differ
diff --git a/snapcraft/snapcraft.yaml.in b/snapcraft/snapcraft.yaml.in
index a703766f0b..a20a1d0392 100644
--- a/snapcraft/snapcraft.yaml.in
+++ b/snapcraft/snapcraft.yaml.in
@@ -1,11 +1,11 @@
name: frr
version: @VERSION@
-summary: FreeRangeRouting BGP/OSPFv2/OSPFv3/ISIS/RIP/RIPng/PIM/LDP routing daemon
+summary: FRRouting BGP/OSPFv2/OSPFv3/ISIS/RIP/RIPng/PIM/LDP routing daemon
description: BGP/OSPFv2/OSPFv3/ISIS/RIP/RIPng/PIM routing daemon
- FreeRangeRouting (FRR) is free software which manages TCP/IP based routing
+ FRRouting (FRR) is free software which manages TCP/IP based routing
protocols. It supports BGP4, BGP4+, OSPFv2, OSPFv3, IS-IS, RIPv1, RIPv2,
RIPng, PIM and LDP as well as the IPv6 versions of these.
- FreeRangeRouting (frr) is a fork of Quagga.
+ FRRouting (frr) is a fork of Quagga.
confinement: strict
grade: devel
diff --git a/solaris/README.txt b/solaris/README.txt
index 01f725b8fa..589570d881 100644
--- a/solaris/README.txt
+++ b/solaris/README.txt
@@ -15,13 +15,13 @@ Requirements:
i.manifest must be at least version 1.5. Place these scripts in
this directory if you are using Solaris 10 GA (which does not ship with
- these scripts), or in the solaris/ directory in the FreeRangeRouting source.
+ these scripts), or in the solaris/ directory in the FRRouting source.
Package creation instructions:
------------------------------
-1. Configure and build FreeRangeRouting (frr) in the top level build directory as per normal, eg:
+1. Configure and build FRRouting (frr) in the top level build directory as per normal, eg:
./configure --prefix=/usr/local/frr \
--localstatedir=/var/run/frr \
@@ -102,7 +102,7 @@ Install and post-install configuration notes:
# # svcs -l ripd
fmri svc:/network/routing/frr:ripd
- name FreeRangeRouting: ripd, RIPv1/2 IPv4 routing protocol daemon.
+ name FRRouting: ripd, RIPv1/2 IPv4 routing protocol daemon.
enabled true
state online
next_state none
@@ -117,7 +117,7 @@ Install and post-install configuration notes:
- Configuration of startup options is by way of SMF properties in a
property group named 'frr'. The defaults should automatically be
- inline with how you configured FreeRangeRouting in Step 1 above.
+ inline with how you configured FRRouting in Step 1 above.
- By default the VTY interface is disabled. To change this, see below for
how to set the 'frr/vty_port' property as appropriate for
@@ -176,11 +176,11 @@ Install and post-install configuration notes:
- As SMF is dependency aware, restarting network/zebra will restart all the
other daemons.
- - To upgrade from one set of FreeRangeRouting packages to a newer release,
+ - To upgrade from one set of FRRouting packages to a newer release,
one must first pkgrm the installed packages. When one pkgrm's FRRsmf all
property configuration will be lost, and any customisations will have to
redone after installing the updated FRRsmf package.
- These packages are not supported by Sun Microsystems, report bugs via the
- usual FreeRangeRouting channels, ie Issue Tracker. Improvements/contributions of course would be greatly appreciated.
+ usual FRRouting channels, ie Issue Tracker. Improvements/contributions of course would be greatly appreciated.
diff --git a/solaris/depend.daemons.in b/solaris/depend.daemons.in
index 64fb03ac19..a8ce943e31 100644
--- a/solaris/depend.daemons.in
+++ b/solaris/depend.daemons.in
@@ -1,4 +1,4 @@
-P FRRlibs FreeRangeRouting common runtime libraries
+P FRRlibs FRRouting common runtime libraries
@PACKAGE_VERSION@,REV=@CONFDATE@
P SUNWcsu Core Solaris, (Usr)
P SUNWcsr Core Solaris Libraries (Root)
diff --git a/solaris/depend.dev.in b/solaris/depend.dev.in
index 5d8bf16ed6..1b65724a04 100644
--- a/solaris/depend.dev.in
+++ b/solaris/depend.dev.in
@@ -1,2 +1,2 @@
-P FRRlibs FreeRangeRouting common runtime libraries
+P FRRlibs FRRouting common runtime libraries
@PACKAGE_VERSION@,REV=@CONFDATE@
diff --git a/solaris/depend.libs.in b/solaris/depend.libs.in
index 6ead0b2867..04f04efd01 100644
--- a/solaris/depend.libs.in
+++ b/solaris/depend.libs.in
@@ -1,5 +1,5 @@
P SUNWcslr Core Solaris Libraries (Root)
P SUNWcsl Core Solaris, (Shared Libs)
P SUNWlibmsr Math & Microtasking Libraries (Root)
-R FRRdaemons FreeRangeRouting daemons
+R FRRdaemons FRRouting daemons
R FRRdev
diff --git a/solaris/depend.smf.in b/solaris/depend.smf.in
index 66b11eba2a..b3b1bd778c 100644
--- a/solaris/depend.smf.in
+++ b/solaris/depend.smf.in
@@ -1,4 +1,4 @@
-P FRRaemons FreeRangeRouting daemons
+P FRRaemons FRRouting daemons
@PACKAGE_VERSION@,REV=@CONFDATE@
P SUNWcsu Core Solaris, (Usr)
P SUNWcsr Core Solaris Libraries (Root)
diff --git a/solaris/frr.init.in b/solaris/frr.init.in
index 580fd9b35c..bd9ab85e69 100755
--- a/solaris/frr.init.in
+++ b/solaris/frr.init.in
@@ -3,20 +3,20 @@
# Copyright 2007 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
-# This file is part of FreeRangeRouting.
+# This file is part of FRRouting.
#
-# FreeRangeRouting is free software; you can redistribute it and/or modify
+# FRRouting is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by the
# Free Software Foundation; either version 2, or (at your option) any
# later version.
#
-# FreeRangeRouting is distributed in the hope that it will be useful, but
+# FRRouting is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with FreeRangeRouting; see the file COPYING. If not, write to
+# along with FRRouting; see the file COPYING. If not, write to
# the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
#
@@ -74,7 +74,7 @@ handle_routeadm_upgrade () {
upgrade_config () {
DAEMON=$1
- # handle upgrade of SUNWzebra to FreeRangeRouting
+ # handle upgrade of SUNWzebra to FRRouting
if [ -d "/etc/frr" -a ! -f "/etc/frr/${DAEMON}.conf" ] ; then
if [ -f "/etc/sfw/zebra/${DAEMON}.conf" ] ; then
cp "/etc/sfw/zebra/${DAEMON}.conf" \
@@ -216,7 +216,7 @@ case "${DAEMON}" in
;;
esac
-# Older FreeRangeRouting SMF packages pass daemon args on the commandline
+# Older FRRouting SMF packages pass daemon args on the commandline
# Newer SMF routeadm model uses properties for each argument
# so we must handle that.
if [ smf_present -a -f "$ROUTEADMINCLUDE" ]; then
diff --git a/solaris/frr.xml.in b/solaris/frr.xml.in
index 5ac7e52721..08a9a11c0f 100644
--- a/solaris/frr.xml.in
+++ b/solaris/frr.xml.in
@@ -1,20 +1,20 @@
<?xml version="1.0"?>
<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
<!--
- This file is part of FreeRangeRouting (FRR)
+ This file is part of FRRouting (FRR)
- FreeRangeRouting is free software; you can redistribute it and/or
+ FRRouting is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2, or
(at your option) anylater version.
- FreeRangeRouting is distributed in the hope that it will be useful,
+ FRRouting is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with FreeRangeRouting; see the file COPYING. If not, write to
+ along with FRRouting; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
@@ -107,9 +107,9 @@
<propval name='value_authorization' type='astring'
value='solaris.smf.value.routing' />
- <!-- Options common to FreeRangeRouting daemons
+ <!-- Options common to FRRouting daemons
Property names are equivalent to the long
- option name, consult FreeRangeRouting documentation -->
+ option name, consult FRRouting documentation -->
<!-- The config file to use, if not the default -->
<propval name='config_file' type='astring' value=''/>
<!-- The vty_port to listen on if not the default.
@@ -142,14 +142,14 @@
<template>
<common_name>
<loctext xml:lang='C'>
- FreeRangeRouting: zebra, RIB, kernel intermediary and misc daemon
+ FRRouting: zebra, RIB, kernel intermediary and misc daemon
</loctext>
</common_name>
<documentation>
<manpage title='zebra' section='1M'
manpath='@mandir@' />
- <doc_link name='freerangerouting.org'
- uri='http://www.freerangerouting.org/' />
+ <doc_link name='frrouting.org'
+ uri='http://www.frrouting.org/' />
</documentation>
</template>
</instance>
@@ -240,7 +240,7 @@
<propval name='value_authorization' type='astring'
value='solaris.smf.value.routing' />
- <!-- Options common to FreeRangeRouting daemons -->
+ <!-- Options common to FRRouting daemons -->
<!-- The config file to use, if not the default -->
<propval name='config_file' type='astring' value=''/>
<!-- The vty_port to listen on if not the default.
@@ -273,14 +273,14 @@
<template>
<common_name>
<loctext xml:lang='C'>
- FreeRangeRouting: ripd, RIPv1/2 IPv4 routing protocol daemon.
+ FRRouting: ripd, RIPv1/2 IPv4 routing protocol daemon.
</loctext>
</common_name>
<documentation>
<manpage title='ripd' section='1M'
manpath='@mandir@' />
- <doc_link name='freerangerouting.org'
- uri='http://www.freerangerouting.org/' />
+ <doc_link name='frrouting.org'
+ uri='http://www.frrouting.org/' />
</documentation>
</template>
</instance>
@@ -408,8 +408,8 @@
<documentation>
<manpage title='ripngd' section='1M'
manpath='@mandir@' />
- <doc_link name='freerangerouting.org'
- uri='http://www.freerangerouting.org/' />
+ <doc_link name='frrouting.org'
+ uri='http://www.frrouting.org/' />
</documentation>
</template>
</instance>
@@ -539,8 +539,8 @@
<documentation>
<manpage title='ospfd' section='1M'
manpath='@mandir@' />
- <doc_link name='freerangerouting.org'
- uri='http://www.freerangerouting.org/' />
+ <doc_link name='frrouting.org'
+ uri='http://www.frrouting.org/' />
</documentation>
</template>
</instance>
@@ -665,8 +665,8 @@
<documentation>
<manpage title='ospf6d' section='1M'
manpath='@mandir@' />
- <doc_link name='freerangerouting.org'
- uri='http://www.freerangerouting.org/' />
+ <doc_link name='frrouting.org'
+ uri='http://www.frrouting.org/' />
</documentation>
</template>
</instance>
@@ -818,8 +818,8 @@
<documentation>
<manpage title='bgpd' section='1M'
manpath='@mandir@' />
- <doc_link name='freerangerouting.org'
- uri='http://www.freerangerouting.org/' />
+ <doc_link name='frrouting.org'
+ uri='http://www.frrouting.org/' />
</documentation>
</template>
</instance>
diff --git a/solaris/pkginfo.tmpl.in b/solaris/pkginfo.tmpl.in
index 02abb0f96b..89a281ceb6 100644
--- a/solaris/pkginfo.tmpl.in
+++ b/solaris/pkginfo.tmpl.in
@@ -1,9 +1,9 @@
ARCH="@target_cpu@"
CATEGORY="system"
VERSION="@PACKAGE_VERSION@,REV=@CONFDATE@"
-VENDOR="http://www.freerangerouting.org/"
+VENDOR="http://www.frrouting.org/"
HOTLINE="@PACKAGE_BUGREPORT@"
-EMAIL=maintainers@freerangerouting.org
+EMAIL=maintainers@frrouting.org
DESC="@PACKAGE_NAME@ Routing Protocols"
MAXINST=1
CLASSES="none preserve renamenew manifest"
diff --git a/tests/helpers/python/frrtest.py b/tests/helpers/python/frrtest.py
index 20c854f66c..a7ef1c56b7 100644
--- a/tests/helpers/python/frrtest.py
+++ b/tests/helpers/python/frrtest.py
@@ -4,7 +4,7 @@
# Copyright (C) 2017 by David Lamparter & Christian Franke,
# Open Source Routing / NetDEF Inc.
#
-# This file is part of FreeRangeRouting (FRR)
+# This file is part of FRRouting (FRR)
#
# FRR is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
@@ -27,6 +27,7 @@ import sys
import re
import inspect
import os
+import difflib
import frrsix
@@ -154,7 +155,18 @@ class TestMultiOut(_TestMultiOut):
#
class TestRefMismatch(Exception):
- pass
+ def __init__(self, _test, outtext, reftext):
+ self.outtext = outtext.decode('utf8') if type(outtext) is bytes else outtext
+ self.reftext = reftext.decode('utf8') if type(reftext) is bytes else reftext
+
+ def __str__(self):
+ rv = 'Expected output and actual output differ:\n'
+ rv += '\n'.join(difflib.unified_diff(self.reftext.splitlines(),
+ self.outtext.splitlines(),
+ 'outtext', 'reftext',
+ lineterm=''))
+ return rv
+
class TestExitNonzero(Exception):
pass
diff --git a/tests/lib/cli/.gitignore b/tests/lib/cli/.gitignore
new file mode 100644
index 0000000000..682e95faa1
--- /dev/null
+++ b/tests/lib/cli/.gitignore
@@ -0,0 +1 @@
+/test_cli.refout
diff --git a/tests/lib/cli/test_cli.refout b/tests/lib/cli/test_cli.refout.in
index 8b438baee2..18822c150d 100644
--- a/tests/lib/cli/test_cli.refout
+++ b/tests/lib/cli/test_cli.refout.in
@@ -304,6 +304,9 @@ test# show run
Current configuration:
!
+frr version @PACKAGE_VERSION@
+frr defaults @DFLT_NAME@
+!
hostname test
!
!
@@ -316,6 +319,9 @@ foohost(config)# do show run
Current configuration:
!
+frr version @PACKAGE_VERSION@
+frr defaults @DFLT_NAME@
+!
hostname foohost
!
!
diff --git a/vtysh/vtysh_config.c b/vtysh/vtysh_config.c
index e60e9c091f..94c4042dd4 100644
--- a/vtysh/vtysh_config.c
+++ b/vtysh/vtysh_config.c
@@ -274,6 +274,7 @@ vtysh_config_parse_line (const char *line)
{
if (strncmp (line, "log", strlen ("log")) == 0
|| strncmp (line, "hostname", strlen ("hostname")) == 0
+ || strncmp (line, "frr", strlen ("frr")) == 0
)
config_add_line_uniq (config_top, line);
else
diff --git a/zebra/zebra_fpm_dt.c b/zebra/zebra_fpm_dt.c
index 715e250a66..7b4e1b90dc 100644
--- a/zebra/zebra_fpm_dt.c
+++ b/zebra/zebra_fpm_dt.c
@@ -50,8 +50,10 @@
#include "qpb/qpb_allocator.h"
#include "qpb/linear_allocator.h"
+#ifdef HAVE_PROTOBUF
#include "qpb/qpb.h"
#include "fpm/fpm.pb-c.h"
+#endif
/*
* Externs.
diff --git a/zebra/zebra_fpm_protobuf.c b/zebra/zebra_fpm_protobuf.c
index fba57c68f5..8a583bdf65 100644
--- a/zebra/zebra_fpm_protobuf.c
+++ b/zebra/zebra_fpm_protobuf.c
@@ -53,7 +53,7 @@ create_delete_route_message (qpb_allocator_t *allocator, rib_dest_t *dest,
}
fpm__delete_route__init(msg);
- msg->vrf_id = rib_dest_vrf(dest)->vrf_id;
+ msg->vrf_id = rib_dest_vrf(dest)->vrf->vrf_id;
qpb_address_family_set(&msg->address_family, rib_dest_af(dest));
@@ -159,7 +159,7 @@ create_add_route_message (qpb_allocator_t *allocator, rib_dest_t *dest,
fpm__add_route__init(msg);
- msg->vrf_id = rib_dest_vrf(dest)->vrf_id;
+ msg->vrf_id = rib_dest_vrf(dest)->vrf->vrf_id;
qpb_address_family_set (&msg->address_family, rib_dest_af(dest));