When building with DPDK support, 'struct dpif_packet' won't have 'dp_hash'
member. dpif_packet_set_dp_hash() and dpif_packet_get_dp_hash() should be used.

Furthermore, the masked set action shouldn't read 'md->dp_hash' (which is
shared in a batch), but should use dpif_packet_get_dp_hash() to get each packet
private hash.

This commit fixes the build with DPDK

Signed-off-by: Daniele Di Proietto <ddiproie...@vmware.com>
---
 lib/odp-execute.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/lib/odp-execute.c b/lib/odp-execute.c
index e4bee18..78b1f24 100644
--- a/lib/odp-execute.c
+++ b/lib/odp-execute.c
@@ -332,8 +332,9 @@ odp_execute_masked_set_action(struct dpif_packet *packet,
         break;
 
     case OVS_KEY_ATTR_DP_HASH:
-        packet->dp_hash = md->dp_hash = nl_attr_get_u32(a)
-            | (md->dp_hash & ~*get_mask(a, uint32_t));
+        md->dp_hash = nl_attr_get_u32(a)
+            | (dpif_packet_get_dp_hash(packet) & ~*get_mask(a, uint32_t));
+        dpif_packet_set_dp_hash(packet, md->dp_hash);
         break;
 
     case OVS_KEY_ATTR_RECIRC_ID:
-- 
2.1.0.rc1

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to