Recirculations due to NXT_RESUME are failing if the packet metadata is not restored prior to the packet execution.
Reported-at: http://openvswitch.org/pipermail/dev/2016-May/070723.html Signed-Off-by: Numan Siddique <nusid...@redhat.com> --- ofproto/ofproto-dpif.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/ofproto/ofproto-dpif.c b/ofproto/ofproto-dpif.c index 0c65df2..c131e9d 100644 --- a/ofproto/ofproto-dpif.c +++ b/ofproto/ofproto-dpif.c @@ -4399,6 +4399,15 @@ nxt_resume(struct ofproto *ofproto_, dp_packet_init(&packet, pin->public.packet_len); dp_packet_put(&packet, pin->public.packet, pin->public.packet_len); + pkt_metadata_from_flow(&packet.md, &pin->public.flow_metadata.flow); + ofp_port_t in_port; + /* Fix up in_port. */ + in_port = pin->public.flow_metadata.flow.in_port.ofp_port; + if (in_port == OFPP_NONE) { + in_port = OFPP_LOCAL; + } + packet.md.in_port.odp_port = ofp_port_to_odp_port(ofproto, in_port); + struct flow headers; flow_extract(&packet, &headers); -- 2.5.5 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev