mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-05 18:16:43 +00:00
Merge branch 'stable/2.0'
Fixed minor conflicts from "defaults" change on stable. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
This commit is contained in:
commit
3e7c8d040c
93
COMMUNITY.md
93
COMMUNITY.md
@ -2,6 +2,16 @@
|
||||
|
||||
[TOC]
|
||||
|
||||
## General note on this document
|
||||
|
||||
This document is "descriptive/post-factual" in that it documents pratices that
|
||||
are in use; it is not "definitive/pre-factual" in prescribing practices.
|
||||
|
||||
This means that when a procedure changes, it is agreed upon, then put into
|
||||
practice, and then documented here. If this document doesn't match reality,
|
||||
it's the document that needs to be updated, not reality.
|
||||
|
||||
|
||||
## Git Structure
|
||||
|
||||
The master Git for PROJECT resides on Github at
|
||||
@ -10,20 +20,21 @@ The master Git for PROJECT resides on Github at
|
||||

|
||||
|
||||
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.
|
||||
should be provided for the new commands.
|
||||
|
@ -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/
|
||||
|
@ -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
|
||||
|
@ -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.
|
||||
|
36
bgpd/bgpd.c
36
bgpd/bgpd.c
@ -2937,10 +2937,18 @@ bgp_create (as_t *as, const char *name, enum bgp_instance_type inst_type)
|
||||
bgp->stalepath_time = BGP_DEFAULT_STALEPATH_TIME;
|
||||
bgp->dynamic_neighbors_limit = BGP_DYNAMIC_NEIGHBORS_LIMIT_DEFAULT;
|
||||
bgp->dynamic_neighbors_count = 0;
|
||||
#if DFLT_BGP_IMPORT_CHECK
|
||||
bgp_flag_set (bgp, BGP_FLAG_IMPORT_CHECK);
|
||||
#endif
|
||||
#if DFLT_BGP_SHOW_HOSTNAME
|
||||
bgp_flag_set (bgp, BGP_FLAG_SHOW_HOSTNAME);
|
||||
#endif
|
||||
#if DFLT_BGP_LOG_NEIGHBOR_CHANGES
|
||||
bgp_flag_set (bgp, BGP_FLAG_LOG_NEIGHBOR_CHANGES);
|
||||
#endif
|
||||
#if DFLT_BGP_DETERMINISTIC_MED
|
||||
bgp_flag_set (bgp, BGP_FLAG_DETERMINISTIC_MED);
|
||||
#endif
|
||||
bgp->addpath_tx_id = BGP_ADDPATH_TX_ID_FOR_DEFAULT_ORIGINATE;
|
||||
|
||||
bgp->as = *as;
|
||||
@ -7379,8 +7387,11 @@ bgp_config_write (struct vty *vty)
|
||||
inet_ntoa (bgp->router_id_static), VTY_NEWLINE);
|
||||
|
||||
/* BGP log-neighbor-changes. */
|
||||
if (!bgp_flag_check (bgp, BGP_FLAG_LOG_NEIGHBOR_CHANGES))
|
||||
vty_out (vty, " no bgp log-neighbor-changes%s", VTY_NEWLINE);
|
||||
if (!!bgp_flag_check (bgp, BGP_FLAG_LOG_NEIGHBOR_CHANGES)
|
||||
!= DFLT_BGP_LOG_NEIGHBOR_CHANGES)
|
||||
vty_out (vty, " %sbgp log-neighbor-changes%s",
|
||||
bgp_flag_check (bgp, BGP_FLAG_LOG_NEIGHBOR_CHANGES) ? "" : "no ",
|
||||
VTY_NEWLINE);
|
||||
|
||||
/* BGP configuration. */
|
||||
if (bgp_flag_check (bgp, BGP_FLAG_ALWAYS_COMPARE_MED))
|
||||
@ -7396,8 +7407,11 @@ bgp_config_write (struct vty *vty)
|
||||
bgp->default_local_pref, VTY_NEWLINE);
|
||||
|
||||
/* BGP default show-hostname */
|
||||
if (!bgp_flag_check(bgp, BGP_FLAG_SHOW_HOSTNAME))
|
||||
vty_out (vty, " no bgp default show-hostname%s", VTY_NEWLINE);
|
||||
if (!!bgp_flag_check(bgp, BGP_FLAG_SHOW_HOSTNAME)
|
||||
!= DFLT_BGP_SHOW_HOSTNAME)
|
||||
vty_out (vty, " %sbgp default show-hostname%s",
|
||||
bgp_flag_check (bgp, BGP_FLAG_SHOW_HOSTNAME) ? "" : "no ",
|
||||
VTY_NEWLINE);
|
||||
|
||||
/* BGP default subgroup-pkt-queue-max. */
|
||||
if (bgp->default_subgroup_pkt_queue_max != BGP_DEFAULT_SUBGROUP_PKT_QUEUE_MAX)
|
||||
@ -7440,8 +7454,11 @@ bgp_config_write (struct vty *vty)
|
||||
vty_out (vty, " bgp enforce-first-as%s", VTY_NEWLINE);
|
||||
|
||||
/* BGP deterministic-med. */
|
||||
if (!bgp_flag_check (bgp, BGP_FLAG_DETERMINISTIC_MED))
|
||||
vty_out (vty, " no bgp deterministic-med%s", VTY_NEWLINE);
|
||||
if (!!bgp_flag_check (bgp, BGP_FLAG_DETERMINISTIC_MED)
|
||||
!= DFLT_BGP_DETERMINISTIC_MED)
|
||||
vty_out (vty, " %sbgp deterministic-med%s",
|
||||
bgp_flag_check (bgp, BGP_FLAG_DETERMINISTIC_MED) ? "" : "no ",
|
||||
VTY_NEWLINE);
|
||||
|
||||
/* BGP update-delay. */
|
||||
bgp_config_write_update_delay (vty, bgp);
|
||||
@ -7517,8 +7534,11 @@ bgp_config_write (struct vty *vty)
|
||||
}
|
||||
|
||||
/* BGP network import check. */
|
||||
if (!bgp_flag_check (bgp, BGP_FLAG_IMPORT_CHECK))
|
||||
vty_out (vty, " no bgp network import-check%s", VTY_NEWLINE);
|
||||
if (!!bgp_flag_check (bgp, BGP_FLAG_IMPORT_CHECK)
|
||||
!= DFLT_BGP_IMPORT_CHECK)
|
||||
vty_out (vty, " %sbgp network import-check%s",
|
||||
bgp_flag_check (bgp, BGP_FLAG_IMPORT_CHECK) ? "" : "no ",
|
||||
VTY_NEWLINE);
|
||||
|
||||
/* BGP flag dampening. */
|
||||
if (CHECK_FLAG (bgp->af_flags[AFI_IP][SAFI_UNICAST],
|
||||
|
@ -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
|
||||
|
16
configure.ac
16
configure.ac
@ -1,5 +1,5 @@
|
||||
##
|
||||
## Configure template file for FreeRangeRouting.
|
||||
## Configure template file for FRRouting.
|
||||
## autoconf will generate configure script.
|
||||
##
|
||||
## Copyright (c) 1996, 97, 98, 99, 2000 Kunihiro Ishiguro <kunihiro@zebra.org>
|
||||
@ -7,9 +7,9 @@
|
||||
##
|
||||
AC_PREREQ(2.60)
|
||||
|
||||
AC_INIT(frr, 2.1-dev, [https://github.com/freerangerouting/frr/issues])
|
||||
PACKAGE_URL="https://freerangerouting.org/"
|
||||
PACKAGE_FULLNAME="FreeRangeRouting"
|
||||
AC_INIT(frr, 2.1-dev, [https://github.com/frrouting/frr/issues])
|
||||
PACKAGE_URL="https://frrouting.org/"
|
||||
PACKAGE_FULLNAME="FRRouting"
|
||||
AC_SUBST(PACKAGE_FULLNAME)
|
||||
|
||||
CONFIG_ARGS="$ac_configure_args"
|
||||
@ -352,7 +352,12 @@ AC_SUBST(MPLS_METHOD)
|
||||
|
||||
if test "${enable_cumulus}" = "yes" ; then
|
||||
AC_DEFINE(HAVE_CUMULUS,,Compile Special Cumulus Code in)
|
||||
DFLT_NAME="datacenter"
|
||||
else
|
||||
DFLT_NAME="traditional"
|
||||
fi
|
||||
AC_SUBST(DFLT_NAME)
|
||||
AC_DEFINE_UNQUOTED(DFLT_NAME,["$DFLT_NAME"], Name of the configuration default set)
|
||||
|
||||
if test "${enable_shell_access}" = "yes"; then
|
||||
AC_DEFINE(HAVE_SHELL_ACCESS,,Allow user to use ssh/telnet/bash)
|
||||
@ -1681,6 +1686,7 @@ AC_CONFIG_FILES([Makefile lib/Makefile qpb/Makefile zebra/Makefile ripd/Makefile
|
||||
snapcraft/Makefile
|
||||
snapcraft/snapcraft.yaml
|
||||
lib/version.h
|
||||
tests/lib/cli/test_cli.refout
|
||||
doc/defines.texi
|
||||
doc/bgpd.8
|
||||
doc/isisd.8
|
||||
@ -1716,7 +1722,7 @@ AC_CONFIG_FILES([vtysh/extract.pl],[chmod +x vtysh/extract.pl])
|
||||
AC_OUTPUT
|
||||
|
||||
echo "
|
||||
FreeRangeRouting configuration
|
||||
FRRouting configuration
|
||||
------------------------------
|
||||
FRR version : ${PACKAGE_VERSION}
|
||||
host operating system : ${host_os}
|
||||
|
2
debian/README.Debian
vendored
2
debian/README.Debian
vendored
@ -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
|
||||
|
4
debian/copyright
vendored
4
debian/copyright
vendored
@ -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:
|
||||
|
54
defaults.h
Normal file
54
defaults.h
Normal file
@ -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 */
|
@ -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 \
|
||||
|
@ -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 \
|
||||
|
@ -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 \
|
||||
|
@ -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 \
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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"
|
||||
|
@ -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 \
|
||||
|
@ -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 \
|
||||
|
@ -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 \
|
||||
|
12
doc/frr.texi
12
doc/frr.texi
@ -7,7 +7,7 @@
|
||||
@setfilename frr.info
|
||||
@c Set variables - sourced from defines.texi
|
||||
@include defines.texi
|
||||
@settitle @uref{http://www.freerangerouting.org,,@value{PACKAGE_NAME}}
|
||||
@settitle @uref{http://www.frrouting.org,,@value{PACKAGE_NAME}}
|
||||
@c %**end of header
|
||||
|
||||
@c automake will automatically generate version.texi
|
||||
@ -48,16 +48,16 @@ This file documents the Frr Software Routing Suite which manages common
|
||||
TCP/IP routing protocols.
|
||||
|
||||
This is Edition @value{EDITION}, last updated @value{UPDATED} of
|
||||
@cite{The Frr Manual}, for @uref{http://www.freerangerouting.org/,,@value{PACKAGE_NAME}}
|
||||
@cite{The Frr Manual}, for @uref{http://www.frrouting.org/,,@value{PACKAGE_NAME}}
|
||||
Version @value{VERSION}.
|
||||
|
||||
@insertcopying
|
||||
@end ifinfo
|
||||
|
||||
@titlepage
|
||||
@title @uref{http://www.freerangerouting.org,,Frr}
|
||||
@title @uref{http://www.frrouting.org,,Frr}
|
||||
@subtitle A routing software package for TCP/IP networks
|
||||
@subtitle @uref{http://www.freerangerouting.org,,@value{PACKAGE_NAME}} @value{VERSION}
|
||||
@subtitle @uref{http://www.frrouting.org,,@value{PACKAGE_NAME}} @value{VERSION}
|
||||
@subtitle @value{UPDATED-MONTH}
|
||||
@author @value{AUTHORS}
|
||||
|
||||
@ -72,9 +72,9 @@ Version @value{VERSION}.
|
||||
@node Top
|
||||
@top Frr -- With Virtual Network Control
|
||||
|
||||
@uref{http://www.freerangerouting.org,,Frr} is an advanced routing software package
|
||||
@uref{http://www.frrouting.org,,Frr} is an advanced routing software package
|
||||
that provides a suite of TCP/IP based routing protocols. This is the Manual
|
||||
for @value{PACKAGE_STRING}. @uref{http://www.freerangerouting.org,,Frr} is a fork of
|
||||
for @value{PACKAGE_STRING}. @uref{http://www.frrouting.org,,Frr} is a fork of
|
||||
@uref{http://www.quagga.net,,Quagga}.
|
||||
|
||||
@insertcopying
|
||||
|
File diff suppressed because one or more lines are too long
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 22 KiB |
@ -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}.
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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",
|
||||
|
@ -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@"
|
||||
|
@ -29,6 +29,7 @@
|
||||
#include "table.h"
|
||||
#include "thread.h"
|
||||
#include "command.h"
|
||||
#include "defaults.h"
|
||||
|
||||
#include "ospf6_proto.h"
|
||||
#include "ospf6_message.h"
|
||||
@ -160,7 +161,10 @@ ospf6_create (void)
|
||||
o->distance_table = route_table_init ();
|
||||
|
||||
/* Enable "log-adjacency-changes" */
|
||||
#if DFLT_OSPF6_LOG_ADJACENCY_CHANGES
|
||||
SET_FLAG(o->config_flags, OSPF6_LOG_ADJACENCY_CHANGES);
|
||||
#endif
|
||||
|
||||
QOBJ_REG (o, ospf6);
|
||||
|
||||
return o;
|
||||
@ -1022,8 +1026,10 @@ config_write_ospf6 (struct vty *vty)
|
||||
{
|
||||
if (CHECK_FLAG(ospf6->config_flags, OSPF6_LOG_ADJACENCY_DETAIL))
|
||||
vty_out(vty, " log-adjacency-changes detail%s", VTY_NEWLINE);
|
||||
else if (!DFLT_OSPF6_LOG_ADJACENCY_CHANGES)
|
||||
vty_out(vty, " log-adjacency-changes%s", VTY_NEWLINE);
|
||||
}
|
||||
else
|
||||
else if (DFLT_OSPF6_LOG_ADJACENCY_CHANGES)
|
||||
{
|
||||
vty_out(vty, " no log-adjacency-changes%s", VTY_NEWLINE);
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -34,6 +34,7 @@
|
||||
#include "log.h"
|
||||
#include "zclient.h"
|
||||
#include <lib/json.h>
|
||||
#include "defaults.h"
|
||||
|
||||
#include "ospfd/ospfd.h"
|
||||
#include "ospfd/ospf_asbr.h"
|
||||
@ -8806,8 +8807,10 @@ ospf_config_write (struct vty *vty)
|
||||
{
|
||||
if (CHECK_FLAG(ospf->config, OSPF_LOG_ADJACENCY_DETAIL))
|
||||
vty_out(vty, " log-adjacency-changes detail%s", VTY_NEWLINE);
|
||||
else if (!DFLT_OSPF_LOG_ADJACENCY_CHANGES)
|
||||
vty_out(vty, " log-adjacency-changes%s", VTY_NEWLINE);
|
||||
}
|
||||
else
|
||||
else if (DFLT_OSPF_LOG_ADJACENCY_CHANGES)
|
||||
{
|
||||
vty_out(vty, " no log-adjacency-changes%s", VTY_NEWLINE);
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -1,11 +1,5 @@
|
||||
EXTRA_DIST = snapcraft.yaml \
|
||||
scripts/Makefile scripts/zebra-service scripts/bgpd-service \
|
||||
scripts/isisd-service scripts/ripd-service scripts/ripngd-service \
|
||||
scripts/ospf6d-service scripts/ospfd-service \
|
||||
scripts/isisd-service scripts/pimd-service \
|
||||
scripts/ldpd-service \
|
||||
defaults/bgpd.conf.default defaults/isisd.conf.default \
|
||||
defaults/ospf6d.conf.default defaults/ospfd.conf.default \
|
||||
defaults/pimd.conf.default defaults/zebra.conf.default \
|
||||
defaults/ripd.conf.default defaults/ripngd.conf.default \
|
||||
defaults/ldpd.conf.default defaults/vtysh.conf.default
|
||||
README.* \
|
||||
scripts/Makefile scripts/*-service \
|
||||
defaults/*.conf.default \
|
||||
helpers snap
|
||||
|
@ -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
|
||||
|
@ -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`
|
||||
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 21 KiB |
BIN
snapcraft/snap/gui/icon.png
Normal file
BIN
snapcraft/snap/gui/icon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 34 KiB |
@ -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
|
||||
|
||||
|
@ -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.
|
||||
|
||||
|
@ -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)
|
||||
|
@ -1,2 +1,2 @@
|
||||
P FRRlibs FreeRangeRouting common runtime libraries
|
||||
P FRRlibs FRRouting common runtime libraries
|
||||
@PACKAGE_VERSION@,REV=@CONFDATE@
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -1,20 +1,20 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
|
||||
<!--
|
||||
This file is part of FreeRangeRouting (FRR)
|
||||
This file is part of FRRouting (FRR)
|
||||
|
||||
FreeRangeRouting is free software; you can redistribute it and/or
|
||||
FRRouting is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2, or
|
||||
(at your option) anylater version.
|
||||
|
||||
FreeRangeRouting is distributed in the hope that it will be useful,
|
||||
FRRouting is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with FreeRangeRouting; see the file COPYING. If not, write to
|
||||
along with FRRouting; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
|
||||
@ -107,9 +107,9 @@
|
||||
<propval name='value_authorization' type='astring'
|
||||
value='solaris.smf.value.routing' />
|
||||
|
||||
<!-- Options common to FreeRangeRouting daemons
|
||||
<!-- Options common to FRRouting daemons
|
||||
Property names are equivalent to the long
|
||||
option name, consult FreeRangeRouting documentation -->
|
||||
option name, consult FRRouting documentation -->
|
||||
<!-- The config file to use, if not the default -->
|
||||
<propval name='config_file' type='astring' value=''/>
|
||||
<!-- The vty_port to listen on if not the default.
|
||||
@ -142,14 +142,14 @@
|
||||
<template>
|
||||
<common_name>
|
||||
<loctext xml:lang='C'>
|
||||
FreeRangeRouting: zebra, RIB, kernel intermediary and misc daemon
|
||||
FRRouting: zebra, RIB, kernel intermediary and misc daemon
|
||||
</loctext>
|
||||
</common_name>
|
||||
<documentation>
|
||||
<manpage title='zebra' section='1M'
|
||||
manpath='@mandir@' />
|
||||
<doc_link name='freerangerouting.org'
|
||||
uri='http://www.freerangerouting.org/' />
|
||||
<doc_link name='frrouting.org'
|
||||
uri='http://www.frrouting.org/' />
|
||||
</documentation>
|
||||
</template>
|
||||
</instance>
|
||||
@ -240,7 +240,7 @@
|
||||
<propval name='value_authorization' type='astring'
|
||||
value='solaris.smf.value.routing' />
|
||||
|
||||
<!-- Options common to FreeRangeRouting daemons -->
|
||||
<!-- Options common to FRRouting daemons -->
|
||||
<!-- The config file to use, if not the default -->
|
||||
<propval name='config_file' type='astring' value=''/>
|
||||
<!-- The vty_port to listen on if not the default.
|
||||
@ -273,14 +273,14 @@
|
||||
<template>
|
||||
<common_name>
|
||||
<loctext xml:lang='C'>
|
||||
FreeRangeRouting: ripd, RIPv1/2 IPv4 routing protocol daemon.
|
||||
FRRouting: ripd, RIPv1/2 IPv4 routing protocol daemon.
|
||||
</loctext>
|
||||
</common_name>
|
||||
<documentation>
|
||||
<manpage title='ripd' section='1M'
|
||||
manpath='@mandir@' />
|
||||
<doc_link name='freerangerouting.org'
|
||||
uri='http://www.freerangerouting.org/' />
|
||||
<doc_link name='frrouting.org'
|
||||
uri='http://www.frrouting.org/' />
|
||||
</documentation>
|
||||
</template>
|
||||
</instance>
|
||||
@ -408,8 +408,8 @@
|
||||
<documentation>
|
||||
<manpage title='ripngd' section='1M'
|
||||
manpath='@mandir@' />
|
||||
<doc_link name='freerangerouting.org'
|
||||
uri='http://www.freerangerouting.org/' />
|
||||
<doc_link name='frrouting.org'
|
||||
uri='http://www.frrouting.org/' />
|
||||
</documentation>
|
||||
</template>
|
||||
</instance>
|
||||
@ -539,8 +539,8 @@
|
||||
<documentation>
|
||||
<manpage title='ospfd' section='1M'
|
||||
manpath='@mandir@' />
|
||||
<doc_link name='freerangerouting.org'
|
||||
uri='http://www.freerangerouting.org/' />
|
||||
<doc_link name='frrouting.org'
|
||||
uri='http://www.frrouting.org/' />
|
||||
</documentation>
|
||||
</template>
|
||||
</instance>
|
||||
@ -665,8 +665,8 @@
|
||||
<documentation>
|
||||
<manpage title='ospf6d' section='1M'
|
||||
manpath='@mandir@' />
|
||||
<doc_link name='freerangerouting.org'
|
||||
uri='http://www.freerangerouting.org/' />
|
||||
<doc_link name='frrouting.org'
|
||||
uri='http://www.frrouting.org/' />
|
||||
</documentation>
|
||||
</template>
|
||||
</instance>
|
||||
@ -818,8 +818,8 @@
|
||||
<documentation>
|
||||
<manpage title='bgpd' section='1M'
|
||||
manpath='@mandir@' />
|
||||
<doc_link name='freerangerouting.org'
|
||||
uri='http://www.freerangerouting.org/' />
|
||||
<doc_link name='frrouting.org'
|
||||
uri='http://www.frrouting.org/' />
|
||||
</documentation>
|
||||
</template>
|
||||
</instance>
|
||||
|
@ -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"
|
||||
|
@ -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
|
||||
|
||||
|
1
tests/lib/cli/.gitignore
vendored
Normal file
1
tests/lib/cli/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
/test_cli.refout
|
@ -304,6 +304,9 @@ test# show run
|
||||
|
||||
Current configuration:
|
||||
!
|
||||
frr version @PACKAGE_VERSION@
|
||||
frr defaults @DFLT_NAME@
|
||||
!
|
||||
hostname test
|
||||
!
|
||||
!
|
||||
@ -316,6 +319,9 @@ foohost(config)# do show run
|
||||
|
||||
Current configuration:
|
||||
!
|
||||
frr version @PACKAGE_VERSION@
|
||||
frr defaults @DFLT_NAME@
|
||||
!
|
||||
hostname foohost
|
||||
!
|
||||
!
|
@ -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
|
||||
|
@ -50,8 +50,10 @@
|
||||
#include "qpb/qpb_allocator.h"
|
||||
#include "qpb/linear_allocator.h"
|
||||
|
||||
#ifdef HAVE_PROTOBUF
|
||||
#include "qpb/qpb.h"
|
||||
#include "fpm/fpm.pb-c.h"
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Externs.
|
||||
|
@ -53,7 +53,7 @@ create_delete_route_message (qpb_allocator_t *allocator, rib_dest_t *dest,
|
||||
}
|
||||
|
||||
fpm__delete_route__init(msg);
|
||||
msg->vrf_id = rib_dest_vrf(dest)->vrf_id;
|
||||
msg->vrf_id = rib_dest_vrf(dest)->vrf->vrf_id;
|
||||
|
||||
qpb_address_family_set(&msg->address_family, rib_dest_af(dest));
|
||||
|
||||
@ -159,7 +159,7 @@ create_add_route_message (qpb_allocator_t *allocator, rib_dest_t *dest,
|
||||
|
||||
fpm__add_route__init(msg);
|
||||
|
||||
msg->vrf_id = rib_dest_vrf(dest)->vrf_id;
|
||||
msg->vrf_id = rib_dest_vrf(dest)->vrf->vrf_id;
|
||||
|
||||
qpb_address_family_set (&msg->address_family, rib_dest_af(dest));
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user