]> git.puffer.fish Git - mirror/frr.git/commitdiff
zebra: Use boolean for certain VxLAN-EVPN flags
authorvivek <vivek@cumulusnetworks.com>
Mon, 10 Sep 2018 17:13:20 +0000 (10:13 -0700)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Tue, 18 Sep 2018 14:41:53 +0000 (10:41 -0400)
Use boolean variables instead of unsigned int for certain VxLAN-EVPN
flags which are really used as boolean.

Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
Reviewed-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
Reviewed-by: Chirag Shah <chirag@cumulusnetworks.com>
Ticket: CM-22288
Reviewed By: CCR-7832
Testing Done:
Along with a subsequent, related commit

zebra/rt.h
zebra/rt_netlink.c
zebra/rt_socket.c
zebra/zebra_vxlan.c
zebra/zebra_vxlan.h

index 244b377f865e0bfef7976e7aeaa2496113c357ca..95b48a9a5387bc0809f3eb8eebe90bd34e5e392b 100644 (file)
@@ -116,7 +116,7 @@ extern int kernel_del_vtep(vni_t vni, struct interface *ifp,
                           struct in_addr *vtep_ip);
 extern int kernel_add_mac(struct interface *ifp, vlanid_t vid,
                          struct ethaddr *mac, struct in_addr vtep_ip,
-                         uint8_t sticky);
+                         bool sticky);
 extern int kernel_del_mac(struct interface *ifp, vlanid_t vid,
                          struct ethaddr *mac, struct in_addr vtep_ip);
 
index 2709dc824e2738fc23d5ad24ea0cba76babcb924..9e02193dfd53cba99327b3d00718c5a0739fab83 100644 (file)
@@ -1959,7 +1959,7 @@ static int netlink_macfdb_change(struct nlmsghdr *h, int len, ns_id_t ns_id)
        char buf[ETHER_ADDR_STRLEN];
        char vid_buf[20];
        char dst_buf[30];
-       uint8_t sticky = 0;
+       bool sticky;
 
        ndm = NLMSG_DATA(h);
 
@@ -2030,7 +2030,7 @@ static int netlink_macfdb_change(struct nlmsghdr *h, int len, ns_id_t ns_id)
                sprintf(dst_buf, " dst %s", inet_ntoa(vtep_ip.u.prefix4));
        }
 
-       sticky = (ndm->ndm_state & NUD_NOARP) ? 1 : 0;
+       sticky = !!(ndm->ndm_state & NUD_NOARP);
 
        if (IS_ZEBRA_DEBUG_KERNEL)
                zlog_debug("Rx %s family %s IF %s(%u)%s %sMAC %s%s",
@@ -2178,7 +2178,7 @@ int netlink_macfdb_read_for_bridge(struct zebra_ns *zns, struct interface *ifp,
 
 static int netlink_macfdb_update(struct interface *ifp, vlanid_t vid,
                                 struct ethaddr *mac, struct in_addr vtep_ip,
-                                int cmd, uint8_t sticky)
+                                int cmd, bool sticky)
 {
        struct zebra_ns *zns;
        struct {
@@ -2264,8 +2264,8 @@ static int netlink_ipneigh_change(struct nlmsghdr *h, int len, ns_id_t ns_id)
        char buf[ETHER_ADDR_STRLEN];
        char buf2[INET6_ADDRSTRLEN];
        int mac_present = 0;
-       uint8_t ext_learned;
-       uint8_t router_flag;
+       bool is_ext;
+       bool is_router;
 
        ndm = NLMSG_DATA(h);
 
@@ -2355,8 +2355,8 @@ static int netlink_ipneigh_change(struct nlmsghdr *h, int len, ns_id_t ns_id)
                        memcpy(&mac, RTA_DATA(tb[NDA_LLADDR]), ETH_ALEN);
                }
 
-               ext_learned = (ndm->ndm_flags & NTF_EXT_LEARNED) ? 1 : 0;
-               router_flag = (ndm->ndm_flags & NTF_ROUTER) ? 1 : 0;
+               is_ext = !!(ndm->ndm_flags & NTF_EXT_LEARNED);
+               is_router = !!(ndm->ndm_flags & NTF_ROUTER);
 
                if (IS_ZEBRA_DEBUG_KERNEL)
                        zlog_debug(
@@ -2379,7 +2379,7 @@ static int netlink_ipneigh_change(struct nlmsghdr *h, int len, ns_id_t ns_id)
                if (ndm->ndm_state & NUD_VALID)
                        return zebra_vxlan_handle_kernel_neigh_update(
                                ifp, link_if, &ip, &mac, ndm->ndm_state,
-                               ext_learned, router_flag);
+                               is_ext, is_router);
 
                return zebra_vxlan_handle_kernel_neigh_del(ifp, link_if, &ip);
        }
@@ -2561,7 +2561,7 @@ static int netlink_neigh_update2(struct interface *ifp, struct ipaddr *ip,
 }
 
 int kernel_add_mac(struct interface *ifp, vlanid_t vid, struct ethaddr *mac,
-                  struct in_addr vtep_ip, uint8_t sticky)
+                  struct in_addr vtep_ip, bool sticky)
 {
        return netlink_macfdb_update(ifp, vid, mac, vtep_ip, RTM_NEWNEIGH,
                                     sticky);
index 2a93992ebb731df1984c241d1caaf1dd7ef2c8e2..e733b4b26e6b92fa58152e0f654232aa640ee231 100644 (file)
@@ -453,7 +453,7 @@ int kernel_del_vtep(vni_t vni, struct interface *ifp, struct in_addr *vtep_ip)
 }
 
 int kernel_add_mac(struct interface *ifp, vlanid_t vid, struct ethaddr *mac,
-                  struct in_addr vtep_ip, uint8_t sticky)
+                  struct in_addr vtep_ip, bool sticky)
 {
        return 0;
 }
