summaryrefslogtreecommitdiffstats
path: root/pimd/pim_vxlan.h
diff options
context:
space:
mode:
authorAnuradha Karuppiah <anuradhak@cumulusnetworks.com>2019-03-25 00:53:32 +0100
committerAnuradha Karuppiah <anuradhak@cumulusnetworks.com>2019-04-20 17:33:23 +0200
commit48b33862456347f8028a30c4b332919d495982ed (patch)
tree07c61aa8c7ae1102dc7145f90e832003b2ca3afc /pimd/pim_vxlan.h
parentpimd: handling termination device in the MFC (diff)
downloadfrr-48b33862456347f8028a30c4b332919d495982ed.tar.xz
frr-48b33862456347f8028a30c4b332919d495982ed.zip
pimd: VxLAN-AA base APIs
1. peerlink-rif as OIF in origination mroutes - Hosts are multi-homed to the anycast-VTEP pair and can send BUM traffic to either switch. But the RP would have only joined one MLAG switch for pulling down the MDT. To make that work we add the peerlink/ISL as an OIF to origination mroutes (TORC11<=>TORC12 is an anycast VTEP pair) - root@TORC11:~# ip mr |grep "(36.0.0.9, 239.1.1.100)" (36.0.0.9, 239.1.1.100) Iif: peerlink-3.4094 Oifs: peerlink-3.4094 uplink-1 root@TORC11:~# root@TORC12:~# ip mr |grep "(36.0.0.9, 239.1.1.100)" (36.0.0.9, 239.1.1.100) Iif: peerlink-3.4094 Oifs: peerlink-3.4094 root@TORC12:~# 2. VTEP-PIP as register source - TORC11 and TORC12 share the same anycast VTEP IP (36.0.0.9 in the above example). And that is the source registered by both VTEPs for all the BUM mcast-groups. However to allow the pim register start machine to close the SIP in the register-pkt's IP header must be set to an unique IP address. This is the VTEP PIP. Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
Diffstat (limited to 'pimd/pim_vxlan.h')
-rw-r--r--pimd/pim_vxlan.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/pimd/pim_vxlan.h b/pimd/pim_vxlan.h
index 66234d26e..cdd250f1c 100644
--- a/pimd/pim_vxlan.h
+++ b/pimd/pim_vxlan.h
@@ -128,5 +128,10 @@ extern void pim_vxlan_del_vif(struct interface *ifp);
extern void pim_vxlan_add_term_dev(struct pim_instance *pim,
struct interface *ifp);
extern void pim_vxlan_del_term_dev(struct pim_instance *pim);
+extern bool pim_vxlan_get_register_src(struct pim_instance *pim,
+ struct pim_upstream *up, struct in_addr *src_p);
+extern void pim_vxlan_mlag_update(bool enable, bool peer_state, uint32_t role,
+ struct interface *peerlink_rif,
+ struct in_addr *reg_addr);
#endif /* PIM_VXLAN_H */