Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ffb30d8f authored by Moses Reuben's avatar Moses Reuben Committed by Doug Ledford
Browse files

IB/mlx5: Support Vxlan tunneling specification



Add support to receive specific Vxlan packet in ConnectX-4.

Signed-off-by: default avatarMoses Reuben <mosesr@mellanox.com>
Reviewed-by: default avatarMaor Gottlieb <maorg@mellanox.com>
Signed-off-by: default avatarLeon Romanovsky <leon@kernel.org>
Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
parent a0cb4c75
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -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_IPV6_FIELD traffic_class
#define LAST_TCP_UDP_FIELD src_port
#define LAST_TUNNEL_FIELD tunnel_id

/* Field is the last supported 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,
			 ntohs(ib_spec->tcp_udp.val.dst_port));
		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:
		return -EINVAL;
	}