From f6371c343a25f9a6a17aff38a3d35d14ca0f6bde Mon Sep 17 00:00:00 2001 From: Donald Sharp Date: Thu, 19 Aug 2021 16:08:53 -0400 Subject: [PATCH] zebra: Convert to `struct zebra_evpn` as per our internal standard We do not use typedef's to talk about structures as per our standard. Fixing. Signed-off-by: Donald Sharp --- zebra/zebra_evpn.c | 137 ++++++++++++++++++------------------ zebra/zebra_evpn.h | 58 +++++++-------- zebra/zebra_evpn_mac.c | 59 ++++++++-------- zebra/zebra_evpn_mac.h | 59 ++++++++-------- zebra/zebra_evpn_mh.c | 47 +++++++------ zebra/zebra_evpn_mh.h | 22 +++--- zebra/zebra_evpn_neigh.c | 52 +++++++------- zebra/zebra_evpn_neigh.h | 47 +++++++------ zebra/zebra_evpn_vxlan.h | 2 +- zebra/zebra_vxlan.c | 117 ++++++++++++++---------------- zebra/zebra_vxlan_private.h | 4 +- 11 files changed, 303 insertions(+), 301 deletions(-) diff --git a/zebra/zebra_evpn.c b/zebra/zebra_evpn.c index 2c9f1dca59..f0d7f69f6e 100644 --- a/zebra/zebra_evpn.c +++ b/zebra/zebra_evpn.c @@ -68,7 +68,7 @@ static const struct message zvtep_flood_str[] = { {0} }; -int advertise_gw_macip_enabled(zebra_evpn_t *zevpn) +int advertise_gw_macip_enabled(struct zebra_evpn *zevpn) { struct zebra_vrf *zvrf; @@ -82,7 +82,7 @@ int advertise_gw_macip_enabled(zebra_evpn_t *zevpn) return 0; } -int advertise_svi_macip_enabled(zebra_evpn_t *zevpn) +int advertise_svi_macip_enabled(struct zebra_evpn *zevpn) { struct zebra_vrf *zvrf; @@ -99,7 +99,7 @@ int advertise_svi_macip_enabled(zebra_evpn_t *zevpn) /* * Print a specific EVPN entry. */ -void zebra_evpn_print(zebra_evpn_t *zevpn, void **ctxt) +void zebra_evpn_print(struct zebra_evpn *zevpn, void **ctxt) { struct vty *vty; zebra_vtep_t *zvtep; @@ -217,7 +217,7 @@ void zebra_evpn_print(zebra_evpn_t *zevpn, void **ctxt) void zebra_evpn_print_hash(struct hash_bucket *bucket, void *ctxt[]) { struct vty *vty; - zebra_evpn_t *zevpn; + struct zebra_evpn *zevpn; zebra_vtep_t *zvtep; uint32_t num_vteps = 0; uint32_t num_macs = 0; @@ -231,7 +231,7 @@ void zebra_evpn_print_hash(struct hash_bucket *bucket, void *ctxt[]) vty = ctxt[0]; json = ctxt[1]; - zevpn = (zebra_evpn_t *)bucket->data; + zevpn = (struct zebra_evpn *)bucket->data; zvtep = zevpn->vteps; while (zvtep) { @@ -283,7 +283,7 @@ void zebra_evpn_print_hash(struct hash_bucket *bucket, void *ctxt[]) void zebra_evpn_print_hash_detail(struct hash_bucket *bucket, void *data) { struct vty *vty; - zebra_evpn_t *zevpn; + struct zebra_evpn *zevpn; json_object *json_array = NULL; bool use_json = false; struct zebra_evpn_show *zes = data; @@ -292,7 +292,7 @@ void zebra_evpn_print_hash_detail(struct hash_bucket *bucket, void *data) json_array = zes->json; use_json = zes->use_json; - zevpn = (zebra_evpn_t *)bucket->data; + zevpn = (struct zebra_evpn *)bucket->data; zebra_vxlan_print_vni(vty, zes->zvrf, zevpn->vni, use_json, json_array); @@ -300,7 +300,8 @@ void zebra_evpn_print_hash_detail(struct hash_bucket *bucket, void *data) vty_out(vty, "\n"); } -int zebra_evpn_del_macip_for_intf(struct interface *ifp, zebra_evpn_t *zevpn) +int zebra_evpn_del_macip_for_intf(struct interface *ifp, + struct zebra_evpn *zevpn) { struct listnode *cnode = NULL, *cnnode = NULL; struct connected *c = NULL; @@ -333,7 +334,8 @@ int zebra_evpn_del_macip_for_intf(struct interface *ifp, zebra_evpn_t *zevpn) return 0; } -int zebra_evpn_add_macip_for_intf(struct interface *ifp, zebra_evpn_t *zevpn) +int zebra_evpn_add_macip_for_intf(struct interface *ifp, + struct zebra_evpn *zevpn) { struct listnode *cnode = NULL, *cnnode = NULL; struct connected *c = NULL; @@ -397,7 +399,7 @@ static int ip_prefix_send_to_client(vrf_id_t vrf_id, struct prefix *p, return zserv_send_message(client, s); } -int zebra_evpn_advertise_subnet(zebra_evpn_t *zevpn, struct interface *ifp, +int zebra_evpn_advertise_subnet(struct zebra_evpn *zevpn, struct interface *ifp, int advertise) { struct listnode *cnode = NULL, *cnnode = NULL; @@ -429,7 +431,7 @@ int zebra_evpn_advertise_subnet(zebra_evpn_t *zevpn, struct interface *ifp, /* * zebra_evpn_gw_macip_add_to_client */ -int zebra_evpn_gw_macip_add(struct interface *ifp, zebra_evpn_t *zevpn, +int zebra_evpn_gw_macip_add(struct interface *ifp, struct zebra_evpn *zevpn, struct ethaddr *macaddr, struct ipaddr *ip) { zebra_mac_t *mac = NULL; @@ -453,7 +455,7 @@ int zebra_evpn_gw_macip_add(struct interface *ifp, zebra_evpn_t *zevpn, /* * zebra_evpn_gw_macip_del_from_client */ -int zebra_evpn_gw_macip_del(struct interface *ifp, zebra_evpn_t *zevpn, +int zebra_evpn_gw_macip_del(struct interface *ifp, struct zebra_evpn *zevpn, struct ipaddr *ip) { zebra_neigh_t *n = NULL; @@ -502,7 +504,7 @@ int zebra_evpn_gw_macip_del(struct interface *ifp, zebra_evpn_t *zevpn, void zebra_evpn_gw_macip_del_for_evpn_hash(struct hash_bucket *bucket, void *ctxt) { - zebra_evpn_t *zevpn = NULL; + struct zebra_evpn *zevpn = NULL; struct zebra_if *zif = NULL; struct zebra_l2info_vxlan zl2_info; struct interface *vlan_if = NULL; @@ -510,7 +512,7 @@ void zebra_evpn_gw_macip_del_for_evpn_hash(struct hash_bucket *bucket, struct interface *ifp; /* Add primary SVI MAC*/ - zevpn = (zebra_evpn_t *)bucket->data; + zevpn = (struct zebra_evpn *)bucket->data; /* Global (Zvrf) advertise-default-gw is disabled, * but zevpn advertise-default-gw is enabled @@ -552,14 +554,14 @@ void zebra_evpn_gw_macip_del_for_evpn_hash(struct hash_bucket *bucket, void zebra_evpn_gw_macip_add_for_evpn_hash(struct hash_bucket *bucket, void *ctxt) { - zebra_evpn_t *zevpn = NULL; + struct zebra_evpn *zevpn = NULL; struct zebra_if *zif = NULL; struct zebra_l2info_vxlan zl2_info; struct interface *vlan_if = NULL; struct interface *vrr_if = NULL; struct interface *ifp = NULL; - zevpn = (zebra_evpn_t *)bucket->data; + zevpn = (struct zebra_evpn *)bucket->data; ifp = zevpn->vxlan_if; if (!ifp) @@ -594,14 +596,14 @@ void zebra_evpn_gw_macip_add_for_evpn_hash(struct hash_bucket *bucket, void zebra_evpn_svi_macip_del_for_evpn_hash(struct hash_bucket *bucket, void *ctxt) { - zebra_evpn_t *zevpn = NULL; + struct zebra_evpn *zevpn = NULL; struct zebra_if *zif = NULL; struct zebra_l2info_vxlan zl2_info; struct interface *vlan_if = NULL; struct interface *ifp; /* Add primary SVI MAC*/ - zevpn = (zebra_evpn_t *)bucket->data; + zevpn = (struct zebra_evpn *)bucket->data; if (!zevpn) return; @@ -644,8 +646,8 @@ static int zebra_evpn_map_vlan_ns(struct ns *ns, struct zebra_ns *zns = ns->info; struct route_node *rn; struct interface *br_if; - zebra_evpn_t **p_zevpn = (zebra_evpn_t **)_p_zevpn; - zebra_evpn_t *zevpn; + struct zebra_evpn **p_zevpn = (struct zebra_evpn **)_p_zevpn; + struct zebra_evpn *zevpn; struct interface *tmp_if = NULL; struct zebra_if *zif; struct zebra_l2info_vxlan *vxl = NULL; @@ -695,13 +697,13 @@ static int zebra_evpn_map_vlan_ns(struct ns *ns, * Map port or (port, VLAN) to an EVPN. This is invoked upon getting MAC * notifications, to see if they are of interest. */ -zebra_evpn_t *zebra_evpn_map_vlan(struct interface *ifp, - struct interface *br_if, vlanid_t vid) +struct zebra_evpn *zebra_evpn_map_vlan(struct interface *ifp, + struct interface *br_if, vlanid_t vid) { struct zebra_if *zif; struct zebra_l2info_bridge *br; - zebra_evpn_t **p_zevpn; - zebra_evpn_t *zevpn = NULL; + struct zebra_evpn **p_zevpn; + struct zebra_evpn *zevpn = NULL; struct zebra_from_svi_param in_param; /* Determine if bridge is VLAN-aware or not */ @@ -727,8 +729,8 @@ static int zebra_evpn_from_svi_ns(struct ns *ns, struct zebra_ns *zns = ns->info; struct route_node *rn; struct interface *br_if; - zebra_evpn_t **p_zevpn = (zebra_evpn_t **)_p_zevpn; - zebra_evpn_t *zevpn; + struct zebra_evpn **p_zevpn = (struct zebra_evpn **)_p_zevpn; + struct zebra_evpn *zevpn; struct interface *tmp_if = NULL; struct zebra_if *zif; struct zebra_l2info_vxlan *vxl = NULL; @@ -777,12 +779,12 @@ static int zebra_evpn_from_svi_ns(struct ns *ns, * Map SVI and associated bridge to an EVPN. This is invoked upon getting * neighbor notifications, to see if they are of interest. */ -zebra_evpn_t *zebra_evpn_from_svi(struct interface *ifp, - struct interface *br_if) +struct zebra_evpn *zebra_evpn_from_svi(struct interface *ifp, + struct interface *br_if) { struct zebra_l2info_bridge *br; - zebra_evpn_t *zevpn = NULL; - zebra_evpn_t **p_zevpn; + struct zebra_evpn *zevpn = NULL; + struct zebra_evpn **p_zevpn; struct zebra_if *zif; struct zebra_from_svi_param in_param; @@ -910,7 +912,7 @@ void zebra_evpn_install_mac_hash(struct hash_bucket *bucket, void *ctxt) /* * Read and populate local MACs and neighbors corresponding to this EVPN. */ -void zebra_evpn_read_mac_neigh(zebra_evpn_t *zevpn, struct interface *ifp) +void zebra_evpn_read_mac_neigh(struct zebra_evpn *zevpn, struct interface *ifp) { struct zebra_ns *zns; struct zebra_vrf *zvrf; @@ -959,7 +961,7 @@ void zebra_evpn_read_mac_neigh(zebra_evpn_t *zevpn, struct interface *ifp) */ unsigned int zebra_evpn_hash_keymake(const void *p) { - const zebra_evpn_t *zevpn = p; + const struct zebra_evpn *zevpn = p; return (jhash_1word(zevpn->vni, 0)); } @@ -969,16 +971,16 @@ unsigned int zebra_evpn_hash_keymake(const void *p) */ bool zebra_evpn_hash_cmp(const void *p1, const void *p2) { - const zebra_evpn_t *zevpn1 = p1; - const zebra_evpn_t *zevpn2 = p2; + const struct zebra_evpn *zevpn1 = p1; + const struct zebra_evpn *zevpn2 = p2; return (zevpn1->vni == zevpn2->vni); } int zebra_evpn_list_cmp(void *p1, void *p2) { - const zebra_evpn_t *zevpn1 = p1; - const zebra_evpn_t *zevpn2 = p2; + const struct zebra_evpn *zevpn1 = p1; + const struct zebra_evpn *zevpn2 = p2; if (zevpn1->vni == zevpn2->vni) return 0; @@ -990,10 +992,10 @@ int zebra_evpn_list_cmp(void *p1, void *p2) */ void *zebra_evpn_alloc(void *p) { - const zebra_evpn_t *tmp_vni = p; - zebra_evpn_t *zevpn; + const struct zebra_evpn *tmp_vni = p; + struct zebra_evpn *zevpn; - zevpn = XCALLOC(MTYPE_ZEVPN, sizeof(zebra_evpn_t)); + zevpn = XCALLOC(MTYPE_ZEVPN, sizeof(struct zebra_evpn)); zevpn->vni = tmp_vni->vni; return ((void *)zevpn); } @@ -1001,15 +1003,15 @@ void *zebra_evpn_alloc(void *p) /* * Look up EVPN hash entry. */ -zebra_evpn_t *zebra_evpn_lookup(vni_t vni) +struct zebra_evpn *zebra_evpn_lookup(vni_t vni) { struct zebra_vrf *zvrf; - zebra_evpn_t tmp_vni; - zebra_evpn_t *zevpn = NULL; + struct zebra_evpn tmp_vni; + struct zebra_evpn *zevpn = NULL; zvrf = zebra_vrf_get_evpn(); assert(zvrf); - memset(&tmp_vni, 0, sizeof(zebra_evpn_t)); + memset(&tmp_vni, 0, sizeof(struct zebra_evpn)); tmp_vni.vni = vni; zevpn = hash_lookup(zvrf->evpn_table, &tmp_vni); @@ -1019,16 +1021,16 @@ zebra_evpn_t *zebra_evpn_lookup(vni_t vni) /* * Add EVPN hash entry. */ -zebra_evpn_t *zebra_evpn_add(vni_t vni) +struct zebra_evpn *zebra_evpn_add(vni_t vni) { char buffer[80]; struct zebra_vrf *zvrf; - zebra_evpn_t tmp_zevpn; - zebra_evpn_t *zevpn = NULL; + struct zebra_evpn tmp_zevpn; + struct zebra_evpn *zevpn = NULL; zvrf = zebra_vrf_get_evpn(); assert(zvrf); - memset(&tmp_zevpn, 0, sizeof(zebra_evpn_t)); + memset(&tmp_zevpn, 0, sizeof(struct zebra_evpn)); tmp_zevpn.vni = vni; zevpn = hash_get(zvrf->evpn_table, &tmp_zevpn, zebra_evpn_alloc); assert(zevpn); @@ -1050,10 +1052,10 @@ zebra_evpn_t *zebra_evpn_add(vni_t vni) /* * Delete EVPN hash entry. */ -int zebra_evpn_del(zebra_evpn_t *zevpn) +int zebra_evpn_del(struct zebra_evpn *zevpn) { struct zebra_vrf *zvrf; - zebra_evpn_t *tmp_zevpn; + struct zebra_evpn *tmp_zevpn; zvrf = zebra_vrf_get_evpn(); assert(zvrf); @@ -1083,7 +1085,7 @@ int zebra_evpn_del(zebra_evpn_t *zevpn) /* * Inform BGP about local EVPN addition. */ -int zebra_evpn_send_add_to_client(zebra_evpn_t *zevpn) +int zebra_evpn_send_add_to_client(struct zebra_evpn *zevpn) { struct zserv *client; struct stream *s; @@ -1133,7 +1135,7 @@ int zebra_evpn_send_add_to_client(zebra_evpn_t *zevpn) /* * Inform BGP about local EVPN deletion. */ -int zebra_evpn_send_del_to_client(zebra_evpn_t *zevpn) +int zebra_evpn_send_del_to_client(struct zebra_evpn *zevpn) { struct zserv *client; struct stream *s; @@ -1177,7 +1179,8 @@ static int zebra_evpn_vtep_match(struct in_addr *vtep_ip, zebra_vtep_t *zvtep) /* * Locate remote VTEP in EVPN hash table. */ -zebra_vtep_t *zebra_evpn_vtep_find(zebra_evpn_t *zevpn, struct in_addr *vtep_ip) +zebra_vtep_t *zebra_evpn_vtep_find(struct zebra_evpn *zevpn, + struct in_addr *vtep_ip) { zebra_vtep_t *zvtep; @@ -1195,8 +1198,8 @@ zebra_vtep_t *zebra_evpn_vtep_find(zebra_evpn_t *zevpn, struct in_addr *vtep_ip) /* * Add remote VTEP to EVPN hash table. */ -zebra_vtep_t *zebra_evpn_vtep_add(zebra_evpn_t *zevpn, struct in_addr *vtep_ip, - int flood_control) +zebra_vtep_t *zebra_evpn_vtep_add(struct zebra_evpn *zevpn, + struct in_addr *vtep_ip, int flood_control) { zebra_vtep_t *zvtep; @@ -1217,7 +1220,7 @@ zebra_vtep_t *zebra_evpn_vtep_add(zebra_evpn_t *zevpn, struct in_addr *vtep_ip, /* * Remove remote VTEP from EVPN hash table. */ -int zebra_evpn_vtep_del(zebra_evpn_t *zevpn, zebra_vtep_t *zvtep) +int zebra_evpn_vtep_del(struct zebra_evpn *zevpn, zebra_vtep_t *zvtep) { if (zvtep->next) zvtep->next->prev = zvtep->prev; @@ -1236,7 +1239,7 @@ int zebra_evpn_vtep_del(zebra_evpn_t *zevpn, zebra_vtep_t *zvtep) * Delete all remote VTEPs for this EVPN (upon VNI delete). Also * uninstall from kernel if asked to. */ -int zebra_evpn_vtep_del_all(zebra_evpn_t *zevpn, int uninstall) +int zebra_evpn_vtep_del_all(struct zebra_evpn *zevpn, int uninstall) { zebra_vtep_t *zvtep, *zvtep_next; @@ -1257,7 +1260,7 @@ int zebra_evpn_vtep_del_all(zebra_evpn_t *zevpn, int uninstall) * Install remote VTEP into the kernel if the remote VTEP has asked * for head-end-replication. */ -int zebra_evpn_vtep_install(zebra_evpn_t *zevpn, zebra_vtep_t *zvtep) +int zebra_evpn_vtep_install(struct zebra_evpn *zevpn, zebra_vtep_t *zvtep) { if (is_vxlan_flooding_head_end() && (zvtep->flood_control == VXLAN_FLOOD_HEAD_END_REPL)) { @@ -1273,7 +1276,7 @@ int zebra_evpn_vtep_install(zebra_evpn_t *zevpn, zebra_vtep_t *zvtep) /* * Uninstall remote VTEP from the kernel. */ -int zebra_evpn_vtep_uninstall(zebra_evpn_t *zevpn, struct in_addr *vtep_ip) +int zebra_evpn_vtep_uninstall(struct zebra_evpn *zevpn, struct in_addr *vtep_ip) { if (!zevpn->vxlan_if) { zlog_debug("VNI %u hash %p couldn't be uninstalled - no intf", @@ -1295,10 +1298,10 @@ int zebra_evpn_vtep_uninstall(zebra_evpn_t *zevpn, struct in_addr *vtep_ip) void zebra_evpn_handle_flooding_remote_vteps(struct hash_bucket *bucket, void *zvrf) { - zebra_evpn_t *zevpn; + struct zebra_evpn *zevpn; zebra_vtep_t *zvtep; - zevpn = (zebra_evpn_t *)bucket->data; + zevpn = (struct zebra_evpn *)bucket->data; if (!zevpn) return; @@ -1315,9 +1318,9 @@ void zebra_evpn_handle_flooding_remote_vteps(struct hash_bucket *bucket, */ void zebra_evpn_cleanup_all(struct hash_bucket *bucket, void *arg) { - zebra_evpn_t *zevpn = NULL; + struct zebra_evpn *zevpn = NULL; - zevpn = (zebra_evpn_t *)bucket->data; + zevpn = (struct zebra_evpn *)bucket->data; /* Free up all neighbors and MACs, if any. */ zebra_evpn_neigh_del_all(zevpn, 1, 0, DEL_ALL_NEIGH); @@ -1330,7 +1333,7 @@ void zebra_evpn_cleanup_all(struct hash_bucket *bucket, void *arg) zebra_evpn_del(zevpn); } -static void zebra_evpn_process_sync_macip_add(zebra_evpn_t *zevpn, +static void zebra_evpn_process_sync_macip_add(struct zebra_evpn *zevpn, const struct ethaddr *macaddr, uint16_t ipa_len, const struct ipaddr *ipaddr, @@ -1387,7 +1390,7 @@ void zebra_evpn_rem_macip_add(vni_t vni, const struct ethaddr *macaddr, uint8_t flags, uint32_t seq, struct in_addr vtep_ip, const esi_t *esi) { - zebra_evpn_t *zevpn; + struct zebra_evpn *zevpn; zebra_vtep_t *zvtep; zebra_mac_t *mac = NULL; struct interface *ifp = NULL; @@ -1464,7 +1467,7 @@ void zebra_evpn_rem_macip_del(vni_t vni, const struct ethaddr *macaddr, uint16_t ipa_len, const struct ipaddr *ipaddr, struct in_addr vtep_ip) { - zebra_evpn_t *zevpn; + struct zebra_evpn *zevpn; zebra_mac_t *mac = NULL; zebra_neigh_t *n = NULL; struct interface *ifp = NULL; @@ -1558,9 +1561,9 @@ void zebra_evpn_rem_macip_del(vni_t vni, const struct ethaddr *macaddr, /************************** EVPN BGP config management ************************/ void zebra_evpn_cfg_cleanup(struct hash_bucket *bucket, void *ctxt) { - zebra_evpn_t *zevpn = NULL; + struct zebra_evpn *zevpn = NULL; - zevpn = (zebra_evpn_t *)bucket->data; + zevpn = (struct zebra_evpn *)bucket->data; zevpn->advertise_gw_macip = 0; zevpn->advertise_svi_macip = 0; zevpn->advertise_subnet = 0; diff --git a/zebra/zebra_evpn.h b/zebra/zebra_evpn.h index 774627a15d..0fc65500d4 100644 --- a/zebra/zebra_evpn.h +++ b/zebra/zebra_evpn.h @@ -38,7 +38,6 @@ extern "C" { #endif -typedef struct zebra_evpn_t_ zebra_evpn_t; typedef struct zebra_vtep_t_ zebra_vtep_t; RB_HEAD(zebra_es_evi_rb_head, zebra_evpn_es_evi); @@ -78,7 +77,7 @@ struct zebra_vtep_t_ { * Contains information pertaining to a VNI: * - the list of remote VTEPs (with this VNI) */ -struct zebra_evpn_t_ { +struct zebra_evpn { /* VNI - key */ vni_t vni; @@ -137,7 +136,7 @@ struct zebra_from_svi_param { struct interface *zvni_map_to_svi(vlanid_t vid, struct interface *br_if); -static inline struct interface *zevpn_map_to_svi(zebra_evpn_t *zevpn) +static inline struct interface *zevpn_map_to_svi(struct zebra_evpn *zevpn) { struct interface *ifp; struct zebra_if *zif = NULL; @@ -157,18 +156,20 @@ static inline struct interface *zevpn_map_to_svi(zebra_evpn_t *zevpn) return zvni_map_to_svi(zl2_info.access_vlan, zif->brslave_info.br_if); } -int advertise_gw_macip_enabled(zebra_evpn_t *zevpn); -int advertise_svi_macip_enabled(zebra_evpn_t *zevpn); -void zebra_evpn_print(zebra_evpn_t *zevpn, void **ctxt); +int advertise_gw_macip_enabled(struct zebra_evpn *zevpn); +int advertise_svi_macip_enabled(struct zebra_evpn *zevpn); +void zebra_evpn_print(struct zebra_evpn *zevpn, void **ctxt); void zebra_evpn_print_hash(struct hash_bucket *bucket, void *ctxt[]); void zebra_evpn_print_hash_detail(struct hash_bucket *bucket, void *data); -int zebra_evpn_add_macip_for_intf(struct interface *ifp, zebra_evpn_t *zevpn); -int zebra_evpn_del_macip_for_intf(struct interface *ifp, zebra_evpn_t *zevpn); -int zebra_evpn_advertise_subnet(zebra_evpn_t *zevpn, struct interface *ifp, +int zebra_evpn_add_macip_for_intf(struct interface *ifp, + struct zebra_evpn *zevpn); +int zebra_evpn_del_macip_for_intf(struct interface *ifp, + struct zebra_evpn *zevpn); +int zebra_evpn_advertise_subnet(struct zebra_evpn *zevpn, struct interface *ifp, int advertise); -int zebra_evpn_gw_macip_add(struct interface *ifp, zebra_evpn_t *zevpn, +int zebra_evpn_gw_macip_add(struct interface *ifp, struct zebra_evpn *zevpn, struct ethaddr *macaddr, struct ipaddr *ip); -int zebra_evpn_gw_macip_del(struct interface *ifp, zebra_evpn_t *zevpn, +int zebra_evpn_gw_macip_del(struct interface *ifp, struct zebra_evpn *zevpn, struct ipaddr *ip); void zebra_evpn_gw_macip_del_for_evpn_hash(struct hash_bucket *bucket, void *ctxt); @@ -176,31 +177,32 @@ void zebra_evpn_gw_macip_add_for_evpn_hash(struct hash_bucket *bucket, void *ctxt); void zebra_evpn_svi_macip_del_for_evpn_hash(struct hash_bucket *bucket, void *ctxt); -zebra_evpn_t *zebra_evpn_map_vlan(struct interface *ifp, - struct interface *br_if, vlanid_t vid); -zebra_evpn_t *zebra_evpn_from_svi(struct interface *ifp, - struct interface *br_if); +struct zebra_evpn *zebra_evpn_map_vlan(struct interface *ifp, + struct interface *br_if, vlanid_t vid); +struct zebra_evpn *zebra_evpn_from_svi(struct interface *ifp, + struct interface *br_if); struct interface *zebra_evpn_map_to_macvlan(struct interface *br_if, struct interface *svi_if); void zebra_evpn_install_mac_hash(struct hash_bucket *bucket, void *ctxt); -void zebra_evpn_read_mac_neigh(zebra_evpn_t *zevpn, struct interface *ifp); +void zebra_evpn_read_mac_neigh(struct zebra_evpn *zevpn, struct interface *ifp); unsigned int zebra_evpn_hash_keymake(const void *p); bool zebra_evpn_hash_cmp(const void *p1, const void *p2); int zebra_evpn_list_cmp(void *p1, void *p2); void *zebra_evpn_alloc(void *p); -zebra_evpn_t *zebra_evpn_lookup(vni_t vni); -zebra_evpn_t *zebra_evpn_add(vni_t vni); -int zebra_evpn_del(zebra_evpn_t *zevpn); -int zebra_evpn_send_add_to_client(zebra_evpn_t *zevpn); -int zebra_evpn_send_del_to_client(zebra_evpn_t *zevpn); -zebra_vtep_t *zebra_evpn_vtep_find(zebra_evpn_t *zevpn, +struct zebra_evpn *zebra_evpn_lookup(vni_t vni); +struct zebra_evpn *zebra_evpn_add(vni_t vni); +int zebra_evpn_del(struct zebra_evpn *zevpn); +int zebra_evpn_send_add_to_client(struct zebra_evpn *zevpn); +int zebra_evpn_send_del_to_client(struct zebra_evpn *zevpn); +zebra_vtep_t *zebra_evpn_vtep_find(struct zebra_evpn *zevpn, struct in_addr *vtep_ip); -zebra_vtep_t *zebra_evpn_vtep_add(zebra_evpn_t *zevpn, struct in_addr *vtep_ip, - int flood_control); -int zebra_evpn_vtep_del(zebra_evpn_t *zevpn, zebra_vtep_t *zvtep); -int zebra_evpn_vtep_del_all(zebra_evpn_t *zevpn, int uninstall); -int zebra_evpn_vtep_install(zebra_evpn_t *zevpn, zebra_vtep_t *zvtep); -int zebra_evpn_vtep_uninstall(zebra_evpn_t *zevpn, struct in_addr *vtep_ip); +zebra_vtep_t *zebra_evpn_vtep_add(struct zebra_evpn *zevpn, + struct in_addr *vtep_ip, int flood_control); +int zebra_evpn_vtep_del(struct zebra_evpn *zevpn, zebra_vtep_t *zvtep); +int zebra_evpn_vtep_del_all(struct zebra_evpn *zevpn, int uninstall); +int zebra_evpn_vtep_install(struct zebra_evpn *zevpn, zebra_vtep_t *zvtep); +int zebra_evpn_vtep_uninstall(struct zebra_evpn *zevpn, + struct in_addr *vtep_ip); void zebra_evpn_handle_flooding_remote_vteps(struct hash_bucket *bucket, void *zvrf); void zebra_evpn_cleanup_all(struct hash_bucket *bucket, void *arg); diff --git a/zebra/zebra_evpn_mac.c b/zebra/zebra_evpn_mac.c index cf2aa67269..67b14bf82a 100644 --- a/zebra/zebra_evpn_mac.c +++ b/zebra/zebra_evpn_mac.c @@ -47,7 +47,7 @@ DEFINE_MTYPE_STATIC(ZEBRA, MAC, "EVPN MAC"); * Return number of valid MACs in an EVPN's MAC hash table - all * remote MACs and non-internal (auto) local MACs count. */ -uint32_t num_valid_macs(zebra_evpn_t *zevpn) +uint32_t num_valid_macs(struct zebra_evpn *zevpn) { unsigned int i; uint32_t num_macs = 0; @@ -71,7 +71,7 @@ uint32_t num_valid_macs(zebra_evpn_t *zevpn) return num_macs; } -uint32_t num_dup_detected_macs(zebra_evpn_t *zevpn) +uint32_t num_dup_detected_macs(struct zebra_evpn *zevpn) { unsigned int i; uint32_t num_macs = 0; @@ -187,7 +187,7 @@ void zebra_evpn_mac_clear_fwd_info(zebra_mac_t *zmac) /* * Install remote MAC into the forwarding plane. */ -int zebra_evpn_rem_mac_install(zebra_evpn_t *zevpn, zebra_mac_t *mac, +int zebra_evpn_rem_mac_install(struct zebra_evpn *zevpn, zebra_mac_t *mac, bool was_static) { const struct zebra_if *zif, *br_zif; @@ -243,7 +243,7 @@ int zebra_evpn_rem_mac_install(zebra_evpn_t *zevpn, zebra_mac_t *mac, /* * Uninstall remote MAC from the forwarding plane. */ -int zebra_evpn_rem_mac_uninstall(zebra_evpn_t *zevpn, zebra_mac_t *mac, +int zebra_evpn_rem_mac_uninstall(struct zebra_evpn *zevpn, zebra_mac_t *mac, bool force) { const struct zebra_if *zif, *br_zif; @@ -296,7 +296,7 @@ int zebra_evpn_rem_mac_uninstall(zebra_evpn_t *zevpn, zebra_mac_t *mac, * Decrement neighbor refcount of MAC; uninstall and free it if * appropriate. */ -void zebra_evpn_deref_ip2mac(zebra_evpn_t *zevpn, zebra_mac_t *mac) +void zebra_evpn_deref_ip2mac(struct zebra_evpn *zevpn, zebra_mac_t *mac) { if (!CHECK_FLAG(mac->flags, ZEBRA_MAC_AUTO)) return; @@ -380,7 +380,7 @@ static int zebra_evpn_dad_mac_auto_recovery_exp(struct thread *t) { struct zebra_vrf *zvrf = NULL; zebra_mac_t *mac = NULL; - zebra_evpn_t *zevpn = NULL; + struct zebra_evpn *zevpn = NULL; struct listnode *node = NULL; zebra_neigh_t *nbr = NULL; @@ -1096,7 +1096,7 @@ static void *zebra_evpn_mac_alloc(void *p) /* * Add MAC entry. */ -zebra_mac_t *zebra_evpn_mac_add(zebra_evpn_t *zevpn, +zebra_mac_t *zebra_evpn_mac_add(struct zebra_evpn *zevpn, const struct ethaddr *macaddr) { zebra_mac_t tmp_mac; @@ -1128,7 +1128,7 @@ zebra_mac_t *zebra_evpn_mac_add(zebra_evpn_t *zevpn, /* * Delete MAC entry. */ -int zebra_evpn_mac_del(zebra_evpn_t *zevpn, zebra_mac_t *mac) +int zebra_evpn_mac_del(struct zebra_evpn *zevpn, zebra_mac_t *mac) { zebra_mac_t *tmp_mac; @@ -1236,8 +1236,8 @@ static void zebra_evpn_mac_del_hash_entry(struct hash_bucket *bucket, void *arg) /* * Delete all MAC entries for this EVPN. */ -void zebra_evpn_mac_del_all(zebra_evpn_t *zevpn, int uninstall, int upd_client, - uint32_t flags) +void zebra_evpn_mac_del_all(struct zebra_evpn *zevpn, int uninstall, + int upd_client, uint32_t flags) { struct mac_walk_ctx wctx; @@ -1256,7 +1256,7 @@ void zebra_evpn_mac_del_all(zebra_evpn_t *zevpn, int uninstall, int upd_client, /* * Look up MAC hash entry. */ -zebra_mac_t *zebra_evpn_mac_lookup(zebra_evpn_t *zevpn, +zebra_mac_t *zebra_evpn_mac_lookup(struct zebra_evpn *zevpn, const struct ethaddr *mac) { zebra_mac_t tmp; @@ -1336,7 +1336,7 @@ int zebra_evpn_sync_mac_dp_install(zebra_mac_t *mac, bool set_inactive, struct interface *ifp; bool sticky; bool set_static; - zebra_evpn_t *zevpn = mac->zevpn; + struct zebra_evpn *zevpn = mac->zevpn; vlanid_t vid; struct zebra_if *zif; struct interface *br_ifp; @@ -1563,7 +1563,7 @@ void zebra_evpn_sync_mac_del(zebra_mac_t *mac) __func__); } -static inline bool zebra_evpn_mac_is_bgp_seq_ok(zebra_evpn_t *zevpn, +static inline bool zebra_evpn_mac_is_bgp_seq_ok(struct zebra_evpn *zevpn, zebra_mac_t *mac, uint32_t seq, uint16_t ipa_len, const struct ipaddr *ipaddr, @@ -1631,9 +1631,9 @@ static inline bool zebra_evpn_mac_is_bgp_seq_ok(zebra_evpn_t *zevpn, } zebra_mac_t *zebra_evpn_proc_sync_mac_update( - zebra_evpn_t *zevpn, const struct ethaddr *macaddr, uint16_t ipa_len, - const struct ipaddr *ipaddr, uint8_t flags, uint32_t seq, - const esi_t *esi, struct sync_mac_ip_ctx *ctx) + struct zebra_evpn *zevpn, const struct ethaddr *macaddr, + uint16_t ipa_len, const struct ipaddr *ipaddr, uint8_t flags, + uint32_t seq, const esi_t *esi, struct sync_mac_ip_ctx *ctx) { zebra_mac_t *mac; bool inform_bgp = false; @@ -1894,7 +1894,7 @@ static void zebra_evpn_send_mac_hash_entry_to_client(struct hash_bucket *bucket, } /* Iterator to Notify Local MACs of a EVPN */ -void zebra_evpn_send_mac_list_to_client(zebra_evpn_t *zevpn) +void zebra_evpn_send_mac_list_to_client(struct zebra_evpn *zevpn) { struct mac_walk_ctx wctx; @@ -1908,7 +1908,7 @@ void zebra_evpn_send_mac_list_to_client(zebra_evpn_t *zevpn) &wctx); } -void zebra_evpn_rem_mac_del(zebra_evpn_t *zevpn, zebra_mac_t *mac) +void zebra_evpn_rem_mac_del(struct zebra_evpn *zevpn, zebra_mac_t *mac) { zebra_evpn_process_neigh_on_remote_mac_del(zevpn, mac); /* the remote sequence number in the auto mac entry @@ -1960,13 +1960,11 @@ void zebra_evpn_print_dad_mac_hash_detail(struct hash_bucket *bucket, zebra_evpn_print_mac_hash_detail(bucket, ctxt); } -int zebra_evpn_mac_remote_macip_add(zebra_evpn_t *zevpn, struct zebra_vrf *zvrf, - const struct ethaddr *macaddr, - uint16_t ipa_len, - const struct ipaddr *ipaddr, - zebra_mac_t **macp, struct in_addr vtep_ip, - uint8_t flags, uint32_t seq, - const esi_t *esi) +int zebra_evpn_mac_remote_macip_add( + struct zebra_evpn *zevpn, struct zebra_vrf *zvrf, + const struct ethaddr *macaddr, uint16_t ipa_len, + const struct ipaddr *ipaddr, zebra_mac_t **macp, struct in_addr vtep_ip, + uint8_t flags, uint32_t seq, const esi_t *esi) { char buf1[INET6_ADDRSTRLEN]; bool sticky; @@ -2129,7 +2127,8 @@ int zebra_evpn_mac_remote_macip_add(zebra_evpn_t *zevpn, struct zebra_vrf *zvrf, return 0; } -int zebra_evpn_add_update_local_mac(struct zebra_vrf *zvrf, zebra_evpn_t *zevpn, +int zebra_evpn_add_update_local_mac(struct zebra_vrf *zvrf, + struct zebra_evpn *zevpn, struct interface *ifp, const struct ethaddr *macaddr, vlanid_t vid, bool sticky, bool local_inactive, @@ -2374,7 +2373,7 @@ int zebra_evpn_add_update_local_mac(struct zebra_vrf *zvrf, zebra_evpn_t *zevpn, return 0; } -int zebra_evpn_del_local_mac(zebra_evpn_t *zevpn, zebra_mac_t *mac, +int zebra_evpn_del_local_mac(struct zebra_evpn *zevpn, zebra_mac_t *mac, bool clear_static) { bool old_bgp_ready; @@ -2450,7 +2449,7 @@ int zebra_evpn_del_local_mac(zebra_evpn_t *zevpn, zebra_mac_t *mac, return 0; } -int zebra_evpn_mac_gw_macip_add(struct interface *ifp, zebra_evpn_t *zevpn, +int zebra_evpn_mac_gw_macip_add(struct interface *ifp, struct zebra_evpn *zevpn, const struct ipaddr *ip, zebra_mac_t **macp, const struct ethaddr *macaddr, vlanid_t vlan_id, bool def_gw) @@ -2489,7 +2488,7 @@ int zebra_evpn_mac_gw_macip_add(struct interface *ifp, zebra_evpn_t *zevpn, return 0; } -void zebra_evpn_mac_svi_del(struct interface *ifp, zebra_evpn_t *zevpn) +void zebra_evpn_mac_svi_del(struct interface *ifp, struct zebra_evpn *zevpn) { zebra_mac_t *mac; struct ethaddr macaddr; @@ -2512,7 +2511,7 @@ void zebra_evpn_mac_svi_del(struct interface *ifp, zebra_evpn_t *zevpn) } } -void zebra_evpn_mac_svi_add(struct interface *ifp, zebra_evpn_t *zevpn) +void zebra_evpn_mac_svi_add(struct interface *ifp, struct zebra_evpn *zevpn) { zebra_mac_t *mac = NULL; struct ethaddr macaddr; diff --git a/zebra/zebra_evpn_mac.h b/zebra/zebra_evpn_mac.h index e90082e50b..74bb5b8536 100644 --- a/zebra/zebra_evpn_mac.h +++ b/zebra/zebra_evpn_mac.h @@ -88,7 +88,7 @@ struct zebra_mac_t_ { (ZEBRA_MAC_ES_PEER_PROXY | ZEBRA_MAC_ES_PEER_ACTIVE) /* back pointer to zevpn */ - zebra_evpn_t *zevpn; + struct zebra_evpn *zevpn; /* Local or remote info. * Note: fwd_info is only relevant if mac->es is NULL. @@ -152,7 +152,7 @@ struct zebra_mac_t_ { * Context for MAC hash walk - used by callbacks. */ struct mac_walk_ctx { - zebra_evpn_t *zevpn; /* EVPN hash */ + struct zebra_evpn *zevpn; /* EVPN hash */ struct zebra_vrf *zvrf; /* VRF - for client notification. */ int uninstall; /* uninstall from kernel? */ int upd_client; /* uninstall from client? */ @@ -222,18 +222,18 @@ static inline bool zebra_evpn_mac_in_use(zebra_mac_t *mac) } struct hash *zebra_mac_db_create(const char *desc); -uint32_t num_valid_macs(zebra_evpn_t *zevi); -uint32_t num_dup_detected_macs(zebra_evpn_t *zevi); -int zebra_evpn_rem_mac_uninstall(zebra_evpn_t *zevi, zebra_mac_t *mac, +uint32_t num_valid_macs(struct zebra_evpn *zevi); +uint32_t num_dup_detected_macs(struct zebra_evpn *zevi); +int zebra_evpn_rem_mac_uninstall(struct zebra_evpn *zevi, zebra_mac_t *mac, bool force); -int zebra_evpn_rem_mac_install(zebra_evpn_t *zevi, zebra_mac_t *mac, +int zebra_evpn_rem_mac_install(struct zebra_evpn *zevi, zebra_mac_t *mac, bool was_static); -void zebra_evpn_deref_ip2mac(zebra_evpn_t *zevi, zebra_mac_t *mac); -zebra_mac_t *zebra_evpn_mac_lookup(zebra_evpn_t *zevi, +void zebra_evpn_deref_ip2mac(struct zebra_evpn *zevi, zebra_mac_t *mac); +zebra_mac_t *zebra_evpn_mac_lookup(struct zebra_evpn *zevi, const struct ethaddr *mac); -zebra_mac_t *zebra_evpn_mac_add(zebra_evpn_t *zevi, +zebra_mac_t *zebra_evpn_mac_add(struct zebra_evpn *zevi, const struct ethaddr *macaddr); -int zebra_evpn_mac_del(zebra_evpn_t *zevi, zebra_mac_t *mac); +int zebra_evpn_mac_del(struct zebra_evpn *zevi, zebra_mac_t *mac); int zebra_evpn_macip_send_msg_to_client(uint32_t id, const struct ethaddr *macaddr, const struct ipaddr *ip, uint8_t flags, @@ -247,44 +247,43 @@ int zebra_evpn_sync_mac_dp_install(zebra_mac_t *mac, bool set_inactive, void zebra_evpn_mac_send_add_del_to_client(zebra_mac_t *mac, bool old_bgp_ready, bool new_bgp_ready); -void zebra_evpn_mac_del_all(zebra_evpn_t *zevi, int uninstall, int upd_client, - uint32_t flags); +void zebra_evpn_mac_del_all(struct zebra_evpn *zevi, int uninstall, + int upd_client, uint32_t flags); int zebra_evpn_mac_send_add_to_client(vni_t vni, const struct ethaddr *macaddr, uint32_t mac_flags, uint32_t seq, struct zebra_evpn_es *es); int zebra_evpn_mac_send_del_to_client(vni_t vni, const struct ethaddr *macaddr, uint32_t flags, bool force); -void zebra_evpn_send_mac_list_to_client(zebra_evpn_t *zevi); +void zebra_evpn_send_mac_list_to_client(struct zebra_evpn *zevi); zebra_mac_t *zebra_evpn_proc_sync_mac_update( - zebra_evpn_t *zevi, const struct ethaddr *macaddr, uint16_t ipa_len, - const struct ipaddr *ipaddr, uint8_t flags, uint32_t seq, - const esi_t *esi, struct sync_mac_ip_ctx *ctx); + struct zebra_evpn *zevi, const struct ethaddr *macaddr, + uint16_t ipa_len, const struct ipaddr *ipaddr, uint8_t flags, + uint32_t seq, const esi_t *esi, struct sync_mac_ip_ctx *ctx); void zebra_evpn_sync_mac_del(zebra_mac_t *mac); -void zebra_evpn_rem_mac_del(zebra_evpn_t *zevi, zebra_mac_t *mac); +void zebra_evpn_rem_mac_del(struct zebra_evpn *zevi, zebra_mac_t *mac); void zebra_evpn_print_dad_mac_hash(struct hash_bucket *bucket, void *ctxt); void zebra_evpn_print_dad_mac_hash_detail(struct hash_bucket *bucket, void *ctxt); -int zebra_evpn_mac_remote_macip_add(zebra_evpn_t *zevpn, struct zebra_vrf *zvrf, - const struct ethaddr *macaddr, - uint16_t ipa_len, - const struct ipaddr *ipaddr, - zebra_mac_t **macp, struct in_addr vtep_ip, - uint8_t flags, uint32_t seq, - const esi_t *esi); - -int zebra_evpn_add_update_local_mac(struct zebra_vrf *zvrf, zebra_evpn_t *zevpn, +int zebra_evpn_mac_remote_macip_add( + struct zebra_evpn *zevpn, struct zebra_vrf *zvrf, + const struct ethaddr *macaddr, uint16_t ipa_len, + const struct ipaddr *ipaddr, zebra_mac_t **macp, struct in_addr vtep_ip, + uint8_t flags, uint32_t seq, const esi_t *esi); + +int zebra_evpn_add_update_local_mac(struct zebra_vrf *zvrf, + struct zebra_evpn *zevpn, struct interface *ifp, const struct ethaddr *macaddr, vlanid_t vid, bool sticky, bool local_inactive, bool dp_static, zebra_mac_t *mac); -int zebra_evpn_del_local_mac(zebra_evpn_t *zevpn, zebra_mac_t *mac, +int zebra_evpn_del_local_mac(struct zebra_evpn *zevpn, zebra_mac_t *mac, bool clear_static); -int zebra_evpn_mac_gw_macip_add(struct interface *ifp, zebra_evpn_t *zevpn, +int zebra_evpn_mac_gw_macip_add(struct interface *ifp, struct zebra_evpn *zevpn, const struct ipaddr *ip, zebra_mac_t **macp, const struct ethaddr *macaddr, vlanid_t vlan_id, bool def_gw); -void zebra_evpn_mac_svi_add(struct interface *ifp, zebra_evpn_t *zevpn); -void zebra_evpn_mac_svi_del(struct interface *ifp, zebra_evpn_t *zevpn); +void zebra_evpn_mac_svi_add(struct interface *ifp, struct zebra_evpn *zevpn); +void zebra_evpn_mac_svi_del(struct interface *ifp, struct zebra_evpn *zevpn); void zebra_evpn_mac_ifp_del(struct interface *ifp); void zebra_evpn_mac_clear_fwd_info(zebra_mac_t *zmac); diff --git a/zebra/zebra_evpn_mh.c b/zebra/zebra_evpn_mh.c index c0cc57fc69..088ad639c3 100644 --- a/zebra/zebra_evpn_mh.c +++ b/zebra/zebra_evpn_mh.c @@ -60,7 +60,7 @@ DEFINE_MTYPE_STATIC(ZEBRA, L2_NH, "L2 nexthop"); static void zebra_evpn_es_get_one_base_evpn(void); static int zebra_evpn_es_evi_send_to_client(struct zebra_evpn_es *es, - zebra_evpn_t *zevpn, bool add); + struct zebra_evpn *zevpn, bool add); static void zebra_evpn_local_es_del(struct zebra_evpn_es **esp); static int zebra_evpn_local_es_update(struct zebra_if *zif, esi_t *esi); static bool zebra_evpn_es_br_port_dplane_update(struct zebra_evpn_es *es, @@ -76,7 +76,7 @@ esi_t zero_esi_buf, *zero_esi = &zero_esi_buf; /*****************************************************************************/ /* Ethernet Segment to EVI association - * 1. The ES-EVI entry is maintained as a RB tree per L2-VNI - * (zebra_evpn_t.es_evi_rb_tree). + * (struct zebra_evpn.es_evi_rb_tree). * 2. Each local ES-EVI entry is sent to BGP which advertises it as an * EAD-EVI (Type-1 EVPN) route * 3. Local ES-EVI setup is re-evaluated on the following triggers - @@ -103,7 +103,7 @@ RB_GENERATE(zebra_es_evi_rb_head, zebra_evpn_es_evi, * tables. */ static struct zebra_evpn_es_evi *zebra_evpn_es_evi_new(struct zebra_evpn_es *es, - zebra_evpn_t *zevpn) + struct zebra_evpn *zevpn) { struct zebra_evpn_es_evi *es_evi; @@ -169,7 +169,7 @@ static void zebra_evpn_es_evi_re_eval_send_to_client( static void zebra_evpn_es_evi_free(struct zebra_evpn_es_evi *es_evi) { struct zebra_evpn_es *es = es_evi->es; - zebra_evpn_t *zevpn = es_evi->zevpn; + struct zebra_evpn *zevpn = es_evi->zevpn; if (IS_ZEBRA_DEBUG_EVPN_MH_ES) zlog_debug("es %s evi %d free", @@ -186,8 +186,8 @@ static void zebra_evpn_es_evi_free(struct zebra_evpn_es_evi *es_evi) } /* find the ES-EVI in the per-L2-VNI RB tree */ -static struct zebra_evpn_es_evi *zebra_evpn_es_evi_find( - struct zebra_evpn_es *es, zebra_evpn_t *zevpn) +static struct zebra_evpn_es_evi * +zebra_evpn_es_evi_find(struct zebra_evpn_es *es, struct zebra_evpn *zevpn) { struct zebra_evpn_es_evi es_evi; @@ -220,7 +220,7 @@ static void zebra_evpn_local_es_evi_do_del(struct zebra_evpn_es_evi *es_evi) zebra_evpn_es_evi_free(es_evi); } static void zebra_evpn_local_es_evi_del(struct zebra_evpn_es *es, - zebra_evpn_t *zevpn) + struct zebra_evpn *zevpn) { struct zebra_evpn_es_evi *es_evi; @@ -231,7 +231,7 @@ static void zebra_evpn_local_es_evi_del(struct zebra_evpn_es *es, /* Create an ES-EVI if it doesn't already exist and tell BGP */ static void zebra_evpn_local_es_evi_add(struct zebra_evpn_es *es, - zebra_evpn_t *zevpn) + struct zebra_evpn *zevpn) { struct zebra_evpn_es_evi *es_evi; @@ -334,7 +334,7 @@ zebra_evpn_es_evi_show_entry_detail(struct vty *vty, } } -static void zebra_evpn_es_evi_show_one_evpn(zebra_evpn_t *zevpn, +static void zebra_evpn_es_evi_show_one_evpn(struct zebra_evpn *zevpn, struct vty *vty, json_object *json_array, int detail) { @@ -358,7 +358,7 @@ struct evpn_mh_show_ctx { static void zebra_evpn_es_evi_show_one_evpn_hash_cb(struct hash_bucket *bucket, void *ctxt) { - zebra_evpn_t *zevpn = (zebra_evpn_t *)bucket->data; + struct zebra_evpn *zevpn = (struct zebra_evpn *)bucket->data; struct evpn_mh_show_ctx *wctx = (struct evpn_mh_show_ctx *)ctxt; zebra_evpn_es_evi_show_one_evpn(zevpn, wctx->vty, @@ -399,7 +399,7 @@ void zebra_evpn_es_evi_show(struct vty *vty, bool uj, int detail) void zebra_evpn_es_evi_show_vni(struct vty *vty, bool uj, vni_t vni, int detail) { json_object *json_array = NULL; - zebra_evpn_t *zevpn; + struct zebra_evpn *zevpn; zevpn = zebra_evpn_lookup(vni); if (uj) @@ -425,7 +425,7 @@ void zebra_evpn_es_evi_show_vni(struct vty *vty, bool uj, vni_t vni, int detail) } /* Initialize the ES tables maintained per-L2_VNI */ -void zebra_evpn_es_evi_init(zebra_evpn_t *zevpn) +void zebra_evpn_es_evi_init(struct zebra_evpn *zevpn) { /* Initialize the ES-EVI RB tree */ RB_INIT(zebra_es_evi_rb_head, &zevpn->es_evi_rb_tree); @@ -438,7 +438,7 @@ void zebra_evpn_es_evi_init(zebra_evpn_t *zevpn) } /* Cleanup the ES info maintained per- EVPN */ -void zebra_evpn_es_evi_cleanup(zebra_evpn_t *zevpn) +void zebra_evpn_es_evi_cleanup(struct zebra_evpn *zevpn) { struct zebra_evpn_es_evi *es_evi; struct zebra_evpn_es_evi *es_evi_next; @@ -455,7 +455,7 @@ void zebra_evpn_es_evi_cleanup(zebra_evpn_t *zevpn) /* called when the oper state or bridge membership changes for the * vxlan device */ -void zebra_evpn_update_all_es(zebra_evpn_t *zevpn) +void zebra_evpn_update_all_es(struct zebra_evpn *zevpn) { struct zebra_evpn_es_evi *es_evi; struct listnode *node; @@ -664,7 +664,8 @@ void zebra_evpn_acc_bd_svi_mac_add(struct interface *vlan_if) /* called when a EVPN-L2VNI is set or cleared against a BD */ static void zebra_evpn_acc_bd_evpn_set(struct zebra_evpn_access_bd *acc_bd, - zebra_evpn_t *zevpn, zebra_evpn_t *old_zevpn) + struct zebra_evpn *zevpn, + struct zebra_evpn *old_zevpn) { struct zebra_if *zif; struct listnode *node; @@ -698,7 +699,7 @@ void zebra_evpn_vl_vxl_ref(uint16_t vid, struct zebra_if *vxlan_zif) { struct zebra_evpn_access_bd *acc_bd; struct zebra_if *old_vxlan_zif; - zebra_evpn_t *old_zevpn; + struct zebra_evpn *old_zevpn; if (!vid) return; @@ -760,8 +761,8 @@ void zebra_evpn_vl_vxl_deref(uint16_t vid, struct zebra_if *vxlan_zif) } /* handle EVPN add/del */ -void zebra_evpn_vxl_evpn_set(struct zebra_if *zif, zebra_evpn_t *zevpn, - bool set) +void zebra_evpn_vxl_evpn_set(struct zebra_if *zif, struct zebra_evpn *zevpn, + bool set) { struct zebra_l2info_vxlan *vxl; struct zebra_evpn_access_bd *acc_bd; @@ -783,7 +784,7 @@ void zebra_evpn_vxl_evpn_set(struct zebra_if *zif, zebra_evpn_t *zevpn, } } else { if (acc_bd->zevpn) { - zebra_evpn_t *old_zevpn = acc_bd->zevpn; + struct zebra_evpn *old_zevpn = acc_bd->zevpn; acc_bd->zevpn = NULL; zebra_evpn_acc_bd_evpn_set(acc_bd, NULL, old_zevpn); } @@ -2561,7 +2562,7 @@ bool zebra_evpn_es_mac_ref(zebra_mac_t *mac, const esi_t *esi) /* Inform BGP about local ES-EVI add or del */ static int zebra_evpn_es_evi_send_to_client(struct zebra_evpn_es *es, - zebra_evpn_t *zevpn, bool add) + struct zebra_evpn *zevpn, bool add) { struct zserv *client; struct stream *s; @@ -3511,7 +3512,7 @@ void zebra_evpn_mh_print(struct vty *vty) * necessary */ /* called when a new vni is added or becomes oper up or becomes a bridge port */ -void zebra_evpn_es_set_base_evpn(zebra_evpn_t *zevpn) +void zebra_evpn_es_set_base_evpn(struct zebra_evpn *zevpn) { struct listnode *node; struct zebra_evpn_es *es; @@ -3560,7 +3561,7 @@ void zebra_evpn_es_set_base_evpn(zebra_evpn_t *zevpn) /* called when a vni is removed or becomes oper down or is removed from a * bridge */ -void zebra_evpn_es_clear_base_evpn(zebra_evpn_t *zevpn) +void zebra_evpn_es_clear_base_evpn(struct zebra_evpn *zevpn) { struct listnode *node; struct zebra_evpn_es *es; @@ -3589,7 +3590,7 @@ void zebra_evpn_es_clear_base_evpn(zebra_evpn_t *zevpn) /* Locate an "eligible" L2-VNI to follow */ static int zebra_evpn_es_get_one_base_evpn_cb(struct hash_bucket *b, void *data) { - zebra_evpn_t *zevpn = b->data; + struct zebra_evpn *zevpn = b->data; zebra_evpn_es_set_base_evpn(zevpn); diff --git a/zebra/zebra_evpn_mh.h b/zebra/zebra_evpn_mh.h index cba536ea89..5b2d392753 100644 --- a/zebra/zebra_evpn_mh.h +++ b/zebra/zebra_evpn_mh.h @@ -113,7 +113,7 @@ RB_PROTOTYPE(zebra_es_rb_head, zebra_evpn_es, rb_node, zebra_es_rb_cmp); */ struct zebra_evpn_es_evi { struct zebra_evpn_es *es; - zebra_evpn_t *zevpn; + struct zebra_evpn *zevpn; /* ES-EVI flags */ uint32_t flags; @@ -183,7 +183,7 @@ struct zebra_evpn_access_bd { /* list of members associated with the BD i.e. (potential) ESs */ struct list *mbr_zifs; /* presence of zevpn activates the EVI on all the ESs in mbr_zifs */ - zebra_evpn_t *zevpn; + struct zebra_evpn *zevpn; /* SVI associated with the VLAN */ struct zebra_if *vlan_zif; }; @@ -224,7 +224,7 @@ struct zebra_evpn_mh_info { * XXX: once single vxlan device model becomes available this will * not be necessary */ - zebra_evpn_t *es_base_evpn; + struct zebra_evpn *es_base_evpn; struct in_addr es_originator_ip; /* L2 NH and NHG ids - @@ -267,7 +267,7 @@ struct zebra_evpn_mh_info { }; /* returns TRUE if the EVPN is ready to be sent to BGP */ -static inline bool zebra_evpn_send_to_client_ok(zebra_evpn_t *zevpn) +static inline bool zebra_evpn_send_to_client_ok(struct zebra_evpn *zevpn) { return !!(zevpn->flags & ZEVPN_READY_FOR_BGP); } @@ -313,12 +313,12 @@ extern void zebra_evpn_mh_terminate(void); extern bool zebra_evpn_is_if_es_capable(struct zebra_if *zif); extern void zebra_evpn_if_init(struct zebra_if *zif); extern void zebra_evpn_if_cleanup(struct zebra_if *zif); -extern void zebra_evpn_es_evi_init(zebra_evpn_t *zevpn); -extern void zebra_evpn_es_evi_cleanup(zebra_evpn_t *zevpn); -extern void zebra_evpn_vxl_evpn_set(struct zebra_if *zif, zebra_evpn_t *zevpn, - bool set); -extern void zebra_evpn_es_set_base_evpn(zebra_evpn_t *zevpn); -extern void zebra_evpn_es_clear_base_evpn(zebra_evpn_t *zevpn); +extern void zebra_evpn_es_evi_init(struct zebra_evpn *zevpn); +extern void zebra_evpn_es_evi_cleanup(struct zebra_evpn *zevpn); +extern void zebra_evpn_vxl_evpn_set(struct zebra_if *zif, + struct zebra_evpn *zevpn, bool set); +extern void zebra_evpn_es_set_base_evpn(struct zebra_evpn *zevpn); +extern void zebra_evpn_es_clear_base_evpn(struct zebra_evpn *zevpn); extern void zebra_evpn_vl_vxl_ref(uint16_t vid, struct zebra_if *vxlan_zif); extern void zebra_evpn_vl_vxl_deref(uint16_t vid, struct zebra_if *vxlan_zif); extern void zebra_evpn_vl_mbr_ref(uint16_t vid, struct zebra_if *zif); @@ -328,7 +328,7 @@ extern void zebra_evpn_es_if_oper_state_change(struct zebra_if *zif, bool up); extern void zebra_evpn_es_show(struct vty *vty, bool uj); extern void zebra_evpn_es_show_detail(struct vty *vty, bool uj); extern void zebra_evpn_es_show_esi(struct vty *vty, bool uj, esi_t *esi); -extern void zebra_evpn_update_all_es(zebra_evpn_t *zevpn); +extern void zebra_evpn_update_all_es(struct zebra_evpn *zevpn); extern void zebra_evpn_proc_remote_es(ZAPI_HANDLER_ARGS); int zebra_evpn_remote_es_add(const esi_t *esi, struct in_addr vtep_ip, bool esr_rxed, uint8_t df_alg, uint16_t df_pref); diff --git a/zebra/zebra_evpn_neigh.c b/zebra/zebra_evpn_neigh.c index 839e8d9ebc..41c95ae2f7 100644 --- a/zebra/zebra_evpn_neigh.c +++ b/zebra/zebra_evpn_neigh.c @@ -88,7 +88,7 @@ struct hash *zebra_neigh_db_create(const char *desc) return hash_create_size(8, neigh_hash_keymake, neigh_cmp, desc); } -uint32_t num_dup_detected_neighs(zebra_evpn_t *zevpn) +uint32_t num_dup_detected_neighs(struct zebra_evpn *zevpn) { unsigned int i; uint32_t num_neighs = 0; @@ -150,7 +150,7 @@ int remote_neigh_count(zebra_mac_t *zmac) /* * Install remote neighbor into the kernel. */ -int zebra_evpn_rem_neigh_install(zebra_evpn_t *zevpn, zebra_neigh_t *n, +int zebra_evpn_rem_neigh_install(struct zebra_evpn *zevpn, zebra_neigh_t *n, bool was_static) { struct interface *vlan_if; @@ -468,7 +468,7 @@ static void zebra_evpn_local_neigh_deref_mac(zebra_neigh_t *n, bool send_mac_update) { zebra_mac_t *mac = n->mac; - zebra_evpn_t *zevpn = n->zevpn; + struct zebra_evpn *zevpn = n->zevpn; bool old_static; bool new_static; @@ -496,7 +496,7 @@ static void zebra_evpn_local_neigh_deref_mac(zebra_neigh_t *n, zebra_evpn_deref_ip2mac(zevpn, mac); } -bool zebra_evpn_neigh_is_bgp_seq_ok(zebra_evpn_t *zevpn, zebra_neigh_t *n, +bool zebra_evpn_neigh_is_bgp_seq_ok(struct zebra_evpn *zevpn, zebra_neigh_t *n, const struct ethaddr *macaddr, uint32_t seq, bool sync) { @@ -542,7 +542,7 @@ bool zebra_evpn_neigh_is_bgp_seq_ok(zebra_evpn_t *zevpn, zebra_neigh_t *n, /* * Add neighbor entry. */ -static zebra_neigh_t *zebra_evpn_neigh_add(zebra_evpn_t *zevpn, +static zebra_neigh_t *zebra_evpn_neigh_add(struct zebra_evpn *zevpn, const struct ipaddr *ip, const struct ethaddr *mac, zebra_mac_t *zmac, uint32_t n_flags) @@ -572,7 +572,7 @@ static zebra_neigh_t *zebra_evpn_neigh_add(zebra_evpn_t *zevpn, /* * Delete neighbor entry. */ -int zebra_evpn_neigh_del(zebra_evpn_t *zevpn, zebra_neigh_t *n) +int zebra_evpn_neigh_del(struct zebra_evpn *zevpn, zebra_neigh_t *n) { zebra_neigh_t *tmp_n; @@ -614,7 +614,7 @@ void zebra_evpn_sync_neigh_del(zebra_neigh_t *n) } zebra_neigh_t * -zebra_evpn_proc_sync_neigh_update(zebra_evpn_t *zevpn, zebra_neigh_t *n, +zebra_evpn_proc_sync_neigh_update(struct zebra_evpn *zevpn, zebra_neigh_t *n, uint16_t ipa_len, const struct ipaddr *ipaddr, uint8_t flags, uint32_t seq, const esi_t *esi, struct sync_mac_ip_ctx *ctx) @@ -816,7 +816,8 @@ zebra_evpn_proc_sync_neigh_update(zebra_evpn_t *zevpn, zebra_neigh_t *n, /* * Uninstall remote neighbor from the kernel. */ -static int zebra_evpn_neigh_uninstall(zebra_evpn_t *zevpn, zebra_neigh_t *n) +static int zebra_evpn_neigh_uninstall(struct zebra_evpn *zevpn, + zebra_neigh_t *n) { struct interface *vlan_if; @@ -874,7 +875,7 @@ static void zebra_evpn_neigh_del_hash_entry(struct hash_bucket *bucket, /* * Delete all neighbor entries for this EVPN. */ -void zebra_evpn_neigh_del_all(zebra_evpn_t *zevpn, int uninstall, +void zebra_evpn_neigh_del_all(struct zebra_evpn *zevpn, int uninstall, int upd_client, uint32_t flags) { struct neigh_walk_ctx wctx; @@ -895,7 +896,7 @@ void zebra_evpn_neigh_del_all(zebra_evpn_t *zevpn, int uninstall, /* * Look up neighbor hash entry. */ -zebra_neigh_t *zebra_evpn_neigh_lookup(zebra_evpn_t *zevpn, +zebra_neigh_t *zebra_evpn_neigh_lookup(struct zebra_evpn *zevpn, const struct ipaddr *ip) { zebra_neigh_t tmp; @@ -912,7 +913,7 @@ zebra_neigh_t *zebra_evpn_neigh_lookup(zebra_evpn_t *zevpn, * Process all neighbors associated with a MAC upon the MAC being learnt * locally or undergoing any other change (such as sequence number). */ -void zebra_evpn_process_neigh_on_local_mac_change(zebra_evpn_t *zevpn, +void zebra_evpn_process_neigh_on_local_mac_change(struct zebra_evpn *zevpn, zebra_mac_t *zmac, bool seq_change, bool es_change) @@ -956,7 +957,7 @@ void zebra_evpn_process_neigh_on_local_mac_change(zebra_evpn_t *zevpn, * Process all neighbors associated with a local MAC upon the MAC being * deleted. */ -void zebra_evpn_process_neigh_on_local_mac_del(zebra_evpn_t *zevpn, +void zebra_evpn_process_neigh_on_local_mac_del(struct zebra_evpn *zevpn, zebra_mac_t *zmac) { zebra_neigh_t *n = NULL; @@ -989,7 +990,7 @@ void zebra_evpn_process_neigh_on_local_mac_del(zebra_evpn_t *zevpn, * Process all neighbors associated with a MAC upon the MAC being remotely * learnt. */ -void zebra_evpn_process_neigh_on_remote_mac_add(zebra_evpn_t *zevpn, +void zebra_evpn_process_neigh_on_remote_mac_add(struct zebra_evpn *zevpn, zebra_mac_t *zmac) { zebra_neigh_t *n = NULL; @@ -1019,7 +1020,7 @@ void zebra_evpn_process_neigh_on_remote_mac_add(zebra_evpn_t *zevpn, * Process all neighbors associated with a remote MAC upon the MAC being * deleted. */ -void zebra_evpn_process_neigh_on_remote_mac_del(zebra_evpn_t *zevpn, +void zebra_evpn_process_neigh_on_remote_mac_del(struct zebra_evpn *zevpn, zebra_mac_t *zmac) { /* NOTE: Currently a NO-OP. */ @@ -1094,7 +1095,7 @@ static int zebra_evpn_dad_ip_auto_recovery_exp(struct thread *t) { struct zebra_vrf *zvrf = NULL; zebra_neigh_t *nbr = NULL; - zebra_evpn_t *zevpn = NULL; + struct zebra_evpn *zevpn = NULL; nbr = THREAD_ARG(t); @@ -1254,7 +1255,8 @@ zebra_evpn_dup_addr_detect_for_neigh(struct zebra_vrf *zvrf, zebra_neigh_t *nbr, } } -int zebra_evpn_local_neigh_update(zebra_evpn_t *zevpn, struct interface *ifp, +int zebra_evpn_local_neigh_update(struct zebra_evpn *zevpn, + struct interface *ifp, const struct ipaddr *ip, const struct ethaddr *macaddr, bool is_router, bool local_inactive, bool dp_static) @@ -1596,7 +1598,8 @@ int zebra_evpn_local_neigh_update(zebra_evpn_t *zevpn, struct interface *ifp, return 0; } -int zebra_evpn_remote_neigh_update(zebra_evpn_t *zevpn, struct interface *ifp, +int zebra_evpn_remote_neigh_update(struct zebra_evpn *zevpn, + struct interface *ifp, const struct ipaddr *ip, const struct ethaddr *macaddr, uint16_t state) @@ -1664,7 +1667,7 @@ zebra_evpn_send_neigh_hash_entry_to_client(struct hash_bucket *bucket, } /* Iterator of a specific EVPN */ -void zebra_evpn_send_neigh_to_client(zebra_evpn_t *zevpn) +void zebra_evpn_send_neigh_to_client(struct zebra_evpn *zevpn) { struct neigh_walk_ctx wctx; @@ -1679,7 +1682,7 @@ void zebra_evpn_clear_dup_neigh_hash(struct hash_bucket *bucket, void *ctxt) { struct neigh_walk_ctx *wctx = ctxt; zebra_neigh_t *nbr; - zebra_evpn_t *zevpn; + struct zebra_evpn *zevpn; char buf[INET6_ADDRSTRLEN]; nbr = (zebra_neigh_t *)bucket->data; @@ -2048,7 +2051,7 @@ void zebra_evpn_print_dad_neigh_hash_detail(struct hash_bucket *bucket, zebra_evpn_print_neigh_hash_detail(bucket, ctxt); } -void zebra_evpn_neigh_remote_macip_add(zebra_evpn_t *zevpn, +void zebra_evpn_neigh_remote_macip_add(struct zebra_evpn *zevpn, struct zebra_vrf *zvrf, const struct ipaddr *ipaddr, zebra_mac_t *mac, struct in_addr vtep_ip, @@ -2182,8 +2185,9 @@ void zebra_evpn_neigh_remote_macip_add(zebra_evpn_t *zevpn, n->rem_seq = seq; } -int zebra_evpn_neigh_gw_macip_add(struct interface *ifp, zebra_evpn_t *zevpn, - struct ipaddr *ip, zebra_mac_t *mac) +int zebra_evpn_neigh_gw_macip_add(struct interface *ifp, + struct zebra_evpn *zevpn, struct ipaddr *ip, + zebra_mac_t *mac) { zebra_neigh_t *n; @@ -2241,7 +2245,7 @@ int zebra_evpn_neigh_gw_macip_add(struct interface *ifp, zebra_evpn_t *zevpn, return 0; } -void zebra_evpn_neigh_remote_uninstall(zebra_evpn_t *zevpn, +void zebra_evpn_neigh_remote_uninstall(struct zebra_evpn *zevpn, struct zebra_vrf *zvrf, zebra_neigh_t *n, zebra_mac_t *mac, const struct ipaddr *ipaddr) @@ -2277,7 +2281,7 @@ void zebra_evpn_neigh_remote_uninstall(zebra_evpn_t *zevpn, } } -int zebra_evpn_neigh_del_ip(zebra_evpn_t *zevpn, const struct ipaddr *ip) +int zebra_evpn_neigh_del_ip(struct zebra_evpn *zevpn, const struct ipaddr *ip) { zebra_neigh_t *n; zebra_mac_t *zmac; diff --git a/zebra/zebra_evpn_neigh.h b/zebra/zebra_evpn_neigh.h index 3735a833fd..e36ec98a0e 100644 --- a/zebra/zebra_evpn_neigh.h +++ b/zebra/zebra_evpn_neigh.h @@ -63,7 +63,7 @@ struct zebra_neigh_t_ { /* Underlying interface. */ ifindex_t ifindex; - zebra_evpn_t *zevpn; + struct zebra_evpn *zevpn; uint32_t flags; #define ZEBRA_NEIGH_LOCAL 0x01 @@ -123,7 +123,7 @@ struct zebra_neigh_t_ { * Context for neighbor hash walk - used by callbacks. */ struct neigh_walk_ctx { - zebra_evpn_t *zevpn; /* VNI hash */ + struct zebra_evpn *zevpn; /* VNI hash */ struct zebra_vrf *zvrf; /* VRF - for client notification. */ int uninstall; /* uninstall from kernel? */ int upd_client; /* uninstall from client? */ @@ -211,10 +211,10 @@ int remote_neigh_count(zebra_mac_t *zmac); int neigh_list_cmp(void *p1, void *p2); struct hash *zebra_neigh_db_create(const char *desc); -uint32_t num_dup_detected_neighs(zebra_evpn_t *zevpn); +uint32_t num_dup_detected_neighs(struct zebra_evpn *zevpn); void zebra_evpn_find_neigh_addr_width(struct hash_bucket *bucket, void *ctxt); int remote_neigh_count(zebra_mac_t *zmac); -int zebra_evpn_rem_neigh_install(zebra_evpn_t *zevpn, zebra_neigh_t *n, +int zebra_evpn_rem_neigh_install(struct zebra_evpn *zevpn, zebra_neigh_t *n, bool was_static); void zebra_evpn_install_neigh_hash(struct hash_bucket *bucket, void *ctxt); int zebra_evpn_neigh_send_add_to_client(vni_t vni, const struct ipaddr *ip, @@ -224,42 +224,44 @@ int zebra_evpn_neigh_send_add_to_client(vni_t vni, const struct ipaddr *ip, int zebra_evpn_neigh_send_del_to_client(vni_t vni, struct ipaddr *ip, struct ethaddr *macaddr, uint32_t flags, int state, bool force); -bool zebra_evpn_neigh_is_bgp_seq_ok(zebra_evpn_t *zevpn, zebra_neigh_t *n, +bool zebra_evpn_neigh_is_bgp_seq_ok(struct zebra_evpn *zevpn, zebra_neigh_t *n, const struct ethaddr *macaddr, uint32_t seq, bool sync); -int zebra_evpn_neigh_del(zebra_evpn_t *zevpn, zebra_neigh_t *n); +int zebra_evpn_neigh_del(struct zebra_evpn *zevpn, zebra_neigh_t *n); void zebra_evpn_sync_neigh_del(zebra_neigh_t *n); zebra_neigh_t * -zebra_evpn_proc_sync_neigh_update(zebra_evpn_t *zevpn, zebra_neigh_t *n, +zebra_evpn_proc_sync_neigh_update(struct zebra_evpn *zevpn, zebra_neigh_t *n, uint16_t ipa_len, const struct ipaddr *ipaddr, uint8_t flags, uint32_t seq, const esi_t *esi, struct sync_mac_ip_ctx *ctx); -void zebra_evpn_neigh_del_all(zebra_evpn_t *zevpn, int uninstall, +void zebra_evpn_neigh_del_all(struct zebra_evpn *zevpn, int uninstall, int upd_client, uint32_t flags); -zebra_neigh_t *zebra_evpn_neigh_lookup(zebra_evpn_t *zevpn, +zebra_neigh_t *zebra_evpn_neigh_lookup(struct zebra_evpn *zevpn, const struct ipaddr *ip); -int zebra_evpn_rem_neigh_install(zebra_evpn_t *zevpn, zebra_neigh_t *n, +int zebra_evpn_rem_neigh_install(struct zebra_evpn *zevpn, zebra_neigh_t *n, bool was_static); -void zebra_evpn_process_neigh_on_remote_mac_add(zebra_evpn_t *zevpn, +void zebra_evpn_process_neigh_on_remote_mac_add(struct zebra_evpn *zevpn, zebra_mac_t *zmac); -void zebra_evpn_process_neigh_on_local_mac_del(zebra_evpn_t *zevpn, +void zebra_evpn_process_neigh_on_local_mac_del(struct zebra_evpn *zevpn, zebra_mac_t *zmac); -void zebra_evpn_process_neigh_on_local_mac_change(zebra_evpn_t *zevpn, +void zebra_evpn_process_neigh_on_local_mac_change(struct zebra_evpn *zevpn, zebra_mac_t *zmac, bool seq_change, bool es_change); -void zebra_evpn_process_neigh_on_remote_mac_del(zebra_evpn_t *zevpn, +void zebra_evpn_process_neigh_on_remote_mac_del(struct zebra_evpn *zevpn, zebra_mac_t *zmac); -int zebra_evpn_local_neigh_update(zebra_evpn_t *zevpn, struct interface *ifp, +int zebra_evpn_local_neigh_update(struct zebra_evpn *zevpn, + struct interface *ifp, const struct ipaddr *ip, const struct ethaddr *macaddr, bool is_router, bool local_inactive, bool dp_static); -int zebra_evpn_remote_neigh_update(zebra_evpn_t *zevpn, struct interface *ifp, +int zebra_evpn_remote_neigh_update(struct zebra_evpn *zevpn, + struct interface *ifp, const struct ipaddr *ip, const struct ethaddr *macaddr, uint16_t state); -void zebra_evpn_send_neigh_to_client(zebra_evpn_t *zevpn); +void zebra_evpn_send_neigh_to_client(struct zebra_evpn *zevpn); void zebra_evpn_clear_dup_neigh_hash(struct hash_bucket *bucket, void *ctxt); void zebra_evpn_print_neigh(zebra_neigh_t *n, void *ctxt, json_object *json); void zebra_evpn_print_neigh_hash(struct hash_bucket *bucket, void *ctxt); @@ -268,18 +270,19 @@ void zebra_evpn_print_neigh_hash_detail(struct hash_bucket *bucket, void *ctxt); void zebra_evpn_print_dad_neigh_hash(struct hash_bucket *bucket, void *ctxt); void zebra_evpn_print_dad_neigh_hash_detail(struct hash_bucket *bucket, void *ctxt); -void zebra_evpn_neigh_remote_macip_add(zebra_evpn_t *zevpn, +void zebra_evpn_neigh_remote_macip_add(struct zebra_evpn *zevpn, struct zebra_vrf *zvrf, const struct ipaddr *ipaddr, zebra_mac_t *mac, struct in_addr vtep_ip, uint8_t flags, uint32_t seq); -int zebra_evpn_neigh_gw_macip_add(struct interface *ifp, zebra_evpn_t *zevpn, - struct ipaddr *ip, zebra_mac_t *mac); -void zebra_evpn_neigh_remote_uninstall(zebra_evpn_t *zevpn, +int zebra_evpn_neigh_gw_macip_add(struct interface *ifp, + struct zebra_evpn *zevpn, struct ipaddr *ip, + zebra_mac_t *mac); +void zebra_evpn_neigh_remote_uninstall(struct zebra_evpn *zevpn, struct zebra_vrf *zvrf, zebra_neigh_t *n, zebra_mac_t *mac, const struct ipaddr *ipaddr); -int zebra_evpn_neigh_del_ip(zebra_evpn_t *zevpn, const struct ipaddr *ip); +int zebra_evpn_neigh_del_ip(struct zebra_evpn *zevpn, const struct ipaddr *ip); #ifdef __cplusplus diff --git a/zebra/zebra_evpn_vxlan.h b/zebra/zebra_evpn_vxlan.h index bf8904d492..c7acd23436 100644 --- a/zebra/zebra_evpn_vxlan.h +++ b/zebra/zebra_evpn_vxlan.h @@ -47,7 +47,7 @@ zebra_get_vrr_intf_for_svi(struct interface *ifp) } /* EVPN<=>vxlan_zif association */ -static inline void zevpn_vxlan_if_set(zebra_evpn_t *zevpn, +static inline void zevpn_vxlan_if_set(struct zebra_evpn *zevpn, struct interface *ifp, bool set) { struct zebra_if *zif; diff --git a/zebra/zebra_vxlan.c b/zebra/zebra_vxlan.c index 2fcaefdfbf..574a25ce78 100644 --- a/zebra/zebra_vxlan.c +++ b/zebra/zebra_vxlan.c @@ -200,7 +200,7 @@ static void zevpn_print_neigh_hash_all_evpn(struct hash_bucket *bucket, { struct vty *vty; json_object *json = NULL, *json_evpn = NULL; - zebra_evpn_t *zevpn; + struct zebra_evpn *zevpn; uint32_t num_neigh; struct neigh_walk_ctx wctx; char vni_str[VNI_STR_LEN]; @@ -210,7 +210,7 @@ static void zevpn_print_neigh_hash_all_evpn(struct hash_bucket *bucket, json = (json_object *)args[1]; print_dup = (uint32_t)(uintptr_t)args[2]; - zevpn = (zebra_evpn_t *)bucket->data; + zevpn = (struct zebra_evpn *)bucket->data; num_neigh = hashcount(zevpn->neigh_table); @@ -267,7 +267,7 @@ static void zevpn_print_neigh_hash_all_evpn_detail(struct hash_bucket *bucket, { struct vty *vty; json_object *json = NULL, *json_evpn = NULL; - zebra_evpn_t *zevpn; + struct zebra_evpn *zevpn; uint32_t num_neigh; struct neigh_walk_ctx wctx; char vni_str[VNI_STR_LEN]; @@ -277,7 +277,7 @@ static void zevpn_print_neigh_hash_all_evpn_detail(struct hash_bucket *bucket, json = (json_object *)args[1]; print_dup = (uint32_t)(uintptr_t)args[2]; - zevpn = (zebra_evpn_t *)bucket->data; + zevpn = (struct zebra_evpn *)bucket->data; if (!zevpn) { if (json) vty_out(vty, "{}\n"); @@ -402,7 +402,7 @@ static void zevpn_print_mac_hash_all_evpn(struct hash_bucket *bucket, void *ctxt struct vty *vty; json_object *json = NULL, *json_evpn = NULL; json_object *json_mac = NULL; - zebra_evpn_t *zevpn; + struct zebra_evpn *zevpn; uint32_t num_macs; struct mac_walk_ctx *wctx = ctxt; char vni_str[VNI_STR_LEN]; @@ -410,7 +410,7 @@ static void zevpn_print_mac_hash_all_evpn(struct hash_bucket *bucket, void *ctxt vty = wctx->vty; json = wctx->json; - zevpn = (zebra_evpn_t *)bucket->data; + zevpn = (struct zebra_evpn *)bucket->data; wctx->zevpn = zevpn; /*We are iterating over a new VNI, set the count to 0*/ @@ -477,7 +477,7 @@ static void zevpn_print_mac_hash_all_evpn_detail(struct hash_bucket *bucket, struct vty *vty; json_object *json = NULL, *json_evpn = NULL; json_object *json_mac = NULL; - zebra_evpn_t *zevpn; + struct zebra_evpn *zevpn; uint32_t num_macs; struct mac_walk_ctx *wctx = ctxt; char vni_str[VNI_STR_LEN]; @@ -485,7 +485,7 @@ static void zevpn_print_mac_hash_all_evpn_detail(struct hash_bucket *bucket, vty = wctx->vty; json = wctx->json; - zevpn = (zebra_evpn_t *)bucket->data; + zevpn = (struct zebra_evpn *)bucket->data; if (!zevpn) { if (json) vty_out(vty, "{}\n"); @@ -690,7 +690,7 @@ static void zl3vni_print(zebra_l3vni_t *zl3vni, void **ctx) char buf[PREFIX_STRLEN]; struct vty *vty = NULL; json_object *json = NULL; - zebra_evpn_t *zevpn = NULL; + struct zebra_evpn *zevpn = NULL; json_object *json_evpn_list = NULL; struct listnode *node = NULL, *nnode = NULL; @@ -887,7 +887,7 @@ struct interface *zvni_map_to_svi(vlanid_t vid, struct interface *br_if) return tmp_if; } -static int zebra_evpn_vxlan_del(zebra_evpn_t *zevpn) +static int zebra_evpn_vxlan_del(struct zebra_evpn *zevpn) { zevpn_vxlan_if_set(zevpn, zevpn->vxlan_if, false /* set */); @@ -914,7 +914,7 @@ static int zevpn_build_hash_table_zns(struct ns *ns, /* Walk VxLAN interfaces and create EVPN hash. */ for (rn = route_top(zns->if_table); rn; rn = route_next(rn)) { vni_t vni; - zebra_evpn_t *zevpn = NULL; + struct zebra_evpn *zevpn = NULL; zebra_l3vni_t *zl3vni = NULL; struct zebra_if *zif; struct zebra_l2info_vxlan *vxl; @@ -1068,11 +1068,11 @@ static void zevpn_build_hash_table(void) */ static void zebra_evpn_vxlan_cleanup_all(struct hash_bucket *bucket, void *arg) { - zebra_evpn_t *zevpn = NULL; + struct zebra_evpn *zevpn = NULL; zebra_l3vni_t *zl3vni = NULL; struct zebra_vrf *zvrf = (struct zebra_vrf *)arg; - zevpn = (zebra_evpn_t *)bucket->data; + zevpn = (struct zebra_evpn *)bucket->data; /* remove from l3-vni list */ if (zvrf->l3vni) @@ -1862,7 +1862,7 @@ static zebra_l3vni_t *zl3vni_from_svi(struct interface *ifp, vni_t vni_id_from_svi(struct interface *ifp, struct interface *br_if) { vni_t vni = 0; - zebra_evpn_t *zevpn = NULL; + struct zebra_evpn *zevpn = NULL; zebra_l3vni_t *zl3vni = NULL; /* Check if an L3VNI belongs to this SVI interface. @@ -2004,7 +2004,7 @@ static void zebra_vxlan_process_l3vni_oper_down(zebra_l3vni_t *zl3vni) static void zevpn_add_to_l3vni_list(struct hash_bucket *bucket, void *ctxt) { - zebra_evpn_t *zevpn = (zebra_evpn_t *)bucket->data; + struct zebra_evpn *zevpn = (struct zebra_evpn *)bucket->data; zebra_l3vni_t *zl3vni = (zebra_l3vni_t *)ctxt; if (zevpn->vrf_id == zl3vni_vrf_id(zl3vni)) @@ -2020,7 +2020,7 @@ static void zevpn_add_to_l3vni_list(struct hash_bucket *bucket, void *ctxt) static int zebra_vxlan_handle_vni_transition(struct zebra_vrf *zvrf, vni_t vni, int add) { - zebra_evpn_t *zevpn = NULL; + struct zebra_evpn *zevpn = NULL; /* There is a possibility that VNI notification was already received * from kernel and we programmed it as L2-VNI @@ -2565,7 +2565,7 @@ void zebra_vxlan_print_vrf_vni(struct vty *vty, struct zebra_vrf *zvrf, void zebra_vxlan_print_neigh_vni(struct vty *vty, struct zebra_vrf *zvrf, vni_t vni, bool use_json) { - zebra_evpn_t *zevpn; + struct zebra_evpn *zevpn; uint32_t num_neigh; struct neigh_walk_ctx wctx; json_object *json = NULL; @@ -2683,7 +2683,7 @@ void zebra_vxlan_print_specific_neigh_vni(struct vty *vty, struct zebra_vrf *zvrf, vni_t vni, struct ipaddr *ip, bool use_json) { - zebra_evpn_t *zevpn; + struct zebra_evpn *zevpn; zebra_neigh_t *n; json_object *json = NULL; @@ -2725,7 +2725,7 @@ void zebra_vxlan_print_neigh_vni_vtep(struct vty *vty, struct zebra_vrf *zvrf, vni_t vni, struct in_addr vtep_ip, bool use_json) { - zebra_evpn_t *zevpn; + struct zebra_evpn *zevpn; uint32_t num_neigh; struct neigh_walk_ctx wctx; json_object *json = NULL; @@ -2774,7 +2774,7 @@ void zebra_vxlan_print_neigh_vni_dad(struct vty *vty, vni_t vni, bool use_json) { - zebra_evpn_t *zevpn; + struct zebra_evpn *zevpn; uint32_t num_neigh; struct neigh_walk_ctx wctx; json_object *json = NULL; @@ -2837,7 +2837,7 @@ void zebra_vxlan_print_neigh_vni_dad(struct vty *vty, void zebra_vxlan_print_macs_vni(struct vty *vty, struct zebra_vrf *zvrf, vni_t vni, bool use_json) { - zebra_evpn_t *zevpn; + struct zebra_evpn *zevpn; uint32_t num_macs; struct mac_walk_ctx wctx; json_object *json = NULL; @@ -2987,7 +2987,7 @@ void zebra_vxlan_print_specific_mac_vni(struct vty *vty, struct zebra_vrf *zvrf, vni_t vni, struct ethaddr *macaddr, bool use_json) { - zebra_evpn_t *zevpn; + struct zebra_evpn *zevpn; zebra_mac_t *mac; json_object *json = NULL; @@ -3029,7 +3029,7 @@ void zebra_vxlan_print_macs_vni_dad(struct vty *vty, struct zebra_vrf *zvrf, vni_t vni, bool use_json) { - zebra_evpn_t *zevpn; + struct zebra_evpn *zevpn; struct mac_walk_ctx wctx; uint32_t num_macs; json_object *json = NULL; @@ -3086,7 +3086,7 @@ int zebra_vxlan_clear_dup_detect_vni_mac(struct zebra_vrf *zvrf, vni_t vni, struct ethaddr *macaddr, char *errmsg, size_t errmsg_len) { - zebra_evpn_t *zevpn; + struct zebra_evpn *zevpn; zebra_mac_t *mac; struct listnode *node = NULL; zebra_neigh_t *nbr = NULL; @@ -3174,7 +3174,7 @@ int zebra_vxlan_clear_dup_detect_vni_ip(struct zebra_vrf *zvrf, vni_t vni, struct ipaddr *ip, char *errmsg, size_t errmsg_len) { - zebra_evpn_t *zevpn; + struct zebra_evpn *zevpn; zebra_neigh_t *nbr; zebra_mac_t *mac; char buf[INET6_ADDRSTRLEN]; @@ -3241,7 +3241,7 @@ static void zevpn_clear_dup_mac_hash(struct hash_bucket *bucket, void *ctxt) { struct mac_walk_ctx *wctx = ctxt; zebra_mac_t *mac; - zebra_evpn_t *zevpn; + struct zebra_evpn *zevpn; struct listnode *node = NULL; zebra_neigh_t *nbr = NULL; @@ -3296,12 +3296,12 @@ static void zevpn_clear_dup_mac_hash(struct hash_bucket *bucket, void *ctxt) static void zevpn_clear_dup_detect_hash_vni_all(struct hash_bucket *bucket, void **args) { - zebra_evpn_t *zevpn; + struct zebra_evpn *zevpn; struct zebra_vrf *zvrf; struct mac_walk_ctx m_wctx; struct neigh_walk_ctx n_wctx; - zevpn = (zebra_evpn_t *)bucket->data; + zevpn = (struct zebra_evpn *)bucket->data; if (!zevpn) return; @@ -3342,7 +3342,7 @@ int zebra_vxlan_clear_dup_detect_vni_all(struct zebra_vrf *zvrf) int zebra_vxlan_clear_dup_detect_vni(struct zebra_vrf *zvrf, vni_t vni) { - zebra_evpn_t *zevpn; + struct zebra_evpn *zevpn; struct mac_walk_ctx m_wctx; struct neigh_walk_ctx n_wctx; @@ -3380,7 +3380,7 @@ void zebra_vxlan_print_macs_vni_vtep(struct vty *vty, struct zebra_vrf *zvrf, vni_t vni, struct in_addr vtep_ip, bool use_json) { - zebra_evpn_t *zevpn; + struct zebra_evpn *zevpn; uint32_t num_macs; struct mac_walk_ctx wctx; json_object *json = NULL; @@ -3438,7 +3438,7 @@ void zebra_vxlan_print_vni(struct vty *vty, struct zebra_vrf *zvrf, vni_t vni, json_object *json = NULL; void *args[2]; zebra_l3vni_t *zl3vni = NULL; - zebra_evpn_t *zevpn = NULL; + struct zebra_evpn *zevpn = NULL; if (!is_evpn_enabled()) return; @@ -3686,7 +3686,7 @@ int zebra_vxlan_handle_kernel_neigh_del(struct interface *ifp, struct interface *link_if, struct ipaddr *ip) { - zebra_evpn_t *zevpn = NULL; + struct zebra_evpn *zevpn = NULL; zebra_l3vni_t *zl3vni = NULL; /* check if this is a remote neigh entry corresponding to remote @@ -3737,7 +3737,7 @@ int zebra_vxlan_handle_kernel_neigh_update(struct interface *ifp, bool is_router, bool local_inactive, bool dp_static) { - zebra_evpn_t *zevpn = NULL; + struct zebra_evpn *zevpn = NULL; zebra_l3vni_t *zl3vni = NULL; /* check if this is a remote neigh entry corresponding to remote @@ -3937,7 +3937,7 @@ int zebra_vxlan_check_readd_vtep(struct interface *ifp, struct zebra_vrf *zvrf = NULL; struct zebra_l2info_vxlan *vxl; vni_t vni; - zebra_evpn_t *zevpn = NULL; + struct zebra_evpn *zevpn = NULL; zebra_vtep_t *zvtep = NULL; zif = ifp->info; @@ -3986,7 +3986,7 @@ static int zebra_vxlan_check_del_local_mac(struct interface *ifp, struct zebra_if *zif; struct zebra_l2info_vxlan *vxl; vni_t vni; - zebra_evpn_t *zevpn; + struct zebra_evpn *zevpn; zebra_mac_t *mac; zif = ifp->info; @@ -4082,7 +4082,7 @@ int zebra_vxlan_dp_network_mac_del(struct interface *ifp, struct zebra_if *zif = NULL; struct zebra_l2info_vxlan *vxl = NULL; vni_t vni; - zebra_evpn_t *zevpn = NULL; + struct zebra_evpn *zevpn = NULL; zebra_l3vni_t *zl3vni = NULL; zebra_mac_t *mac = NULL; @@ -4138,7 +4138,7 @@ int zebra_vxlan_dp_network_mac_del(struct interface *ifp, int zebra_vxlan_local_mac_del(struct interface *ifp, struct interface *br_if, struct ethaddr *macaddr, vlanid_t vid) { - zebra_evpn_t *zevpn; + struct zebra_evpn *zevpn; zebra_mac_t *mac; /* We are interested in MACs only on ports or (port, VLAN) that @@ -4175,7 +4175,7 @@ int zebra_vxlan_local_mac_add_update(struct interface *ifp, bool sticky, bool local_inactive, bool dp_static) { - zebra_evpn_t *zevpn; + struct zebra_evpn *zevpn; struct zebra_vrf *zvrf; assert(ifp); @@ -4270,7 +4270,7 @@ stream_failure: void zebra_vxlan_remote_vtep_del(vrf_id_t vrf_id, vni_t vni, struct in_addr vtep_ip) { - zebra_evpn_t *zevpn; + struct zebra_evpn *zevpn; zebra_vtep_t *zvtep; struct interface *ifp; struct zebra_if *zif; @@ -4334,7 +4334,7 @@ void zebra_vxlan_remote_vtep_del(vrf_id_t vrf_id, vni_t vni, void zebra_vxlan_remote_vtep_add(vrf_id_t vrf_id, vni_t vni, struct in_addr vtep_ip, int flood_control) { - zebra_evpn_t *zevpn; + struct zebra_evpn *zevpn; struct interface *ifp; struct zebra_if *zif; zebra_vtep_t *zvtep; @@ -4468,7 +4468,7 @@ int zebra_vxlan_add_del_gw_macip(struct interface *ifp, const struct prefix *p, { struct ipaddr ip; struct ethaddr macaddr; - zebra_evpn_t *zevpn = NULL; + struct zebra_evpn *zevpn = NULL; memset(&ip, 0, sizeof(struct ipaddr)); memset(&macaddr, 0, sizeof(struct ethaddr)); @@ -4603,7 +4603,7 @@ int zebra_vxlan_svi_down(struct interface *ifp, struct interface *link_if) /* remove association with svi-if */ zl3vni->svi_if = NULL; } else { - zebra_evpn_t *zevpn = NULL; + struct zebra_evpn *zevpn = NULL; /* Unlink the SVI from the access VLAN */ zebra_evpn_acc_bd_svi_set(ifp->info, link_if->info, false); @@ -4635,7 +4635,7 @@ int zebra_vxlan_svi_down(struct interface *ifp, struct interface *link_if) */ int zebra_vxlan_svi_up(struct interface *ifp, struct interface *link_if) { - zebra_evpn_t *zevpn = NULL; + struct zebra_evpn *zevpn = NULL; zebra_l3vni_t *zl3vni = NULL; zl3vni = zl3vni_from_svi(ifp, link_if); @@ -4769,7 +4769,7 @@ int zebra_vxlan_if_down(struct interface *ifp) struct zebra_if *zif = NULL; struct zebra_l2info_vxlan *vxl = NULL; zebra_l3vni_t *zl3vni = NULL; - zebra_evpn_t *zevpn; + struct zebra_evpn *zevpn; /* Check if EVPN is enabled. */ if (!is_evpn_enabled()) @@ -4831,7 +4831,7 @@ int zebra_vxlan_if_up(struct interface *ifp) vni_t vni; struct zebra_if *zif = NULL; struct zebra_l2info_vxlan *vxl = NULL; - zebra_evpn_t *zevpn = NULL; + struct zebra_evpn *zevpn = NULL; zebra_l3vni_t *zl3vni = NULL; /* Check if EVPN is enabled. */ @@ -4908,7 +4908,7 @@ int zebra_vxlan_if_del(struct interface *ifp) vni_t vni; struct zebra_if *zif = NULL; struct zebra_l2info_vxlan *vxl = NULL; - zebra_evpn_t *zevpn = NULL; + struct zebra_evpn *zevpn = NULL; zebra_l3vni_t *zl3vni = NULL; /* Check if EVPN is enabled. */ @@ -4982,7 +4982,7 @@ int zebra_vxlan_if_update(struct interface *ifp, uint16_t chgflags) vni_t vni; struct zebra_if *zif = NULL; struct zebra_l2info_vxlan *vxl = NULL; - zebra_evpn_t *zevpn = NULL; + struct zebra_evpn *zevpn = NULL; zebra_l3vni_t *zl3vni = NULL; struct interface *vlan_if = NULL; @@ -5159,7 +5159,7 @@ int zebra_vxlan_if_add(struct interface *ifp) vni_t vni; struct zebra_if *zif = NULL; struct zebra_l2info_vxlan *vxl = NULL; - zebra_evpn_t *zevpn = NULL; + struct zebra_evpn *zevpn = NULL; zebra_l3vni_t *zl3vni = NULL; /* Check if EVPN is enabled. */ @@ -5235,24 +5235,15 @@ int zebra_vxlan_if_add(struct interface *ifp) listnode_add_sort_nodup(zl3vni->l2vnis, zevpn); } - if (IS_ZEBRA_DEBUG_VXLAN) { - char addr_buf1[INET_ADDRSTRLEN]; - char addr_buf2[INET_ADDRSTRLEN]; - - inet_ntop(AF_INET, &vxl->vtep_ip, - addr_buf1, INET_ADDRSTRLEN); - inet_ntop(AF_INET, &vxl->mcast_grp, - addr_buf2, INET_ADDRSTRLEN); - + if (IS_ZEBRA_DEBUG_VXLAN) zlog_debug( - "Add L2-VNI %u VRF %s intf %s(%u) VLAN %u local IP %s mcast_grp %s master %u", + "Add L2-VNI %u VRF %s intf %s(%u) VLAN %u local IP %pI4 mcast_grp %pI4 master %u", vni, vlan_if ? vrf_id_to_name(vlan_if->vrf_id) : VRF_DEFAULT_NAME, ifp->name, ifp->ifindex, vxl->access_vlan, - addr_buf1, addr_buf2, + &vxl->vtep_ip, &vxl->mcast_grp, zif->brslave_info.bridge_ifindex); - } /* If down or not mapped to a bridge, we're done. */ if (!if_is_operative(ifp) || !zif->brslave_info.br_if) @@ -5488,7 +5479,7 @@ void zebra_vxlan_advertise_svi_macip(ZAPI_HANDLER_ARGS) struct stream *s; int advertise; vni_t vni = 0; - zebra_evpn_t *zevpn = NULL; + struct zebra_evpn *zevpn = NULL; struct interface *ifp = NULL; if (!EVPN_ENABLED(zvrf)) { @@ -5588,7 +5579,7 @@ void zebra_vxlan_advertise_subnet(ZAPI_HANDLER_ARGS) struct stream *s; int advertise; vni_t vni = 0; - zebra_evpn_t *zevpn = NULL; + struct zebra_evpn *zevpn = NULL; struct interface *ifp = NULL; struct zebra_if *zif = NULL; struct zebra_l2info_vxlan zl2_info; @@ -5654,7 +5645,7 @@ void zebra_vxlan_advertise_gw_macip(ZAPI_HANDLER_ARGS) struct stream *s; int advertise; vni_t vni = 0; - zebra_evpn_t *zevpn = NULL; + struct zebra_evpn *zevpn = NULL; struct interface *ifp = NULL; if (!EVPN_ENABLED(zvrf)) { diff --git a/zebra/zebra_vxlan_private.h b/zebra/zebra_vxlan_private.h index 84ac76b3b9..6deaef2af7 100644 --- a/zebra/zebra_vxlan_private.h +++ b/zebra/zebra_vxlan_private.h @@ -208,7 +208,7 @@ static inline void zl3vni_get_svi_rmac(zebra_l3vni_t *zl3vni, /* context for neigh hash walk - update l3vni and rmac */ struct neigh_l3info_walk_ctx { - zebra_evpn_t *zevpn; + struct zebra_evpn *zevpn; zebra_l3vni_t *zl3vni; int add; }; @@ -256,7 +256,7 @@ typedef struct zebra_vxlan_sg_ { uint32_t ref_cnt; } zebra_vxlan_sg_t; -extern zebra_evpn_t *zevpn_lookup(vni_t vni); +extern struct zebra_evpn *zevpn_lookup(vni_t vni); extern void zebra_vxlan_sync_mac_dp_install(zebra_mac_t *mac, bool set_inactive, bool force_clear_static, const char *caller); extern bool zebra_evpn_do_dup_addr_detect(struct zebra_vrf *zvrf); -- 2.39.5