]> git.proxmox.com Git - mirror_frr.git/commitdiff
Merge pull request #331 from dwalton76/quagga-reload
authorDavid Lamparter <equinox@diac24.net>
Tue, 4 Apr 2017 19:47:01 +0000 (21:47 +0200)
committerGitHub <noreply@github.com>
Tue, 4 Apr 2017 19:47:01 +0000 (21:47 +0200)
tools: quagga-reload.py fails to change max-paths

58 files changed:
COMMUNITY.md
ChangeLog
Makefile.am
REPORTING-BUGS
bgpd/bgpd.c
bgpd/bgpd.h
configure.ac
debian/README.Debian
debian/copyright
defaults.h [new file with mode: 0644]
doc/Building_FRR_on_CentOS6.md
doc/Building_FRR_on_CentOS7.md
doc/Building_FRR_on_Debian8.md
doc/Building_FRR_on_Fedora24.md
doc/Building_FRR_on_FreeBSD10.md
doc/Building_FRR_on_FreeBSD11.md
doc/Building_FRR_on_FreeBSD9.md
doc/Building_FRR_on_NetBSD6.md
doc/Building_FRR_on_NetBSD7.md
doc/Building_FRR_on_OmniOS.md
doc/Building_FRR_on_OpenBSD6.md
doc/Building_FRR_on_Ubuntu1204.md
doc/Building_FRR_on_Ubuntu1404.md
doc/Building_FRR_on_Ubuntu1604.md
doc/frr.texi
doc/git_branches.svg
doc/overview.texi
lib/command.c
lib/privs.c
lib/version.h.in
ospf6d/ospf6_top.c
ospfd/ospf_dump_api.c
ospfd/ospf_dump_api.h
ospfd/ospf_vty.c
ospfd/ospfd.c
redhat/README.rpm_build.md
redhat/frr.spec.in
snapcraft/Makefile.am
snapcraft/README.snap_build.md
snapcraft/README.usage.md
snapcraft/setup/gui/icon.png [deleted file]
snapcraft/snap/gui/icon.png [new file with mode: 0644]
snapcraft/snapcraft.yaml.in
solaris/README.txt
solaris/depend.daemons.in
solaris/depend.dev.in
solaris/depend.libs.in
solaris/depend.smf.in
solaris/frr.init.in
solaris/frr.xml.in
solaris/pkginfo.tmpl.in
tests/helpers/python/frrtest.py
tests/lib/cli/.gitignore [new file with mode: 0644]
tests/lib/cli/test_cli.refout [deleted file]
tests/lib/cli/test_cli.refout.in [new file with mode: 0644]
vtysh/vtysh_config.c
zebra/debug.c
zebra/zebra_fpm_dt.c

