]>
Commit | Line | Data |
---|---|---|
74971473 JG |
1 | /* |
2 | * This file is part of the PCEPlib, a PCEP protocol library. | |
3 | * | |
4 | * Copyright (C) 2020 Volta Networks https://voltanet.io/ | |
5 | * | |
6 | * This library is free software; you can redistribute it and/or | |
7 | * modify it under the terms of the GNU Lesser General Public | |
8 | * License as published by the Free Software Foundation; either | |
9 | * version 2 of the License, or (at your option) any later version. | |
10 | * | |
11 | * This library is distributed in the hope that it will be useful, | |
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
14 | * Lesser General Public License for more details. | |
15 | * | |
16 | * You should have received a copy of the GNU Lesser General Public License | |
17 | * along with this program. If not, see <https://www.gnu.org/licenses/>. | |
18 | * | |
19 | * Author : Brady Johnson <brady@voltanet.io> | |
20 | */ | |
21 | ||
22 | ||
23 | /* | |
24 | * Error Object Type and Value definitions | |
25 | */ | |
26 | ||
27 | #ifndef PCEP_OBJECT_ERROR_TYPES_H | |
28 | #define PCEP_OBJECT_ERROR_TYPES_H | |
29 | ||
30 | #ifdef __cplusplus | |
31 | extern "C" { | |
32 | #endif | |
33 | ||
34 | #define MAX_ERROR_TYPE 30 | |
35 | #define MAX_ERROR_VALUE 255 | |
36 | ||
37 | enum pcep_error_type { | |
38 | PCEP_ERRT_SESSION_FAILURE = 1, | |
39 | PCEP_ERRT_CAPABILITY_NOT_SUPPORTED = 2, | |
40 | PCEP_ERRT_UNKNOW_OBJECT = 3, | |
41 | PCEP_ERRT_NOT_SUPPORTED_OBJECT = 4, | |
42 | PCEP_ERRT_POLICY_VIOLATION = 5, | |
43 | PCEP_ERRT_MANDATORY_OBJECT_MISSING = 6, | |
44 | PCEP_ERRT_SYNC_PC_REQ_MISSING = 7, | |
45 | PCEP_ERRT_UNKNOWN_REQ_REF = 8, | |
46 | PCEP_ERRT_ATTEMPT_TO_ESTABLISH_2ND_PCEP_SESSION = 9, | |
47 | PCEP_ERRT_RECEPTION_OF_INV_OBJECT = 10, | |
48 | ||
49 | PCEP_ERRT_UNRECOGNIZED_EXRS_SUBOBJ = 11, | |
50 | PCEP_ERRT_DIFFSERV_AWARE_TE_ERROR = 12, | |
51 | PCEP_ERRT_BRPC_PROC_COMPLETION_ERROR = 13, | |
52 | PCEP_ERRT_UNASSIGNED14 = 14, | |
53 | PCEP_ERRT_GLOBAL_CONCURRENT_ERROR = 15, | |
54 | PCEP_ERRT_P2PMP_CAP_ERROR = 16, | |
55 | PCEP_ERRT_P2P_ENDPOINTS_ERROR = 17, | |
56 | PCEP_ERRT_P2P_FRAGMENTATION_ERROR = 18, | |
57 | PCEP_ERRT_INVALID_OPERATION = 19, | |
58 | PCEP_ERRT_LSP_STATE_SYNC_ERROR = 20, | |
59 | ||
60 | PCEP_ERRT_INVALID_TE_PATH_SETUP_TYPE = 21, | |
61 | PCEP_ERRT_UNASSIGNED22 = 22, | |
62 | PCEP_ERRT_BAD_PARAMETER_VALUE = 23, | |
63 | PCEP_ERRT_LSP_INSTANTIATE_ERROR = 24, | |
64 | PCEP_ERRT_START_TLS_FAILURE = 25, | |
65 | PCEP_ERRT_ASSOCIATION_ERROR = 26, | |
66 | PCEP_ERRT_WSON_RWA_ERROR = 27, | |
67 | PCEP_ERRT_H_PCE_ERROR = 28, | |
68 | PCEP_ERRT_PATH_COMP_FAILURE = 29, | |
69 | PCEP_ERRT_UNASSIGNED30 = 30 /* 30 - 255 Unassigned */ | |
70 | }; | |
71 | ||
72 | enum pcep_error_value { | |
73 | /* Error Value for Error Types that do not use an Error Value: | |
74 | * PCEP_ERRT_CAPABILITY_NOT_SUPPORTED=2 | |
75 | * PCEP_ERRT_SYNC_PC_REQ_MISSING=7 | |
76 | * PCEP_ERRT_UNKNOWN_REQ_REF=8 | |
77 | * PCEP_ERRT_ATTEMPT_TO_ESTABLISH_2ND_PCEP_SESSION=9 | |
78 | * PCEP_ERRT_UNRECOGNIZED_EXRS_SUBOBJ=11 */ | |
79 | PCEP_ERRV_UNASSIGNED = 0, | |
80 | ||
81 | /* Error Values for PCEP_ERRT_SESSION_FAILURE=1 */ | |
82 | PCEP_ERRV_RECVD_INVALID_OPEN_MSG = 1, | |
83 | PCEP_ERRV_OPENWAIT_TIMED_OUT = 2, | |
84 | PCEP_ERRV_UNACCEPTABLE_OPEN_MSG_NO_NEG = 3, | |
85 | PCEP_ERRV_UNACCEPTABLE_OPEN_MSG_NEG = 4, | |
86 | PCEP_ERRV_RECVD_SECOND_OPEN_MSG_UNACCEPTABLE = 5, | |
87 | PCEP_ERRV_RECVD_PCERR = 6, | |
88 | PCEP_ERRV_KEEPALIVEWAIT_TIMED_OUT = 7, | |
89 | PCEP_ERRV_PCEP_VERSION_NOT_SUPPORTED = 8, | |
90 | ||
91 | /* Error Values for PCEP_ERRT_UNKNOW_OBJECT=3 */ | |
92 | PCEP_ERRV_UNREC_OBJECT_CLASS = 1, | |
93 | PCEP_ERRV_UNREC_OBJECT_TYPE = 2, | |
94 | ||
95 | /* Error Values for PCEP_ERRT_NOT_SUPPORTED_OBJECT=4 */ | |
96 | PCEP_ERRV_NOT_SUPPORTED_OBJECT_CLASS = 1, | |
97 | PCEP_ERRV_NOT_SUPPORTED_OBJECT_TYPE = 2, | |
98 | /* 3: Unassigned */ | |
99 | PCEP_ERRV_UNSUPPORTED_PARAM = 4, | |
100 | PCEP_ERRV_UNSUPPORTED_NW_PERF_CONSTRAINT = 5, | |
101 | PCEP_ERRV_NOT_SUPPORTED_BW_OBJECT_3_4 = 6, | |
102 | PCEP_ERRV_UNSUPPORTED_ENDPOINT_TYPE = 7, | |
103 | PCEP_ERRV_UNSUPPORTED_ENDPOINT_TLV = 8, | |
104 | PCEP_ERRV_UNSUPPORTED_RP_FLAG_GRANULARITY = 9, | |
105 | ||
106 | /* Error Values for PCEP_ERRT_POLICY_VIOLATION=5 */ | |
107 | PCEP_ERRV_C_BIT_SET_IN_METRIC_OBJECT = 1, | |
108 | PCEP_ERRV_O_BIT_CLEARD_IN_RP_OBJECT = 2, | |
109 | PCEP_ERRV_OBJECTIVE_FUNC_NOT_ALLOWED = 3, | |
110 | PCEP_ERRV_RP_OF_BIT_SET = 4, | |
111 | PCEP_ERRV_GLOBAL_CONCURRENCY_NOT_ALLOWED = 5, | |
112 | PCEP_ERRV_MONITORING_MSG_REJECTED = 6, | |
113 | PCEP_ERRV_P2MP_PATH_COMP_NOT_ALLOWED = 7, | |
114 | PCEP_ERRV_UNALLOWED_NW_PERF_CONSTRAINT = 8, | |
115 | ||
116 | /* Error Values for PCEP_ERRT_MANDATORY_OBJECT_MISSING=6 */ | |
117 | PCEP_ERRV_RP_OBJECT_MISSING = 1, | |
118 | PCEP_ERRV_RRO_OBJECT_MISSING_FOR_REOP = 2, | |
119 | PCEP_ERRV_EP_OBJECT_MISSING = 3, | |
120 | PCEP_ERRV_MONITOR_OBJECT_MISSING = 4, | |
121 | /* 5 - 7 Unassigned */ | |
122 | PCEP_ERRV_LSP_OBJECT_MISSING = 8, | |
123 | PCEP_ERRV_ERO_OBJECT_MISSING = 9, | |
124 | PCEP_ERRV_SRP_OBJECT_MISSING = 10, | |
125 | PCEP_ERRV_LSP_ID_TLV_MISSING = 11, | |
126 | PCEP_ERRV_LSP_DB_TLV_MISSING = 12, | |
127 | PCEP_ERRV_S2LS_OBJECT_MISSING = 13, | |
128 | PCEP_ERRV_P2MP_LSP_ID_TLV_MISSING = 14, | |
129 | PCEP_ERRV_DISJOINTED_CONF_TLV_MISSING = 15, | |
130 | ||
131 | /* Error Values for PCEP_ERRT_RECEPTION_OF_INV_OBJECT=10 */ | |
132 | PCEP_ERRV_P_FLAG_NOT_CORRECT_IN_OBJECT = 1, | |
133 | PCEP_ERRV_BAD_LABEL_VALUE = 2, | |
134 | PCEP_ERRV_UNSUPPORTED_NUM_SR_ERO_SUBOBJECTS = 3, | |
135 | PCEP_ERRV_BAD_LABEL_FORMAT = 4, | |
136 | PCEP_ERRV_ERO_SR_ERO_MIX = 5, | |
137 | PCEP_ERRV_SR_ERO_SID_NAI_ABSENT = 6, | |
138 | PCEP_ERRV_SR_RRO_SID_NAI_ABSENT = 7, | |
139 | PCEP_ERRV_SYMBOLIC_PATH_NAME_TLV_MISSING = 8, | |
140 | PCEP_ERRV_MSD_EXCEEDS_PCEP_SESSION_MAX = 9, | |
141 | ||
142 | PCEP_ERRV_RRO_SR_RRO_MIX = 10, | |
143 | PCEP_ERRV_MALFORMED_OBJECT = 11, | |
144 | PCEP_ERRV_MISSING_PCE_SR_CAP_TLV = 12, | |
145 | PCEP_ERRV_UNSUPPORTED_NAI = 13, | |
146 | PCEP_ERRV_UNKNOWN_SID = 14, | |
147 | PCEP_ERRV_CANNOT_RESOLVE_NAI_TO_SID = 15, | |
148 | PCEP_ERRV_COULD_NOT_FIND_SRGB = 16, | |
149 | PCEP_ERRV_SID_EXCEEDS_SRGB = 17, | |
150 | PCEP_ERRV_COULD_NOT_FIND_SRLB = 18, | |
151 | PCEP_ERRV_SID_EXCEEDS_SRLB = 19, | |
152 | ||
153 | PCEP_ERRV_INCONSISTENT_SID = 20, | |
154 | PCEP_ERRV_MSD_MUST_BE_NONZERO = 21, | |
155 | PCEP_ERRV_MISMATCH_O_S2LS_LSP = 22, | |
156 | PCEP_ERRV_INCOMPATIBLE_H_PCE_OF = 23, | |
157 | PCEP_ERRV_BAD_BANDWIDTH_TYPE_3_4 = 24, | |
158 | PCEP_ERRV_UNSUPPORTED_LSP_PROT_FLAGS = 25, | |
159 | PCEP_ERRV_UNSUPPORTED_2ND_LSP_PROT_FLAGS = 26, | |
160 | PCEP_ERRV_UNSUPPORTED_LINK_PROT_TYPE = 27, | |
161 | PCEP_ERRV_LABEL_SET_TLV_NO_RP_R = 28, | |
162 | PCEP_ERRV_WRONG_LABEL_SET_TLV_O_L_SET = 29, | |
163 | ||
164 | PCEP_ERRV_WRONG_LABEL_SET_O_SET = 30, | |
165 | PCEP_ERRV_MISSING_GMPLS_CAP_TLV = 31, | |
166 | PCEP_ERRV_INCOMPATIBLE_OF_CODE = 32, | |
167 | ||
168 | /* PCEP_ERRT_DIFFSERV_AWARE_TE_ERROR = 12 */ | |
169 | PCEP_ERRV_UNSUPPORTED_CLASS_TYPE = 1, | |
170 | PCEP_ERRV_INVALID_CLASS_TYPE = 2, | |
171 | PCEP_ERRV_CLASS_SETUP_TYPE_NOT_TE_CLASS = 3, | |
172 | ||
173 | /* PCEP_ERRT_BRPC_PROC_COMPLETION_ERROR = 13 */ | |
174 | PCEP_ERRV_BRPC_PROC_NOT_SUPPORTED = 1, | |
175 | ||
176 | /* PCEP_ERRT_UNASSIGNED14 = 14 */ | |
177 | ||
178 | /* PCEP_ERRT_GLOBAL_CONCURRENT_ERROR = 15 */ | |
179 | PCEP_ERRV_INSUFFICIENT_MEMORY = 1, | |
180 | PCEP_ERRV_GLOBAL_CONCURRENT_OPT_NOT_SUPPORTED = 2, | |
181 | ||
182 | /* PCEP_ERRT_P2PMP_CAP_ERROR = 16 */ | |
183 | PCEP_ERRV_PCE_INSUFFICIENT_MEMORY = 1, | |
184 | PCEP_ERRV_PCE_NOT_CAPABLE_P2MP_COMP = 2, | |
185 | ||
186 | /* PCEP_ERRT_P2P_ENDPOINTS_ERROR = 17 */ | |
187 | PCEP_ERRV_NO_EP_WITH_LEAF_TYPE2 = 1, | |
188 | PCEP_ERRV_NO_EP_WITH_LEAF_TYPE3 = 2, | |
189 | PCEP_ERRV_NO_EP_WITH_LEAF_TYPE4 = 3, | |
190 | PCEP_ERRV_INCONSITENT_EP = 4, | |
191 | ||
192 | /* PCEP_ERRT_P2P_FRAGMENTATION_ERROR = 18 */ | |
193 | PCEP_ERRV_FRAG_REQUEST_FAILURE = 1, | |
194 | PCEP_ERRV_FRAG_REPORT_FAILURE = 2, | |
195 | PCEP_ERRV_FRAG_UPDATE_FAILURE = 3, | |
196 | PCEP_ERRV_FRAG_INSTANTIATION_FAILURE = 4, | |
197 | ||
198 | /* Error Values for PCEP_ERRT_INVALID_OPERATION=19 */ | |
199 | PCEP_ERRV_LSP_UPDATE_FOR_NON_DELEGATED_LSP = 1, | |
200 | PCEP_ERRV_LSP_UPDATE_NON_ADVERTISED_PCE = 2, | |
201 | PCEP_ERRV_LSP_UPDATE_UNKNOWN_PLSP_ID = 3, | |
202 | /* 4: unassigned */ | |
203 | PCEP_ERRV_LSP_REPORT_NON_ADVERTISED_PCE = 5, | |
204 | PCEP_ERRV_PCE_INIT_LSP_LIMIT_REACHED = 6, | |
205 | PCEP_ERRV_PCE_INIT_LSP_DELEGATION_CANT_REVOKE = 7, | |
206 | PCEP_ERRV_LSP_INIT_NON_ZERO_PLSP_ID = 8, | |
207 | PCEP_ERRV_LSP_NOT_PCE_INITIATED = 9, | |
208 | PCEP_ERRV_PCE_INIT_OP_FREQ_LIMIT_REACHED = 10, | |
209 | PCEP_ERRV_LSP_REPORT_P2MP_NOT_ADVERTISED = 11, | |
210 | PCEP_ERRV_LSP_UPDATE_P2MP_NOT_ADVERTISED = 12, | |
211 | PCEP_ERRV_LSP_INSTANTIATION_P2MP_NOT_ADVERTISED = 13, | |
212 | PCEP_ERRV_AUTO_BW_CAP_NOT_ADVERTISED = 14, | |
213 | ||
214 | /* Error Values for PCEP_ERRT_LSP_STATE_SYNC_ERROR=20 */ | |
215 | PCEP_ERRV_PCE_CANT_PROCESS_LSP_REPORT = 1, | |
216 | PCEP_ERRV_LSP_DB_VERSION_MISMATCH = 2, | |
217 | PCEP_ERRV_TRIGGER_ATTEMPT_BEFORE_PCE_TRIGGER = 3, | |
218 | PCEP_ERRV_TRIGGER_ATTEMPT_NO_PCE_TRIGGER_CAP = 4, | |
219 | PCEP_ERRV_PCC_CANT_COMPLETE_STATE_SYNC = 5, | |
220 | PCEP_ERRV_INVALID_LSP_DB_VERSION_NUMBER = 6, | |
221 | PCEP_ERRV_INVALID_SPEAKER_ENTITY_ID = 7, | |
222 | ||
223 | /* PCEP_ERRT_INVALID_TE_PATH_SETUP_TYPE = 21 */ | |
224 | PCEP_ERRV_UNSUPPORTED_PATH_SETUP_TYPE = 1, | |
225 | PCEP_ERRV_MISMATCHED_PATH_SETUP_TYPE = 2, | |
226 | ||
227 | /* PCEP_ERRT_UNASSIGNED22 = 22 */ | |
228 | ||
229 | /* Error Values for PCEP_ERRT_BAD_PARAMETER_VALUE=23 */ | |
230 | PCEP_ERRV_SYMBOLIC_PATH_NAME_IN_USE = 1, | |
231 | PCEP_ERRV_LSP_SPEAKER_ID_NOT_PCE_INITIATED = 2, | |
232 | ||
233 | /* Error Values for PCEP_ERRT_LSP_INSTANTIATE_ERROR=24 */ | |
234 | PCEP_ERRV_UNACCEPTABLE_INSTANTIATE_ERROR = 1, | |
235 | PCEP_ERRV_INTERNAL_ERROR = 2, | |
236 | PCEP_ERRV_SIGNALLING_ERROR = 3, | |
237 | ||
238 | /* PCEP_ERRT_START_TLS_FAILURE = 25 */ | |
239 | PCEP_ERRV_START_TLS_AFTER_PCEP_EXCHANGE = 1, | |
240 | PCEP_ERRV_MSG_NOT_START_TLS_OPEN_ERROR = 2, | |
241 | PCEP_ERRV_CONNECTION_WO_TLS_NOT_POSSIBLE = 3, | |
242 | PCEP_ERRV_CONNECTION_WO_TLS_IS_POSSIBLE = 4, | |
243 | PCEP_ERRV_NO_START_TLS_BEFORE_START_TLS_WAIT_TIMER = 5, | |
244 | ||
245 | /* PCEP_ERRT_ASSOCIATION_ERROR = 26 */ | |
246 | PCEP_ERRV_ASSOC_TYPE_NOT_SUPPORTED = 1, | |
247 | PCEP_ERRV_TOO_MANY_LSPS_IN_ASSOC_GRP = 2, | |
248 | PCEP_ERRV_TOO_MANY_ASSOC_GROUPS = 3, | |
249 | PCEP_ERRV_ASSOCIATION_UNKNOWN = 4, | |
250 | PCEP_ERRV_OP_CONF_ASSOC_INFO_MISMATCH = 5, | |
251 | PCEP_ERRV_ASSOC_INFO_MISMATCH = 6, | |
252 | PCEP_ERRV_CANNOT_JOIN_ASSOC_GROUP = 7, | |
253 | PCEP_ERRV_ASSOC_ID_NOT_IN_RANGE = 8, | |
254 | PCEP_ERRV_TUNNEL_EP_MISMATCH_PATH_PROT_ASSOC = 9, | |
255 | PCEP_ERRV_ATTEMPTED_ADD_LSP_PATH_PROT_ASSOC = 10, | |
256 | PCEP_ERRV_PROTECTION_TYPE_NOT_SUPPORTED = 11, | |
257 | ||
258 | /* PCEP_ERRT_WSON_RWA_ERROR = 27 */ | |
259 | PCEP_ERRV_RWA_INSUFFICIENT_MEMORY = 1, | |
260 | PCEP_ERRV_RWA_COMP_NOT_SUPPORTED = 2, | |
261 | PCEP_ERRV_SYNTAX_ENC_ERROR = 3, | |
262 | ||
263 | /* PCEP_ERRT_H_PCE_ERROR = 28 */ | |
264 | PCEP_ERRV_H_PCE_CAP_NOT_ADVERTISED = 1, | |
265 | PCEP_ERRV_PARENT_PCE_CAP_CANT_BE_PROVIDED = 2, | |
266 | ||
267 | /* PCEP_ERRT_PATH_COMP_FAILURE = 29 */ | |
268 | PCEP_ERRV_UNACCEPTABLE_REQUEST_MSG = 1, | |
269 | PCEP_ERRV_GENERALIZED_BW_VAL_NOT_SUPPORTED = 2, | |
270 | PCEP_ERRV_LABEL_SET_CONSTRAINT_COULD_NOT_BE_MET = 3, | |
271 | PCEP_ERRV_LABEL_CONSTRAINT_COULD_NOT_BE_MET = 4, | |
272 | ||
273 | }; | |
274 | ||
275 | const char *get_error_type_str(enum pcep_error_type error_type); | |
276 | const char *get_error_value_str(enum pcep_error_type error_type, | |
277 | enum pcep_error_value error_value); | |
278 | ||
279 | ||
280 | #ifdef __cplusplus | |
281 | } | |
282 | #endif | |
283 | ||
284 | #endif |