Message ID | CAOXweTdcm6EvYxjoWSj-KTBBLy9qOOquMcMe3OUzSHpEquauwQ@mail.gmail.com |
---|---|
State | Not Applicable |
Headers | show |
Series | [ovs-dev,ovn,v2] ovn-northd: Do not generate logical flows if lsp is not up | expand |
diff --git a/northd/ovn-northd.c b/northd/ovn-northd.c index 87625c395..b9830faf8 100644 --- a/northd/ovn-northd.c +++ b/northd/ovn-northd.c @@ -4569,6 +4569,10 @@ build_lswitch_input_port_sec(struct hmap *ports, struct hmap *datapaths, continue; } + if (!lsp_is_up(op->nbsp)) { + continue; + } + ds_clear(&match); ds_clear(&actions);
If the logical_switch_port is not in up state, we don't need to generate related logical_flow. In this way we can reduce the flow numbers in ovn-sb. Signed-off-by: oilbeater <liumengxinfly@gmail.com> --- northd/ovn-northd.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) ds_put_format(&match, "inport == %s", op->json_key); @@ -4626,7 +4630,7 @@ build_lswitch_output_port_sec(struct hmap *ports, struct hmap *datapaths, * they don't even receive multicast or broadcast packets. */ HMAP_FOR_EACH (op, key_node, ports) { - if (!op->nbsp || lsp_is_external(op->nbsp)) { + if (!op->nbsp || lsp_is_external(op->nbsp) || !lsp_is_up(op->nbsp)) { continue; } @@ -6825,7 +6829,7 @@ build_lswitch_flows(struct hmap *datapaths, struct hmap *ports, /* Ingress table 19: Destination lookup, unicast handling (priority 50), */ HMAP_FOR_EACH (op, key_node, ports) { - if (!op->nbsp || lsp_is_external(op->nbsp)) { + if (!op->nbsp || lsp_is_external(op->nbsp) || !lsp_is_up(op->nbsp)) { continue; } @@ -9724,7 +9728,7 @@ build_lrouter_flows(struct hmap *datapaths, struct hmap *ports, * outport and an Ethernet address in eth.dst. */ HMAP_FOR_EACH (op, key_node, ports) { - if (op->nbsp && !lsp_is_enabled(op->nbsp)) { + if (op->nbsp && (!lsp_is_enabled(op->nbsp) || !lsp_is_up(op->nbsp))) { continue; }