X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=eigrpd%2Feigrp_vty.c;h=b9486e026004797c98bfb93f1875adffa6792119;hb=03a38493f8b319a3fac139c8898eac53001ad151;hp=96c96411f50e6ca61fc785e1852a209a43488092;hpb=e28a328600d7954c8b8631d8153c3645e8f2c7a3;p=mirror_frr.git diff --git a/eigrpd/eigrp_vty.c b/eigrpd/eigrp_vty.c index 96c96411f..b9486e026 100644 --- a/eigrpd/eigrp_vty.c +++ b/eigrpd/eigrp_vty.c @@ -55,6 +55,10 @@ #include "eigrpd/eigrp_dump.h" #include "eigrpd/eigrp_const.h" +#ifndef VTYSH_EXTRACT_PL +#include "eigrpd/eigrp_vty_clippy.c" +#endif + static int config_write_network(struct vty *vty, struct eigrp *eigrp) { struct route_node *rn; @@ -170,7 +174,7 @@ static int config_write_eigrp_distribute(struct vty *vty, struct eigrp *eigrp) int write = 0; /* Distribute configuration. */ - write += config_write_distribute(vty); + write += config_write_distribute(vty, eigrp->distribute_ctx); return write; } @@ -608,7 +612,7 @@ DEFUN (eigrp_if_delay, VTY_DECLVAR_CONTEXT(interface, ifp); struct eigrp_interface *ei = ifp->info; struct eigrp *eigrp; - u_int32_t delay; + uint32_t delay; eigrp = eigrp_lookup(); if (eigrp == NULL) { @@ -657,16 +661,15 @@ DEFUN (no_eigrp_if_delay, return CMD_SUCCESS; } -DEFUN (eigrp_if_bandwidth, +DEFPY (eigrp_if_bandwidth, eigrp_if_bandwidth_cmd, - "eigrp bandwidth (1-10000000)", + "eigrp bandwidth (1-10000000)$bw", "EIGRP specific commands\n" "Set bandwidth informational parameter\n" "Bandwidth in kilobits\n") { VTY_DECLVAR_CONTEXT(interface, ifp); struct eigrp_interface *ei = ifp->info; - u_int32_t bandwidth; struct eigrp *eigrp; eigrp = eigrp_lookup(); @@ -680,9 +683,7 @@ DEFUN (eigrp_if_bandwidth, return CMD_SUCCESS; } - bandwidth = atoi(argv[1]->arg); - - ei->params.bandwidth = bandwidth; + ei->params.bandwidth = bw; eigrp_if_reset(ifp); return CMD_SUCCESS; @@ -727,7 +728,7 @@ DEFUN (eigrp_if_ip_hellointerval, { VTY_DECLVAR_CONTEXT(interface, ifp); struct eigrp_interface *ei = ifp->info; - u_int32_t hello; + uint32_t hello; struct eigrp *eigrp; eigrp = eigrp_lookup(); @@ -790,7 +791,7 @@ DEFUN (eigrp_if_ip_holdinterval, { VTY_DECLVAR_CONTEXT(interface, ifp); struct eigrp_interface *ei = ifp->info; - u_int32_t hold; + uint32_t hold; struct eigrp *eigrp; eigrp = eigrp_lookup(); @@ -821,7 +822,7 @@ DEFUN (eigrp_ip_summary_address, "Summary /, e.g. 192.168.0.0/16\n") { // VTY_DECLVAR_CONTEXT(interface, ifp); - // u_int32_t AS; + // uint32_t AS; struct eigrp *eigrp; eigrp = eigrp_lookup(); @@ -848,7 +849,7 @@ DEFUN (no_eigrp_ip_summary_address, "Summary /, e.g. 192.168.0.0/16\n") { // VTY_DECLVAR_CONTEXT(interface, ifp); - // u_int32_t AS; + // uint32_t AS; struct eigrp *eigrp; eigrp = eigrp_lookup(); @@ -975,9 +976,10 @@ DEFUN (no_eigrp_authentication_mode, return CMD_SUCCESS; } -DEFUN (eigrp_authentication_keychain, +DEFPY (eigrp_authentication_keychain, eigrp_authentication_keychain_cmd, - "ip authentication key-chain eigrp (1-65535) WORD", + "[no] ip authentication key-chain eigrp (1-65535)$as WORD$name", + NO_STR "Interface Internet Protocol config commands\n" "Authentication subcommands\n" "Key-chain\n" @@ -1001,52 +1003,29 @@ DEFUN (eigrp_authentication_keychain, return CMD_SUCCESS; } - keychain = keychain_lookup(argv[4]->arg); + if (no) { + if ((ei->params.auth_keychain != NULL) + && (strcmp(ei->params.auth_keychain, name) == 0)) { + free(ei->params.auth_keychain); + ei->params.auth_keychain = NULL; + } else + vty_out(vty, + "Key chain with specified name not configured on interface\n"); + return CMD_SUCCESS; + } + + keychain = keychain_lookup(name); if (keychain != NULL) { if (ei->params.auth_keychain) { free(ei->params.auth_keychain); ei->params.auth_keychain = strdup(keychain->name); } else ei->params.auth_keychain = strdup(keychain->name); - } else - vty_out(vty, "Key chain with specified name not found\n"); - - return CMD_SUCCESS; -} - -DEFUN (no_eigrp_authentication_keychain, - no_eigrp_authentication_keychain_cmd, - "no ip authentication key-chain eigrp (1-65535) WORD", - "Disable\n" - "Interface Internet Protocol config commands\n" - "Authentication subcommands\n" - "Key-chain\n" - "Enhanced Interior Gateway Routing Protocol (EIGRP)\n" - "Autonomous system number\n" - "Name of key-chain\n") -{ - VTY_DECLVAR_CONTEXT(interface, ifp); - struct eigrp_interface *ei = ifp->info; - struct eigrp *eigrp; - - eigrp = eigrp_lookup(); - if (eigrp == NULL) { - vty_out(vty, "EIGRP Routing Process not enabled\n"); - return CMD_SUCCESS; - } - - if (!ei) { - vty_out(vty, " EIGRP not configured on this interface\n"); - return CMD_SUCCESS; - } - - if ((ei->params.auth_keychain != NULL) - && (strcmp(ei->params.auth_keychain, argv[5]->arg) == 0)) { - free(ei->params.auth_keychain); - ei->params.auth_keychain = NULL; - } else + } else { vty_out(vty, - "Key chain with specified name not configured on interface\n"); + "Key chain with specified name not found\n"); + return CMD_WARNING_CONFIG_FAILED; + } return CMD_SUCCESS; } @@ -1085,7 +1064,7 @@ DEFUN (eigrp_redistribute_source_metric, DEFUN (no_eigrp_redistribute_source_metric, no_eigrp_redistribute_source_metric_cmd, "no redistribute " FRR_REDIST_STR_EIGRPD - " metric (1-4294967295) (0-4294967295) (0-255) (1-255) (1-65535)", + " [metric (1-4294967295) (0-4294967295) (0-255) (1-255) (1-65535)]", "Disable\n" REDIST_STR FRR_REDIST_HELP_STR_EIGRPD @@ -1120,7 +1099,7 @@ DEFUN (eigrp_variance, "Metric variance multiplier\n") { struct eigrp *eigrp; - u_char variance; + uint8_t variance; eigrp = eigrp_lookup(); if (eigrp == NULL) { @@ -1164,7 +1143,7 @@ DEFUN (eigrp_maximum_paths, "Number of paths\n") { struct eigrp *eigrp; - u_char max; + uint8_t max; eigrp = eigrp_lookup(); if (eigrp == NULL) { @@ -1538,7 +1517,6 @@ void eigrp_vty_if_init(void) install_element(INTERFACE_NODE, &eigrp_authentication_mode_cmd); install_element(INTERFACE_NODE, &no_eigrp_authentication_mode_cmd); install_element(INTERFACE_NODE, &eigrp_authentication_keychain_cmd); - install_element(INTERFACE_NODE, &no_eigrp_authentication_keychain_cmd); /*EIGRP Summarization commands*/ install_element(INTERFACE_NODE, &eigrp_ip_summary_address_cmd);