nfp: flower: Allow ipv6gretap interface for offloading
The tunnel_type check only allows for "netif_is_gretap", but for OVS the port is actually "netif_is_ip6gretap" when setting up GRE for ipv6, which means offloading request was rejected before. Therefore, adding "netif_is_ip6gretap" allow ipv6gretap interface for offloading. Signed-off-by: Yu Xiao <yu.xiao@corigine.com> Signed-off-by: Louis Peens <louis.peens@corigine.com> Signed-off-by: Simon Horman <simon.horman@corigine.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
c07c6e8eb4
Коммит
f7536ffb09
|
@ -272,7 +272,8 @@ nfp_flower_tun_is_gre(struct flow_rule *rule, int start_idx)
|
|||
for (act_idx = start_idx + 1; act_idx < num_act; act_idx++)
|
||||
if (act[act_idx].id == FLOW_ACTION_REDIRECT ||
|
||||
act[act_idx].id == FLOW_ACTION_MIRRED)
|
||||
return netif_is_gretap(act[act_idx].dev);
|
||||
return netif_is_gretap(act[act_idx].dev) ||
|
||||
netif_is_ip6gretap(act[act_idx].dev);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -703,7 +703,7 @@ nfp_fl_netdev_is_tunnel_type(struct net_device *netdev,
|
|||
{
|
||||
if (netif_is_vxlan(netdev))
|
||||
return tun_type == NFP_FL_TUNNEL_VXLAN;
|
||||
if (netif_is_gretap(netdev))
|
||||
if (netif_is_gretap(netdev) || netif_is_ip6gretap(netdev))
|
||||
return tun_type == NFP_FL_TUNNEL_GRE;
|
||||
if (netif_is_geneve(netdev))
|
||||
return tun_type == NFP_FL_TUNNEL_GENEVE;
|
||||
|
|
|
@ -360,7 +360,7 @@ nfp_flower_calculate_key_layers(struct nfp_app *app,
|
|||
|
||||
if (!flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_ENC_PORTS)) {
|
||||
/* check if GRE, which has no enc_ports */
|
||||
if (!netif_is_gretap(netdev)) {
|
||||
if (!netif_is_gretap(netdev) && !netif_is_ip6gretap(netdev)) {
|
||||
NL_SET_ERR_MSG_MOD(extack, "unsupported offload: an exact match on L4 destination port is required for non-GRE tunnels");
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче