summaryrefslogtreecommitdiffstats
path: root/pimd/pim_vxlan_instance.h
diff options
context:
space:
mode:
authorAnuradha Karuppiah <anuradhak@cumulusnetworks.com>2019-03-22 16:53:39 +0100
committerAnuradha Karuppiah <anuradhak@cumulusnetworks.com>2019-04-20 17:33:21 +0200
commitb07d897ec1b8782a904eaf6931c964dd70f81ec1 (patch)
treecbee15f1a0fec668f1fa57770a761a22c973af68 /pimd/pim_vxlan_instance.h
parentpimd: add new source types for vxlan orgination and termination mroutes (diff)
downloadfrr-b07d897ec1b8782a904eaf6931c964dd70f81ec1.tar.xz
frr-b07d897ec1b8782a904eaf6931c964dd70f81ec1.zip
pimd: definition of pim-evpn origination and termination devices
Two devices have special significance to multicast VxLAN tunnels - 1. tunnel origination device - This device is used as the source device to vxlan-encapsulate BUM traffic. In the case of the default-vrf this is lo. And in the case of non-default VRF this is vrf-net-device. This patchset is limited to default-VRF underlay so all subsequent references of origination-dev are to lo. But it is possible in the future to extend support to non-default VRFs. Sample origination mroute on single-VTEP: (27.0.0.7, 239.1.1.100) Iif: lo Oifs: uplink-1 In the case of MLAG we need to mroute traffic form the MLAG-peer so we force the IIF to the ISL. Sample origination mroute on MLAG-VTEP: (36.0.0.9, 239.1.1.100) Iif: peerlink-3.4094 Oifs: peerlink-3.4094 uplink-1 2. tunnel termination device - This device is used in the OIL to indicate that packets matching the flow must be vxlan terminated and overlay packets subsequently forward to the tenants. A special device has been created for this purpose called ipmr-lo. This is a simple dummy interface from the kernel perspective which has special siginficance only to pimd which implicitly enabled pim on the device and adds it to the termination mroutes. Sample termination mroute: (0.0.0.0, 239.1.1.100) Iif: uplink-1 Oifs: uplink-1 ipmr-lo PS: currently we default the termination device name to "ipmr-lo" but in the future it is possible to provide a config command to set the termination device. Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
Diffstat (limited to 'pimd/pim_vxlan_instance.h')
-rw-r--r--pimd/pim_vxlan_instance.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/pimd/pim_vxlan_instance.h b/pimd/pim_vxlan_instance.h
index 63ef3a601..3f99483fb 100644
--- a/pimd/pim_vxlan_instance.h
+++ b/pimd/pim_vxlan_instance.h
@@ -17,8 +17,26 @@
#ifndef PIM_VXLAN_INSTANCE_H
#define PIM_VXLAN_INSTANCE_H
+/* pim termination device is expected to include the substring ipmr-lo */
+#define PIM_VXLAN_TERM_DEV_NAME "ipmr-lo"
+
struct pim_vxlan_instance {
struct hash *sg_hash;
+
+ /* this is lo for default instance and vrf-dev for non-default
+ * instances
+ */
+ struct interface *default_iif;
+
+ /* In a MLAG/VxLAN-AA setup the peerlink sub-interface (ISL-rif) is
+ * used as the IIF in
+ */
+ struct interface *peerlink_rif;
+
+ /* device used by the dataplane to terminate multicast encapsulated
+ * vxlan traffic
+ */
+ struct interface *term_if;
};
extern void pim_vxlan_init(struct pim_instance *pim);