net/mlx5: make FDB default rule optional
[dpdk.git] / drivers / net / mlx5 / mlx5_trigger.c
index f4dc047..7e12cd5 100644 (file)
@@ -106,9 +106,12 @@ mlx5_rxq_start(struct rte_eth_dev *dev)
        unsigned int i;
        int ret = 0;
        enum mlx5_rxq_obj_type obj_type = MLX5_RXQ_OBJ_TYPE_IBV;
+       struct mlx5_rxq_data *rxq = NULL;
 
        for (i = 0; i < priv->rxqs_n; ++i) {
-               if ((*priv->rxqs)[i]->lro) {
+               rxq = (*priv->rxqs)[i];
+
+               if (rxq && rxq->lro) {
                        obj_type =  MLX5_RXQ_OBJ_TYPE_DEVX_RQ;
                        break;
                }
@@ -420,9 +423,14 @@ mlx5_traffic_enable(struct rte_eth_dev *dev)
                }
                mlx5_txq_release(dev, i);
        }
-       if (priv->config.dv_esw_en && !priv->config.vf && !priv->representor)
-               if (!mlx5_flow_create_esw_table_zero_flow(dev))
-                       goto error;
+       if (priv->config.dv_esw_en && !priv->config.vf) {
+               if (mlx5_flow_create_esw_table_zero_flow(dev))
+                       priv->fdb_def_rule = 1;
+               else
+                       DRV_LOG(INFO, "port %u FDB default rule cannot be"
+                               " configured - only Eswitch group 0 flows are"
+                               " supported.", dev->data->port_id);
+       }
        if (priv->isolated)
                return 0;
        if (dev->data->promiscuous) {