mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-05-28 12:10:24 +00:00
zebra: Use boolean for certain VxLAN-EVPN flags
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
This commit is contained in:
parent
fe697c6be5
commit
a37f4598d7
@ -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);
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user