Messages in this thread | | | Date | Wed, 28 Aug 2013 20:08:31 -0400 (EDT) | Subject | Re: [PATCH] bridge: separate querier and query timer into IGMP/IPv4 and MLD/IPv6 ones | From | David Miller <> |
| |
From: Linus Lüssing <linus.luessing@web.de> Date: Mon, 26 Aug 2013 12:01:06 +0200
> Currently we would still potentially suffer multicast packet loss if there > is just either an IGMP or an MLD querier: For the former case, we would > possibly drop IPv6 multicast packets, for the latter IPv4 ones. This is > because we are currently assuming that if either an IGMP or MLD querier > is present that the other one is present, too. > > This patch makes the behaviour and fix added in > "bridge: disable snooping if there is no querier" (b00589af3b04) > to also work if there is either just an IGMP or an MLD querier on the > link: It refines the deactivation of the snooping to be protocol > specific by using separate timers for the snooped IGMP and MLD queries > as well as separate timers for our internal IGMP and MLD queriers. > > Signed-off-by: Linus Lüssing <linus.luessing@web.de>
I think the logic of the fix is fine, but theres a lot of duplication here.
Why not make a:
struct bridge_mcast_timer { struct timer_list timer; u32 queries_sent; u32 startup_queries_sent;
};
Then in the port structure you have:
struct bridge_mcast_timer ip4; struct bridge_mcast_timer ip6;
And pass a reference to the right one into generic helper functions.
That sounds a lot better right?
Please make this improvement and resubmit, thanks. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |