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

Reply via email to