vxlan_info.max_work_cnt = PIM_VXLAN_WORK_MAX;
vxlan_info.flags |= PIM_VXLANF_WORK_INITED;
vxlan_info.work_list = list_new();
- pim_vxlan_work_timer_setup(TRUE /* start */);
+ pim_vxlan_work_timer_setup(true/* start */);
}
static void pim_vxlan_add_work(struct pim_vxlan_sg *vxlan_sg)
* for nht
*/
if (up)
- pim_rpf_update(vxlan_sg->pim, up, NULL, 1 /* is_new */);
+ pim_rpf_update(vxlan_sg->pim, up, NULL);
}
}
nht_p.prefixlen = IPV4_MAX_BITLEN;
nht_p.u.prefix4 = up->upstream_addr;
pim_delete_tracked_nexthop(vxlan_sg->pim,
- &nht_p, up, NULL);
+ &nht_p, up, NULL, false);
}
pim_upstream_ref(up, flags, __PRETTY_FUNCTION__);
vxlan_sg->up = up;
}
/************************** vxlan SG cache management ************************/
-static unsigned int pim_vxlan_sg_hash_key_make(void *p)
+static unsigned int pim_vxlan_sg_hash_key_make(const void *p)
{
- struct pim_vxlan_sg *vxlan_sg = p;
+ const struct pim_vxlan_sg *vxlan_sg = p;
return (jhash_2words(vxlan_sg->sg.src.s_addr,
vxlan_sg->sg.grp.s_addr, 0));
/* add/del upstream entries for the existing vxlan SG when the
* interface becomes available
*/
- hash_iterate(pim->vxlan.sg_hash, pim_vxlan_orig_mr_iif_update, ifp);
+ if (pim->vxlan.sg_hash)
+ hash_iterate(pim->vxlan.sg_hash,
+ pim_vxlan_orig_mr_iif_update, ifp);
}
static void pim_vxlan_set_peerlink_rif(struct pim_instance *pim,
/* add/del upstream entries for the existing vxlan SG when the
* interface becomes available
*/
- hash_iterate(pim->vxlan.sg_hash, pim_vxlan_orig_mr_iif_update, ifp);
+ if (pim->vxlan.sg_hash)
+ hash_iterate(pim->vxlan.sg_hash,
+ pim_vxlan_orig_mr_iif_update, ifp);
}
void pim_vxlan_add_vif(struct interface *ifp)
if (PIM_DEBUG_VXLAN)
zlog_debug("vxlan term oif changed from %s to %s",
pim->vxlan.term_if ? pim->vxlan.term_if->name : "-",
- ifp ? ifp->name : "-");
+ ifp->name);
/* enable pim on the term ifp */
pim_ifp = (struct pim_interface *)ifp->info;
}
pim->vxlan.term_if = ifp;
- hash_iterate(pim_ifp->pim->vxlan.sg_hash,
- pim_vxlan_term_mr_oif_update, ifp);
+
+ if (pim->vxlan.sg_hash)
+ hash_iterate(pim_ifp->pim->vxlan.sg_hash,
+ pim_vxlan_term_mr_oif_update, ifp);
}
void pim_vxlan_del_term_dev(struct pim_instance *pim)
zlog_debug("vxlan term oif changed from %s to -", ifp->name);
pim->vxlan.term_if = NULL;
- hash_iterate(pim->vxlan.sg_hash,
- pim_vxlan_term_mr_oif_update, NULL);
+
+ if (pim->vxlan.sg_hash)
+ hash_iterate(pim->vxlan.sg_hash,
+ pim_vxlan_term_mr_oif_update, NULL);
pim_ifp = (struct pim_interface *)ifp->info;
if (pim_ifp) {