RTE_FLOW_ERROR_TYPE_ITEM, item,
"IPv4 cannot follow L2/VLAN layer "
"which ether type is not IPv4");
- if (item_flags & MLX5_FLOW_LAYER_IPIP) {
+ if (item_flags & MLX5_FLOW_LAYER_TUNNEL) {
if (mask && spec)
next_proto = mask->hdr.next_proto_id &
spec->hdr.next_proto_id;
"which ether type is not IPv6");
if (mask && mask->hdr.proto == UINT8_MAX && spec)
next_proto = spec->hdr.proto;
- if (item_flags & MLX5_FLOW_LAYER_IPV6_ENCAP) {
+ if (item_flags & MLX5_FLOW_LAYER_TUNNEL) {
if (next_proto == IPPROTO_IPIP || next_proto == IPPROTO_IPV6)
return rte_flow_error_set(error, EINVAL,
RTE_FLOW_ERROR_TYPE_ITEM,
struct mlx5_flow dev_flow = {0};
struct mlx5_flow_handle dev_handle = { {0} };
- rss_desc_v[i] = wks->rss_desc;
if (policy->is_rss) {
const void *rss_act =
policy->act_cnt[i].rss->conf;
if (flow_drv_translate(dev, &dev_flow, attr,
items, rss_actions, error))
goto exit;
+ rss_desc_v[i] = wks->rss_desc;
rss_desc_v[i].key_len = MLX5_RSS_HASH_KEY_LEN;
rss_desc_v[i].hash_fields =
dev_flow.hash_fields;
rss_desc_v[i].queue_num =
rss_desc_v[i].hash_fields ?
rss_desc_v[i].queue_num : 1;
+ rss_desc_v[i].tunnel =
+ !!(dev_flow.handle->layers &
+ MLX5_FLOW_LAYER_TUNNEL);
} else {
/* This is queue action. */
+ rss_desc_v[i] = wks->rss_desc;
rss_desc_v[i].key_len = 0;
rss_desc_v[i].hash_fields = 0;
rss_desc_v[i].queue =