From fc80de30d45fdfef7074e807bbf2280995ae61d4 Mon Sep 17 00:00:00 2001 From: Jarno Rajahalme Date: Thu, 18 Apr 2013 18:07:39 +0300 Subject: [PATCH] odp-util: Keep base flow in sync with the kernel view. Change the base flow only if a corresponding kernel action is generated in commit_odp_tunnel_action(). Signed-off-by: Jarno Rajahalme Signed-off-by: Ben Pfaff --- lib/odp-util.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/lib/odp-util.c b/lib/odp-util.c index 751c1c923..a8889dc58 100644 --- a/lib/odp-util.c +++ b/lib/odp-util.c @@ -2161,13 +2161,12 @@ void commit_odp_tunnel_action(const struct flow *flow, struct flow *base, struct ofpbuf *odp_actions) { - if (!memcmp(&base->tunnel, &flow->tunnel, sizeof base->tunnel)) { - return; - } - memcpy(&base->tunnel, &flow->tunnel, sizeof base->tunnel); - /* A valid IPV4_TUNNEL must have non-zero ip_dst. */ if (flow->tunnel.ip_dst) { + if (!memcmp(&base->tunnel, &flow->tunnel, sizeof base->tunnel)) { + return; + } + memcpy(&base->tunnel, &flow->tunnel, sizeof base->tunnel); odp_put_tunnel_action(&base->tunnel, odp_actions); } } -- 2.43.0