summaryrefslogtreecommitdiff
path: root/pimd/pim_assert.c
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@cumulusnetworks.com>2015-10-15 06:58:41 -0700
committerDonald Sharp <sharpd@cumulusnetwroks.com>2016-05-25 20:38:34 -0400
commitd99764f68f6cb749ee794814dec5793660658832 (patch)
tree4b76bf086cbe71c8d0336ec6790541c5c928691e /pimd/pim_assert.c
parent2bd9e1bc6ce62f9405f8b840ee0b0dc2a7967eac (diff)
pimd: Add SPTbit(S,G) support
Add code to allow pimd to store the SPTbit as needed and to properly test against it. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Diffstat (limited to 'pimd/pim_assert.c')
-rw-r--r--pimd/pim_assert.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/pimd/pim_assert.c b/pimd/pim_assert.c
index ad21e08efe..5dae675716 100644
--- a/pimd/pim_assert.c
+++ b/pimd/pim_assert.c
@@ -799,9 +799,10 @@ static void assert_action_a6(struct pim_ifchannel *ch,
/*
If (I is RPF_interface(S)) AND (UpstreamJPState(S,G) == true) set
SPTbit(S,G) to TRUE.
-
- Notice: For PIM SSM, SPTbit(S,G) is already always true.
*/
+ if (ch->upstream->rpf.source_nexthop.interface == ch->interface)
+ if (ch->upstream->join_state == PIM_UPSTREAM_JOINED)
+ ch->upstream->sptbit = PIM_UPSTREAM_SPTBIT_TRUE;
zassert(ch->ifassert_state == PIM_IFASSERT_I_AM_LOSER);
}