index 52777da968810928ee2e13247beac7613bb87782..704c47a95e6e6417d48264179c4da49daf8e3090 100644 (file)
@@ -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.
index a201bb681916a680975d80daebbd33e3391caaaf..ec7e6cdde849cbfc64391d8d5bfaddcba840b351 100644 (file)
--- 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/
index aa978b7d25df54baca98787069cf95465b72d328..89e7ea890e2be5b979a9d384993757f1bd78e628 100644 (file)
@@ -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
index ea36ff5eed8d69eb2283e6d4a3743d1804862941..01f25a2051ac34989d5a4f4bc6d5564810ec77aa 100644 (file)
@@ -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. 
index 1733f2956c1124aaa2e8d18e26ba3a706ce6f5c6..25bd75784081ced4de8f97ae4a60cf9537c4c22c 100644 (file)
@@ -2934,10 +2934,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;
@@ -7376,8 +7384,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))
@@ -7393,8 +7404,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)
@@ -7437,8 +7451,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);
@@ -7514,8 +7531,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],
index 9ccc0e39dee548c12183431f8e08f3d11b62a6b2..a72974bc1d6e9c866df009c02a8313df3d34062b 100644 (file)
@@ -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
index 5f2e3ed517eaff64aa5c7beca642f97f6d1e58d2..6eac0e3c865170a1934a2c65008f17e914d12e46 100755 (executable)
@@ -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"
@@ -359,7 +359,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)
@@ -1736,6 +1741,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
@@ -1771,7 +1777,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}
index caded52075820c61dcc6f62db9802b3501cfd214..4cf35d7e325aefd91291159f4d8281fc4e9831fa 100644 (file)
@@ -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
index 6a5ed98f916b7cdabf5f94004957c24f72c99ccc..7b873abd311f49c38a59e2b758142080eeb1bd66 100644 (file)
@@ -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 (file)
index 0000000..57e35f3
--- /dev/null
@@ -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 */
index b18e53470b28073dfff6d4bbbd28f9430d0aab11..9f40418fffdceec52e1d5c7a42a527a5d379f63c 100644 (file)
@@ -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 \
index e24c73a175a4cebb7850a8edde4880ed4c20cb9b..0ab5c0ff548ebdf6f8f59b68e3998ae95620437f 100644 (file)
@@ -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 \
index 1acbb802f629cc549f78fe7888f2f434e55adc92..b902033d5edef7cac392d6dc09112018904af9ae 100644 (file)
@@ -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 \
index 0b9872bb098c82e5b2a0d5942ea59a025b189dec..941126da420997c4aaa8fba3b9de00613edd1f83 100644 (file)
@@ -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 \
index 5f50bee0d914e82cd8c3b64db3744680695e191c..36ef573bb0ce4f983ccfbe8b5c429233d1fb058f 100644 (file)
@@ -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
index 9b327af1fda0756b013180947f548264423c4830..d6affd688bcefed339429b260296ba940aa13b13 100644 (file)
@@ -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
index 2fd4f1095c9caa976a281b9ffdefe049988e9267..41d3148ad72887284c8130a2824a825ae8f8d790 100644 (file)
@@ -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
index 3a2dea7c2076b24f8af2c952a35e7fb2c45ab5fc..542a7f489e742b2aed2e26b5f40cfb4490769747 100644 (file)
@@ -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
index 38a116f4f190d2fa77438478f2bcac035c828536..821a6109f2d191ecfaab1a1a60044f9ec87503a9 100644 (file)
@@ -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
index a64b054417f9cd8eca9d59994d7da9b26beea5a4..2e9871467bf6445dc2849a205791f3ca71244ae7 100644 (file)
@@ -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
index 14a703b1d303b29f9974fc061c7614b3951dbc21..a59452a72b178a7f92e08bdd9f7c59d0c7a6dee3 100644 (file)
@@ -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"
index 03d66af62998cda7768626e047acf8e6894ed88a..82404097c51c7a5e5c63e5fdbf69173526d1827f 100644 (file)
@@ -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 \
index 5de2fd8bb956a3c0b1be4fc539d35b9b4a4e9a9b..0d7c6f76fe87b700dd02256b2569a85caf7b8bd5 100644 (file)
@@ -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 \
index 996b8da898ed5e1512cb4bd4a2afd376fb75a195..b6e18088f01eeb3676b74e1bac944c002f745167 100644 (file)
@@ -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 \
index a64dc9e72962cb959c2fa1b05f1a4d9609c7b073..b08bb6fd04445d34096a1a91323d95871d0ae615 100644 (file)
@@ -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
index 3943eeacc885b7353c852a0966bde22eabc214e1..0c2c96e39ed185c78515d75daaa9de2946dfbd1c 100644 (file)
@@ -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>
index 370ada3f8a2442d2b67ac25868b60c9291d8c7b0..7ecf3d95c39162b7332c24df8dc8580436dbcafd 100644 (file)
@@ -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}.
index bfff581d9b2b2288c4fb51c7cf3285e14f5f135d..993d6f905548a20de5e4e71c89db2ce7546e57f3 100644 (file)
@@ -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)
     {
index 376d6f3365bb8c22f50397420acabbb554492493..decd4bb7db94319d81d1078e745fe46d08b342b2 100644 (file)
@@ -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",
index adc82781892b2ee3e77ad71df0736e8e68dba6d7..d9eabb9f8170595f305b3b1d32da97507f43b4a5 100644 (file)
@@ -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@"
index 32dad36d9e1bc8a289153076b7972f36e163f631..f2a1c8c2ecfbc65f0a88018f11f3645b920e6926 100644 (file)
@@ -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;
@@ -391,7 +395,6 @@ DEFUN (no_ospf6_log_adjacency_changes_detail,
   VTY_DECLVAR_CONTEXT(ospf6, ospf6);
 
   UNSET_FLAG(ospf6->config_flags, OSPF6_LOG_ADJACENCY_DETAIL);
-  UNSET_FLAG(ospf6->config_flags, OSPF6_LOG_ADJACENCY_CHANGES);
   return CMD_SUCCESS;
 }
 
@@ -1022,8 +1025,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);
     }
index 20e7740d32019bdfdd3cc77a72a07597f3e62c3c..5ef262ce5414b4be247bbcbfd08b0eec34c9765c 100644 (file)
@@ -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
index c3ff1e3f5438f66c76a0c2e93b31e2cde2fab06d..1cd8257f0ca613a49d42a4878051959d39ed1934 100644 (file)
@@ -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
index 121ef018b2378909600839191a88acf09f2f7fe7..49474df82626649fbb32591fe1d3354582bd6a8e 100644 (file)
@@ -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"
@@ -2137,7 +2138,6 @@ DEFUN (no_ospf_log_adjacency_changes_detail,
 {
   VTY_DECLVAR_CONTEXT(ospf, ospf);
 
-  UNSET_FLAG(ospf->config, OSPF_LOG_ADJACENCY_CHANGES);
   UNSET_FLAG(ospf->config, OSPF_LOG_ADJACENCY_DETAIL);
   return CMD_SUCCESS;
 }
@@ -8806,8 +8806,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);
         }
