[ovs-dev] [PATCH] ovn-controller: Fix flows between two local ports.

Justin Pettit jpettit at nicira.com
Fri Aug 7 22:05:43 UTC 2015


A flow was missing from the remote output table that causes local
packets to be resubmitted to the local ouptut table.

Reported-by: Russell Bryant <rbryant at redhat.com>
Signed-off-by: Justin Pettit <jpettit at nicira.com>
---
 ovn/controller/physical.c |   12 +++++++++++-
 1 files changed, 11 insertions(+), 1 deletions(-)

diff --git a/ovn/controller/physical.c b/ovn/controller/physical.c
index ff6cf57..2ec0ba9 100644
--- a/ovn/controller/physical.c
+++ b/ovn/controller/physical.c
@@ -483,13 +483,23 @@ physical_run(struct controller_ctx *ctx, enum mf_field_id mff_ovn_geneve,
         ofctrl_add_flow(flow_table, OFTABLE_PHY_TO_LOG, 100, &match, &ofpacts);
     }
 
+    /* Table 32, Priority 0.
+     * =======================
+     *
+     * Resubmit packets that are not directed at tunnels or part of a
+     * multicast group to the local output table. */
+    struct match match;
+    match_init_catchall(&match);
+    ofpbuf_clear(&ofpacts);
+    put_resubmit(OFTABLE_LOCAL_OUTPUT, &ofpacts);
+    ofctrl_add_flow(flow_table, OFTABLE_REMOTE_OUTPUT, 0, &match, &ofpacts);
+
     /* Table 34, Priority 0.
      * =======================
      *
      * Resubmit packets that don't output to the ingress port (already checked
      * in table 33) to the logical egress pipeline, clearing the logical
      * registers (for consistent behavior with packets that get tunneled). */
-    struct match match;
     match_init_catchall(&match);
     ofpbuf_clear(&ofpacts);
 #define MFF_LOG_REG(ID) put_load(0, ID, 0, 32, &ofpacts);
-- 
1.7.5.4




More information about the dev mailing list