diff options
| author | Donald Sharp <sharpd@cumulusnetworks.com> | 2020-03-17 13:40:53 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-03-17 13:40:53 -0400 |
| commit | 7967afda0799711bf4ce3bfe8b8b51ceb179376e (patch) | |
| tree | 10c8375b68a214451ce4c3759311b8d37353ddd9 /pimd/pim_upstream.c | |
| parent | 136b3d67dbdc7408c570ef1560ea8345b8f810ca (diff) | |
| parent | 9443810eef5d2de2d932600cf058ee030baa6d47 (diff) | |
Merge pull request #5880 from patrasar/2371558
pimd: fix OIL not removed after IGMP prune
Diffstat (limited to 'pimd/pim_upstream.c')
| -rw-r--r-- | pimd/pim_upstream.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/pimd/pim_upstream.c b/pimd/pim_upstream.c index efa58c1b1f..07f8315a19 100644 --- a/pimd/pim_upstream.c +++ b/pimd/pim_upstream.c @@ -1794,10 +1794,16 @@ int pim_upstream_inherited_olist_decide(struct pim_instance *pim, continue; if (pim_upstream_evaluate_join_desired_interface(up, ch, starch)) { - int flag = PIM_OIF_FLAG_PROTO_PIM; + int flag = 0; if (!ch) flag = PIM_OIF_FLAG_PROTO_STAR; + else { + if (PIM_IF_FLAG_TEST_PROTO_IGMP(ch->flags)) + flag = PIM_OIF_FLAG_PROTO_IGMP; + if (PIM_IF_FLAG_TEST_PROTO_PIM(ch->flags)) + flag |= PIM_OIF_FLAG_PROTO_PIM; + } pim_channel_add_oif(up->channel_oil, ifp, flag, __func__); |
