From: Donald Sharp Date: Fri, 26 Aug 2016 13:40:08 +0000 (-0400) Subject: pimd: Further refinement of switch on a stick X-Git-Tag: frr-3.0-branchpoint~64^2~10^2~257 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=483eef9dd2ff45524bfd0fe8eba1b8ba1fad58a4;p=mirror%2Ffrr.git pimd: Further refinement of switch on a stick The original modification to allow the RP to receive packets on the incoming interface when it has no outgoing interfaces was a bit aggressive and turned all register events into a join event. This further divides up the code to do the right thing in each situation. Signed-off-by: Donald Sharp --- diff --git a/pimd/pim_upstream.c b/pimd/pim_upstream.c index 0f86e8bdfd..84b64fd709 100644 --- a/pimd/pim_upstream.c +++ b/pimd/pim_upstream.c @@ -1089,7 +1089,16 @@ pim_upstream_inherited_olist (struct pim_upstream *up) } } - pim_upstream_switch (up, PIM_UPSTREAM_JOINED); + /* + * If we have output_intf switch state to Join and work like normal + * If we don't have an output_intf that means we are probably a + * switch on a stick so turn on forwarding to just accept the + * incoming packets so we don't bother the other stuff! + */ + if (output_intf) + pim_upstream_switch (up, PIM_UPSTREAM_JOINED); + else + forward_on (up); return output_intf; }