|
@@ -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;
|
|
|
}
|