[ovs-dev] Recirculation Design Reconsideration

Simon Horman horms at verge.net.au
Fri Sep 6 01:20:37 UTC 2013


Hi Jesse,

I have been looking at updating the recirculation implementation for
currently merged multi-threaded miss handling and planned changes by
Ethan to remove facts from ovs-vswtichd. I would like this chance to
thank Ethan for sharing his plans with me in some detail, it has been
very helpful.

While I believe it is possible to implement the current design on
top of the new code I wonder if it is a good time to pause and consider
tweaking the design.

The main area of difficulty I see with implementing the current design
on the new code-base hinges around the use of recirculation ids.

In particular when handling a miss for a recirculated packet the
recirculation id is used to allow the rule that recirculated the packet to
be found. And then for processing of the actions of that rule to continue
on the recirculated packet. This requires some state to be stored in
ovs-vswtichd. If facets exist in ovs-vswitchd then this state fits fairly
nicely in the facet. But in the absence of facets, it seems to me that the
state would need to be stored in some new data structure. And that seems
likely to re-introduce a subset of the problems resolved by Ethan's plan to
remove facets from ovs-vswtichd.

With this in mind I wonder if an alternate approach would be for the
datapath to pass all information that ovs-vswtichd needs to process a
recirculated packet when it makes an upcall. I'm not entirely sure but it
seems that this could be achieved by passing the key (and probably mask) of
the chain of packets that lead to the upcall. In short, instead of passing
a recirculation_id pass a as part of the upcall's flow, pass nested flows.

Although I suspect this would be a rather invasive change to several areas
of the code and may involve some extra cost in the datapath when processing
recirculation - a copy of the flow may need to be kept at each level of
recirculation - it does seem to be more in keeping with the direction in
which Ethan's plans are taking ovs-vswtichd.



More information about the dev mailing list