[ovs-dev] [PATCH v5 4/7] ofproto-dpif: MPLS recirculation
blp at nicira.com
Fri May 16 15:55:12 UTC 2014
On Fri, May 16, 2014 at 11:30:23AM +0900, Simon Horman wrote:
> In some cases an pop MPLS action changes a packet to be a non-mpls packet.
> In this case subsequent any L3+ actions require access to portions
> of the packet which were not decoded as they were opaque when the
> packet was MPLS. Allow such actions to be translated by
> first recirculating the packet.
> Signed-off-by: Simon Horman <horms at verge.net.au>
The first three patches look fine to me.
compose_recirculate_action() in this one makes me worry a bit about a
corner case. If there is no rule, then compose_recirculate_action()
allocates one. I think that in the common case, there is a rule. But a
"packet_out" message does translate actions without a rule. I think
that means that each "packet_out" from a controller can create
unnecessarily create a recirculation id and corresponding rule that will
take a long time to expire and never get reused.
If I'm right about that, then one solution would be to do recirculation
in userspace in the case where we have a packet and no rule. That's a
pretty nasty corner case, though (do we ever want to do that in other
circumstances?) and so for now I'd be happy with a comment in the
ofproto_dpif_alloc_recirc_id() case in compose_recirculate_action()
explaining what's going on.
I think that, for now, recirculation will lose metadata fields like
registers. That's not a new problem, and I believe that Andy Zhou (or
maybe Justin Pettit?) is working on a general solution, so I'm not
asking you to fix it, but I think that it also bears mention in a
I don't understand may_xlate_l3_actions. It seems to cover a lot more
than L3, e.g. VLANs and Goto-Table.
More information about the dev