From: Aarnav JP <[email protected]>

While converting to HW specific icolor, check for invalid
default pre color.
Fixes: ac35d4bf4cd6 ("net/cnxk: support ingress meter pre-color")

Signed-off-by: Aarnav JP <[email protected]>
---
 drivers/net/cnxk/cnxk_ethdev_mtr.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/drivers/net/cnxk/cnxk_ethdev_mtr.c 
b/drivers/net/cnxk/cnxk_ethdev_mtr.c
index edeca6dcc3..992e2d446e 100644
--- a/drivers/net/cnxk/cnxk_ethdev_mtr.c
+++ b/drivers/net/cnxk/cnxk_ethdev_mtr.c
@@ -1261,7 +1261,13 @@ nix_mtr_config_map(struct cnxk_meter_node *mtr, struct 
roc_nix_bpf_cfg *cfg)
 
        cfg->alg = alg_map[profile->profile.alg];
        cfg->lmode = profile->profile.packet_mode;
-       cfg->icolor = color_map[mtr->params.default_input_color];
+       int idx = mtr->params.default_input_color;
+
+       /* Index validation */
+       if (idx >= RTE_COLORS)
+               cfg->icolor = ROC_NIX_BPF_COLOR_GREEN;
+       else
+               cfg->icolor = color_map[idx];
 
        switch (RTE_MTR_COLOR_IN_PROTO_OUTER_IP) {
        case RTE_MTR_COLOR_IN_PROTO_OUTER_IP:
-- 
2.34.1

Reply via email to