X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fmlx5%2Fmlx5_vlan.c;h=e7161b66fe36cbf40151af49afb31ba621f696d8;hb=80f872ee0222e3936856e43a693168425b1c78ae;hp=4bcd3e27eaa378e73f7d37fad4e2bc3deba7becf;hpb=7af10d29a4a0b8942f8dee9eda0145cd7581a8f7;p=dpdk.git diff --git a/drivers/net/mlx5/mlx5_vlan.c b/drivers/net/mlx5/mlx5_vlan.c index 4bcd3e27ea..e7161b66fe 100644 --- a/drivers/net/mlx5/mlx5_vlan.c +++ b/drivers/net/mlx5/mlx5_vlan.c @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include #include @@ -16,6 +16,7 @@ #include "mlx5.h" #include "mlx5_autoconf.h" #include "mlx5_rxtx.h" +#include "mlx5_rx.h" #include "mlx5_utils.h" #include "mlx5_devx.h" @@ -90,13 +91,13 @@ void mlx5_vlan_strip_queue_set(struct rte_eth_dev *dev, uint16_t queue, int on) { struct mlx5_priv *priv = dev->data->dev_private; - struct mlx5_rxq_data *rxq = (*priv->rxqs)[queue]; - struct mlx5_rxq_ctrl *rxq_ctrl = - container_of(rxq, struct mlx5_rxq_ctrl, rxq); + struct mlx5_rxq_priv *rxq = mlx5_rxq_get(dev, queue); + struct mlx5_rxq_data *rxq_data = &rxq->ctrl->rxq; int ret = 0; + MLX5_ASSERT(rxq != NULL && rxq->ctrl != NULL); /* Validate hw support */ - if (!priv->config.hw_vlan_strip) { + if (!priv->sh->dev_cap.hw_vlan_strip) { DRV_LOG(ERR, "port %u VLAN stripping is not supported", dev->data->port_id); return; @@ -108,21 +109,20 @@ mlx5_vlan_strip_queue_set(struct rte_eth_dev *dev, uint16_t queue, int on) return; } DRV_LOG(DEBUG, "port %u set VLAN stripping offloads %d for port %uqueue %d", - dev->data->port_id, on, rxq->port_id, queue); - if (!rxq_ctrl->obj) { + dev->data->port_id, on, rxq_data->port_id, queue); + if (rxq->ctrl->obj == NULL) { /* Update related bits in RX queue. */ - rxq->vlan_strip = !!on; + rxq_data->vlan_strip = !!on; return; } - ret = priv->obj_ops->rxq_obj_modify_vlan_strip(rxq_ctrl->obj, on); + ret = priv->obj_ops.rxq_obj_modify_vlan_strip(rxq, on); if (ret) { - DRV_LOG(ERR, "port %u failed to modify object %d stripping " - "mode: %s", dev->data->port_id, - rxq_ctrl->obj->type, strerror(rte_errno)); + DRV_LOG(ERR, "Port %u failed to modify object stripping mode:" + " %s", dev->data->port_id, strerror(rte_errno)); return; } /* Update related bits in RX queue. */ - rxq->vlan_strip = !!on; + rxq_data->vlan_strip = !!on; } /** @@ -142,11 +142,11 @@ mlx5_vlan_offload_set(struct rte_eth_dev *dev, int mask) struct mlx5_priv *priv = dev->data->dev_private; unsigned int i; - if (mask & ETH_VLAN_STRIP_MASK) { + if (mask & RTE_ETH_VLAN_STRIP_MASK) { int hw_vlan_strip = !!(dev->data->dev_conf.rxmode.offloads & - DEV_RX_OFFLOAD_VLAN_STRIP); + RTE_ETH_RX_OFFLOAD_VLAN_STRIP); - if (!priv->config.hw_vlan_strip) { + if (!priv->sh->dev_cap.hw_vlan_strip) { DRV_LOG(ERR, "port %u VLAN stripping is not supported", dev->data->port_id); return 0;