On 5/8/21 5:08 PM, Han Zhou wrote:
> In commit b468c2c1 it avoided using DPG for multicast related lflows, but
> commit dd94f126 update the MC_UNKNOWN related lflows with DPG used again
> by mistake. This patch fixes it to avoid problems when a lflow using
> MC_UNKNOWN is monitored by a ovn-controller before the related mc-group
> is monitored, which could cause ovn-controller problem due to an
> incomplete dependency handling in I-P.
>
> This change can be removed (and applying DPG for all the other mc-group
> related lflows) when the I-P dependency handling problem is fixed.
>
> This change didn't address the ovn-northd-ddlog part because commit
> b468c2c1 didn't update ovn-northd-ddlog either. To be consistent, the
> ddlog change will be added together for all mc-group related flows.
At a second look, the ddlog implementation is mainly up to date wrt DPG
and unique flows.
I think we just miss the incremental below.
Regards,
Dumitru
diff --git a/northd/ovn_northd.dl b/northd/ovn_northd.dl
index ffd09c35f..147b0fcb6 100644
--- a/northd/ovn_northd.dl
+++ b/northd/ovn_northd.dl
@@ -4218,17 +4218,22 @@ for (sw in &Switch(.ls = nb::Logical_Switch{._uuid =
ls_uuid})) {
.actions = "outport = get_fdb(eth.dst); next;",
.external_ids = map_empty());
- Flow(.logical_datapath = ls_uuid,
- .stage = s_SWITCH_IN_L2_UNKNOWN(),
- .priority = 50,
- .__match = "outport == \"none\"",
- .actions = if (sw.has_unknown_ports) {
- var mc_unknown =
json_string_escape(mC_UNKNOWN().0);
- "outport = ${mc_unknown}; output;"
- } else {
- "drop;"
- },
- .external_ids = map_empty());
+ if (sw.has_unknown_ports) {
+ var mc_unknown = json_string_escape(mC_UNKNOWN().0) in
+ UniqueFlow[Flow{.logical_datapath = ls_uuid,
+ .stage = s_SWITCH_IN_L2_UNKNOWN(),
+ .priority = 50,
+ .__match = "outport == \"none\"",
+ .actions = "outport = ${mc_unknown}; output;",
+ .external_ids = map_empty()}]
+ } else {
+ Flow(.logical_datapath = ls_uuid,
+ .stage = s_SWITCH_IN_L2_UNKNOWN(),
+ .priority = 50,
+ .__match = "outport == \"none\"",
+ .actions = "drop;",
+ .external_ids = map_empty())
+ };
Flow(.logical_datapath = ls_uuid,
.stage = s_SWITCH_IN_L2_UNKNOWN(),
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev