datapath: Get packet metadata from userspace in odp_packet_cmd_execute().
authorBen Pfaff <blp@nicira.com>
Wed, 1 Jun 2011 20:39:51 +0000 (13:39 -0700)
committerBen Pfaff <blp@nicira.com>
Wed, 1 Jun 2011 20:39:51 +0000 (13:39 -0700)
Until now, the tun_id and in_port have been lost when a packet is sent from
the kernel to userspace and then back to the kernel.  I didn't think that
this was a problem, but recent behavior made me look closer and see that
it makes a difference if sFlow is turned on or if an
ODP_ATTR_ACTION_CONTROLLER action is present.  We could possibly kluge
around those, but for future-proofing it seems better to pass the packet
metadata from userspace to the kernel.  That is what this commit does.

This commit introduces a user-kernel protocol break.  We could avoid that,
if it is desirable, by making ODP_PACKET_ATTR_KEY optional for
ODP_PACKET_CMD_EXECUTE commands.

Signed-off-by: Ben Pfaff <blp@nicira.com>
Acked-by: Jesse Gross <jesse@nicira.com>

No differences found