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