MCPcopy Create free account
hub / github.com/F-Stack/f-stack / mlx5_flow_meter_disable

Function mlx5_flow_meter_disable

dpdk/drivers/net/mlx5/mlx5_flow_meter.c:1746–1772  ·  view source on GitHub ↗

* Callback to disable flow meter. * * @param[in] dev * Pointer to Ethernet device. * @param[in] meter_id * Meter id. * @param[out] error * Pointer to rte meter error structure. * * @return * 0 on success, a negative errno value otherwise and rte_errno is set. */

Source from the content-addressed store, hash-verified

1744 * 0 on success, a negative errno value otherwise and rte_errno is set.
1745 */
1746static int
1747mlx5_flow_meter_disable(struct rte_eth_dev *dev,
1748 uint32_t meter_id,
1749 struct rte_mtr_error *error)
1750{
1751 struct mlx5_priv *priv = dev->data->dev_private;
1752 struct mlx5_flow_meter_info *fm;
1753 int ret;
1754
1755 if (!priv->mtr_en)
1756 return -rte_mtr_error_set(error, ENOTSUP,
1757 RTE_MTR_ERROR_TYPE_UNSPECIFIED, NULL,
1758 "Meter is not supported");
1759 /* Meter object must exist. */
1760 fm = mlx5_flow_meter_find(priv, meter_id, NULL);
1761 if (fm == NULL)
1762 return -rte_mtr_error_set(error, ENOENT,
1763 RTE_MTR_ERROR_TYPE_MTR_ID,
1764 NULL, "Meter not found.");
1765 if (fm->active_state == MLX5_FLOW_METER_DISABLE)
1766 return 0;
1767 ret = mlx5_flow_meter_modify_state(priv, fm, MLX5_FLOW_METER_DISABLE,
1768 error);
1769 if (!ret)
1770 fm->active_state = MLX5_FLOW_METER_DISABLE;
1771 return ret;
1772}
1773
1774/**
1775 * Callback to update meter profile.

Callers 1

mlx5_flow_meter_createFunction · 0.85

Calls 3

rte_mtr_error_setFunction · 0.85
mlx5_flow_meter_findFunction · 0.85

Tested by

no test coverage detected