<div dir="ltr">Pushed to master with the following incremental:<div><br></div><div><div>diff --git a/lib/odp-util.c b/lib/odp-util.c</div><div>index 37ec2be..280e8a6 100644</div><div>--- a/lib/odp-util.c</div><div>+++ b/lib/odp-util.c</div>

<div>@@ -2483,8 +2483,7 @@ ovs_to_odp_frag_mask(uint8_t nw_frag_mask)</div><div> static void</div><div> odp_flow_key_from_flow__(struct ofpbuf *buf, const struct flow *flow,</div><div>                          const struct flow *mask, odp_port_t odp_in_port,</div>

<div>-                         size_t max_mpls_depth, bool export_mask,</div><div>-                         bool recirc)</div><div>+                         size_t max_mpls_depth, bool recirc, bool export_mask)</div><div>

 {</div><div>     struct ovs_key_ethernet *eth_key;</div><div>     size_t encap;</div><div>@@ -2681,8 +2680,8 @@ odp_flow_key_from_flow(struct ofpbuf *buf, const struct flow *flow,</div><div>                        const struct flow *mask, odp_port_t odp_in_port,</div>

<div>                        bool recirc)</div><div> {</div><div>-    odp_flow_key_from_flow__(buf, flow, mask, odp_in_port, SIZE_MAX, false,</div><div>-                             recirc);</div><div>+    odp_flow_key_from_flow__(buf, flow, mask, odp_in_port, SIZE_MAX, recirc,</div>

<div>+                             false);</div><div> }</div><div> </div><div> /* Appends a representation of &#39;mask&#39; as OVS_KEY_ATTR_* attributes to</div><div>@@ -2702,7 +2701,7 @@ odp_flow_key_from_mask(struct ofpbuf *buf, const struct flow *mask,</div>

<div>                        size_t max_mpls_depth, bool recirc)</div><div> {</div><div>     odp_flow_key_from_flow__(buf, flow, mask, u32_to_odp(odp_in_port_mask),</div><div>-                             max_mpls_depth, true, recirc);</div>

<div>+                             max_mpls_depth, recirc, true);</div><div> }</div><div> </div><div> /* Generate ODP flow key from the given packet metadata */</div></div></div>