mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-06 16:20:08 +00:00
lib, vtysh: fix inconsistent VRF commands in vtysh
* Only zebra and pimd call vrf_cmd_init(), so these are the only daemons that should receive VRF commands from vtysh; * "netns NAME" and "no netns NAME" are available only in zebra, write custom DEFSHs in vtysh to make it aware of that; * Remove the "no vrf NAME" definition from vtysh.c and expose the original command to vtysh by converting the DEFUN_NOSH to a simple DEFUN. This command doesn't change the vty node so there's no need to special case it. Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
This commit is contained in:
parent
1e9d118345
commit
34c4627457
16
lib/vrf.c
16
lib/vrf.c
@ -711,12 +711,12 @@ DEFUN_NOSH (vrf,
|
||||
return vrf_handler_create(vty, vrfname, NULL);
|
||||
}
|
||||
|
||||
DEFUN_NOSH (no_vrf,
|
||||
no_vrf_cmd,
|
||||
"no vrf NAME",
|
||||
NO_STR
|
||||
"Delete a pseudo VRF's configuration\n"
|
||||
"VRF's name\n")
|
||||
DEFUN (no_vrf,
|
||||
no_vrf_cmd,
|
||||
"no vrf NAME",
|
||||
NO_STR
|
||||
"Delete a pseudo VRF's configuration\n"
|
||||
"VRF's name\n")
|
||||
{
|
||||
const char *vrfname = argv[2]->arg;
|
||||
|
||||
@ -744,7 +744,7 @@ DEFUN_NOSH (no_vrf,
|
||||
|
||||
struct cmd_node vrf_node = {VRF_NODE, "%s(config-vrf)# ", 1};
|
||||
|
||||
DEFUN (vrf_netns,
|
||||
DEFUN_NOSH (vrf_netns,
|
||||
vrf_netns_cmd,
|
||||
"netns NAME",
|
||||
"Attach VRF to a Namespace\n"
|
||||
@ -771,7 +771,7 @@ DEFUN (vrf_netns,
|
||||
return ret;
|
||||
}
|
||||
|
||||
DEFUN (no_vrf_netns,
|
||||
DEFUN_NOSH (no_vrf_netns,
|
||||
no_vrf_netns_cmd,
|
||||
"no netns [NAME]",
|
||||
NO_STR
|
||||
|
@ -85,7 +85,7 @@ foreach (@ARGV) {
|
||||
$protocol = "VTYSH_RMAP";
|
||||
}
|
||||
elsif ($file =~ /lib\/vrf\.c$/) {
|
||||
$protocol = "VTYSH_ALL";
|
||||
$protocol = "VTYSH_VRF";
|
||||
}
|
||||
elsif ($file =~ /lib\/logicalrouter\.c$/) {
|
||||
$protocol = "VTYSH_ALL";
|
||||
|
@ -2070,9 +2070,16 @@ DEFUNSH(VTYSH_VRF, vtysh_vrf, vtysh_vrf_cmd, "vrf NAME",
|
||||
return CMD_SUCCESS;
|
||||
}
|
||||
|
||||
DEFSH(VTYSH_ZEBRA, vtysh_no_vrf_cmd, "no vrf NAME", NO_STR
|
||||
"Delete a pseudo vrf's configuration\n"
|
||||
"VRF's name\n")
|
||||
DEFSH(VTYSH_ZEBRA, vtysh_vrf_netns_cmd,
|
||||
"netns NAME",
|
||||
"Attach VRF to a Namespace\n"
|
||||
"The file name in " NS_RUN_DIR ", or a full pathname\n")
|
||||
|
||||
DEFSH(VTYSH_ZEBRA, vtysh_no_vrf_netns_cmd,
|
||||
"no netns [NAME]",
|
||||
NO_STR
|
||||
"Detach VRF from a Namespace\n"
|
||||
"The file name in " NS_RUN_DIR ", or a full pathname\n")
|
||||
|
||||
DEFUNSH(VTYSH_NS, vtysh_exit_logicalrouter,
|
||||
vtysh_exit_logicalrouter_cmd, "exit",
|
||||
@ -3689,10 +3696,11 @@ void vtysh_init_vty(void)
|
||||
install_element(ENABLE_NODE, &vtysh_show_running_config_cmd);
|
||||
install_element(ENABLE_NODE, &vtysh_copy_running_config_cmd);
|
||||
|
||||
install_element(CONFIG_NODE, &vtysh_vrf_cmd);
|
||||
install_element(VRF_NODE, &vtysh_vrf_netns_cmd);
|
||||
install_element(VRF_NODE, &vtysh_no_vrf_netns_cmd);
|
||||
install_element(VRF_NODE, &exit_vrf_config_cmd);
|
||||
|
||||
install_element(CONFIG_NODE, &vtysh_vrf_cmd);
|
||||
install_element(CONFIG_NODE, &vtysh_no_vrf_cmd);
|
||||
install_element(CONFIG_NODE, &vtysh_no_nexthop_group_cmd);
|
||||
|
||||
/* "write terminal" command. */
|
||||
|
Loading…
Reference in New Issue
Block a user