]> git.proxmox.com Git - mirror_frr.git/commitdiff
zebra: The mask and sin_mask are a bit redundant for kernel_rtm
authorDonald Sharp <sharpd@cumulusnetworks.com>
Mon, 17 Dec 2018 23:31:09 +0000 (18:31 -0500)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Wed, 19 Dec 2018 13:58:33 +0000 (08:58 -0500)
The test we were using to ensure that a mask was sent in
is a bit redundant, let's just always send it in.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
zebra/rt_socket.c

index 0336d79ee4d0ca6749de80af75c5cdef69ec994c..539370a498c79a30f5e7c7d107162acef4bf203d 100644 (file)
@@ -118,7 +118,6 @@ static int kernel_rtm(int cmd, const struct prefix *p,
                      const struct nexthop_group *ng, uint32_t metric)
 
 {
-       union sockunion *mask = NULL;
        union sockunion sin_dest, sin_mask, sin_gate;
 #ifdef __OpenBSD__
        struct sockaddr_mpls smpls;
@@ -237,32 +236,20 @@ static int kernel_rtm(int cmd, const struct prefix *p,
 
                switch (p->family) {
                case AF_INET:
-                       if (gate && p->prefixlen == 32)
-                               mask = NULL;
-                       else {
-                               masklen2ip(p->prefixlen,
-                                          &sin_mask.sin.sin_addr);
-                               sin_mask.sin.sin_family = AF_INET;
+                       masklen2ip(p->prefixlen, &sin_mask.sin.sin_addr);
+                       sin_mask.sin.sin_family = AF_INET;
 #ifdef HAVE_STRUCT_SOCKADDR_IN_SIN_LEN
-                               sin_mask.sin.sin_len = sin_masklen(
-                                       sin_mask.sin.sin_addr);
+                       sin_mask.sin.sin_len = sin_masklen(
+                               sin_mask.sin.sin_addr);
 #endif /* HAVE_STRUCT_SOCKADDR_IN_SIN_LEN */
-                               mask = &sin_mask;
-                       }
                        break;
                case AF_INET6:
-                       if (gate && p->prefixlen == 128)
-                               mask = NULL;
-                       else {
-                               masklen2ip6(p->prefixlen,
-                                           &sin_mask.sin6.sin6_addr);
-                               sin_mask.sin6.sin6_family = AF_INET6;
+                       masklen2ip6(p->prefixlen, &sin_mask.sin6.sin6_addr);
+                       sin_mask.sin6.sin6_family = AF_INET6;
 #ifdef SIN6_LEN
-                               sin_mask.sin6.sin6_len = sin6_masklen(
-                                       sin_mask.sin6.sin6_addr);
+                       sin_mask.sin6.sin6_len = sin6_masklen(
+                               sin_mask.sin6.sin6_addr);
 #endif /* SIN6_LEN */
-                               mask = &sin_mask;
-                       }
                        break;
                }
 
@@ -272,7 +259,7 @@ static int kernel_rtm(int cmd, const struct prefix *p,
                        continue;
                smplsp = (union sockunion *)&smpls;
 #endif
-               error = rtm_write(cmd, &sin_dest, mask,
+               error = rtm_write(cmd, &sin_dest, &sin_mask,
                                  gate ? &sin_gate : NULL, smplsp,
                                  ifindex, bh_type, metric);