- return ret;
-}
-
-/**
- * Set/reset VLAN stripping for a specific queue.
- *
- * @param priv
- * Pointer to private structure.
- * @param idx
- * RX queue index.
- * @param on
- * Enable/disable VLAN stripping.
- */
-static void
-priv_vlan_strip_queue_set(struct priv *priv, uint16_t idx, int on)
-{
- struct mlx5_rxq_data *rxq = (*priv->rxqs)[idx];
- struct mlx5_rxq_ctrl *rxq_ctrl =
- container_of(rxq, struct mlx5_rxq_ctrl, rxq);
- struct ibv_wq_attr mod;
- uint16_t vlan_offloads =
- (on ? IBV_WQ_FLAGS_CVLAN_STRIPPING : 0) |
- 0;
- int err;
-
- DEBUG("set VLAN offloads 0x%x for port %d queue %d",
- vlan_offloads, rxq->port_id, idx);
- if (!rxq_ctrl->ibv) {
- /* Update related bits in RX queue. */
- rxq->vlan_strip = !!on;
- return;
- }
- mod = (struct ibv_wq_attr){
- .attr_mask = IBV_WQ_ATTR_FLAGS,
- .flags_mask = IBV_WQ_FLAGS_CVLAN_STRIPPING,
- .flags = vlan_offloads,
- };
- err = mlx5_glue->modify_wq(rxq_ctrl->ibv->wq, &mod);
- if (err) {
- ERROR("%p: failed to modified stripping mode: %s",
- (void *)priv, strerror(err));
- return;
- }
- /* Update related bits in RX queue. */
- rxq->vlan_strip = !!on;