net/mlx5e: Check encap entry state when offloading tunneled flows
Encap entries cached by the driver could be invalidated due to
tunnel destination neighbour state changes.
When attempting to offload a flow that uses a cached encap entry,
we must check the entry validity and defer the offloading
if the entry exists but not valid.
When EAGAIN is returned, the flow offloading to hardware takes place
by the neigh update code when the tunnel destination neighbour
becomes connected.
Fixes: 232c001398
("net/mlx5e: Add support to neighbour update flow")
Signed-off-by: Vlad Buslov <vladbu@mellanox.com>
Reviewed-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
This commit is contained in:
parent
bdd66ac0ae
commit
b281208911
|
@ -1859,6 +1859,7 @@ vxlan_encap_offload_err:
|
|||
}
|
||||
}
|
||||
|
||||
/* must verify if encap is valid or not */
|
||||
if (found)
|
||||
goto attach_flow;
|
||||
|
||||
|
@ -1885,6 +1886,8 @@ attach_flow:
|
|||
*encap_dev = e->out_dev;
|
||||
if (e->flags & MLX5_ENCAP_ENTRY_VALID)
|
||||
attr->encap_id = e->encap_id;
|
||||
else
|
||||
err = -EAGAIN;
|
||||
|
||||
return err;
|
||||
|
||||
|
|
Loading…
Reference in New Issue