index b37665aa4ad37cd9cbcb3abdbf0ada6dc65f0dec..c6136dfa3ad887f540308cbdb35718052955f2af 100644 (file)
@@ -1963,7 +1963,7 @@ static int zvni_local_neigh_update(zebra_vni_t *zvni,
                                   struct interface *ifp,
                                   struct ipaddr *ip,
                                   struct ethaddr *macaddr,
-                                  uint8_t router_flag)
+                                  bool is_router)
 {
        char buf[ETHER_ADDR_STRLEN];
        char buf2[INET6_ADDRSTRLEN];
@@ -2029,7 +2029,7 @@ static int zvni_local_neigh_update(zebra_vni_t *zvni,
        } else {
                if (CHECK_FLAG(n->flags, ZEBRA_NEIGH_LOCAL)) {
                        /* If there is no MAC change, BGP isn't interested. */
-                       if (router_flag !=
+                       if (is_router !=
                            (CHECK_FLAG(n->flags, ZEBRA_NEIGH_ROUTER_FLAG)
                                        ? 1 : 0))
                                check_rbit = true;
@@ -2121,7 +2121,7 @@ static int zvni_local_neigh_update(zebra_vni_t *zvni,
        }
 
        /*Mark Router flag (R-bit) */
-       if (router_flag)
+       if (is_router)
                SET_FLAG(n->flags, ZEBRA_NEIGH_ROUTER_FLAG);
        else
                UNSET_FLAG(n->flags, ZEBRA_NEIGH_ROUTER_FLAG);
@@ -2593,7 +2593,7 @@ static int zvni_mac_install(zebra_vni_t *zvni, zebra_mac_t *mac)
 {
        struct zebra_if *zif;
        struct zebra_l2info_vxlan *vxl;
-       uint8_t sticky;
+       bool sticky;
 
        if (!(mac->flags & ZEBRA_MAC_REMOTE))
                return 0;
@@ -2603,8 +2603,8 @@ static int zvni_mac_install(zebra_vni_t *zvni, zebra_mac_t *mac)
                return -1;
        vxl = &zif->l2info.vxl;
 
-       sticky = CHECK_FLAG(mac->flags,
-                        (ZEBRA_MAC_STICKY | ZEBRA_MAC_REMOTE_DEF_GW)) ? 1 : 0;
+       sticky = !!CHECK_FLAG(mac->flags,
+                        (ZEBRA_MAC_STICKY | ZEBRA_MAC_REMOTE_DEF_GW));
 
        return kernel_add_mac(zvni->vxlan_if, vxl->access_vlan, &mac->macaddr,
                              mac->fwd_info.r_vtep_ip, sticky);
@@ -4058,9 +4058,9 @@ static void process_remote_macip_add(vni_t vni,
        struct interface *ifp = NULL;
        struct zebra_if *zif = NULL;
        uint32_t tmp_seq;
-       uint8_t sticky = 0;
-       uint8_t remote_gw = 0;
-       uint8_t router_flag = 0;
+       bool sticky;
+       bool remote_gw;
+       bool is_router;
 
        /* Locate VNI hash entry - expected to exist. */
        zvni = zvni_lookup(vni);
@@ -4098,9 +4098,9 @@ static void process_remote_macip_add(vni_t vni,
                zvni_vtep_install(zvni, &vtep_ip);
        }
 
-       sticky = CHECK_FLAG(flags, ZEBRA_MACIP_TYPE_STICKY);
-       remote_gw = CHECK_FLAG(flags, ZEBRA_MACIP_TYPE_GW);
-       router_flag = CHECK_FLAG(flags, ZEBRA_MACIP_TYPE_ROUTER_FLAG);
+       sticky = !!CHECK_FLAG(flags, ZEBRA_MACIP_TYPE_STICKY);
+       remote_gw = !!CHECK_FLAG(flags, ZEBRA_MACIP_TYPE_GW);
+       is_router = !!CHECK_FLAG(flags, ZEBRA_MACIP_TYPE_ROUTER_FLAG);
 
        mac = zvni_mac_lookup(zvni, macaddr);
 
@@ -4124,9 +4124,8 @@ static void process_remote_macip_add(vni_t vni,
         */
        if (!mac
            || !CHECK_FLAG(mac->flags, ZEBRA_MAC_REMOTE)
-           || (CHECK_FLAG(mac->flags, ZEBRA_MAC_STICKY) ? 1 : 0) != sticky
-           || (CHECK_FLAG(mac->flags, ZEBRA_MAC_REMOTE_DEF_GW) ? 1 : 0)
-               != remote_gw
+           || sticky != !!CHECK_FLAG(mac->flags, ZEBRA_MAC_STICKY)
+           || remote_gw != !!CHECK_FLAG(mac->flags, ZEBRA_MAC_REMOTE_DEF_GW)
            || !IPV4_ADDR_SAME(&mac->fwd_info.r_vtep_ip, &vtep_ip)
            || seq != mac->rem_seq)
                update_mac = 1;
@@ -4217,10 +4216,9 @@ static void process_remote_macip_add(vni_t vni,
        n = zvni_neigh_lookup(zvni, ipaddr);
        if (!n
            || !CHECK_FLAG(n->flags, ZEBRA_NEIGH_REMOTE)
+           || is_router != !!CHECK_FLAG(n->flags, ZEBRA_NEIGH_ROUTER_FLAG)
            || (memcmp(&n->emac, macaddr, sizeof(*macaddr)) != 0)
            || !IPV4_ADDR_SAME(&n->r_vtep_ip, &vtep_ip)
-           || ((CHECK_FLAG(n->flags, ZEBRA_NEIGH_ROUTER_FLAG) ? 1 : 0)
-               != router_flag)
            || seq != n->rem_seq)
                update_neigh = 1;
 
@@ -5406,8 +5404,8 @@ int zebra_vxlan_handle_kernel_neigh_update(struct interface *ifp,
                                           struct ipaddr *ip,
                                           struct ethaddr *macaddr,
                                           uint16_t state,
-                                          uint8_t ext_learned,
-                                          uint8_t router_flag)
+                                          bool is_ext,
+                                          bool is_router)
 {
        char buf[ETHER_ADDR_STRLEN];
        char buf2[INET6_ADDRSTRLEN];
@@ -5433,14 +5431,14 @@ int zebra_vxlan_handle_kernel_neigh_update(struct interface *ifp,
                        "Add/Update neighbor %s MAC %s intf %s(%u) state 0x%x %s %s-> L2-VNI %u",
                        ipaddr2str(ip, buf2, sizeof(buf2)),
                        prefix_mac2str(macaddr, buf, sizeof(buf)), ifp->name,
-                       ifp->ifindex, state, ext_learned ? "ext-learned " : "",
-                       router_flag ? "router " : "",
+                       ifp->ifindex, state, is_ext ? "ext-learned " : "",
+                       is_router ? "router " : "",
                        zvni->vni);
 
        /* Is this about a local neighbor or a remote one? */
-       if (!ext_learned)
+       if (!is_ext)
                return zvni_local_neigh_update(zvni, ifp, ip, macaddr,
-                                              router_flag);
+                                              is_router);
 
        return zvni_remote_neigh_update(zvni, ifp, ip, macaddr, state);
 }
@@ -5753,7 +5751,7 @@ int zebra_vxlan_local_mac_del(struct interface *ifp, struct interface *br_if,
 int zebra_vxlan_local_mac_add_update(struct interface *ifp,
                                     struct interface *br_if,
                                     struct ethaddr *macaddr, vlanid_t vid,
-                                    uint8_t sticky)
+                                    bool sticky)
 {
        zebra_vni_t *zvni;
        zebra_mac_t *mac;
index 5097757b1dd82f93067474a5a75e9af825a95f6c..a6c668785fb71baabc4dffe392c4f1828e343288 100644 (file)
@@ -122,15 +122,15 @@ extern int zebra_vxlan_svi_down(struct interface *ifp,
                                struct interface *link_if);
 extern int zebra_vxlan_handle_kernel_neigh_update(
        struct interface *ifp, struct interface *link_if, struct ipaddr *ip,
-       struct ethaddr *macaddr, uint16_t state, uint8_t ext_learned,
-       uint8_t router_flag);
+       struct ethaddr *macaddr, uint16_t state, bool is_ext,
+       bool is_router);
 extern int zebra_vxlan_handle_kernel_neigh_del(struct interface *ifp,
                                       struct interface *link_if,
                                       struct ipaddr *ip);
 extern int zebra_vxlan_local_mac_add_update(struct interface *ifp,
                                            struct interface *br_if,
                                            struct ethaddr *mac, vlanid_t vid,
-                                           uint8_t sticky);
+                                           bool sticky);
 extern int zebra_vxlan_local_mac_del(struct interface *ifp,
                                     struct interface *br_if,
                                     struct ethaddr *mac, vlanid_t vid);