From f7c2f97d575b9d80220f7ee8963b63188ed192f0 Mon Sep 17 00:00:00 2001 From: Daniele Di Proietto Date: Tue, 9 Sep 2014 14:21:41 -0700 Subject: [PATCH] lib/odp-execute: Use dpif_packet_set_dp_hash() instead of ->dp_hash 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 Acked-by: Jarno Rajahalme --- 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 e4bee1812..78b1f2411 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.20.1