summaryrefslogtreecommitdiff
path: root/pimd/pim_rpf.c
diff options
context:
space:
mode:
authorAnuradha Karuppiah <anuradhak@cumulusnetworks.com>2019-03-26 13:36:43 -0700
committerAnuradha Karuppiah <anuradhak@cumulusnetworks.com>2019-04-20 08:33:21 -0700
commit6a5de0ad483b568221ef0eca5d9205ff5d2d08c0 (patch)
tree33e77c41877c66dd5095aa6672dc3a3436c27751 /pimd/pim_rpf.c
parentff459c36af62f2f562450da6d5ea51fe04ab8762 (diff)
pimd: provide a mechanism to pin the IIF for an SG entry
In the case of vxlan origination entries IIF is set to - 1. lo for single VTEPs 2. MLAG-ISL for VTEPs multihomed via MLAG. This commit creates the necessary infrastructure by - 1. allowing the IIF to be set statically (without RPF lookup) 2. and by preventing next-hop-tracking registration PS: Note that I have skipped additional checks in pim_upstream_del intentionally i.e. an attempt will be made to remove nexthop-tracking for the upstream entry (with STATIC_IIF) which will fail because of the up-entry not being in the nh's hash table. Ideally we should maintain a nh pointer in the up-entry to prevent this unnecessary processing. In the abscence of that I wanted to avoid spraying STATIC_IIF checks all over. Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
Diffstat (limited to 'pimd/pim_rpf.c')
-rw-r--r--pimd/pim_rpf.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/pimd/pim_rpf.c b/pimd/pim_rpf.c
index 8cc8b7481c..afe3886aa5 100644
--- a/pimd/pim_rpf.c
+++ b/pimd/pim_rpf.c
@@ -204,6 +204,9 @@ enum pim_rpf_result pim_rpf_update(struct pim_instance *pim,
struct prefix src, grp;
bool neigh_needed = true;
+ if (PIM_UPSTREAM_FLAG_TEST_STATIC_IIF(up->flags))
+ return PIM_RPF_OK;
+
if (up->upstream_addr.s_addr == INADDR_ANY) {
zlog_debug("%s: RP is not configured yet for %s",
__PRETTY_FUNCTION__, up->sg_str);