blob: 2295896665edd2b6ddd3420c2e7516eb88a6b858 [file] [log] [blame]
Brian Waters13d96012017-12-08 16:53:31 -06001/*
2* Copyright (c) 2017 Sprint
3*
4* Licensed under the Apache License, Version 2.0 (the "License");
5* you may not use this file except in compliance with the License.
6* You may obtain a copy of the License at
7*
8* http://www.apache.org/licenses/LICENSE-2.0
9*
10* Unless required by applicable law or agreed to in writing, software
11* distributed under the License is distributed on an "AS IS" BASIS,
12* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13* See the License for the specific language governing permissions and
14* limitations under the License.
15*/
16
17/****************
18 Generated By: fdtool enhancements to diafuzzer
19 License: same as freeDiameter
20****************/
21
22
23/*
24 * Dictionary definitions of objects specified in ts29336_avps (e10).
25 */
26#include <freeDiameter/extension.h>
27
28#define PROTO_VER "e10"
29#define GEN_DATE 1508010198.59
30
31const char *ts29336_avps_proto_ver = PROTO_VER;
32const double ts29336_avps_gen_date = GEN_DATE;
33
34/* The content of this file follows the same structure as dict_base_proto.c */
35
36#define CHECK_dict_new( _type, _data, _parent, _ref ) \
37{ \
38 int _ret = fd_dict_new( fd_g_config->cnf_dict, (_type), (_data), (_parent), (_ref) ); \
39 if ( _ret != 0 && _ret != EEXIST ) \
40 return _ret; \
41}
42
43#define CHECK_dict_search( _type, _criteria, _what, _result ) \
44 CHECK_FCT( fd_dict_search( fd_g_config->cnf_dict, (_type), (_criteria), (_what), (_result), ENOENT) );
45
46struct local_rules_definition {
47 struct dict_avp_request avp_vendor_plus_name;
48 enum rule_position position;
49 int min;
50 int max;
51};
52
53#define RULE_ORDER( _position ) ((((_position) == RULE_FIXED_HEAD) || ((_position) == RULE_FIXED_TAIL)) ? 1 : 0 )
54
55/* Attention! This version of the macro uses AVP_BY_NAME_AND_VENDOR, in contrast to most other copies! */
56#define PARSE_loc_rules( _rulearray, _parent) { \
57 int __ar; \
58 for (__ar=0; __ar < sizeof(_rulearray) / sizeof((_rulearray)[0]); __ar++) { \
59 struct dict_rule_data __data = { NULL, \
60 (_rulearray)[__ar].position, \
61 0, \
62 (_rulearray)[__ar].min, \
63 (_rulearray)[__ar].max}; \
64 __data.rule_order = RULE_ORDER(__data.rule_position); \
65 CHECK_FCT( fd_dict_search( \
66 fd_g_config->cnf_dict, \
67 DICT_AVP, \
68 AVP_BY_NAME_AND_VENDOR, \
69 &(_rulearray)[__ar].avp_vendor_plus_name, \
70 &__data.rule_avp, 0 ) ); \
71 if ( !__data.rule_avp ) { \
72 TRACE_DEBUG(INFO, "AVP Not found: '%s'", (_rulearray)[__ar].avp_vendor_plus_name.avp_name); \
73 return ENOENT; \
74 } \
75 { \
76 int _ret = fd_dict_new( fd_g_config->cnf_dict, DICT_RULE, &(__data), (_parent), NULL ); \
77 if ( _ret != 0 && _ret != EEXIST ) { \
78 TRACE_DEBUG(INFO, "Error on rule with AVP '%s'", \
79 (_rulearray)[__ar].avp_vendor_plus_name.avp_name); \
80 return EINVAL; \
81 } \
82 } \
83 } \
84}
85
86#define CHECK_vendor_new( _data ) { \
87 struct dict_object * vendor_found; \
88 if (fd_dict_search(fd_g_config->cnf_dict,DICT_VENDOR,VENDOR_BY_ID,&_data.vendor_id,&vendor_found,ENOENT) == ENOENT) { \
89 CHECK_FCT(fd_dict_new(fd_g_config->cnf_dict, DICT_VENDOR, &_data, NULL, NULL)); \
90 } \
91}
92
93#define enumval_def_u32( _val_, _str_ ) \
94 { _str_, { .u32 = _val_ }}
95
96#define enumval_def_os( _len_, _val_, _str_ ) \
97 { _str_, { .os = { .data = (unsigned char *)_val_, .len = _len_ }}}
98
99
100static int dict_ts29336_avps_load_defs(char * conffile)
101{
102 TRACE_ENTRY("%p", conffile);
103 /* Application Section */
104 {
105 /* Create the vendors */ {
106 struct dict_vendor_data vendor_data = { 10415, "3GPP" };
107 CHECK_dict_new(DICT_VENDOR, &vendor_data, NULL, NULL)
108 }
109 }
110
111
112 /* AVP section */
113 {
114 struct dict_object * Address_type;
115 struct dict_object * UTF8String_type;
116 struct dict_object * DiameterIdentity_type;
117 struct dict_object * DiameterURI_type;
118 struct dict_object * Time_type;
119 struct dict_object * IPFilterRule_type;
120
121 CHECK_dict_search( DICT_TYPE, TYPE_BY_NAME, "Address", &Address_type);
122 CHECK_dict_search( DICT_TYPE, TYPE_BY_NAME, "UTF8String", &UTF8String_type);
123 CHECK_dict_search( DICT_TYPE, TYPE_BY_NAME, "DiameterIdentity", &DiameterIdentity_type);
124 CHECK_dict_search( DICT_TYPE, TYPE_BY_NAME, "DiameterURI", &DiameterURI_type);
125 CHECK_dict_search( DICT_TYPE, TYPE_BY_NAME, "Time", &Time_type);
126 CHECK_dict_search( DICT_TYPE, TYPE_BY_NAME, "IPFilterRule", &IPFilterRule_type);
127 /* IP-SM-GW-Number */
128 {
129 struct dict_avp_data data = {
130 3100, /* Code */
131 10415, /* Vendor */
132 "IP-SM-GW-Number", /* Name */
133 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
134 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
135 AVP_TYPE_OCTETSTRING /* base type of data */
136 };
137 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
138 };
139 /* IP-SM-GW-Name */
140 {
141 struct dict_avp_data data = {
142 3101, /* Code */
143 10415, /* Vendor */
144 "IP-SM-GW-Name", /* Name */
145 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
146 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
147 AVP_TYPE_OCTETSTRING /* base type of data */
148 };
149 CHECK_dict_new( DICT_AVP, &data, DiameterIdentity_type, NULL);
150 };
151 /* Service-ID */
152 {
153 struct dict_avp_data data = {
154 3103, /* Code */
155 10415, /* Vendor */
156 "Service-ID", /* Name */
157 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
158 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
159 AVP_TYPE_INTEGER32 /* base type of data */
160 };
161 struct dict_object *type;
162 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Service-ID)", NULL, NULL, NULL };
163 struct dict_enumval_data t_1 = { "DEVICE_TRIGGER", { .i32=0 }};
164 struct dict_enumval_data t_2 = { "SMS_MO", { .i32=1 }};
165 /* Create the Enumerated type, and then the AVP */
166 CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
167 CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
168 CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
169 CHECK_dict_new( DICT_AVP, &data, type, NULL);
170 };
171 /* SCS-Identity */
172 {
173 struct dict_avp_data data = {
174 3104, /* Code */
175 10415, /* Vendor */
176 "SCS-Identity", /* Name */
177 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
178 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
179 AVP_TYPE_OCTETSTRING /* base type of data */
180 };
181 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
182 };
183 /* HSS-Cause */
184 {
185 struct dict_avp_data data = {
186 3109, /* Code */
187 10415, /* Vendor */
188 "HSS-Cause", /* Name */
189 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
190 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
191 AVP_TYPE_UNSIGNED32 /* base type of data */
192 };
193 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
194 };
195 /* SIR-Flags */
196 {
197 struct dict_avp_data data = {
198 3110, /* Code */
199 10415, /* Vendor */
200 "SIR-Flags", /* Name */
201 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
202 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
203 AVP_TYPE_UNSIGNED32 /* base type of data */
204 };
205 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
206 };
207 /* External-Identifier */
208 {
209 struct dict_avp_data data = {
210 3111, /* Code */
211 10415, /* Vendor */
212 "External-Identifier", /* Name */
213 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
214 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
215 AVP_TYPE_OCTETSTRING /* base type of data */
216 };
217 CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
218 };
219 /* IP-SM-GW-Realm */
220 {
221 struct dict_avp_data data = {
222 3112, /* Code */
223 10415, /* Vendor */
224 "IP-SM-GW-Realm", /* Name */
225 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
226 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
227 AVP_TYPE_OCTETSTRING /* base type of data */
228 };
229 CHECK_dict_new( DICT_AVP, &data, DiameterIdentity_type, NULL);
230 };
231 /* Periodic-Communication-Indicator */
232 {
233 struct dict_avp_data data = {
234 3115, /* Code */
235 10415, /* Vendor */
236 "Periodic-Communication-Indicator", /* Name */
237 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
238 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
239 AVP_TYPE_UNSIGNED32 /* base type of data */
240 };
241 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
242 };
243 /* Communication-Duration-Time */
244 {
245 struct dict_avp_data data = {
246 3116, /* Code */
247 10415, /* Vendor */
248 "Communication-Duration-Time", /* Name */
249 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
250 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
251 AVP_TYPE_UNSIGNED32 /* base type of data */
252 };
253 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
254 };
255 /* Periodic-Time */
256 {
257 struct dict_avp_data data = {
258 3117, /* Code */
259 10415, /* Vendor */
260 "Periodic-Time", /* Name */
261 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
262 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
263 AVP_TYPE_UNSIGNED32 /* base type of data */
264 };
265 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
266 };
267 /* Stationary-Indication */
268 {
269 struct dict_avp_data data = {
270 3119, /* Code */
271 10415, /* Vendor */
272 "Stationary-Indication", /* Name */
273 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
274 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
275 AVP_TYPE_UNSIGNED32 /* base type of data */
276 };
277 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
278 };
279 /* SCEF-Reference-ID */
280 {
281 struct dict_avp_data data = {
282 3124, /* Code */
283 10415, /* Vendor */
284 "SCEF-Reference-ID", /* Name */
285 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
286 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
287 AVP_TYPE_UNSIGNED32 /* base type of data */
288 };
289 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
290 };
291 /* SCEF-ID */
292 {
293 struct dict_avp_data data = {
294 3125, /* Code */
295 10415, /* Vendor */
296 "SCEF-ID", /* Name */
297 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
298 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
299 AVP_TYPE_OCTETSTRING /* base type of data */
300 };
301 CHECK_dict_new( DICT_AVP, &data, DiameterIdentity_type, NULL);
302 };
303 /* SCEF-Reference-ID-for-Deletion */
304 {
305 struct dict_avp_data data = {
306 3126, /* Code */
307 10415, /* Vendor */
308 "SCEF-Reference-ID-for-Deletion", /* Name */
309 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
310 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
311 AVP_TYPE_UNSIGNED32 /* base type of data */
312 };
313 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
314 };
315 /* Monitoring-Type */
316 {
317 struct dict_avp_data data = {
318 3127, /* Code */
319 10415, /* Vendor */
320 "Monitoring-Type", /* Name */
321 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
322 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
323 AVP_TYPE_UNSIGNED32 /* base type of data */
324 };
325 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
326 };
327 /* Maximum-Number-of-Reports */
328 {
329 struct dict_avp_data data = {
330 3128, /* Code */
331 10415, /* Vendor */
332 "Maximum-Number-of-Reports", /* Name */
333 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
334 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
335 AVP_TYPE_UNSIGNED32 /* base type of data */
336 };
337 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
338 };
339 /* Monitoring-Duration */
340 {
341 struct dict_avp_data data = {
342 3130, /* Code */
343 10415, /* Vendor */
344 "Monitoring-Duration", /* Name */
345 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
346 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
347 AVP_TYPE_OCTETSTRING /* base type of data */
348 };
349 CHECK_dict_new( DICT_AVP, &data, Time_type, NULL);
350 };
351 /* Maximum-Detection-Time */
352 {
353 struct dict_avp_data data = {
354 3131, /* Code */
355 10415, /* Vendor */
356 "Maximum-Detection-Time", /* Name */
357 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
358 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
359 AVP_TYPE_UNSIGNED32 /* base type of data */
360 };
361 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
362 };
363 /* Reachability-Type */
364 {
365 struct dict_avp_data data = {
366 3132, /* Code */
367 10415, /* Vendor */
368 "Reachability-Type", /* Name */
369 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
370 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
371 AVP_TYPE_UNSIGNED32 /* base type of data */
372 };
373 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
374 };
375 /* Maximum-Latency */
376 {
377 struct dict_avp_data data = {
378 3133, /* Code */
379 10415, /* Vendor */
380 "Maximum-Latency", /* Name */
381 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
382 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
383 AVP_TYPE_UNSIGNED32 /* base type of data */
384 };
385 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
386 };
387 /* Maximum-Response-Time */
388 {
389 struct dict_avp_data data = {
390 3134, /* Code */
391 10415, /* Vendor */
392 "Maximum-Response-Time", /* Name */
393 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
394 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
395 AVP_TYPE_UNSIGNED32 /* base type of data */
396 };
397 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
398 };
399 /* MONTE-Location-Type */
400 {
401 struct dict_avp_data data = {
402 3136, /* Code */
403 10415, /* Vendor */
404 "MONTE-Location-Type", /* Name */
405 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
406 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
407 AVP_TYPE_UNSIGNED32 /* base type of data */
408 };
409 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
410 };
411 /* Accuracy */
412 {
413 struct dict_avp_data data = {
414 3137, /* Code */
415 10415, /* Vendor */
416 "Accuracy", /* Name */
417 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
418 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
419 AVP_TYPE_UNSIGNED32 /* base type of data */
420 };
421 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
422 };
423 /* Association-Type */
424 {
425 struct dict_avp_data data = {
426 3138, /* Code */
427 10415, /* Vendor */
428 "Association-Type", /* Name */
429 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
430 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
431 AVP_TYPE_UNSIGNED32 /* base type of data */
432 };
433 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
434 };
435 /* Roaming-Information */
436 {
437 struct dict_avp_data data = {
438 3139, /* Code */
439 10415, /* Vendor */
440 "Roaming-Information", /* Name */
441 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
442 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
443 AVP_TYPE_UNSIGNED32 /* base type of data */
444 };
445 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
446 };
447 /* Reachability-Information */
448 {
449 struct dict_avp_data data = {
450 3140, /* Code */
451 10415, /* Vendor */
452 "Reachability-Information", /* Name */
453 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
454 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
455 AVP_TYPE_UNSIGNED32 /* base type of data */
456 };
457 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
458 };
459 /* IMEI-Change */
460 {
461 struct dict_avp_data data = {
462 3141, /* Code */
463 10415, /* Vendor */
464 "IMEI-Change", /* Name */
465 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
466 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
467 AVP_TYPE_UNSIGNED32 /* base type of data */
468 };
469 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
470 };
471 /* Supported-Monitoring-Events */
472 {
473 struct dict_avp_data data = {
474 3144, /* Code */
475 10415, /* Vendor */
476 "Supported-Monitoring-Events", /* Name */
477 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
478 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
479 AVP_TYPE_UNSIGNED64 /* base type of data */
480 };
481 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
482 };
483 /* CIR-Flags */
484 {
485 struct dict_avp_data data = {
486 3145, /* Code */
487 10415, /* Vendor */
488 "CIR-Flags", /* Name */
489 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
490 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
491 AVP_TYPE_UNSIGNED32 /* base type of data */
492 };
493 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
494 };
495 /* Service-Result-Code */
496 {
497 struct dict_avp_data data = {
498 3147, /* Code */
499 10415, /* Vendor */
500 "Service-Result-Code", /* Name */
501 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
502 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
503 AVP_TYPE_UNSIGNED32 /* base type of data */
504 };
505 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
506 };
507 /* Reference-ID-Validity-Time */
508 {
509 struct dict_avp_data data = {
510 3148, /* Code */
511 10415, /* Vendor */
512 "Reference-ID-Validity-Time", /* Name */
513 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
514 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
515 AVP_TYPE_OCTETSTRING /* base type of data */
516 };
517 CHECK_dict_new( DICT_AVP, &data, Time_type, NULL);
518 };
519 /* Event-Handling */
520 {
521 struct dict_avp_data data = {
522 3149, /* Code */
523 10415, /* Vendor */
524 "Event-Handling", /* Name */
525 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
526 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
527 AVP_TYPE_UNSIGNED32 /* base type of data */
528 };
529 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
530 };
531 /* Node-Type */
532 {
533 struct dict_avp_data data = {
534 3153, /* Code */
535 10415, /* Vendor */
536 "Node-Type", /* Name */
537 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
538 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
539 AVP_TYPE_UNSIGNED32 /* base type of data */
540 };
541 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
542 };
543 /* S6t-HSS-Cause */
544 {
545 struct dict_avp_data data = {
546 3154, /* Code */
547 10415, /* Vendor */
548 "S6t-HSS-Cause", /* Name */
549 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
550 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
551 AVP_TYPE_UNSIGNED32 /* base type of data */
552 };
553 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
554 };
555 /* Requested-Validity-Time */
556 {
557 struct dict_avp_data data = {
558 3159, /* Code */
559 10415, /* Vendor */
560 "Requested-Validity-Time", /* Name */
561 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
562 AVP_FLAG_VENDOR, /* Fixed flag values */
563 AVP_TYPE_OCTETSTRING /* base type of data */
564 };
565 CHECK_dict_new( DICT_AVP, &data, Time_type, NULL);
566 };
567 /* Granted-Validity-Time */
568 {
569 struct dict_avp_data data = {
570 3160, /* Code */
571 10415, /* Vendor */
572 "Granted-Validity-Time", /* Name */
573 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
574 AVP_FLAG_VENDOR, /* Fixed flag values */
575 AVP_TYPE_OCTETSTRING /* base type of data */
576 };
577 CHECK_dict_new( DICT_AVP, &data, Time_type, NULL);
578 };
579 /* Loss-Of-Connectivity-Reason */
580 {
581 struct dict_avp_data data = {
582 3162, /* Code */
583 10415, /* Vendor */
584 "Loss-Of-Connectivity-Reason", /* Name */
585 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
586 AVP_FLAG_VENDOR, /* Fixed flag values */
587 AVP_TYPE_UNSIGNED32 /* base type of data */
588 };
589 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
590 };
591 /* Group-Reporting-Guard-Timer */
592 {
593 struct dict_avp_data data = {
594 3163, /* Code */
595 10415, /* Vendor */
596 "Group-Reporting-Guard-Timer", /* Name */
597 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
598 AVP_FLAG_VENDOR, /* Fixed flag values */
599 AVP_TYPE_UNSIGNED32 /* base type of data */
600 };
601 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
602 };
603 /* CIA-Flags */
604 {
605 struct dict_avp_data data = {
606 3164, /* Code */
607 10415, /* Vendor */
608 "CIA-Flags", /* Name */
609 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
610 AVP_FLAG_VENDOR, /* Fixed flag values */
611 AVP_TYPE_UNSIGNED32 /* base type of data */
612 };
613 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
614 };
615 /* RIR-Flags */
616 {
617 struct dict_avp_data data = {
618 3167, /* Code */
619 10415, /* Vendor */
620 "RIR-Flags", /* Name */
621 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
622 AVP_FLAG_VENDOR, /* Fixed flag values */
623 AVP_TYPE_UNSIGNED32 /* base type of data */
624 };
625 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
626 };
627 /* Type-Of-External-Identifier */
628 {
629 struct dict_avp_data data = {
630 3168, /* Code */
631 10415, /* Vendor */
632 "Type-Of-External-Identifier", /* Name */
633 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
634 AVP_FLAG_VENDOR, /* Fixed flag values */
635 AVP_TYPE_UNSIGNED32 /* base type of data */
636 };
637 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
638 };
639 /* T4-Parameters */
640 {
641 /* Grouped */
642 struct dict_object * avp;
643 struct dict_avp_data data = {
644 3106, /* Code */
645 10415, /* Vendor */
646 "T4-Parameters", /* Name */
647 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
648 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
649 AVP_TYPE_GROUPED /* base type of data */
650 };
651 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
652 }
653 /* Restricted-PLMN-List */
654 {
655 /* Grouped */
656 struct dict_object * avp;
657 struct dict_avp_data data = {
658 3157, /* Code */
659 10415, /* Vendor */
660 "Restricted-PLMN-List", /* Name */
661 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
662 AVP_FLAG_VENDOR, /* Fixed flag values */
663 AVP_TYPE_GROUPED /* base type of data */
664 };
665 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
666 }
667 /* NIDD-Authorization-Response */
668 {
669 /* Grouped */
670 struct dict_object * avp;
671 struct dict_avp_data data = {
672 3151, /* Code */
673 10415, /* Vendor */
674 "NIDD-Authorization-Response", /* Name */
675 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
676 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
677 AVP_TYPE_GROUPED /* base type of data */
678 };
679 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
680 }
681 /* User-Identifier */
682 {
683 /* Grouped */
684 struct dict_object * avp;
685 struct dict_avp_data data = {
686 3102, /* Code */
687 10415, /* Vendor */
688 "User-Identifier", /* Name */
689 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
690 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
691 AVP_TYPE_GROUPED /* base type of data */
692 };
693 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
694 }
695 /* Scheduled-Communication-Time */
696 {
697 /* Grouped */
698 struct dict_object * avp;
699 struct dict_avp_data data = {
700 3118, /* Code */
701 10415, /* Vendor */
702 "Scheduled-Communication-Time", /* Name */
703 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
704 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
705 AVP_TYPE_GROUPED /* base type of data */
706 };
707 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
708 }
709 /* Allowed-PLMN-List */
710 {
711 /* Grouped */
712 struct dict_object * avp;
713 struct dict_avp_data data = {
714 3158, /* Code */
715 10415, /* Vendor */
716 "Allowed-PLMN-List", /* Name */
717 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
718 AVP_FLAG_VENDOR, /* Fixed flag values */
719 AVP_TYPE_GROUPED /* base type of data */
720 };
721 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
722 }
723 /* NIDD-Authorization-Update */
724 {
725 /* Grouped */
726 struct dict_object * avp;
727 struct dict_avp_data data = {
728 3161, /* Code */
729 10415, /* Vendor */
730 "NIDD-Authorization-Update", /* Name */
731 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
732 AVP_FLAG_VENDOR, /* Fixed flag values */
733 AVP_TYPE_GROUPED /* base type of data */
734 };
735 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
736 }
737 /* Location-Information-Configuration */
738 {
739 /* Grouped */
740 struct dict_object * avp;
741 struct dict_avp_data data = {
742 3135, /* Code */
743 10415, /* Vendor */
744 "Location-Information-Configuration", /* Name */
745 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
746 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
747 AVP_TYPE_GROUPED /* base type of data */
748 };
749 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
750 }
751 /* NIDD-Authorization-Request */
752 {
753 /* Grouped */
754 struct dict_object * avp;
755 struct dict_avp_data data = {
756 3150, /* Code */
757 10415, /* Vendor */
758 "NIDD-Authorization-Request", /* Name */
759 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
760 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
761 AVP_TYPE_GROUPED /* base type of data */
762 };
763 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
764 }
765 /* Supported-Services */
766 {
767 /* Grouped */
768 struct dict_object * avp;
769 struct dict_avp_data data = {
770 3143, /* Code */
771 10415, /* Vendor */
772 "Supported-Services", /* Name */
773 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
774 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
775 AVP_TYPE_GROUPED /* base type of data */
776 };
777 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
778 }
779 /* UE-Reachability-Configuration */
780 {
781 /* Grouped */
782 struct dict_object * avp;
783 struct dict_avp_data data = {
784 3129, /* Code */
785 10415, /* Vendor */
786 "UE-Reachability-Configuration", /* Name */
787 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
788 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
789 AVP_TYPE_GROUPED /* base type of data */
790 };
791 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
792 }
793 /* Service-Result */
794 {
795 /* Grouped */
796 struct dict_object * avp;
797 struct dict_avp_data data = {
798 3146, /* Code */
799 10415, /* Vendor */
800 "Service-Result", /* Name */
801 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
802 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
803 AVP_TYPE_GROUPED /* base type of data */
804 };
805 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
806 }
807 /* Service-Report */
808 {
809 /* Grouped */
810 struct dict_object * avp;
811 struct dict_avp_data data = {
812 3152, /* Code */
813 10415, /* Vendor */
814 "Service-Report", /* Name */
815 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
816 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
817 AVP_TYPE_GROUPED /* base type of data */
818 };
819 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
820 }
821 /* Enhanced-Coverage-Restriction */
822 {
823 /* Grouped */
824 struct dict_object * avp;
825 struct dict_avp_data data = {
826 3155, /* Code */
827 10415, /* Vendor */
828 "Enhanced-Coverage-Restriction", /* Name */
829 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
830 AVP_FLAG_VENDOR, /* Fixed flag values */
831 AVP_TYPE_GROUPED /* base type of data */
832 };
833 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
834 }
835 /* Communication-Pattern-Set */
836 {
837 /* Grouped */
838 struct dict_object * avp;
839 struct dict_avp_data data = {
840 3114, /* Code */
841 10415, /* Vendor */
842 "Communication-Pattern-Set", /* Name */
843 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
844 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
845 AVP_TYPE_GROUPED /* base type of data */
846 };
847 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
848 }
849 /* T4-Data */
850 {
851 /* Grouped */
852 struct dict_object * avp;
853 struct dict_avp_data data = {
854 3108, /* Code */
855 10415, /* Vendor */
856 "T4-Data", /* Name */
857 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
858 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
859 AVP_TYPE_GROUPED /* base type of data */
860 };
861 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
862 }
863 /* Service-Parameters */
864 {
865 /* Grouped */
866 struct dict_object * avp;
867 struct dict_avp_data data = {
868 3105, /* Code */
869 10415, /* Vendor */
870 "Service-Parameters", /* Name */
871 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
872 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
873 AVP_TYPE_GROUPED /* base type of data */
874 };
875 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
876 }
877 /* Monitoring-Event-Configuration */
878 {
879 /* Grouped */
880 struct dict_object * avp;
881 struct dict_avp_data data = {
882 3122, /* Code */
883 10415, /* Vendor */
884 "Monitoring-Event-Configuration", /* Name */
885 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
886 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
887 AVP_TYPE_GROUPED /* base type of data */
888 };
889 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
890 }
891 /* AESE-Error-Report */
892 {
893 /* Grouped */
894 struct dict_object * avp;
895 struct dict_avp_data data = {
896 3121, /* Code */
897 10415, /* Vendor */
898 "AESE-Error-Report", /* Name */
899 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
900 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
901 AVP_TYPE_GROUPED /* base type of data */
902 };
903 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
904 }
905 /* Monitoring-Event-Config-Status */
906 {
907 /* Grouped */
908 struct dict_object * avp;
909 struct dict_avp_data data = {
910 3142, /* Code */
911 10415, /* Vendor */
912 "Monitoring-Event-Config-Status", /* Name */
913 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
914 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
915 AVP_TYPE_GROUPED /* base type of data */
916 };
917 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
918 }
919 /* AESE-Communication-Pattern */
920 {
921 /* Grouped */
922 struct dict_object * avp;
923 struct dict_avp_data data = {
924 3113, /* Code */
925 10415, /* Vendor */
926 "AESE-Communication-Pattern", /* Name */
927 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
928 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
929 AVP_TYPE_GROUPED /* base type of data */
930 };
931 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
932 }
933 /* AESE-Communication-Pattern-Config-Status */
934 {
935 /* Grouped */
936 struct dict_object * avp;
937 struct dict_avp_data data = {
938 3120, /* Code */
939 10415, /* Vendor */
940 "AESE-Communication-Pattern-Config-Status", /* Name */
941 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
942 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
943 AVP_TYPE_GROUPED /* base type of data */
944 };
945 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
946 }
947 /* Service-Data */
948 {
949 /* Grouped */
950 struct dict_object * avp;
951 struct dict_avp_data data = {
952 3107, /* Code */
953 10415, /* Vendor */
954 "Service-Data", /* Name */
955 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
956 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
957 AVP_TYPE_GROUPED /* base type of data */
958 };
959 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
960 }
961 /* Enhanced-Coverage-Restriction-Data */
962 {
963 /* Grouped */
964 struct dict_object * avp;
965 struct dict_avp_data data = {
966 3156, /* Code */
967 10415, /* Vendor */
968 "Enhanced-Coverage-Restriction-Data", /* Name */
969 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
970 AVP_FLAG_VENDOR, /* Fixed flag values */
971 AVP_TYPE_GROUPED /* base type of data */
972 };
973 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
974 }
975 /* Monitoring-Event-Report */
976 {
977 /* Grouped */
978 struct dict_object * avp;
979 struct dict_avp_data data = {
980 3123, /* Code */
981 10415, /* Vendor */
982 "Monitoring-Event-Report", /* Name */
983 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
984 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
985 AVP_TYPE_GROUPED /* base type of data */
986 };
987 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
988 }
989 /* Group-Monitoring-Event-Report-Item */
990 {
991 /* Grouped */
992 struct dict_object * avp;
993 struct dict_avp_data data = {
994 3166, /* Code */
995 10415, /* Vendor */
996 "Group-Monitoring-Event-Report-Item", /* Name */
997 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
998 AVP_FLAG_VENDOR, /* Fixed flag values */
999 AVP_TYPE_GROUPED /* base type of data */
1000 };
1001 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
1002 }
1003 /* Group-Monitoring-Event-Report */
1004 {
1005 /* Grouped */
1006 struct dict_object * avp;
1007 struct dict_avp_data data = {
1008 3165, /* Code */
1009 10415, /* Vendor */
1010 "Group-Monitoring-Event-Report", /* Name */
1011 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1012 AVP_FLAG_VENDOR, /* Fixed flag values */
1013 AVP_TYPE_GROUPED /* base type of data */
1014 };
1015 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
1016 }
1017
1018
1019 }
1020
1021 /* Commands section */
1022 {
1023
1024 }
1025
1026 return 0;
1027}
1028
1029static int dict_ts29336_avps_load_rules(char * conffile)
1030{
1031 /* Grouped AVP section */
1032 {
1033 /* T4-Parameters */
1034 {
1035 /* Grouped */
1036 struct dict_object * avp;
1037 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "T4-Parameters"};
1038 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
1039 struct local_rules_definition rules[] =
1040 {
1041 { { .avp_vendor = 10415, .avp_name = "Priority-Indication"}, RULE_OPTIONAL, -1, -1 },
1042 { { .avp_vendor = 10415, .avp_name = "SM-RP-SMEA"}, RULE_OPTIONAL, -1, -1 }
1043 };
1044 PARSE_loc_rules( rules, avp );
1045 }
1046 /* Restricted-PLMN-List */
1047 {
1048 /* Grouped */
1049 struct dict_object * avp;
1050 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Restricted-PLMN-List"};
1051 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
1052 struct local_rules_definition rules[] =
1053 {
1054 { { .avp_vendor = 10415, .avp_name = "Visited-PLMN-Id"}, RULE_OPTIONAL, -1, -1 }
1055 };
1056 PARSE_loc_rules( rules, avp );
1057 }
1058 /* NIDD-Authorization-Response */
1059 {
1060 /* Grouped */
1061 struct dict_object * avp;
1062 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "NIDD-Authorization-Response"};
1063 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
1064 struct local_rules_definition rules[] =
1065 {
1066 { { .avp_vendor = 10415, .avp_name = "MSISDN"}, RULE_OPTIONAL, -1, -1 },
1067 { { .avp_vendor = 0, .avp_name = "User-Name"}, RULE_OPTIONAL, -1, -1 },
1068 { { .avp_vendor = 10415, .avp_name = "External-Identifier"}, RULE_OPTIONAL, -1, -1 },
1069 { { .avp_vendor = 10415, .avp_name = "Granted-Validity-Time"}, RULE_OPTIONAL, -1, -1 }
1070 };
1071 PARSE_loc_rules( rules, avp );
1072 }
1073 /* User-Identifier */
1074 {
1075 /* Grouped */
1076 struct dict_object * avp;
1077 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "User-Identifier"};
1078 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
1079 struct local_rules_definition rules[] =
1080 {
1081 { { .avp_vendor = 0, .avp_name = "User-Name"}, RULE_OPTIONAL, -1, -1 },
1082 { { .avp_vendor = 10415, .avp_name = "MSISDN"}, RULE_OPTIONAL, -1, -1 },
1083 { { .avp_vendor = 10415, .avp_name = "External-Identifier"}, RULE_OPTIONAL, -1, -1 },
1084 { { .avp_vendor = 10415, .avp_name = "Type-Of-External-Identifier"}, RULE_OPTIONAL, -1, -1 }
1085 };
1086 PARSE_loc_rules( rules, avp );
1087 }
1088 /* Scheduled-Communication-Time */
1089 {
1090 /* Grouped */
1091 struct dict_object * avp;
1092 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Scheduled-Communication-Time"};
1093 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
1094 struct local_rules_definition rules[] =
1095 {
1096 { { .avp_vendor = 0, .avp_name = "Day-Of-Week-Mask"}, RULE_OPTIONAL, -1, -1 },
1097 { { .avp_vendor = 0, .avp_name = "Time-Of-Day-Start"}, RULE_OPTIONAL, -1, -1 },
1098 { { .avp_vendor = 0, .avp_name = "Time-Of-Day-End"}, RULE_OPTIONAL, -1, -1 }
1099 };
1100 PARSE_loc_rules( rules, avp );
1101 }
1102 /* Allowed-PLMN-List */
1103 {
1104 /* Grouped */
1105 struct dict_object * avp;
1106 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Allowed-PLMN-List"};
1107 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
1108 struct local_rules_definition rules[] =
1109 {
1110 { { .avp_vendor = 10415, .avp_name = "Visited-PLMN-Id"}, RULE_OPTIONAL, -1, -1 }
1111 };
1112 PARSE_loc_rules( rules, avp );
1113 }
1114 /* NIDD-Authorization-Update */
1115 {
1116 /* Grouped */
1117 struct dict_object * avp;
1118 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "NIDD-Authorization-Update"};
1119 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
1120 struct local_rules_definition rules[] =
1121 {
1122 { { .avp_vendor = 10415, .avp_name = "MSISDN"}, RULE_OPTIONAL, -1, -1 },
1123 { { .avp_vendor = 0, .avp_name = "User-Name"}, RULE_OPTIONAL, -1, -1 },
1124 { { .avp_vendor = 10415, .avp_name = "External-Identifier"}, RULE_OPTIONAL, -1, -1 },
1125 { { .avp_vendor = 10415, .avp_name = "Granted-Validity-Time"}, RULE_OPTIONAL, -1, -1 }
1126 };
1127 PARSE_loc_rules( rules, avp );
1128 }
1129 /* Location-Information-Configuration */
1130 {
1131 /* Grouped */
1132 struct dict_object * avp;
1133 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Location-Information-Configuration"};
1134 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
1135 struct local_rules_definition rules[] =
1136 {
1137 { { .avp_vendor = 10415, .avp_name = "MONTE-Location-Type"}, RULE_OPTIONAL, -1, -1 },
1138 { { .avp_vendor = 10415, .avp_name = "Accuracy"}, RULE_OPTIONAL, -1, -1 }
1139 };
1140 PARSE_loc_rules( rules, avp );
1141 }
1142 /* NIDD-Authorization-Request */
1143 {
1144 /* Grouped */
1145 struct dict_object * avp;
1146 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "NIDD-Authorization-Request"};
1147 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
1148 struct local_rules_definition rules[] =
1149 {
1150 { { .avp_vendor = 0, .avp_name = "Service-Selection"}, RULE_OPTIONAL, -1, -1 },
1151 { { .avp_vendor = 10415, .avp_name = "Requested-Validity-Time"}, RULE_OPTIONAL, -1, -1 }
1152 };
1153 PARSE_loc_rules( rules, avp );
1154 }
1155 /* Supported-Services */
1156 {
1157 /* Grouped */
1158 struct dict_object * avp;
1159 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Supported-Services"};
1160 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
1161 struct local_rules_definition rules[] =
1162 {
1163 { { .avp_vendor = 10415, .avp_name = "Supported-Monitoring-Events"}, RULE_OPTIONAL, -1, -1 },
1164 { { .avp_vendor = 10415, .avp_name = "Node-Type"}, RULE_OPTIONAL, -1, -1 }
1165 };
1166 PARSE_loc_rules( rules, avp );
1167 }
1168 /* UE-Reachability-Configuration */
1169 {
1170 /* Grouped */
1171 struct dict_object * avp;
1172 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "UE-Reachability-Configuration"};
1173 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
1174 struct local_rules_definition rules[] =
1175 {
1176 { { .avp_vendor = 10415, .avp_name = "Reachability-Type"}, RULE_OPTIONAL, -1, -1 },
1177 { { .avp_vendor = 10415, .avp_name = "Maximum-Latency"}, RULE_OPTIONAL, -1, -1 },
1178 { { .avp_vendor = 10415, .avp_name = "Maximum-Response-Time"}, RULE_OPTIONAL, -1, -1 }
1179 };
1180 PARSE_loc_rules( rules, avp );
1181 }
1182 /* Service-Result */
1183 {
1184 /* Grouped */
1185 struct dict_object * avp;
1186 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Service-Result"};
1187 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
1188 struct local_rules_definition rules[] =
1189 {
1190 { { .avp_vendor = 0, .avp_name = "Vendor-Id"}, RULE_OPTIONAL, -1, -1 },
1191 { { .avp_vendor = 10415, .avp_name = "Service-Result-Code"}, RULE_OPTIONAL, -1, -1 }
1192 };
1193 PARSE_loc_rules( rules, avp );
1194 }
1195 /* Service-Report */
1196 {
1197 /* Grouped */
1198 struct dict_object * avp;
1199 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Service-Report"};
1200 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
1201 struct local_rules_definition rules[] =
1202 {
1203 { { .avp_vendor = 10415, .avp_name = "Service-Result"}, RULE_OPTIONAL, -1, -1 },
1204 { { .avp_vendor = 10415, .avp_name = "Node-Type"}, RULE_OPTIONAL, -1, -1 }
1205 };
1206 PARSE_loc_rules( rules, avp );
1207 }
1208 /* Enhanced-Coverage-Restriction */
1209 {
1210 /* Grouped */
1211 struct dict_object * avp;
1212 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Enhanced-Coverage-Restriction"};
1213 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
1214 struct local_rules_definition rules[] =
1215 {
1216 { { .avp_vendor = 10415, .avp_name = "Restricted-PLMN-List"}, RULE_OPTIONAL, -1, -1 },
1217 { { .avp_vendor = 10415, .avp_name = "Allowed-PLMN-List"}, RULE_OPTIONAL, -1, -1 }
1218 };
1219 PARSE_loc_rules( rules, avp );
1220 }
1221 /* Communication-Pattern-Set */
1222 {
1223 /* Grouped */
1224 struct dict_object * avp;
1225 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Communication-Pattern-Set"};
1226 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
1227 struct local_rules_definition rules[] =
1228 {
1229 { { .avp_vendor = 10415, .avp_name = "Periodic-Communication-Indicator"}, RULE_OPTIONAL, -1, -1 },
1230 { { .avp_vendor = 10415, .avp_name = "Communication-Duration-Time"}, RULE_OPTIONAL, -1, -1 },
1231 { { .avp_vendor = 10415, .avp_name = "Periodic-Time"}, RULE_OPTIONAL, -1, -1 },
1232 { { .avp_vendor = 10415, .avp_name = "Scheduled-Communication-Time"}, RULE_OPTIONAL, -1, -1 },
1233 { { .avp_vendor = 10415, .avp_name = "Stationary-Indication"}, RULE_OPTIONAL, -1, -1 },
1234 { { .avp_vendor = 10415, .avp_name = "Reference-ID-Validity-Time"}, RULE_OPTIONAL, -1, -1 }
1235 };
1236 PARSE_loc_rules( rules, avp );
1237 }
1238 /* T4-Data */
1239 {
1240 /* Grouped */
1241 struct dict_object * avp;
1242 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "T4-Data"};
1243 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
1244 struct local_rules_definition rules[] =
1245 {
1246 { { .avp_vendor = 10415, .avp_name = "HSS-Cause"}, RULE_OPTIONAL, -1, -1 },
1247 { { .avp_vendor = 10415, .avp_name = "Serving-Node"}, RULE_OPTIONAL, -1, -1 },
1248 { { .avp_vendor = 10415, .avp_name = "Additional-Serving-Node"}, RULE_OPTIONAL, -1, -1 }
1249 };
1250 PARSE_loc_rules( rules, avp );
1251 }
1252 /* Service-Parameters */
1253 {
1254 /* Grouped */
1255 struct dict_object * avp;
1256 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Service-Parameters"};
1257 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
1258 struct local_rules_definition rules[] =
1259 {
1260 { { .avp_vendor = 10415, .avp_name = "T4-Parameters"}, RULE_OPTIONAL, -1, -1 },
1261 { { .avp_vendor = 10415, .avp_name = "Application-Port-Identifier"}, RULE_OPTIONAL, -1, -1 }
1262 };
1263 PARSE_loc_rules( rules, avp );
1264 }
1265 /* Monitoring-Event-Configuration */
1266 {
1267 /* Grouped */
1268 struct dict_object * avp;
1269 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Monitoring-Event-Configuration"};
1270 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
1271 struct local_rules_definition rules[] =
1272 {
1273 { { .avp_vendor = 10415, .avp_name = "SCEF-Reference-ID"}, RULE_OPTIONAL, -1, -1 },
1274 { { .avp_vendor = 10415, .avp_name = "SCEF-ID"}, RULE_REQUIRED, -1, -1 },
1275 { { .avp_vendor = 10415, .avp_name = "Monitoring-Type"}, RULE_REQUIRED, -1, -1 },
1276 { { .avp_vendor = 10415, .avp_name = "SCEF-Reference-ID-for-Deletion"}, RULE_OPTIONAL, -1, -1 },
1277 { { .avp_vendor = 10415, .avp_name = "Maximum-Number-of-Reports"}, RULE_OPTIONAL, -1, -1 },
1278 { { .avp_vendor = 10415, .avp_name = "Monitoring-Duration"}, RULE_OPTIONAL, -1, -1 },
1279 { { .avp_vendor = 10415, .avp_name = "Charged-Party"}, RULE_OPTIONAL, -1, -1 },
1280 { { .avp_vendor = 10415, .avp_name = "Maximum-Detection-Time"}, RULE_OPTIONAL, -1, -1 },
1281 { { .avp_vendor = 10415, .avp_name = "UE-Reachability-Configuration"}, RULE_OPTIONAL, -1, -1 },
1282 { { .avp_vendor = 10415, .avp_name = "Location-Information-Configuration"}, RULE_OPTIONAL, -1, -1 },
1283 { { .avp_vendor = 10415, .avp_name = "Association-Type"}, RULE_OPTIONAL, -1, -1 },
1284 { { .avp_vendor = 10415, .avp_name = "DL-Buffering-Suggested-Packet-Count"}, RULE_OPTIONAL, -1, -1 }
1285 };
1286 PARSE_loc_rules( rules, avp );
1287 }
1288 /* AESE-Error-Report */
1289 {
1290 /* Grouped */
1291 struct dict_object * avp;
1292 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "AESE-Error-Report"};
1293 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
1294 struct local_rules_definition rules[] =
1295 {
1296 { { .avp_vendor = 10415, .avp_name = "Service-Result"}, RULE_OPTIONAL, -1, -1 }
1297 };
1298 PARSE_loc_rules( rules, avp );
1299 }
1300 /* Monitoring-Event-Config-Status */
1301 {
1302 /* Grouped */
1303 struct dict_object * avp;
1304 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Monitoring-Event-Config-Status"};
1305 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
1306 struct local_rules_definition rules[] =
1307 {
1308 { { .avp_vendor = 10415, .avp_name = "Service-Report"}, RULE_OPTIONAL, -1, -1 },
1309 { { .avp_vendor = 10415, .avp_name = "SCEF-Reference-ID"}, RULE_REQUIRED, -1, -1 },
1310 { { .avp_vendor = 10415, .avp_name = "SCEF-ID"}, RULE_OPTIONAL, -1, -1 }
1311 };
1312 PARSE_loc_rules( rules, avp );
1313 }
1314 /* AESE-Communication-Pattern */
1315 {
1316 /* Grouped */
1317 struct dict_object * avp;
1318 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "AESE-Communication-Pattern"};
1319 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
1320 struct local_rules_definition rules[] =
1321 {
1322 { { .avp_vendor = 10415, .avp_name = "SCEF-Reference-ID"}, RULE_OPTIONAL, -1, -1 },
1323 { { .avp_vendor = 10415, .avp_name = "SCEF-ID"}, RULE_REQUIRED, -1, -1 },
1324 { { .avp_vendor = 10415, .avp_name = "SCEF-Reference-ID-for-Deletion"}, RULE_OPTIONAL, -1, -1 },
1325 { { .avp_vendor = 10415, .avp_name = "Communication-Pattern-Set"}, RULE_OPTIONAL, -1, -1 }
1326 };
1327 PARSE_loc_rules( rules, avp );
1328 }
1329 /* AESE-Communication-Pattern-Config-Status */
1330 {
1331 /* Grouped */
1332 struct dict_object * avp;
1333 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "AESE-Communication-Pattern-Config-Status"};
1334 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
1335 struct local_rules_definition rules[] =
1336 {
1337 { { .avp_vendor = 10415, .avp_name = "SCEF-Reference-ID"}, RULE_REQUIRED, -1, -1 },
1338 { { .avp_vendor = 10415, .avp_name = "SCEF-ID"}, RULE_OPTIONAL, -1, -1 },
1339 { { .avp_vendor = 10415, .avp_name = "AESE-Error-Report"}, RULE_OPTIONAL, -1, -1 }
1340 };
1341 PARSE_loc_rules( rules, avp );
1342 }
1343 /* Service-Data */
1344 {
1345 /* Grouped */
1346 struct dict_object * avp;
1347 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Service-Data"};
1348 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
1349 struct local_rules_definition rules[] =
1350 {
1351 { { .avp_vendor = 10415, .avp_name = "T4-Data"}, RULE_OPTIONAL, -1, -1 }
1352 };
1353 PARSE_loc_rules( rules, avp );
1354 }
1355 /* Enhanced-Coverage-Restriction-Data */
1356 {
1357 /* Grouped */
1358 struct dict_object * avp;
1359 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Enhanced-Coverage-Restriction-Data"};
1360 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
1361 struct local_rules_definition rules[] =
1362 {
1363 { { .avp_vendor = 10415, .avp_name = "Enhanced-Coverage-Restriction"}, RULE_REQUIRED, -1, -1 },
1364 { { .avp_vendor = 10415, .avp_name = "Visited-PLMN-Id"}, RULE_OPTIONAL, -1, -1 }
1365 };
1366 PARSE_loc_rules( rules, avp );
1367 }
1368 /* Monitoring-Event-Report */
1369 {
1370 /* Grouped */
1371 struct dict_object * avp;
1372 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Monitoring-Event-Report"};
1373 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
1374 struct local_rules_definition rules[] =
1375 {
1376 { { .avp_vendor = 10415, .avp_name = "SCEF-Reference-ID"}, RULE_REQUIRED, -1, -1 },
1377 { { .avp_vendor = 10415, .avp_name = "SCEF-ID"}, RULE_OPTIONAL, -1, -1 },
1378 { { .avp_vendor = 10415, .avp_name = "Visited-PLMN-Id"}, RULE_OPTIONAL, -1, -1 },
1379 { { .avp_vendor = 10415, .avp_name = "Roaming-Information"}, RULE_OPTIONAL, -1, -1 },
1380 { { .avp_vendor = 10415, .avp_name = "IMEI-Change"}, RULE_OPTIONAL, -1, -1 },
1381 { { .avp_vendor = 10415, .avp_name = "Reachability-Information"}, RULE_OPTIONAL, -1, -1 },
1382 { { .avp_vendor = 10415, .avp_name = "Maximum-UE-Availability-Time"}, RULE_OPTIONAL, -1, -1 },
1383 { { .avp_vendor = 10415, .avp_name = "EPS-Location-Information"}, RULE_OPTIONAL, -1, -1 },
1384 { { .avp_vendor = 10415, .avp_name = "Monitoring-Type"}, RULE_OPTIONAL, -1, -1 },
1385 { { .avp_vendor = 10415, .avp_name = "Event-Handling"}, RULE_OPTIONAL, -1, -1 },
1386 { { .avp_vendor = 10415, .avp_name = "Service-Report"}, RULE_OPTIONAL, -1, -1 },
1387 { { .avp_vendor = 10415, .avp_name = "Loss-Of-Connectivity-Reason"}, RULE_OPTIONAL, -1, -1 }
1388 };
1389 PARSE_loc_rules( rules, avp );
1390 }
1391 /* Group-Monitoring-Event-Report-Item */
1392 {
1393 /* Grouped */
1394 struct dict_object * avp;
1395 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Group-Monitoring-Event-Report-Item"};
1396 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
1397 struct local_rules_definition rules[] =
1398 {
1399 { { .avp_vendor = 10415, .avp_name = "User-Identifier"}, RULE_REQUIRED, -1, -1 },
1400 { { .avp_vendor = 10415, .avp_name = "Visited-PLMN-Id"}, RULE_OPTIONAL, -1, -1 },
1401 { { .avp_vendor = 10415, .avp_name = "Roaming-Information"}, RULE_OPTIONAL, -1, -1 },
1402 { { .avp_vendor = 10415, .avp_name = "Reachability-Information"}, RULE_OPTIONAL, -1, -1 },
1403 { { .avp_vendor = 10415, .avp_name = "Maximum-UE-Availability-Time"}, RULE_OPTIONAL, -1, -1 },
1404 { { .avp_vendor = 10415, .avp_name = "EPS-Location-Information"}, RULE_OPTIONAL, -1, -1 },
1405 { { .avp_vendor = 10415, .avp_name = "Monitoring-Type"}, RULE_OPTIONAL, -1, -1 },
1406 { { .avp_vendor = 10415, .avp_name = "Service-Report"}, RULE_OPTIONAL, -1, -1 },
1407 { { .avp_vendor = 10415, .avp_name = "S6t-HSS-Cause"}, RULE_OPTIONAL, -1, -1 }
1408 };
1409 PARSE_loc_rules( rules, avp );
1410 }
1411 /* Group-Monitoring-Event-Report */
1412 {
1413 /* Grouped */
1414 struct dict_object * avp;
1415 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Group-Monitoring-Event-Report"};
1416 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
1417 struct local_rules_definition rules[] =
1418 {
1419 { { .avp_vendor = 10415, .avp_name = "SCEF-Reference-ID"}, RULE_REQUIRED, -1, -1 },
1420 { { .avp_vendor = 10415, .avp_name = "SCEF-ID"}, RULE_OPTIONAL, -1, -1 },
1421 { { .avp_vendor = 10415, .avp_name = "Group-Monitoring-Event-Report-Item"}, RULE_OPTIONAL, -1, -1 }
1422 };
1423 PARSE_loc_rules( rules, avp );
1424 }
1425
1426 }
1427
1428 /* Commands section */
1429 {
1430
1431 }
1432
1433 LOG_D( "Extension 'Dictionary definitions for ts29336_avps (e10)' initialized");
1434 return 0;
1435}
1436
1437int dict_entry(char * conffile)
1438{
1439 dict_ts29336_avps_load_defs(conffile);
1440 return dict_ts29336_avps_load_rules(conffile);
1441}
1442
1443const char* dict_proto_ver(char * conffile) {
1444 return ts29336_avps_proto_ver;
1445}
1446
1447const double dict_gen_ts(char * conffile) {
1448 return ts29336_avps_gen_date;
1449}
1450
1451EXTENSION_ENTRY2("dict_ts29336_avps", dict_ts29336_avps_load_defs, dict_ts29336_avps_load_rules, "dict_ts32299_avps", "dict_ts29272_avps", "dict_ts29338_avps", "dict_ts29329_avps", "dict_ts29368_avps", "dict_ts29229_avps", "dict_ts29217_avps", "dict_ts29173_avps", "dict_rfc5778_avps", "dict_draftload_avps", "dict_rfc5777_avps", "dict_rfc7683_avps", "dict_rfc7944_avps");
1452
1453
1454