IB/mlx5: Support Vxlan tunneling specification
Add support to receive specific Vxlan packet in ConnectX-4. Signed-off-by: Moses Reuben <mosesr@mellanox.com> Reviewed-by: Maor Gottlieb <maorg@mellanox.com> Signed-off-by: Leon Romanovsky <leon@kernel.org> Signed-off-by: Doug Ledford <dledford@redhat.com>
This commit is contained in:
parent
a0cb4c759a
commit
ffb30d8f10
|
@ -1539,6 +1539,7 @@ static void set_tos(void *outer_c, void *outer_v, u8 mask, u8 val)
|
||||||
#define LAST_IPV4_FIELD tos
|
#define LAST_IPV4_FIELD tos
|
||||||
#define LAST_IPV6_FIELD traffic_class
|
#define LAST_IPV6_FIELD traffic_class
|
||||||
#define LAST_TCP_UDP_FIELD src_port
|
#define LAST_TCP_UDP_FIELD src_port
|
||||||
|
#define LAST_TUNNEL_FIELD tunnel_id
|
||||||
|
|
||||||
/* Field is the last supported field */
|
/* Field is the last supported field */
|
||||||
#define FIELDS_NOT_SUPPORTED(filter, field)\
|
#define FIELDS_NOT_SUPPORTED(filter, field)\
|
||||||
|
@ -1722,6 +1723,16 @@ static int parse_flow_attr(u32 *match_c, u32 *match_v,
|
||||||
MLX5_SET(fte_match_set_lyr_2_4, outer_headers_v, udp_dport,
|
MLX5_SET(fte_match_set_lyr_2_4, outer_headers_v, udp_dport,
|
||||||
ntohs(ib_spec->tcp_udp.val.dst_port));
|
ntohs(ib_spec->tcp_udp.val.dst_port));
|
||||||
break;
|
break;
|
||||||
|
case IB_FLOW_SPEC_VXLAN_TUNNEL:
|
||||||
|
if (FIELDS_NOT_SUPPORTED(ib_spec->tunnel.mask,
|
||||||
|
LAST_TUNNEL_FIELD))
|
||||||
|
return -ENOTSUPP;
|
||||||
|
|
||||||
|
MLX5_SET(fte_match_set_misc, misc_params_c, vxlan_vni,
|
||||||
|
ntohl(ib_spec->tunnel.mask.tunnel_id));
|
||||||
|
MLX5_SET(fte_match_set_misc, misc_params_v, vxlan_vni,
|
||||||
|
ntohl(ib_spec->tunnel.val.tunnel_id));
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue