}
}
- if (rx_offloads & DEV_RX_OFFLOAD_VLAN_STRIP)
+ if (rx_offloads & RTE_ETH_RX_OFFLOAD_VLAN_STRIP)
vnic->vlan_strip = true;
else
vnic->vlan_strip = false;
break;
case RTE_FLOW_ACTION_TYPE_RSS:
break;
- case RTE_FLOW_ACTION_TYPE_MARK:
- break;
- case RTE_FLOW_ACTION_TYPE_COUNT:
- break;
default:
return -ENOTSUP;
}
}
/* Currently RSS hash on inner and outer headers are supported.
- * 0 => Default setting
- * 1 => Inner
- * 2 => Outer
+ * 0 => Default (innermost RSS) setting
+ * 1 => Outermost
*/
- if (rss->level > 2) {
+ if (rss->level > 1) {
rte_flow_error_set(error,
ENOTSUP,
RTE_FLOW_ERROR_TYPE_ACTION,
}
/* If RSS types is 0, use a best effort configuration */
- types = rss->types ? rss->types : ETH_RSS_IPV4;
+ types = rss->types ? rss->types : RTE_ETH_RSS_IPV4 | RTE_ETH_RSS_IPV6;
hash_type = bnxt_rte_to_hwrm_hash_types(types);
skip_rss_table:
rc = bnxt_hwrm_vnic_rss_cfg(bp, vnic);
+ if (rc != 0) {
+ rte_flow_error_set(error,
+ -rc,
+ RTE_FLOW_ERROR_TYPE_ACTION,
+ act,
+ "VNIC RSS configure failed");
+ rc = -rte_errno;
+ goto ret;
+ }
ret:
return rc;
}
rxq = bp->rx_queues[act_q->index];
- if (!(dev_conf->rxmode.mq_mode & ETH_MQ_RX_RSS) && rxq &&
+ if (!(dev_conf->rxmode.mq_mode & RTE_ETH_MQ_RX_RSS) && rxq &&
vnic->fw_vnic_id != INVALID_HW_RING_ID)
goto use_vnic;
/* RSS config update requested */
rc = bnxt_vnic_rss_cfg_update(bp, vnic, act, error);
if (rc != 0)
- return -rte_errno;
+ goto ret;
filter->dst_id = vnic->fw_vnic_id;
break;