summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bgpd/bgp_routemap.c2
-rw-r--r--bgpd/bgp_vty.c94
-rw-r--r--bgpd/rfapi/bgp_rfapi_cfg.c5
-rw-r--r--bgpd/rfapi/rfapi_vty.c2
-rw-r--r--pimd/pim_cmd.c77
-rwxr-xr-xvtysh/extract.pl.in10
-rw-r--r--vtysh/vtysh.c66
7 files changed, 139 insertions, 117 deletions
diff --git a/bgpd/bgp_routemap.c b/bgpd/bgp_routemap.c
index 8f2486314a..6bfb180229 100644
--- a/bgpd/bgp_routemap.c
+++ b/bgpd/bgp_routemap.c
@@ -3992,7 +3992,7 @@ DEFUN (set_lcommunity_delete,
DEFUN (no_set_lcommunity_delete,
no_set_lcommunity_delete_cmd,
- "no set large-comm-list <(1-99|(100-500)|WORD)> [delete]",
+ "no set large-comm-list <(1-99)|(100-500)|WORD> [delete]",
NO_STR
SET_STR
"set BGP large community list (for deletion)\n"
diff --git a/bgpd/bgp_vty.c b/bgpd/bgp_vty.c
index 94809d69f5..86606fb8bc 100644
--- a/bgpd/bgp_vty.c
+++ b/bgpd/bgp_vty.c
@@ -5573,80 +5573,68 @@ DEFUN (no_neighbor_addpath_tx_bestpath_per_as,
PEER_FLAG_ADDPATH_TX_BESTPATH_PER_AS);
}
-
-/* Address Family configuration. */
-DEFUN (address_family_ipv4,
- address_family_ipv4_cmd,
- "address-family ipv4",
- "Enter Address Family command mode\n"
- "Address Family\n")
-{
- vty->node = BGP_IPV4_NODE;
- return CMD_SUCCESS;
-}
-
DEFUN (address_family_ipv4_safi,
address_family_ipv4_safi_cmd,
- "address-family ipv4 "BGP_SAFI_CMD_STR,
+ "address-family ipv4 [<unicast|multicast|vpn|encap>]",
"Enter Address Family command mode\n"
"Address Family\n"
BGP_SAFI_HELP_STR)
{
int idx_safi = 2;
- switch (bgp_vty_safi_from_arg(argv[idx_safi]->arg))
+ if (argc == (idx_safi + 1))
{
- case SAFI_MULTICAST:
- vty->node = BGP_IPV4M_NODE;
- break;
- case SAFI_ENCAP:
- vty->node = BGP_ENCAP_NODE;
- break;
- case SAFI_MPLS_VPN:
- vty->node = BGP_VPNV4_NODE;
- break;
- case SAFI_UNICAST:
- default:
- vty->node = BGP_IPV4_NODE;
- break;
+ switch (bgp_vty_safi_from_arg(argv[idx_safi]->arg))
+ {
+ case SAFI_MULTICAST:
+ vty->node = BGP_IPV4M_NODE;
+ break;
+ case SAFI_ENCAP:
+ vty->node = BGP_ENCAP_NODE;
+ break;
+ case SAFI_MPLS_VPN:
+ vty->node = BGP_VPNV4_NODE;
+ break;
+ case SAFI_UNICAST:
+ default:
+ vty->node = BGP_IPV4_NODE;
+ break;
+ }
}
+ else
+ vty->node = BGP_IPV4_NODE;
return CMD_SUCCESS;
}
-DEFUN (address_family_ipv6,
- address_family_ipv6_cmd,
- "address-family ipv6",
- "Enter Address Family command mode\n"
- "Address Family\n")
-{
- vty->node = BGP_IPV6_NODE;
- return CMD_SUCCESS;
-}
-
DEFUN (address_family_ipv6_safi,
address_family_ipv6_safi_cmd,
- "address-family ipv6 "BGP_SAFI_CMD_STR,
+ "address-family ipv6 [<unicast|multicast|vpn|encap>]",
"Enter Address Family command mode\n"
"Address Family\n"
BGP_SAFI_HELP_STR)
{
int idx_safi = 2;
- switch (bgp_vty_safi_from_arg(argv[idx_safi]->arg))
+ if (argc == (idx_safi + 1))
{
- case SAFI_MULTICAST:
- vty->node = BGP_IPV6M_NODE;
- break;
- case SAFI_ENCAP:
- vty->node = BGP_ENCAPV6_NODE;
- break;
- case SAFI_MPLS_VPN:
- vty->node = BGP_VPNV6_NODE;
- break;
- case SAFI_UNICAST:
- default:
- vty->node = BGP_IPV6_NODE;
- break;
+ switch (bgp_vty_safi_from_arg(argv[idx_safi]->arg))
+ {
+ case SAFI_MULTICAST:
+ vty->node = BGP_IPV6M_NODE;
+ break;
+ case SAFI_ENCAP:
+ vty->node = BGP_ENCAPV6_NODE;
+ break;
+ case SAFI_MPLS_VPN:
+ vty->node = BGP_VPNV6_NODE;
+ break;
+ case SAFI_UNICAST:
+ default:
+ vty->node = BGP_IPV6_NODE;
+ break;
+ }
}
+ else
+ vty->node = BGP_IPV6_NODE;
return CMD_SUCCESS;
}
@@ -10814,9 +10802,7 @@ bgp_vty_init (void)
install_element (BGP_ENCAPV6_NODE, &no_neighbor_allowas_in_cmd);
/* address-family commands. */
- install_element (BGP_NODE, &address_family_ipv4_cmd);
install_element (BGP_NODE, &address_family_ipv4_safi_cmd);
- install_element (BGP_NODE, &address_family_ipv6_cmd);
install_element (BGP_NODE, &address_family_ipv6_safi_cmd);
#ifdef KEEP_OLD_VPN_COMMANDS
install_element (BGP_NODE, &address_family_vpnv4_cmd);
diff --git a/bgpd/rfapi/bgp_rfapi_cfg.c b/bgpd/rfapi/bgp_rfapi_cfg.c
index 8ff28a39d7..bc268f6086 100644
--- a/bgpd/rfapi/bgp_rfapi_cfg.c
+++ b/bgpd/rfapi/bgp_rfapi_cfg.c
@@ -3353,6 +3353,7 @@ DEFUN (vnc_vrf_policy_label,
DEFUN (vnc_vrf_policy_no_label,
vnc_vrf_policy_no_label_cmd,
"no label",
+ NO_STR
"Remove VRF default label\n")
{
VTY_DECLVAR_CONTEXT_SUB(rfapi_nve_group_cfg, rfg);
@@ -3880,7 +3881,7 @@ DEFUN (vnc_l2_group_lni,
DEFUN (vnc_l2_group_labels,
vnc_l2_group_labels_cmd,
- "labels .LABELLIST",
+ "labels LABELLIST...",
"Specify label values associated with group\n"
"Space separated list of label values <0-1048575>\n")
{
@@ -3923,7 +3924,7 @@ DEFUN (vnc_l2_group_labels,
DEFUN (vnc_l2_group_no_labels,
vnc_l2_group_no_labels_cmd,
- "no labels .LABELLIST",
+ "no labels LABELLIST...",
NO_STR
"Remove label values associated with L2 group\n"
"Specify label values associated with L2 group\n"
diff --git a/bgpd/rfapi/rfapi_vty.c b/bgpd/rfapi/rfapi_vty.c
index 1e92cbcbf1..f7c3773fd4 100644
--- a/bgpd/rfapi/rfapi_vty.c
+++ b/bgpd/rfapi/rfapi_vty.c
@@ -5193,7 +5193,7 @@ DEFUN (add_vrf_prefix_rd_label_pref,
"IPv6 prefix\n"
"Override configured VRF Route Distinguisher\n"
"<as-number>:<number> or <ip-address>:<number>\n"
- "Override configured VRF label"
+ "Override configured VRF label\n"
"Label Value <0-1048575>\n"
"Set advertised local preference\n"
"local preference (higher=more preferred)\n")
diff --git a/pimd/pim_cmd.c b/pimd/pim_cmd.c
index b8bb694b78..7e60232bac 100644
--- a/pimd/pim_cmd.c
+++ b/pimd/pim_cmd.c
@@ -2423,8 +2423,11 @@ DEFUN (show_ip_igmp_interface,
"JavaScript Object Notation\n")
{
u_char uj = use_json(argc, argv);
- if (argv[4]->arg)
- igmp_show_interfaces_single(vty, argv[4]->arg, uj);
+ int idx = 0;
+
+ if (argv_find(argv, argc, "detail", &idx) ||
+ argv_find(argv, argc, "WORD", &idx))
+ igmp_show_interfaces_single(vty, argv[idx]->arg, uj);
else
igmp_show_interfaces(vty, uj);
@@ -2564,8 +2567,12 @@ DEFUN (show_ip_pim_interface,
"JavaScript Object Notation\n")
{
u_char uj = use_json(argc, argv);
- if (argv[4]->arg)
- pim_show_interfaces_single(vty, argv[4]->arg, uj);
+ int idx = 0;
+
+ if (argv_find(argv, argc, "WORD", &idx) ||
+ argv_find(argv, argc, "detail", &idx))
+ pim_show_interfaces_single(vty, argv[idx]->arg, uj);
+
else
pim_show_interfaces(vty, uj);
@@ -2614,8 +2621,11 @@ DEFUN (show_ip_pim_neighbor,
"JavaScript Object Notation\n")
{
u_char uj = use_json(argc, argv);
- if (argv[4]->arg)
- pim_show_neighbors_single(vty, argv[4]->arg, uj);
+ int idx = 0;
+
+ if (argv_find(argv, argc, "detail", &idx) ||
+ argv_find(argv, argc, "WORD", &idx))
+ pim_show_neighbors_single(vty, argv[idx]->arg, uj);
else
pim_show_neighbors(vty, uj);
@@ -2637,7 +2647,7 @@ DEFUN (show_ip_pim_secondary,
DEFUN (show_ip_pim_state,
show_ip_pim_state_cmd,
- "show ip pim state [A.B.C.D] [A.B.C.D] [json]",
+ "show ip pim state [A.B.C.D [A.B.C.D]] [json]",
SHOW_STR
IP_STR
PIM_STR
@@ -2649,9 +2659,16 @@ DEFUN (show_ip_pim_state,
const char *src_or_group = NULL;
const char *group = NULL;
u_char uj = use_json(argc, argv);
+ if (uj)
+ argc--;
- src_or_group = argv[4]->arg;
- group = argv[5]->arg;
+ if (argc == 5)
+ {
+ src_or_group = argv[4]->arg;
+ group = argv[5]->arg;
+ }
+ else if (argc == 4)
+ src_or_group = argv[4]->arg;
pim_show_state(vty, src_or_group, group, uj);
@@ -3476,7 +3493,11 @@ DEFUN (ip_pim_rp,
"Group Address range to cover\n")
{
int idx_ipv4 = 3;
- return pim_rp_cmd_worker (vty, argv[idx_ipv4]->arg, argv[idx_ipv4 + 1]->arg, NULL);
+
+ if (argc == (idx_ipv4 + 1))
+ return pim_rp_cmd_worker (vty, argv[idx_ipv4]->arg, argv[idx_ipv4 + 1]->arg, NULL);
+ else
+ return pim_rp_cmd_worker (vty, argv[idx_ipv4]->arg, NULL, NULL);
}
DEFUN (ip_pim_rp_prefix_list,
@@ -3530,7 +3551,11 @@ DEFUN (no_ip_pim_rp,
"Group Address range to cover\n")
{
int idx_ipv4 = 4;
- return pim_no_rp_cmd_worker (vty, argv[idx_ipv4]->arg, argv[idx_ipv4 + 1]->arg, NULL);
+
+ if (argc == (idx_ipv4 + 1))
+ return pim_no_rp_cmd_worker (vty, argv[idx_ipv4]->arg, argv[idx_ipv4 + 1]->arg, NULL);
+ else
+ return pim_no_rp_cmd_worker (vty, argv[idx_ipv4]->arg, NULL, NULL);
}
DEFUN (no_ip_pim_rp_prefix_list,
@@ -3585,7 +3610,7 @@ DEFUN (ip_ssmpingd,
int idx_ipv4 = 2;
int result;
struct in_addr source_addr;
- const char *source_str = (argc > idx_ipv4) ? argv[idx_ipv4]->arg : "0.0.0.0";
+ const char *source_str = (argc == idx_ipv4) ? argv[idx_ipv4]->arg : "0.0.0.0";
result = inet_pton(AF_INET, source_str, &source_addr);
if (result <= 0) {
@@ -3615,7 +3640,7 @@ DEFUN (no_ip_ssmpingd,
int idx_ipv4 = 3;
int result;
struct in_addr source_addr;
- const char *source_str = (argc > idx_ipv4) ? argv[idx_ipv4]->arg : "0.0.0.0";
+ const char *source_str = (argc == idx_ipv4) ? argv[idx_ipv4]->arg : "0.0.0.0";
result = inet_pton(AF_INET, source_str, &source_addr);
if (result <= 0) {
@@ -3937,7 +3962,7 @@ DEFUN (interface_ip_igmp_query_interval,
return CMD_WARNING;
}
- query_interval = atoi(argv[4]->arg);
+ query_interval = atoi(argv[3]->arg);
query_interval_dsec = 10 * query_interval;
/*
@@ -4006,7 +4031,7 @@ DEFUN (interface_no_ip_igmp_query_interval,
DEFUN (interface_ip_igmp_version,
interface_ip_igmp_version_cmd,
- "ip igmp version <2-3>",
+ "ip igmp version (2-3)",
IP_STR
IFACE_IGMP_STR
"IGMP version\n"
@@ -4034,7 +4059,7 @@ DEFUN (interface_ip_igmp_version,
DEFUN (interface_no_ip_igmp_version,
interface_no_ip_igmp_version_cmd,
- "no ip igmp version <2-3>",
+ "no ip igmp version (2-3)",
NO_STR
IP_STR
IFACE_IGMP_STR
@@ -4079,7 +4104,7 @@ DEFUN (interface_ip_igmp_query_max_response_time,
return CMD_WARNING;
}
- query_max_response_time = atoi(argv[4]->arg);
+ query_max_response_time = atoi(argv[3]->arg);
if (query_max_response_time >= pim_ifp->igmp_default_query_interval * 10) {
vty_out(vty,
@@ -4096,7 +4121,7 @@ DEFUN (interface_ip_igmp_query_max_response_time,
DEFUN (interface_no_ip_igmp_query_max_response_time,
interface_no_ip_igmp_query_max_response_time_cmd,
- "no ip igmp query-max-response-time <10-250>",
+ "no ip igmp query-max-response-time (10-250)",
NO_STR
IP_STR
IFACE_IGMP_STR
@@ -4576,7 +4601,7 @@ DEFUN (interface_ip_pim_hello,
pim_ifp->pim_hello_period = strtol(argv[idx_time]->arg, NULL, 10);
- if (argc > idx_hold)
+ if (argc == idx_hold)
pim_ifp->pim_default_holdtime = strtol(argv[idx_hold]->arg, NULL, 10);
return CMD_SUCCESS;
@@ -5451,7 +5476,7 @@ DEFUN (no_ip_msdp_mesh_group_source,
"mesh group source\n"
"mesh group local address\n")
{
- if (argv[6]->arg)
+ if (argc == 6)
return ip_no_msdp_mesh_group_cmd_worker(vty, argv[6]->arg);
else
return ip_no_msdp_mesh_group_source_cmd_worker(vty, argv[4]->arg);
@@ -5696,7 +5721,10 @@ DEFUN (show_ip_msdp_peer_detail,
"JavaScript Object Notation\n")
{
u_char uj = use_json(argc, argv);
- if (argv[4]->arg)
+ if (uj)
+ argc--;
+
+ if (argc == 4)
ip_msdp_show_peers_detail(vty, argv[4]->arg, uj);
else
ip_msdp_show_peers(vty, uj);
@@ -5948,9 +5976,12 @@ DEFUN (show_ip_msdp_sa_sg,
"JavaScript Object Notation\n")
{
u_char uj = use_json(argc, argv);
- if (argv[5]->arg)
+ if (uj)
+ argc--;
+
+ if (argc == 5)
ip_msdp_show_sa_sg(vty, argv[4]->arg, argv[5]->arg, uj);
- else if (argv[4]->arg)
+ else if (argc == 4)
ip_msdp_show_sa_addr(vty, argv[4]->arg, uj);
else
ip_msdp_show_sa(vty, uj);
diff --git a/vtysh/extract.pl.in b/vtysh/extract.pl.in
index d38ea60a03..5b23b2440a 100755
--- a/vtysh/extract.pl.in
+++ b/vtysh/extract.pl.in
@@ -54,18 +54,14 @@ $ignore{'"router bgp [(1-4294967295) [<view|vrf> WORD]]"'} = "ignore";
$ignore{'"router isis WORD"'} = "ignore";
$ignore{'"router zebra"'} = "ignore";
$ignore{'"address-family ipv4"'} = "ignore";
-$ignore{'"address-family ipv4 <unicast|multicast>"'} = "ignore";
+$ignore{'"address-family ipv4 [<unicast|multicast|vpn|encap>]"'} = "ignore";
$ignore{'"address-family ipv6"'} = "ignore";
-$ignore{'"address-family ipv6 <unicast|multicast>"'} = "ignore";
-$ignore{'"address-family ipv4 vpn"'} = "ignore";
+$ignore{'"address-family ipv6 [<unicast|multicast|vpn|encap>]"'} = "ignore";
$ignore{'"address-family vpnv4"'} = "ignore";
$ignore{'"address-family vpnv4 unicast"'} = "ignore";
$ignore{'"address-family ipv4 vrf NAME"'} = "ignore";
$ignore{'"address-family <encap|encapv4>"'} = "ignore";
$ignore{'"address-family encapv6"'} = "ignore";
-$ignore{'"address-family ipv4 encap"'} = "ignore";
-$ignore{'"address-family ipv6 encap"'} = "ignore";
-$ignore{'"address-family ipv6 vpn"'} = "ignore";
$ignore{'"address-family vpnv6"'} = "ignore";
$ignore{'"address-family vpnv6 unicast"'} = "ignore";
$ignore{'"exit-address-family"'} = "ignore";
@@ -87,6 +83,8 @@ $ignore{'"router ospf [(1-65535)]"'} = "ignore";
$ignore{'"address-family vpnv6 [unicast]"'} = "ignore";
$ignore{'"address-family vpnv4 [unicast]"'} = "ignore";
$ignore{'"logical-router (1-65535) ns NAME"'} = "ignore";
+$ignore{'"vrf-policy NAME"' } = "ignore";
+$ignore{'"exit-vrf-policy"' } = "ignore";
my $cli_stomp = 0;
diff --git a/vtysh/vtysh.c b/vtysh/vtysh.c
index 51b5091c57..1db3dca352 100644
--- a/vtysh/vtysh.c
+++ b/vtysh/vtysh.c
@@ -1149,48 +1149,56 @@ DEFUNSH (VTYSH_BGPD,
DEFUNSH (VTYSH_BGPD,
address_family_ipv4_unicast,
address_family_ipv4_unicast_cmd,
- "address-family ipv4 unicast",
+ "address-family ipv4 [<unicast|multicast|vpn|encap>]",
"Enter Address Family command mode\n"
"Address Family\n"
- "Address Family Modifier\n")
+ "Address Family Modifier\n"
+ "Address Family Modifier\n"
+ "Address Family Modifier\n"
+ "Address Family Modifier\n")
{
- vty->node = BGP_IPV4_NODE;
- return CMD_SUCCESS;
-}
+ int idx = 0;
+
+ if (argv_find (argv, argc, "multicast", &idx))
+ vty->node = BGP_IPV4M_NODE;
+
+ else if (argv_find (argv, argc, "encap", &idx))
+ vty->node = BGP_ENCAP_NODE;
+
+ else if (argv_find (argv, argc, "vpn", &idx))
+ vty->node = BGP_VPNV4_NODE;
+
+ else
+ vty->node = BGP_IPV4_NODE;
-DEFUNSH (VTYSH_BGPD,
- address_family_ipv4_multicast,
- address_family_ipv4_multicast_cmd,
- "address-family ipv4 multicast",
- "Enter Address Family command mode\n"
- "Address Family\n"
- "Address Family Modifier\n")
-{
- vty->node = BGP_IPV4M_NODE;
return CMD_SUCCESS;
}
DEFUNSH (VTYSH_BGPD,
address_family_ipv6,
address_family_ipv6_cmd,
- "address-family ipv6 [unicast]",
+ "address-family ipv6 [<unicast|multicast|vpn|encap>]",
"Enter Address Family command mode\n"
"Address Family\n"
- "Address Family Modifier\n")
+ "Address Family Modifier\n"
+ "Address Family Modifier\n"
+ "Address Family Modifier\n"
+ "Address Family Modifier\n")
{
- vty->node = BGP_IPV6_NODE;
- return CMD_SUCCESS;
-}
+ int idx = 0;
+
+ if (argv_find (argv, argc, "multicast", &idx))
+ vty->node = BGP_IPV6M_NODE;
+
+ else if (argv_find (argv, argc, "encap", &idx))
+ vty->node = BGP_ENCAPV6_NODE;
+
+ else if (argv_find (argv, argc, "vpn", &idx))
+ vty->node = BGP_VPNV6_NODE;
+
+ else
+ vty->node = BGP_IPV6_NODE;
-DEFUNSH (VTYSH_BGPD,
- address_family_ipv6_multicast,
- address_family_ipv6_multicast_cmd,
- "address-family ipv6 multicast",
- "Enter Address Family command mode\n"
- "Address Family\n"
- "Address Family Modifier\n")
-{
- vty->node = BGP_IPV6M_NODE;
return CMD_SUCCESS;
}
@@ -3282,9 +3290,7 @@ vtysh_init_vty (void)
install_element (BGP_NODE, &vnc_l2_group_cmd);
#endif
install_element (BGP_NODE, &address_family_ipv4_unicast_cmd);
- install_element (BGP_NODE, &address_family_ipv4_multicast_cmd);
install_element (BGP_NODE, &address_family_ipv6_cmd);
- install_element (BGP_NODE, &address_family_ipv6_multicast_cmd);
install_element (BGP_VPNV4_NODE, &exit_address_family_cmd);
install_element (BGP_VPNV6_NODE, &exit_address_family_cmd);
install_element (BGP_ENCAP_NODE, &exit_address_family_cmd);