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
[email protected]
http://openvswitch.org/mailman/listinfo/dev