diff options
author | Kim Hagen <khagen@multi-development.com> | 2014-08-23 13:13:27 +0200 |
---|---|---|
committer | Kim Hagen <khagen@multi-development.com> | 2014-08-23 13:13:27 +0200 |
commit | c3fb13d9f2ab679b89faee991d3bb7c6ab31356f (patch) | |
tree | 31130d19241f7936b286f41689202e9444aae471 | |
download | vyos-nhrp-c3fb13d9f2ab679b89faee991d3bb7c6ab31356f.tar.gz vyos-nhrp-c3fb13d9f2ab679b89faee991d3bb7c6ab31356f.zip |
initial commit
32 files changed, 1254 insertions, 0 deletions
@@ -0,0 +1,3 @@ +SO3 Group contributors, including: + +Daniil Baturin @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + This program 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 of the License, or + (at your option) any later version. + + This program 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 this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + <signature of Ty Coon>, 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/ChangeLog b/ChangeLog new file mode 120000 index 0000000..d526672 --- /dev/null +++ b/ChangeLog @@ -0,0 +1 @@ +debian/changelog
\ No newline at end of file diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 0000000..a99dc69 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,26 @@ +cfgdir = $(datadir)/vyatta-cfg/templates +opdir = $(datadir)/vyatta-op/templates +curverdir = $(sysconfdir)/config-migrate/current +bin_sudo_usersdir = $(bindir)/sudo-users +initddir = /etc/init.d + +initd_SCRIPTS = etc/init.d/opennhrp.init + +vprefix = /opt/vyatta +vsbindir = $(vprefix)/sbin + +sbin_SCRIPTS = scripts/vyos-update-nhrp.pl + +bin_sudo_users_SCRIPTS = + +curver_DATA = + +cpiop = find . ! -regex '\(.*~\|.*\.bak\|.*\.swp\|.*\#.*\#\)' -print0 | \ + cpio -0pd + +install-exec-hook: + mkdir -p $(DESTDIR)$(cfgdir) + cd templates-cfg; $(cpiop) $(DESTDIR)$(cfgdir) + mkdir -p $(DESTDIR)$(opdir) + cd templates-op; $(cpiop) $(DESTDIR)$(opdir) + mkdir -p $(DESTDIR)/etc/ @@ -0,0 +1 @@ +None at this time @@ -0,0 +1 @@ +This package has VyOS nhrp configuration templates and scripts. diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..a83831c --- /dev/null +++ b/configure.ac @@ -0,0 +1,32 @@ +# Process this file with autoconf to produce a configure script. +AC_PREREQ(2.59) + +m4_define([VERSION_ID], [m4_esyscmd([ + if test -f .version ; then + head -n 1 .version | tr -d \\n + else + echo -n 2.4 + fi])]) +AC_INIT([vyos-nhrp], VERSION_ID, [maintainers@so3group.net]) + +test -n "$VYATTA_VERSION" || VYATTA_VERSION=$PACKAGE_VERSION + +AC_CONFIG_AUX_DIR([config]) +AM_INIT_AUTOMAKE([gnu no-dist-gzip dist-bzip2 subdir-objects]) +AC_PREFIX_DEFAULT([/opt/vyatta]) + +AC_ARG_ENABLE([nostrip], + AC_HELP_STRING([--enable-nostrip], + [include -nostrip option during packaging]), + [NOSTRIP=-nostrip], [NOSTRIP=]) + +AC_CONFIG_FILES([Makefile]) + +AC_SUBST(NOSTRIP) + +AC_PROG_CC +AC_PROG_CXX +AM_PROG_AS +AM_PROG_CC_C_O +AC_OUTPUT + diff --git a/debian/README b/debian/README new file mode 100644 index 0000000..ea2c801 --- /dev/null +++ b/debian/README @@ -0,0 +1,6 @@ +The Debian Package vyos-nhrp +------------------------------- + +This package is VyOS vyos-nhrp. + + -- Kim Hagen <khagen@multi-development.com> Fri, 08 Aug 2014 13:50:54 +0200 diff --git a/debian/autogen.sh b/debian/autogen.sh new file mode 100755 index 0000000..e8c94af --- /dev/null +++ b/debian/autogen.sh @@ -0,0 +1,11 @@ +#!/bin/sh + + +rm -rf config +rm -f aclocal.m4 config.guess config.statusconfig.sub configure INSTALL + +autoreconf --force --install + +rm -f config.sub config.guess +ln -s /usr/share/misc/config.sub . +ln -s /usr/share/misc/config.guess . diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000..3b4fd99 --- /dev/null +++ b/debian/changelog @@ -0,0 +1,6 @@ +vyos-nhrp (0.1.0) precise; urgency=low + + * Initial release. + + -- Kim Hagen <khagen@multi-development.com> Fri, 08 Aug 2014 13:50:54 +0200 + diff --git a/debian/compat b/debian/compat new file mode 100644 index 0000000..7ed6ff8 --- /dev/null +++ b/debian/compat @@ -0,0 +1 @@ +5 diff --git a/debian/control b/debian/control new file mode 100644 index 0000000..9c6a8be --- /dev/null +++ b/debian/control @@ -0,0 +1,16 @@ +Source: vyos-nhrp +Section: contrib/net +Priority: extra +Maintainer: SO3 Group <maintainers@so3group.net> +Standards-Version: 3.9.1 +Build-Depends: debhelper (>= 5), autotools-dev, autoconf + +Package: vyos-nhrp +Architecture: all +Depends: vyatta-cfg-system, + vyatta-cfg, + vyatta-op, + ${misc:Depends} +Replaces: vyos-nhrp +Description: Vyatta package vyos-nhrp + Vyatta package vyos-nhrp diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 0000000..f437828 --- /dev/null +++ b/debian/copyright @@ -0,0 +1,36 @@ +This package was debianized by Kim Hagen <kim.sidney@gmail.com> on +Sat, 17 Aug 2013. + +It's original content from the GIT repository + <https://github.com/UnicronNL/vyos-nhrp.git> + +Upstream Author: + + <maintainers@so3group.net> + +Copyright: + + Copyright (C) 2014 SO3 Group, Inc. + All Rights Reserved. + +License: + +This program 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. + +This program 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. + +A copy of the GNU General Public License is available as +`/usr/share/common-licenses/GPL' in the Debian GNU/Linux distribution +or on the World Wide Web at `http://www.gnu.org/copyleft/gpl.html'. +You can also obtain it by writing to the Free Software Foundation, +Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +MA 02110-1301, USA. + +The Debian packaging is (C) 2013, Daniil Baturin <daniil@baturin.org> and +is licensed under the GPL, see above. diff --git a/debian/docs b/debian/docs new file mode 100644 index 0000000..50bd824 --- /dev/null +++ b/debian/docs @@ -0,0 +1,2 @@ +NEWS +README diff --git a/debian/lintian b/debian/lintian new file mode 100644 index 0000000..eafb4cc --- /dev/null +++ b/debian/lintian @@ -0,0 +1,2 @@ +vyos-nhrp: file-in-unusual-dir +vyos-nhrp: dir-or-file-in-opt diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..0b665b2 --- /dev/null +++ b/debian/rules @@ -0,0 +1,105 @@ +#!/usr/bin/make -f +# -*- makefile -*- +# Sample debian/rules that uses debhelper. +# This file was originally written by Joey Hess and Craig Small. +# As a special exception, when this file is copied by dh-make into a +# dh-make output file, you may use that output file without restriction. +# This special exception was added by Craig Small in version 0.37 of dh-make. + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + + +# These are used for cross-compiling and for saving the configure script +# from having to guess our platform (since we know it already) +DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) +DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) +PACKAGE=vyos-nhrp +PKGDIR=$(CURDIR)/debian/$(PACKAGE) + +CFLAGS = -Wall -g + +configure = ./configure +configure += --host=$(DEB_HOST_GNU_TYPE) +configure += --build=$(DEB_BUILD_GNU_TYPE) +configure += --prefix=/opt/vyatta +configure += --mandir=\$${prefix}/share/man +configure += --infodir=\$${prefix}/share/info +configure += CFLAGS="$(CFLAGS)" +configure += LDFLAGS="-Wl,-z,defs" + +ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) + CFLAGS += -O0 +else + CFLAGS += -O2 +endif + +configure: configure.ac Makefile.am + chmod +x debian/autogen.sh + debian/autogen.sh + +config.status: configure + dh_testdir + rm -f config.cache + $(configure) + +build: build-stamp + +build-stamp: config.status + dh_testdir + $(MAKE) + touch $@ + +clean: clean-patched + +# Clean everything up, including everything auto-generated +# at build time that needs not to be kept around in the Debian diff +clean-patched: + dh_testdir + dh_testroot + if test -f Makefile ; then $(MAKE) clean distclean ; fi + rm -f build-stamp + rm -f config.status config.sub config.guess config.log + rm -f aclocal.m4 configure Makefile.in Makefile INSTALL + rm -rf config + dh_clean + +install: build + dh_testdir + dh_testroot + dh_clean -k + dh_installdirs + + $(MAKE) DESTDIR=$(PKGDIR) install + + install -D --mode=0644 debian/lintian $(PKGDIR)/usr/share/lintian/overrides/$(PACKAGE) + +# Build architecture-independent files here. +binary-indep: build install + rm -f debian/files + dh_testdir + dh_testroot + dh_installchangelogs ChangeLog + dh_installdocs + dh_install + dh_installdebconf + dh_link + dh_strip + dh_compress + dh_fixperms + dh_installdeb + if [ -f "../.VYATTA_DEV_BUILD" ]; then \ + dh_gencontrol -- -v999.dev; \ + else \ + dh_gencontrol; \ + fi + dh_md5sums + dh_builddeb + +# Build architecture-dependent files here. +binary-arch: build install +# This is an architecture independent package +# so; we have nothing to do by default. + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary install diff --git a/debian/vyos-nhrp.debhelper.log b/debian/vyos-nhrp.debhelper.log new file mode 100644 index 0000000..3274745 --- /dev/null +++ b/debian/vyos-nhrp.debhelper.log @@ -0,0 +1,13 @@ +dh_installdirs +dh_installchangelogs +dh_installdocs +dh_install +dh_installdebconf +dh_link +dh_strip +dh_compress +dh_fixperms +dh_installdeb +dh_gencontrol +dh_md5sums +dh_builddeb diff --git a/debian/vyos-nhrp.substvars b/debian/vyos-nhrp.substvars new file mode 100644 index 0000000..abd3ebe --- /dev/null +++ b/debian/vyos-nhrp.substvars @@ -0,0 +1 @@ +misc:Depends= diff --git a/etc/init.d/opennhrp.init b/etc/init.d/opennhrp.init new file mode 100755 index 0000000..ec9154c --- /dev/null +++ b/etc/init.d/opennhrp.init @@ -0,0 +1,135 @@ +#! /bin/sh +### BEGIN INIT INFO +# Provides: opennhrp +# Required-Start: $all +# Required-Stop: $all +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: RFC 2332 2333 daemon +# Description: This file suports one instance of opennhrp +### END INIT INFO + + +PATH=/sbin:/usr/sbin:/bin:/usr/bin +DESC="Next Hop Resolution Protocol" +NAME=opennhrp +DAEMON=/usr/sbin/$NAME +PIDPATH=/var/run +PIDFILE=$PIDPATH/$NAME.pid +SCRIPTNAME=/etc/init.d/$NAME +CTRLPATH=/var/run +CTRLPIPE=$CTRLPATH/$NAME.socket +HOOK_DIR=/etc/commit/post-hooks.d +NHRP_HOOK=$HOOK_DIR/vyatta-nhrp-hook + +CONFFILE=/etc/opennhrp/opennhrp.conf +SCRIPTFILE=/etc/opennhrp/opennhrp-script + +DAEMON_ARGS=" -d -v -a $CTRLPIPE -c $CONFFILE -s $SCRIPTFILE -p $PIDFILE" +# -a /var/run/opennhrp/ctrl -c /etc/opennhrp/opennhrp.conf -s /etc/opennhrp/opennhrp-script -d -p /var/run/opennhrp/pid + +# Exit if the package is not installed +[ -x "$DAEMON" ] || exit 0 + +# Read configuration variable file if it is present +[ -r /etc/default/$NAME ] && . /etc/default/$NAME + +# Define LSB log_* functions. +# Depend on lsb-base (>= 3.0-6) to ensure that this file is present. +. /lib/lsb/init-functions + +# +# Function that starts the daemon/service +# +do_start() +{ + mkdir -p $PIDPATH + mkdir -p $CTRLPATH + start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null + RETVAL=$? + if [ ! $RETVAL -eq 0 ]; then return $RETVAL; fi + start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- $DAEMON_ARGS + return $? +} + +# +# Function that stops the daemon/service +# +do_stop() +{ + start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE + rm -f $PIDFILE + return $? +} + +# +# Function that sends a SIGHUP to the daemon/service +# +do_reload() { + start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE + return $? +} + +# +# Function that makes preparations for starting opennhrp +# +do_prepare() { + if [ -d $HOOK_DIR ] && [ ! -f $NHRP_HOOK ]; then + touch $NHRP_HOOK + chmod 755 $NHRP_HOOK + cat <<SCRIPT_EOF >>$NHRP_HOOK +#!/bin/sh +NHRP_UP=/opt/vyatta/sbin/vyatta-update-nhrp.pl +if [ -f \$NHRP_UP ]; then +sudo \$NHRP_UP --post_commit +fi +SCRIPT_EOF + fi +} + +case "$1" in + start) + log_daemon_msg "Preparing $DESC" "$NAME" + do_prepare + RETVAL=$? + log_end_msg $RETVAL + ;; + stop) + log_daemon_msg "Stopping $DESC" "$NAME" + do_stop + RETVAL=$? + log_end_msg $RETVAL + ;; + reload|force-reload) + if [ -e $PIDFILE ]; then + log_daemon_msg "Reloading $DESC" "$NAME" + do_reload + RETVAL=$? + log_end_msg $RETVAL + else + log_daemon_msg "Starting $DESC" "$NAME" + do_start + RETVAL=$? + log_end_msg $RETVAL + fi + ;; + restart) + log_daemon_msg "Restarting $DESC" "$NAME" + do_stop + RETVAL=$? + if [ ! $RETVAL -eq 0 ]; then exit $RETVAL; fi + sleep 1 + do_start + RETVAL=$? + log_end_msg $RETVAL + ;; + *) + echo "Usage: $SCRIPTNAME {start|stop|restart|reload}" >&2 + exit 3 + ;; +esac + +#exit with return code of the last command +exit $RETVAL +: + diff --git a/scripts/vyos-update-nhrp.pl b/scripts/vyos-update-nhrp.pl new file mode 100644 index 0000000..834f392 --- /dev/null +++ b/scripts/vyos-update-nhrp.pl @@ -0,0 +1,420 @@ +#!/usr/bin/perl +# +# Module: vyos-update-nhrp.pl +# +# **** License **** +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation. +# +# This program 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. +# +# This code was originally developed by Vyos maintainers. +# All Rights Reserved. +# +# Author: Kim Hagen +# Date: August 2014 +# Description: Script to configure nhrp +# +# **** End License **** +# + +use Getopt::Long; +use POSIX; +use File::Basename; +use File::Compare; +use NetAddr::IP; + +use lib "/opt/vyatta/share/perl5/"; +use Vyatta::Config; +use Vyatta::Interface; + +use strict; +use warnings; + +my $conffile = '/etc/opennhrp/opennhrp.conf'; +my $ipsecfile = '/etc/opennhrp/opennhrp.ipsec'; + +sub usage { + print <<EOF; +Usage: + $0 --set_nhrp --set_ipsec --get_esp_gr_names --get_ike_gr_names +EOF + exit 1; +} + +sub get_esp_groups { + my $group_names = ""; + my $esp_groups = new Vyatta::Config; + + $esp_groups->setLevel("vpn ipsec esp-group"); + + my @esp_groups = $esp_groups->listNodes(); + + foreach my $group(@esp_groups) { + $group_names = $group_names . " " . $group; + } + return $group_names; +} + +sub get_ike_groups { + my $group_names = ""; + my $ike_groups = new Vyatta::Config; + + $ike_groups->setLevel("vpn ipsec ike-group"); + + my @ike_groups = $ike_groups->listNodes(); + + foreach my $group(@ike_groups) { + $group_names = $group_names . " " . $group; + } + return $group_names; +} + +sub configure_nhrp_tunnels { + my $cmd; + my $config_tun = new Vyatta::Config; + my $config_nhrp_tun = new Vyatta::Config; + + $config_tun->setLevel("interfaces tunnel"); + $config_nhrp_tun->setLevel("protocols nhrp tunnel"); + + my @tunnels = $config_tun->listNodes(); + my @nhrp_tunnels = $config_nhrp_tun->listNodes(); + my $notun = 0; + + open (my $fh,">$conffile"); + print $fh ""; + close $fh; + + if (@nhrp_tunnels) { + foreach my $nhrp_tunnel(@nhrp_tunnels) { + if ($nhrp_tunnel ~~ @tunnels) { + if ($config_tun->returnValue("$nhrp_tunnel encapsulation") eq "gre-multipoint") { + my @conf_file = tunnel_config($nhrp_tunnel); + open (my $fh,">>$conffile"); + foreach (@conf_file) { + print $fh "$_"; + } + close $fh; + $notun = 1; + } + else { + print ("Tunnel $nhrp_tunnel is not configured for 'gre-multipoint'\n"); + exit 1; + } + } + else { + print ("Tunnel $nhrp_tunnel does not exist.\n"); + exit 1; + } + } + } + if ("$notun" eq "1" ) { + $cmd = "/etc/init.d/opennhrp.init restart"; + system ($cmd); + } + else { + $cmd = "/etc/init.d/opennhrp.init stop"; + system ($cmd); + } +} + +sub configure_nhrp_ipsec { + my $cmd; + my $config_nhrp_tun = new Vyatta::Config; + my $config_ipsec = new Vyatta::Config; + + $config_nhrp_tun->setLevel("protocols nhrp tunnel"); + $config_ipsec->setLevel("vpn ipsec profile"); + + my @nhrp_tunnels = $config_nhrp_tun->listNodes(); + my @ipsec_profiles = $config_ipsec->listNodes(); + my $isipsec = 0; + + open(my $fh,">$ipsecfile"); + print $fh ""; + close $fh; + + if (@ipsec_profiles) { + foreach my $ipsec_profile(@ipsec_profiles) { + my $config_ipsec_profile_tun = new Vyatta::Config; + + $config_ipsec_profile_tun->setLevel("vpn ipsec profile $ipsec_profile bind tunnel"); + + my @ipsec_profile_tunnels = $config_ipsec_profile_tun->listNodes(); + + foreach my $ipsec_profile_tunnel(@ipsec_profile_tunnels) { + if ($ipsec_profile_tunnel ~~ @nhrp_tunnels) { + my @conf_file = ipsec_config($ipsec_profile, $ipsec_profile_tunnel); + open (my $fh,">>$ipsecfile"); + foreach (@conf_file) { + print $fh "$_"; + } + close $fh; + $isipsec = 1; + } + } + } + } + if ("$isipsec" eq "1" ) { + $cmd = "/etc/init.d/opennhrp.init restart"; + system ($cmd); + } +} + +sub tunnel_config { + my $tunnel_Config = new Vyatta::Config; + my $tunnel_ID = $_[0]; + + $tunnel_Config->setLevel("protocols nhrp tunnel"); + + my @conf_file = (); + my $type = "#hub"; + + push(@conf_file, "interface $tunnel_ID $type\n"); + if ( $tunnel_Config->exists("$tunnel_ID map")) { + $type = "#spoke"; + my @maps = $tunnel_Config->listNodes("$tunnel_ID map"); + my $map = $maps[0]; + push(@conf_file, " map", " $map"); + push(@conf_file, " ", $tunnel_Config->returnValue("$tunnel_ID map $map nbma-address")); + shift(@conf_file); + unshift(@conf_file, "interface $tunnel_ID $type\n"); + + if ($tunnel_Config->exists("$tunnel_ID map $map register")) { + push(@conf_file, " register"); + } + if ($tunnel_Config->exists("$tunnel_ID map $map cisco")) { + push(@conf_file, " cisco"); + } + push(@conf_file, "\n"); + } + if ($tunnel_Config->returnValue("$tunnel_ID cisco-authentication") ne "") { + push(@conf_file, " cisco-authentication ", $tunnel_Config->returnValue("$tunnel_ID cisco-authentication") , "\n"); + } + push(@conf_file, " holding-time", " ", $tunnel_Config->returnValue("$tunnel_ID holding-time") , "\n"); + if ($tunnel_Config->exists("$tunnel_ID shortcut")) { + push(@conf_file, " shortcut\n"); + } + if ($tunnel_Config->exists("$tunnel_ID non-caching")) { + push(@conf_file, " non-caching\n"); + } + if ($tunnel_Config->exists("$tunnel_ID multicast")) { + push(@conf_file, " multicast ", $tunnel_Config->returnValue("$tunnel_ID multicast") ,"\n"); + } + if ($tunnel_Config->exists("$tunnel_ID redirect")) { + push(@conf_file, " redirect\n"); + } + push(@conf_file, "\n"); + + return @conf_file; +} + +sub ipsec_config { + my $new_rule = ""; + my ($ipsec_profile, $ipsec_tun) = @_; + my $config_prot = new Vyatta::Config; + my $config_ipsec = new Vyatta::Config; + + $config_ipsec->setLevel("vpn ipsec profile $ipsec_profile"); + + my $config_tun = new Vyatta::Config; + + $config_tun->setLevel("interfaces tunnel $ipsec_tun"); + + my @conf_file = (); + my ($esp_group, $ike_group, @tun_ip) = undef; + + $esp_group = $config_ipsec->returnValue("esp-group"); + $ike_group = $config_ipsec->returnValue("ike-group"); + @tun_ip = $config_tun->returnValues('address'); + + if (@tun_ip) { + for my $ip (@tun_ip) { + push(@conf_file, "interface $ipsec_tun\n"); + push(@conf_file, "$ip\n"); + if ($esp_group) { + $config_prot->setLevel("vpn ipsec esp-group $esp_group"); + + my @proposals = $config_prot->listNodes("proposal"); + my %proposals = @proposals; + my $x = scalar(keys %proposals); + my $y = 0; + push(@conf_file, " --esp"); + foreach my $proposal (@proposals) { + if ($y != 0 && $y <= $x ) { + push(@conf_file, ","); + } + if ($config_prot->exists("proposal $proposal encryption")) { + push(@conf_file, " ", $config_prot->returnValue("proposal $proposal encryption")); + } + else { + push(@conf_file, " aes128"); + } + if ($config_prot->exists("proposal $proposal hash")) { + push(@conf_file, "-", $config_prot->returnValue("proposal $proposal hash")); + } + else { + push(@conf_file, "-sha1"); + } + if ($config_prot->exists("pfs")) { + my $pfs = $config_prot->returnValue("pfs"); + if ($pfs eq 'dh-group2') { + push(@conf_file, "-modp1024"); + } + elsif ($pfs eq 'dh-group5') { + push(@conf_file, "-modp1536"); + } + elsif ($pfs eq 'dh-group14') { + push(@conf_file, "-modp2048"); + } + elsif ($pfs eq 'dh-group15') { + push(@conf_file, "-modp3072"); + } + elsif ($pfs eq 'dh-group16') { + push(@conf_file, "-modp4096"); + } + elsif ($pfs eq 'dh-group17') { + push(@conf_file, "-modp6144"); + } + elsif ($pfs eq 'dh-group18') { + push(@conf_file, "-modp8192"); + } + elsif ($pfs eq 'dh-group19') { + push(@conf_file, "-ecp256"); + } + elsif ($pfs eq 'dh-group20') { + push(@conf_file, "-ecp384"); + } + elsif ($pfs eq 'dh-group21') { + push(@conf_file, "-ecp521"); + } + elsif ($pfs eq 'dh-group22') { + push(@conf_file, "-modp1024s160"); + } + elsif ($pfs eq 'dh-group23') { + push(@conf_file, "-modp2048s224"); + } + elsif ($pfs eq 'dh-group24') { + push(@conf_file, "-modp2048s256"); + } + elsif ($pfs eq 'dh-group25') { + push(@conf_file, "-ecp192"); + } + elsif ($pfs eq 'dh-group26') { + push(@conf_file, "-ecp224"); + } + } + ++$y; + } + push(@conf_file, "\n"); + } + + if ($ike_group) { + $config_prot->setLevel("vpn ipsec ike-group $ike_group"); + my @proposals = $config_prot->listNodes("proposal"); + my %proposals = @proposals; + my $x = scalar(keys %proposals); + my $y = 0; + push(@conf_file, " --ike", " "); + foreach my $proposal (@proposals) { + if ($y != 0 && $y <= $x ) { + push(@conf_file, ","); + } + if ($config_prot->exists("proposal $proposal encryption")) { + push(@conf_file, $config_prot->returnValue("proposal $proposal encryption")); + } + else { + push(@conf_file, "aes128"); + } + if ($config_prot->exists("proposal $proposal hash")) { + push(@conf_file, "-", $config_prot->returnValue("proposal $proposal hash")); + } + else { + push(@conf_file, "-sha1"); + } + if ($config_prot->exists("proposal $proposal dh-group")) { + my $pfs = $config_prot->returnValue("proposal $proposal dh-group"); + if ($pfs eq '2') { + push(@conf_file, "-modp1024"); + } + elsif ($pfs eq '5') { + push(@conf_file, "-modp1536"); + } + elsif ($pfs eq '14') { + push(@conf_file, "-modp2048"); + } + elsif ($pfs eq '15') { + push(@conf_file, "-modp3072"); + } + elsif ($pfs eq '16') { + push(@conf_file, "-modp4096"); + } + elsif ($pfs eq '17') { + push(@conf_file, "-modp6144"); + } + elsif ($pfs eq '18') { + push(@conf_file, "-modp8192"); + } + elsif ($pfs eq '19') { + push(@conf_file, "-ecp256"); + } + elsif ($pfs eq '20') { + push(@conf_file, "-ecp384"); + } + elsif ($pfs eq '21') { + push(@conf_file, "-ecp521"); + } + elsif ($pfs eq '22') { + push(@conf_file, "-modp1024s160"); + } + elsif ($pfs eq '23') { + push(@conf_file, "-modp2048s224"); + } + elsif ($pfs eq '24') { + push(@conf_file, "-modp2048s256"); + } + elsif ($pfs eq '25') { + push(@conf_file, "-ecp192"); + } + elsif ($pfs eq '26') { + push(@conf_file, "-ecp224"); + } + } + ++$y; + } + push(@conf_file, "\n"); + } + } + } + push(@conf_file, "\n"); + + return @conf_file; +} + +# +# main +# + +my ($set_nhrp, $set_ipsec, $get_esp_gr_names, $get_ike_gr_names); + +GetOptions ( + "set_ipsec" => \$set_ipsec, + "set_nhrp" => \$set_nhrp, + "get_esp_gr_names" => \$get_esp_gr_names, + "get_ike_gr_names" => \$get_ike_gr_names, +) or usage (); + +my $rc = 1; +$rc = print get_esp_groups() if $get_esp_gr_names; +$rc = print get_ike_groups() if $get_ike_gr_names; +$rc = configure_nhrp_ipsec() if $set_ipsec; +$rc = configure_nhrp_tunnels() if $set_nhrp; + +exit $rc; + +# end of file diff --git a/templates-cfg/protocols/nhrp/node.def b/templates-cfg/protocols/nhrp/node.def new file mode 100644 index 0000000..2ec3906 --- /dev/null +++ b/templates-cfg/protocols/nhrp/node.def @@ -0,0 +1,5 @@ +help: NHRP parameters + +priority: 740 + +end: sudo /opt/vyatta/sbin/vyos-update-nhrp.pl --set_nhrp; diff --git a/templates-cfg/protocols/nhrp/tunnel/node.def b/templates-cfg/protocols/nhrp/tunnel/node.def new file mode 100644 index 0000000..f7109c5 --- /dev/null +++ b/templates-cfg/protocols/nhrp/tunnel/node.def @@ -0,0 +1,9 @@ +tag: + +type: txt + +help: Tunnel for nhrp [REQUIRED] + +allowed: /opt/vyatta/sbin/vyatta-interfaces.pl --show tunnel + +val_help: <tun> ; Tunnel for nhrp diff --git a/templates-cfg/protocols/nhrp/tunnel/node.tag/cisco-authentication/node.def b/templates-cfg/protocols/nhrp/tunnel/node.tag/cisco-authentication/node.def new file mode 100644 index 0000000..50ec251 --- /dev/null +++ b/templates-cfg/protocols/nhrp/tunnel/node.tag/cisco-authentication/node.def @@ -0,0 +1,4 @@ +type: txt +help: Pass phrase for cisco authentication +default: "" + diff --git a/templates-cfg/protocols/nhrp/tunnel/node.tag/holding-time/node.def b/templates-cfg/protocols/nhrp/tunnel/node.tag/holding-time/node.def new file mode 100644 index 0000000..c1fcd2a --- /dev/null +++ b/templates-cfg/protocols/nhrp/tunnel/node.tag/holding-time/node.def @@ -0,0 +1,2 @@ +type: u32 +help: Holding time diff --git a/templates-cfg/protocols/nhrp/tunnel/node.tag/map/node.def b/templates-cfg/protocols/nhrp/tunnel/node.tag/map/node.def new file mode 100644 index 0000000..70234e2 --- /dev/null +++ b/templates-cfg/protocols/nhrp/tunnel/node.tag/map/node.def @@ -0,0 +1,7 @@ +type: ipv4net +help: Set an HUB tunnel address + +syntax:expression: exec "/opt/vyatta/sbin/valid_address $VAR(@)" + +comp_help:Possible completions: + <x.x.x.x/x> Set the IP address and prefix length diff --git a/templates-cfg/protocols/nhrp/tunnel/node.tag/map/node.tag/cisco/node.def b/templates-cfg/protocols/nhrp/tunnel/node.tag/map/node.tag/cisco/node.def new file mode 100644 index 0000000..efe98a4 --- /dev/null +++ b/templates-cfg/protocols/nhrp/tunnel/node.tag/map/node.tag/cisco/node.def @@ -0,0 +1,10 @@ +#type: txt +help: If the statically mapped peer is running Cisco IOS, specify this +#default: "false" + +#syntax:expression: $VAR(@) in "true", "false"; \ +# "Must be 'true' or 'false'" + +#comp_help: "possible completions: +# true +# false (default) diff --git a/templates-cfg/protocols/nhrp/tunnel/node.tag/map/node.tag/nbma-address/node.def b/templates-cfg/protocols/nhrp/tunnel/node.tag/map/node.tag/nbma-address/node.def new file mode 100644 index 0000000..7a4420a --- /dev/null +++ b/templates-cfg/protocols/nhrp/tunnel/node.tag/map/node.tag/nbma-address/node.def @@ -0,0 +1,13 @@ +tag: +type: txt +help: Set HUB address (nbma-address - external hub address or fqdn) + +#syntax:expression: exec "/opt/vyatta/sbin/vyatta-interfaces.pl --valid-addr $VAR(@) --dev $VAR(../@)"; "Invalid IP address/prefix [$VAR(@)] for interface $VAR(../@)" + +#create:expression: "sudo /opt/vyatta/sbin/vyatta-interfaces.pl --eth-addr-update $VAR(@) --dev $VAR(../@)"; "Error setting address $VAR(@) on interface $VAR(../@)" + +#delete:expression: "sudo /opt/vyatta/sbin/vyatta-interfaces.pl --eth-addr-delete $VAR(@) --dev $VAR(../@)"; "Error deleting address $VAR(@) on interface $VAR(../@)" + +comp_help:Possible completions: + <x.x.x.x> Set the external HUB address + <fqdn> Set the external HUB fqdn diff --git a/templates-cfg/protocols/nhrp/tunnel/node.tag/map/node.tag/register/node.def b/templates-cfg/protocols/nhrp/tunnel/node.tag/map/node.tag/register/node.def new file mode 100644 index 0000000..9e192f7 --- /dev/null +++ b/templates-cfg/protocols/nhrp/tunnel/node.tag/map/node.tag/register/node.def @@ -0,0 +1,10 @@ +#type: txt +help: Set mode. Hub or Spoke (registar) +#default: "true" + +#syntax:expression: $VAR(@) in "true", "false"; \ +# "Must be true or false" + +#comp_help: +# true spoke mode (client,default) +# false hub mode (server) diff --git a/templates-cfg/protocols/nhrp/tunnel/node.tag/multicast/node.def b/templates-cfg/protocols/nhrp/tunnel/node.tag/multicast/node.def new file mode 100644 index 0000000..b9d53ea --- /dev/null +++ b/templates-cfg/protocols/nhrp/tunnel/node.tag/multicast/node.def @@ -0,0 +1,7 @@ +type: txt +help: Set multicast for nhrp + + +comp_help: possible completions: + dynamic multicast dynamic + nhs multicast nhs ipv4 diff --git a/templates-cfg/protocols/nhrp/tunnel/node.tag/non-caching/node.def b/templates-cfg/protocols/nhrp/tunnel/node.tag/non-caching/node.def new file mode 100644 index 0000000..70658ef --- /dev/null +++ b/templates-cfg/protocols/nhrp/tunnel/node.tag/non-caching/node.def @@ -0,0 +1,10 @@ +#type: txt +help: This can be used to reduce memory consumption on big NBMA subnets +#default: "false" + +#syntax:expression: $VAR(@) in "true", "false"; \ + # "Must be 'true' or 'false'" + +#comp_help: "possible completions: +# true true non-caching +# false false non-caching (default) diff --git a/templates-cfg/protocols/nhrp/tunnel/node.tag/redirect/node.def b/templates-cfg/protocols/nhrp/tunnel/node.tag/redirect/node.def new file mode 100644 index 0000000..e1e680d --- /dev/null +++ b/templates-cfg/protocols/nhrp/tunnel/node.tag/redirect/node.def @@ -0,0 +1,10 @@ +#type: txt +help: Enable sending of Cisco style NHRP Traffic Indication packets +#default: "false" + +#syntax:expression: $VAR(@) in "true", "false"; \ +# "Must be 'true' or 'false'" + +#comp_help: "possible completions: +# true true Redirect +# false false Redirect (default) diff --git a/templates-cfg/protocols/nhrp/tunnel/node.tag/shortcut/node.def b/templates-cfg/protocols/nhrp/tunnel/node.tag/shortcut/node.def new file mode 100644 index 0000000..0d89364 --- /dev/null +++ b/templates-cfg/protocols/nhrp/tunnel/node.tag/shortcut/node.def @@ -0,0 +1,9 @@ +#type: txt +help: Enable creation of shortcut routes. A received NHRP Traffic Indication will trigger the resolution and establishment of a shortcut route +#default: "true" + +#syntax:expression: $VAR(@) in "true", "false"; \ +# "Must be 'true' or 'false'" +#comp_help: "possible completions: +# true true Shortcut-destination +# false false Shortcut-destination (default) |