#include "isis_circuit.h"
#include "isis_csm.h"
#include "isis_misc.h"
-#include "isis_mt.h"
#include "isisd.h"
#include "isis_bfd.h"
#include "isis_vty_common.h"
return circuit;
}
-DEFUN (isis_hello_interval,
- isis_hello_interval_cmd,
- PROTO_NAME " hello-interval (1-600)",
- PROTO_HELP
- "Set Hello interval\n"
- "Holdtime 1 seconds, interval depends on multiplier\n")
-{
- uint32_t interval = atoi(argv[2]->arg);
- struct isis_circuit *circuit = isis_circuit_lookup(vty);
- if (!circuit)
- return CMD_ERR_NO_MATCH;
-
- circuit->hello_interval[0] = interval;
- circuit->hello_interval[1] = interval;
-
- return CMD_SUCCESS;
-}
-
-DEFUN (no_isis_hello_interval,
- no_isis_hello_interval_cmd,
- "no " PROTO_NAME " hello-interval [(1-600)]",
- NO_STR
- PROTO_HELP
- "Set Hello interval\n"
- "Holdtime 1 second, interval depends on multiplier\n")
-{
- struct isis_circuit *circuit = isis_circuit_lookup(vty);
- if (!circuit)
- return CMD_ERR_NO_MATCH;
-
- circuit->hello_interval[0] = DEFAULT_HELLO_INTERVAL;
- circuit->hello_interval[1] = DEFAULT_HELLO_INTERVAL;
-
- return CMD_SUCCESS;
-}
-
-DEFUN (isis_hello_multiplier,
- isis_hello_multiplier_cmd,
- PROTO_NAME " hello-multiplier (2-100)",
- PROTO_HELP
- "Set multiplier for Hello holding time\n"
- "Hello multiplier value\n")
-{
- uint16_t mult = atoi(argv[2]->arg);
- struct isis_circuit *circuit = isis_circuit_lookup(vty);
- if (!circuit)
- return CMD_ERR_NO_MATCH;
-
- circuit->hello_multiplier[0] = mult;
- circuit->hello_multiplier[1] = mult;
-
- return CMD_SUCCESS;
-}
-
-DEFUN (no_isis_hello_multiplier,
- no_isis_hello_multiplier_cmd,
- "no " PROTO_NAME " hello-multiplier [(2-100)]",
- NO_STR
- PROTO_HELP
- "Set multiplier for Hello holding time\n"
- "Hello multiplier value\n")
-{
- struct isis_circuit *circuit = isis_circuit_lookup(vty);
- if (!circuit)
- return CMD_ERR_NO_MATCH;
-
- circuit->hello_multiplier[0] = DEFAULT_HELLO_MULTIPLIER;
- circuit->hello_multiplier[1] = DEFAULT_HELLO_MULTIPLIER;
-
- return CMD_SUCCESS;
-}
-
-DEFUN (csnp_interval,
- csnp_interval_cmd,
- PROTO_NAME " csnp-interval (1-600)",
- PROTO_HELP
- "Set CSNP interval in seconds\n"
- "CSNP interval value\n")
-{
- uint16_t interval = atoi(argv[2]->arg);
- struct isis_circuit *circuit = isis_circuit_lookup(vty);
- if (!circuit)
- return CMD_ERR_NO_MATCH;
-
- circuit->csnp_interval[0] = interval;
- circuit->csnp_interval[1] = interval;
-
- return CMD_SUCCESS;
-}
-
-DEFUN (no_csnp_interval,
- no_csnp_interval_cmd,
- "no " PROTO_NAME " csnp-interval [(1-600)]",
- NO_STR
- PROTO_HELP
- "Set CSNP interval in seconds\n"
- "CSNP interval value\n")
-{
- struct isis_circuit *circuit = isis_circuit_lookup(vty);
- if (!circuit)
- return CMD_ERR_NO_MATCH;
-
- circuit->csnp_interval[0] = DEFAULT_CSNP_INTERVAL;
- circuit->csnp_interval[1] = DEFAULT_CSNP_INTERVAL;
-
- return CMD_SUCCESS;
-}
-
-DEFUN (psnp_interval,
- psnp_interval_cmd,
- PROTO_NAME " psnp-interval (1-120)",
- PROTO_HELP
- "Set PSNP interval in seconds\n"
- "PSNP interval value\n")
-{
- uint16_t interval = atoi(argv[2]->arg);
- struct isis_circuit *circuit = isis_circuit_lookup(vty);
- if (!circuit)
- return CMD_ERR_NO_MATCH;
-
- circuit->psnp_interval[0] = interval;
- circuit->psnp_interval[1] = interval;
-
- return CMD_SUCCESS;
-}
-
-DEFUN (no_psnp_interval,
- no_psnp_interval_cmd,
- "no " PROTO_NAME " psnp-interval [(1-120)]",
- NO_STR
- PROTO_HELP
- "Set PSNP interval in seconds\n"
- "PSNP interval value\n")
-{
- struct isis_circuit *circuit = isis_circuit_lookup(vty);
- if (!circuit)
- return CMD_ERR_NO_MATCH;
-
- circuit->psnp_interval[0] = DEFAULT_PSNP_INTERVAL;
- circuit->psnp_interval[1] = DEFAULT_PSNP_INTERVAL;
-
- return CMD_SUCCESS;
-}
-
-DEFUN (circuit_topology,
- circuit_topology_cmd,
- PROTO_NAME " topology " ISIS_MT_NAMES,
- PROTO_HELP
- "Configure interface IS-IS topologies\n"
- ISIS_MT_DESCRIPTIONS)
-{
- struct isis_circuit *circuit = isis_circuit_lookup(vty);
- if (!circuit)
- return CMD_ERR_NO_MATCH;
- const char *arg = argv[2]->arg;
- uint16_t mtid = isis_str2mtid(arg);
-
- if (circuit->area && circuit->area->oldmetric) {
- vty_out(vty,
- "Multi topology IS-IS can only be used with wide metrics\n");
- return CMD_WARNING_CONFIG_FAILED;
- }
-
- if (mtid == (uint16_t)-1) {
- vty_out(vty, "Don't know topology '%s'\n", arg);
- return CMD_WARNING_CONFIG_FAILED;
- }
-
- return isis_circuit_mt_enabled_set(circuit, mtid, true);
-}
-
-DEFUN (no_circuit_topology,
- no_circuit_topology_cmd,
- "no " PROTO_NAME " topology " ISIS_MT_NAMES,
- NO_STR
- PROTO_HELP
- "Configure interface IS-IS topologies\n"
- ISIS_MT_DESCRIPTIONS)
-{
- struct isis_circuit *circuit = isis_circuit_lookup(vty);
- if (!circuit)
- return CMD_ERR_NO_MATCH;
- const char *arg = argv[3]->arg;
- uint16_t mtid = isis_str2mtid(arg);
-
- if (circuit->area && circuit->area->oldmetric) {
- vty_out(vty,
- "Multi topology IS-IS can only be used with wide metrics\n");
- return CMD_WARNING_CONFIG_FAILED;
- }
-
- if (mtid == (uint16_t)-1) {
- vty_out(vty, "Don't know topology '%s'\n", arg);
- return CMD_WARNING_CONFIG_FAILED;
- }
-
- return isis_circuit_mt_enabled_set(circuit, mtid, false);
-}
-
DEFUN (isis_bfd,
isis_bfd_cmd,
PROTO_NAME " bfd",
void isis_vty_init(void)
{
- install_element(INTERFACE_NODE, &isis_hello_interval_cmd);
- install_element(INTERFACE_NODE, &no_isis_hello_interval_cmd);
-
- install_element(INTERFACE_NODE, &isis_hello_multiplier_cmd);
- install_element(INTERFACE_NODE, &no_isis_hello_multiplier_cmd);
-
- install_element(INTERFACE_NODE, &csnp_interval_cmd);
- install_element(INTERFACE_NODE, &no_csnp_interval_cmd);
-
- install_element(INTERFACE_NODE, &psnp_interval_cmd);
- install_element(INTERFACE_NODE, &no_psnp_interval_cmd);
-
- install_element(INTERFACE_NODE, &circuit_topology_cmd);
- install_element(INTERFACE_NODE, &no_circuit_topology_cmd);
-
install_element(INTERFACE_NODE, &isis_bfd_cmd);
install_element(INTERFACE_NODE, &no_isis_bfd_cmd);
+#ifdef FABRICD
isis_vty_daemon_init();
+#endif /* ifdef FABRICD */
}