diff options
| author | Anuradha Karuppiah <anuradhak@cumulusnetworks.com> | 2019-03-26 13:36:43 -0700 |
|---|---|---|
| committer | Anuradha Karuppiah <anuradhak@cumulusnetworks.com> | 2019-04-20 08:33:21 -0700 |
| commit | 6a5de0ad483b568221ef0eca5d9205ff5d2d08c0 (patch) | |
| tree | 33e77c41877c66dd5095aa6672dc3a3436c27751 /pimd/pim_rpf.c | |
| parent | ff459c36af62f2f562450da6d5ea51fe04ab8762 (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.c | 3 |
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); |
