mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-11 05:42:23 +00:00
pimd: MLAG flag defintions in the PIM upstream entries
Two flags have been introduced per-upstream entry - 1. XXX_MLAG_VXLAN - This indicates that MLAG DF (designated-forwarded) election is needed on the entry. In the case of pim-evpn this flag is set for termination (*, G) entries and will be inherited by the (S, G) entries that are created as a result of SPT switchover on the G. 2. XXX_MLAG_NON_DF - This is set on entries that have lost the DF election. Such entries are primarily used for blackholing traffic on one of the MLAG switches. On a hardware accelerated switch this blackholing happens in the ASIC preventing (non-needed) traffic hitting the CPU. Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
This commit is contained in:
parent
b9f3a51c07
commit
f376b70161
@ -64,6 +64,16 @@
|
||||
* address
|
||||
*/
|
||||
#define PIM_UPSTREAM_FLAG_MASK_SRC_VXLAN_TERM (1 << 15)
|
||||
/* MLAG mroute - synced to the MLAG peer and subject to DF (designated
|
||||
* forwarder) election
|
||||
*/
|
||||
#define PIM_UPSTREAM_FLAG_MASK_MLAG_VXLAN (1 << 16)
|
||||
/* MLAG mroute that lost the DF election with peer and is installed in
|
||||
* a dormant state i.e. MLAG OIFs are removed from the MFC.
|
||||
* In most cases the OIL is empty (but not not always) simply
|
||||
* blackholing the traffic pulled down to the LHR.
|
||||
*/
|
||||
#define PIM_UPSTREAM_FLAG_MASK_MLAG_NON_DF (1 << 17)
|
||||
#define PIM_UPSTREAM_FLAG_ALL 0xFFFFFFFF
|
||||
|
||||
#define PIM_UPSTREAM_FLAG_TEST_DR_JOIN_DESIRED(flags) ((flags) & PIM_UPSTREAM_FLAG_MASK_DR_JOIN_DESIRED)
|
||||
@ -83,6 +93,8 @@
|
||||
#define PIM_UPSTREAM_FLAG_TEST_SRC_VXLAN_ORIG(flags) ((flags) & PIM_UPSTREAM_FLAG_MASK_SRC_VXLAN_ORIG)
|
||||
#define PIM_UPSTREAM_FLAG_TEST_SRC_VXLAN_TERM(flags) ((flags) & PIM_UPSTREAM_FLAG_MASK_SRC_VXLAN_TERM)
|
||||
#define PIM_UPSTREAM_FLAG_TEST_SRC_VXLAN(flags) ((flags) & (PIM_UPSTREAM_FLAG_MASK_SRC_VXLAN_ORIG | PIM_UPSTREAM_FLAG_MASK_SRC_VXLAN_TERM))
|
||||
#define PIM_UPSTREAM_FLAG_TEST_MLAG_VXLAN(flags) ((flags) & PIM_UPSTREAM_FLAG_MASK_MLAG_VXLAN)
|
||||
#define PIM_UPSTREAM_FLAG_TEST_MLAG_NON_DF(flags) ((flags) & PIM_UPSTREAM_FLAG_MASK_MLAG_NON_DF)
|
||||
|
||||
#define PIM_UPSTREAM_FLAG_SET_DR_JOIN_DESIRED(flags) ((flags) |= PIM_UPSTREAM_FLAG_MASK_DR_JOIN_DESIRED)
|
||||
#define PIM_UPSTREAM_FLAG_SET_DR_JOIN_DESIRED_UPDATED(flags) ((flags) |= PIM_UPSTREAM_FLAG_MASK_DR_JOIN_DESIRED_UPDATED)
|
||||
@ -100,6 +112,8 @@
|
||||
#define PIM_UPSTREAM_FLAG_SET_FORCE_PIMREG(flags) ((flags) |= PIM_UPSTREAM_FLAG_MASK_FORCE_PIMREG)
|
||||
#define PIM_UPSTREAM_FLAG_SET_SRC_VXLAN_ORIG(flags) ((flags) |= PIM_UPSTREAM_FLAG_MASK_SRC_VXLAN_ORIG)
|
||||
#define PIM_UPSTREAM_FLAG_SET_SRC_VXLAN_TERM(flags) ((flags) |= PIM_UPSTREAM_FLAG_MASK_SRC_VXLAN_TERM)
|
||||
#define PIM_UPSTREAM_FLAG_SET_MLAG_VXLAN(flags) ((flags) |= PIM_UPSTREAM_FLAG_MASK_MLAG_VXLAN)
|
||||
#define PIM_UPSTREAM_FLAG_SET_MLAG_NON_DF(flags) ((flags) |= PIM_UPSTREAM_FLAG_MASK_MLAG_NON_DF)
|
||||
|
||||
#define PIM_UPSTREAM_FLAG_UNSET_DR_JOIN_DESIRED(flags) ((flags) &= ~PIM_UPSTREAM_FLAG_MASK_DR_JOIN_DESIRED)
|
||||
#define PIM_UPSTREAM_FLAG_UNSET_DR_JOIN_DESIRED_UPDATED(flags) ((flags) &= ~PIM_UPSTREAM_FLAG_MASK_DR_JOIN_DESIRED_UPDATED)
|
||||
@ -117,6 +131,8 @@
|
||||
#define PIM_UPSTREAM_FLAG_UNSET_FORCE_PIMREG(flags) ((flags) &= ~PIM_UPSTREAM_FLAG_MASK_FORCE_PIMREG)
|
||||
#define PIM_UPSTREAM_FLAG_UNSET_SRC_VXLAN_ORIG(flags) ((flags) &= ~PIM_UPSTREAM_FLAG_MASK_SRC_VXLAN_ORIG)
|
||||
#define PIM_UPSTREAM_FLAG_UNSET_SRC_VXLAN_TERM(flags) ((flags) &= ~PIM_UPSTREAM_FLAG_MASK_SRC_VXLAN_TERM)
|
||||
#define PIM_UPSTREAM_FLAG_UNSET_MLAG_VXLAN(flags) ((flags) &= ~PIM_UPSTREAM_FLAG_MASK_MLAG_VXLAN)
|
||||
#define PIM_UPSTREAM_FLAG_UNSET_MLAG_NON_DF(flags) ((flags) &= ~PIM_UPSTREAM_FLAG_MASK_MLAG_NON_DF)
|
||||
|
||||
enum pim_upstream_state {
|
||||
PIM_UPSTREAM_NOTJOINED,
|
||||
|
Loading…
Reference in New Issue
Block a user