net/mlx5: add C++ include guard to public header
[dpdk.git] / drivers / net / bnxt / bnxt_flow.c
index b2ebb56..f7c90c4 100644 (file)
@@ -978,7 +978,7 @@ static int bnxt_vnic_prep(struct bnxt *bp, struct bnxt_vnic_info *vnic,
                }
        }
 
-       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;
@@ -1084,10 +1084,6 @@ bnxt_validate_rss_action(const struct rte_flow_action actions[])
                        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;
                }
@@ -1151,11 +1147,10 @@ bnxt_vnic_rss_cfg_update(struct bnxt *bp,
        }
 
        /* 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,
@@ -1177,7 +1172,7 @@ bnxt_vnic_rss_cfg_update(struct bnxt *bp,
        }
 
        /* 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);
 
@@ -1231,6 +1226,15 @@ bnxt_vnic_rss_cfg_update(struct bnxt *bp,
 
 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;
 }
@@ -1289,13 +1293,6 @@ start:
                }
                PMD_DRV_LOG(DEBUG, "Queue index %d\n", act_q->index);
 
-               if (use_ntuple && !BNXT_RFS_NEEDS_VNIC(bp)) {
-                       filter->flags =
-                               HWRM_CFA_NTUPLE_FILTER_ALLOC_INPUT_FLAGS_DEST_RFS_RING_IDX;
-                       filter->dst_id = act_q->index;
-                       goto skip_vnic_alloc;
-               }
-
                vnic_id = attr->group;
                if (!vnic_id) {
                        PMD_DRV_LOG(DEBUG, "Group id is 0\n");
@@ -1322,7 +1319,7 @@ start:
 
                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;
 
@@ -1360,7 +1357,7 @@ use_vnic:
                PMD_DRV_LOG(DEBUG,
                            "Setting vnic ff_idx %d\n", vnic->ff_pool_idx);
                filter->dst_id = vnic->fw_vnic_id;
-skip_vnic_alloc:
+
                /* For ntuple filter, create the L2 filter with default VNIC.
                 * The user specified redirect queue will be set while creating
                 * the ntuple filter in hardware.
@@ -1520,7 +1517,7 @@ skip_vnic_alloc:
                        /* 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;
@@ -2059,10 +2056,7 @@ bnxt_flow_create(struct rte_eth_dev *dev,
                }
        }
 
-       if (BNXT_RFS_NEEDS_VNIC(bp))
-               vnic = find_matching_vnic(bp, filter);
-       else
-               vnic = BNXT_GET_DEFAULT_VNIC(bp);
+       vnic = find_matching_vnic(bp, filter);
 done:
        if (!ret || update_flow) {
                flow->filter = filter;