1*1a362d74SSatha Rao /* SPDX-License-Identifier: BSD-3-Clause 2*1a362d74SSatha Rao * Copyright(C) 2021 Marvell. 3*1a362d74SSatha Rao */ 4*1a362d74SSatha Rao #include <rte_log.h> 5*1a362d74SSatha Rao #include <rte_tm_driver.h> 6*1a362d74SSatha Rao 7*1a362d74SSatha Rao #include "roc_api.h" 8*1a362d74SSatha Rao #include "roc_priv.h" 9*1a362d74SSatha Rao 10*1a362d74SSatha Rao #include "cnxk_utils.h" 11*1a362d74SSatha Rao 12*1a362d74SSatha Rao int roc_nix_tm_err_to_rte_err(int errorcode)13*1a362d74SSatha Raoroc_nix_tm_err_to_rte_err(int errorcode) 14*1a362d74SSatha Rao { 15*1a362d74SSatha Rao int err_type; 16*1a362d74SSatha Rao 17*1a362d74SSatha Rao switch (errorcode) { 18*1a362d74SSatha Rao case NIX_ERR_TM_SHAPER_PKT_LEN_ADJUST: 19*1a362d74SSatha Rao err_type = RTE_TM_ERROR_TYPE_SHAPER_PROFILE_PKT_ADJUST_LEN; 20*1a362d74SSatha Rao break; 21*1a362d74SSatha Rao case NIX_ERR_TM_INVALID_COMMIT_SZ: 22*1a362d74SSatha Rao err_type = RTE_TM_ERROR_TYPE_SHAPER_PROFILE_COMMITTED_SIZE; 23*1a362d74SSatha Rao break; 24*1a362d74SSatha Rao case NIX_ERR_TM_INVALID_COMMIT_RATE: 25*1a362d74SSatha Rao err_type = RTE_TM_ERROR_TYPE_SHAPER_PROFILE_COMMITTED_RATE; 26*1a362d74SSatha Rao break; 27*1a362d74SSatha Rao case NIX_ERR_TM_INVALID_PEAK_SZ: 28*1a362d74SSatha Rao err_type = RTE_TM_ERROR_TYPE_SHAPER_PROFILE_PEAK_SIZE; 29*1a362d74SSatha Rao break; 30*1a362d74SSatha Rao case NIX_ERR_TM_INVALID_PEAK_RATE: 31*1a362d74SSatha Rao err_type = RTE_TM_ERROR_TYPE_SHAPER_PROFILE_PEAK_RATE; 32*1a362d74SSatha Rao break; 33*1a362d74SSatha Rao case NIX_ERR_TM_INVALID_SHAPER_PROFILE: 34*1a362d74SSatha Rao err_type = RTE_TM_ERROR_TYPE_SHAPER_PROFILE_ID; 35*1a362d74SSatha Rao break; 36*1a362d74SSatha Rao case NIX_ERR_TM_SHAPER_PROFILE_IN_USE: 37*1a362d74SSatha Rao err_type = RTE_TM_ERROR_TYPE_SHAPER_PROFILE; 38*1a362d74SSatha Rao break; 39*1a362d74SSatha Rao case NIX_ERR_TM_INVALID_NODE: 40*1a362d74SSatha Rao err_type = RTE_TM_ERROR_TYPE_NODE_ID; 41*1a362d74SSatha Rao break; 42*1a362d74SSatha Rao case NIX_ERR_TM_PKT_MODE_MISMATCH: 43*1a362d74SSatha Rao err_type = RTE_TM_ERROR_TYPE_SHAPER_PROFILE_ID; 44*1a362d74SSatha Rao break; 45*1a362d74SSatha Rao case NIX_ERR_TM_INVALID_PARENT: 46*1a362d74SSatha Rao case NIX_ERR_TM_PARENT_PRIO_UPDATE: 47*1a362d74SSatha Rao err_type = RTE_TM_ERROR_TYPE_NODE_PARENT_NODE_ID; 48*1a362d74SSatha Rao break; 49*1a362d74SSatha Rao case NIX_ERR_TM_PRIO_ORDER: 50*1a362d74SSatha Rao case NIX_ERR_TM_MULTIPLE_RR_GROUPS: 51*1a362d74SSatha Rao err_type = RTE_TM_ERROR_TYPE_NODE_PRIORITY; 52*1a362d74SSatha Rao break; 53*1a362d74SSatha Rao case NIX_ERR_TM_PRIO_EXCEEDED: 54*1a362d74SSatha Rao err_type = RTE_TM_ERROR_TYPE_CAPABILITIES; 55*1a362d74SSatha Rao break; 56*1a362d74SSatha Rao default: 57*1a362d74SSatha Rao /** 58*1a362d74SSatha Rao * Handle general error (as defined in linux errno.h) 59*1a362d74SSatha Rao */ 60*1a362d74SSatha Rao if (abs(errorcode) < 300) 61*1a362d74SSatha Rao err_type = errorcode; 62*1a362d74SSatha Rao else 63*1a362d74SSatha Rao err_type = RTE_TM_ERROR_TYPE_UNSPECIFIED; 64*1a362d74SSatha Rao break; 65*1a362d74SSatha Rao } 66*1a362d74SSatha Rao 67*1a362d74SSatha Rao return err_type; 68*1a362d74SSatha Rao } 69