]> git.proxmox.com Git - mirror_frr.git/blobdiff - lib/vrf.c
*: move CLI node names to cmd_node->name
[mirror_frr.git] / lib / vrf.c
index c3a94224eef8e5141f02b147f90e8c380bc83acd..0f57c602b10ce421332a3ca4f5912c3d96f0f1c5 100644 (file)
--- a/lib/vrf.c
+++ b/lib/vrf.c
@@ -116,7 +116,7 @@ static void vrf_update_vrf_id(ns_id_t ns_id, void *opaqueptr)
        vrf->vrf_id = vrf_id;
        RB_INSERT(vrf_id_head, &vrfs_by_id, vrf);
        if (old_vrf_id == VRF_UNKNOWN)
-               vrf_enable((struct vrf *)vrf);
+               vrf_enable(vrf);
 }
 
 int vrf_switch_to_netns(vrf_id_t vrf_id)
@@ -324,10 +324,7 @@ const char *vrf_id_to_name(vrf_id_t vrf_id)
        struct vrf *vrf;
 
        vrf = vrf_lookup_by_id(vrf_id);
-       if (vrf)
-               return vrf->name;
-
-       return "n/a";
+       return VRF_LOGNAME(vrf);
 }
 
 vrf_id_t vrf_name_to_id(const char *name)
@@ -493,8 +490,7 @@ void vrf_init(int (*create)(struct vrf *), int (*enable)(struct vrf *),
        /* initialise NS, in case VRF backend if NETNS */
        ns_init();
        if (debug_vrf)
-               zlog_debug("%s: Initializing VRF subsystem",
-                          __PRETTY_FUNCTION__);
+               zlog_debug("%s: Initializing VRF subsystem", __func__);
 
        vrf_master.vrf_new_hook = create;
        vrf_master.vrf_enable_hook = enable;
@@ -535,8 +531,7 @@ void vrf_terminate(void)
        struct vrf *vrf;
 
        if (debug_vrf)
-               zlog_debug("%s: Shutting down vrf subsystem",
-                          __PRETTY_FUNCTION__);
+               zlog_debug("%s: Shutting down vrf subsystem", __func__);
 
        while (!RB_EMPTY(vrf_id_head, &vrfs_by_id)) {
                vrf = RB_ROOT(vrf_id_head, &vrfs_by_id);
@@ -595,10 +590,22 @@ int vrf_get_backend(void)
        return vrf_backend;
 }
 
-void vrf_configure_backend(int vrf_backend_netns)
+int vrf_configure_backend(enum vrf_backend_type backend)
 {
-       vrf_backend = vrf_backend_netns;
+       /* Work around issue in old gcc */
+       switch (backend) {
+       case VRF_BACKEND_UNKNOWN:
+       case VRF_BACKEND_NETNS:
+       case VRF_BACKEND_VRF_LITE:
+               break;
+       default:
+               return -1;
+       }
+
+       vrf_backend = backend;
        vrf_backend_configured = 1;
+
+       return 0;
 }
 
 int vrf_handler_create(struct vty *vty, const char *vrfname,
@@ -751,7 +758,12 @@ DEFUN (no_vrf,
 }
 
 
-static struct cmd_node vrf_node = {VRF_NODE, "%s(config-vrf)# ", 1};
+static struct cmd_node vrf_node = {
+       .name = "vrf",
+       .node = VRF_NODE,
+       .parent_node = CONFIG_NODE,
+       .prompt = "%s(config-vrf)# ",
+};
 
 DEFUN_NOSH (vrf_netns,
        vrf_netns_cmd,
@@ -841,11 +853,17 @@ static int vrf_write_host(struct vty *vty)
        return 1;
 }
 
-static struct cmd_node vrf_debug_node = {VRF_DEBUG_NODE, "", 1};
+static int vrf_write_host(struct vty *vty);
+static struct cmd_node vrf_debug_node = {
+       .name = "vrf debug",
+       .node = VRF_DEBUG_NODE,
+       .prompt = "",
+       .config_write = vrf_write_host,
+};
 
 void vrf_install_commands(void)
 {
-       install_node(&vrf_debug_node, vrf_write_host);
+       install_node(&vrf_debug_node);
 
        install_element(CONFIG_NODE, &vrf_debug_cmd);
        install_element(ENABLE_NODE, &vrf_debug_cmd);
@@ -858,7 +876,8 @@ void vrf_cmd_init(int (*writefunc)(struct vty *vty),
 {
        install_element(CONFIG_NODE, &vrf_cmd);
        install_element(CONFIG_NODE, &no_vrf_cmd);
-       install_node(&vrf_node, writefunc);
+       vrf_node.config_write = writefunc;
+       install_node(&vrf_node);
        install_default(VRF_NODE);
        install_element(VRF_NODE, &vrf_exit_cmd);
        if (vrf_is_backend_netns() && ns_have_netns()) {