summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/if.c77
-rw-r--r--lib/if.h3
-rw-r--r--lib/vrf.h2
-rw-r--r--zebra/interface.c1
4 files changed, 29 insertions, 54 deletions
diff --git a/lib/if.c b/lib/if.c
index bd6079c0fd..01baa5392a 100644
--- a/lib/if.c
+++ b/lib/if.c
@@ -750,36 +750,37 @@ if_sunwzebra_get (const char *name, size_t nlen, vrf_id_t vrf_id)
DEFUN (interface,
interface_cmd,
- "interface IFNAME",
+ "interface IFNAME" VRF_CMD_STR_OPT,
"Select an interface to configure\n"
- "Interface's name\n")
+ "Interface's name\n"
+ VRF_CMD_HELP_STR)
{
struct interface *ifp;
size_t sl;
vrf_id_t vrf_id = VRF_DEFAULT;
- if ((sl = strlen(argv[0])) > INTERFACE_NAMSIZ)
+ if ((sl = strlen(argv[0]->arg)) > INTERFACE_NAMSIZ)
{
vty_out (vty, "%% Interface name %s is invalid: length exceeds "
"%d characters%s",
- argv[0], INTERFACE_NAMSIZ, VTY_NEWLINE);
+ argv[0]->arg, INTERFACE_NAMSIZ, VTY_NEWLINE);
return CMD_WARNING;
}
/*Pending: need proper vrf name based lookup/(possible creation of VRF)
Imagine forward reference of a vrf by name in this interface config */
if (argc > 1)
- VRF_GET_ID (vrf_id, argv[1]);
+ VRF_GET_ID (vrf_id, argv[1]->arg);
#ifdef SUNOS_5
- ifp = if_sunwzebra_get (argv[0], sl, vrf_id);
+ ifp = if_sunwzebra_get (argv[0]->arg, sl, vrf_id);
#else
- ifp = if_get_by_name_len_vrf (argv[0], sl, vrf_id, 1);
+ ifp = if_get_by_name_len_vrf (argv[0]->arg, sl, vrf_id, 1);
#endif /* SUNOS_5 */
if (!ifp)
{
- vty_out (vty, "%% interface %s not in %s%s", argv[0], argv[1], VTY_NEWLINE);
+ vty_out (vty, "%% interface %s not in %s%s", argv[0]->arg, argv[1]->arg, VTY_NEWLINE);
return CMD_WARNING;
}
vty->index = ifp;
@@ -788,32 +789,26 @@ DEFUN (interface,
return CMD_SUCCESS;
}
-ALIAS (interface,
- interface_vrf_cmd,
- "interface IFNAME " VRF_CMD_STR,
- "Select an interface to configure\n"
- "Interface's name\n"
- VRF_CMD_HELP_STR)
-
DEFUN_NOSH (no_interface,
no_interface_cmd,
- "no interface IFNAME",
+ "no interface IFNAME" VRF_CMD_STR_OPT,
NO_STR
"Delete a pseudo interface's configuration\n"
- "Interface's name\n")
+ "Interface's name\n"
+ VRF_CMD_HELP_STR)
{
// deleting interface
struct interface *ifp;
vrf_id_t vrf_id = VRF_DEFAULT;
if (argc > 1)
- VRF_GET_ID (vrf_id, argv[1]);
+ VRF_GET_ID (vrf_id, argv[1]->arg);
- ifp = if_lookup_by_name_vrf (argv[0], vrf_id);
+ ifp = if_lookup_by_name_vrf (argv[0]->arg, vrf_id);
if (ifp == NULL)
{
- vty_out (vty, "%% Interface %s does not exist%s", argv[0], VTY_NEWLINE);
+ vty_out (vty, "%% Interface %s does not exist%s", argv[0]->arg, VTY_NEWLINE);
return CMD_WARNING;
}
@@ -829,32 +824,23 @@ DEFUN_NOSH (no_interface,
return CMD_SUCCESS;
}
-ALIAS (no_interface,
- no_interface_vrf_cmd,
- "no interface IFNAME " VRF_CMD_STR,
- NO_STR
- "Delete a pseudo interface's configuration\n"
- "Interface's name\n"
- VRF_CMD_HELP_STR)
-
DEFUN (vrf,
vrf_cmd,
- "vrf NAME",
- "Select a VRF to configure\n"
- "VRF's name\n")
+ VRF_CMD_STR,
+ VRF_CMD_HELP_STR)
{
struct vrf *vrfp;
size_t sl;
- if ((sl = strlen(argv[0])) > VRF_NAMSIZ)
+ if ((sl = strlen(argv[0]->arg)) > VRF_NAMSIZ)
{
vty_out (vty, "%% VRF name %s is invalid: length exceeds "
"%d characters%s",
- argv[0], VRF_NAMSIZ, VTY_NEWLINE);
+ argv[0]->arg, VRF_NAMSIZ, VTY_NEWLINE);
return CMD_WARNING;
}
- vrfp = vrf_get (VRF_UNKNOWN, argv[0]);
+ vrfp = vrf_get (VRF_UNKNOWN, argv[0]->arg);
vty->index = vrfp;
vty->node = VRF_NODE;
@@ -864,18 +850,17 @@ DEFUN (vrf,
DEFUN_NOSH (no_vrf,
no_vrf_cmd,
- "no vrf NAME",
+ "no " VRF_CMD_STR,
NO_STR
- "Delete a pseudo VRF's configuration\n"
- "VRF's name\n")
+ VRF_CMD_HELP_STR)
{
struct vrf *vrfp;
- vrfp = vrf_list_lookup_by_name (argv[0]);
+ vrfp = vrf_list_lookup_by_name (argv[0]->arg);
if (vrfp == NULL)
{
- vty_out (vty, "%% VRF %s does not exist%s", argv[0], VTY_NEWLINE);
+ vty_out (vty, "%% VRF %s does not exist%s", argv[0]->arg, VTY_NEWLINE);
return CMD_WARNING;
}
@@ -895,9 +880,10 @@ DEFUN_NOSH (no_vrf,
/* For debug purpose. */
DEFUN (show_address,
show_address_cmd,
- "show address",
+ "show address" VRF_CMD_STR_OPT,
SHOW_STR
- "address\n")
+ "address\n"
+ VRF_CMD_HELP_STR)
{
struct listnode *node;
struct listnode *node2;
@@ -907,7 +893,7 @@ DEFUN (show_address,
vrf_id_t vrf_id = VRF_DEFAULT;
if (argc > 0)
- VRF_GET_ID (vrf_id, argv[0]);
+ VRF_GET_ID (vrf_id, argv[0]->arg);
for (ALL_LIST_ELEMENTS_RO (vrf_iflist (vrf_id), node, ifp))
{
@@ -923,13 +909,6 @@ DEFUN (show_address,
return CMD_SUCCESS;
}
-ALIAS (show_address,
- show_address_vrf_cmd,
- "show address " VRF_CMD_STR,
- SHOW_STR
- "address\n"
- VRF_CMD_HELP_STR)
-
DEFUN (show_address_vrf_all,
show_address_vrf_all_cmd,
"show address " VRF_ALL_CMD_STR,
diff --git a/lib/if.h b/lib/if.h
index d1875e695a..4913d8c8b0 100644
--- a/lib/if.h
+++ b/lib/if.h
@@ -491,12 +491,9 @@ extern struct cmd_element interface_desc_cmd;
extern struct cmd_element no_interface_desc_cmd;
extern struct cmd_element interface_cmd;
extern struct cmd_element no_interface_cmd;
-extern struct cmd_element interface_vrf_cmd;
-extern struct cmd_element no_interface_vrf_cmd;
extern struct cmd_element interface_pseudo_cmd;
extern struct cmd_element no_interface_pseudo_cmd;
extern struct cmd_element show_address_cmd;
-extern struct cmd_element show_address_vrf_cmd;
extern struct cmd_element show_address_vrf_all_cmd;
extern struct cmd_element vrf_cmd;
extern struct cmd_element no_vrf_cmd;
diff --git a/lib/vrf.h b/lib/vrf.h
index dcc115563d..c4260769a6 100644
--- a/lib/vrf.h
+++ b/lib/vrf.h
@@ -50,7 +50,7 @@ enum {
/*
* The command strings
*/
-
+#define VRF_CMD_STR_OPT "[vrf NAME]"
#define VRF_CMD_STR "vrf NAME"
#define VRF_CMD_HELP_STR "Specify the VRF\nThe VRF name\n"
diff --git a/zebra/interface.c b/zebra/interface.c
index 9be97e2214..0546cb8f9b 100644
--- a/zebra/interface.c
+++ b/zebra/interface.c
@@ -2960,7 +2960,6 @@ zebra_if_init (void)
install_element (CONFIG_NODE, &zebra_interface_cmd);
install_element (CONFIG_NODE, &zebra_interface_vrf_cmd);
install_element (CONFIG_NODE, &no_interface_cmd);
- install_element (CONFIG_NODE, &no_interface_vrf_cmd);
install_default (INTERFACE_NODE);
install_element (INTERFACE_NODE, &interface_desc_cmd);
install_element (INTERFACE_NODE, &no_interface_desc_cmd);