summaryrefslogtreecommitdiffstats
path: root/pimd/pim_jp_agg.c
diff options
context:
space:
mode:
authorAnuradha Karuppiah <anuradhak@cumulusnetworks.com>2019-11-15 21:01:46 +0100
committerAnuradha Karuppiah <anuradhak@cumulusnetworks.com>2019-11-15 23:16:08 +0100
commitc692bd2ad42e941d0d63a149daaed1a331d47cd0 (patch)
tree883a8a04947d3aa61d5adb2519dd7d197e4e6ab9 /pimd/pim_jp_agg.c
parentpimd: bring back "show ip pim upstream-join-desired" (diff)
downloadfrr-c692bd2ad42e941d0d63a149daaed1a331d47cd0.tar.xz
frr-c692bd2ad42e941d0d63a149daaed1a331d47cd0.zip
pimd: send an immediate XG JP message when switching from SPT to RPT
Today we are only pruning the SPT when (S,G) upstream entry switches from Joined toNotJoined. This leaves the source still pruned along the RPT till the next periodic XG join-prune is sent to the RPF(RP). Traffic from the source will be blackholed for this duration. To prevent that we need send a new JP message to RPF(RP) immediately. Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
Diffstat (limited to 'pimd/pim_jp_agg.c')
-rw-r--r--pimd/pim_jp_agg.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/pimd/pim_jp_agg.c b/pimd/pim_jp_agg.c
index e1473bfe3..5f9e16681 100644
--- a/pimd/pim_jp_agg.c
+++ b/pimd/pim_jp_agg.c
@@ -338,10 +338,10 @@ void pim_jp_agg_single_upstream_send(struct pim_rpf *rpf,
static bool first = true;
/* skip JP upstream messages if source is directly connected */
- if (!up || !rpf->source_nexthop.interface || pim_if_connected_to_source(
- rpf->source_nexthop
- .interface,
- up->sg.src))
+ if (!up || !rpf->source_nexthop.interface ||
+ pim_if_connected_to_source(rpf->source_nexthop.interface,
+ up->sg.src) ||
+ if_is_loopback_or_vrf(rpf->source_nexthop.interface))
return;
if (first) {