summaryrefslogtreecommitdiff
path: root/pimd/pim_rpf.c
diff options
context:
space:
mode:
authorChirag Shah <chirag@cumulusnetworks.com>2017-05-12 12:05:46 -0700
committerChirag Shah <chirag@cumulusnetworks.com>2017-05-18 14:36:25 -0700
commitee22bbae78d0a17c0f34da106f77ba2fd80e6b0d (patch)
treece348e7fe2c83258799ae8eb89f93bf9cda3e1c0 /pimd/pim_rpf.c
parentf1deac618b5ff78657d04f443a74799881b76e21 (diff)
pimd: Fix to Tx S,G Join when SGRpt->Join state
-Upon Rx (*,G) Join w/o SGRpt at RP, trigger (S,G) Join towards FHR, unset SGRpt flag from channel, add (*,G) oif to (S,G) entry. -Add I am not RP check to triger SGRpt on *,G path otherwise, send S,G Prune on SPT path from RP to FHR upon receving *,G Prune. -Upon Rx SGRpt receive, remove OIF(downstream where Prune received) from specific S,G. Testing Done: pim-smoke Ran 95 tests in 11790.552s FAILED (SKIP=10, failures=4) Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
Diffstat (limited to 'pimd/pim_rpf.c')
-rw-r--r--pimd/pim_rpf.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/pimd/pim_rpf.c b/pimd/pim_rpf.c
index f46ebfb979..d16106dec8 100644
--- a/pimd/pim_rpf.c
+++ b/pimd/pim_rpf.c
@@ -244,17 +244,18 @@ enum pim_rpf_result pim_rpf_update(struct pim_upstream *up, struct pim_rpf *old,
{
return PIM_RPF_FAILURE;
}
- }
+ }
rpf->rpf_addr.family = AF_INET;
rpf->rpf_addr.u.prefix4 = pim_rpf_find_rpf_addr(up);
- if (pim_rpf_addr_is_inaddr_any(rpf) && PIM_DEBUG_ZEBRA) {
- /* RPF'(S,G) not found */
- zlog_debug("%s %s: RPF'%s not found: won't send join upstream",
+ if (pim_rpf_addr_is_inaddr_any(rpf) && PIM_DEBUG_ZEBRA)
+ {
+ /* RPF'(S,G) not found */
+ zlog_debug("%s %s: RPF'%s not found: won't send join upstream",
__FILE__, __PRETTY_FUNCTION__,
up->sg_str);
- /* warning only */
- }
+ /* warning only */
+ }
/* detect change in pim_nexthop */
if (nexthop_mismatch(&rpf->source_nexthop, &saved.source_nexthop)) {