index 7cd3903678cbbebe4edb11a178d5abc535c5324d..30b1e9622f1c1480015ac268f0ac00be704ca34a 100644 (file)
@@ -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;
index db3c7d45c83f8e97702ee86a67fc83d7a2d45902..6bec5d65cd3f2a4ed9542aae15a78481d591ee80 100644 (file)
@@ -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
 
index b86d1155072b272de074964f4d84b03953eab284..c32e3e3af8138d41e87b58c9f038376c849249d7 100644 (file)
@@ -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
index 15813be72f2849da2df0876e6f29fda9f6bce8b5..75f768e942b896aa169746af592bfa901502dcfb 100644 (file)
@@ -1,11 +1,25 @@
 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.snap_build.md \
+       README.usage.md \
+       scripts/Makefile \
+       scripts/bgpd-service \
+       scripts/isisd-service \
+       scripts/ldpd-service \
+       scripts/ospf6d-service \
+       scripts/ospfd-service \
+       scripts/pimd-service \
+       scripts/ripd-service \
+       scripts/ripngd-service \
+       scripts/zebra-service \
+       defaults/bgpd.conf.default \
+       defaults/isisd.conf.default \
+       defaults/ldpd.conf.default \
+       defaults/ospf6d.conf.default \
+       defaults/ospfd.conf.default \
+       defaults/pimd.conf.default \
+       defaults/ripd.conf.default \
+       defaults/ripngd.conf.default \
+       defaults/vtysh.conf.default \
+       defaults/zebra.conf.default \
+       helpers \
+       snap
index 341b210f71e2e044beffd6401e93fa7c99769c5b..c4db51bd6aa02a717fd54b2694b6c1d7a6ecd79b 100644 (file)
@@ -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
index 2d2b32b6b7fb0ff112a01d92c089960936661c7b..aaff59438aec660eee5af0ad75c210c4a9ac9c47 100644 (file)
@@ -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 (file)
index e8f68e6..0000000
Binary files a/snapcraft/setup/gui/icon.png and /dev/null differ
diff --git a/snapcraft/snap/gui/icon.png b/snapcraft/snap/gui/icon.png
new file mode 100644 (file)
index 0000000..3ab3f8f
Binary files /dev/null and b/snapcraft/snap/gui/icon.png differ
index a703766f0b92cebc2e8016975da8ae743485c977..a20a1d0392f297ec8524878e5f16532463104b5a 100644 (file)
@@ -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
 
index 01f725b8fadc954545522c5587ca685579dd111c..589570d881ca7b60a5ef979eb166cad7912fa76d 100644 (file)
@@ -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.
 
index 64fb03ac198cac3afc394483797b6886051faa0b..a8ce943e31d5c67ee9f8f1b585b80d1bf7be00be 100644 (file)
@@ -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)
index 5d8bf16ed6b3cc5400c3b3ca39b4a44199181a8a..1b65724a0454a9892955e10c90948d76f37acb0d 100644 (file)
@@ -1,2 +1,2 @@
-P FRRlibs FreeRangeRouting common runtime libraries
+P FRRlibs FRRouting common runtime libraries
        @PACKAGE_VERSION@,REV=@CONFDATE@
index 6ead0b2867edbde7f394bb169d4872916e06535a..04f04efd01999dd16609a4f68ca2fa8b3b69c6f9 100644 (file)
@@ -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
index 66b11eba2a578e05f7d6f68387d624525288743f..b3b1bd778c770489e67a2a0eb91464b179b7b96d 100644 (file)
@@ -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)
index 580fd9b35cd5b9b65af41573a5da5cf23e3786f8..bd9ab85e6918e462638301c8021515a17cd51614 100755 (executable)
@@ -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
index 5ac7e527211ecb717a7ae7fef66c45e44d72a0f3..08a9a11c0f8bc60849a2bb37127e5decf5368d14 100644 (file)
@@ -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.
 
                <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.
        <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>
                <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.
        <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>
                <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>
                <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>
                <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>
                <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>
