summaryrefslogtreecommitdiff
path: root/pimd/pim_macro.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_macro.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_macro.c')
-rw-r--r--pimd/pim_macro.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/pimd/pim_macro.c b/pimd/pim_macro.c
index 3f56532526..f67636a3fe 100644
--- a/pimd/pim_macro.c
+++ b/pimd/pim_macro.c
@@ -227,8 +227,6 @@ int pim_macro_ch_could_assert_eval(const struct pim_ifchannel *ch)
{
struct interface *ifp;
- /* SPTbit(S,G) is always true for PIM-SSM-Only Routers */
-
ifp = ch->interface;
if (!ifp) {
char src_str[100];
@@ -241,6 +239,10 @@ int pim_macro_ch_could_assert_eval(const struct pim_ifchannel *ch)
return 0; /* false */
}
+ /* SPTbit(S,G) == TRUE */
+ if (ch->upstream->sptbit == PIM_UPSTREAM_SPTBIT_FALSE)
+ return 0; /* false */
+
/* RPF_interface(S) != I ? */
if (ch->upstream->rpf.source_nexthop.interface == ifp)
return 0; /* false */