diff options
| author | Chirag Shah <chirag@cumulusnetworks.com> | 2017-04-21 15:08:03 -0700 |
|---|---|---|
| committer | Chirag Shah <chirag@cumulusnetworks.com> | 2017-04-25 12:51:58 -0700 |
| commit | 1f58d560da1544b103a6b665e825e367f10cbb33 (patch) | |
| tree | 26ca6db33fb3e3993fbfa0bb5d5f81048650fbe5 /pimd/pim_join.c | |
| parent | 36b1fa863162a6b1a3a5e657c73258c3fade4b21 (diff) | |
pimd: Fix WG/SGRpt & WG J/P processing
During processing of Join/Prune,
for a S,G entry, current state is SGRpt, when only *,G is
received, need to clear SGRpt and add/inherit the *,G OIF to S,G so
it can forward traffic to downstream where *,G is received.
Upon receiving SGRpt prune remove the inherited *,G OIF.
Testing Done:
Trigger SPT switchover, *,G path received SGRpt later data
traffic stopped S,G ages out from LHR, sends only
*,G join to upstream, verified S,G entry inherit the OIF.
Upon receiving SGRpt deletes inherited oif and retains in SGRpt state.
Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
Diffstat (limited to 'pimd/pim_join.c')
| -rw-r--r-- | pimd/pim_join.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/pimd/pim_join.c b/pimd/pim_join.c index 884aa35bc5..dc3a3cff8a 100644 --- a/pimd/pim_join.c +++ b/pimd/pim_join.c @@ -276,7 +276,7 @@ int pim_joinprune_recv(struct interface *ifp, { ch = pim_ifchannel_find (ifp, &sg); if (ch) - pim_ifchannel_set_star_g_join_state (ch, 0); + pim_ifchannel_set_star_g_join_state (ch, 0, msg_source_flags, 1); } } @@ -297,7 +297,7 @@ int pim_joinprune_recv(struct interface *ifp, msg_source_flags); } if (ch) - pim_ifchannel_set_star_g_join_state (ch, 1); + pim_ifchannel_set_star_g_join_state (ch, 1, msg_source_flags, 0); ch = NULL; } /* scan groups */ |
