mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-09 07:56:29 +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
91
COMMUNITY.md
91
COMMUNITY.md
@ -2,6 +2,16 @@
|
|||||||
|
|
||||||
[TOC]
|
[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
|
## Git Structure
|
||||||
|
|
||||||
The master Git for PROJECT resides on Github at
|
The master Git for PROJECT resides on Github at
|
||||||
@ -10,20 +20,21 @@ The master Git for PROJECT resides on Github at
|
|||||||

|
"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.
|
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
|
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
|
Patchwork, run some basic build and functional tests.
|
||||||
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.
|
|
||||||
|
|
||||||
For each major release (1.0, 1.1 etc) a new release branch is created based
|
For each major release (1.0, 1.1 etc) a new release branch is created based
|
||||||
on the master.
|
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
|
## Programming language, Tools and Libraries
|
||||||
|
|
||||||
@ -250,16 +261,72 @@ Portions:
|
|||||||
|
|
||||||
### Code styling / format
|
### Code styling / format
|
||||||
|
|
||||||
GNU coding standards apply. Indentation follows the result of invoking GNU
|
Coding style standards in FRR vary depending on location. Pre-existing
|
||||||
indent (as of 2.2.8a) with the `-nut -nfc1` arguments.
|
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
|
indent -nut -nfc1 file_for_submission.c
|
||||||
```
|
```
|
||||||
|
|
||||||
Please don’t reformat existing files (or only sections modified by your
|
Originally, tabs were used instead of spaces, with tabs are every 8 columns.
|
||||||
changes), even if they don’t follow the standard. This makes it very hard to
|
However, tab interoperability issues mean space characters are now preferred for
|
||||||
highlight the changes
|
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
|
### Compile-Time conditional code
|
||||||
|
|
||||||
|
@ -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:
|
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
|
tools/zebra.el tools/multiple-bgpd.sh
|
||||||
|
|
||||||
ACLOCAL_AMFLAGS = -I m4
|
ACLOCAL_AMFLAGS = -I m4
|
||||||
|
|
||||||
|
noinst_HEADERS = defaults.h
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
This file describes the procedure for reporting FreeRangeRouting bugs. You are not
|
This file describes the procedure for reporting FRRouting bugs. You are not
|
||||||
obliged to follow this format, but it would be great help for FreeRangeRouting developers
|
obliged to follow this format, but it would be great help for FRRouting developers
|
||||||
if you report a bug as described below.
|
if you report a bug as described below.
|
||||||
|
|
||||||
Bugs submitted with woefully incomplete information may be summarily
|
Bugs submitted with woefully incomplete information may be summarily
|
||||||
@ -10,10 +10,10 @@ non-response to requests to reconfirm or supply additional
|
|||||||
information.
|
information.
|
||||||
|
|
||||||
Report bugs on Github Issue Tracker at
|
Report bugs on Github Issue Tracker at
|
||||||
https://github.com/freerangerouting/frr/issues
|
https://github.com/frrouting/frr/issues
|
||||||
|
|
||||||
Please supply the following information:
|
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.
|
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
|
2. FRR daemons you run e.g. bgpd or ripd and full name of your OS. Any
|
||||||
specific options you compiled Quagga with.
|
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->stalepath_time = BGP_DEFAULT_STALEPATH_TIME;
|
||||||
bgp->dynamic_neighbors_limit = BGP_DYNAMIC_NEIGHBORS_LIMIT_DEFAULT;
|
bgp->dynamic_neighbors_limit = BGP_DYNAMIC_NEIGHBORS_LIMIT_DEFAULT;
|
||||||
bgp->dynamic_neighbors_count = 0;
|
bgp->dynamic_neighbors_count = 0;
|
||||||
|
#if DFLT_BGP_IMPORT_CHECK
|
||||||
bgp_flag_set (bgp, BGP_FLAG_IMPORT_CHECK);
|
bgp_flag_set (bgp, BGP_FLAG_IMPORT_CHECK);
|
||||||
|
#endif
|
||||||
|
#if DFLT_BGP_SHOW_HOSTNAME
|
||||||
bgp_flag_set (bgp, BGP_FLAG_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);
|
bgp_flag_set (bgp, BGP_FLAG_LOG_NEIGHBOR_CHANGES);
|
||||||
|
#endif
|
||||||
|
#if DFLT_BGP_DETERMINISTIC_MED
|
||||||
bgp_flag_set (bgp, BGP_FLAG_DETERMINISTIC_MED);
|
bgp_flag_set (bgp, BGP_FLAG_DETERMINISTIC_MED);
|
||||||
|
#endif
|
||||||
bgp->addpath_tx_id = BGP_ADDPATH_TX_ID_FOR_DEFAULT_ORIGINATE;
|
bgp->addpath_tx_id = BGP_ADDPATH_TX_ID_FOR_DEFAULT_ORIGINATE;
|
||||||
|
|
||||||
bgp->as = *as;
|
bgp->as = *as;
|
||||||
@ -7379,8 +7387,11 @@ bgp_config_write (struct vty *vty)
|
|||||||
inet_ntoa (bgp->router_id_static), VTY_NEWLINE);
|
inet_ntoa (bgp->router_id_static), VTY_NEWLINE);
|
||||||
|
|
||||||
/* BGP log-neighbor-changes. */
|
/* BGP log-neighbor-changes. */
|
||||||
if (!bgp_flag_check (bgp, BGP_FLAG_LOG_NEIGHBOR_CHANGES))
|
if (!!bgp_flag_check (bgp, BGP_FLAG_LOG_NEIGHBOR_CHANGES)
|
||||||
vty_out (vty, " no bgp log-neighbor-changes%s", VTY_NEWLINE);
|
!= 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. */
|
/* BGP configuration. */
|
||||||
if (bgp_flag_check (bgp, BGP_FLAG_ALWAYS_COMPARE_MED))
|
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_local_pref, VTY_NEWLINE);
|
||||||
|
|
||||||
/* BGP default show-hostname */
|
/* BGP default show-hostname */
|
||||||
if (!bgp_flag_check(bgp, BGP_FLAG_SHOW_HOSTNAME))
|
if (!!bgp_flag_check(bgp, BGP_FLAG_SHOW_HOSTNAME)
|
||||||
vty_out (vty, " no bgp default show-hostname%s", VTY_NEWLINE);
|
!= 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. */
|
/* BGP default subgroup-pkt-queue-max. */
|
||||||
if (bgp->default_subgroup_pkt_queue_max != 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);
|
vty_out (vty, " bgp enforce-first-as%s", VTY_NEWLINE);
|
||||||
|
|
||||||
/* BGP deterministic-med. */
|
/* BGP deterministic-med. */
|
||||||
if (!bgp_flag_check (bgp, BGP_FLAG_DETERMINISTIC_MED))
|
if (!!bgp_flag_check (bgp, BGP_FLAG_DETERMINISTIC_MED)
|
||||||
vty_out (vty, " no bgp deterministic-med%s", VTY_NEWLINE);
|
!= 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 update-delay. */
|
||||||
bgp_config_write_update_delay (vty, bgp);
|
bgp_config_write_update_delay (vty, bgp);
|
||||||
@ -7517,8 +7534,11 @@ bgp_config_write (struct vty *vty)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* BGP network import check. */
|
/* BGP network import check. */
|
||||||
if (!bgp_flag_check (bgp, BGP_FLAG_IMPORT_CHECK))
|
if (!!bgp_flag_check (bgp, BGP_FLAG_IMPORT_CHECK)
|
||||||
vty_out (vty, " no bgp network import-check%s", VTY_NEWLINE);
|
!= 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. */
|
/* BGP flag dampening. */
|
||||||
if (CHECK_FLAG (bgp->af_flags[AFI_IP][SAFI_UNICAST],
|
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 "sockunion.h"
|
||||||
#include "routemap.h"
|
#include "routemap.h"
|
||||||
#include "linklist.h"
|
#include "linklist.h"
|
||||||
|
#include "defaults.h"
|
||||||
#include "bgp_memory.h"
|
#include "bgp_memory.h"
|
||||||
|
|
||||||
#define BGP_MAX_HOSTNAME 64 /* Linux max, is larger than most other sys */
|
#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
|
#define BGP_EVENTS_MAX 15
|
||||||
|
|
||||||
/* BGP timers default value. */
|
/* BGP timers default value. */
|
||||||
|
/* note: the DFLT_ ones depend on compile-time "defaults" selection */
|
||||||
#define BGP_INIT_START_TIMER 1
|
#define BGP_INIT_START_TIMER 1
|
||||||
#define BGP_DEFAULT_HOLDTIME 9
|
#define BGP_DEFAULT_HOLDTIME DFLT_BGP_HOLDTIME
|
||||||
#define BGP_DEFAULT_KEEPALIVE 3
|
#define BGP_DEFAULT_KEEPALIVE DFLT_BGP_KEEPALIVE
|
||||||
#define BGP_DEFAULT_EBGP_ROUTEADV 0
|
#define BGP_DEFAULT_EBGP_ROUTEADV 0
|
||||||
#define BGP_DEFAULT_IBGP_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. */
|
/* BGP default local preference. */
|
||||||
#define BGP_DEFAULT_LOCAL_PREF 100
|
#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.
|
## autoconf will generate configure script.
|
||||||
##
|
##
|
||||||
## Copyright (c) 1996, 97, 98, 99, 2000 Kunihiro Ishiguro <kunihiro@zebra.org>
|
## Copyright (c) 1996, 97, 98, 99, 2000 Kunihiro Ishiguro <kunihiro@zebra.org>
|
||||||
@ -7,9 +7,9 @@
|
|||||||
##
|
##
|
||||||
AC_PREREQ(2.60)
|
AC_PREREQ(2.60)
|
||||||
|
|
||||||
AC_INIT(frr, 2.1-dev, [https://github.com/freerangerouting/frr/issues])
|
AC_INIT(frr, 2.1-dev, [https://github.com/frrouting/frr/issues])
|
||||||
PACKAGE_URL="https://freerangerouting.org/"
|
PACKAGE_URL="https://frrouting.org/"
|
||||||
PACKAGE_FULLNAME="FreeRangeRouting"
|
PACKAGE_FULLNAME="FRRouting"
|
||||||
AC_SUBST(PACKAGE_FULLNAME)
|
AC_SUBST(PACKAGE_FULLNAME)
|
||||||
|
|
||||||
CONFIG_ARGS="$ac_configure_args"
|
CONFIG_ARGS="$ac_configure_args"
|
||||||
@ -352,7 +352,12 @@ AC_SUBST(MPLS_METHOD)
|
|||||||
|
|
||||||
if test "${enable_cumulus}" = "yes" ; then
|
if test "${enable_cumulus}" = "yes" ; then
|
||||||
AC_DEFINE(HAVE_CUMULUS,,Compile Special Cumulus Code in)
|
AC_DEFINE(HAVE_CUMULUS,,Compile Special Cumulus Code in)
|
||||||
|
DFLT_NAME="datacenter"
|
||||||
|
else
|
||||||
|
DFLT_NAME="traditional"
|
||||||
fi
|
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
|
if test "${enable_shell_access}" = "yes"; then
|
||||||
AC_DEFINE(HAVE_SHELL_ACCESS,,Allow user to use ssh/telnet/bash)
|
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/Makefile
|
||||||
snapcraft/snapcraft.yaml
|
snapcraft/snapcraft.yaml
|
||||||
lib/version.h
|
lib/version.h
|
||||||
|
tests/lib/cli/test_cli.refout
|
||||||
doc/defines.texi
|
doc/defines.texi
|
||||||
doc/bgpd.8
|
doc/bgpd.8
|
||||||
doc/isisd.8
|
doc/isisd.8
|
||||||
@ -1716,7 +1722,7 @@ AC_CONFIG_FILES([vtysh/extract.pl],[chmod +x vtysh/extract.pl])
|
|||||||
AC_OUTPUT
|
AC_OUTPUT
|
||||||
|
|
||||||
echo "
|
echo "
|
||||||
FreeRangeRouting configuration
|
FRRouting configuration
|
||||||
------------------------------
|
------------------------------
|
||||||
FRR version : ${PACKAGE_VERSION}
|
FRR version : ${PACKAGE_VERSION}
|
||||||
host operating system : ${host_os}
|
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?
|
* What is frr?
|
||||||
=================
|
=================
|
||||||
|
|
||||||
http://www.freerangerouting.org/
|
http://www.frrouting.org/
|
||||||
FRR is a routing software suite, providing implementations of OSPFv2,
|
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
|
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
|
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/
|
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||||
Upstream-Name: Frr
|
Upstream-Name: Frr
|
||||||
Upstream-Contact: maintainers@freerangerouting.org, security@freerangerouting.org
|
Upstream-Contact: maintainers@frrouting.org, security@frrouting.org
|
||||||
Source: http://www.freerangerouting.org/
|
Source: http://www.frrouting.org/
|
||||||
|
|
||||||
Files: *
|
Files: *
|
||||||
Copyright: 1996-2003 by the original Zebra authors:
|
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 -g 92 frr
|
||||||
sudo groupadd -r -g 85 frrvt
|
sudo groupadd -r -g 85 frrvt
|
||||||
sudo useradd -u 92 -g 92 -M -r -G frrvt -s /sbin/nologin \
|
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
|
### Download Source, configure and compile it
|
||||||
(You may prefer different options on configure statement. These are just
|
(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
|
You may want to pay special attention to `/usr/lib64` paths and change
|
||||||
them if you are not building on a x86_64 architecture
|
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
|
cd frr
|
||||||
./bootstrap.sh
|
./bootstrap.sh
|
||||||
./configure \
|
./configure \
|
||||||
|
@ -32,7 +32,7 @@ any packages**
|
|||||||
sudo groupadd -g 92 frr
|
sudo groupadd -g 92 frr
|
||||||
sudo groupadd -r -g 85 frrvt
|
sudo groupadd -r -g 85 frrvt
|
||||||
sudo useradd -u 92 -g 92 -M -r -G frrvt -s /sbin/nologin \
|
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
|
### Download Source, configure and compile it
|
||||||
(You may prefer different options on configure statement. These are just
|
(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
|
You may want to pay special attention to `/usr/lib64` paths and change
|
||||||
them if you are not building on a x86_64 architecture
|
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
|
cd frr
|
||||||
./bootstrap.sh
|
./bootstrap.sh
|
||||||
./configure \
|
./configure \
|
||||||
|
@ -32,14 +32,14 @@ any packages**
|
|||||||
sudo addgroup --system --gid 92 frr
|
sudo addgroup --system --gid 92 frr
|
||||||
sudo addgroup --system --gid 85 frrvty
|
sudo addgroup --system --gid 85 frrvty
|
||||||
sudo adduser --system --ingroup frr --groups frrvty --home /var/run/frr/ \
|
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
|
sudo usermode
|
||||||
|
|
||||||
### Download Source, configure and compile it
|
### Download Source, configure and compile it
|
||||||
(You may prefer different options on configure statement. These are just
|
(You may prefer different options on configure statement. These are just
|
||||||
an example.)
|
an example.)
|
||||||
|
|
||||||
git clone https://github.com/freerangerouting/frr.git frr
|
git clone https://github.com/frrouting/frr.git frr
|
||||||
cd frr
|
cd frr
|
||||||
./bootstrap.sh
|
./bootstrap.sh
|
||||||
./configure \
|
./configure \
|
||||||
|
@ -22,7 +22,7 @@ using any packages**
|
|||||||
sudo groupadd -g 92 frr
|
sudo groupadd -g 92 frr
|
||||||
sudo groupadd -r -g 85 frrvt
|
sudo groupadd -r -g 85 frrvt
|
||||||
sudo useradd -u 92 -g 92 -M -r -G frrvt -s /sbin/nologin \
|
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
|
### Download Source, configure and compile it
|
||||||
(You may prefer different options on configure statement. These are just
|
(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
|
You may want to pay special attention to `/usr/lib64` paths and change
|
||||||
them if you are not building on a x86_64 architecture
|
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
|
cd frr
|
||||||
./bootstrap.sh
|
./bootstrap.sh
|
||||||
./configure \
|
./configure \
|
||||||
|
@ -41,7 +41,7 @@ using any packages**
|
|||||||
(You may prefer different options on configure statement. These are just
|
(You may prefer different options on configure statement. These are just
|
||||||
an example)
|
an example)
|
||||||
|
|
||||||
git clone https://github.com/freerangerouting/frr.git frr
|
git clone https://github.com/frrouting/frr.git frr
|
||||||
cd frr
|
cd frr
|
||||||
./bootstrap.sh
|
./bootstrap.sh
|
||||||
export MAKE=gmake
|
export MAKE=gmake
|
||||||
|
@ -41,7 +41,7 @@ using any packages**
|
|||||||
(You may prefer different options on configure statement. These are just
|
(You may prefer different options on configure statement. These are just
|
||||||
an example)
|
an example)
|
||||||
|
|
||||||
git clone https://github.com/freerangerouting/frr.git frr
|
git clone https://github.com/frrouting/frr.git frr
|
||||||
cd frr
|
cd frr
|
||||||
./bootstrap.sh
|
./bootstrap.sh
|
||||||
export MAKE=gmake
|
export MAKE=gmake
|
||||||
|
@ -49,7 +49,7 @@ using any packages**
|
|||||||
(You may prefer different options on configure statement. These are just
|
(You may prefer different options on configure statement. These are just
|
||||||
an example)
|
an example)
|
||||||
|
|
||||||
git clone https://github.com/freerangerouting/frr.git frr
|
git clone https://github.com/frrouting/frr.git frr
|
||||||
cd frr
|
cd frr
|
||||||
./bootstrap.sh
|
./bootstrap.sh
|
||||||
export MAKE=gmake
|
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
|
(You may prefer different options on configure statement. These are just
|
||||||
an example)
|
an example)
|
||||||
|
|
||||||
git clone https://github.com/freerangerouting/frr.git frr
|
git clone https://github.com/frrouting/frr.git frr
|
||||||
cd frr
|
cd frr
|
||||||
./bootstrap.sh
|
./bootstrap.sh
|
||||||
MAKE=gmake
|
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
|
(You may prefer different options on configure statement. These are just
|
||||||
an example)
|
an example)
|
||||||
|
|
||||||
git clone https://github.com/freerangerouting/frr.git frr
|
git clone https://github.com/frrouting/frr.git frr
|
||||||
cd frr
|
cd frr
|
||||||
./bootstrap.sh
|
./bootstrap.sh
|
||||||
MAKE=gmake
|
MAKE=gmake
|
||||||
|
@ -87,7 +87,7 @@ any packages**
|
|||||||
(You may prefer different options on configure statement. These are just
|
(You may prefer different options on configure statement. These are just
|
||||||
an example)
|
an example)
|
||||||
|
|
||||||
git clone https://github.com/freerangerouting/frr.git frr
|
git clone https://github.com/frrouting/frr.git frr
|
||||||
cd frr
|
cd frr
|
||||||
./bootstrap.sh
|
./bootstrap.sh
|
||||||
export MAKE=gmake
|
export MAKE=gmake
|
||||||
|
@ -34,7 +34,7 @@ any packages**
|
|||||||
(You may prefer different options on configure statement. These are just
|
(You may prefer different options on configure statement. These are just
|
||||||
an example)
|
an example)
|
||||||
|
|
||||||
git clone https://github.com/freerangerouting/frr.git frr
|
git clone https://github.com/frrouting/frr.git frr
|
||||||
cd frr
|
cd frr
|
||||||
./bootstrap.sh
|
./bootstrap.sh
|
||||||
export LDFLAGS="-L/usr/local/lib"
|
export LDFLAGS="-L/usr/local/lib"
|
||||||
|
@ -72,7 +72,7 @@ any packages**
|
|||||||
(You may prefer different options on configure statement. These are just
|
(You may prefer different options on configure statement. These are just
|
||||||
an example.)
|
an example.)
|
||||||
|
|
||||||
git clone https://github.com/freerangerouting/frr.git frr
|
git clone https://github.com/frrouting/frr.git frr
|
||||||
cd frr
|
cd frr
|
||||||
./bootstrap.sh
|
./bootstrap.sh
|
||||||
./configure \
|
./configure \
|
||||||
|
@ -32,7 +32,7 @@ any packages**
|
|||||||
(You may prefer different options on configure statement. These are just
|
(You may prefer different options on configure statement. These are just
|
||||||
an example.)
|
an example.)
|
||||||
|
|
||||||
git clone https://github.com/freerangerouting/frr.git frr
|
git clone https://github.com/frrouting/frr.git frr
|
||||||
cd frr
|
cd frr
|
||||||
./bootstrap.sh
|
./bootstrap.sh
|
||||||
./configure \
|
./configure \
|
||||||
|
@ -33,7 +33,7 @@ any packages**
|
|||||||
(You may prefer different options on configure statement. These are just
|
(You may prefer different options on configure statement. These are just
|
||||||
an example.)
|
an example.)
|
||||||
|
|
||||||
git clone https://github.com/freerangerouting/frr.git frr
|
git clone https://github.com/frrouting/frr.git frr
|
||||||
cd frr
|
cd frr
|
||||||
./bootstrap.sh
|
./bootstrap.sh
|
||||||
./configure \
|
./configure \
|
||||||
|
12
doc/frr.texi
12
doc/frr.texi
@ -7,7 +7,7 @@
|
|||||||
@setfilename frr.info
|
@setfilename frr.info
|
||||||
@c Set variables - sourced from defines.texi
|
@c Set variables - sourced from defines.texi
|
||||||
@include 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 %**end of header
|
||||||
|
|
||||||
@c automake will automatically generate version.texi
|
@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.
|
TCP/IP routing protocols.
|
||||||
|
|
||||||
This is Edition @value{EDITION}, last updated @value{UPDATED} of
|
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}.
|
Version @value{VERSION}.
|
||||||
|
|
||||||
@insertcopying
|
@insertcopying
|
||||||
@end ifinfo
|
@end ifinfo
|
||||||
|
|
||||||
@titlepage
|
@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 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}
|
@subtitle @value{UPDATED-MONTH}
|
||||||
@author @value{AUTHORS}
|
@author @value{AUTHORS}
|
||||||
|
|
||||||
@ -72,9 +72,9 @@ Version @value{VERSION}.
|
|||||||
@node Top
|
@node Top
|
||||||
@top Frr -- With Virtual Network Control
|
@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
|
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}.
|
@uref{http://www.quagga.net,,Quagga}.
|
||||||
|
|
||||||
@insertcopying
|
@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
|
@chapter Overview
|
||||||
@cindex 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
|
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
|
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
|
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:
|
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
|
and contains further information, as well as links to additional
|
||||||
resources.
|
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:
|
web-site is located at:
|
||||||
|
|
||||||
@uref{http://www.quagga.net/}.
|
@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}.
|
@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:
|
the available mailing lists, see:
|
||||||
|
|
||||||
@uref{http://lists.nox.tf/lists.php}
|
@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:
|
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.
|
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.
|
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
|
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 "vrf.h"
|
||||||
#include "command_match.h"
|
#include "command_match.h"
|
||||||
#include "qobj.h"
|
#include "qobj.h"
|
||||||
|
#include "defaults.h"
|
||||||
|
|
||||||
DEFINE_MTYPE( LIB, HOST, "Host config")
|
DEFINE_MTYPE( LIB, HOST, "Host config")
|
||||||
DEFINE_MTYPE( LIB, STRVEC, "String vector")
|
DEFINE_MTYPE( LIB, STRVEC, "String vector")
|
||||||
@ -1536,6 +1537,23 @@ DEFUN (show_version,
|
|||||||
return CMD_SUCCESS;
|
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. */
|
/* Help display function for all node. */
|
||||||
DEFUN (config_help,
|
DEFUN (config_help,
|
||||||
config_help_cmd,
|
config_help_cmd,
|
||||||
@ -1636,6 +1654,37 @@ DEFUN (show_commandtree,
|
|||||||
return cmd_list_cmds (vty, argc == 3);
|
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. */
|
/* Write current configuration into file. */
|
||||||
|
|
||||||
DEFUN (config_write,
|
DEFUN (config_write,
|
||||||
@ -1647,9 +1696,7 @@ DEFUN (config_write,
|
|||||||
"Write configuration to terminal\n")
|
"Write configuration to terminal\n")
|
||||||
{
|
{
|
||||||
int idx_type = 1;
|
int idx_type = 1;
|
||||||
unsigned int i;
|
|
||||||
int fd, dirfd;
|
int fd, dirfd;
|
||||||
struct cmd_node *node;
|
|
||||||
char *config_file, *slash;
|
char *config_file, *slash;
|
||||||
char *config_file_tmp = NULL;
|
char *config_file_tmp = NULL;
|
||||||
char *config_file_sav = NULL;
|
char *config_file_sav = NULL;
|
||||||
@ -1660,32 +1707,10 @@ DEFUN (config_write,
|
|||||||
// if command was 'write terminal' or 'show running-config'
|
// if command was 'write terminal' or 'show running-config'
|
||||||
if (argc == 2 && (!strcmp(argv[idx_type]->text, "terminal") ||
|
if (argc == 2 && (!strcmp(argv[idx_type]->text, "terminal") ||
|
||||||
!strcmp(argv[0]->text, "show")))
|
!strcmp(argv[0]->text, "show")))
|
||||||
{
|
{
|
||||||
if (vty->type == VTY_SHELL_SERV)
|
vty_write_config (vty);
|
||||||
{
|
return CMD_SUCCESS;
|
||||||
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (host.noconfig)
|
if (host.noconfig)
|
||||||
return CMD_SUCCESS;
|
return CMD_SUCCESS;
|
||||||
@ -1749,13 +1774,7 @@ DEFUN (config_write,
|
|||||||
vty_out (file_vty, "!\n! Zebra configuration saved from vty\n! ");
|
vty_out (file_vty, "!\n! Zebra configuration saved from vty\n! ");
|
||||||
vty_time_print (file_vty, 1);
|
vty_time_print (file_vty, 1);
|
||||||
vty_out (file_vty, "!\n");
|
vty_out (file_vty, "!\n");
|
||||||
|
vty_write_config (file_vty);
|
||||||
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_close (file_vty);
|
vty_close (file_vty);
|
||||||
|
|
||||||
if (stat(config_file, &conf_stat) >= 0)
|
if (stat(config_file, &conf_stat) >= 0)
|
||||||
@ -1817,7 +1836,9 @@ DEFUN (copy_runningconf_startupconf,
|
|||||||
"Copy running config to... \n"
|
"Copy running config to... \n"
|
||||||
"Copy running config to startup config (same as write file)\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, &hostname_cmd);
|
||||||
install_element (CONFIG_NODE, &no_hostname_cmd);
|
install_element (CONFIG_NODE, &no_hostname_cmd);
|
||||||
|
install_element (CONFIG_NODE, &frr_version_defaults_cmd);
|
||||||
|
|
||||||
if (terminal > 0)
|
if (terminal > 0)
|
||||||
{
|
{
|
||||||
|
@ -731,7 +731,7 @@ zprivs_init(struct zebra_privs_t *zprivs)
|
|||||||
if (zprivs->user)
|
if (zprivs->user)
|
||||||
{
|
{
|
||||||
ngroups = sizeof(groups);
|
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 */
|
/* cant use log.h here as it depends on vty */
|
||||||
fprintf (stderr, "privs_init: could not getgrouplist for user %s\n",
|
fprintf (stderr, "privs_init: could not getgrouplist for user %s\n",
|
||||||
|
@ -39,8 +39,9 @@
|
|||||||
#define FRR_SMUX_NAME "@PACKAGE_NAME@"
|
#define FRR_SMUX_NAME "@PACKAGE_NAME@"
|
||||||
#define FRR_PTM_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_VERSION "@PACKAGE_VERSION@" GIT_SUFFIX
|
||||||
|
#define FRR_VER_SHORT "@PACKAGE_VERSION@"
|
||||||
#define FRR_BUG_ADDRESS "@PACKAGE_BUGREPORT@"
|
#define FRR_BUG_ADDRESS "@PACKAGE_BUGREPORT@"
|
||||||
#define FRR_COPYRIGHT "Copyright 1996-2005 Kunihiro Ishiguro, et al."
|
#define FRR_COPYRIGHT "Copyright 1996-2005 Kunihiro Ishiguro, et al."
|
||||||
#define FRR_CONFIG_ARGS "@CONFIG_ARGS@"
|
#define FRR_CONFIG_ARGS "@CONFIG_ARGS@"
|
||||||
|
@ -29,6 +29,7 @@
|
|||||||
#include "table.h"
|
#include "table.h"
|
||||||
#include "thread.h"
|
#include "thread.h"
|
||||||
#include "command.h"
|
#include "command.h"
|
||||||
|
#include "defaults.h"
|
||||||
|
|
||||||
#include "ospf6_proto.h"
|
#include "ospf6_proto.h"
|
||||||
#include "ospf6_message.h"
|
#include "ospf6_message.h"
|
||||||
@ -160,7 +161,10 @@ ospf6_create (void)
|
|||||||
o->distance_table = route_table_init ();
|
o->distance_table = route_table_init ();
|
||||||
|
|
||||||
/* Enable "log-adjacency-changes" */
|
/* Enable "log-adjacency-changes" */
|
||||||
|
#if DFLT_OSPF6_LOG_ADJACENCY_CHANGES
|
||||||
SET_FLAG(o->config_flags, OSPF6_LOG_ADJACENCY_CHANGES);
|
SET_FLAG(o->config_flags, OSPF6_LOG_ADJACENCY_CHANGES);
|
||||||
|
#endif
|
||||||
|
|
||||||
QOBJ_REG (o, ospf6);
|
QOBJ_REG (o, ospf6);
|
||||||
|
|
||||||
return o;
|
return o;
|
||||||
@ -1022,8 +1026,10 @@ config_write_ospf6 (struct vty *vty)
|
|||||||
{
|
{
|
||||||
if (CHECK_FLAG(ospf6->config_flags, OSPF6_LOG_ADJACENCY_DETAIL))
|
if (CHECK_FLAG(ospf6->config_flags, OSPF6_LOG_ADJACENCY_DETAIL))
|
||||||
vty_out(vty, " log-adjacency-changes detail%s", VTY_NEWLINE);
|
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);
|
vty_out(vty, " no log-adjacency-changes%s", VTY_NEWLINE);
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* OSPFd dump routine (parts used by ospfclient).
|
* OSPFd dump routine (parts used by ospfclient).
|
||||||
* Copyright (C) 1999, 2000 Toshiaki Takada
|
* 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
|
* 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
|
* terms of the GNU General Public License as published by the Free Software
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* OSPFd dump routine (parts used by ospfclient).
|
* OSPFd dump routine (parts used by ospfclient).
|
||||||
* Copyright (C) 1999 Toshiaki Takada
|
* 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
|
* 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
|
* terms of the GNU General Public License as published by the Free Software
|
||||||
|
@ -34,6 +34,7 @@
|
|||||||
#include "log.h"
|
#include "log.h"
|
||||||
#include "zclient.h"
|
#include "zclient.h"
|
||||||
#include <lib/json.h>
|
#include <lib/json.h>
|
||||||
|
#include "defaults.h"
|
||||||
|
|
||||||
#include "ospfd/ospfd.h"
|
#include "ospfd/ospfd.h"
|
||||||
#include "ospfd/ospf_asbr.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))
|
if (CHECK_FLAG(ospf->config, OSPF_LOG_ADJACENCY_DETAIL))
|
||||||
vty_out(vty, " log-adjacency-changes detail%s", VTY_NEWLINE);
|
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);
|
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 "plist.h"
|
||||||
#include "sockopt.h"
|
#include "sockopt.h"
|
||||||
#include "bfd.h"
|
#include "bfd.h"
|
||||||
|
#include "defaults.h"
|
||||||
|
|
||||||
#include "ospfd/ospfd.h"
|
#include "ospfd/ospfd.h"
|
||||||
#include "ospfd/ospf_network.h"
|
#include "ospfd/ospf_network.h"
|
||||||
@ -292,7 +293,10 @@ ospf_new (u_short instance)
|
|||||||
new->write_oi_count = OSPF_WRITE_INTERFACE_COUNT_DEFAULT;
|
new->write_oi_count = OSPF_WRITE_INTERFACE_COUNT_DEFAULT;
|
||||||
|
|
||||||
/* Enable "log-adjacency-changes" */
|
/* Enable "log-adjacency-changes" */
|
||||||
|
#if DFLT_OSPF_LOG_ADJACENCY_CHANGES
|
||||||
SET_FLAG(new->config, OSPF_LOG_ADJACENCY_CHANGES);
|
SET_FLAG(new->config, OSPF_LOG_ADJACENCY_CHANGES);
|
||||||
|
#endif
|
||||||
|
|
||||||
QOBJ_REG (new, ospf);
|
QOBJ_REG (new, ospf);
|
||||||
|
|
||||||
return new;
|
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.)
|
(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
|
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
|
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.
|
# rpms again and again on the same day, so the newer rpms can be installed.
|
||||||
# bumping the number each time.
|
# bumping the number each time.
|
||||||
|
|
||||||
####################### FreeRangeRouting (FRR) configure options #########################
|
####################### FRRouting (FRR) configure options #########################
|
||||||
# with-feature options
|
# with-feature options
|
||||||
%{!?with_tcp_zebra: %global with_tcp_zebra 0 }
|
%{!?with_tcp_zebra: %global with_tcp_zebra 0 }
|
||||||
%{!?with_pam: %global with_pam 0 }
|
%{!?with_pam: %global with_pam 0 }
|
||||||
@ -107,8 +107,8 @@ Version: %{rpmversion}
|
|||||||
Release: @CONFDATE@%{release_rev}%{?dist}
|
Release: @CONFDATE@%{release_rev}%{?dist}
|
||||||
License: GPLv2+
|
License: GPLv2+
|
||||||
Group: System Environment/Daemons
|
Group: System Environment/Daemons
|
||||||
Source0: http://www.freerangerouting.org/releases/frr/%{name}-%{frrversion}.tar.gz
|
Source0: http://www.frrouting.org/releases/frr/%{name}-%{frrversion}.tar.gz
|
||||||
URL: http://www.freerangerouting.org
|
URL: http://www.frrouting.org
|
||||||
Requires: ncurses json-c
|
Requires: ncurses json-c
|
||||||
Requires(pre): /sbin/install-info
|
Requires(pre): /sbin/install-info
|
||||||
Requires(preun): /sbin/install-info
|
Requires(preun): /sbin/install-info
|
||||||
@ -135,14 +135,14 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-root
|
|||||||
Obsoletes: bird gated mrt zebra frr-sysvinit
|
Obsoletes: bird gated mrt zebra frr-sysvinit
|
||||||
|
|
||||||
%description
|
%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
|
protocol. It takes multi-server and multi-thread approach to resolve
|
||||||
the current complexity of the Internet.
|
the current complexity of the Internet.
|
||||||
|
|
||||||
FreeRangeRouting supports BGP4, OSPFv2, OSPFv3, ISIS, RIP, RIPng, PIM,
|
FRRouting supports BGP4, OSPFv2, OSPFv3, ISIS, RIP, RIPng, PIM, LDP
|
||||||
LDP and NHRP.
|
and NHRP.
|
||||||
|
|
||||||
FreeRangeRouting is a fork of Quagga.
|
FRRouting is a fork of Quagga.
|
||||||
|
|
||||||
%package contrib
|
%package contrib
|
||||||
Summary: contrib tools for frr
|
Summary: contrib tools for frr
|
||||||
@ -315,7 +315,7 @@ if getent group %frr_user >/dev/null; then : ; else \
|
|||||||
fi
|
fi
|
||||||
if getent passwd %frr_user >/dev/null ; then : ; else \
|
if getent passwd %frr_user >/dev/null ; then : ; else \
|
||||||
/usr/sbin/useradd -u %frr_uid -g %frr_gid \
|
/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 || : ; \
|
-d %_localstatedir %frr_user 2> /dev/null || : ; \
|
||||||
fi
|
fi
|
||||||
%if 0%{?vty_group:1}
|
%if 0%{?vty_group:1}
|
||||||
@ -594,8 +594,8 @@ rm -rf %{buildroot}
|
|||||||
* Tue Feb 14 2017 Timo Teräs <timo.teras@iki.fi> - %{version}
|
* Tue Feb 14 2017 Timo Teräs <timo.teras@iki.fi> - %{version}
|
||||||
- add nhrpd
|
- add nhrpd
|
||||||
|
|
||||||
* Fri Jan 6 2017 Martin Winter <mwinter@opensourcerouting.org>
|
* Fri Jan 6 2017 Martin Winter <mwinter@opensourcerouting.org> - %{version}
|
||||||
- Renamed to frr for FreeRangeRouting fork of Quagga
|
- Renamed to frr for FRRouting fork of Quagga
|
||||||
|
|
||||||
* Thu Feb 11 2016 Paul Jakma <paul@jakma.org>
|
* Thu Feb 11 2016 Paul Jakma <paul@jakma.org>
|
||||||
- remove with_ipv6 conditionals, always build v6
|
- remove with_ipv6 conditionals, always build v6
|
||||||
|
@ -1,11 +1,5 @@
|
|||||||
EXTRA_DIST = snapcraft.yaml \
|
EXTRA_DIST = snapcraft.yaml \
|
||||||
scripts/Makefile scripts/zebra-service scripts/bgpd-service \
|
README.* \
|
||||||
scripts/isisd-service scripts/ripd-service scripts/ripngd-service \
|
scripts/Makefile scripts/*-service \
|
||||||
scripts/ospf6d-service scripts/ospfd-service \
|
defaults/*.conf.default \
|
||||||
scripts/isisd-service scripts/pimd-service \
|
helpers snap
|
||||||
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
|
|
||||||
|
@ -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
|
(Tested on Ubuntu 16.04 with Snap Version 2, does not work on Ubuntu 15.x
|
||||||
which uses earlier versions of snaps)
|
which uses earlier versions of snaps)
|
||||||
@ -7,9 +7,9 @@ which uses earlier versions of snaps)
|
|||||||
|
|
||||||
sudo apt-get install snapcraft
|
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
|
cd frr
|
||||||
|
|
||||||
3. Run Bootstrap and make distribution tar.gz
|
3. Run Bootstrap and make distribution tar.gz
|
||||||
@ -56,8 +56,8 @@ The Snap will be auto-started and running.
|
|||||||
Operations
|
Operations
|
||||||
==========
|
==========
|
||||||
|
|
||||||
### FreeRangeRouting Daemons
|
### FRRouting Daemons
|
||||||
At this time, all FreeRangeRouting daemons are auto-started.
|
At this time, all FRRouting daemons are auto-started.
|
||||||
|
|
||||||
A daemon can be stopped/started with (ie ospf6d)
|
A daemon can be stopped/started with (ie ospf6d)
|
||||||
|
|
||||||
@ -69,7 +69,7 @@ or disabled/enabled with
|
|||||||
systemctl disable snap.frr.ospf6d.service
|
systemctl disable snap.frr.ospf6d.service
|
||||||
systemctl enable snap.frr.ospf6d.service
|
systemctl enable snap.frr.ospf6d.service
|
||||||
|
|
||||||
### FreeRangeRouting Commands
|
### FRRouting Commands
|
||||||
All the commands are prefixed with frr.
|
All the commands are prefixed with frr.
|
||||||
|
|
||||||
frr.vtysh -> vtysh
|
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:
|
After installing the Snap, the priviledged plug need to be connected:
|
||||||
|
|
||||||
snap connect frr:network-control ubuntu-core:network-control
|
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
|
on installation. If you want to disable a specific daemon, then use
|
||||||
the systemctl commands
|
the systemctl commands
|
||||||
|
|
||||||
@ -24,7 +24,7 @@ Commands defined by this snap
|
|||||||
-----------------------------
|
-----------------------------
|
||||||
|
|
||||||
- `frr.vtysh`:
|
- `frr.vtysh`:
|
||||||
FreeRangeRouting VTY Shell (configuration tool)
|
FRRouting VTY Shell (configuration tool)
|
||||||
- `frr.version`:
|
- `frr.version`:
|
||||||
Returns output of `zebra --version` to display version and configured
|
Returns output of `zebra --version` to display version and configured
|
||||||
options
|
options
|
||||||
@ -62,10 +62,10 @@ FAQ
|
|||||||
Sourcecode available
|
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.
|
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`
|
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
|
name: frr
|
||||||
version: @VERSION@
|
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
|
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,
|
protocols. It supports BGP4, BGP4+, OSPFv2, OSPFv3, IS-IS, RIPv1, RIPv2,
|
||||||
RIPng, PIM and LDP as well as the IPv6 versions of these.
|
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
|
confinement: strict
|
||||||
grade: devel
|
grade: devel
|
||||||
|
|
||||||
|
@ -15,13 +15,13 @@ Requirements:
|
|||||||
|
|
||||||
i.manifest must be at least version 1.5. Place these scripts in
|
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
|
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:
|
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 \
|
./configure --prefix=/usr/local/frr \
|
||||||
--localstatedir=/var/run/frr \
|
--localstatedir=/var/run/frr \
|
||||||
@ -102,7 +102,7 @@ Install and post-install configuration notes:
|
|||||||
|
|
||||||
# # svcs -l ripd
|
# # svcs -l ripd
|
||||||
fmri svc:/network/routing/frr: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
|
enabled true
|
||||||
state online
|
state online
|
||||||
next_state none
|
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
|
- Configuration of startup options is by way of SMF properties in a
|
||||||
property group named 'frr'. The defaults should automatically be
|
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
|
- By default the VTY interface is disabled. To change this, see below for
|
||||||
how to set the 'frr/vty_port' property as appropriate 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
|
- As SMF is dependency aware, restarting network/zebra will restart all the
|
||||||
other daemons.
|
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
|
one must first pkgrm the installed packages. When one pkgrm's FRRsmf all
|
||||||
property configuration will be lost, and any customisations will have to
|
property configuration will be lost, and any customisations will have to
|
||||||
redone after installing the updated FRRsmf package.
|
redone after installing the updated FRRsmf package.
|
||||||
|
|
||||||
- These packages are not supported by Sun Microsystems, report bugs via the
|
- 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@
|
@PACKAGE_VERSION@,REV=@CONFDATE@
|
||||||
P SUNWcsu Core Solaris, (Usr)
|
P SUNWcsu Core Solaris, (Usr)
|
||||||
P SUNWcsr Core Solaris Libraries (Root)
|
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@
|
@PACKAGE_VERSION@,REV=@CONFDATE@
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
P SUNWcslr Core Solaris Libraries (Root)
|
P SUNWcslr Core Solaris Libraries (Root)
|
||||||
P SUNWcsl Core Solaris, (Shared Libs)
|
P SUNWcsl Core Solaris, (Shared Libs)
|
||||||
P SUNWlibmsr Math & Microtasking Libraries (Root)
|
P SUNWlibmsr Math & Microtasking Libraries (Root)
|
||||||
R FRRdaemons FreeRangeRouting daemons
|
R FRRdaemons FRRouting daemons
|
||||||
R FRRdev
|
R FRRdev
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
P FRRaemons FreeRangeRouting daemons
|
P FRRaemons FRRouting daemons
|
||||||
@PACKAGE_VERSION@,REV=@CONFDATE@
|
@PACKAGE_VERSION@,REV=@CONFDATE@
|
||||||
P SUNWcsu Core Solaris, (Usr)
|
P SUNWcsu Core Solaris, (Usr)
|
||||||
P SUNWcsr Core Solaris Libraries (Root)
|
P SUNWcsr Core Solaris Libraries (Root)
|
||||||
|
@ -3,20 +3,20 @@
|
|||||||
# Copyright 2007 Sun Microsystems, Inc. All rights reserved.
|
# Copyright 2007 Sun Microsystems, Inc. All rights reserved.
|
||||||
# Use is subject to license terms.
|
# 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
|
# 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
|
# Free Software Foundation; either version 2, or (at your option) any
|
||||||
# later version.
|
# 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
|
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
# General Public License for more details.
|
# General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU General Public License
|
# 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,
|
# the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
# Boston, MA 02111-1307, USA.
|
# Boston, MA 02111-1307, USA.
|
||||||
#
|
#
|
||||||
@ -74,7 +74,7 @@ handle_routeadm_upgrade () {
|
|||||||
|
|
||||||
upgrade_config () {
|
upgrade_config () {
|
||||||
DAEMON=$1
|
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 [ -d "/etc/frr" -a ! -f "/etc/frr/${DAEMON}.conf" ] ; then
|
||||||
if [ -f "/etc/sfw/zebra/${DAEMON}.conf" ] ; then
|
if [ -f "/etc/sfw/zebra/${DAEMON}.conf" ] ; then
|
||||||
cp "/etc/sfw/zebra/${DAEMON}.conf" \
|
cp "/etc/sfw/zebra/${DAEMON}.conf" \
|
||||||
@ -216,7 +216,7 @@ case "${DAEMON}" in
|
|||||||
;;
|
;;
|
||||||
esac
|
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
|
# Newer SMF routeadm model uses properties for each argument
|
||||||
# so we must handle that.
|
# so we must handle that.
|
||||||
if [ smf_present -a -f "$ROUTEADMINCLUDE" ]; then
|
if [ smf_present -a -f "$ROUTEADMINCLUDE" ]; then
|
||||||
|
@ -1,20 +1,20 @@
|
|||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
|
<!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
|
modify it under the terms of the GNU General Public License as
|
||||||
published by the Free Software Foundation; either version 2, or
|
published by the Free Software Foundation; either version 2, or
|
||||||
(at your option) anylater version.
|
(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
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
General Public License for more details.
|
General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
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,
|
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
Boston, MA 02111-1307, USA.
|
Boston, MA 02111-1307, USA.
|
||||||
|
|
||||||
@ -107,9 +107,9 @@
|
|||||||
<propval name='value_authorization' type='astring'
|
<propval name='value_authorization' type='astring'
|
||||||
value='solaris.smf.value.routing' />
|
value='solaris.smf.value.routing' />
|
||||||
|
|
||||||
<!-- Options common to FreeRangeRouting daemons
|
<!-- Options common to FRRouting daemons
|
||||||
Property names are equivalent to the long
|
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 -->
|
<!-- The config file to use, if not the default -->
|
||||||
<propval name='config_file' type='astring' value=''/>
|
<propval name='config_file' type='astring' value=''/>
|
||||||
<!-- The vty_port to listen on if not the default.
|
<!-- The vty_port to listen on if not the default.
|
||||||
@ -142,14 +142,14 @@
|
|||||||
<template>
|
<template>
|
||||||
<common_name>
|
<common_name>
|
||||||
<loctext xml:lang='C'>
|
<loctext xml:lang='C'>
|
||||||
FreeRangeRouting: zebra, RIB, kernel intermediary and misc daemon
|
FRRouting: zebra, RIB, kernel intermediary and misc daemon
|
||||||
</loctext>
|
</loctext>
|
||||||
</common_name>
|
</common_name>
|
||||||
<documentation>
|
<documentation>
|
||||||
<manpage title='zebra' section='1M'
|
<manpage title='zebra' section='1M'
|
||||||
manpath='@mandir@' />
|
manpath='@mandir@' />
|
||||||
<doc_link name='freerangerouting.org'
|
<doc_link name='frrouting.org'
|
||||||
uri='http://www.freerangerouting.org/' />
|
uri='http://www.frrouting.org/' />
|
||||||
</documentation>
|
</documentation>
|
||||||
</template>
|
</template>
|
||||||
</instance>
|
</instance>
|
||||||
@ -240,7 +240,7 @@
|
|||||||
<propval name='value_authorization' type='astring'
|
<propval name='value_authorization' type='astring'
|
||||||
value='solaris.smf.value.routing' />
|
value='solaris.smf.value.routing' />
|
||||||
|
|
||||||
<!-- Options common to FreeRangeRouting daemons -->
|
<!-- Options common to FRRouting daemons -->
|
||||||
<!-- The config file to use, if not the default -->
|
<!-- The config file to use, if not the default -->
|
||||||
<propval name='config_file' type='astring' value=''/>
|
<propval name='config_file' type='astring' value=''/>
|
||||||
<!-- The vty_port to listen on if not the default.
|
<!-- The vty_port to listen on if not the default.
|
||||||
@ -273,14 +273,14 @@
|
|||||||
<template>
|
<template>
|
||||||
<common_name>
|
<common_name>
|
||||||
<loctext xml:lang='C'>
|
<loctext xml:lang='C'>
|
||||||
FreeRangeRouting: ripd, RIPv1/2 IPv4 routing protocol daemon.
|
FRRouting: ripd, RIPv1/2 IPv4 routing protocol daemon.
|
||||||
</loctext>
|
</loctext>
|
||||||
</common_name>
|
</common_name>
|
||||||
<documentation>
|
<documentation>
|
||||||
<manpage title='ripd' section='1M'
|
<manpage title='ripd' section='1M'
|
||||||
manpath='@mandir@' />
|
manpath='@mandir@' />
|
||||||
<doc_link name='freerangerouting.org'
|
<doc_link name='frrouting.org'
|
||||||
uri='http://www.freerangerouting.org/' />
|
uri='http://www.frrouting.org/' />
|
||||||
</documentation>
|
</documentation>
|
||||||
</template>
|
</template>
|
||||||
</instance>
|
</instance>
|
||||||
@ -408,8 +408,8 @@
|
|||||||
<documentation>
|
<documentation>
|
||||||
<manpage title='ripngd' section='1M'
|
<manpage title='ripngd' section='1M'
|
||||||
manpath='@mandir@' />
|
manpath='@mandir@' />
|
||||||
<doc_link name='freerangerouting.org'
|
<doc_link name='frrouting.org'
|
||||||
uri='http://www.freerangerouting.org/' />
|
uri='http://www.frrouting.org/' />
|
||||||
</documentation>
|
</documentation>
|
||||||
</template>
|
</template>
|
||||||
</instance>
|
</instance>
|
||||||
@ -539,8 +539,8 @@
|
|||||||
<documentation>
|
<documentation>
|
||||||
<manpage title='ospfd' section='1M'
|
<manpage title='ospfd' section='1M'
|
||||||
manpath='@mandir@' />
|
manpath='@mandir@' />
|
||||||
<doc_link name='freerangerouting.org'
|
<doc_link name='frrouting.org'
|
||||||
uri='http://www.freerangerouting.org/' />
|
uri='http://www.frrouting.org/' />
|
||||||
</documentation>
|
</documentation>
|
||||||
</template>
|
</template>
|
||||||
</instance>
|
</instance>
|
||||||
@ -665,8 +665,8 @@
|
|||||||
<documentation>
|
<documentation>
|
||||||
<manpage title='ospf6d' section='1M'
|
<manpage title='ospf6d' section='1M'
|
||||||
manpath='@mandir@' />
|
manpath='@mandir@' />
|
||||||
<doc_link name='freerangerouting.org'
|
<doc_link name='frrouting.org'
|
||||||
uri='http://www.freerangerouting.org/' />
|
uri='http://www.frrouting.org/' />
|
||||||
</documentation>
|
</documentation>
|
||||||
</template>
|
</template>
|
||||||
</instance>
|
</instance>
|
||||||
@ -818,8 +818,8 @@
|
|||||||
<documentation>
|
<documentation>
|
||||||
<manpage title='bgpd' section='1M'
|
<manpage title='bgpd' section='1M'
|
||||||
manpath='@mandir@' />
|
manpath='@mandir@' />
|
||||||
<doc_link name='freerangerouting.org'
|
<doc_link name='frrouting.org'
|
||||||
uri='http://www.freerangerouting.org/' />
|
uri='http://www.frrouting.org/' />
|
||||||
</documentation>
|
</documentation>
|
||||||
</template>
|
</template>
|
||||||
</instance>
|
</instance>
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
ARCH="@target_cpu@"
|
ARCH="@target_cpu@"
|
||||||
CATEGORY="system"
|
CATEGORY="system"
|
||||||
VERSION="@PACKAGE_VERSION@,REV=@CONFDATE@"
|
VERSION="@PACKAGE_VERSION@,REV=@CONFDATE@"
|
||||||
VENDOR="http://www.freerangerouting.org/"
|
VENDOR="http://www.frrouting.org/"
|
||||||
HOTLINE="@PACKAGE_BUGREPORT@"
|
HOTLINE="@PACKAGE_BUGREPORT@"
|
||||||
EMAIL=maintainers@freerangerouting.org
|
EMAIL=maintainers@frrouting.org
|
||||||
DESC="@PACKAGE_NAME@ Routing Protocols"
|
DESC="@PACKAGE_NAME@ Routing Protocols"
|
||||||
MAXINST=1
|
MAXINST=1
|
||||||
CLASSES="none preserve renamenew manifest"
|
CLASSES="none preserve renamenew manifest"
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
# Copyright (C) 2017 by David Lamparter & Christian Franke,
|
# Copyright (C) 2017 by David Lamparter & Christian Franke,
|
||||||
# Open Source Routing / NetDEF Inc.
|
# 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
|
# 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
|
# under the terms of the GNU General Public License as published by the
|
||||||
@ -27,6 +27,7 @@ import sys
|
|||||||
import re
|
import re
|
||||||
import inspect
|
import inspect
|
||||||
import os
|
import os
|
||||||
|
import difflib
|
||||||
|
|
||||||
import frrsix
|
import frrsix
|
||||||
|
|
||||||
@ -154,7 +155,18 @@ class TestMultiOut(_TestMultiOut):
|
|||||||
#
|
#
|
||||||
|
|
||||||
class TestRefMismatch(Exception):
|
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):
|
class TestExitNonzero(Exception):
|
||||||
pass
|
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:
|
Current configuration:
|
||||||
!
|
!
|
||||||
|
frr version @PACKAGE_VERSION@
|
||||||
|
frr defaults @DFLT_NAME@
|
||||||
|
!
|
||||||
hostname test
|
hostname test
|
||||||
!
|
!
|
||||||
!
|
!
|
||||||
@ -316,6 +319,9 @@ foohost(config)# do show run
|
|||||||
|
|
||||||
Current configuration:
|
Current configuration:
|
||||||
!
|
!
|
||||||
|
frr version @PACKAGE_VERSION@
|
||||||
|
frr defaults @DFLT_NAME@
|
||||||
|
!
|
||||||
hostname foohost
|
hostname foohost
|
||||||
!
|
!
|
||||||
!
|
!
|
@ -274,6 +274,7 @@ vtysh_config_parse_line (const char *line)
|
|||||||
{
|
{
|
||||||
if (strncmp (line, "log", strlen ("log")) == 0
|
if (strncmp (line, "log", strlen ("log")) == 0
|
||||||
|| strncmp (line, "hostname", strlen ("hostname")) == 0
|
|| strncmp (line, "hostname", strlen ("hostname")) == 0
|
||||||
|
|| strncmp (line, "frr", strlen ("frr")) == 0
|
||||||
)
|
)
|
||||||
config_add_line_uniq (config_top, line);
|
config_add_line_uniq (config_top, line);
|
||||||
else
|
else
|
||||||
|
@ -50,8 +50,10 @@
|
|||||||
#include "qpb/qpb_allocator.h"
|
#include "qpb/qpb_allocator.h"
|
||||||
#include "qpb/linear_allocator.h"
|
#include "qpb/linear_allocator.h"
|
||||||
|
|
||||||
|
#ifdef HAVE_PROTOBUF
|
||||||
#include "qpb/qpb.h"
|
#include "qpb/qpb.h"
|
||||||
#include "fpm/fpm.pb-c.h"
|
#include "fpm/fpm.pb-c.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Externs.
|
* Externs.
|
||||||
|
@ -53,7 +53,7 @@ create_delete_route_message (qpb_allocator_t *allocator, rib_dest_t *dest,
|
|||||||
}
|
}
|
||||||
|
|
||||||
fpm__delete_route__init(msg);
|
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));
|
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);
|
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));
|
qpb_address_family_set (&msg->address_family, rib_dest_af(dest));
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user