[ovs-dev] [PATCH 04/16] actions: Allow secondary decoding of a flow

Ben Pfaff blp at nicira.com
Tue Feb 12 17:42:52 UTC 2013

On Wed, Feb 06, 2013 at 10:53:55PM +0900, Simon Horman wrote:
> Actions may provide information to allow further decoding of
> a flow.
> For example:
> In the case of MPLS, L3 and L4 information may not initially be decoded
> from the frame as the ethernet type of the frame is an MPLS type and no
> information is known about the type of the inner frame.
> However, the type of the inner frame may be provided by an mpls_pop action
> in which case L3 and L4 information may be decoded providing a finer
> grained match than is otherwise possible.
> Signed-off-by: Simon Horman <horms at verge.net.au>

Why does odp_flow_key_from_flow() take a separate encap_dl_type
parameter instead of using flow->encap_dl_type?  There may be a good
reason, but I don't understand yet.

The actions_allow_l3_extraction() check is probably not sufficient in
facet_check_consistency(), because it misses ofpacts found via
"resubmit".  We will probably need to record this in xlate_actions().

By the way, I think that we may need to adjust how MPLS information is
included in ODP flow key data.  Reading datapath/README, I think that we
may need to use a format like:

        eth(...), eth_type(0x8847), mpls(...), encap(ip(...), tcp(...))

whereas I believe we are currently omitting the encap and simply writing

        eth(...), eth_type(0x8847), mpls(...), ip(...), tcp(...)

I think the latter will make kernel ABI compatibility problematic.

More information about the dev mailing list