X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fmlx5%2Fmlx5_rxmode.c;fp=drivers%2Fnet%2Fmlx5%2Fmlx5_rxmode.c;h=bcf42314642c6ced6e25c385ceb7cd8ca99b4c80;hb=0d2186743d62a568b26d9d56a96e03eaf3f91522;hp=9ac7a4113fb64779bdcc8b71dbec46b6b1922999;hpb=1371f4df16bc58a6dc01776af9c89bb39c0bc796;p=dpdk.git diff --git a/drivers/net/mlx5/mlx5_rxmode.c b/drivers/net/mlx5/mlx5_rxmode.c index 9ac7a4113f..bcf4231464 100644 --- a/drivers/net/mlx5/mlx5_rxmode.c +++ b/drivers/net/mlx5/mlx5_rxmode.c @@ -267,6 +267,46 @@ priv_special_flow_disable(struct priv *priv, enum hash_rxq_flow_type flow_type) } } +/** + * Enable all special flows in all hash RX queues. + * + * @param priv + * Private structure. + */ +int +priv_special_flow_enable_all(struct priv *priv) +{ + enum hash_rxq_flow_type flow_type; + + for (flow_type = 0; flow_type != HASH_RXQ_FLOW_TYPE_MAC; ++flow_type) { + int ret; + + ret = priv_special_flow_enable(priv, flow_type); + if (!ret) + continue; + /* Failure, rollback. */ + while (flow_type) + priv_special_flow_disable(priv, --flow_type); + return ret; + } + return 0; +} + +/** + * Disable all special flows in all hash RX queues. + * + * @param priv + * Private structure. + */ +void +priv_special_flow_disable_all(struct priv *priv) +{ + enum hash_rxq_flow_type flow_type; + + for (flow_type = 0; flow_type != HASH_RXQ_FLOW_TYPE_MAC; ++flow_type) + priv_special_flow_disable(priv, flow_type); +} + /** * DPDK callback to enable promiscuous mode. *