Since commit e672ff9b4d2 (ofproto-dpif: Restore metadata and registers on recirculation.), xlate_actions() has first obtained the input port:
/* The in_port of the original packet before recirculation. */ struct xport *in_port = get_ofp_port(xbridge, flow->in_port.ofp_port); then updated it to restore the pre-recirculation state: if (xin->recirc) { ... /* Restore pipeline metadata. May change flow's in_port and other * metadata to the values that existed when recirculation was * triggered. */ recirc_metadata_to_flow(&recirc->metadata, flow); ... } However I'm not sure that this order makes sense. We use 'in_port' later for checks like may_receive() and xport_stp_forward_state() where I'd think that the original input port is the appropriate one to check, not the one that happened to be used by the recirculated packet. Am I missing anything? Thanks, Ben. _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev