]> git.puffer.fish Git - mirror/frr.git/commitdiff
lib: remove the vrf_is_mapped_on_netns() function 3633/head
authorRenato Westphal <renato@opensourcerouting.org>
Sat, 19 Jan 2019 19:19:13 +0000 (17:19 -0200)
committerRenato Westphal <renato@opensourcerouting.org>
Sun, 20 Jan 2019 00:49:11 +0000 (22:49 -0200)
Now that all daemons receive the VRF backend from zebra, we can get
rid of vrf_is_mapped_on_netns() in favor of using the more convenient
vrf_is_backend_netns() function, which doesn't require any argument.

This commit also fixes the following problem:
  debian(config)# ip route 50.0.0.0/8 blackhole vrf FAKE table 2
  % table param only available when running on netns-based vrfs

Even when zebra was started with the --vrfwnetns, the error
above would be displayed since the VRF FAKE didn't exist, which
would make vrf_is_mapped_on_netns() return 0 incorrectly. Using
vrf_is_backend_netns() this problem doesn't happen anymore.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
bgpd/bgp_network.c
lib/vrf.c
lib/vrf.h
staticd/static_vty.c

index e15b8f4ec38c356d7a418872e23fdc0d3d81bf47..4153da5a644144f5ba90f44c399ac03b83c57aff 100644 (file)
@@ -670,8 +670,7 @@ static int bgp_listener(int sock, struct sockaddr *sa, socklen_t salen,
        listener->fd = sock;
 
        /* this socket needs a change of ns. record bgp back pointer */
-       if (bgp->vrf_id != VRF_DEFAULT && vrf_is_mapped_on_netns(
-                                               vrf_lookup_by_id(bgp->vrf_id)))
+       if (bgp->vrf_id != VRF_DEFAULT && vrf_is_backend_netns())
                listener->bgp = bgp;
 
        memcpy(&listener->su, sa, salen);
index 0c82f6a3cd451a4dda81f4605f62ef544ef47d7a..f9f14822cba6009d2a656048f3978e5db463ecd7 100644 (file)
--- a/lib/vrf.c
+++ b/lib/vrf.c
@@ -716,13 +716,6 @@ int vrf_netns_handler_create(struct vty *vty, struct vrf *vrf, char *pathname,
        return CMD_SUCCESS;
 }
 
-int vrf_is_mapped_on_netns(struct vrf *vrf)
-{
-       if (!vrf || vrf->data.l.netns_name[0] == '\0')
-               return 0;
-       return 1;
-}
-
 /* vrf CLI commands */
 DEFUN_NOSH(vrf_exit,
            vrf_exit_cmd,
@@ -953,7 +946,7 @@ int vrf_bind(vrf_id_t vrf_id, int fd, char *name)
 
        if (fd < 0 || name == NULL)
                return fd;
-       if (vrf_is_mapped_on_netns(vrf_lookup_by_id(vrf_id)))
+       if (vrf_is_backend_netns())
                return fd;
 #ifdef SO_BINDTODEVICE
        ret = setsockopt(fd, SOL_SOCKET, SO_BINDTODEVICE, name, strlen(name)+1);
index fe4fc77250cc7ac6bd027fe3be51afe421482a69..e80796f480963324f2a03e4f73d43e6d43306695 100644 (file)
--- a/lib/vrf.h
+++ b/lib/vrf.h
@@ -240,9 +240,6 @@ extern void vrf_set_default_name(const char *default_name, bool force);
 extern const char *vrf_get_default_name(void);
 #define VRF_DEFAULT_NAME    vrf_get_default_name()
 
-/* VRF is mapped on netns or not ? */
-int vrf_is_mapped_on_netns(struct vrf *vrf);
-
 /* VRF switch from NETNS */
 extern int vrf_switch_to_netns(vrf_id_t vrf_id);
 extern int vrf_switchback_to_initial(void);
index ae0026cc97bd0e53e1309e19d6157d721c2aed8d..f09c304359a76adf53ae0e3d2536eeb8f055bc2b 100644 (file)
@@ -775,7 +775,7 @@ DEFPY(ip_route_blackhole,
       "Table to configure\n"
       "The table number to configure\n")
 {
-       if (table_str && vrf && !vrf_is_mapped_on_netns(vrf_lookup_by_name(vrf))) {
+       if (table_str && vrf && !vrf_is_backend_netns()) {
                vty_out(vty,
                        "%% table param only available when running on netns-based vrfs\n");
                return CMD_WARNING_CONFIG_FAILED;
@@ -814,7 +814,7 @@ DEFPY(ip_route_blackhole_vrf,
        VTY_DECLVAR_CONTEXT(vrf, vrf);
        struct static_vrf *svrf = vrf->info;
 
-       if (table_str && !vrf_is_mapped_on_netns(vrf)) {
+       if (table_str && !vrf_is_backend_netns()) {
                vty_out(vty,
                        "%% table param only available when running on netns-based vrfs\n");
                return CMD_WARNING_CONFIG_FAILED;
@@ -880,7 +880,7 @@ DEFPY(ip_route_address_interface,
                return CMD_WARNING_CONFIG_FAILED;
        }
 
-       if (table_str && vrf && !vrf_is_mapped_on_netns(vrf_lookup_by_name(vrf))) {
+       if (table_str && vrf && !vrf_is_backend_netns()) {
                vty_out(vty,
                        "%% table param only available when running on netns-based vrfs\n");
                return CMD_WARNING_CONFIG_FAILED;
@@ -938,7 +938,7 @@ DEFPY(ip_route_address_interface_vrf,
        struct static_vrf *svrf = vrf->info;
        struct static_vrf *nh_svrf;
 
-       if (table_str && !vrf_is_mapped_on_netns(vrf)) {
+       if (table_str && !vrf_is_backend_netns()) {
                vty_out(vty,
                        "%% table param only available when running on netns-based vrfs\n");
                return CMD_WARNING_CONFIG_FAILED;
@@ -999,7 +999,7 @@ DEFPY(ip_route,
        struct static_vrf *nh_svrf;
        const char *flag = NULL;
 
-       if (table_str && vrf && !vrf_is_mapped_on_netns(vrf_lookup_by_name(vrf))) {
+       if (table_str && vrf && !vrf_is_backend_netns()) {
                vty_out(vty,
                        "%% table param only available when running on netns-based vrfs\n");
                return CMD_WARNING_CONFIG_FAILED;
@@ -1065,7 +1065,7 @@ DEFPY(ip_route_vrf,
        struct static_vrf *nh_svrf;
        const char *flag = NULL;
 
-       if (table_str && !vrf_is_mapped_on_netns(vrf)) {
+       if (table_str && !vrf_is_backend_netns()) {
                vty_out(vty,
                        "%% table param only available when running on netns-based vrfs\n");
                return CMD_WARNING_CONFIG_FAILED;
@@ -1119,7 +1119,7 @@ DEFPY(ipv6_route_blackhole,
       "Table to configure\n"
       "The table number to configure\n")
 {
-       if (table_str && vrf && !vrf_is_mapped_on_netns(vrf_lookup_by_name(vrf))) {
+       if (table_str && vrf && !vrf_is_backend_netns()) {
                vty_out(vty,
                        "%% table param only available when running on netns-based vrfs\n");
                return CMD_WARNING_CONFIG_FAILED;
@@ -1158,7 +1158,7 @@ DEFPY(ipv6_route_blackhole_vrf,
        VTY_DECLVAR_CONTEXT(vrf, vrf);
        struct static_vrf *svrf = vrf->info;
 
-       if (table_str && !vrf_is_mapped_on_netns(vrf)) {
+       if (table_str && !vrf_is_backend_netns()) {
                vty_out(vty,
                        "%% table param only available when running on netns-based vrfs\n");
                return CMD_WARNING_CONFIG_FAILED;
@@ -1213,7 +1213,7 @@ DEFPY(ipv6_route_address_interface,
        struct static_vrf *nh_svrf;
        const char *flag = NULL;
 
-       if (table_str && vrf && !vrf_is_mapped_on_netns(vrf_lookup_by_name(vrf))) {
+       if (table_str && vrf && !vrf_is_backend_netns()) {
                vty_out(vty,
                        "%% table param only available when running on netns-based vrfs\n");
                return CMD_WARNING_CONFIG_FAILED;
@@ -1282,7 +1282,7 @@ DEFPY(ipv6_route_address_interface_vrf,
        struct static_vrf *nh_svrf;
        const char *flag = NULL;
 
-       if (table_str && !vrf_is_mapped_on_netns(vrf)) {
+       if (table_str && !vrf_is_backend_netns()) {
                vty_out(vty,
                        "%% table param only available when running on netns-based vrfs\n");
                return CMD_WARNING_CONFIG_FAILED;
@@ -1343,7 +1343,7 @@ DEFPY(ipv6_route,
        struct static_vrf *nh_svrf;
        const char *flag = NULL;
 
-       if (table_str && vrf && !vrf_is_mapped_on_netns(vrf_lookup_by_name(vrf))) {
+       if (table_str && vrf && !vrf_is_backend_netns()) {
                vty_out(vty,
                        "%% table param only available when running on netns-based vrfs\n");
                return CMD_WARNING_CONFIG_FAILED;
@@ -1409,7 +1409,7 @@ DEFPY(ipv6_route_vrf,
        struct static_vrf *nh_svrf;
        const char *flag = NULL;
 
-       if (table_str && !vrf_is_mapped_on_netns(vrf)) {
+       if (table_str && !vrf_is_backend_netns()) {
                vty_out(vty,
                        "%% table param only available when running on netns-based vrfs\n");
                return CMD_WARNING_CONFIG_FAILED;