mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-06 00:41:20 +00:00
isisd: move old BFD command to fabricd only
The `isisd` will receive a northbound version of the BFD command, so this is the first step to implement it. Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
This commit is contained in:
parent
af13de0af6
commit
f2971ce34b
@ -53,4 +53,6 @@ void fabricd_update_lsp_no_flood(struct isis_lsp *lsp,
|
||||
void fabricd_configure_triggered_csnp(struct isis_area *area, int delay,
|
||||
bool always_send_csnp);
|
||||
void fabricd_init(void);
|
||||
void isis_vty_daemon_init(void);
|
||||
|
||||
#endif
|
||||
|
@ -53,7 +53,6 @@
|
||||
#include "isisd/isis_zebra.h"
|
||||
#include "isisd/isis_te.h"
|
||||
#include "isisd/isis_errors.h"
|
||||
#include "isisd/isis_vty_common.h"
|
||||
#include "isisd/isis_bfd.h"
|
||||
#include "isisd/isis_lsp.h"
|
||||
#include "isisd/isis_mt.h"
|
||||
@ -230,7 +229,9 @@ int main(int argc, char **argv, char **envp)
|
||||
prefix_list_init();
|
||||
isis_init();
|
||||
isis_circuit_init();
|
||||
isis_vty_init();
|
||||
#ifdef FABRICD
|
||||
isis_vty_daemon_init();
|
||||
#endif /* FABRICD */
|
||||
#ifndef FABRICD
|
||||
isis_cli_init();
|
||||
#endif /* ifdef FABRICD */
|
||||
|
@ -1,109 +0,0 @@
|
||||
/*
|
||||
* IS-IS Rout(e)ing protocol - isis_vty_common.c
|
||||
*
|
||||
* This file contains the CLI that is shared between OpenFabric and IS-IS
|
||||
*
|
||||
* Copyright (C) 2001,2002 Sampo Saaristo
|
||||
* Tampere University of Technology
|
||||
* Institute of Communications Engineering
|
||||
* Copyright (C) 2016 David Lamparter, for NetDEF, Inc.
|
||||
* Copyright (C) 2018 Christian Franke, for NetDEF, Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public Licenseas 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; see the file COPYING; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#include <zebra.h>
|
||||
|
||||
#include "command.h"
|
||||
#include "bfd.h"
|
||||
|
||||
#include "isis_circuit.h"
|
||||
#include "isis_csm.h"
|
||||
#include "isis_misc.h"
|
||||
#include "isisd.h"
|
||||
#include "isis_bfd.h"
|
||||
#include "isis_vty_common.h"
|
||||
|
||||
struct isis_circuit *isis_circuit_lookup(struct vty *vty)
|
||||
{
|
||||
struct interface *ifp = VTY_GET_CONTEXT(interface);
|
||||
struct isis_circuit *circuit;
|
||||
|
||||
if (!ifp) {
|
||||
vty_out(vty, "Invalid interface \n");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
circuit = circuit_scan_by_ifp(ifp);
|
||||
if (!circuit) {
|
||||
vty_out(vty, "ISIS is not enabled on circuit %s\n", ifp->name);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return circuit;
|
||||
}
|
||||
|
||||
DEFUN (isis_bfd,
|
||||
isis_bfd_cmd,
|
||||
PROTO_NAME " bfd",
|
||||
PROTO_HELP
|
||||
"Enable BFD support\n")
|
||||
{
|
||||
struct isis_circuit *circuit = isis_circuit_lookup(vty);
|
||||
|
||||
if (!circuit)
|
||||
return CMD_ERR_NO_MATCH;
|
||||
|
||||
if (circuit->bfd_info
|
||||
&& CHECK_FLAG(circuit->bfd_info->flags, BFD_FLAG_PARAM_CFG)) {
|
||||
return CMD_SUCCESS;
|
||||
}
|
||||
|
||||
isis_bfd_circuit_param_set(circuit, BFD_DEF_MIN_RX,
|
||||
BFD_DEF_MIN_TX, BFD_DEF_DETECT_MULT, true);
|
||||
|
||||
return CMD_SUCCESS;
|
||||
}
|
||||
|
||||
DEFUN (no_isis_bfd,
|
||||
no_isis_bfd_cmd,
|
||||
"no " PROTO_NAME " bfd",
|
||||
NO_STR
|
||||
PROTO_HELP
|
||||
"Disables BFD support\n"
|
||||
)
|
||||
{
|
||||
struct isis_circuit *circuit = isis_circuit_lookup(vty);
|
||||
|
||||
if (!circuit)
|
||||
return CMD_ERR_NO_MATCH;
|
||||
|
||||
if (!circuit->bfd_info)
|
||||
return CMD_SUCCESS;
|
||||
|
||||
isis_bfd_circuit_cmd(circuit, ZEBRA_BFD_DEST_DEREGISTER);
|
||||
bfd_info_free(&circuit->bfd_info);
|
||||
return CMD_SUCCESS;
|
||||
}
|
||||
|
||||
void isis_vty_init(void)
|
||||
{
|
||||
install_element(INTERFACE_NODE, &isis_bfd_cmd);
|
||||
install_element(INTERFACE_NODE, &no_isis_bfd_cmd);
|
||||
|
||||
#ifdef FABRICD
|
||||
isis_vty_daemon_init();
|
||||
#endif /* ifdef FABRICD */
|
||||
}
|
@ -1,32 +0,0 @@
|
||||
/*
|
||||
* IS-IS Rout(e)ing protocol - isis_vty_common.h
|
||||
*
|
||||
* Copyright (C) 2001,2002 Sampo Saaristo
|
||||
* Tampere University of Technology
|
||||
* Institute of Communications Engineering
|
||||
* Copyright (C) 2016 David Lamparter, for NetDEF, Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public Licenseas 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; see the file COPYING; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef ISIS_VTY_COMMON_H
|
||||
#define ISIS_VTY_COMMON_H
|
||||
|
||||
struct isis_circuit *isis_circuit_lookup(struct vty *vty);
|
||||
|
||||
void isis_vty_daemon_init(void);
|
||||
void isis_vty_init(void);
|
||||
|
||||
#endif
|
@ -23,8 +23,9 @@
|
||||
|
||||
#include "command.h"
|
||||
|
||||
#include "lib/bfd.h"
|
||||
#include "isisd/isis_bfd.h"
|
||||
#include "isisd/isisd.h"
|
||||
#include "isisd/isis_vty_common.h"
|
||||
#include "isisd/fabricd.h"
|
||||
#include "isisd/isis_tlvs.h"
|
||||
#include "isisd/isis_misc.h"
|
||||
@ -34,6 +35,25 @@
|
||||
#include "lib/spf_backoff.h"
|
||||
#include "isisd/isis_mt.h"
|
||||
|
||||
static struct isis_circuit *isis_circuit_lookup(struct vty *vty)
|
||||
{
|
||||
struct interface *ifp = VTY_GET_CONTEXT(interface);
|
||||
struct isis_circuit *circuit;
|
||||
|
||||
if (!ifp) {
|
||||
vty_out(vty, "Invalid interface \n");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
circuit = circuit_scan_by_ifp(ifp);
|
||||
if (!circuit) {
|
||||
vty_out(vty, "ISIS is not enabled on circuit %s\n", ifp->name);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return circuit;
|
||||
}
|
||||
|
||||
DEFUN (fabric_tier,
|
||||
fabric_tier_cmd,
|
||||
"fabric-tier (0-14)",
|
||||
@ -288,6 +308,49 @@ DEFUN (no_ip_router_isis,
|
||||
return CMD_SUCCESS;
|
||||
}
|
||||
|
||||
DEFUN (isis_bfd,
|
||||
isis_bfd_cmd,
|
||||
PROTO_NAME " bfd",
|
||||
PROTO_HELP
|
||||
"Enable BFD support\n")
|
||||
{
|
||||
struct isis_circuit *circuit = isis_circuit_lookup(vty);
|
||||
|
||||
if (!circuit)
|
||||
return CMD_ERR_NO_MATCH;
|
||||
|
||||
if (circuit->bfd_info
|
||||
&& CHECK_FLAG(circuit->bfd_info->flags, BFD_FLAG_PARAM_CFG)) {
|
||||
return CMD_SUCCESS;
|
||||
}
|
||||
|
||||
isis_bfd_circuit_param_set(circuit, BFD_DEF_MIN_RX,
|
||||
BFD_DEF_MIN_TX, BFD_DEF_DETECT_MULT, true);
|
||||
|
||||
return CMD_SUCCESS;
|
||||
}
|
||||
|
||||
DEFUN (no_isis_bfd,
|
||||
no_isis_bfd_cmd,
|
||||
"no " PROTO_NAME " bfd",
|
||||
NO_STR
|
||||
PROTO_HELP
|
||||
"Disables BFD support\n"
|
||||
)
|
||||
{
|
||||
struct isis_circuit *circuit = isis_circuit_lookup(vty);
|
||||
|
||||
if (!circuit)
|
||||
return CMD_ERR_NO_MATCH;
|
||||
|
||||
if (!circuit->bfd_info)
|
||||
return CMD_SUCCESS;
|
||||
|
||||
isis_bfd_circuit_cmd(circuit, ZEBRA_BFD_DEST_DEREGISTER);
|
||||
bfd_info_free(&circuit->bfd_info);
|
||||
return CMD_SUCCESS;
|
||||
}
|
||||
|
||||
DEFUN (set_overload_bit,
|
||||
set_overload_bit_cmd,
|
||||
"set-overload-bit",
|
||||
@ -1045,6 +1108,8 @@ void isis_vty_daemon_init(void)
|
||||
install_element(INTERFACE_NODE, &ip_router_isis_cmd);
|
||||
install_element(INTERFACE_NODE, &ip6_router_isis_cmd);
|
||||
install_element(INTERFACE_NODE, &no_ip_router_isis_cmd);
|
||||
install_element(INTERFACE_NODE, &isis_bfd_cmd);
|
||||
install_element(INTERFACE_NODE, &no_isis_bfd_cmd);
|
||||
|
||||
install_element(ROUTER_NODE, &set_overload_bit_cmd);
|
||||
install_element(ROUTER_NODE, &no_set_overload_bit_cmd);
|
||||
|
@ -11,7 +11,6 @@ vtysh_scan += \
|
||||
$(top_srcdir)/isisd/isis_redist.c \
|
||||
$(top_srcdir)/isisd/isis_spf.c \
|
||||
$(top_srcdir)/isisd/isis_te.c \
|
||||
$(top_srcdir)/isisd/isis_vty_common.c \
|
||||
$(top_srcdir)/isisd/isis_vty_fabricd.c \
|
||||
$(top_srcdir)/isisd/isisd.c \
|
||||
# end
|
||||
@ -51,7 +50,6 @@ noinst_HEADERS += \
|
||||
isisd/isis_te.h \
|
||||
isisd/isis_tlvs.h \
|
||||
isisd/isis_tx_queue.h \
|
||||
isisd/isis_vty_common.h \
|
||||
isisd/isis_zebra.h \
|
||||
isisd/isisd.h \
|
||||
isisd/iso_checksum.h \
|
||||
@ -82,7 +80,6 @@ LIBISIS_SOURCES = \
|
||||
isisd/isis_te.c \
|
||||
isisd/isis_tlvs.c \
|
||||
isisd/isis_tx_queue.c \
|
||||
isisd/isis_vty_common.c \
|
||||
isisd/isis_zebra.c \
|
||||
isisd/isisd.c \
|
||||
isisd/iso_checksum.c \
|
||||
|
Loading…
Reference in New Issue
Block a user