From: Jiri Pirko <j...@mellanox.com>

HW supports packet sampling on ingress only. Check and fail if user
is adding sample on egress.

Signed-off-by: Jiri Pirko <j...@mellanox.com>
Signed-off-by: Ido Schimmel <ido...@mellanox.com>
---
 drivers/net/ethernet/mellanox/mlxsw/spectrum_matchall.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_matchall.c 
b/drivers/net/ethernet/mellanox/mlxsw/spectrum_matchall.c
index da1c05f44cec..c75661521bbc 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_matchall.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_matchall.c
@@ -212,6 +212,11 @@ int mlxsw_sp_mall_replace(struct mlxsw_sp_flow_block 
*block,
                mall_entry->mirror.to_dev = act->dev;
        } else if (act->id == FLOW_ACTION_SAMPLE &&
                   protocol == htons(ETH_P_ALL)) {
+               if (!mall_entry->ingress) {
+                       NL_SET_ERR_MSG(f->common.extack, "Sample is not 
supported on egress");
+                       err = -EOPNOTSUPP;
+                       goto errout;
+               }
                if (act->sample.rate > MLXSW_REG_MPSC_RATE_MAX) {
                        NL_SET_ERR_MSG(f->common.extack, "Sample rate not 
supported");
                        err = -EOPNOTSUPP;
-- 
2.26.2

Reply via email to