Merge pull request #122 from donaldsharp/moreafisafi

More CLI fixes/cleanup
This commit is contained in:
Lou Berger 2017-01-27 16:10:54 -05:00 committed by GitHub
commit 6dce33e247
7 changed files with 139 additions and 117 deletions

View File

@ -3992,7 +3992,7 @@ DEFUN (set_lcommunity_delete,
DEFUN (no_set_lcommunity_delete, DEFUN (no_set_lcommunity_delete,
no_set_lcommunity_delete_cmd, 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 NO_STR
SET_STR SET_STR
"set BGP large community list (for deletion)\n" "set BGP large community list (for deletion)\n"

View File

@ -5573,80 +5573,68 @@ DEFUN (no_neighbor_addpath_tx_bestpath_per_as,
PEER_FLAG_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, DEFUN (address_family_ipv4_safi,
address_family_ipv4_safi_cmd, 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" "Enter Address Family command mode\n"
"Address Family\n" "Address Family\n"
BGP_SAFI_HELP_STR) BGP_SAFI_HELP_STR)
{ {
int idx_safi = 2; int idx_safi = 2;
switch (bgp_vty_safi_from_arg(argv[idx_safi]->arg)) if (argc == (idx_safi + 1))
{ {
case SAFI_MULTICAST: switch (bgp_vty_safi_from_arg(argv[idx_safi]->arg))
vty->node = BGP_IPV4M_NODE; {
break; case SAFI_MULTICAST:
case SAFI_ENCAP: vty->node = BGP_IPV4M_NODE;
vty->node = BGP_ENCAP_NODE; break;
break; case SAFI_ENCAP:
case SAFI_MPLS_VPN: vty->node = BGP_ENCAP_NODE;
vty->node = BGP_VPNV4_NODE; break;
break; case SAFI_MPLS_VPN:
case SAFI_UNICAST: vty->node = BGP_VPNV4_NODE;
default: break;
vty->node = BGP_IPV4_NODE; case SAFI_UNICAST:
break; default:
vty->node = BGP_IPV4_NODE;
break;
}
} }
else
vty->node = BGP_IPV4_NODE;
return CMD_SUCCESS; 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, DEFUN (address_family_ipv6_safi,
address_family_ipv6_safi_cmd, 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" "Enter Address Family command mode\n"
"Address Family\n" "Address Family\n"
BGP_SAFI_HELP_STR) BGP_SAFI_HELP_STR)
{ {
int idx_safi = 2; int idx_safi = 2;
switch (bgp_vty_safi_from_arg(argv[idx_safi]->arg)) if (argc == (idx_safi + 1))
{ {
case SAFI_MULTICAST: switch (bgp_vty_safi_from_arg(argv[idx_safi]->arg))
vty->node = BGP_IPV6M_NODE; {
break; case SAFI_MULTICAST:
case SAFI_ENCAP: vty->node = BGP_IPV6M_NODE;
vty->node = BGP_ENCAPV6_NODE; break;
break; case SAFI_ENCAP:
case SAFI_MPLS_VPN: vty->node = BGP_ENCAPV6_NODE;
vty->node = BGP_VPNV6_NODE; break;
break; case SAFI_MPLS_VPN:
case SAFI_UNICAST: vty->node = BGP_VPNV6_NODE;
default: break;
vty->node = BGP_IPV6_NODE; case SAFI_UNICAST:
break; default:
vty->node = BGP_IPV6_NODE;
break;
}
} }
else
vty->node = BGP_IPV6_NODE;
return CMD_SUCCESS; return CMD_SUCCESS;
} }
@ -10814,9 +10802,7 @@ bgp_vty_init (void)
install_element (BGP_ENCAPV6_NODE, &no_neighbor_allowas_in_cmd); install_element (BGP_ENCAPV6_NODE, &no_neighbor_allowas_in_cmd);
/* address-family commands. */ /* 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_ipv4_safi_cmd);
install_element (BGP_NODE, &address_family_ipv6_cmd);
install_element (BGP_NODE, &address_family_ipv6_safi_cmd); install_element (BGP_NODE, &address_family_ipv6_safi_cmd);
#ifdef KEEP_OLD_VPN_COMMANDS #ifdef KEEP_OLD_VPN_COMMANDS
install_element (BGP_NODE, &address_family_vpnv4_cmd); install_element (BGP_NODE, &address_family_vpnv4_cmd);

View File

@ -3353,6 +3353,7 @@ DEFUN (vnc_vrf_policy_label,
DEFUN (vnc_vrf_policy_no_label, DEFUN (vnc_vrf_policy_no_label,
vnc_vrf_policy_no_label_cmd, vnc_vrf_policy_no_label_cmd,
"no label", "no label",
NO_STR
"Remove VRF default label\n") "Remove VRF default label\n")
{ {
VTY_DECLVAR_CONTEXT_SUB(rfapi_nve_group_cfg, rfg); VTY_DECLVAR_CONTEXT_SUB(rfapi_nve_group_cfg, rfg);
@ -3880,7 +3881,7 @@ DEFUN (vnc_l2_group_lni,
DEFUN (vnc_l2_group_labels, DEFUN (vnc_l2_group_labels,
vnc_l2_group_labels_cmd, vnc_l2_group_labels_cmd,
"labels .LABELLIST", "labels LABELLIST...",
"Specify label values associated with group\n" "Specify label values associated with group\n"
"Space separated list of label values <0-1048575>\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, DEFUN (vnc_l2_group_no_labels,
vnc_l2_group_no_labels_cmd, vnc_l2_group_no_labels_cmd,
"no labels .LABELLIST", "no labels LABELLIST...",
NO_STR NO_STR
"Remove label values associated with L2 group\n" "Remove label values associated with L2 group\n"
"Specify label values associated with L2 group\n" "Specify label values associated with L2 group\n"

View File

@ -5193,7 +5193,7 @@ DEFUN (add_vrf_prefix_rd_label_pref,
"IPv6 prefix\n" "IPv6 prefix\n"
"Override configured VRF Route Distinguisher\n" "Override configured VRF Route Distinguisher\n"
"<as-number>:<number> or <ip-address>:<number>\n" "<as-number>:<number> or <ip-address>:<number>\n"
"Override configured VRF label" "Override configured VRF label\n"
"Label Value <0-1048575>\n" "Label Value <0-1048575>\n"
"Set advertised local preference\n" "Set advertised local preference\n"
"local preference (higher=more preferred)\n") "local preference (higher=more preferred)\n")

View File

@ -2423,8 +2423,11 @@ DEFUN (show_ip_igmp_interface,
"JavaScript Object Notation\n") "JavaScript Object Notation\n")
{ {
u_char uj = use_json(argc, argv); u_char uj = use_json(argc, argv);
if (argv[4]->arg) int idx = 0;
igmp_show_interfaces_single(vty, argv[4]->arg, uj);
if (argv_find(argv, argc, "detail", &idx) ||
argv_find(argv, argc, "WORD", &idx))
igmp_show_interfaces_single(vty, argv[idx]->arg, uj);
else else
igmp_show_interfaces(vty, uj); igmp_show_interfaces(vty, uj);
@ -2564,8 +2567,12 @@ DEFUN (show_ip_pim_interface,
"JavaScript Object Notation\n") "JavaScript Object Notation\n")
{ {
u_char uj = use_json(argc, argv); u_char uj = use_json(argc, argv);
if (argv[4]->arg) int idx = 0;
pim_show_interfaces_single(vty, argv[4]->arg, uj);
if (argv_find(argv, argc, "WORD", &idx) ||
argv_find(argv, argc, "detail", &idx))
pim_show_interfaces_single(vty, argv[idx]->arg, uj);
else else
pim_show_interfaces(vty, uj); pim_show_interfaces(vty, uj);
@ -2614,8 +2621,11 @@ DEFUN (show_ip_pim_neighbor,
"JavaScript Object Notation\n") "JavaScript Object Notation\n")
{ {
u_char uj = use_json(argc, argv); u_char uj = use_json(argc, argv);
if (argv[4]->arg) int idx = 0;
pim_show_neighbors_single(vty, argv[4]->arg, uj);
if (argv_find(argv, argc, "detail", &idx) ||
argv_find(argv, argc, "WORD", &idx))
pim_show_neighbors_single(vty, argv[idx]->arg, uj);
else else
pim_show_neighbors(vty, uj); pim_show_neighbors(vty, uj);
@ -2637,7 +2647,7 @@ DEFUN (show_ip_pim_secondary,
DEFUN (show_ip_pim_state, DEFUN (show_ip_pim_state,
show_ip_pim_state_cmd, 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 SHOW_STR
IP_STR IP_STR
PIM_STR PIM_STR
@ -2649,9 +2659,16 @@ DEFUN (show_ip_pim_state,
const char *src_or_group = NULL; const char *src_or_group = NULL;
const char *group = NULL; const char *group = NULL;
u_char uj = use_json(argc, argv); u_char uj = use_json(argc, argv);
if (uj)
argc--;
src_or_group = argv[4]->arg; if (argc == 5)
group = argv[5]->arg; {
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); pim_show_state(vty, src_or_group, group, uj);
@ -3476,7 +3493,11 @@ DEFUN (ip_pim_rp,
"Group Address range to cover\n") "Group Address range to cover\n")
{ {
int idx_ipv4 = 3; 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, DEFUN (ip_pim_rp_prefix_list,
@ -3530,7 +3551,11 @@ DEFUN (no_ip_pim_rp,
"Group Address range to cover\n") "Group Address range to cover\n")
{ {
int idx_ipv4 = 4; 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, DEFUN (no_ip_pim_rp_prefix_list,
@ -3585,7 +3610,7 @@ DEFUN (ip_ssmpingd,
int idx_ipv4 = 2; int idx_ipv4 = 2;
int result; int result;
struct in_addr source_addr; 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); result = inet_pton(AF_INET, source_str, &source_addr);
if (result <= 0) { if (result <= 0) {
@ -3615,7 +3640,7 @@ DEFUN (no_ip_ssmpingd,
int idx_ipv4 = 3; int idx_ipv4 = 3;
int result; int result;
struct in_addr source_addr; 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); result = inet_pton(AF_INET, source_str, &source_addr);
if (result <= 0) { if (result <= 0) {
@ -3937,7 +3962,7 @@ DEFUN (interface_ip_igmp_query_interval,
return CMD_WARNING; return CMD_WARNING;
} }
query_interval = atoi(argv[4]->arg); query_interval = atoi(argv[3]->arg);
query_interval_dsec = 10 * query_interval; query_interval_dsec = 10 * query_interval;
/* /*
@ -4006,7 +4031,7 @@ DEFUN (interface_no_ip_igmp_query_interval,
DEFUN (interface_ip_igmp_version, DEFUN (interface_ip_igmp_version,
interface_ip_igmp_version_cmd, interface_ip_igmp_version_cmd,
"ip igmp version <2-3>", "ip igmp version (2-3)",
IP_STR IP_STR
IFACE_IGMP_STR IFACE_IGMP_STR
"IGMP version\n" "IGMP version\n"
@ -4034,7 +4059,7 @@ DEFUN (interface_ip_igmp_version,
DEFUN (interface_no_ip_igmp_version, DEFUN (interface_no_ip_igmp_version,
interface_no_ip_igmp_version_cmd, interface_no_ip_igmp_version_cmd,
"no ip igmp version <2-3>", "no ip igmp version (2-3)",
NO_STR NO_STR
IP_STR IP_STR
IFACE_IGMP_STR IFACE_IGMP_STR
@ -4079,7 +4104,7 @@ DEFUN (interface_ip_igmp_query_max_response_time,
return CMD_WARNING; 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) { if (query_max_response_time >= pim_ifp->igmp_default_query_interval * 10) {
vty_out(vty, vty_out(vty,
@ -4096,7 +4121,7 @@ DEFUN (interface_ip_igmp_query_max_response_time,
DEFUN (interface_no_ip_igmp_query_max_response_time, DEFUN (interface_no_ip_igmp_query_max_response_time,
interface_no_ip_igmp_query_max_response_time_cmd, 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 NO_STR
IP_STR IP_STR
IFACE_IGMP_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); 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); pim_ifp->pim_default_holdtime = strtol(argv[idx_hold]->arg, NULL, 10);
return CMD_SUCCESS; return CMD_SUCCESS;
@ -5451,7 +5476,7 @@ DEFUN (no_ip_msdp_mesh_group_source,
"mesh group source\n" "mesh group source\n"
"mesh group local address\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); return ip_no_msdp_mesh_group_cmd_worker(vty, argv[6]->arg);
else else
return ip_no_msdp_mesh_group_source_cmd_worker(vty, argv[4]->arg); 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") "JavaScript Object Notation\n")
{ {
u_char uj = use_json(argc, argv); 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); ip_msdp_show_peers_detail(vty, argv[4]->arg, uj);
else else
ip_msdp_show_peers(vty, uj); ip_msdp_show_peers(vty, uj);
@ -5948,9 +5976,12 @@ DEFUN (show_ip_msdp_sa_sg,
"JavaScript Object Notation\n") "JavaScript Object Notation\n")
{ {
u_char uj = use_json(argc, argv); 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); 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); ip_msdp_show_sa_addr(vty, argv[4]->arg, uj);
else else
ip_msdp_show_sa(vty, uj); ip_msdp_show_sa(vty, uj);

View File

@ -54,18 +54,14 @@ $ignore{'"router bgp [(1-4294967295) [<view|vrf> WORD]]"'} = "ignore";
$ignore{'"router isis WORD"'} = "ignore"; $ignore{'"router isis WORD"'} = "ignore";
$ignore{'"router zebra"'} = "ignore"; $ignore{'"router zebra"'} = "ignore";
$ignore{'"address-family ipv4"'} = "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"'} = "ignore";
$ignore{'"address-family ipv6 <unicast|multicast>"'} = "ignore"; $ignore{'"address-family ipv6 [<unicast|multicast|vpn|encap>]"'} = "ignore";
$ignore{'"address-family ipv4 vpn"'} = "ignore";
$ignore{'"address-family vpnv4"'} = "ignore"; $ignore{'"address-family vpnv4"'} = "ignore";
$ignore{'"address-family vpnv4 unicast"'} = "ignore"; $ignore{'"address-family vpnv4 unicast"'} = "ignore";
$ignore{'"address-family ipv4 vrf NAME"'} = "ignore"; $ignore{'"address-family ipv4 vrf NAME"'} = "ignore";
$ignore{'"address-family <encap|encapv4>"'} = "ignore"; $ignore{'"address-family <encap|encapv4>"'} = "ignore";
$ignore{'"address-family encapv6"'} = "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"'} = "ignore";
$ignore{'"address-family vpnv6 unicast"'} = "ignore"; $ignore{'"address-family vpnv6 unicast"'} = "ignore";
$ignore{'"exit-address-family"'} = "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 vpnv6 [unicast]"'} = "ignore";
$ignore{'"address-family vpnv4 [unicast]"'} = "ignore"; $ignore{'"address-family vpnv4 [unicast]"'} = "ignore";
$ignore{'"logical-router (1-65535) ns NAME"'} = "ignore"; $ignore{'"logical-router (1-65535) ns NAME"'} = "ignore";
$ignore{'"vrf-policy NAME"' } = "ignore";
$ignore{'"exit-vrf-policy"' } = "ignore";
my $cli_stomp = 0; my $cli_stomp = 0;

View File

@ -1149,48 +1149,56 @@ DEFUNSH (VTYSH_BGPD,
DEFUNSH (VTYSH_BGPD, DEFUNSH (VTYSH_BGPD,
address_family_ipv4_unicast, address_family_ipv4_unicast,
address_family_ipv4_unicast_cmd, address_family_ipv4_unicast_cmd,
"address-family ipv4 unicast", "address-family ipv4 [<unicast|multicast|vpn|encap>]",
"Enter Address Family command mode\n" "Enter Address Family command mode\n"
"Address Family\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; int idx = 0;
return CMD_SUCCESS;
} 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; return CMD_SUCCESS;
} }
DEFUNSH (VTYSH_BGPD, DEFUNSH (VTYSH_BGPD,
address_family_ipv6, address_family_ipv6,
address_family_ipv6_cmd, address_family_ipv6_cmd,
"address-family ipv6 [unicast]", "address-family ipv6 [<unicast|multicast|vpn|encap>]",
"Enter Address Family command mode\n" "Enter Address Family command mode\n"
"Address Family\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; int idx = 0;
return CMD_SUCCESS;
} 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; return CMD_SUCCESS;
} }
@ -3282,9 +3290,7 @@ vtysh_init_vty (void)
install_element (BGP_NODE, &vnc_l2_group_cmd); install_element (BGP_NODE, &vnc_l2_group_cmd);
#endif #endif
install_element (BGP_NODE, &address_family_ipv4_unicast_cmd); 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_cmd);
install_element (BGP_NODE, &address_family_ipv6_multicast_cmd);
install_element (BGP_VPNV4_NODE, &exit_address_family_cmd); install_element (BGP_VPNV4_NODE, &exit_address_family_cmd);
install_element (BGP_VPNV6_NODE, &exit_address_family_cmd); install_element (BGP_VPNV6_NODE, &exit_address_family_cmd);
install_element (BGP_ENCAP_NODE, &exit_address_family_cmd); install_element (BGP_ENCAP_NODE, &exit_address_family_cmd);