A previous patch moved this but it's not clear why, so move it back.

Signed-off-by: Ben Pfaff <b...@ovn.org>
---
 ofproto/ofproto-dpif-xlate.c | 32 ++++++++++++++++----------------
 1 file changed, 16 insertions(+), 16 deletions(-)

diff --git a/ofproto/ofproto-dpif-xlate.c b/ofproto/ofproto-dpif-xlate.c
index 6f70f85947e2..149b47cca9a9 100644
--- a/ofproto/ofproto-dpif-xlate.c
+++ b/ofproto/ofproto-dpif-xlate.c
@@ -3356,6 +3356,22 @@ compose_output_action__(struct xlate_ctx *ctx, 
ofp_port_t ofp_port,
         return;
     }
 
+    /* In a bridge that is not packet type-aware, convert the packet to what
+     * the output port expects. */
+    if (!ctx->xbridge->packet_type_aware) {
+        if (flow->packet_type == htonl(PT_ETH) && xport->is_layer3 ) {
+            /* Ethernet packet to L3 outport -> pop Ethernet header. */
+            flow->packet_type = PACKET_TYPE_BE(OFPHTN_ETHERTYPE,
+                                               ntohs(flow->dl_type));
+        } else if (flow->packet_type != htonl(PT_ETH) && !xport->is_layer3) {
+            /* L2 outport and non-Ethernet packet_type -> add dummy Ethernet
+             * header. */
+            flow->packet_type = htonl(PT_ETH);
+            flow->dl_dst = eth_addr_zero;
+            flow->dl_src = eth_addr_zero;
+        }
+    }
+
     if (xport->peer) {
         const struct xport *peer = xport->peer;
         struct flow old_flow = ctx->xin->flow;
@@ -3496,22 +3512,6 @@ compose_output_action__(struct xlate_ctx *ctx, 
ofp_port_t ofp_port,
     memcpy(flow_vlans, flow->vlans, sizeof flow_vlans);
     flow_nw_tos = flow->nw_tos;
 
-    /* In a bridge that is not packet type-aware convert the packet to what
-     * the output port expects. */
-    if (!ctx->xbridge->packet_type_aware) {
-        if (flow->packet_type == htonl(PT_ETH) && xport->is_layer3 ) {
-            /* Ethernet packet to L3 outport -> pop ethernet header. */
-            flow->packet_type = PACKET_TYPE_BE(OFPHTN_ETHERTYPE,
-                                               ntohs(flow->dl_type));
-        }
-        else if (flow->packet_type != htonl(PT_ETH) && !xport->is_layer3) {
-            /* L2 outport and non-ethernet packet_type -> add dummy eth 
header. */
-            flow->packet_type = htonl(PT_ETH);
-            flow->dl_dst = eth_addr_zero;
-            flow->dl_src = eth_addr_zero;
-        }
-    }
-
     if (count_skb_priorities(xport)) {
         memset(&wc->masks.skb_priority, 0xff, sizeof wc->masks.skb_priority);
         if (dscp_from_skb_priority(xport, flow->skb_priority, &dscp)) {
-- 
2.10.2

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to