mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-08 12:49:18 +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,
|
void fabricd_configure_triggered_csnp(struct isis_area *area, int delay,
|
||||||
bool always_send_csnp);
|
bool always_send_csnp);
|
||||||
void fabricd_init(void);
|
void fabricd_init(void);
|
||||||
|
void isis_vty_daemon_init(void);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -53,7 +53,6 @@
|
|||||||
#include "isisd/isis_zebra.h"
|
#include "isisd/isis_zebra.h"
|
||||||
#include "isisd/isis_te.h"
|
#include "isisd/isis_te.h"
|
||||||
#include "isisd/isis_errors.h"
|
#include "isisd/isis_errors.h"
|
||||||
#include "isisd/isis_vty_common.h"
|
|
||||||
#include "isisd/isis_bfd.h"
|
#include "isisd/isis_bfd.h"
|
||||||
#include "isisd/isis_lsp.h"
|
#include "isisd/isis_lsp.h"
|
||||||
#include "isisd/isis_mt.h"
|
#include "isisd/isis_mt.h"
|
||||||
@ -230,7 +229,9 @@ int main(int argc, char **argv, char **envp)
|
|||||||
prefix_list_init();
|
prefix_list_init();
|
||||||
isis_init();
|
isis_init();
|
||||||
isis_circuit_init();
|
isis_circuit_init();
|
||||||
isis_vty_init();
|
#ifdef FABRICD
|
||||||
|
isis_vty_daemon_init();
|
||||||
|
#endif /* FABRICD */
|
||||||
#ifndef FABRICD
|
#ifndef FABRICD
|
||||||
isis_cli_init();
|
isis_cli_init();
|
||||||
#endif /* ifdef FABRICD */
|
#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 "command.h"
|
||||||
|
|
||||||
|
#include "lib/bfd.h"
|
||||||
|
#include "isisd/isis_bfd.h"
|
||||||
#include "isisd/isisd.h"
|
#include "isisd/isisd.h"
|
||||||
#include "isisd/isis_vty_common.h"
|
|
||||||
#include "isisd/fabricd.h"
|
#include "isisd/fabricd.h"
|
||||||
#include "isisd/isis_tlvs.h"
|
#include "isisd/isis_tlvs.h"
|
||||||
#include "isisd/isis_misc.h"
|
#include "isisd/isis_misc.h"
|
||||||
@ -34,6 +35,25 @@
|
|||||||
#include "lib/spf_backoff.h"
|
#include "lib/spf_backoff.h"
|
||||||
#include "isisd/isis_mt.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,
|
DEFUN (fabric_tier,
|
||||||
fabric_tier_cmd,
|
fabric_tier_cmd,
|
||||||
"fabric-tier (0-14)",
|
"fabric-tier (0-14)",
|
||||||
@ -288,6 +308,49 @@ DEFUN (no_ip_router_isis,
|
|||||||
return CMD_SUCCESS;
|
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,
|
DEFUN (set_overload_bit,
|
||||||
set_overload_bit_cmd,
|
set_overload_bit_cmd,
|
||||||
"set-overload-bit",
|
"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, &ip_router_isis_cmd);
|
||||||
install_element(INTERFACE_NODE, &ip6_router_isis_cmd);
|
install_element(INTERFACE_NODE, &ip6_router_isis_cmd);
|
||||||
install_element(INTERFACE_NODE, &no_ip_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, &set_overload_bit_cmd);
|
||||||
install_element(ROUTER_NODE, &no_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_redist.c \
|
||||||
$(top_srcdir)/isisd/isis_spf.c \
|
$(top_srcdir)/isisd/isis_spf.c \
|
||||||
$(top_srcdir)/isisd/isis_te.c \
|
$(top_srcdir)/isisd/isis_te.c \
|
||||||
$(top_srcdir)/isisd/isis_vty_common.c \
|
|
||||||
$(top_srcdir)/isisd/isis_vty_fabricd.c \
|
$(top_srcdir)/isisd/isis_vty_fabricd.c \
|
||||||
$(top_srcdir)/isisd/isisd.c \
|
$(top_srcdir)/isisd/isisd.c \
|
||||||
# end
|
# end
|
||||||
@ -51,7 +50,6 @@ noinst_HEADERS += \
|
|||||||
isisd/isis_te.h \
|
isisd/isis_te.h \
|
||||||
isisd/isis_tlvs.h \
|
isisd/isis_tlvs.h \
|
||||||
isisd/isis_tx_queue.h \
|
isisd/isis_tx_queue.h \
|
||||||
isisd/isis_vty_common.h \
|
|
||||||
isisd/isis_zebra.h \
|
isisd/isis_zebra.h \
|
||||||
isisd/isisd.h \
|
isisd/isisd.h \
|
||||||
isisd/iso_checksum.h \
|
isisd/iso_checksum.h \
|
||||||
@ -82,7 +80,6 @@ LIBISIS_SOURCES = \
|
|||||||
isisd/isis_te.c \
|
isisd/isis_te.c \
|
||||||
isisd/isis_tlvs.c \
|
isisd/isis_tlvs.c \
|
||||||
isisd/isis_tx_queue.c \
|
isisd/isis_tx_queue.c \
|
||||||
isisd/isis_vty_common.c \
|
|
||||||
isisd/isis_zebra.c \
|
isisd/isis_zebra.c \
|
||||||
isisd/isisd.c \
|
isisd/isisd.c \
|
||||||
isisd/iso_checksum.c \
|
isisd/iso_checksum.c \
|
||||||
|
Loading…
Reference in New Issue
Block a user