struct pim_instance *pim;
/* key */
- struct prefix_sg sg;
+ pim_sgaddr sg;
char sg_str[PIM_SG_LEN];
enum pim_vxlan_sg_flags flags;
*/
static inline bool pim_vxlan_is_orig_mroute(struct pim_vxlan_sg *vxlan_sg)
{
- return (vxlan_sg->sg.src.s_addr != INADDR_ANY);
+ return !pim_addr_is_any(vxlan_sg->sg.src);
}
static inline bool pim_vxlan_is_local_sip(struct pim_upstream *up)
{
- return (up->sg.src.s_addr != INADDR_ANY) &&
- up->rpf.source_nexthop.interface &&
- if_is_loopback_or_vrf(up->rpf.source_nexthop.interface);
+ return !pim_addr_is_any(up->sg.src) &&
+ up->rpf.source_nexthop.interface &&
+ if_is_loopback(up->rpf.source_nexthop.interface);
}
static inline bool pim_vxlan_is_term_dev_cfg(struct pim_instance *pim,
extern struct pim_vxlan *pim_vxlan_p;
extern struct pim_vxlan_sg *pim_vxlan_sg_find(struct pim_instance *pim,
- struct prefix_sg *sg);
+ pim_sgaddr *sg);
extern struct pim_vxlan_sg *pim_vxlan_sg_add(struct pim_instance *pim,
- struct prefix_sg *sg);
-extern void pim_vxlan_sg_del(struct pim_instance *pim, struct prefix_sg *sg);
+ pim_sgaddr *sg);
+extern void pim_vxlan_sg_del(struct pim_instance *pim, pim_sgaddr *sg);
extern void pim_vxlan_update_sg_reg_state(struct pim_instance *pim,
struct pim_upstream *up, bool reg_join);
extern struct pim_interface *pim_vxlan_get_term_ifp(struct pim_instance *pim);