datapath: Do not clear key in ovs_match_init()
authorJesse Gross <jesse@nicira.com>
Mon, 24 Jun 2013 19:21:29 +0000 (12:21 -0700)
committerJesse Gross <jesse@nicira.com>
Mon, 24 Jun 2013 19:37:59 +0000 (12:37 -0700)
commitce3fbe30ced329c5bd2ee54a0ee46884e4caa788
tree7f1553d75aafdd1ed78b14dfdc6161cf5f6f7e41
parent988dbf6895accec6f4e39ee315552197215186c0
datapath: Do not clear key in ovs_match_init()

When executing packets sent from userspace, the majority of the
flow information is extracted from the packet itself and a small
amount of metadata supplied by userspace is added. However, when
adding this metadata, the extracted flow information is currently
being cleared.

This manifests in a problem when executing actions as elements of key are
used when verifying some actions. For example a dec_ttl action verifies the
proto of the flow. An example of a flow that fails as a result of this
problem is:

        ovs-ofctl add-flow br0 "ip actions=dec_ttl,normal"

This is a regression added by "datapath: Mega flow implementation",
a1c564be1e2ffc31f8da09ab654c8ed987907fe5.

CC: Andy Zhou <azhou@nicira.com>
Reported-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Jesse Gross <jesse@nicira.com>
datapath/flow.c