From: Ben Pfaff Date: Wed, 1 Jun 2011 20:39:51 +0000 (-0700) Subject: datapath: Get packet metadata from userspace in odp_packet_cmd_execute(). X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=80e5eed9c2128f04a1d7da134120d96e961dbe10;hp=80e5eed9c2128f04a1d7da134120d96e961dbe10;p=openvswitch datapath: Get packet metadata from userspace in odp_packet_cmd_execute(). 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 Acked-by: Jesse Gross ---