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