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;
"Welcome to our mercurial repository"