[ovs-dev] [PATCH ovn] controller: keep mcast_query_list list in sync with sb configuration
Lorenzo Bianconi
lorenzo.bianconi at redhat.com
Wed Nov 17 18:08:19 UTC 2021
In the current codebase mcast_query_list is updated only if IGMP
snooping is enabled in ovn configuration. However querier configuration
is always updated ending up having duplicated entries in
mcast_query_list list. Fix the issue updating mcast_query_list list even
if IGMP snoop is disabled.
Tested-by: Tim Rozet <trozet at redhat.com>
Fixes: 70ff824304 ("OVN: Add IGMP SB definitions and ovn-controller support")
Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi at redhat.com>
---
controller/pinctrl.c | 24 ++++++++++++------------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/controller/pinctrl.c b/controller/pinctrl.c
index 19ef5fa2a..ae5320e09 100644
--- a/controller/pinctrl.c
+++ b/controller/pinctrl.c
@@ -4833,6 +4833,18 @@ static bool
ip_mcast_snoop_configure(struct ip_mcast_snoop *ip_ms,
const struct ip_mcast_snoop_cfg *cfg)
{
+ bool old_querier_enabled =
+ (ip_ms->cfg.querier_v4_enabled || ip_ms->cfg.querier_v6_enabled);
+
+ bool querier_enabled =
+ (cfg->querier_v4_enabled || cfg->querier_v6_enabled);
+
+ if (old_querier_enabled && !querier_enabled) {
+ ovs_list_remove(&ip_ms->query_node);
+ } else if (!old_querier_enabled && querier_enabled) {
+ ovs_list_push_back(&mcast_query_list, &ip_ms->query_node);
+ }
+
if (cfg->enabled) {
if (!ip_mcast_snoop_enable(ip_ms)) {
return false;
@@ -4840,18 +4852,6 @@ ip_mcast_snoop_configure(struct ip_mcast_snoop *ip_ms,
if (ip_ms->cfg.seq_no != cfg->seq_no) {
ip_mcast_snoop_flush(ip_ms);
}
-
- bool old_querier_enabled =
- (ip_ms->cfg.querier_v4_enabled || ip_ms->cfg.querier_v6_enabled);
-
- bool querier_enabled =
- (cfg->querier_v4_enabled || cfg->querier_v6_enabled);
-
- if (old_querier_enabled && !querier_enabled) {
- ovs_list_remove(&ip_ms->query_node);
- } else if (!old_querier_enabled && querier_enabled) {
- ovs_list_push_back(&mcast_query_list, &ip_ms->query_node);
- }
} else {
ip_mcast_snoop_disable(ip_ms);
goto set_fields;
--
2.31.1
More information about the dev
mailing list