summaryrefslogtreecommitdiff
path: root/lib/vrf.c
diff options
context:
space:
mode:
authorRafael Zalamena <rzalamena@users.noreply.github.com>2022-01-17 08:45:12 -0300
committerGitHub <noreply@github.com>2022-01-17 08:45:12 -0300
commit4e4c027803cb148712b839a7335e26db9a3c8c60 (patch)
tree9f060f49484cf2d9f3b965dca9391f7b193f7b2d /lib/vrf.c
parent1f325f84383bfd1fce5fd5a14db66d2b931e27c6 (diff)
parentac2cb9bf9467ada08014b045c52512c625d6c55b (diff)
Merge pull request #10183 from idryzhov/rework-vrf-rename
*: rework renaming the default VRF
Diffstat (limited to 'lib/vrf.c')
-rw-r--r--lib/vrf.c33
1 files changed, 2 insertions, 31 deletions
diff --git a/lib/vrf.c b/lib/vrf.c
index a6250b31a8..3a859895e8 100644
--- a/lib/vrf.c
+++ b/lib/vrf.c
@@ -69,7 +69,6 @@ static struct vrf_master {
int (*vrf_delete_hook)(struct vrf *);
int (*vrf_enable_hook)(struct vrf *);
int (*vrf_disable_hook)(struct vrf *);
- int (*vrf_update_name_hook)(struct vrf *vrf);
} vrf_master = {
0,
};
@@ -176,8 +175,6 @@ struct vrf *vrf_get(vrf_id_t vrf_id, const char *name)
name, NS_NAMSIZ);
strlcpy(vrf->name, name, sizeof(vrf->name));
RB_INSERT(vrf_name_head, &vrfs_by_name, vrf);
- if (vrf->vrf_id == VRF_DEFAULT)
- vrf_set_default_name(vrf->name, false);
} else if (name && vrf->name[0] == '\0') {
strlcpy(vrf->name, name, sizeof(vrf->name));
RB_INSERT(vrf_name_head, &vrfs_by_name, vrf);
@@ -487,8 +484,7 @@ static const struct cmd_variable_handler vrf_var_handlers[] = {
/* Initialize VRF module. */
void vrf_init(int (*create)(struct vrf *), int (*enable)(struct vrf *),
- int (*disable)(struct vrf *), int (*destroy)(struct vrf *),
- int ((*update)(struct vrf *)))
+ int (*disable)(struct vrf *), int (*destroy)(struct vrf *))
{
struct vrf *default_vrf;
@@ -501,7 +497,6 @@ void vrf_init(int (*create)(struct vrf *), int (*enable)(struct vrf *),
vrf_master.vrf_enable_hook = enable;
vrf_master.vrf_disable_hook = disable;
vrf_master.vrf_delete_hook = destroy;
- vrf_master.vrf_update_name_hook = update;
/* The default VRF always exists. */
default_vrf = vrf_get(VRF_DEFAULT, VRF_DEFAULT_NAME);
@@ -774,33 +769,9 @@ void vrf_cmd_init(int (*writefunc)(struct vty *vty))
install_element(VRF_NODE, &vrf_exit_cmd);
}
-void vrf_set_default_name(const char *default_name, bool force)
+void vrf_set_default_name(const char *default_name)
{
- struct vrf *def_vrf;
- static bool def_vrf_forced;
-
- def_vrf = vrf_lookup_by_id(VRF_DEFAULT);
- assert(default_name);
- if (def_vrf && !force && def_vrf_forced) {
- zlog_debug("VRF: %s, avoid changing name to %s, previously forced (%u)",
- def_vrf->name, default_name,
- def_vrf->vrf_id);
- return;
- }
- if (strmatch(vrf_default_name, default_name))
- return;
snprintf(vrf_default_name, VRF_NAMSIZ, "%s", default_name);
- if (def_vrf) {
- if (force)
- def_vrf_forced = true;
- RB_REMOVE(vrf_name_head, &vrfs_by_name, def_vrf);
- strlcpy(def_vrf->data.l.netns_name,
- vrf_default_name, NS_NAMSIZ);
- strlcpy(def_vrf->name, vrf_default_name, sizeof(def_vrf->name));
- RB_INSERT(vrf_name_head, &vrfs_by_name, def_vrf);
- if (vrf_master.vrf_update_name_hook)
- (*vrf_master.vrf_update_name_hook)(def_vrf);
- }
}
const char *vrf_get_default_name(void)