index 02abb0f96bf16b04f37d8403cf5936b03cf822d5..89a281ceb6824cc33c637792d8aaa72877e108fd 100644 (file)
@@ -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"
index 20c854f66c26040088253782851f50dcbc1d334f..a7ef1c56b7d2d8c30ba70d62877fd755eae1bad6 100644 (file)
@@ -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 (file)
index 0000000..682e95f
--- /dev/null
@@ -0,0 +1 @@
+/test_cli.refout
diff --git a/tests/lib/cli/test_cli.refout b/tests/lib/cli/test_cli.refout
deleted file mode 100644 (file)
index 8b438ba..0000000
+++ /dev/null
@@ -1,326 +0,0 @@
-test# echo this is a  test message\r
-this is a test message\r
-test# echo  foo bla  \r
-% There is no matched command.\r
-test# echo  foo bla    baz\r
-foo bla baz\r
-test# echo\r
-% Command incomplete.\r
-test# \r
-test# arg ipv4 1.2.3.4\r
-cmd0 with 3 args.\r
-[00]: arg\r
-[01]: ipv4\r
-[02]: 1.2.3.4\r
-test# arg ipv4 1.2.\r
-  A.B.C.D  02\r
-test# arg ipv4 1.2.3.4\r
-cmd0 with 3 args.\r
-[00]: arg\r
-[01]: ipv4\r
-[02]: 1.2.3.4\r
-test# arg ipv4 1.2.3\r
-% [NONE] Unknown command: arg ipv4 1.2.3\r
-test# arg ipv4 1.2.3.4.5\r
-% [NONE] Unknown command: arg ipv4 1.2.3.4.5\r
-test# arg ipv4 1.a.3.4\r
-% [NONE] Unknown command: arg ipv4 1.a.3.4\r
-test# arg ipv4 blah\r
-% [NONE] Unknown command: arg ipv4 blah\r
-test# \r
-test# arg ipv4m 1.2.3.0/24\r
-cmd1 with 3 args.\r
-[00]: arg\r
-[01]: ipv4m\r
-[02]: 1.2.3.0/24\r
-test# arg ipv4m 1.2.\r
-  A.B.C.D/M  02\r
-test# arg ipv4m 1.2.3.0/24\r
-cmd1 with 3 args.\r
-[00]: arg\r
-[01]: ipv4m\r
-[02]: 1.2.3.0/24\r
-test# arg ipv4m 1.2.3/9\r
-% [NONE] Unknown command: arg ipv4m 1.2.3/9\r
-test# arg ipv4m 1.2.3.4.5/6\r
-% [NONE] Unknown command: arg ipv4m 1.2.3.4.5/6\r
-test# arg ipv4m 1.a.3.4\r
-% [NONE] Unknown command: arg ipv4m 1.a.3.4\r
-test# arg ipv4m blah\r
-% [NONE] Unknown command: arg ipv4m blah\r
-test# arg ipv4m 1.2.3.0/999\r
-% [NONE] Unknown command: arg ipv4m 1.2.3.0/999\r
-test# arg ipv4m 1.2.3.0/a9\r
-% [NONE] Unknown command: arg ipv4m 1.2.3.0/a9\r
-test# arg ipv4m 1.2.3.0/9a\r
-% [NONE] Unknown command: arg ipv4m 1.2.3.0/9a\r
-test# \r
-test# arg ipv6 de4d:b33f::cafe\r
-cmd2 with 3 args.\r
-[00]: arg\r
-[01]: ipv6\r
-[02]: de4d:b33f::cafe\r
-test# arg ipv6 de4d:b3\r
-% There is no matched command.\r
-test# arg ipv6 de4d:b33f::caf\r
-  X:X::X:X  02\r
-test# arg ipv6 de4d:b33f::cafe\r
-cmd2 with 3 args.\r
-[00]: arg\r
-[01]: ipv6\r
-[02]: de4d:b33f::cafe\r
-test# arg ipv6 de4d:b3\r
-test# arg ipv6 de4d:b33f::caf\r
-  X:X::X:X  02\r
-test# arg ipv6 de4d:b33f::cafe\r
-cmd2 with 3 args.\r
-[00]: arg\r
-[01]: ipv6\r
-[02]: de4d:b33f::cafe\r
-test# arg ipv6 de4d:b33f:z::cafe\r
-% [NONE] Unknown command: arg ipv6 de4d:b33f:z::cafe\r
-test# arg ipv6 de4d:b33f:cafe:\r
-% [NONE] Unknown command: arg ipv6 de4d:b33f:cafe:\r
-test# arg ipv6 ::\r
-cmd2 with 3 args.\r
-[00]: arg\r
-[01]: ipv6\r
-[02]: ::\r
-test# arg ipv6 ::/\r
-% [NONE] Unknown command: arg ipv6 ::/\r
-test# arg ipv6 1:2:3:4:5:6:7:8:9:0:1:2:3:4:5:6:7:8:9:0:1:2:3:4:5:6:7:8:9:0\r
-% [NONE] Unknown command: arg ipv6 1:2:3:4:5:6:7:8:9:0:1:2:3:4:5:6:7:8:9:0:1:2:3:4:5:6:7:8:9:0\r
-test# arg ipv6 12::34::56\r
-% [NONE] Unknown command: arg ipv6 12::34::56\r
-test# arg ipv6m dead:beef:cafe::/64\r
-cmd3 with 3 args.\r
-[00]: arg\r
-[01]: ipv6m\r
-[02]: dead:beef:cafe::/64\r
-test# arg ipv6m dead:be\r
-  X:X::X:X/M  02\r
-test# arg ipv6m dead:beef:cafe:\r
-  X:X::X:X/M  02\r
-test# arg ipv6m dead:beef:cafe::/64\r
-cmd3 with 3 args.\r
-[00]: arg\r
-[01]: ipv6m\r
-[02]: dead:beef:cafe::/64\r
-test# \r
-test# arg range 4\r
-% [NONE] Unknown command: arg range 4\r
-test# arg range 5\r
-cmd4 with 3 args.\r
-[00]: arg\r
-[01]: range\r
-[02]: 5\r
-test# arg range 9\r
-  (5-15)  02\r
-test# arg range 9\r
-cmd4 with 3 args.\r
-[00]: arg\r
-[01]: range\r
-[02]: 9\r
-test# arg range 15\r
-cmd4 with 3 args.\r
-[00]: arg\r
-[01]: range\r
-[02]: 15\r
-test# arg range 16\r
-% [NONE] Unknown command: arg range 16\r
-test# arg range -1\r
-% [NONE] Unknown command: arg range -1\r
-test# arg range 99999999999999999999999999999999999999999\r
-% [NONE] Unknown command: arg range 99999999999999999999999999999999999999999\r
-test# \r
-test# arg \r
-  ipv4   01\r
-  ipv4m  01\r
-  ipv6   01\r
-  ipv6m  01\r
-  range  01\r
-test# arg \r
-% Command incomplete.\r
-test# \r
-test# pa\r
-test# pa\b\bpat \r
-% Command incomplete.\r
-test# pat \r
-a          c          d          e          f          \r
-test# pat \r
-% Command incomplete.\r
-test# \r
-test# pat a\r
-% Command incomplete.\r
-test# pat a a\r
-cmd5 with 3 args.\r
-[00]: pat\r
-[01]: a\r
-[02]: a\r
-test# pat a \r
-  a  02\r
-  b  03\r
-test# pat a b\r
-cmd5 with 3 args.\r
-[00]: pat\r
-[01]: a\r
-[02]: b\r
-test# pat a c\r
-% There is no matched command.\r
-test# pat a c\r
-% [NONE] Unknown command: pat a c\r
-test# pat a a x\r
-% [NONE] Unknown command: pat a a x\r
-test# \r
-test# pat c a\r
-% Command incomplete.\r
-test# pat c a 1.2.3.4\r
-cmd7 with 4 args.\r
-[00]: pat\r
-[01]: c\r
-[02]: a\r
-[03]: 1.2.3.4\r
-test# pat c b 2.3.4\r
-% [NONE] Unknown command: pat c b 2.3.4\r
-test# pat c c \r
-  A.B.C.D  05\r
-test# pat c c x\r
-% [NONE] Unknown command: pat c c x\r
-test# \r
-test# pat d\r
-% Command incomplete.\r
-test# pat d \r
-bar        baz        foo        \r
-test# pat d \r
-% Command incomplete.\r
-test# pat d foo 1.2.3.4\r
-cmd8 with 4 args.\r
-[00]: pat\r
-[01]: d\r
-[02]: foo\r
-[03]: 1.2.3.4\r
-test# pat d foo\r
-% Command incomplete.\r
-test# pat d noooo\r
-% [NONE] Unknown command: pat d noooo\r
-test# pat d bar 1::2\r
-cmd8 with 4 args.\r
-[00]: pat\r
-[01]: d\r
-[02]: bar\r
-[03]: 1::2\r
-test# pat d bar 1::2 foo 3.4.5.6\r
-cmd8 with 6 args.\r
-[00]: pat\r
-[01]: d\r
-[02]: bar\r
-[03]: 1::2\r
-[04]: foo\r
-[05]: 3.4.5.6\r
-test# pat d ba\r
-  bar  04\r
-  baz  06\r
-test# pat d baz\r
-cmd8 with 3 args.\r
-[00]: pat\r
-[01]: d\r
-[02]: baz\r
-test# pat d foo 3.4.5.6 baz\r
-cmd8 with 5 args.\r
-[00]: pat\r
-[01]: d\r
-[02]: foo\r
-[03]: 3.4.5.6\r
-[04]: baz\r
-test# \r
-test# pat e\r
-cmd9 with 2 args.\r
-[00]: pat\r
-[01]: e\r
-test# pat e f\r
-cmd9 with 3 args.\r
-[00]: pat\r
-[01]: e\r
-[02]: f\r
-test# pat e f g\r
-% [NONE] Unknown command: pat e f g\r
-test# pat e 1.2.3.4\r
-cmd9 with 3 args.\r
-[00]: pat\r
-[01]: e\r
-[02]: 1.2.3.4\r
-test# \r
-test# pat f\r
-cmd10 with 2 args.\r
-[00]: pat\r
-[01]: f\r
-test# pat f foo\r
-% [NONE] Unknown command: pat f foo\r
-test# pat f key\r
-cmd10 with 3 args.\r
-[00]: pat\r
-[01]: f\r
-[02]: key\r
-test# \r
-test# alt a \r
-test# alt a a\r
-  WORD  02\r
-test# alt a ab\r
-cmd11 with 3 args.\r
-[00]: alt\r
-[01]: a\r
-[02]: ab\r
-test# alt a 1\r
-test# alt a 1.2\r
-  A.B.C.D  02\r
-  WORD     02\r
-test# alt a 1.2.3.4\r
-cmd12 with 3 args.\r
-[00]: alt\r
-[01]: a\r
-[02]: 1.2.3.4\r
-test# alt a 1\r
-test# alt a 1:2\r
-  WORD  02\r
-test# alt a 1:2\r
-test# alt a 1:2::\r
-  WORD      02\r
-  X:X::X:X  02\r
-test# alt a 1:2::3\r
-cmd13 with 3 args.\r
-[00]: alt\r
-[01]: a\r
-[02]: 1:2::3\r
-test# \r
-test# conf t\r
-test(config)# do pat d baz\r
-cmd8 with 3 args.\r
-[00]: pat\r
-[01]: d\r
-[02]: baz\r
-test(config)# exit\r
-test# \r
-test# show run\r
-\r
-Current configuration:\r
-!\r
-hostname test\r
-!\r
-!\r
-line vty\r
-!\r
-end\r
-test# conf t\r
-test(config)# hostname foohost\r
-foohost(config)# do show run\r
-\r
-Current configuration:\r
-!\r
-hostname foohost\r
-!\r
-!\r
-line vty\r
-!\r
-end\r
-foohost(config)# 
-end.
diff --git a/tests/lib/cli/test_cli.refout.in b/tests/lib/cli/test_cli.refout.in
new file mode 100644 (file)
index 0000000..18822c1
--- /dev/null
@@ -0,0 +1,332 @@
+test# echo this is a  test message\r
+this is a test message\r
+test# echo  foo bla  \r
+% There is no matched command.\r
+test# echo  foo bla    baz\r
+foo bla baz\r
+test# echo\r
+% Command incomplete.\r
+test# \r
+test# arg ipv4 1.2.3.4\r
+cmd0 with 3 args.\r
+[00]: arg\r
+[01]: ipv4\r
+[02]: 1.2.3.4\r
+test# arg ipv4 1.2.\r
+  A.B.C.D  02\r
+test# arg ipv4 1.2.3.4\r
+cmd0 with 3 args.\r
+[00]: arg\r
+[01]: ipv4\r
+[02]: 1.2.3.4\r
+test# arg ipv4 1.2.3\r
+% [NONE] Unknown command: arg ipv4 1.2.3\r
+test# arg ipv4 1.2.3.4.5\r
+% [NONE] Unknown command: arg ipv4 1.2.3.4.5\r
+test# arg ipv4 1.a.3.4\r
+% [NONE] Unknown command: arg ipv4 1.a.3.4\r
+test# arg ipv4 blah\r
+% [NONE] Unknown command: arg ipv4 blah\r
+test# \r
+test# arg ipv4m 1.2.3.0/24\r
+cmd1 with 3 args.\r
+[00]: arg\r
+[01]: ipv4m\r
+[02]: 1.2.3.0/24\r
+test# arg ipv4m 1.2.\r
+  A.B.C.D/M  02\r
+test# arg ipv4m 1.2.3.0/24\r
+cmd1 with 3 args.\r
+[00]: arg\r
+[01]: ipv4m\r
+[02]: 1.2.3.0/24\r
+test# arg ipv4m 1.2.3/9\r
+% [NONE] Unknown command: arg ipv4m 1.2.3/9\r
+test# arg ipv4m 1.2.3.4.5/6\r
+% [NONE] Unknown command: arg ipv4m 1.2.3.4.5/6\r
+test# arg ipv4m 1.a.3.4\r
+% [NONE] Unknown command: arg ipv4m 1.a.3.4\r
+test# arg ipv4m blah\r
+% [NONE] Unknown command: arg ipv4m blah\r
+test# arg ipv4m 1.2.3.0/999\r
+% [NONE] Unknown command: arg ipv4m 1.2.3.0/999\r
+test# arg ipv4m 1.2.3.0/a9\r
+% [NONE] Unknown command: arg ipv4m 1.2.3.0/a9\r
+test# arg ipv4m 1.2.3.0/9a\r
+% [NONE] Unknown command: arg ipv4m 1.2.3.0/9a\r
+test# \r
+test# arg ipv6 de4d:b33f::cafe\r
+cmd2 with 3 args.\r
+[00]: arg\r
+[01]: ipv6\r
+[02]: de4d:b33f::cafe\r
+test# arg ipv6 de4d:b3\r
+% There is no matched command.\r
+test# arg ipv6 de4d:b33f::caf\r
+  X:X::X:X  02\r
+test# arg ipv6 de4d:b33f::cafe\r
+cmd2 with 3 args.\r
+[00]: arg\r
+[01]: ipv6\r
+[02]: de4d:b33f::cafe\r
+test# arg ipv6 de4d:b3\r
+test# arg ipv6 de4d:b33f::caf\r
+  X:X::X:X  02\r
+test# arg ipv6 de4d:b33f::cafe\r
+cmd2 with 3 args.\r
+[00]: arg\r
+[01]: ipv6\r
+[02]: de4d:b33f::cafe\r
+test# arg ipv6 de4d:b33f:z::cafe\r
+% [NONE] Unknown command: arg ipv6 de4d:b33f:z::cafe\r
+test# arg ipv6 de4d:b33f:cafe:\r
+% [NONE] Unknown command: arg ipv6 de4d:b33f:cafe:\r
+test# arg ipv6 ::\r
+cmd2 with 3 args.\r
+[00]: arg\r
+[01]: ipv6\r
+[02]: ::\r
+test# arg ipv6 ::/\r
+% [NONE] Unknown command: arg ipv6 ::/\r
+test# arg ipv6 1:2:3:4:5:6:7:8:9:0:1:2:3:4:5:6:7:8:9:0:1:2:3:4:5:6:7:8:9:0\r
+% [NONE] Unknown command: arg ipv6 1:2:3:4:5:6:7:8:9:0:1:2:3:4:5:6:7:8:9:0:1:2:3:4:5:6:7:8:9:0\r
+test# arg ipv6 12::34::56\r
+% [NONE] Unknown command: arg ipv6 12::34::56\r
+test# arg ipv6m dead:beef:cafe::/64\r
+cmd3 with 3 args.\r
+[00]: arg\r
+[01]: ipv6m\r
+[02]: dead:beef:cafe::/64\r
+test# arg ipv6m dead:be\r
+  X:X::X:X/M  02\r
+test# arg ipv6m dead:beef:cafe:\r
+  X:X::X:X/M  02\r
+test# arg ipv6m dead:beef:cafe::/64\r
+cmd3 with 3 args.\r
+[00]: arg\r
+[01]: ipv6m\r
+[02]: dead:beef:cafe::/64\r
+test# \r
+test# arg range 4\r
+% [NONE] Unknown command: arg range 4\r
+test# arg range 5\r
+cmd4 with 3 args.\r
+[00]: arg\r
+[01]: range\r
+[02]: 5\r
+test# arg range 9\r
+  (5-15)  02\r
+test# arg range 9\r
+cmd4 with 3 args.\r
+[00]: arg\r
+[01]: range\r
+[02]: 9\r
+test# arg range 15\r
+cmd4 with 3 args.\r
+[00]: arg\r
+[01]: range\r
+[02]: 15\r
+test# arg range 16\r
+% [NONE] Unknown command: arg range 16\r
+test# arg range -1\r
+% [NONE] Unknown command: arg range -1\r
+test# arg range 99999999999999999999999999999999999999999\r
+% [NONE] Unknown command: arg range 99999999999999999999999999999999999999999\r
+test# \r
+test# arg \r
+  ipv4   01\r
+  ipv4m  01\r
+  ipv6   01\r
+  ipv6m  01\r
+  range  01\r
+test# arg \r
+% Command incomplete.\r
+test# \r
+test# pa\r
+test# pa\b\bpat \r
+% Command incomplete.\r
+test# pat \r
+a          c          d          e          f          \r
+test# pat \r
+% Command incomplete.\r
+test# \r
+test# pat a\r
+% Command incomplete.\r
+test# pat a a\r
+cmd5 with 3 args.\r
+[00]: pat\r
+[01]: a\r
+[02]: a\r
+test# pat a \r
+  a  02\r
+  b  03\r
+test# pat a b\r
+cmd5 with 3 args.\r
+[00]: pat\r
+[01]: a\r
+[02]: b\r
+test# pat a c\r
+% There is no matched command.\r
+test# pat a c\r
+% [NONE] Unknown command: pat a c\r
+test# pat a a x\r
+% [NONE] Unknown command: pat a a x\r
+test# \r
+test# pat c a\r
+% Command incomplete.\r
+test# pat c a 1.2.3.4\r
+cmd7 with 4 args.\r
+[00]: pat\r
+[01]: c\r
+[02]: a\r
+[03]: 1.2.3.4\r
+test# pat c b 2.3.4\r
+% [NONE] Unknown command: pat c b 2.3.4\r
+test# pat c c \r
+  A.B.C.D  05\r
+test# pat c c x\r
+% [NONE] Unknown command: pat c c x\r
+test# \r
+test# pat d\r
+% Command incomplete.\r
+test# pat d \r
+bar        baz        foo        \r
+test# pat d \r
+% Command incomplete.\r
+test# pat d foo 1.2.3.4\r
+cmd8 with 4 args.\r
+[00]: pat\r
+[01]: d\r
+[02]: foo\r
+[03]: 1.2.3.4\r
+test# pat d foo\r
+% Command incomplete.\r
+test# pat d noooo\r
+% [NONE] Unknown command: pat d noooo\r
+test# pat d bar 1::2\r
+cmd8 with 4 args.\r
+[00]: pat\r
+[01]: d\r
+[02]: bar\r
+[03]: 1::2\r
+test# pat d bar 1::2 foo 3.4.5.6\r
+cmd8 with 6 args.\r
+[00]: pat\r
+[01]: d\r
+[02]: bar\r
+[03]: 1::2\r
+[04]: foo\r
+[05]: 3.4.5.6\r
+test# pat d ba\r
+  bar  04\r
+  baz  06\r
+test# pat d baz\r
+cmd8 with 3 args.\r
+[00]: pat\r
+[01]: d\r
+[02]: baz\r
+test# pat d foo 3.4.5.6 baz\r
+cmd8 with 5 args.\r
+[00]: pat\r
+[01]: d\r
+[02]: foo\r
+[03]: 3.4.5.6\r
+[04]: baz\r
+test# \r
+test# pat e\r
+cmd9 with 2 args.\r
+[00]: pat\r
+[01]: e\r
+test# pat e f\r
+cmd9 with 3 args.\r
+[00]: pat\r
+[01]: e\r
+[02]: f\r
+test# pat e f g\r
+% [NONE] Unknown command: pat e f g\r
+test# pat e 1.2.3.4\r
+cmd9 with 3 args.\r
+[00]: pat\r
+[01]: e\r
+[02]: 1.2.3.4\r
+test# \r
+test# pat f\r
+cmd10 with 2 args.\r
+[00]: pat\r
+[01]: f\r
+test# pat f foo\r
+% [NONE] Unknown command: pat f foo\r
+test# pat f key\r
+cmd10 with 3 args.\r
+[00]: pat\r
+[01]: f\r
+[02]: key\r
+test# \r
+test# alt a \r
+test# alt a a\r
+  WORD  02\r
+test# alt a ab\r
+cmd11 with 3 args.\r
+[00]: alt\r
+[01]: a\r
+[02]: ab\r
+test# alt a 1\r
+test# alt a 1.2\r
+  A.B.C.D  02\r
+  WORD     02\r
+test# alt a 1.2.3.4\r
+cmd12 with 3 args.\r
+[00]: alt\r
+[01]: a\r
+[02]: 1.2.3.4\r
+test# alt a 1\r
+test# alt a 1:2\r
+  WORD  02\r
+test# alt a 1:2\r
+test# alt a 1:2::\r
+  WORD      02\r
+  X:X::X:X  02\r
+test# alt a 1:2::3\r
+cmd13 with 3 args.\r
+[00]: alt\r
+[01]: a\r
+[02]: 1:2::3\r
+test# \r
+test# conf t\r
+test(config)# do pat d baz\r
+cmd8 with 3 args.\r
+[00]: pat\r
+[01]: d\r
+[02]: baz\r
+test(config)# exit\r
+test# \r
+test# show run\r
+\r
+Current configuration:\r
+!\r
+frr version @PACKAGE_VERSION@\r
+frr defaults @DFLT_NAME@\r
+!\r
+hostname test\r
+!\r
+!\r
+line vty\r
+!\r
+end\r
+test# conf t\r
+test(config)# hostname foohost\r
+foohost(config)# do show run\r
+\r
+Current configuration:\r
+!\r
+frr version @PACKAGE_VERSION@\r
+frr defaults @DFLT_NAME@\r
+!\r
+hostname foohost\r
+!\r
+!\r
+line vty\r
+!\r
+end\r
+foohost(config)# 
+end.
index e60e9c091fdf0796301650504395e8c82f72b800..94c4042dd4b8e79914b219aca88a694575516145 100644 (file)
@@ -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
index 2e9fef292ba7e91e45a090c5420915acfd9fd7ae..f21778276ef75af9653759eeb656b1eca721e934 100644 (file)
@@ -399,6 +399,11 @@ config_write_debug (struct vty *vty)
       vty_out (vty, "debug zebra fpm%s", VTY_NEWLINE);
       write++;
     }
+  if (IS_ZEBRA_DEBUG_NHT)
+    {
+      vty_out (vty, "debug zebra nht%s", VTY_NEWLINE);
+      write++;
+    }
   if (IS_ZEBRA_DEBUG_MPLS)
     {
       vty_out (vty, "debug zebra mpls%s", VTY_NEWLINE);
index 715e250a665ca41c2048aa1f3e6d20c5768c4286..7b4e1b90dc6ba7d28048f19c2a8d32797373cb51 100644 (file)
 #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.