Mercurial > hg > freeDiameter
comparison extensions/dict_dcca_3gpp/dict_dcca_3gpp.c @ 1446:48438d36e435
Add Enumerated(3GPP/Experimental-Result-Code)
Add 3GPP Experimental-Result-Code values from
3GPP TS 29.230 V15.7.0 (2019-12) section 8.1.
There is a DIAMETER_ERROR_ABSENT_USER name conflict between:
- 3GPP TS 29.173 ? 6.3.4.1 DIAMETER_ERROR_ABSENT_USER (4201). (For SLh).
- 3GPP TS 29.338 ? 7.3.3 DIAMETER_ERROR_ABSENT_USER (5550). (For S6c, SGd).
Rename 4201 from 3GPP TS 29.173 to DIAMETER_ERROR_ABSENT_USER-29.173.
author | Luke Mewburn <luke@mewburn.net> |
---|---|
date | Thu, 27 Feb 2020 17:34:01 +1100 |
parents | 6029afe9bacb |
children | 652aa883aae7 |
comparison
equal
deleted
inserted
replaced
1445:519c1a85dcd1 | 1446:48438d36e435 |
---|---|
142 { _str_, { .os = { .data = (unsigned char *)_val_, .len = _len_ }}} | 142 { _str_, { .os = { .data = (unsigned char *)_val_, .len = _len_ }}} |
143 | 143 |
144 | 144 |
145 static int dict_dcca_3gpp_entry(char * conffile) | 145 static int dict_dcca_3gpp_entry(char * conffile) |
146 { | 146 { |
147 /* Applications section */ | 147 /*==================================================================*/ |
148 /* Applications section */ | |
149 /*==================================================================*/ | |
150 | |
148 { | 151 { |
149 /* Create the vendors */ | 152 /* Create the vendors */ |
150 { | 153 { |
151 struct dict_vendor_data vendor_data = { 10415, "3GPP" }; | 154 struct dict_vendor_data vendor_data = { 10415, "3GPP" }; |
152 CHECK_FCT(fd_dict_new(fd_g_config->cnf_dict, DICT_VENDOR, &vendor_data, NULL, NULL)); | 155 CHECK_FCT(fd_dict_new(fd_g_config->cnf_dict, DICT_VENDOR, &vendor_data, NULL, NULL)); |
157 } | 160 } |
158 | 161 |
159 } | 162 } |
160 | 163 |
161 | 164 |
165 /*==================================================================*/ | |
166 /* Types section */ | |
167 /*==================================================================*/ | |
168 | |
162 struct dict_object * Address_type; | 169 struct dict_object * Address_type; |
163 struct dict_object * DiameterIdentity_type; | 170 struct dict_object * DiameterIdentity_type; |
164 struct dict_object * DiameterURI_type; | 171 struct dict_object * DiameterURI_type; |
165 struct dict_object * IPFilterRule_type; | 172 struct dict_object * IPFilterRule_type; |
166 struct dict_object * Time_type; | 173 struct dict_object * Time_type; |
170 CHECK_dict_search( DICT_TYPE, TYPE_BY_NAME, "DiameterIdentity", &DiameterIdentity_type); | 177 CHECK_dict_search( DICT_TYPE, TYPE_BY_NAME, "DiameterIdentity", &DiameterIdentity_type); |
171 CHECK_dict_search( DICT_TYPE, TYPE_BY_NAME, "DiameterURI", &DiameterURI_type); | 178 CHECK_dict_search( DICT_TYPE, TYPE_BY_NAME, "DiameterURI", &DiameterURI_type); |
172 CHECK_dict_search( DICT_TYPE, TYPE_BY_NAME, "IPFilterRule", &IPFilterRule_type); | 179 CHECK_dict_search( DICT_TYPE, TYPE_BY_NAME, "IPFilterRule", &IPFilterRule_type); |
173 CHECK_dict_search( DICT_TYPE, TYPE_BY_NAME, "Time", &Time_type); | 180 CHECK_dict_search( DICT_TYPE, TYPE_BY_NAME, "Time", &Time_type); |
174 CHECK_dict_search( DICT_TYPE, TYPE_BY_NAME, "UTF8String", &UTF8String_type); | 181 CHECK_dict_search( DICT_TYPE, TYPE_BY_NAME, "UTF8String", &UTF8String_type); |
182 | |
183 | |
184 /*==================================================================*/ | |
185 /* AVPs section */ | |
186 /*==================================================================*/ | |
187 | |
188 | |
189 /* 3GPP Experimental-Result-Code ENUMVAL Unsigned32 */ | |
190 /* 3GPP TS 29.230 V15.7.0 (2019-12) section 8.1 */ | |
191 { | |
192 struct dict_object *type; | |
193 struct dict_type_data tdata = { AVP_TYPE_UNSIGNED32, "Enumerated(3GPP/Experimental-Result-Code)", NULL, NULL}; | |
194 struct dict_enumval_data tvals[] = { | |
195 enumval_def_u32(2001, "DIAMETER_FIRST_REGISTRATION"), | |
196 enumval_def_u32(2002, "DIAMETER_SUBSEQUENT_REGISTRATION"), | |
197 enumval_def_u32(2003, "DIAMETER_UNREGISTERED_SERVICE"), | |
198 /* | |
199 * 3GPP TS 29.229 V5.3.0 (2003-03) renamed 2004 from DIAMETER_SUCCESS_NOT SUPPORTED_USER_DATA. | |
200 */ | |
201 enumval_def_u32(2004, "DIAMETER_SUCCESS_SERVER_NAME_NOT_STORED"), | |
202 /* | |
203 * 3GPP TS 29.229 V5.3.0 (2003-03) renamed 2005 from DIAMETER_SUCCESS_SERVER_NAME_NOT_STORED. | |
204 * 3GPP TS 29.229 V7.2.0 (2006-06) deprecated 2005 DIAMETER_SERVER_SELECTION. | |
205 */ | |
206 enumval_def_u32(2005, "DIAMETER_SERVER_SELECTION"), | |
207 enumval_def_u32(2021, "DIAMETER_PDP_CONTEXT_DELETION_INDICATION"), | |
208 enumval_def_u32(2421, "DIAMETER_QOS_FLOW_DELETION_INDICATION"), | |
209 enumval_def_u32(4100, "DIAMETER_USER_DATA_NOT_AVAILABLE"), | |
210 enumval_def_u32(4101, "DIAMETER_PRIOR_UPDATE_IN_PROGRESS"), | |
211 enumval_def_u32(4121, "DIAMETER_ERROR_OUT_OF_RESOURCES"), | |
212 enumval_def_u32(4141, "DIAMETER_PCC_BEARER_EVENT"), | |
213 enumval_def_u32(4142, "DIAMETER_BEARER_EVENT"), | |
214 enumval_def_u32(4143, "DIAMETER_AN_GW_FAILED"), | |
215 enumval_def_u32(4144, "DIAMETER_PENDING_TRANSACTION"), | |
216 enumval_def_u32(4145, "DIAMETER_UE_STATUS_SUSPEND"), | |
217 enumval_def_u32(4181, "DIAMETER_AUTHENTICATION_DATA_UNAVAILABLE"), | |
218 enumval_def_u32(4182, "DIAMETER_ERROR_CAMEL_SUBSCRIPTION_PRESENT"), | |
219 /* | |
220 * DIAMETER_ERROR_ABSENT_USER name conflict between: | |
221 * - 3GPP TS 29.173 § 6.3.4.1 DIAMETER_ERROR_ABSENT_USER (4201). (For SLh). | |
222 * - 3GPP TS 29.338 § 7.3.3 DIAMETER_ERROR_ABSENT_USER (5550). (For S6c, SGd). | |
223 * Rename 4201 from 3GPP TS 29.173 to DIAMETER_ERROR_ABSENT_USER-29.173. | |
224 */ | |
225 enumval_def_u32(4201, "DIAMETER_ERROR_ABSENT_USER-29.173"), | |
226 enumval_def_u32(4221, "DIAMETER_ERROR_UNREACHABLE_USER"), | |
227 enumval_def_u32(4222, "DIAMETER_ERROR_SUSPENDED_USER"), | |
228 enumval_def_u32(4223, "DIAMETER_ERROR_DETACHED_USER"), | |
229 enumval_def_u32(4224, "DIAMETER_ERROR_POSITIONING_DENIED"), | |
230 enumval_def_u32(4225, "DIAMETER_ERROR_POSITIONING_FAILED"), | |
231 enumval_def_u32(4226, "DIAMETER_ERROR_UNKNOWN_UNREACHABLE LCS_CLIENT"), | |
232 enumval_def_u32(4241, "DIAMETER_ERROR_NO_AVAILABLE_POLICY_COUNTERS"), | |
233 enumval_def_u32(4261, "REQUESTED_SERVICE_TEMPORARILY_NOT_AUTHORIZED"), | |
234 enumval_def_u32(5001, "DIAMETER_ERROR_USER_UNKNOWN"), | |
235 enumval_def_u32(5002, "DIAMETER_ERROR_IDENTITIES_DONT_MATCH"), | |
236 enumval_def_u32(5003, "DIAMETER_ERROR_IDENTITY_NOT_REGISTERED"), | |
237 enumval_def_u32(5004, "DIAMETER_ERROR_ROAMING_NOT_ALLOWED"), | |
238 enumval_def_u32(5005, "DIAMETER_ERROR_IDENTITY_ALREADY_REGISTERED"), | |
239 enumval_def_u32(5006, "DIAMETER_ERROR_AUTH_SCHEME_NOT_SUPPORTED"), | |
240 enumval_def_u32(5007, "DIAMETER_ERROR_IN_ASSIGNMENT_TYPE"), | |
241 enumval_def_u32(5008, "DIAMETER_ERROR_TOO_MUCH_DATA"), | |
242 enumval_def_u32(5009, "DIAMETER_ERROR_NOT_SUPPORTED_USER_DATA"), | |
243 enumval_def_u32(5011, "DIAMETER_ERROR_FEATURE_UNSUPPORTED"), | |
244 enumval_def_u32(5012, "DIAMETER_ERROR_SERVING_NODE_FEATURE_UNSUPPORTED"), | |
245 enumval_def_u32(5041, "DIAMETER_ERROR_USER_NO_WLAN_SUBSCRIPTION"), | |
246 enumval_def_u32(5042, "DIAMETER_ERROR_W-APN_UNUSED_BY_USER"), | |
247 enumval_def_u32(5043, "DIAMETER_ERROR_NO_ACCESS_INDEPENDENT_SUBSCRIPTION"), | |
248 enumval_def_u32(5044, "DIAMETER_ERROR_USER_NO_W-APN_SUBSCRIPTION"), | |
249 enumval_def_u32(5045, "DIAMETER_ERROR_UNSUITABLE_NETWORK"), | |
250 enumval_def_u32(5061, "INVALID_SERVICE_INFORMATION"), | |
251 enumval_def_u32(5062, "FILTER_RESTRICTIONS"), | |
252 enumval_def_u32(5063, "REQUESTED_SERVICE_NOT_AUTHORIZED"), | |
253 enumval_def_u32(5064, "DUPLICATED_AF_SESSION"), | |
254 enumval_def_u32(5065, "IP-CAN_SESSION_NOT_AVAILABLE"), | |
255 enumval_def_u32(5066, "UNAUTHORIZED_NON_EMERGENCY_SESSION"), | |
256 enumval_def_u32(5067, "UNAUTHORIZED_SPONSORED_DATA_CONNECTIVITY"), | |
257 enumval_def_u32(5068, "TEMPORARY_NETWORK_FAILURE"), | |
258 enumval_def_u32(5100, "DIAMETER_ERROR_USER_DATA_NOT_RECOGNIZED"), | |
259 enumval_def_u32(5101, "DIAMETER_ERROR_OPERATION_NOT_ALLOWED"), | |
260 enumval_def_u32(5102, "DIAMETER_ERROR_USER_DATA_CANNOT_BE_READ"), | |
261 enumval_def_u32(5103, "DIAMETER_ERROR_USER_DATA_CANNOT_BE_MODIFIED"), | |
262 enumval_def_u32(5104, "DIAMETER_ERROR_USER_DATA_CANNOT_BE_NOTIFIED"), | |
263 enumval_def_u32(5105, "DIAMETER_ERROR_TRANSPARENT_DATA OUT_OF_SYNC"), | |
264 enumval_def_u32(5106, "DIAMETER_ERROR_SUBS_DATA_ABSENT"), | |
265 enumval_def_u32(5107, "DIAMETER_ERROR_NO_SUBSCRIPTION_TO_DATA"), | |
266 enumval_def_u32(5108, "DIAMETER_ERROR_DSAI_NOT_AVAILABLE"), | |
267 enumval_def_u32(5120, "DIAMETER_ERROR_START_INDICATION"), | |
268 enumval_def_u32(5121, "DIAMETER_ERROR_STOP_INDICATION"), | |
269 enumval_def_u32(5122, "DIAMETER_ERROR_UNKNOWN_MBMS_BEARER_SERVICE"), | |
270 enumval_def_u32(5123, "DIAMETER_ERROR_SERVICE_AREA"), | |
271 enumval_def_u32(5140, "DIAMETER_ERROR_INITIAL_PARAMETERS"), | |
272 enumval_def_u32(5141, "DIAMETER_ERROR_TRIGGER_EVENT"), | |
273 enumval_def_u32(5142, "DIAMETER_PCC_RULE_EVENT"), | |
274 enumval_def_u32(5143, "DIAMETER_ERROR_BEARER_NOT_AUTHORIZED"), | |
275 enumval_def_u32(5144, "DIAMETER_ERROR_TRAFFIC_MAPPING_INFO_REJECTED"), | |
276 enumval_def_u32(5145, "DIAMETER_QOS_RULE_EVENT"), | |
277 enumval_def_u32(5147, "DIAMETER_ERROR_CONFLICTING_REQUEST"), | |
278 enumval_def_u32(5148, "DIAMETER_ADC_RULE_EVENT"), | |
279 enumval_def_u32(5149, "DIAMETER_ERROR_NBIFOM_NOT_AUTHORIZED"), | |
280 enumval_def_u32(5401, "DIAMETER_ERROR_IMPI_UNKNOWN"), | |
281 enumval_def_u32(5402, "DIAMETER_ERROR_NOT_AUTHORIZED"), | |
282 enumval_def_u32(5403, "DIAMETER_ERROR_TRANSACTION_IDENTIFIER_INVALID"), | |
283 enumval_def_u32(5420, "DIAMETER_ERROR_UNKNOWN_EPS_SUBSCRIPTION"), | |
284 enumval_def_u32(5421, "DIAMETER_ERROR_RAT_NOT_ALLOWED"), | |
285 enumval_def_u32(5422, "DIAMETER_ERROR_EQUIPMENT_UNKNOWN"), | |
286 enumval_def_u32(5423, "DIAMETER_ERROR_UNKNOWN_SERVING_NODE"), | |
287 enumval_def_u32(5450, "DIAMETER_ERROR_USER_NO_NON_3GPP_SUBSCRIPTION"), | |
288 enumval_def_u32(5451, "DIAMETER_ERROR_USER_NO_APN_SUBSCRIPTION"), | |
289 enumval_def_u32(5452, "DIAMETER_ERROR_RAT_TYPE_NOT_ALLOWED"), | |
290 enumval_def_u32(5453, "DIAMETER_ERROR_LATE_OVERLAPPING_REQUEST"), | |
291 enumval_def_u32(5454, "DIAMETER_ERROR_TIMED_OUT_REQUEST"), | |
292 enumval_def_u32(5470, "DIAMETER_ERROR_SUBSESSION"), | |
293 enumval_def_u32(5471, "DIAMETER_ERROR_ONGOING_SESSION_ESTABLISHMENT"), | |
294 enumval_def_u32(5490, "DIAMETER_ERROR_UNAUTHORIZED_REQUESTING_NETWORK"), | |
295 enumval_def_u32(5510, "DIAMETER_ERROR_UNAUTHORIZED_REQUESTING_ENTITY"), | |
296 enumval_def_u32(5511, "DIAMETER_ERROR_UNAUTHORIZED_SERVICE"), | |
297 enumval_def_u32(5512, "DIAMETER_ERROR_REQUESTED_RANGE_IS_NOT ALLOWED"), | |
298 enumval_def_u32(5513, "DIAMETER_ERROR_CONFIGURATION_EVENT_STORAGE_NOT_SUCCESSFUL"), | |
299 enumval_def_u32(5514, "DIAMETER_ERROR_CONFIGURATION_EVENT_NON_EXISTANT"), | |
300 enumval_def_u32(5515, "DIAMETER_ERROR_SCEF_REFERENCE_ID_UNKNOWN"), | |
301 enumval_def_u32(5530, "DIAMETER_ERROR_INVALID_SME_ADDRESS"), | |
302 enumval_def_u32(5531, "DIAMETER_ERROR_SC_CONGESTION"), | |
303 enumval_def_u32(5532, "DIAMETER_ERROR_SM_PROTOCOL"), | |
304 enumval_def_u32(5533, "DIAMETER_ERROR_TRIGGER_REPLACE_FAILURE"), | |
305 enumval_def_u32(5534, "DIAMETER_ERROR_TRIGGER_RECALL_FAILURE"), | |
306 enumval_def_u32(5535, "DIAMETER_ERROR_ORIGINAL_MESSAGE_NOT_PENDING"), | |
307 enumval_def_u32(5550, "DIAMETER_ERROR_ABSENT_USER"), | |
308 enumval_def_u32(5551, "DIAMETER_ERROR_USER_BUSY_FOR_MT_SMS"), | |
309 enumval_def_u32(5552, "DIAMETER_ERROR_FACILITY_NOT_SUPPORTED"), | |
310 enumval_def_u32(5553, "DIAMETER_ERROR_ILLEGAL_USER"), | |
311 enumval_def_u32(5554, "DIAMETER_ERROR_ILLEGAL_EQUIPMENT"), | |
312 enumval_def_u32(5555, "DIAMETER_ERROR_SM_DELIVERY_FAILURE"), | |
313 enumval_def_u32(5556, "DIAMETER_ERROR_SERVICE_NOT_SUBSCRIBED"), | |
314 enumval_def_u32(5557, "DIAMETER_ERROR_SERVICE_BARRED"), | |
315 enumval_def_u32(5558, "DIAMETER_ERROR_MWD_LIST_FULL"), | |
316 enumval_def_u32(5570, "DIAMETER_ERROR_UNKNOWN_POLICY_COUNTERS"), | |
317 enumval_def_u32(5590, "DIAMETER_ERROR_ORIGIN_ALUID_UNKNOWN"), | |
318 enumval_def_u32(5591, "DIAMETER_ERROR_TARGET_ALUID_UNKNOWN"), | |
319 enumval_def_u32(5592, "DIAMETER_ERROR_PFID_UNKNOWN"), | |
320 enumval_def_u32(5593, "DIAMETER_ERROR_APP_REGISTER_REJECT"), | |
321 enumval_def_u32(5594, "DIAMETER_ERROR_PROSE_MAP_REQUEST_DISALLOWED"), | |
322 enumval_def_u32(5595, "DIAMETER_ERROR_MAP_REQUEST_REJECT"), | |
323 enumval_def_u32(5596, "DIAMETER_ERROR_REQUESTING_RPAUID_UNKNOWN"), | |
324 enumval_def_u32(5597, "DIAMETER_ERROR_UNKNOWN_OR_INVALID_TARGET_SET"), | |
325 enumval_def_u32(5598, "DIAMETER_ERROR_MISSING_APPLICATION_DATA"), | |
326 enumval_def_u32(5599, "DIAMETER_ERROR_AUTHORIZATION_REJECT"), | |
327 enumval_def_u32(5600, "DIAMETER_ERROR_DISCOVERY_NOT_PERMITTED"), | |
328 enumval_def_u32(5601, "DIAMETER_ERROR_TARGET_RPAUID_UNKNOWN"), | |
329 enumval_def_u32(5602, "DIAMETER_ERROR_INVALID_APPLICATION_DATA"), | |
330 enumval_def_u32(5610, "DIAMETER_ERROR_UNKNOWN_PROSE_SUBSCRIPTION"), | |
331 enumval_def_u32(5611, "DIAMETER_ERROR_PROSE_NOT_ALLOWED"), | |
332 enumval_def_u32(5612, "DIAMETER_ERROR_UE_LOCATION_UNKNOWN"), | |
333 enumval_def_u32(5630, "DIAMETER_ERROR_NO_ASSOCIATED_DISCOVERY_FILTER"), | |
334 enumval_def_u32(5631, "DIAMETER_ERROR_ANNOUNCING_UNAUTHORIZED_IN_PLMN"), | |
335 enumval_def_u32(5632, "DIAMETER_ERROR_INVALID_APPLICATION_CODE"), | |
336 enumval_def_u32(5633, "DIAMETER_ERROR_PROXIMITY_UNAUTHORIZED"), | |
337 enumval_def_u32(5634, "DIAMETER_ERROR_PROXIMITY_REJECTED"), | |
338 enumval_def_u32(5635, "DIAMETER_ERROR_NO_PROXIMITY_REQUEST"), | |
339 enumval_def_u32(5636, "DIAMETER_ERROR_UNAUTHORIZED_SERVICE_IN_THIS_PLMN"), | |
340 enumval_def_u32(5637, "DIAMETER_ERROR_PROXIMITY_CANCELLED"), | |
341 enumval_def_u32(5638, "DIAMETER_ERROR_INVALID_TARGET_PDUID"), | |
342 enumval_def_u32(5639, "DIAMETER_ERROR_INVALID_TARGET_RPAUID"), | |
343 enumval_def_u32(5640, "DIAMETER_ERROR_NO_ASSOCIATED_RESTRICTED_CODE"), | |
344 enumval_def_u32(5641, "DIAMETER_ERROR_INVALID_DISCOVERY_TYPE"), | |
345 enumval_def_u32(5650, "DIAMETER_ERROR_REQUESTED_LOCATION_NOT_SERVED"), | |
346 enumval_def_u32(5651, "DIAMETER_ERROR_INVALID_EPS_BEARER"), | |
347 enumval_def_u32(5652, "DIAMETER_ERROR_NIDD_CONFIGURATION_NOT_AVAILABLE"), | |
348 enumval_def_u32(5653, "DIAMETER_ERROR_USER_TEMPORARILY_UNREACHABLE"), | |
349 enumval_def_u32(5670, "DIAMETER_ERROR_UNKNKOWN_DATA"), | |
350 enumval_def_u32(5671, "DIAMETER_ERROR_REQUIRED_KEY_NOT_PROVIDED"), | |
351 enumval_def_u32(5690, "DIAMETER_ERROR_UNKNOWN_V2X_SUBSCRIPTION"), | |
352 enumval_def_u32(5691, "DIAMETER_ERROR_V2X_NOT_ALLOWED"), | |
353 }; | |
354 int i; | |
355 /* Create the Enumerated type and enumerated values */ | |
356 CHECK_dict_new( DICT_TYPE, &tdata , NULL, &type); | |
357 for (i = 0; i < sizeof(tvals) / sizeof(tvals[0]); i++) { | |
358 CHECK_dict_new( DICT_ENUMVAL, &tvals[i], type, NULL); | |
359 } | |
360 } | |
361 | |
175 | 362 |
176 /*==================================================================*/ | 363 /*==================================================================*/ |
177 /* Start of generated data. */ | 364 /* Start of generated data. */ |
178 /* */ | 365 /* */ |
179 /* The following is created automatically with: */ | 366 /* The following is created automatically with: */ |
10656 AVP_FLAG_VENDOR, /* Fixed flag values */ | 10843 AVP_FLAG_VENDOR, /* Fixed flag values */ |
10657 AVP_TYPE_OCTETSTRING /* base type of data */ /* XXX: guessed */ | 10844 AVP_TYPE_OCTETSTRING /* base type of data */ /* XXX: guessed */ |
10658 }; | 10845 }; |
10659 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); | 10846 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); |
10660 }; | 10847 }; |
10848 | |
10849 | |
10850 /*==================================================================*/ | |
10851 /* Rules section */ | |
10852 /*==================================================================*/ | |
10661 | 10853 |
10662 /* 29.212 */ | 10854 /* 29.212 */ |
10663 | 10855 |
10664 { | 10856 { |
10665 struct dict_object *rule_avp; | 10857 struct dict_object *rule_avp; |