isisd: API: timers (IIH, CSNP, PSNP)
No setters needed since change of fields doesn't require any
specific action to make it apply. Just move the CLI defs to isis_vty.c.
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
diff --git a/isisd/isis_circuit.c b/isisd/isis_circuit.c
index 707d77a..85e4f9c 100644
--- a/isisd/isis_circuit.c
+++ b/isisd/isis_circuit.c
@@ -1368,668 +1368,6 @@
{
return isis_circuit_passwd_set (circuit, ISIS_PASSWD_TYPE_HMAC_MD5, passwd);
}
-
-DEFUN (isis_hello_interval,
- isis_hello_interval_cmd,
- "isis hello-interval <1-600>",
- "IS-IS commands\n"
- "Set Hello interval\n"
- "Hello interval value\n"
- "Holdtime 1 seconds, interval depends on multiplier\n")
-{
- int interval;
- struct isis_circuit *circuit = isis_circuit_lookup (vty);
- if (!circuit)
- return CMD_ERR_NO_MATCH;
-
- interval = atoi (argv[0]);
- if (interval < MIN_HELLO_INTERVAL || interval > MAX_HELLO_INTERVAL)
- {
- vty_out (vty, "Invalid hello-interval %d - should be <1-600>%s",
- interval, VTY_NEWLINE);
- return CMD_ERR_AMBIGUOUS;
- }
-
- circuit->hello_interval[0] = (u_int16_t) interval;
- circuit->hello_interval[1] = (u_int16_t) interval;
-
- return CMD_SUCCESS;
-}
-
-DEFUN (no_isis_hello_interval,
- no_isis_hello_interval_cmd,
- "no isis hello-interval",
- NO_STR
- "IS-IS commands\n"
- "Set Hello interval\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;
-}
-
-ALIAS (no_isis_hello_interval,
- no_isis_hello_interval_arg_cmd,
- "no isis hello-interval <1-600>",
- NO_STR
- "IS-IS commands\n"
- "Set Hello interval\n"
- "Hello interval value\n"
- "Holdtime 1 second, interval depends on multiplier\n")
-
-DEFUN (isis_hello_interval_l1,
- isis_hello_interval_l1_cmd,
- "isis hello-interval <1-600> level-1",
- "IS-IS commands\n"
- "Set Hello interval\n"
- "Hello interval value\n"
- "Holdtime 1 second, interval depends on multiplier\n"
- "Specify hello-interval for level-1 IIHs\n")
-{
- long interval;
- struct isis_circuit *circuit = isis_circuit_lookup (vty);
- if (!circuit)
- return CMD_ERR_NO_MATCH;
-
- interval = atoi (argv[0]);
- if (interval < MIN_HELLO_INTERVAL || interval > MAX_HELLO_INTERVAL)
- {
- vty_out (vty, "Invalid hello-interval %ld - should be <1-600>%s",
- interval, VTY_NEWLINE);
- return CMD_ERR_AMBIGUOUS;
- }
-
- circuit->hello_interval[0] = (u_int16_t) interval;
-
- return CMD_SUCCESS;
-}
-
-DEFUN (no_isis_hello_interval_l1,
- no_isis_hello_interval_l1_cmd,
- "no isis hello-interval level-1",
- NO_STR
- "IS-IS commands\n"
- "Set Hello interval\n"
- "Specify hello-interval for level-1 IIHs\n")
-{
- struct isis_circuit *circuit = isis_circuit_lookup (vty);
- if (!circuit)
- return CMD_ERR_NO_MATCH;
-
- circuit->hello_interval[0] = DEFAULT_HELLO_INTERVAL;
-
- return CMD_SUCCESS;
-}
-
-ALIAS (no_isis_hello_interval_l1,
- no_isis_hello_interval_l1_arg_cmd,
- "no isis hello-interval <1-600> level-1",
- NO_STR
- "IS-IS commands\n"
- "Set Hello interval\n"
- "Hello interval value\n"
- "Holdtime 1 second, interval depends on multiplier\n"
- "Specify hello-interval for level-1 IIHs\n")
-
-DEFUN (isis_hello_interval_l2,
- isis_hello_interval_l2_cmd,
- "isis hello-interval <1-600> level-2",
- "IS-IS commands\n"
- "Set Hello interval\n"
- "Hello interval value\n"
- "Holdtime 1 second, interval depends on multiplier\n"
- "Specify hello-interval for level-2 IIHs\n")
-{
- long interval;
- struct isis_circuit *circuit = isis_circuit_lookup (vty);
- if (!circuit)
- return CMD_ERR_NO_MATCH;
-
- interval = atoi (argv[0]);
- if (interval < MIN_HELLO_INTERVAL || interval > MAX_HELLO_INTERVAL)
- {
- vty_out (vty, "Invalid hello-interval %ld - should be <1-600>%s",
- interval, VTY_NEWLINE);
- return CMD_ERR_AMBIGUOUS;
- }
-
- circuit->hello_interval[1] = (u_int16_t) interval;
-
- return CMD_SUCCESS;
-}
-
-DEFUN (no_isis_hello_interval_l2,
- no_isis_hello_interval_l2_cmd,
- "no isis hello-interval level-2",
- NO_STR
- "IS-IS commands\n"
- "Set Hello interval\n"
- "Specify hello-interval for level-2 IIHs\n")
-{
- struct isis_circuit *circuit = isis_circuit_lookup (vty);
- if (!circuit)
- return CMD_ERR_NO_MATCH;
-
- circuit->hello_interval[1] = DEFAULT_HELLO_INTERVAL;
-
- return CMD_SUCCESS;
-}
-
-ALIAS (no_isis_hello_interval_l2,
- no_isis_hello_interval_l2_arg_cmd,
- "no isis hello-interval <1-600> level-2",
- NO_STR
- "IS-IS commands\n"
- "Set Hello interval\n"
- "Hello interval value\n"
- "Holdtime 1 second, interval depends on multiplier\n"
- "Specify hello-interval for level-2 IIHs\n")
-
-DEFUN (isis_hello_multiplier,
- isis_hello_multiplier_cmd,
- "isis hello-multiplier <2-100>",
- "IS-IS commands\n"
- "Set multiplier for Hello holding time\n"
- "Hello multiplier value\n")
-{
- int mult;
- struct isis_circuit *circuit = isis_circuit_lookup (vty);
- if (!circuit)
- return CMD_ERR_NO_MATCH;
-
- mult = atoi (argv[0]);
- if (mult < MIN_HELLO_MULTIPLIER || mult > MAX_HELLO_MULTIPLIER)
- {
- vty_out (vty, "Invalid hello-multiplier %d - should be <2-100>%s",
- mult, VTY_NEWLINE);
- return CMD_ERR_AMBIGUOUS;
- }
-
- circuit->hello_multiplier[0] = (u_int16_t) mult;
- circuit->hello_multiplier[1] = (u_int16_t) mult;
-
- return CMD_SUCCESS;
-}
-
-DEFUN (no_isis_hello_multiplier,
- no_isis_hello_multiplier_cmd,
- "no isis hello-multiplier",
- NO_STR
- "IS-IS commands\n"
- "Set multiplier for Hello holding time\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;
-}
-
-ALIAS (no_isis_hello_multiplier,
- no_isis_hello_multiplier_arg_cmd,
- "no isis hello-multiplier <2-100>",
- NO_STR
- "IS-IS commands\n"
- "Set multiplier for Hello holding time\n"
- "Hello multiplier value\n")
-
-DEFUN (isis_hello_multiplier_l1,
- isis_hello_multiplier_l1_cmd,
- "isis hello-multiplier <2-100> level-1",
- "IS-IS commands\n"
- "Set multiplier for Hello holding time\n"
- "Hello multiplier value\n"
- "Specify hello multiplier for level-1 IIHs\n")
-{
- int mult;
- struct isis_circuit *circuit = isis_circuit_lookup (vty);
- if (!circuit)
- return CMD_ERR_NO_MATCH;
-
- mult = atoi (argv[0]);
- if (mult < MIN_HELLO_MULTIPLIER || mult > MAX_HELLO_MULTIPLIER)
- {
- vty_out (vty, "Invalid hello-multiplier %d - should be <2-100>%s",
- mult, VTY_NEWLINE);
- return CMD_ERR_AMBIGUOUS;
- }
-
- circuit->hello_multiplier[0] = (u_int16_t) mult;
-
- return CMD_SUCCESS;
-}
-
-DEFUN (no_isis_hello_multiplier_l1,
- no_isis_hello_multiplier_l1_cmd,
- "no isis hello-multiplier level-1",
- NO_STR
- "IS-IS commands\n"
- "Set multiplier for Hello holding time\n"
- "Specify hello multiplier for level-1 IIHs\n")
-{
- struct isis_circuit *circuit = isis_circuit_lookup (vty);
- if (!circuit)
- return CMD_ERR_NO_MATCH;
-
- circuit->hello_multiplier[0] = DEFAULT_HELLO_MULTIPLIER;
-
- return CMD_SUCCESS;
-}
-
-ALIAS (no_isis_hello_multiplier_l1,
- no_isis_hello_multiplier_l1_arg_cmd,
- "no isis hello-multiplier <2-100> level-1",
- NO_STR
- "IS-IS commands\n"
- "Set multiplier for Hello holding time\n"
- "Hello multiplier value\n"
- "Specify hello multiplier for level-1 IIHs\n")
-
-DEFUN (isis_hello_multiplier_l2,
- isis_hello_multiplier_l2_cmd,
- "isis hello-multiplier <2-100> level-2",
- "IS-IS commands\n"
- "Set multiplier for Hello holding time\n"
- "Hello multiplier value\n"
- "Specify hello multiplier for level-2 IIHs\n")
-{
- int mult;
- struct isis_circuit *circuit = isis_circuit_lookup (vty);
- if (!circuit)
- return CMD_ERR_NO_MATCH;
-
- mult = atoi (argv[0]);
- if (mult < MIN_HELLO_MULTIPLIER || mult > MAX_HELLO_MULTIPLIER)
- {
- vty_out (vty, "Invalid hello-multiplier %d - should be <2-100>%s",
- mult, VTY_NEWLINE);
- return CMD_ERR_AMBIGUOUS;
- }
-
- circuit->hello_multiplier[1] = (u_int16_t) mult;
-
- return CMD_SUCCESS;
-}
-
-DEFUN (no_isis_hello_multiplier_l2,
- no_isis_hello_multiplier_l2_cmd,
- "no isis hello-multiplier level-2",
- NO_STR
- "IS-IS commands\n"
- "Set multiplier for Hello holding time\n"
- "Specify hello multiplier for level-2 IIHs\n")
-{
- struct isis_circuit *circuit = isis_circuit_lookup (vty);
- if (!circuit)
- return CMD_ERR_NO_MATCH;
-
- circuit->hello_multiplier[1] = DEFAULT_HELLO_MULTIPLIER;
-
- return CMD_SUCCESS;
-}
-
-ALIAS (no_isis_hello_multiplier_l2,
- no_isis_hello_multiplier_l2_arg_cmd,
- "no isis hello-multiplier <2-100> level-2",
- NO_STR
- "IS-IS commands\n"
- "Set multiplier for Hello holding time\n"
- "Hello multiplier value\n"
- "Specify hello multiplier for level-2 IIHs\n")
-
-DEFUN (isis_hello_padding,
- isis_hello_padding_cmd,
- "isis hello padding",
- "IS-IS commands\n"
- "Add padding to IS-IS hello packets\n"
- "Pad hello packets\n"
- "<cr>\n")
-{
- struct isis_circuit *circuit = isis_circuit_lookup (vty);
- if (!circuit)
- return CMD_ERR_NO_MATCH;
-
- circuit->pad_hellos = 1;
-
- return CMD_SUCCESS;
-}
-
-DEFUN (no_isis_hello_padding,
- no_isis_hello_padding_cmd,
- "no isis hello padding",
- NO_STR
- "IS-IS commands\n"
- "Add padding to IS-IS hello packets\n"
- "Pad hello packets\n"
- "<cr>\n")
-{
- struct isis_circuit *circuit = isis_circuit_lookup (vty);
- if (!circuit)
- return CMD_ERR_NO_MATCH;
-
- circuit->pad_hellos = 0;
-
- return CMD_SUCCESS;
-}
-
-DEFUN (csnp_interval,
- csnp_interval_cmd,
- "isis csnp-interval <1-600>",
- "IS-IS commands\n"
- "Set CSNP interval in seconds\n"
- "CSNP interval value\n")
-{
- unsigned long interval;
- struct isis_circuit *circuit = isis_circuit_lookup (vty);
- if (!circuit)
- return CMD_ERR_NO_MATCH;
-
- interval = atol (argv[0]);
- if (interval < MIN_CSNP_INTERVAL || interval > MAX_CSNP_INTERVAL)
- {
- vty_out (vty, "Invalid csnp-interval %lu - should be <1-600>%s",
- interval, VTY_NEWLINE);
- return CMD_ERR_AMBIGUOUS;
- }
-
- circuit->csnp_interval[0] = (u_int16_t) interval;
- circuit->csnp_interval[1] = (u_int16_t) interval;
-
- return CMD_SUCCESS;
-}
-
-DEFUN (no_csnp_interval,
- no_csnp_interval_cmd,
- "no isis csnp-interval",
- NO_STR
- "IS-IS commands\n"
- "Set CSNP interval in seconds\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;
-}
-
-ALIAS (no_csnp_interval,
- no_csnp_interval_arg_cmd,
- "no isis csnp-interval <1-600>",
- NO_STR
- "IS-IS commands\n"
- "Set CSNP interval in seconds\n"
- "CSNP interval value\n")
-
-DEFUN (csnp_interval_l1,
- csnp_interval_l1_cmd,
- "isis csnp-interval <1-600> level-1",
- "IS-IS commands\n"
- "Set CSNP interval in seconds\n"
- "CSNP interval value\n"
- "Specify interval for level-1 CSNPs\n")
-{
- unsigned long interval;
- struct isis_circuit *circuit = isis_circuit_lookup (vty);
- if (!circuit)
- return CMD_ERR_NO_MATCH;
-
- interval = atol (argv[0]);
- if (interval < MIN_CSNP_INTERVAL || interval > MAX_CSNP_INTERVAL)
- {
- vty_out (vty, "Invalid csnp-interval %lu - should be <1-600>%s",
- interval, VTY_NEWLINE);
- return CMD_ERR_AMBIGUOUS;
- }
-
- circuit->csnp_interval[0] = (u_int16_t) interval;
-
- return CMD_SUCCESS;
-}
-
-DEFUN (no_csnp_interval_l1,
- no_csnp_interval_l1_cmd,
- "no isis csnp-interval level-1",
- NO_STR
- "IS-IS commands\n"
- "Set CSNP interval in seconds\n"
- "Specify interval for level-1 CSNPs\n")
-{
- struct isis_circuit *circuit = isis_circuit_lookup (vty);
- if (!circuit)
- return CMD_ERR_NO_MATCH;
-
- circuit->csnp_interval[0] = DEFAULT_CSNP_INTERVAL;
-
- return CMD_SUCCESS;
-}
-
-ALIAS (no_csnp_interval_l1,
- no_csnp_interval_l1_arg_cmd,
- "no isis csnp-interval <1-600> level-1",
- NO_STR
- "IS-IS commands\n"
- "Set CSNP interval in seconds\n"
- "CSNP interval value\n"
- "Specify interval for level-1 CSNPs\n")
-
-DEFUN (csnp_interval_l2,
- csnp_interval_l2_cmd,
- "isis csnp-interval <1-600> level-2",
- "IS-IS commands\n"
- "Set CSNP interval in seconds\n"
- "CSNP interval value\n"
- "Specify interval for level-2 CSNPs\n")
-{
- unsigned long interval;
- struct isis_circuit *circuit = isis_circuit_lookup (vty);
- if (!circuit)
- return CMD_ERR_NO_MATCH;
-
- interval = atol (argv[0]);
- if (interval < MIN_CSNP_INTERVAL || interval > MAX_CSNP_INTERVAL)
- {
- vty_out (vty, "Invalid csnp-interval %lu - should be <1-600>%s",
- interval, VTY_NEWLINE);
- return CMD_ERR_AMBIGUOUS;
- }
-
- circuit->csnp_interval[1] = (u_int16_t) interval;
-
- return CMD_SUCCESS;
-}
-
-DEFUN (no_csnp_interval_l2,
- no_csnp_interval_l2_cmd,
- "no isis csnp-interval level-2",
- NO_STR
- "IS-IS commands\n"
- "Set CSNP interval in seconds\n"
- "Specify interval for level-2 CSNPs\n")
-{
- struct isis_circuit *circuit = isis_circuit_lookup (vty);
- if (!circuit)
- return CMD_ERR_NO_MATCH;
-
- circuit->csnp_interval[1] = DEFAULT_CSNP_INTERVAL;
-
- return CMD_SUCCESS;
-}
-
-ALIAS (no_csnp_interval_l2,
- no_csnp_interval_l2_arg_cmd,
- "no isis csnp-interval <1-600> level-2",
- NO_STR
- "IS-IS commands\n"
- "Set CSNP interval in seconds\n"
- "CSNP interval value\n"
- "Specify interval for level-2 CSNPs\n")
-
-DEFUN (psnp_interval,
- psnp_interval_cmd,
- "isis psnp-interval <1-120>",
- "IS-IS commands\n"
- "Set PSNP interval in seconds\n"
- "PSNP interval value\n")
-{
- unsigned long interval;
- struct isis_circuit *circuit = isis_circuit_lookup (vty);
- if (!circuit)
- return CMD_ERR_NO_MATCH;
-
- interval = atol (argv[0]);
- if (interval < MIN_PSNP_INTERVAL || interval > MAX_PSNP_INTERVAL)
- {
- vty_out (vty, "Invalid psnp-interval %lu - should be <1-120>%s",
- interval, VTY_NEWLINE);
- return CMD_ERR_AMBIGUOUS;
- }
-
- circuit->psnp_interval[0] = (u_int16_t) interval;
- circuit->psnp_interval[1] = (u_int16_t) interval;
-
- return CMD_SUCCESS;
-}
-
-DEFUN (no_psnp_interval,
- no_psnp_interval_cmd,
- "no isis psnp-interval",
- NO_STR
- "IS-IS commands\n"
- "Set PSNP interval in seconds\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;
-}
-
-ALIAS (no_psnp_interval,
- no_psnp_interval_arg_cmd,
- "no isis psnp-interval <1-120>",
- NO_STR
- "IS-IS commands\n"
- "Set PSNP interval in seconds\n"
- "PSNP interval value\n")
-
-DEFUN (psnp_interval_l1,
- psnp_interval_l1_cmd,
- "isis psnp-interval <1-120> level-1",
- "IS-IS commands\n"
- "Set PSNP interval in seconds\n"
- "PSNP interval value\n"
- "Specify interval for level-1 PSNPs\n")
-{
- unsigned long interval;
- struct isis_circuit *circuit = isis_circuit_lookup (vty);
- if (!circuit)
- return CMD_ERR_NO_MATCH;
-
- interval = atol (argv[0]);
- if (interval < MIN_PSNP_INTERVAL || interval > MAX_PSNP_INTERVAL)
- {
- vty_out (vty, "Invalid psnp-interval %lu - should be <1-120>%s",
- interval, VTY_NEWLINE);
- return CMD_ERR_AMBIGUOUS;
- }
-
- circuit->psnp_interval[0] = (u_int16_t) interval;
-
- return CMD_SUCCESS;
-}
-
-DEFUN (no_psnp_interval_l1,
- no_psnp_interval_l1_cmd,
- "no isis psnp-interval level-1",
- NO_STR
- "IS-IS commands\n"
- "Set PSNP interval in seconds\n"
- "Specify interval for level-1 PSNPs\n")
-{
- struct isis_circuit *circuit = isis_circuit_lookup (vty);
- if (!circuit)
- return CMD_ERR_NO_MATCH;
-
- circuit->psnp_interval[0] = DEFAULT_PSNP_INTERVAL;
-
- return CMD_SUCCESS;
-}
-
-ALIAS (no_psnp_interval_l1,
- no_psnp_interval_l1_arg_cmd,
- "no isis psnp-interval <1-120> level-1",
- NO_STR
- "IS-IS commands\n"
- "Set PSNP interval in seconds\n"
- "PSNP interval value\n"
- "Specify interval for level-1 PSNPs\n")
-
-DEFUN (psnp_interval_l2,
- psnp_interval_l2_cmd,
- "isis psnp-interval <1-120> level-2",
- "IS-IS commands\n"
- "Set PSNP interval in seconds\n"
- "PSNP interval value\n"
- "Specify interval for level-2 PSNPs\n")
-{
- unsigned long interval;
- struct isis_circuit *circuit = isis_circuit_lookup (vty);
- if (!circuit)
- return CMD_ERR_NO_MATCH;
-
- interval = atol (argv[0]);
- if (interval < MIN_PSNP_INTERVAL || interval > MAX_PSNP_INTERVAL)
- {
- vty_out (vty, "Invalid psnp-interval %lu - should be <1-120>%s",
- interval, VTY_NEWLINE);
- return CMD_ERR_AMBIGUOUS;
- }
-
- circuit->psnp_interval[1] = (u_int16_t) interval;
-
- return CMD_SUCCESS;
-}
-
-DEFUN (no_psnp_interval_l2,
- no_psnp_interval_l2_cmd,
- "no isis psnp-interval level-2",
- NO_STR
- "IS-IS commands\n"
- "Set PSNP interval in seconds\n"
- "Specify interval for level-2 PSNPs\n")
-{
- struct isis_circuit *circuit = isis_circuit_lookup (vty);
- if (!circuit)
- return CMD_ERR_NO_MATCH;
-
- circuit->psnp_interval[1] = DEFAULT_PSNP_INTERVAL;
-
- return CMD_SUCCESS;
-}
-
-ALIAS (no_psnp_interval_l2,
- no_psnp_interval_l2_arg_cmd,
- "no isis psnp-interval <1-120> level-2",
- NO_STR
- "IS-IS commands\n"
- "Set PSNP interval in seconds\n"
- "PSNP interval value\n"
- "Specify interval for level-2 PSNPs\n")
-
struct cmd_node interface_node = {
INTERFACE_NODE,
"%s(config-if)# ",
@@ -2112,48 +1450,5 @@
install_element (INTERFACE_NODE, &interface_desc_cmd);
install_element (INTERFACE_NODE, &no_interface_desc_cmd);
- install_element (INTERFACE_NODE, &isis_hello_interval_cmd);
- install_element (INTERFACE_NODE, &no_isis_hello_interval_cmd);
- install_element (INTERFACE_NODE, &no_isis_hello_interval_arg_cmd);
- install_element (INTERFACE_NODE, &isis_hello_interval_l1_cmd);
- install_element (INTERFACE_NODE, &no_isis_hello_interval_l1_cmd);
- install_element (INTERFACE_NODE, &no_isis_hello_interval_l1_arg_cmd);
- install_element (INTERFACE_NODE, &isis_hello_interval_l2_cmd);
- install_element (INTERFACE_NODE, &no_isis_hello_interval_l2_cmd);
- install_element (INTERFACE_NODE, &no_isis_hello_interval_l2_arg_cmd);
-
- install_element (INTERFACE_NODE, &isis_hello_multiplier_cmd);
- install_element (INTERFACE_NODE, &no_isis_hello_multiplier_cmd);
- install_element (INTERFACE_NODE, &no_isis_hello_multiplier_arg_cmd);
- install_element (INTERFACE_NODE, &isis_hello_multiplier_l1_cmd);
- install_element (INTERFACE_NODE, &no_isis_hello_multiplier_l1_cmd);
- install_element (INTERFACE_NODE, &no_isis_hello_multiplier_l1_arg_cmd);
- install_element (INTERFACE_NODE, &isis_hello_multiplier_l2_cmd);
- install_element (INTERFACE_NODE, &no_isis_hello_multiplier_l2_cmd);
- install_element (INTERFACE_NODE, &no_isis_hello_multiplier_l2_arg_cmd);
-
- install_element (INTERFACE_NODE, &isis_hello_padding_cmd);
- install_element (INTERFACE_NODE, &no_isis_hello_padding_cmd);
-
- install_element (INTERFACE_NODE, &csnp_interval_cmd);
- install_element (INTERFACE_NODE, &no_csnp_interval_cmd);
- install_element (INTERFACE_NODE, &no_csnp_interval_arg_cmd);
- install_element (INTERFACE_NODE, &csnp_interval_l1_cmd);
- install_element (INTERFACE_NODE, &no_csnp_interval_l1_cmd);
- install_element (INTERFACE_NODE, &no_csnp_interval_l1_arg_cmd);
- install_element (INTERFACE_NODE, &csnp_interval_l2_cmd);
- install_element (INTERFACE_NODE, &no_csnp_interval_l2_cmd);
- install_element (INTERFACE_NODE, &no_csnp_interval_l2_arg_cmd);
-
- install_element (INTERFACE_NODE, &psnp_interval_cmd);
- install_element (INTERFACE_NODE, &no_psnp_interval_cmd);
- install_element (INTERFACE_NODE, &no_psnp_interval_arg_cmd);
- install_element (INTERFACE_NODE, &psnp_interval_l1_cmd);
- install_element (INTERFACE_NODE, &no_psnp_interval_l1_cmd);
- install_element (INTERFACE_NODE, &no_psnp_interval_l1_arg_cmd);
- install_element (INTERFACE_NODE, &psnp_interval_l2_cmd);
- install_element (INTERFACE_NODE, &no_psnp_interval_l2_cmd);
- install_element (INTERFACE_NODE, &no_psnp_interval_l2_arg_cmd);
-
isis_vty_init ();
}
diff --git a/isisd/isis_vty.c b/isisd/isis_vty.c
index c6f2465..3dd3682 100644
--- a/isisd/isis_vty.c
+++ b/isisd/isis_vty.c
@@ -694,6 +694,667 @@
"Specify metric for level-2 routing\n")
/* end of metrics */
+DEFUN (isis_hello_interval,
+ isis_hello_interval_cmd,
+ "isis hello-interval <1-600>",
+ "IS-IS commands\n"
+ "Set Hello interval\n"
+ "Hello interval value\n"
+ "Holdtime 1 seconds, interval depends on multiplier\n")
+{
+ int interval;
+ struct isis_circuit *circuit = isis_circuit_lookup (vty);
+ if (!circuit)
+ return CMD_ERR_NO_MATCH;
+
+ interval = atoi (argv[0]);
+ if (interval < MIN_HELLO_INTERVAL || interval > MAX_HELLO_INTERVAL)
+ {
+ vty_out (vty, "Invalid hello-interval %d - should be <1-600>%s",
+ interval, VTY_NEWLINE);
+ return CMD_ERR_AMBIGUOUS;
+ }
+
+ circuit->hello_interval[0] = (u_int16_t) interval;
+ circuit->hello_interval[1] = (u_int16_t) interval;
+
+ return CMD_SUCCESS;
+}
+
+DEFUN (no_isis_hello_interval,
+ no_isis_hello_interval_cmd,
+ "no isis hello-interval",
+ NO_STR
+ "IS-IS commands\n"
+ "Set Hello interval\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;
+}
+
+ALIAS (no_isis_hello_interval,
+ no_isis_hello_interval_arg_cmd,
+ "no isis hello-interval <1-600>",
+ NO_STR
+ "IS-IS commands\n"
+ "Set Hello interval\n"
+ "Hello interval value\n"
+ "Holdtime 1 second, interval depends on multiplier\n")
+
+DEFUN (isis_hello_interval_l1,
+ isis_hello_interval_l1_cmd,
+ "isis hello-interval <1-600> level-1",
+ "IS-IS commands\n"
+ "Set Hello interval\n"
+ "Hello interval value\n"
+ "Holdtime 1 second, interval depends on multiplier\n"
+ "Specify hello-interval for level-1 IIHs\n")
+{
+ long interval;
+ struct isis_circuit *circuit = isis_circuit_lookup (vty);
+ if (!circuit)
+ return CMD_ERR_NO_MATCH;
+
+ interval = atoi (argv[0]);
+ if (interval < MIN_HELLO_INTERVAL || interval > MAX_HELLO_INTERVAL)
+ {
+ vty_out (vty, "Invalid hello-interval %ld - should be <1-600>%s",
+ interval, VTY_NEWLINE);
+ return CMD_ERR_AMBIGUOUS;
+ }
+
+ circuit->hello_interval[0] = (u_int16_t) interval;
+
+ return CMD_SUCCESS;
+}
+
+DEFUN (no_isis_hello_interval_l1,
+ no_isis_hello_interval_l1_cmd,
+ "no isis hello-interval level-1",
+ NO_STR
+ "IS-IS commands\n"
+ "Set Hello interval\n"
+ "Specify hello-interval for level-1 IIHs\n")
+{
+ struct isis_circuit *circuit = isis_circuit_lookup (vty);
+ if (!circuit)
+ return CMD_ERR_NO_MATCH;
+
+ circuit->hello_interval[0] = DEFAULT_HELLO_INTERVAL;
+
+ return CMD_SUCCESS;
+}
+
+ALIAS (no_isis_hello_interval_l1,
+ no_isis_hello_interval_l1_arg_cmd,
+ "no isis hello-interval <1-600> level-1",
+ NO_STR
+ "IS-IS commands\n"
+ "Set Hello interval\n"
+ "Hello interval value\n"
+ "Holdtime 1 second, interval depends on multiplier\n"
+ "Specify hello-interval for level-1 IIHs\n")
+
+DEFUN (isis_hello_interval_l2,
+ isis_hello_interval_l2_cmd,
+ "isis hello-interval <1-600> level-2",
+ "IS-IS commands\n"
+ "Set Hello interval\n"
+ "Hello interval value\n"
+ "Holdtime 1 second, interval depends on multiplier\n"
+ "Specify hello-interval for level-2 IIHs\n")
+{
+ long interval;
+ struct isis_circuit *circuit = isis_circuit_lookup (vty);
+ if (!circuit)
+ return CMD_ERR_NO_MATCH;
+
+ interval = atoi (argv[0]);
+ if (interval < MIN_HELLO_INTERVAL || interval > MAX_HELLO_INTERVAL)
+ {
+ vty_out (vty, "Invalid hello-interval %ld - should be <1-600>%s",
+ interval, VTY_NEWLINE);
+ return CMD_ERR_AMBIGUOUS;
+ }
+
+ circuit->hello_interval[1] = (u_int16_t) interval;
+
+ return CMD_SUCCESS;
+}
+
+DEFUN (no_isis_hello_interval_l2,
+ no_isis_hello_interval_l2_cmd,
+ "no isis hello-interval level-2",
+ NO_STR
+ "IS-IS commands\n"
+ "Set Hello interval\n"
+ "Specify hello-interval for level-2 IIHs\n")
+{
+ struct isis_circuit *circuit = isis_circuit_lookup (vty);
+ if (!circuit)
+ return CMD_ERR_NO_MATCH;
+
+ circuit->hello_interval[1] = DEFAULT_HELLO_INTERVAL;
+
+ return CMD_SUCCESS;
+}
+
+ALIAS (no_isis_hello_interval_l2,
+ no_isis_hello_interval_l2_arg_cmd,
+ "no isis hello-interval <1-600> level-2",
+ NO_STR
+ "IS-IS commands\n"
+ "Set Hello interval\n"
+ "Hello interval value\n"
+ "Holdtime 1 second, interval depends on multiplier\n"
+ "Specify hello-interval for level-2 IIHs\n")
+
+DEFUN (isis_hello_multiplier,
+ isis_hello_multiplier_cmd,
+ "isis hello-multiplier <2-100>",
+ "IS-IS commands\n"
+ "Set multiplier for Hello holding time\n"
+ "Hello multiplier value\n")
+{
+ int mult;
+ struct isis_circuit *circuit = isis_circuit_lookup (vty);
+ if (!circuit)
+ return CMD_ERR_NO_MATCH;
+
+ mult = atoi (argv[0]);
+ if (mult < MIN_HELLO_MULTIPLIER || mult > MAX_HELLO_MULTIPLIER)
+ {
+ vty_out (vty, "Invalid hello-multiplier %d - should be <2-100>%s",
+ mult, VTY_NEWLINE);
+ return CMD_ERR_AMBIGUOUS;
+ }
+
+ circuit->hello_multiplier[0] = (u_int16_t) mult;
+ circuit->hello_multiplier[1] = (u_int16_t) mult;
+
+ return CMD_SUCCESS;
+}
+
+DEFUN (no_isis_hello_multiplier,
+ no_isis_hello_multiplier_cmd,
+ "no isis hello-multiplier",
+ NO_STR
+ "IS-IS commands\n"
+ "Set multiplier for Hello holding time\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;
+}
+
+ALIAS (no_isis_hello_multiplier,
+ no_isis_hello_multiplier_arg_cmd,
+ "no isis hello-multiplier <2-100>",
+ NO_STR
+ "IS-IS commands\n"
+ "Set multiplier for Hello holding time\n"
+ "Hello multiplier value\n")
+
+DEFUN (isis_hello_multiplier_l1,
+ isis_hello_multiplier_l1_cmd,
+ "isis hello-multiplier <2-100> level-1",
+ "IS-IS commands\n"
+ "Set multiplier for Hello holding time\n"
+ "Hello multiplier value\n"
+ "Specify hello multiplier for level-1 IIHs\n")
+{
+ int mult;
+ struct isis_circuit *circuit = isis_circuit_lookup (vty);
+ if (!circuit)
+ return CMD_ERR_NO_MATCH;
+
+ mult = atoi (argv[0]);
+ if (mult < MIN_HELLO_MULTIPLIER || mult > MAX_HELLO_MULTIPLIER)
+ {
+ vty_out (vty, "Invalid hello-multiplier %d - should be <2-100>%s",
+ mult, VTY_NEWLINE);
+ return CMD_ERR_AMBIGUOUS;
+ }
+
+ circuit->hello_multiplier[0] = (u_int16_t) mult;
+
+ return CMD_SUCCESS;
+}
+
+DEFUN (no_isis_hello_multiplier_l1,
+ no_isis_hello_multiplier_l1_cmd,
+ "no isis hello-multiplier level-1",
+ NO_STR
+ "IS-IS commands\n"
+ "Set multiplier for Hello holding time\n"
+ "Specify hello multiplier for level-1 IIHs\n")
+{
+ struct isis_circuit *circuit = isis_circuit_lookup (vty);
+ if (!circuit)
+ return CMD_ERR_NO_MATCH;
+
+ circuit->hello_multiplier[0] = DEFAULT_HELLO_MULTIPLIER;
+
+ return CMD_SUCCESS;
+}
+
+ALIAS (no_isis_hello_multiplier_l1,
+ no_isis_hello_multiplier_l1_arg_cmd,
+ "no isis hello-multiplier <2-100> level-1",
+ NO_STR
+ "IS-IS commands\n"
+ "Set multiplier for Hello holding time\n"
+ "Hello multiplier value\n"
+ "Specify hello multiplier for level-1 IIHs\n")
+
+DEFUN (isis_hello_multiplier_l2,
+ isis_hello_multiplier_l2_cmd,
+ "isis hello-multiplier <2-100> level-2",
+ "IS-IS commands\n"
+ "Set multiplier for Hello holding time\n"
+ "Hello multiplier value\n"
+ "Specify hello multiplier for level-2 IIHs\n")
+{
+ int mult;
+ struct isis_circuit *circuit = isis_circuit_lookup (vty);
+ if (!circuit)
+ return CMD_ERR_NO_MATCH;
+
+ mult = atoi (argv[0]);
+ if (mult < MIN_HELLO_MULTIPLIER || mult > MAX_HELLO_MULTIPLIER)
+ {
+ vty_out (vty, "Invalid hello-multiplier %d - should be <2-100>%s",
+ mult, VTY_NEWLINE);
+ return CMD_ERR_AMBIGUOUS;
+ }
+
+ circuit->hello_multiplier[1] = (u_int16_t) mult;
+
+ return CMD_SUCCESS;
+}
+
+DEFUN (no_isis_hello_multiplier_l2,
+ no_isis_hello_multiplier_l2_cmd,
+ "no isis hello-multiplier level-2",
+ NO_STR
+ "IS-IS commands\n"
+ "Set multiplier for Hello holding time\n"
+ "Specify hello multiplier for level-2 IIHs\n")
+{
+ struct isis_circuit *circuit = isis_circuit_lookup (vty);
+ if (!circuit)
+ return CMD_ERR_NO_MATCH;
+
+ circuit->hello_multiplier[1] = DEFAULT_HELLO_MULTIPLIER;
+
+ return CMD_SUCCESS;
+}
+
+ALIAS (no_isis_hello_multiplier_l2,
+ no_isis_hello_multiplier_l2_arg_cmd,
+ "no isis hello-multiplier <2-100> level-2",
+ NO_STR
+ "IS-IS commands\n"
+ "Set multiplier for Hello holding time\n"
+ "Hello multiplier value\n"
+ "Specify hello multiplier for level-2 IIHs\n")
+
+DEFUN (isis_hello_padding,
+ isis_hello_padding_cmd,
+ "isis hello padding",
+ "IS-IS commands\n"
+ "Add padding to IS-IS hello packets\n"
+ "Pad hello packets\n"
+ "<cr>\n")
+{
+ struct isis_circuit *circuit = isis_circuit_lookup (vty);
+ if (!circuit)
+ return CMD_ERR_NO_MATCH;
+
+ circuit->pad_hellos = 1;
+
+ return CMD_SUCCESS;
+}
+
+DEFUN (no_isis_hello_padding,
+ no_isis_hello_padding_cmd,
+ "no isis hello padding",
+ NO_STR
+ "IS-IS commands\n"
+ "Add padding to IS-IS hello packets\n"
+ "Pad hello packets\n"
+ "<cr>\n")
+{
+ struct isis_circuit *circuit = isis_circuit_lookup (vty);
+ if (!circuit)
+ return CMD_ERR_NO_MATCH;
+
+ circuit->pad_hellos = 0;
+
+ return CMD_SUCCESS;
+}
+
+DEFUN (csnp_interval,
+ csnp_interval_cmd,
+ "isis csnp-interval <1-600>",
+ "IS-IS commands\n"
+ "Set CSNP interval in seconds\n"
+ "CSNP interval value\n")
+{
+ unsigned long interval;
+ struct isis_circuit *circuit = isis_circuit_lookup (vty);
+ if (!circuit)
+ return CMD_ERR_NO_MATCH;
+
+ interval = atol (argv[0]);
+ if (interval < MIN_CSNP_INTERVAL || interval > MAX_CSNP_INTERVAL)
+ {
+ vty_out (vty, "Invalid csnp-interval %lu - should be <1-600>%s",
+ interval, VTY_NEWLINE);
+ return CMD_ERR_AMBIGUOUS;
+ }
+
+ circuit->csnp_interval[0] = (u_int16_t) interval;
+ circuit->csnp_interval[1] = (u_int16_t) interval;
+
+ return CMD_SUCCESS;
+}
+
+DEFUN (no_csnp_interval,
+ no_csnp_interval_cmd,
+ "no isis csnp-interval",
+ NO_STR
+ "IS-IS commands\n"
+ "Set CSNP interval in seconds\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;
+}
+
+ALIAS (no_csnp_interval,
+ no_csnp_interval_arg_cmd,
+ "no isis csnp-interval <1-600>",
+ NO_STR
+ "IS-IS commands\n"
+ "Set CSNP interval in seconds\n"
+ "CSNP interval value\n")
+
+DEFUN (csnp_interval_l1,
+ csnp_interval_l1_cmd,
+ "isis csnp-interval <1-600> level-1",
+ "IS-IS commands\n"
+ "Set CSNP interval in seconds\n"
+ "CSNP interval value\n"
+ "Specify interval for level-1 CSNPs\n")
+{
+ unsigned long interval;
+ struct isis_circuit *circuit = isis_circuit_lookup (vty);
+ if (!circuit)
+ return CMD_ERR_NO_MATCH;
+
+ interval = atol (argv[0]);
+ if (interval < MIN_CSNP_INTERVAL || interval > MAX_CSNP_INTERVAL)
+ {
+ vty_out (vty, "Invalid csnp-interval %lu - should be <1-600>%s",
+ interval, VTY_NEWLINE);
+ return CMD_ERR_AMBIGUOUS;
+ }
+
+ circuit->csnp_interval[0] = (u_int16_t) interval;
+
+ return CMD_SUCCESS;
+}
+
+DEFUN (no_csnp_interval_l1,
+ no_csnp_interval_l1_cmd,
+ "no isis csnp-interval level-1",
+ NO_STR
+ "IS-IS commands\n"
+ "Set CSNP interval in seconds\n"
+ "Specify interval for level-1 CSNPs\n")
+{
+ struct isis_circuit *circuit = isis_circuit_lookup (vty);
+ if (!circuit)
+ return CMD_ERR_NO_MATCH;
+
+ circuit->csnp_interval[0] = DEFAULT_CSNP_INTERVAL;
+
+ return CMD_SUCCESS;
+}
+
+ALIAS (no_csnp_interval_l1,
+ no_csnp_interval_l1_arg_cmd,
+ "no isis csnp-interval <1-600> level-1",
+ NO_STR
+ "IS-IS commands\n"
+ "Set CSNP interval in seconds\n"
+ "CSNP interval value\n"
+ "Specify interval for level-1 CSNPs\n")
+
+DEFUN (csnp_interval_l2,
+ csnp_interval_l2_cmd,
+ "isis csnp-interval <1-600> level-2",
+ "IS-IS commands\n"
+ "Set CSNP interval in seconds\n"
+ "CSNP interval value\n"
+ "Specify interval for level-2 CSNPs\n")
+{
+ unsigned long interval;
+ struct isis_circuit *circuit = isis_circuit_lookup (vty);
+ if (!circuit)
+ return CMD_ERR_NO_MATCH;
+
+ interval = atol (argv[0]);
+ if (interval < MIN_CSNP_INTERVAL || interval > MAX_CSNP_INTERVAL)
+ {
+ vty_out (vty, "Invalid csnp-interval %lu - should be <1-600>%s",
+ interval, VTY_NEWLINE);
+ return CMD_ERR_AMBIGUOUS;
+ }
+
+ circuit->csnp_interval[1] = (u_int16_t) interval;
+
+ return CMD_SUCCESS;
+}
+
+DEFUN (no_csnp_interval_l2,
+ no_csnp_interval_l2_cmd,
+ "no isis csnp-interval level-2",
+ NO_STR
+ "IS-IS commands\n"
+ "Set CSNP interval in seconds\n"
+ "Specify interval for level-2 CSNPs\n")
+{
+ struct isis_circuit *circuit = isis_circuit_lookup (vty);
+ if (!circuit)
+ return CMD_ERR_NO_MATCH;
+
+ circuit->csnp_interval[1] = DEFAULT_CSNP_INTERVAL;
+
+ return CMD_SUCCESS;
+}
+
+ALIAS (no_csnp_interval_l2,
+ no_csnp_interval_l2_arg_cmd,
+ "no isis csnp-interval <1-600> level-2",
+ NO_STR
+ "IS-IS commands\n"
+ "Set CSNP interval in seconds\n"
+ "CSNP interval value\n"
+ "Specify interval for level-2 CSNPs\n")
+
+DEFUN (psnp_interval,
+ psnp_interval_cmd,
+ "isis psnp-interval <1-120>",
+ "IS-IS commands\n"
+ "Set PSNP interval in seconds\n"
+ "PSNP interval value\n")
+{
+ unsigned long interval;
+ struct isis_circuit *circuit = isis_circuit_lookup (vty);
+ if (!circuit)
+ return CMD_ERR_NO_MATCH;
+
+ interval = atol (argv[0]);
+ if (interval < MIN_PSNP_INTERVAL || interval > MAX_PSNP_INTERVAL)
+ {
+ vty_out (vty, "Invalid psnp-interval %lu - should be <1-120>%s",
+ interval, VTY_NEWLINE);
+ return CMD_ERR_AMBIGUOUS;
+ }
+
+ circuit->psnp_interval[0] = (u_int16_t) interval;
+ circuit->psnp_interval[1] = (u_int16_t) interval;
+
+ return CMD_SUCCESS;
+}
+
+DEFUN (no_psnp_interval,
+ no_psnp_interval_cmd,
+ "no isis psnp-interval",
+ NO_STR
+ "IS-IS commands\n"
+ "Set PSNP interval in seconds\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;
+}
+
+ALIAS (no_psnp_interval,
+ no_psnp_interval_arg_cmd,
+ "no isis psnp-interval <1-120>",
+ NO_STR
+ "IS-IS commands\n"
+ "Set PSNP interval in seconds\n"
+ "PSNP interval value\n")
+
+DEFUN (psnp_interval_l1,
+ psnp_interval_l1_cmd,
+ "isis psnp-interval <1-120> level-1",
+ "IS-IS commands\n"
+ "Set PSNP interval in seconds\n"
+ "PSNP interval value\n"
+ "Specify interval for level-1 PSNPs\n")
+{
+ unsigned long interval;
+ struct isis_circuit *circuit = isis_circuit_lookup (vty);
+ if (!circuit)
+ return CMD_ERR_NO_MATCH;
+
+ interval = atol (argv[0]);
+ if (interval < MIN_PSNP_INTERVAL || interval > MAX_PSNP_INTERVAL)
+ {
+ vty_out (vty, "Invalid psnp-interval %lu - should be <1-120>%s",
+ interval, VTY_NEWLINE);
+ return CMD_ERR_AMBIGUOUS;
+ }
+
+ circuit->psnp_interval[0] = (u_int16_t) interval;
+
+ return CMD_SUCCESS;
+}
+
+DEFUN (no_psnp_interval_l1,
+ no_psnp_interval_l1_cmd,
+ "no isis psnp-interval level-1",
+ NO_STR
+ "IS-IS commands\n"
+ "Set PSNP interval in seconds\n"
+ "Specify interval for level-1 PSNPs\n")
+{
+ struct isis_circuit *circuit = isis_circuit_lookup (vty);
+ if (!circuit)
+ return CMD_ERR_NO_MATCH;
+
+ circuit->psnp_interval[0] = DEFAULT_PSNP_INTERVAL;
+
+ return CMD_SUCCESS;
+}
+
+ALIAS (no_psnp_interval_l1,
+ no_psnp_interval_l1_arg_cmd,
+ "no isis psnp-interval <1-120> level-1",
+ NO_STR
+ "IS-IS commands\n"
+ "Set PSNP interval in seconds\n"
+ "PSNP interval value\n"
+ "Specify interval for level-1 PSNPs\n")
+
+DEFUN (psnp_interval_l2,
+ psnp_interval_l2_cmd,
+ "isis psnp-interval <1-120> level-2",
+ "IS-IS commands\n"
+ "Set PSNP interval in seconds\n"
+ "PSNP interval value\n"
+ "Specify interval for level-2 PSNPs\n")
+{
+ unsigned long interval;
+ struct isis_circuit *circuit = isis_circuit_lookup (vty);
+ if (!circuit)
+ return CMD_ERR_NO_MATCH;
+
+ interval = atol (argv[0]);
+ if (interval < MIN_PSNP_INTERVAL || interval > MAX_PSNP_INTERVAL)
+ {
+ vty_out (vty, "Invalid psnp-interval %lu - should be <1-120>%s",
+ interval, VTY_NEWLINE);
+ return CMD_ERR_AMBIGUOUS;
+ }
+
+ circuit->psnp_interval[1] = (u_int16_t) interval;
+
+ return CMD_SUCCESS;
+}
+
+DEFUN (no_psnp_interval_l2,
+ no_psnp_interval_l2_cmd,
+ "no isis psnp-interval level-2",
+ NO_STR
+ "IS-IS commands\n"
+ "Set PSNP interval in seconds\n"
+ "Specify interval for level-2 PSNPs\n")
+{
+ struct isis_circuit *circuit = isis_circuit_lookup (vty);
+ if (!circuit)
+ return CMD_ERR_NO_MATCH;
+
+ circuit->psnp_interval[1] = DEFAULT_PSNP_INTERVAL;
+
+ return CMD_SUCCESS;
+}
+
+ALIAS (no_psnp_interval_l2,
+ no_psnp_interval_l2_arg_cmd,
+ "no isis psnp-interval <1-120> level-2",
+ NO_STR
+ "IS-IS commands\n"
+ "Set PSNP interval in seconds\n"
+ "PSNP interval value\n"
+ "Specify interval for level-2 PSNPs\n")
+
static int
validate_metric_style_narrow (struct vty *vty, struct isis_area *area)
{
@@ -899,6 +1560,49 @@
install_element (INTERFACE_NODE, &no_isis_metric_l2_cmd);
install_element (INTERFACE_NODE, &no_isis_metric_l2_arg_cmd);
+ install_element (INTERFACE_NODE, &isis_hello_interval_cmd);
+ install_element (INTERFACE_NODE, &no_isis_hello_interval_cmd);
+ install_element (INTERFACE_NODE, &no_isis_hello_interval_arg_cmd);
+ install_element (INTERFACE_NODE, &isis_hello_interval_l1_cmd);
+ install_element (INTERFACE_NODE, &no_isis_hello_interval_l1_cmd);
+ install_element (INTERFACE_NODE, &no_isis_hello_interval_l1_arg_cmd);
+ install_element (INTERFACE_NODE, &isis_hello_interval_l2_cmd);
+ install_element (INTERFACE_NODE, &no_isis_hello_interval_l2_cmd);
+ install_element (INTERFACE_NODE, &no_isis_hello_interval_l2_arg_cmd);
+
+ install_element (INTERFACE_NODE, &isis_hello_multiplier_cmd);
+ install_element (INTERFACE_NODE, &no_isis_hello_multiplier_cmd);
+ install_element (INTERFACE_NODE, &no_isis_hello_multiplier_arg_cmd);
+ install_element (INTERFACE_NODE, &isis_hello_multiplier_l1_cmd);
+ install_element (INTERFACE_NODE, &no_isis_hello_multiplier_l1_cmd);
+ install_element (INTERFACE_NODE, &no_isis_hello_multiplier_l1_arg_cmd);
+ install_element (INTERFACE_NODE, &isis_hello_multiplier_l2_cmd);
+ install_element (INTERFACE_NODE, &no_isis_hello_multiplier_l2_cmd);
+ install_element (INTERFACE_NODE, &no_isis_hello_multiplier_l2_arg_cmd);
+
+ install_element (INTERFACE_NODE, &isis_hello_padding_cmd);
+ install_element (INTERFACE_NODE, &no_isis_hello_padding_cmd);
+
+ install_element (INTERFACE_NODE, &csnp_interval_cmd);
+ install_element (INTERFACE_NODE, &no_csnp_interval_cmd);
+ install_element (INTERFACE_NODE, &no_csnp_interval_arg_cmd);
+ install_element (INTERFACE_NODE, &csnp_interval_l1_cmd);
+ install_element (INTERFACE_NODE, &no_csnp_interval_l1_cmd);
+ install_element (INTERFACE_NODE, &no_csnp_interval_l1_arg_cmd);
+ install_element (INTERFACE_NODE, &csnp_interval_l2_cmd);
+ install_element (INTERFACE_NODE, &no_csnp_interval_l2_cmd);
+ install_element (INTERFACE_NODE, &no_csnp_interval_l2_arg_cmd);
+
+ install_element (INTERFACE_NODE, &psnp_interval_cmd);
+ install_element (INTERFACE_NODE, &no_psnp_interval_cmd);
+ install_element (INTERFACE_NODE, &no_psnp_interval_arg_cmd);
+ install_element (INTERFACE_NODE, &psnp_interval_l1_cmd);
+ install_element (INTERFACE_NODE, &no_psnp_interval_l1_cmd);
+ install_element (INTERFACE_NODE, &no_psnp_interval_l1_arg_cmd);
+ install_element (INTERFACE_NODE, &psnp_interval_l2_cmd);
+ install_element (INTERFACE_NODE, &no_psnp_interval_l2_cmd);
+ install_element (INTERFACE_NODE, &no_psnp_interval_l2_arg_cmd);
+
install_element (ISIS_NODE, &metric_style_cmd);
install_element (ISIS_NODE, &no_metric_style_cmd);