mirror of
https://github.com/openvswitch/ovs
synced 2025-10-13 14:07:02 +00:00
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 <jarno.rajahalme@nsn.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
This commit is contained in:
committed by
Ben Pfaff
parent
339f0a19dc
commit
fc80de30d4
@@ -2161,13 +2161,12 @@ void
|
|||||||
commit_odp_tunnel_action(const struct flow *flow, struct flow *base,
|
commit_odp_tunnel_action(const struct flow *flow, struct flow *base,
|
||||||
struct ofpbuf *odp_actions)
|
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. */
|
/* A valid IPV4_TUNNEL must have non-zero ip_dst. */
|
||||||
if (flow->tunnel.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);
|
odp_put_tunnel_action(&base->tunnel, odp_actions);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user