diff mbox series

[ovs-dev,ovn,v2] ovn-northd: Do not generate logical flows if lsp is not up

Message ID CAOXweTdcm6EvYxjoWSj-KTBBLy9qOOquMcMe3OUzSHpEquauwQ@mail.gmail.com
State New
Headers show
Series [ovs-dev,ovn,v2] ovn-northd: Do not generate logical flows if lsp is not up | expand

Commit Message

刘梦馨 May 18, 2020, 6:10 a.m. UTC
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;
         }
diff mbox series

Patch

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);