blob: 5d748057ae8bd44120727f4b9468a7548145b0e6 [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 ts29272_avps (e30).
25 */
26#include <freeDiameter/extension.h>
27
28#define PROTO_VER "e30"
29#define GEN_DATE 1506697187.84
30
31const char *ts29272_avps_proto_ver = PROTO_VER;
32const double ts29272_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_ts29272_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 /* IMEI */
128 {
129 struct dict_avp_data data = {
130 1402, /* Code */
131 10415, /* Vendor */
132 "IMEI", /* 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, UTF8String_type, NULL);
138 };
139 /* Software-Version */
140 {
141 struct dict_avp_data data = {
142 1403, /* Code */
143 10415, /* Vendor */
144 "Software-Version", /* 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, UTF8String_type, NULL);
150 };
151 /* QoS-Subscribed */
152 {
153 struct dict_avp_data data = {
154 1404, /* Code */
155 10415, /* Vendor */
156 "QoS-Subscribed", /* Name */
157 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
158 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
159 AVP_TYPE_OCTETSTRING /* base type of data */
160 };
161 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
162 };
163 /* ULR-Flags */
164 {
165 struct dict_avp_data data = {
166 1405, /* Code */
167 10415, /* Vendor */
168 "ULR-Flags", /* Name */
169 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
170 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
171 AVP_TYPE_UNSIGNED32 /* base type of data */
172 };
173 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
174 };
175 /* ULA-Flags */
176 {
177 struct dict_avp_data data = {
178 1406, /* Code */
179 10415, /* Vendor */
180 "ULA-Flags", /* Name */
181 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
182 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
183 AVP_TYPE_UNSIGNED32 /* base type of data */
184 };
185 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
186 };
187 /* Visited-PLMN-Id */
188 {
189 struct dict_avp_data data = {
190 1407, /* Code */
191 10415, /* Vendor */
192 "Visited-PLMN-Id", /* Name */
193 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
194 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
195 AVP_TYPE_OCTETSTRING /* base type of data */
196 };
197 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
198 };
199 /* Number-Of-Requested-Vectors */
200 {
201 struct dict_avp_data data = {
202 1410, /* Code */
203 10415, /* Vendor */
204 "Number-Of-Requested-Vectors", /* Name */
205 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
206 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
207 AVP_TYPE_UNSIGNED32 /* base type of data */
208 };
209 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
210 };
211 /* Re-Synchronization-Info */
212 {
213 struct dict_avp_data data = {
214 1411, /* Code */
215 10415, /* Vendor */
216 "Re-Synchronization-Info", /* Name */
217 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
218 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
219 AVP_TYPE_OCTETSTRING /* base type of data */
220 };
221 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
222 };
223 /* Immediate-Response-Preferred */
224 {
225 struct dict_avp_data data = {
226 1412, /* Code */
227 10415, /* Vendor */
228 "Immediate-Response-Preferred", /* Name */
229 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
230 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
231 AVP_TYPE_UNSIGNED32 /* base type of data */
232 };
233 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
234 };
235 /* Network-Access-Mode */
236 {
237 struct dict_avp_data data = {
238 1417, /* Code */
239 10415, /* Vendor */
240 "Network-Access-Mode", /* Name */
241 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
242 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
243 AVP_TYPE_INTEGER32 /* base type of data */
244 };
245 struct dict_object *type;
246 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Network-Access-Mode)", NULL, NULL, NULL };
247 struct dict_enumval_data t_1 = { "PACKET_AND_CIRCUIT", { .i32=0 }};
248 struct dict_enumval_data t_2 = { "Reserved", { .i32=1 }};
249 struct dict_enumval_data t_3 = { "ONLY_PACKET", { .i32=2 }};
250 /* Create the Enumerated type, and then the AVP */
251 CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
252 CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
253 CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
254 CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
255 CHECK_dict_new( DICT_AVP, &data, type, NULL);
256 };
257 /* HPLMN-ODB */
258 {
259 struct dict_avp_data data = {
260 1418, /* Code */
261 10415, /* Vendor */
262 "HPLMN-ODB", /* Name */
263 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
264 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
265 AVP_TYPE_UNSIGNED32 /* base type of data */
266 };
267 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
268 };
269 /* Item-Number */
270 {
271 struct dict_avp_data data = {
272 1419, /* Code */
273 10415, /* Vendor */
274 "Item-Number", /* Name */
275 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
276 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
277 AVP_TYPE_UNSIGNED32 /* base type of data */
278 };
279 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
280 };
281 /* Cancellation-Type */
282 {
283 struct dict_avp_data data = {
284 1420, /* Code */
285 10415, /* Vendor */
286 "Cancellation-Type", /* Name */
287 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
288 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
289 AVP_TYPE_INTEGER32 /* base type of data */
290 };
291 struct dict_object *type;
292 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Cancellation-Type)", NULL, NULL, NULL };
293 struct dict_enumval_data t_1 = { "MME_UPDATE_PROCEDURE", { .i32=0 }};
294 struct dict_enumval_data t_2 = { "SGSN_UPDATE_PROCEDURE", { .i32=1 }};
295 struct dict_enumval_data t_3 = { "SUBSCRIPTION_WITHDRAWAL", { .i32=2 }};
296 struct dict_enumval_data t_4 = { "UPDATE_PROCEDURE_IWF", { .i32=3 }};
297 struct dict_enumval_data t_5 = { "INITIAL_ATTACH_PROCEDURE", { .i32=4 }};
298 /* Create the Enumerated type, and then the AVP */
299 CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
300 CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
301 CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
302 CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
303 CHECK_dict_new( DICT_ENUMVAL, &t_4, type, NULL);
304 CHECK_dict_new( DICT_ENUMVAL, &t_5, type, NULL);
305 CHECK_dict_new( DICT_AVP, &data, type, NULL);
306 };
307 /* DSR-Flags */
308 {
309 struct dict_avp_data data = {
310 1421, /* Code */
311 10415, /* Vendor */
312 "DSR-Flags", /* Name */
313 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
314 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
315 AVP_TYPE_UNSIGNED32 /* base type of data */
316 };
317 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
318 };
319 /* DSA-Flags */
320 {
321 struct dict_avp_data data = {
322 1422, /* Code */
323 10415, /* Vendor */
324 "DSA-Flags", /* Name */
325 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
326 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
327 AVP_TYPE_UNSIGNED32 /* base type of data */
328 };
329 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
330 };
331 /* Context-Identifier */
332 {
333 struct dict_avp_data data = {
334 1423, /* Code */
335 10415, /* Vendor */
336 "Context-Identifier", /* Name */
337 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
338 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
339 AVP_TYPE_UNSIGNED32 /* base type of data */
340 };
341 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
342 };
343 /* Subscriber-Status */
344 {
345 struct dict_avp_data data = {
346 1424, /* Code */
347 10415, /* Vendor */
348 "Subscriber-Status", /* Name */
349 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
350 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
351 AVP_TYPE_INTEGER32 /* base type of data */
352 };
353 struct dict_object *type;
354 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Subscriber-Status)", NULL, NULL, NULL };
355 struct dict_enumval_data t_1 = { "SERVICE_GRANTED", { .i32=0 }};
356 struct dict_enumval_data t_2 = { "OPERATOR_DETERMINED_BARRING", { .i32=1 }};
357 /* Create the Enumerated type, and then the AVP */
358 CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
359 CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
360 CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
361 CHECK_dict_new( DICT_AVP, &data, type, NULL);
362 };
363 /* Operator-Determined-Barring */
364 {
365 struct dict_avp_data data = {
366 1425, /* Code */
367 10415, /* Vendor */
368 "Operator-Determined-Barring", /* 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 /* Access-Restriction-Data */
376 {
377 struct dict_avp_data data = {
378 1426, /* Code */
379 10415, /* Vendor */
380 "Access-Restriction-Data", /* 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 /* APN-OI-Replacement */
388 {
389 struct dict_avp_data data = {
390 1427, /* Code */
391 10415, /* Vendor */
392 "APN-OI-Replacement", /* Name */
393 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
394 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
395 AVP_TYPE_OCTETSTRING /* base type of data */
396 };
397 CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
398 };
399 /* All-APN-Configurations-Included-Indicator */
400 {
401 struct dict_avp_data data = {
402 1428, /* Code */
403 10415, /* Vendor */
404 "All-APN-Configurations-Included-Indicator", /* Name */
405 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
406 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
407 AVP_TYPE_INTEGER32 /* base type of data */
408 };
409 struct dict_object *type;
410 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(All-APN-Configurations-Included-Indicator)", NULL, NULL, NULL };
411 struct dict_enumval_data t_1 = { "All_APN_CONFIGURATIONS_INCLUDED", { .i32=0 }};
412 struct dict_enumval_data t_2 = { "MODIFIED_ADDED_APN_CONFIGURATIONS_INCLUDED", { .i32=1 }};
413 /* Create the Enumerated type, and then the AVP */
414 CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
415 CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
416 CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
417 CHECK_dict_new( DICT_AVP, &data, type, NULL);
418 };
419 /* VPLMN-Dynamic-Address-Allowed */
420 {
421 struct dict_avp_data data = {
422 1432, /* Code */
423 10415, /* Vendor */
424 "VPLMN-Dynamic-Address-Allowed", /* Name */
425 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
426 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
427 AVP_TYPE_INTEGER32 /* base type of data */
428 };
429 struct dict_object *type;
430 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(VPLMN-Dynamic-Address-Allowed)", NULL, NULL, NULL };
431 struct dict_enumval_data t_1 = { "NOTALLOWED", { .i32=0 }};
432 struct dict_enumval_data t_2 = { "ALLOWED", { .i32=1 }};
433 /* Create the Enumerated type, and then the AVP */
434 CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
435 CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
436 CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
437 CHECK_dict_new( DICT_AVP, &data, type, NULL);
438 };
439 /* STN-SR */
440 {
441 struct dict_avp_data data = {
442 1433, /* Code */
443 10415, /* Vendor */
444 "STN-SR", /* Name */
445 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
446 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
447 AVP_TYPE_OCTETSTRING /* base type of data */
448 };
449 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
450 };
451 /* Alert-Reason */
452 {
453 struct dict_avp_data data = {
454 1434, /* Code */
455 10415, /* Vendor */
456 "Alert-Reason", /* Name */
457 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
458 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
459 AVP_TYPE_INTEGER32 /* base type of data */
460 };
461 struct dict_object *type;
462 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Alert-Reason)", NULL, NULL, NULL };
463 struct dict_enumval_data t_1 = { "UE_PRESENT", { .i32=0 }};
464 struct dict_enumval_data t_2 = { "UE_MEMORY_AVAILABLE", { .i32=1 }};
465 /* Create the Enumerated type, and then the AVP */
466 CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
467 CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
468 CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
469 CHECK_dict_new( DICT_AVP, &data, type, NULL);
470 };
471 /* CSG-Id */
472 {
473 struct dict_avp_data data = {
474 1437, /* Code */
475 10415, /* Vendor */
476 "CSG-Id", /* Name */
477 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
478 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
479 AVP_TYPE_UNSIGNED32 /* base type of data */
480 };
481 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
482 };
483 /* PDN-GW-Allocation-Type */
484 {
485 struct dict_avp_data data = {
486 1438, /* Code */
487 10415, /* Vendor */
488 "PDN-GW-Allocation-Type", /* Name */
489 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
490 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
491 AVP_TYPE_INTEGER32 /* base type of data */
492 };
493 struct dict_object *type;
494 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(PDN-GW-Allocation-Type)", NULL, NULL, NULL };
495 struct dict_enumval_data t_1 = { "STATIC", { .i32=0 }};
496 struct dict_enumval_data t_2 = { "DYNAMIC", { .i32=1 }};
497 /* Create the Enumerated type, and then the AVP */
498 CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
499 CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
500 CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
501 CHECK_dict_new( DICT_AVP, &data, type, NULL);
502 };
503 /* Expiration-Date */
504 {
505 struct dict_avp_data data = {
506 1439, /* Code */
507 10415, /* Vendor */
508 "Expiration-Date", /* Name */
509 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
510 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
511 AVP_TYPE_OCTETSTRING /* base type of data */
512 };
513 CHECK_dict_new( DICT_AVP, &data, Time_type, NULL);
514 };
515 /* RAT-Frequency-Selection-Priority-ID */
516 {
517 struct dict_avp_data data = {
518 1440, /* Code */
519 10415, /* Vendor */
520 "RAT-Frequency-Selection-Priority-ID", /* Name */
521 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
522 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
523 AVP_TYPE_UNSIGNED32 /* base type of data */
524 };
525 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
526 };
527 /* IDA-Flags */
528 {
529 struct dict_avp_data data = {
530 1441, /* Code */
531 10415, /* Vendor */
532 "IDA-Flags", /* Name */
533 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
534 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
535 AVP_TYPE_UNSIGNED32 /* base type of data */
536 };
537 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
538 };
539 /* PUA-Flags */
540 {
541 struct dict_avp_data data = {
542 1442, /* Code */
543 10415, /* Vendor */
544 "PUA-Flags", /* Name */
545 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
546 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
547 AVP_TYPE_UNSIGNED32 /* base type of data */
548 };
549 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
550 };
551 /* NOR-Flags */
552 {
553 struct dict_avp_data data = {
554 1443, /* Code */
555 10415, /* Vendor */
556 "NOR-Flags", /* Name */
557 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
558 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
559 AVP_TYPE_UNSIGNED32 /* base type of data */
560 };
561 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
562 };
563 /* User-Id */
564 {
565 struct dict_avp_data data = {
566 1444, /* Code */
567 10415, /* Vendor */
568 "User-Id", /* Name */
569 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
570 AVP_FLAG_VENDOR, /* Fixed flag values */
571 AVP_TYPE_OCTETSTRING /* base type of data */
572 };
573 CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
574 };
575 /* Equipment-Status */
576 {
577 struct dict_avp_data data = {
578 1445, /* Code */
579 10415, /* Vendor */
580 "Equipment-Status", /* Name */
581 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
582 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
583 AVP_TYPE_INTEGER32 /* base type of data */
584 };
585 struct dict_object *type;
586 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Equipment-Status)", NULL, NULL, NULL };
587 struct dict_enumval_data t_1 = { "WHITELISTED", { .i32=0 }};
588 struct dict_enumval_data t_2 = { "BLACKLISTED", { .i32=1 }};
589 struct dict_enumval_data t_3 = { "GREYLISTED", { .i32=2 }};
590 /* Create the Enumerated type, and then the AVP */
591 CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
592 CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
593 CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
594 CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
595 CHECK_dict_new( DICT_AVP, &data, type, NULL);
596 };
597 /* Regional-Subscription-Zone-Code */
598 {
599 struct dict_avp_data data = {
600 1446, /* Code */
601 10415, /* Vendor */
602 "Regional-Subscription-Zone-Code", /* Name */
603 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
604 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
605 AVP_TYPE_OCTETSTRING /* base type of data */
606 };
607 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
608 };
609 /* RAND */
610 {
611 struct dict_avp_data data = {
612 1447, /* Code */
613 10415, /* Vendor */
614 "RAND", /* Name */
615 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
616 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
617 AVP_TYPE_OCTETSTRING /* base type of data */
618 };
619 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
620 };
621 /* XRES */
622 {
623 struct dict_avp_data data = {
624 1448, /* Code */
625 10415, /* Vendor */
626 "XRES", /* Name */
627 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
628 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
629 AVP_TYPE_OCTETSTRING /* base type of data */
630 };
631 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
632 };
633 /* AUTN */
634 {
635 struct dict_avp_data data = {
636 1449, /* Code */
637 10415, /* Vendor */
638 "AUTN", /* Name */
639 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
640 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
641 AVP_TYPE_OCTETSTRING /* base type of data */
642 };
643 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
644 };
645 /* KASME */
646 {
647 struct dict_avp_data data = {
648 1450, /* Code */
649 10415, /* Vendor */
650 "KASME", /* Name */
651 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
652 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
653 AVP_TYPE_OCTETSTRING /* base type of data */
654 };
655 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
656 };
657 /* Trace-Collection-Entity */
658 {
659 struct dict_avp_data data = {
660 1452, /* Code */
661 10415, /* Vendor */
662 "Trace-Collection-Entity", /* Name */
663 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
664 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
665 AVP_TYPE_OCTETSTRING /* base type of data */
666 };
667 CHECK_dict_new( DICT_AVP, &data, Address_type, NULL);
668 };
669 /* Kc */
670 {
671 struct dict_avp_data data = {
672 1453, /* Code */
673 10415, /* Vendor */
674 "Kc", /* Name */
675 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
676 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
677 AVP_TYPE_OCTETSTRING /* base type of data */
678 };
679 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
680 };
681 /* SRES */
682 {
683 struct dict_avp_data data = {
684 1454, /* Code */
685 10415, /* Vendor */
686 "SRES", /* Name */
687 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
688 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
689 AVP_TYPE_OCTETSTRING /* base type of data */
690 };
691 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
692 };
693 /* PDN-Type */
694 {
695 struct dict_avp_data data = {
696 1456, /* Code */
697 10415, /* Vendor */
698 "PDN-Type", /* Name */
699 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
700 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
701 AVP_TYPE_INTEGER32 /* base type of data */
702 };
703 struct dict_object *type;
704 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(PDN-Type)", NULL, NULL, NULL };
705 struct dict_enumval_data t_1 = { "IPv4", { .i32=0 }};
706 struct dict_enumval_data t_2 = { "IPv6", { .i32=1 }};
707 struct dict_enumval_data t_3 = { "IPv4v6", { .i32=2 }};
708 struct dict_enumval_data t_4 = { "IPv4_OR_IPv6", { .i32=3 }};
709 /* Create the Enumerated type, and then the AVP */
710 CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
711 CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
712 CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
713 CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
714 CHECK_dict_new( DICT_ENUMVAL, &t_4, type, NULL);
715 CHECK_dict_new( DICT_AVP, &data, type, NULL);
716 };
717 /* Roaming-Restricted-Due-To-Unsupported-Feature */
718 {
719 struct dict_avp_data data = {
720 1457, /* Code */
721 10415, /* Vendor */
722 "Roaming-Restricted-Due-To-Unsupported-Feature", /* Name */
723 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
724 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
725 AVP_TYPE_INTEGER32 /* base type of data */
726 };
727 struct dict_object *type;
728 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Roaming-Restricted-Due-To-Unsupported-Feature)", NULL, NULL, NULL };
729 struct dict_enumval_data t_1 = { "Roaming_Restricted_Due_To_Unsupported_Feature", { .i32=0 }};
730 /* Create the Enumerated type, and then the AVP */
731 CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
732 CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
733 CHECK_dict_new( DICT_AVP, &data, type, NULL);
734 };
735 /* Trace-Reference */
736 {
737 struct dict_avp_data data = {
738 1459, /* Code */
739 10415, /* Vendor */
740 "Trace-Reference", /* Name */
741 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
742 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
743 AVP_TYPE_OCTETSTRING /* base type of data */
744 };
745 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
746 };
747 /* Trace-Depth */
748 {
749 struct dict_avp_data data = {
750 1462, /* Code */
751 10415, /* Vendor */
752 "Trace-Depth", /* Name */
753 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
754 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
755 AVP_TYPE_INTEGER32 /* base type of data */
756 };
757 struct dict_object *type;
758 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Trace-Depth)", NULL, NULL, NULL };
759 struct dict_enumval_data t_1 = { "GPRS_Subscription_Data", { .i32=72 }};
760 struct dict_enumval_data t_2 = { "Complete_Data_List_Included_Indicator", { .i32=73 }};
761 /* Create the Enumerated type, and then the AVP */
762 CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
763 CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
764 CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
765 CHECK_dict_new( DICT_AVP, &data, type, NULL);
766 };
767 /* Trace-NE-Type-List */
768 {
769 struct dict_avp_data data = {
770 1463, /* Code */
771 10415, /* Vendor */
772 "Trace-NE-Type-List", /* Name */
773 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
774 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
775 AVP_TYPE_OCTETSTRING /* base type of data */
776 };
777 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
778 };
779 /* Trace-Interface-List */
780 {
781 struct dict_avp_data data = {
782 1464, /* Code */
783 10415, /* Vendor */
784 "Trace-Interface-List", /* Name */
785 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
786 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
787 AVP_TYPE_OCTETSTRING /* base type of data */
788 };
789 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
790 };
791 /* Trace-Event-List */
792 {
793 struct dict_avp_data data = {
794 1465, /* Code */
795 10415, /* Vendor */
796 "Trace-Event-List", /* Name */
797 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
798 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
799 AVP_TYPE_OCTETSTRING /* base type of data */
800 };
801 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
802 };
803 /* OMC-Id */
804 {
805 struct dict_avp_data data = {
806 1466, /* Code */
807 10415, /* Vendor */
808 "OMC-Id", /* Name */
809 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
810 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
811 AVP_TYPE_OCTETSTRING /* base type of data */
812 };
813 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
814 };
815 /* Complete-Data-List-Included-Indicator */
816 {
817 struct dict_avp_data data = {
818 1468, /* Code */
819 10415, /* Vendor */
820 "Complete-Data-List-Included-Indicator", /* Name */
821 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
822 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
823 AVP_TYPE_INTEGER32 /* base type of data */
824 };
825 struct dict_object *type;
826 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Complete-Data-List-Included-Indicator)", NULL, NULL, NULL };
827 struct dict_enumval_data t_1 = { "All_PDP_CONTEXTS_INCLUDED", { .i32=0 }};
828 struct dict_enumval_data t_2 = { "CONTEXTS_INCLUDED", { .i32=1 }};
829 /* Create the Enumerated type, and then the AVP */
830 CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
831 CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
832 CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
833 CHECK_dict_new( DICT_AVP, &data, type, NULL);
834 };
835 /* PDP-Type */
836 {
837 struct dict_avp_data data = {
838 1470, /* Code */
839 10415, /* Vendor */
840 "PDP-Type", /* Name */
841 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
842 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
843 AVP_TYPE_OCTETSTRING /* base type of data */
844 };
845 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
846 };
847 /* 3GPP2-MEID */
848 {
849 struct dict_avp_data data = {
850 1471, /* Code */
851 10415, /* Vendor */
852 "3GPP2-MEID", /* Name */
853 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
854 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
855 AVP_TYPE_OCTETSTRING /* base type of data */
856 };
857 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
858 };
859 /* GMLC-Number */
860 {
861 struct dict_avp_data data = {
862 1474, /* Code */
863 10415, /* Vendor */
864 "GMLC-Number", /* Name */
865 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
866 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
867 AVP_TYPE_OCTETSTRING /* base type of data */
868 };
869 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
870 };
871 /* SS-Code */
872 {
873 struct dict_avp_data data = {
874 1476, /* Code */
875 10415, /* Vendor */
876 "SS-Code", /* Name */
877 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
878 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
879 AVP_TYPE_OCTETSTRING /* base type of data */
880 };
881 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
882 };
883 /* SS-Status */
884 {
885 struct dict_avp_data data = {
886 1477, /* Code */
887 10415, /* Vendor */
888 "SS-Status", /* Name */
889 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
890 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
891 AVP_TYPE_OCTETSTRING /* base type of data */
892 };
893 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
894 };
895 /* Notification-To-UE-User */
896 {
897 struct dict_avp_data data = {
898 1478, /* Code */
899 10415, /* Vendor */
900 "Notification-To-UE-User", /* Name */
901 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
902 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
903 AVP_TYPE_INTEGER32 /* base type of data */
904 };
905 struct dict_object *type;
906 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Notification-To-UE-User)", NULL, NULL, NULL };
907 struct dict_enumval_data t_1 = { "NOTIFY_LOCATION_ALLOWED", { .i32=0 }};
908 struct dict_enumval_data t_2 = { "NOTIFYANDVERIFY_LOCATION_ALLOWED_IF_NO_RESPONSE", { .i32=1 }};
909 struct dict_enumval_data t_3 = { "NOTIFYANDVERIFY_LOCATION_NOT_ALLOWED_IF_NO_RESPONSE", { .i32=2 }};
910 struct dict_enumval_data t_4 = { "LOCATION_NOT_ALLOWED", { .i32=3 }};
911 /* Create the Enumerated type, and then the AVP */
912 CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
913 CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
914 CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
915 CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
916 CHECK_dict_new( DICT_ENUMVAL, &t_4, type, NULL);
917 CHECK_dict_new( DICT_AVP, &data, type, NULL);
918 };
919 /* Client-Identity */
920 {
921 struct dict_avp_data data = {
922 1480, /* Code */
923 10415, /* Vendor */
924 "Client-Identity", /* Name */
925 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
926 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
927 AVP_TYPE_OCTETSTRING /* base type of data */
928 };
929 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
930 };
931 /* GMLC-Restriction */
932 {
933 struct dict_avp_data data = {
934 1481, /* Code */
935 10415, /* Vendor */
936 "GMLC-Restriction", /* Name */
937 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
938 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
939 AVP_TYPE_INTEGER32 /* base type of data */
940 };
941 struct dict_object *type;
942 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(GMLC-Restriction)", NULL, NULL, NULL };
943 struct dict_enumval_data t_1 = { "GMLC_LIST", { .i32=0 }};
944 struct dict_enumval_data t_2 = { "HOME_COUNTRY", { .i32=1 }};
945 /* Create the Enumerated type, and then the AVP */
946 CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
947 CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
948 CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
949 CHECK_dict_new( DICT_AVP, &data, type, NULL);
950 };
951 /* PLMN-Client */
952 {
953 struct dict_avp_data data = {
954 1482, /* Code */
955 10415, /* Vendor */
956 "PLMN-Client", /* Name */
957 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
958 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
959 AVP_TYPE_INTEGER32 /* base type of data */
960 };
961 struct dict_object *type;
962 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(PLMN-Client)", NULL, NULL, NULL };
963 struct dict_enumval_data t_1 = { "BROADCAST_SERVICE", { .i32=0 }};
964 struct dict_enumval_data t_2 = { "O_AND_M_HPLMN", { .i32=1 }};
965 struct dict_enumval_data t_3 = { "O_AND_M_VPLMN", { .i32=2 }};
966 struct dict_enumval_data t_4 = { "ANONYMOUS_LOCATION", { .i32=3 }};
967 struct dict_enumval_data t_5 = { "TARGET_UE_SUBSCRIBED_SERVICE", { .i32=4 }};
968 /* Create the Enumerated type, and then the AVP */
969 CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
970 CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
971 CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
972 CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
973 CHECK_dict_new( DICT_ENUMVAL, &t_4, type, NULL);
974 CHECK_dict_new( DICT_ENUMVAL, &t_5, type, NULL);
975 CHECK_dict_new( DICT_AVP, &data, type, NULL);
976 };
977 /* ServiceTypeIdentity */
978 {
979 struct dict_avp_data data = {
980 1484, /* Code */
981 10415, /* Vendor */
982 "ServiceTypeIdentity", /* Name */
983 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
984 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
985 AVP_TYPE_UNSIGNED32 /* base type of data */
986 };
987 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
988 };
989 /* TS-Code */
990 {
991 struct dict_avp_data data = {
992 1487, /* Code */
993 10415, /* Vendor */
994 "TS-Code", /* Name */
995 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
996 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
997 AVP_TYPE_OCTETSTRING /* base type of data */
998 };
999 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
1000 };
1001 /* SGSN-Number */
1002 {
1003 struct dict_avp_data data = {
1004 1489, /* Code */
1005 10415, /* Vendor */
1006 "SGSN-Number", /* Name */
1007 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1008 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
1009 AVP_TYPE_OCTETSTRING /* base type of data */
1010 };
1011 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
1012 };
1013 /* IDR-Flags */
1014 {
1015 struct dict_avp_data data = {
1016 1490, /* Code */
1017 10415, /* Vendor */
1018 "IDR-Flags", /* Name */
1019 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1020 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
1021 AVP_TYPE_UNSIGNED32 /* base type of data */
1022 };
1023 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
1024 };
1025 /* ICS-Indicator */
1026 {
1027 struct dict_avp_data data = {
1028 1491, /* Code */
1029 10415, /* Vendor */
1030 "ICS-Indicator", /* Name */
1031 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1032 AVP_FLAG_VENDOR, /* Fixed flag values */
1033 AVP_TYPE_INTEGER32 /* base type of data */
1034 };
1035 struct dict_object *type;
1036 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(ICS-Indicator)", NULL, NULL, NULL };
1037 struct dict_enumval_data t_1 = { "FALSE", { .i32=0 }};
1038 struct dict_enumval_data t_2 = { "TRUE", { .i32=1 }};
1039 /* Create the Enumerated type, and then the AVP */
1040 CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
1041 CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
1042 CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
1043 CHECK_dict_new( DICT_AVP, &data, type, NULL);
1044 };
1045 /* IMS-Voice-Over-PS-Sessions-Supported */
1046 {
1047 struct dict_avp_data data = {
1048 1492, /* Code */
1049 10415, /* Vendor */
1050 "IMS-Voice-Over-PS-Sessions-Supported", /* Name */
1051 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1052 AVP_FLAG_VENDOR, /* Fixed flag values */
1053 AVP_TYPE_INTEGER32 /* base type of data */
1054 };
1055 struct dict_object *type;
1056 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(IMS-Voice-Over-PS-Sessions-Supported)", NULL, NULL, NULL };
1057 struct dict_enumval_data t_1 = { "NOT_SUPPORTED", { .i32=0 }};
1058 struct dict_enumval_data t_2 = { "SUPPORTED", { .i32=1 }};
1059 /* Create the Enumerated type, and then the AVP */
1060 CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
1061 CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
1062 CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
1063 CHECK_dict_new( DICT_AVP, &data, type, NULL);
1064 };
1065 /* Homogeneous-Support-of-IMS-Voice-Over-PS-Sessions */
1066 {
1067 struct dict_avp_data data = {
1068 1493, /* Code */
1069 10415, /* Vendor */
1070 "Homogeneous-Support-of-IMS-Voice-Over-PS-Sessions", /* Name */
1071 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1072 AVP_FLAG_VENDOR, /* Fixed flag values */
1073 AVP_TYPE_INTEGER32 /* base type of data */
1074 };
1075 struct dict_object *type;
1076 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Homogeneous-Support-of-IMS-Voice-Over-PS-Sessions)", NULL, NULL, NULL };
1077 struct dict_enumval_data t_1 = { "NOT_SUPPORTED", { .i32=0 }};
1078 struct dict_enumval_data t_2 = { "SUPPORTED", { .i32=1 }};
1079 /* Create the Enumerated type, and then the AVP */
1080 CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
1081 CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
1082 CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
1083 CHECK_dict_new( DICT_AVP, &data, type, NULL);
1084 };
1085 /* Last-UE-Activity-Time */
1086 {
1087 struct dict_avp_data data = {
1088 1494, /* Code */
1089 10415, /* Vendor */
1090 "Last-UE-Activity-Time", /* Name */
1091 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1092 AVP_FLAG_VENDOR, /* Fixed flag values */
1093 AVP_TYPE_OCTETSTRING /* base type of data */
1094 };
1095 CHECK_dict_new( DICT_AVP, &data, Time_type, NULL);
1096 };
1097 /* User-State */
1098 {
1099 struct dict_avp_data data = {
1100 1499, /* Code */
1101 10415, /* Vendor */
1102 "User-State", /* Name */
1103 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1104 AVP_FLAG_VENDOR, /* Fixed flag values */
1105 AVP_TYPE_INTEGER32 /* base type of data */
1106 };
1107 struct dict_object *type;
1108 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(User-State)", NULL, NULL, NULL };
1109 struct dict_enumval_data t_1 = { "DETACHED", { .i32=0 }};
1110 struct dict_enumval_data t_2 = { "ATTACHED_NOT_REACHABLE_FOR_PAGING", { .i32=1 }};
1111 struct dict_enumval_data t_3 = { "ATTACHED_REACHABLE_FOR_PAGING", { .i32=2 }};
1112 struct dict_enumval_data t_4 = { "CONNECTED_NOT_REACHABLE_FOR_PAGING", { .i32=3 }};
1113 struct dict_enumval_data t_5 = { "CONNECTED_REACHABLE_FOR_PAGING", { .i32=4 }};
1114 struct dict_enumval_data t_6 = { "RESERVED", { .i32=5 }};
1115 /* Create the Enumerated type, and then the AVP */
1116 CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
1117 CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
1118 CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
1119 CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
1120 CHECK_dict_new( DICT_ENUMVAL, &t_4, type, NULL);
1121 CHECK_dict_new( DICT_ENUMVAL, &t_5, type, NULL);
1122 CHECK_dict_new( DICT_ENUMVAL, &t_6, type, NULL);
1123 CHECK_dict_new( DICT_AVP, &data, type, NULL);
1124 };
1125 /* E-UTRAN-Cell-Global-Identity */
1126 {
1127 struct dict_avp_data data = {
1128 1602, /* Code */
1129 10415, /* Vendor */
1130 "E-UTRAN-Cell-Global-Identity", /* Name */
1131 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1132 AVP_FLAG_VENDOR, /* Fixed flag values */
1133 AVP_TYPE_OCTETSTRING /* base type of data */
1134 };
1135 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
1136 };
1137 /* Tracking-Area-Identity */
1138 {
1139 struct dict_avp_data data = {
1140 1603, /* Code */
1141 10415, /* Vendor */
1142 "Tracking-Area-Identity", /* Name */
1143 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1144 AVP_FLAG_VENDOR, /* Fixed flag values */
1145 AVP_TYPE_OCTETSTRING /* base type of data */
1146 };
1147 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
1148 };
1149 /* Cell-Global-Identity */
1150 {
1151 struct dict_avp_data data = {
1152 1604, /* Code */
1153 10415, /* Vendor */
1154 "Cell-Global-Identity", /* Name */
1155 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1156 AVP_FLAG_VENDOR, /* Fixed flag values */
1157 AVP_TYPE_OCTETSTRING /* base type of data */
1158 };
1159 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
1160 };
1161 /* Routing-Area-Identity */
1162 {
1163 struct dict_avp_data data = {
1164 1605, /* Code */
1165 10415, /* Vendor */
1166 "Routing-Area-Identity", /* Name */
1167 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1168 AVP_FLAG_VENDOR, /* Fixed flag values */
1169 AVP_TYPE_OCTETSTRING /* base type of data */
1170 };
1171 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
1172 };
1173 /* Location-Area-Identity */
1174 {
1175 struct dict_avp_data data = {
1176 1606, /* Code */
1177 10415, /* Vendor */
1178 "Location-Area-Identity", /* Name */
1179 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1180 AVP_FLAG_VENDOR, /* Fixed flag values */
1181 AVP_TYPE_OCTETSTRING /* base type of data */
1182 };
1183 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
1184 };
1185 /* Service-Area-Identity */
1186 {
1187 struct dict_avp_data data = {
1188 1607, /* Code */
1189 10415, /* Vendor */
1190 "Service-Area-Identity", /* Name */
1191 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1192 AVP_FLAG_VENDOR, /* Fixed flag values */
1193 AVP_TYPE_OCTETSTRING /* base type of data */
1194 };
1195 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
1196 };
1197 /* Geographical-Information */
1198 {
1199 struct dict_avp_data data = {
1200 1608, /* Code */
1201 10415, /* Vendor */
1202 "Geographical-Information", /* Name */
1203 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1204 AVP_FLAG_VENDOR, /* Fixed flag values */
1205 AVP_TYPE_OCTETSTRING /* base type of data */
1206 };
1207 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
1208 };
1209 /* Geodetic-Information */
1210 {
1211 struct dict_avp_data data = {
1212 1609, /* Code */
1213 10415, /* Vendor */
1214 "Geodetic-Information", /* Name */
1215 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1216 AVP_FLAG_VENDOR, /* Fixed flag values */
1217 AVP_TYPE_OCTETSTRING /* base type of data */
1218 };
1219 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
1220 };
1221 /* Current-Location-Retrieved */
1222 {
1223 struct dict_avp_data data = {
1224 1610, /* Code */
1225 10415, /* Vendor */
1226 "Current-Location-Retrieved", /* Name */
1227 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1228 AVP_FLAG_VENDOR, /* Fixed flag values */
1229 AVP_TYPE_INTEGER32 /* base type of data */
1230 };
1231 struct dict_object *type;
1232 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Current-Location-Retrieved)", NULL, NULL, NULL };
1233 struct dict_enumval_data t_1 = { "ACTIVE_LOCATION_RETRIEVAL", { .i32=0 }};
1234 /* Create the Enumerated type, and then the AVP */
1235 CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
1236 CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
1237 CHECK_dict_new( DICT_AVP, &data, type, NULL);
1238 };
1239 /* Age-Of-Location-Information */
1240 {
1241 struct dict_avp_data data = {
1242 1611, /* Code */
1243 10415, /* Vendor */
1244 "Age-Of-Location-Information", /* Name */
1245 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1246 AVP_FLAG_VENDOR, /* Fixed flag values */
1247 AVP_TYPE_UNSIGNED32 /* base type of data */
1248 };
1249 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
1250 };
1251 /* Error-Diagnostic */
1252 {
1253 struct dict_avp_data data = {
1254 1614, /* Code */
1255 10415, /* Vendor */
1256 "Error-Diagnostic", /* Name */
1257 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1258 AVP_FLAG_VENDOR, /* Fixed flag values */
1259 AVP_TYPE_INTEGER32 /* base type of data */
1260 };
1261 struct dict_object *type;
1262 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Error-Diagnostic)", NULL, NULL, NULL };
1263 struct dict_enumval_data t_1 = { "GPRS_DATA_SUBSCRIBED", { .i32=0 }};
1264 struct dict_enumval_data t_2 = { "NO_GPRS_DATA_SUBSCRIBED", { .i32=1 }};
1265 struct dict_enumval_data t_3 = { "ODB_ALL_APN", { .i32=2 }};
1266 struct dict_enumval_data t_4 = { "ODB_HPLMN_APN", { .i32=3 }};
1267 struct dict_enumval_data t_5 = { "ODB_VPLMN_APN", { .i32=4 }};
1268 /* Create the Enumerated type, and then the AVP */
1269 CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
1270 CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
1271 CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
1272 CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
1273 CHECK_dict_new( DICT_ENUMVAL, &t_4, type, NULL);
1274 CHECK_dict_new( DICT_ENUMVAL, &t_5, type, NULL);
1275 CHECK_dict_new( DICT_AVP, &data, type, NULL);
1276 };
1277 /* Ext-PDP-Address */
1278 {
1279 struct dict_avp_data data = {
1280 1621, /* Code */
1281 10415, /* Vendor */
1282 "Ext-PDP-Address", /* Name */
1283 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1284 AVP_FLAG_VENDOR, /* Fixed flag values */
1285 AVP_TYPE_OCTETSTRING /* base type of data */
1286 };
1287 CHECK_dict_new( DICT_AVP, &data, Address_type, NULL);
1288 };
1289 /* UE-SRVCC-Capability */
1290 {
1291 struct dict_avp_data data = {
1292 1615, /* Code */
1293 10415, /* Vendor */
1294 "UE-SRVCC-Capability", /* Name */
1295 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1296 AVP_FLAG_VENDOR, /* Fixed flag values */
1297 AVP_TYPE_INTEGER32 /* base type of data */
1298 };
1299 struct dict_object *type;
1300 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(UE-SRVCC-Capability)", NULL, NULL, NULL };
1301 struct dict_enumval_data t_1 = { "UE_SRVCC_NOT_SUPPORTED", { .i32=0 }};
1302 struct dict_enumval_data t_2 = { "UE_SRVCC_SUPPORTED", { .i32=1 }};
1303 /* Create the Enumerated type, and then the AVP */
1304 CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
1305 CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
1306 CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
1307 CHECK_dict_new( DICT_AVP, &data, type, NULL);
1308 };
1309 /* MPS-Priority */
1310 {
1311 struct dict_avp_data data = {
1312 1616, /* Code */
1313 10415, /* Vendor */
1314 "MPS-Priority", /* Name */
1315 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1316 AVP_FLAG_VENDOR, /* Fixed flag values */
1317 AVP_TYPE_UNSIGNED32 /* base type of data */
1318 };
1319 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
1320 };
1321 /* VPLMN-LIPA-Allowed */
1322 {
1323 struct dict_avp_data data = {
1324 1617, /* Code */
1325 10415, /* Vendor */
1326 "VPLMN-LIPA-Allowed", /* Name */
1327 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1328 AVP_FLAG_VENDOR, /* Fixed flag values */
1329 AVP_TYPE_INTEGER32 /* base type of data */
1330 };
1331 struct dict_object *type;
1332 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(VPLMN-LIPA-Allowed)", NULL, NULL, NULL };
1333 struct dict_enumval_data t_1 = { "LIPA_NOTALLOWED", { .i32=0 }};
1334 struct dict_enumval_data t_2 = { "LIPA_ALLOWED", { .i32=1 }};
1335 /* Create the Enumerated type, and then the AVP */
1336 CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
1337 CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
1338 CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
1339 CHECK_dict_new( DICT_AVP, &data, type, NULL);
1340 };
1341 /* LIPA-Permission */
1342 {
1343 struct dict_avp_data data = {
1344 1618, /* Code */
1345 10415, /* Vendor */
1346 "LIPA-Permission", /* Name */
1347 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1348 AVP_FLAG_VENDOR, /* Fixed flag values */
1349 AVP_TYPE_INTEGER32 /* base type of data */
1350 };
1351 struct dict_object *type;
1352 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(LIPA-Permission)", NULL, NULL, NULL };
1353 struct dict_enumval_data t_1 = { "LIPA_PROHIBITED", { .i32=0 }};
1354 struct dict_enumval_data t_2 = { "LIPA_ONLY", { .i32=1 }};
1355 struct dict_enumval_data t_3 = { "LIPA_CONDITIONAL", { .i32=2 }};
1356 /* Create the Enumerated type, and then the AVP */
1357 CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
1358 CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
1359 CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
1360 CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
1361 CHECK_dict_new( DICT_AVP, &data, type, NULL);
1362 };
1363 /* Subscribed-Periodic-RAU-TAU-Timer */
1364 {
1365 struct dict_avp_data data = {
1366 1619, /* Code */
1367 10415, /* Vendor */
1368 "Subscribed-Periodic-RAU-TAU-Timer", /* Name */
1369 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1370 AVP_FLAG_VENDOR, /* Fixed flag values */
1371 AVP_TYPE_UNSIGNED32 /* base type of data */
1372 };
1373 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
1374 };
1375 /* Ext-PDP-Type */
1376 {
1377 struct dict_avp_data data = {
1378 1620, /* Code */
1379 10415, /* Vendor */
1380 "Ext-PDP-Type", /* Name */
1381 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1382 AVP_FLAG_VENDOR, /* Fixed flag values */
1383 AVP_TYPE_OCTETSTRING /* base type of data */
1384 };
1385 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
1386 };
1387 /* SIPTO-Permission */
1388 {
1389 struct dict_avp_data data = {
1390 1613, /* Code */
1391 10415, /* Vendor */
1392 "SIPTO-Permission", /* Name */
1393 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1394 AVP_FLAG_VENDOR, /* Fixed flag values */
1395 AVP_TYPE_INTEGER32 /* base type of data */
1396 };
1397 struct dict_object *type;
1398 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(SIPTO-Permission)", NULL, NULL, NULL };
1399 struct dict_enumval_data t_1 = { "ALLOWED", { .i32=0 }};
1400 struct dict_enumval_data t_2 = { "NOTALLOWED", { .i32=1 }};
1401 /* Create the Enumerated type, and then the AVP */
1402 CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
1403 CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
1404 CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
1405 CHECK_dict_new( DICT_AVP, &data, type, NULL);
1406 };
1407 /* Job-Type */
1408 {
1409 struct dict_avp_data data = {
1410 1623, /* Code */
1411 10415, /* Vendor */
1412 "Job-Type", /* Name */
1413 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1414 AVP_FLAG_VENDOR, /* Fixed flag values */
1415 AVP_TYPE_INTEGER32 /* base type of data */
1416 };
1417 struct dict_object *type;
1418 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Job-Type)", NULL, NULL, NULL };
1419 struct dict_enumval_data t_1 = { "Area_Scope", { .i32=138 }};
1420 struct dict_enumval_data t_2 = { "List_Of_Measurements", { .i32=139 }};
1421 struct dict_enumval_data t_3 = { "Reporting_Trigger", { .i32=140 }};
1422 struct dict_enumval_data t_4 = { "Report_Interval", { .i32=141 }};
1423 /* Create the Enumerated type, and then the AVP */
1424 CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
1425 CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
1426 CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
1427 CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
1428 CHECK_dict_new( DICT_ENUMVAL, &t_4, type, NULL);
1429 CHECK_dict_new( DICT_AVP, &data, type, NULL);
1430 };
1431 /* List-Of-Measurements */
1432 {
1433 struct dict_avp_data data = {
1434 1625, /* Code */
1435 10415, /* Vendor */
1436 "List-Of-Measurements", /* Name */
1437 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1438 AVP_FLAG_VENDOR, /* Fixed flag values */
1439 AVP_TYPE_UNSIGNED32 /* base type of data */
1440 };
1441 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
1442 };
1443 /* Reporting-Trigger */
1444 {
1445 struct dict_avp_data data = {
1446 1626, /* Code */
1447 10415, /* Vendor */
1448 "Reporting-Trigger", /* Name */
1449 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1450 AVP_FLAG_VENDOR, /* Fixed flag values */
1451 AVP_TYPE_UNSIGNED32 /* base type of data */
1452 };
1453 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
1454 };
1455 /* Report-Interval */
1456 {
1457 struct dict_avp_data data = {
1458 1627, /* Code */
1459 10415, /* Vendor */
1460 "Report-Interval", /* Name */
1461 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1462 AVP_FLAG_VENDOR, /* Fixed flag values */
1463 AVP_TYPE_INTEGER32 /* base type of data */
1464 };
1465 struct dict_object *type;
1466 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Report-Interval)", NULL, NULL, NULL };
1467 struct dict_enumval_data t_1 = { "Report_Amount", { .i32=142 }};
1468 /* Create the Enumerated type, and then the AVP */
1469 CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
1470 CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
1471 CHECK_dict_new( DICT_AVP, &data, type, NULL);
1472 };
1473 /* Report-Amount */
1474 {
1475 struct dict_avp_data data = {
1476 1628, /* Code */
1477 10415, /* Vendor */
1478 "Report-Amount", /* Name */
1479 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1480 AVP_FLAG_VENDOR, /* Fixed flag values */
1481 AVP_TYPE_INTEGER32 /* base type of data */
1482 };
1483 struct dict_object *type;
1484 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Report-Amount)", NULL, NULL, NULL };
1485 struct dict_enumval_data t_1 = { "Event_Threshold_RSRP", { .i32=143 }};
1486 struct dict_enumval_data t_2 = { "Event_Threshold_RSRQ", { .i32=144 }};
1487 struct dict_enumval_data t_3 = { "Logging_Interval", { .i32=145 }};
1488 /* Create the Enumerated type, and then the AVP */
1489 CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
1490 CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
1491 CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
1492 CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
1493 CHECK_dict_new( DICT_AVP, &data, type, NULL);
1494 };
1495 /* Event-Threshold-RSRP */
1496 {
1497 struct dict_avp_data data = {
1498 1629, /* Code */
1499 10415, /* Vendor */
1500 "Event-Threshold-RSRP", /* Name */
1501 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1502 AVP_FLAG_VENDOR, /* Fixed flag values */
1503 AVP_TYPE_UNSIGNED32 /* base type of data */
1504 };
1505 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
1506 };
1507 /* Event-Threshold-RSRQ */
1508 {
1509 struct dict_avp_data data = {
1510 1630, /* Code */
1511 10415, /* Vendor */
1512 "Event-Threshold-RSRQ", /* Name */
1513 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1514 AVP_FLAG_VENDOR, /* Fixed flag values */
1515 AVP_TYPE_UNSIGNED32 /* base type of data */
1516 };
1517 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
1518 };
1519 /* Logging-Interval */
1520 {
1521 struct dict_avp_data data = {
1522 1631, /* Code */
1523 10415, /* Vendor */
1524 "Logging-Interval", /* Name */
1525 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1526 AVP_FLAG_VENDOR, /* Fixed flag values */
1527 AVP_TYPE_INTEGER32 /* base type of data */
1528 };
1529 struct dict_object *type;
1530 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Logging-Interval)", NULL, NULL, NULL };
1531 struct dict_enumval_data t_1 = { "Logging_Duration", { .i32=146 }};
1532 /* Create the Enumerated type, and then the AVP */
1533 CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
1534 CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
1535 CHECK_dict_new( DICT_AVP, &data, type, NULL);
1536 };
1537 /* Logging-Duration */
1538 {
1539 struct dict_avp_data data = {
1540 1632, /* Code */
1541 10415, /* Vendor */
1542 "Logging-Duration", /* Name */
1543 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1544 AVP_FLAG_VENDOR, /* Fixed flag values */
1545 AVP_TYPE_INTEGER32 /* base type of data */
1546 };
1547 struct dict_object *type;
1548 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Logging-Duration)", NULL, NULL, NULL };
1549 struct dict_enumval_data t_1 = { "Relay_Node_Indicator", { .i32=147 }};
1550 /* Create the Enumerated type, and then the AVP */
1551 CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
1552 CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
1553 CHECK_dict_new( DICT_AVP, &data, type, NULL);
1554 };
1555 /* Relay-Node-Indicator */
1556 {
1557 struct dict_avp_data data = {
1558 1633, /* Code */
1559 10415, /* Vendor */
1560 "Relay-Node-Indicator", /* Name */
1561 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1562 AVP_FLAG_VENDOR, /* Fixed flag values */
1563 AVP_TYPE_INTEGER32 /* base type of data */
1564 };
1565 struct dict_object *type;
1566 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Relay-Node-Indicator)", NULL, NULL, NULL };
1567 struct dict_enumval_data t_1 = { "NOT_RELAY_NODE", { .i32=0 }};
1568 struct dict_enumval_data t_2 = { "RELAY_NODE", { .i32=1 }};
1569 /* Create the Enumerated type, and then the AVP */
1570 CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
1571 CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
1572 CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
1573 CHECK_dict_new( DICT_AVP, &data, type, NULL);
1574 };
1575 /* MDT-User-Consent */
1576 {
1577 struct dict_avp_data data = {
1578 1634, /* Code */
1579 10415, /* Vendor */
1580 "MDT-User-Consent", /* Name */
1581 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1582 AVP_FLAG_VENDOR, /* Fixed flag values */
1583 AVP_TYPE_INTEGER32 /* base type of data */
1584 };
1585 struct dict_object *type;
1586 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(MDT-User-Consent)", NULL, NULL, NULL };
1587 struct dict_enumval_data t_1 = { "CONSENT_NOT_GIVEN", { .i32=0 }};
1588 struct dict_enumval_data t_2 = { "CONSENT_GIVEN", { .i32=1 }};
1589 /* Create the Enumerated type, and then the AVP */
1590 CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
1591 CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
1592 CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
1593 CHECK_dict_new( DICT_AVP, &data, type, NULL);
1594 };
1595 /* PUR-Flags */
1596 {
1597 struct dict_avp_data data = {
1598 1635, /* Code */
1599 10415, /* Vendor */
1600 "PUR-Flags", /* Name */
1601 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1602 AVP_FLAG_VENDOR, /* Fixed flag values */
1603 AVP_TYPE_UNSIGNED32 /* base type of data */
1604 };
1605 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
1606 };
1607 /* Subscribed-VSRVCC */
1608 {
1609 struct dict_avp_data data = {
1610 1636, /* Code */
1611 10415, /* Vendor */
1612 "Subscribed-VSRVCC", /* Name */
1613 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1614 AVP_FLAG_VENDOR, /* Fixed flag values */
1615 AVP_TYPE_INTEGER32 /* base type of data */
1616 };
1617 struct dict_object *type;
1618 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Subscribed-VSRVCC)", NULL, NULL, NULL };
1619 struct dict_enumval_data t_1 = { "VSRVCC_SUBSCRIBED", { .i32=0 }};
1620 /* Create the Enumerated type, and then the AVP */
1621 CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
1622 CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
1623 CHECK_dict_new( DICT_AVP, &data, type, NULL);
1624 };
1625 /* CLR-Flags */
1626 {
1627 struct dict_avp_data data = {
1628 1638, /* Code */
1629 10415, /* Vendor */
1630 "CLR-Flags", /* Name */
1631 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1632 AVP_FLAG_VENDOR, /* Fixed flag values */
1633 AVP_TYPE_UNSIGNED32 /* base type of data */
1634 };
1635 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
1636 };
1637 /* UVR-Flags */
1638 {
1639 struct dict_avp_data data = {
1640 1639, /* Code */
1641 10415, /* Vendor */
1642 "UVR-Flags", /* Name */
1643 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1644 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
1645 AVP_TYPE_UNSIGNED32 /* base type of data */
1646 };
1647 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
1648 };
1649 /* UVA-Flags */
1650 {
1651 struct dict_avp_data data = {
1652 1640, /* Code */
1653 10415, /* Vendor */
1654 "UVA-Flags", /* Name */
1655 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1656 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
1657 AVP_TYPE_UNSIGNED32 /* base type of data */
1658 };
1659 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
1660 };
1661 /* Time-Zone */
1662 {
1663 struct dict_avp_data data = {
1664 1642, /* Code */
1665 10415, /* Vendor */
1666 "Time-Zone", /* Name */
1667 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1668 AVP_FLAG_VENDOR, /* Fixed flag values */
1669 AVP_TYPE_OCTETSTRING /* base type of data */
1670 };
1671 CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
1672 };
1673 /* A-MSISDN */
1674 {
1675 struct dict_avp_data data = {
1676 1643, /* Code */
1677 10415, /* Vendor */
1678 "A-MSISDN", /* Name */
1679 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1680 AVP_FLAG_VENDOR, /* Fixed flag values */
1681 AVP_TYPE_OCTETSTRING /* base type of data */
1682 };
1683 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
1684 };
1685 /* MME-Number-for-MT-SMS */
1686 {
1687 struct dict_avp_data data = {
1688 1645, /* Code */
1689 10415, /* Vendor */
1690 "MME-Number-for-MT-SMS", /* Name */
1691 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1692 AVP_FLAG_VENDOR, /* Fixed flag values */
1693 AVP_TYPE_OCTETSTRING /* base type of data */
1694 };
1695 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
1696 };
1697 /* SMS-Register-Request */
1698 {
1699 struct dict_avp_data data = {
1700 1648, /* Code */
1701 10415, /* Vendor */
1702 "SMS-Register-Request", /* Name */
1703 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1704 AVP_FLAG_VENDOR, /* Fixed flag values */
1705 AVP_TYPE_INTEGER32 /* base type of data */
1706 };
1707 struct dict_object *type;
1708 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(SMS-Register-Request)", NULL, NULL, NULL };
1709 struct dict_enumval_data t_1 = { "SMS_REGISTRATION_REQUIRED", { .i32=0 }};
1710 struct dict_enumval_data t_2 = { "SMS_REGISTRATION_NOT_PREFERRED", { .i32=1 }};
1711 struct dict_enumval_data t_3 = { "NO_PREFERENCE", { .i32=2 }};
1712 /* Create the Enumerated type, and then the AVP */
1713 CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
1714 CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
1715 CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
1716 CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
1717 CHECK_dict_new( DICT_AVP, &data, type, NULL);
1718 };
1719 /* Daylight-Saving-Time */
1720 {
1721 struct dict_avp_data data = {
1722 1650, /* Code */
1723 10415, /* Vendor */
1724 "Daylight-Saving-Time", /* Name */
1725 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1726 AVP_FLAG_VENDOR, /* Fixed flag values */
1727 AVP_TYPE_INTEGER32 /* base type of data */
1728 };
1729 struct dict_object *type;
1730 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Daylight-Saving-Time)", NULL, NULL, NULL };
1731 struct dict_enumval_data t_1 = { "NO_ADJUSTMENT", { .i32=0 }};
1732 struct dict_enumval_data t_2 = { "PLUS_ONE_HOUR_ADJUSTMENT", { .i32=1 }};
1733 struct dict_enumval_data t_3 = { "PLUS_TWO_HOURS_ADJUSTMENT", { .i32=2 }};
1734 /* Create the Enumerated type, and then the AVP */
1735 CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
1736 CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
1737 CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
1738 CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
1739 CHECK_dict_new( DICT_AVP, &data, type, NULL);
1740 };
1741 /* Subscription-Data-Flags */
1742 {
1743 struct dict_avp_data data = {
1744 1654, /* Code */
1745 10415, /* Vendor */
1746 "Subscription-Data-Flags", /* Name */
1747 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1748 AVP_FLAG_VENDOR, /* Fixed flag values */
1749 AVP_TYPE_UNSIGNED32 /* base type of data */
1750 };
1751 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
1752 };
1753 /* Measurement-Period-LTE */
1754 {
1755 struct dict_avp_data data = {
1756 1655, /* Code */
1757 10415, /* Vendor */
1758 "Measurement-Period-LTE", /* Name */
1759 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1760 AVP_FLAG_VENDOR, /* Fixed flag values */
1761 AVP_TYPE_INTEGER32 /* base type of data */
1762 };
1763 struct dict_object *type;
1764 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Measurement-Period-LTE)", NULL, NULL, NULL };
1765 struct dict_enumval_data t_1 = { "Measurement_Period_UMTS", { .i32=167 }};
1766 /* Create the Enumerated type, and then the AVP */
1767 CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
1768 CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
1769 CHECK_dict_new( DICT_AVP, &data, type, NULL);
1770 };
1771 /* Measurement-Period-UMTS */
1772 {
1773 struct dict_avp_data data = {
1774 1656, /* Code */
1775 10415, /* Vendor */
1776 "Measurement-Period-UMTS", /* Name */
1777 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1778 AVP_FLAG_VENDOR, /* Fixed flag values */
1779 AVP_TYPE_INTEGER32 /* base type of data */
1780 };
1781 struct dict_object *type;
1782 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Measurement-Period-UMTS)", NULL, NULL, NULL };
1783 struct dict_enumval_data t_1 = { "Collection_Period_RRM_LTE", { .i32=168 }};
1784 /* Create the Enumerated type, and then the AVP */
1785 CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
1786 CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
1787 CHECK_dict_new( DICT_AVP, &data, type, NULL);
1788 };
1789 /* Collection-Period-RRM-LTE */
1790 {
1791 struct dict_avp_data data = {
1792 1657, /* Code */
1793 10415, /* Vendor */
1794 "Collection-Period-RRM-LTE", /* Name */
1795 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1796 AVP_FLAG_VENDOR, /* Fixed flag values */
1797 AVP_TYPE_INTEGER32 /* base type of data */
1798 };
1799 struct dict_object *type;
1800 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Collection-Period-RRM-LTE)", NULL, NULL, NULL };
1801 struct dict_enumval_data t_1 = { "Collection_Period_RRM_UMTS", { .i32=169 }};
1802 /* Create the Enumerated type, and then the AVP */
1803 CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
1804 CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
1805 CHECK_dict_new( DICT_AVP, &data, type, NULL);
1806 };
1807 /* Collection-Period-RRM-UMTS */
1808 {
1809 struct dict_avp_data data = {
1810 1658, /* Code */
1811 10415, /* Vendor */
1812 "Collection-Period-RRM-UMTS", /* Name */
1813 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1814 AVP_FLAG_VENDOR, /* Fixed flag values */
1815 AVP_TYPE_INTEGER32 /* base type of data */
1816 };
1817 struct dict_object *type;
1818 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Collection-Period-RRM-UMTS)", NULL, NULL, NULL };
1819 struct dict_enumval_data t_1 = { "Positioning_Method", { .i32=170 }};
1820 struct dict_enumval_data t_2 = { "Measurement_Quantity", { .i32=171 }};
1821 struct dict_enumval_data t_3 = { "Event_Threshold_Event_1F", { .i32=172 }};
1822 struct dict_enumval_data t_4 = { "Event_Threshold_Event_1I", { .i32=173 }};
1823 struct dict_enumval_data t_5 = { "Restoration_Priority", { .i32=174 }};
1824 struct dict_enumval_data t_6 = { "SGs_MME_Identity", { .i32=175 }};
1825 struct dict_enumval_data t_7 = { "SIPTO_Local_Network_Permission", { .i32=176 }};
1826 struct dict_enumval_data t_8 = { "Coupled_Node_Diameter_ID", { .i32=177 }};
1827 struct dict_enumval_data t_9 = { "OC_Supported_Features", { .i32=178 }};
1828 struct dict_enumval_data t_10 = { "OC_OLR", { .i32=179 }};
1829 struct dict_enumval_data t_11 = { "ProSe_Subscription_Data", { .i32=180 }};
1830 struct dict_enumval_data t_12 = { "WLAN_offloadability", { .i32=181 }};
1831 struct dict_enumval_data t_13 = { "WLAN_offloadability_EUTRAN", { .i32=182 }};
1832 struct dict_enumval_data t_14 = { "WLAN_offloadability_UTRAN", { .i32=183 }};
1833 struct dict_enumval_data t_15 = { "Reset_ID", { .i32=184 }};
1834 struct dict_enumval_data t_16 = { "MDT_Allowed_PLMN_Id", { .i32=185 }};
1835 struct dict_enumval_data t_17 = { "Adjacent_PLMNs", { .i32=186 }};
1836 struct dict_enumval_data t_18 = { "Adjacent_Access_Restriction_Data", { .i32=187 }};
1837 struct dict_enumval_data t_19 = { "DL_Buffering_Suggested_Packet_Count", { .i32=188 }};
1838 struct dict_enumval_data t_20 = { "IMSI_Group_Id", { .i32=189 }};
1839 struct dict_enumval_data t_21 = { "Group_Service_Id", { .i32=190 }};
1840 struct dict_enumval_data t_22 = { "Group_PLMN_Id", { .i32=191 }};
1841 struct dict_enumval_data t_23 = { "Local_Group_Id", { .i32=192 }};
1842 struct dict_enumval_data t_24 = { "AESE_Communication_Pattern", { .i32=193 }};
1843 struct dict_enumval_data t_25 = { "Communication_Pattern_Set", { .i32=194 }};
1844 struct dict_enumval_data t_26 = { "Monitoring_Event_Configuration", { .i32=195 }};
1845 struct dict_enumval_data t_27 = { "Monitoring_Event_Report", { .i32=196 }};
1846 struct dict_enumval_data t_28 = { "UE_Reachability_Configuration", { .i32=197 }};
1847 struct dict_enumval_data t_29 = { "eNodeB_Id", { .i32=198 }};
1848 struct dict_enumval_data t_30 = { "Supported_Services", { .i32=199 }};
1849 struct dict_enumval_data t_31 = { "Supported_Monitoring_Events", { .i32=200 }};
1850 struct dict_enumval_data t_32 = { "AIR_Flags", { .i32=201 }};
1851 struct dict_enumval_data t_33 = { "UE_Usage_Type", { .i32=202 }};
1852 struct dict_enumval_data t_34 = { "DRMP", { .i32=203 }};
1853 /* Create the Enumerated type, and then the AVP */
1854 CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
1855 CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
1856 CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
1857 CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
1858 CHECK_dict_new( DICT_ENUMVAL, &t_4, type, NULL);
1859 CHECK_dict_new( DICT_ENUMVAL, &t_5, type, NULL);
1860 CHECK_dict_new( DICT_ENUMVAL, &t_6, type, NULL);
1861 CHECK_dict_new( DICT_ENUMVAL, &t_7, type, NULL);
1862 CHECK_dict_new( DICT_ENUMVAL, &t_8, type, NULL);
1863 CHECK_dict_new( DICT_ENUMVAL, &t_9, type, NULL);
1864 CHECK_dict_new( DICT_ENUMVAL, &t_10, type, NULL);
1865 CHECK_dict_new( DICT_ENUMVAL, &t_11, type, NULL);
1866 CHECK_dict_new( DICT_ENUMVAL, &t_12, type, NULL);
1867 CHECK_dict_new( DICT_ENUMVAL, &t_13, type, NULL);
1868 CHECK_dict_new( DICT_ENUMVAL, &t_14, type, NULL);
1869 CHECK_dict_new( DICT_ENUMVAL, &t_15, type, NULL);
1870 CHECK_dict_new( DICT_ENUMVAL, &t_16, type, NULL);
1871 CHECK_dict_new( DICT_ENUMVAL, &t_17, type, NULL);
1872 CHECK_dict_new( DICT_ENUMVAL, &t_18, type, NULL);
1873 CHECK_dict_new( DICT_ENUMVAL, &t_19, type, NULL);
1874 CHECK_dict_new( DICT_ENUMVAL, &t_20, type, NULL);
1875 CHECK_dict_new( DICT_ENUMVAL, &t_21, type, NULL);
1876 CHECK_dict_new( DICT_ENUMVAL, &t_22, type, NULL);
1877 CHECK_dict_new( DICT_ENUMVAL, &t_23, type, NULL);
1878 CHECK_dict_new( DICT_ENUMVAL, &t_24, type, NULL);
1879 CHECK_dict_new( DICT_ENUMVAL, &t_25, type, NULL);
1880 CHECK_dict_new( DICT_ENUMVAL, &t_26, type, NULL);
1881 CHECK_dict_new( DICT_ENUMVAL, &t_27, type, NULL);
1882 CHECK_dict_new( DICT_ENUMVAL, &t_28, type, NULL);
1883 CHECK_dict_new( DICT_ENUMVAL, &t_29, type, NULL);
1884 CHECK_dict_new( DICT_ENUMVAL, &t_30, type, NULL);
1885 CHECK_dict_new( DICT_ENUMVAL, &t_31, type, NULL);
1886 CHECK_dict_new( DICT_ENUMVAL, &t_32, type, NULL);
1887 CHECK_dict_new( DICT_ENUMVAL, &t_33, type, NULL);
1888 CHECK_dict_new( DICT_ENUMVAL, &t_34, type, NULL);
1889 CHECK_dict_new( DICT_AVP, &data, type, NULL);
1890 };
1891 /* Positioning-Method */
1892 {
1893 struct dict_avp_data data = {
1894 1659, /* Code */
1895 10415, /* Vendor */
1896 "Positioning-Method", /* Name */
1897 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1898 AVP_FLAG_VENDOR, /* Fixed flag values */
1899 AVP_TYPE_OCTETSTRING /* base type of data */
1900 };
1901 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
1902 };
1903 /* Measurement-Quantity */
1904 {
1905 struct dict_avp_data data = {
1906 1660, /* Code */
1907 10415, /* Vendor */
1908 "Measurement-Quantity", /* Name */
1909 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1910 AVP_FLAG_VENDOR, /* Fixed flag values */
1911 AVP_TYPE_OCTETSTRING /* base type of data */
1912 };
1913 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
1914 };
1915 /* Event-Threshold-Event-1F */
1916 {
1917 struct dict_avp_data data = {
1918 1661, /* Code */
1919 10415, /* Vendor */
1920 "Event-Threshold-Event-1F", /* Name */
1921 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1922 AVP_FLAG_VENDOR, /* Fixed flag values */
1923 AVP_TYPE_INTEGER32 /* base type of data */
1924 };
1925 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
1926 };
1927 /* Event-Threshold-Event-1I */
1928 {
1929 struct dict_avp_data data = {
1930 1662, /* Code */
1931 10415, /* Vendor */
1932 "Event-Threshold-Event-1I", /* Name */
1933 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1934 AVP_FLAG_VENDOR, /* Fixed flag values */
1935 AVP_TYPE_INTEGER32 /* base type of data */
1936 };
1937 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
1938 };
1939 /* Restoration-Priority */
1940 {
1941 struct dict_avp_data data = {
1942 1663, /* Code */
1943 10415, /* Vendor */
1944 "Restoration-Priority", /* Name */
1945 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1946 AVP_FLAG_VENDOR, /* Fixed flag values */
1947 AVP_TYPE_UNSIGNED32 /* base type of data */
1948 };
1949 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
1950 };
1951 /* SGs-MME-Identity */
1952 {
1953 struct dict_avp_data data = {
1954 1664, /* Code */
1955 10415, /* Vendor */
1956 "SGs-MME-Identity", /* Name */
1957 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1958 AVP_FLAG_VENDOR, /* Fixed flag values */
1959 AVP_TYPE_OCTETSTRING /* base type of data */
1960 };
1961 CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
1962 };
1963 /* SIPTO-Local-Network-Permission */
1964 {
1965 struct dict_avp_data data = {
1966 1665, /* Code */
1967 10415, /* Vendor */
1968 "SIPTO-Local-Network-Permission", /* Name */
1969 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1970 AVP_FLAG_VENDOR, /* Fixed flag values */
1971 AVP_TYPE_UNSIGNED32 /* base type of data */
1972 };
1973 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
1974 };
1975 /* Coupled-Node-Diameter-ID */
1976 {
1977 struct dict_avp_data data = {
1978 1666, /* Code */
1979 10415, /* Vendor */
1980 "Coupled-Node-Diameter-ID", /* Name */
1981 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1982 AVP_FLAG_VENDOR, /* Fixed flag values */
1983 AVP_TYPE_OCTETSTRING /* base type of data */
1984 };
1985 CHECK_dict_new( DICT_AVP, &data, DiameterIdentity_type, NULL);
1986 };
1987 /* WLAN-offloadability-EUTRAN */
1988 {
1989 struct dict_avp_data data = {
1990 1668, /* Code */
1991 10415, /* Vendor */
1992 "WLAN-offloadability-EUTRAN", /* Name */
1993 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
1994 AVP_FLAG_VENDOR, /* Fixed flag values */
1995 AVP_TYPE_UNSIGNED32 /* base type of data */
1996 };
1997 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
1998 };
1999 /* WLAN-offloadability-UTRAN */
2000 {
2001 struct dict_avp_data data = {
2002 1669, /* Code */
2003 10415, /* Vendor */
2004 "WLAN-offloadability-UTRAN", /* Name */
2005 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2006 AVP_FLAG_VENDOR, /* Fixed flag values */
2007 AVP_TYPE_UNSIGNED32 /* base type of data */
2008 };
2009 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
2010 };
2011 /* Reset-ID */
2012 {
2013 struct dict_avp_data data = {
2014 1670, /* Code */
2015 10415, /* Vendor */
2016 "Reset-ID", /* Name */
2017 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2018 AVP_FLAG_VENDOR, /* Fixed flag values */
2019 AVP_TYPE_OCTETSTRING /* base type of data */
2020 };
2021 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
2022 };
2023 /* MDT-Allowed-PLMN-Id */
2024 {
2025 struct dict_avp_data data = {
2026 1671, /* Code */
2027 10415, /* Vendor */
2028 "MDT-Allowed-PLMN-Id", /* Name */
2029 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2030 AVP_FLAG_VENDOR, /* Fixed flag values */
2031 AVP_TYPE_OCTETSTRING /* base type of data */
2032 };
2033 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
2034 };
2035 /* DL-Buffering-Suggested-Packet-Count */
2036 {
2037 struct dict_avp_data data = {
2038 1674, /* Code */
2039 10415, /* Vendor */
2040 "DL-Buffering-Suggested-Packet-Count", /* Name */
2041 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2042 AVP_FLAG_VENDOR, /* Fixed flag values */
2043 AVP_TYPE_INTEGER32 /* base type of data */
2044 };
2045 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
2046 };
2047 /* Group-Service-Id */
2048 {
2049 struct dict_avp_data data = {
2050 1676, /* Code */
2051 10415, /* Vendor */
2052 "Group-Service-Id", /* Name */
2053 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2054 AVP_FLAG_VENDOR, /* Fixed flag values */
2055 AVP_TYPE_UNSIGNED32 /* base type of data */
2056 };
2057 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
2058 };
2059 /* Group-PLMN-Id */
2060 {
2061 struct dict_avp_data data = {
2062 1677, /* Code */
2063 10415, /* Vendor */
2064 "Group-PLMN-Id", /* Name */
2065 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2066 AVP_FLAG_VENDOR, /* Fixed flag values */
2067 AVP_TYPE_OCTETSTRING /* base type of data */
2068 };
2069 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
2070 };
2071 /* Local-Group-Id */
2072 {
2073 struct dict_avp_data data = {
2074 1678, /* Code */
2075 10415, /* Vendor */
2076 "Local-Group-Id", /* Name */
2077 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2078 AVP_FLAG_VENDOR, /* Fixed flag values */
2079 AVP_TYPE_OCTETSTRING /* base type of data */
2080 };
2081 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
2082 };
2083 /* AIR-Flags */
2084 {
2085 struct dict_avp_data data = {
2086 1679, /* Code */
2087 10415, /* Vendor */
2088 "AIR-Flags", /* Name */
2089 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2090 AVP_FLAG_VENDOR, /* Fixed flag values */
2091 AVP_TYPE_UNSIGNED32 /* base type of data */
2092 };
2093 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
2094 };
2095 /* UE-Usage-Type */
2096 {
2097 struct dict_avp_data data = {
2098 1680, /* Code */
2099 10415, /* Vendor */
2100 "UE-Usage-Type", /* Name */
2101 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2102 AVP_FLAG_VENDOR, /* Fixed flag values */
2103 AVP_TYPE_UNSIGNED32 /* base type of data */
2104 };
2105 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
2106 };
2107 /* Non-IP-PDN-Type-Indicator */
2108 {
2109 struct dict_avp_data data = {
2110 1681, /* Code */
2111 10415, /* Vendor */
2112 "Non-IP-PDN-Type-Indicator", /* Name */
2113 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2114 AVP_FLAG_VENDOR, /* Fixed flag values */
2115 AVP_TYPE_INTEGER32 /* base type of data */
2116 };
2117 struct dict_object *type;
2118 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Non-IP-PDN-Type-Indicator)", NULL, NULL, NULL };
2119 struct dict_enumval_data t_1 = { "MAINTAIN_PDN_CONNECTION", { .i32=0 }};
2120 struct dict_enumval_data t_2 = { "DISCONNECT_PDN_CONNECTION_WITH_REACTIVATION_REQUEST", { .i32=1 }};
2121 struct dict_enumval_data t_3 = { "DISCONNECT_PDN_CONNECTION_WITHOUT_REACTIVATION_REQUEST", { .i32=2 }};
2122 /* Create the Enumerated type, and then the AVP */
2123 CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
2124 CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
2125 CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
2126 CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
2127 CHECK_dict_new( DICT_AVP, &data, type, NULL);
2128 };
2129 /* Non-IP-Data-Delivery-Mechanism */
2130 {
2131 struct dict_avp_data data = {
2132 1682, /* Code */
2133 10415, /* Vendor */
2134 "Non-IP-Data-Delivery-Mechanism", /* Name */
2135 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2136 AVP_FLAG_VENDOR, /* Fixed flag values */
2137 AVP_TYPE_UNSIGNED32 /* base type of data */
2138 };
2139 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
2140 };
2141 /* Additional-Context-Identifier */
2142 {
2143 struct dict_avp_data data = {
2144 1683, /* Code */
2145 10415, /* Vendor */
2146 "Additional-Context-Identifier", /* Name */
2147 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2148 AVP_FLAG_VENDOR, /* Fixed flag values */
2149 AVP_TYPE_UNSIGNED32 /* base type of data */
2150 };
2151 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
2152 };
2153 /* SCEF-Realm */
2154 {
2155 struct dict_avp_data data = {
2156 1684, /* Code */
2157 10415, /* Vendor */
2158 "SCEF-Realm", /* Name */
2159 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2160 AVP_FLAG_VENDOR, /* Fixed flag values */
2161 AVP_TYPE_OCTETSTRING /* base type of data */
2162 };
2163 CHECK_dict_new( DICT_AVP, &data, DiameterIdentity_type, NULL);
2164 };
2165 /* Preferred-Data-Mode */
2166 {
2167 struct dict_avp_data data = {
2168 1686, /* Code */
2169 10415, /* Vendor */
2170 "Preferred-Data-Mode", /* Name */
2171 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2172 AVP_FLAG_VENDOR, /* Fixed flag values */
2173 AVP_TYPE_UNSIGNED32 /* base type of data */
2174 };
2175 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
2176 };
2177 /* V2X-Permission */
2178 {
2179 struct dict_avp_data data = {
2180 1689, /* Code */
2181 10415, /* Vendor */
2182 "V2X-Permission", /* Name */
2183 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2184 AVP_FLAG_VENDOR, /* Fixed flag values */
2185 AVP_TYPE_UNSIGNED32 /* base type of data */
2186 };
2187 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
2188 };
2189 /* PDN-Connection-Continuity */
2190 {
2191 struct dict_avp_data data = {
2192 1690, /* Code */
2193 10415, /* Vendor */
2194 "PDN-Connection-Continuity", /* Name */
2195 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2196 AVP_FLAG_VENDOR, /* Fixed flag values */
2197 AVP_TYPE_UNSIGNED32 /* base type of data */
2198 };
2199 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
2200 };
2201 /* eDRX-Cycle-Length-Value */
2202 {
2203 struct dict_avp_data data = {
2204 1692, /* Code */
2205 10415, /* Vendor */
2206 "eDRX-Cycle-Length-Value", /* Name */
2207 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2208 AVP_FLAG_VENDOR, /* Fixed flag values */
2209 AVP_TYPE_OCTETSTRING /* base type of data */
2210 };
2211 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
2212 };
2213 /* UE-PC5-AMBR */
2214 {
2215 struct dict_avp_data data = {
2216 1693, /* Code */
2217 10415, /* Vendor */
2218 "UE-PC5-AMBR", /* Name */
2219 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2220 AVP_FLAG_VENDOR, /* Fixed flag values */
2221 AVP_TYPE_UNSIGNED32 /* base type of data */
2222 };
2223 CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
2224 };
2225 /* V2X-Subscription-Data */
2226 {
2227 /* Grouped */
2228 struct dict_object * avp;
2229 struct dict_avp_data data = {
2230 1688, /* Code */
2231 10415, /* Vendor */
2232 "V2X-Subscription-Data", /* Name */
2233 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2234 AVP_FLAG_VENDOR, /* Fixed flag values */
2235 AVP_TYPE_GROUPED /* base type of data */
2236 };
2237 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
2238 }
2239 /* E-UTRAN-Vector */
2240 {
2241 /* Grouped */
2242 struct dict_object * avp;
2243 struct dict_avp_data data = {
2244 1414, /* Code */
2245 10415, /* Vendor */
2246 "E-UTRAN-Vector", /* Name */
2247 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2248 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
2249 AVP_TYPE_GROUPED /* base type of data */
2250 };
2251 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
2252 }
2253 /* AMBR */
2254 {
2255 /* Grouped */
2256 struct dict_object * avp;
2257 struct dict_avp_data data = {
2258 1435, /* Code */
2259 10415, /* Vendor */
2260 "AMBR", /* Name */
2261 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2262 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
2263 AVP_TYPE_GROUPED /* base type of data */
2264 };
2265 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
2266 }
2267 /* Adjacent-Access-Restriction-Data */
2268 {
2269 /* Grouped */
2270 struct dict_object * avp;
2271 struct dict_avp_data data = {
2272 1673, /* Code */
2273 10415, /* Vendor */
2274 "Adjacent-Access-Restriction-Data", /* Name */
2275 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2276 AVP_FLAG_VENDOR, /* Fixed flag values */
2277 AVP_TYPE_GROUPED /* base type of data */
2278 };
2279 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
2280 }
2281 /* GERAN-Vector */
2282 {
2283 /* Grouped */
2284 struct dict_object * avp;
2285 struct dict_avp_data data = {
2286 1416, /* Code */
2287 10415, /* Vendor */
2288 "GERAN-Vector", /* Name */
2289 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2290 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
2291 AVP_TYPE_GROUPED /* base type of data */
2292 };
2293 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
2294 }
2295 /* eDRX-Cycle-Length */
2296 {
2297 /* Grouped */
2298 struct dict_object * avp;
2299 struct dict_avp_data data = {
2300 1691, /* Code */
2301 10415, /* Vendor */
2302 "eDRX-Cycle-Length", /* Name */
2303 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2304 AVP_FLAG_VENDOR, /* Fixed flag values */
2305 AVP_TYPE_GROUPED /* base type of data */
2306 };
2307 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
2308 }
2309 /* Area-Scope */
2310 {
2311 /* Grouped */
2312 struct dict_object * avp;
2313 struct dict_avp_data data = {
2314 1624, /* Code */
2315 10415, /* Vendor */
2316 "Area-Scope", /* Name */
2317 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2318 AVP_FLAG_VENDOR, /* Fixed flag values */
2319 AVP_TYPE_GROUPED /* base type of data */
2320 };
2321 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
2322 }
2323 /* Call-Barring-Info */
2324 {
2325 /* Grouped */
2326 struct dict_object * avp;
2327 struct dict_avp_data data = {
2328 1488, /* Code */
2329 10415, /* Vendor */
2330 "Call-Barring-Info", /* Name */
2331 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2332 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
2333 AVP_TYPE_GROUPED /* base type of data */
2334 };
2335 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
2336 }
2337 /* CSG-Subscription-Data */
2338 {
2339 /* Grouped */
2340 struct dict_object * avp;
2341 struct dict_avp_data data = {
2342 1436, /* Code */
2343 10415, /* Vendor */
2344 "CSG-Subscription-Data", /* Name */
2345 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2346 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
2347 AVP_TYPE_GROUPED /* base type of data */
2348 };
2349 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
2350 }
2351 /* VPLMN-CSG-Subscription-Data */
2352 {
2353 /* Grouped */
2354 struct dict_object * avp;
2355 struct dict_avp_data data = {
2356 1641, /* Code */
2357 10415, /* Vendor */
2358 "VPLMN-CSG-Subscription-Data", /* Name */
2359 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2360 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
2361 AVP_TYPE_GROUPED /* base type of data */
2362 };
2363 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
2364 }
2365 /* MO-LR */
2366 {
2367 /* Grouped */
2368 struct dict_object * avp;
2369 struct dict_avp_data data = {
2370 1485, /* Code */
2371 10415, /* Vendor */
2372 "MO-LR", /* Name */
2373 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2374 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
2375 AVP_TYPE_GROUPED /* base type of data */
2376 };
2377 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
2378 }
2379 /* WLAN-offloadability */
2380 {
2381 /* Grouped */
2382 struct dict_object * avp;
2383 struct dict_avp_data data = {
2384 1667, /* Code */
2385 10415, /* Vendor */
2386 "WLAN-offloadability", /* Name */
2387 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2388 AVP_FLAG_VENDOR, /* Fixed flag values */
2389 AVP_TYPE_GROUPED /* base type of data */
2390 };
2391 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
2392 }
2393 /* Equivalent-PLMN-List */
2394 {
2395 /* Grouped */
2396 struct dict_object * avp;
2397 struct dict_avp_data data = {
2398 1637, /* Code */
2399 10415, /* Vendor */
2400 "Equivalent-PLMN-List", /* Name */
2401 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2402 AVP_FLAG_VENDOR, /* Fixed flag values */
2403 AVP_TYPE_GROUPED /* base type of data */
2404 };
2405 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
2406 }
2407 /* UTRAN-Vector */
2408 {
2409 /* Grouped */
2410 struct dict_object * avp;
2411 struct dict_avp_data data = {
2412 1415, /* Code */
2413 10415, /* Vendor */
2414 "UTRAN-Vector", /* Name */
2415 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2416 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
2417 AVP_TYPE_GROUPED /* base type of data */
2418 };
2419 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
2420 }
2421 /* Local-Time-Zone */
2422 {
2423 /* Grouped */
2424 struct dict_object * avp;
2425 struct dict_avp_data data = {
2426 1649, /* Code */
2427 10415, /* Vendor */
2428 "Local-Time-Zone", /* Name */
2429 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2430 AVP_FLAG_VENDOR, /* Fixed flag values */
2431 AVP_TYPE_GROUPED /* base type of data */
2432 };
2433 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
2434 }
2435 /* IMSI-Group-Id */
2436 {
2437 /* Grouped */
2438 struct dict_object * avp;
2439 struct dict_avp_data data = {
2440 1675, /* Code */
2441 10415, /* Vendor */
2442 "IMSI-Group-Id", /* Name */
2443 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2444 AVP_FLAG_VENDOR, /* Fixed flag values */
2445 AVP_TYPE_GROUPED /* base type of data */
2446 };
2447 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
2448 }
2449 /* Terminal-Information */
2450 {
2451 /* Grouped */
2452 struct dict_object * avp;
2453 struct dict_avp_data data = {
2454 1401, /* Code */
2455 10415, /* Vendor */
2456 "Terminal-Information", /* Name */
2457 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2458 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
2459 AVP_TYPE_GROUPED /* base type of data */
2460 };
2461 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
2462 }
2463 /* Teleservice-List */
2464 {
2465 /* Grouped */
2466 struct dict_object * avp;
2467 struct dict_avp_data data = {
2468 1486, /* Code */
2469 10415, /* Vendor */
2470 "Teleservice-List", /* Name */
2471 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2472 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
2473 AVP_TYPE_GROUPED /* base type of data */
2474 };
2475 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
2476 }
2477 /* Service-Type */
2478 {
2479 /* Grouped */
2480 struct dict_object * avp;
2481 struct dict_avp_data data = {
2482 1483, /* Code */
2483 10415, /* Vendor */
2484 "Service-Type", /* Name */
2485 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2486 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
2487 AVP_TYPE_GROUPED /* base type of data */
2488 };
2489 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
2490 }
2491 /* Requested-UTRAN-GERAN-Authentication-Info */
2492 {
2493 /* Grouped */
2494 struct dict_object * avp;
2495 struct dict_avp_data data = {
2496 1409, /* Code */
2497 10415, /* Vendor */
2498 "Requested-UTRAN-GERAN-Authentication-Info", /* Name */
2499 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2500 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
2501 AVP_TYPE_GROUPED /* base type of data */
2502 };
2503 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
2504 }
2505 /* Subscription-Data-Deletion */
2506 {
2507 /* Grouped */
2508 struct dict_object * avp;
2509 struct dict_avp_data data = {
2510 1685, /* Code */
2511 10415, /* Vendor */
2512 "Subscription-Data-Deletion", /* Name */
2513 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2514 AVP_FLAG_VENDOR, /* Fixed flag values */
2515 AVP_TYPE_GROUPED /* base type of data */
2516 };
2517 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
2518 }
2519 /* MME-User-State */
2520 {
2521 /* Grouped */
2522 struct dict_object * avp;
2523 struct dict_avp_data data = {
2524 1497, /* Code */
2525 10415, /* Vendor */
2526 "MME-User-State", /* Name */
2527 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2528 AVP_FLAG_VENDOR, /* Fixed flag values */
2529 AVP_TYPE_GROUPED /* base type of data */
2530 };
2531 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
2532 }
2533 /* Requested-EUTRAN-Authentication-Info */
2534 {
2535 /* Grouped */
2536 struct dict_object * avp;
2537 struct dict_avp_data data = {
2538 1408, /* Code */
2539 10415, /* Vendor */
2540 "Requested-EUTRAN-Authentication-Info", /* Name */
2541 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2542 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
2543 AVP_TYPE_GROUPED /* base type of data */
2544 };
2545 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
2546 }
2547 /* Adjacent-PLMNs */
2548 {
2549 /* Grouped */
2550 struct dict_object * avp;
2551 struct dict_avp_data data = {
2552 1672, /* Code */
2553 10415, /* Vendor */
2554 "Adjacent-PLMNs", /* Name */
2555 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2556 AVP_FLAG_VENDOR, /* Fixed flag values */
2557 AVP_TYPE_GROUPED /* base type of data */
2558 };
2559 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
2560 }
2561 /* SGSN-User-State */
2562 {
2563 /* Grouped */
2564 struct dict_object * avp;
2565 struct dict_avp_data data = {
2566 1498, /* Code */
2567 10415, /* Vendor */
2568 "SGSN-User-State", /* Name */
2569 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2570 AVP_FLAG_VENDOR, /* Fixed flag values */
2571 AVP_TYPE_GROUPED /* base type of data */
2572 };
2573 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
2574 }
2575 /* External-Client */
2576 {
2577 /* Grouped */
2578 struct dict_object * avp;
2579 struct dict_avp_data data = {
2580 1479, /* Code */
2581 10415, /* Vendor */
2582 "External-Client", /* Name */
2583 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2584 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
2585 AVP_TYPE_GROUPED /* base type of data */
2586 };
2587 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
2588 }
2589 /* EPS-User-State */
2590 {
2591 /* Grouped */
2592 struct dict_object * avp;
2593 struct dict_avp_data data = {
2594 1495, /* Code */
2595 10415, /* Vendor */
2596 "EPS-User-State", /* Name */
2597 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2598 AVP_FLAG_VENDOR, /* Fixed flag values */
2599 AVP_TYPE_GROUPED /* base type of data */
2600 };
2601 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
2602 }
2603 /* SGSN-Location-Information */
2604 {
2605 /* Grouped */
2606 struct dict_object * avp;
2607 struct dict_avp_data data = {
2608 1601, /* Code */
2609 10415, /* Vendor */
2610 "SGSN-Location-Information", /* Name */
2611 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2612 AVP_FLAG_VENDOR, /* Fixed flag values */
2613 AVP_TYPE_GROUPED /* base type of data */
2614 };
2615 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
2616 }
2617 /* LCS-PrivacyException */
2618 {
2619 /* Grouped */
2620 struct dict_object * avp;
2621 struct dict_avp_data data = {
2622 1475, /* Code */
2623 10415, /* Vendor */
2624 "LCS-PrivacyException", /* Name */
2625 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2626 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
2627 AVP_TYPE_GROUPED /* base type of data */
2628 };
2629 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
2630 }
2631 /* EPS-Subscribed-QoS-Profile */
2632 {
2633 /* Grouped */
2634 struct dict_object * avp;
2635 struct dict_avp_data data = {
2636 1431, /* Code */
2637 10415, /* Vendor */
2638 "EPS-Subscribed-QoS-Profile", /* Name */
2639 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2640 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
2641 AVP_TYPE_GROUPED /* base type of data */
2642 };
2643 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
2644 }
2645 /* Authentication-Info */
2646 {
2647 /* Grouped */
2648 struct dict_object * avp;
2649 struct dict_avp_data data = {
2650 1413, /* Code */
2651 10415, /* Vendor */
2652 "Authentication-Info", /* Name */
2653 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2654 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
2655 AVP_TYPE_GROUPED /* base type of data */
2656 };
2657 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
2658 }
2659 /* Specific-APN-Info */
2660 {
2661 /* Grouped */
2662 struct dict_object * avp;
2663 struct dict_avp_data data = {
2664 1472, /* Code */
2665 10415, /* Vendor */
2666 "Specific-APN-Info", /* Name */
2667 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2668 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
2669 AVP_TYPE_GROUPED /* base type of data */
2670 };
2671 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
2672 }
2673 /* MDT-Configuration */
2674 {
2675 /* Grouped */
2676 struct dict_object * avp;
2677 struct dict_avp_data data = {
2678 1622, /* Code */
2679 10415, /* Vendor */
2680 "MDT-Configuration", /* Name */
2681 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2682 AVP_FLAG_VENDOR, /* Fixed flag values */
2683 AVP_TYPE_GROUPED /* base type of data */
2684 };
2685 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
2686 }
2687 /* MME-Location-Information */
2688 {
2689 /* Grouped */
2690 struct dict_object * avp;
2691 struct dict_avp_data data = {
2692 1600, /* Code */
2693 10415, /* Vendor */
2694 "MME-Location-Information", /* Name */
2695 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2696 AVP_FLAG_VENDOR, /* Fixed flag values */
2697 AVP_TYPE_GROUPED /* base type of data */
2698 };
2699 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
2700 }
2701 /* PDP-Context */
2702 {
2703 /* Grouped */
2704 struct dict_object * avp;
2705 struct dict_avp_data data = {
2706 1469, /* Code */
2707 10415, /* Vendor */
2708 "PDP-Context", /* Name */
2709 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2710 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
2711 AVP_TYPE_GROUPED /* base type of data */
2712 };
2713 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
2714 }
2715 /* Emergency-Info */
2716 {
2717 /* Grouped */
2718 struct dict_object * avp;
2719 struct dict_avp_data data = {
2720 1687, /* Code */
2721 10415, /* Vendor */
2722 "Emergency-Info", /* Name */
2723 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2724 AVP_FLAG_VENDOR, /* Fixed flag values */
2725 AVP_TYPE_GROUPED /* base type of data */
2726 };
2727 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
2728 }
2729 /* GPRS-Subscription-Data */
2730 {
2731 /* Grouped */
2732 struct dict_object * avp;
2733 struct dict_avp_data data = {
2734 1467, /* Code */
2735 10415, /* Vendor */
2736 "GPRS-Subscription-Data", /* Name */
2737 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2738 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
2739 AVP_TYPE_GROUPED /* base type of data */
2740 };
2741 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
2742 }
2743 /* APN-Configuration */
2744 {
2745 /* Grouped */
2746 struct dict_object * avp;
2747 struct dict_avp_data data = {
2748 1430, /* Code */
2749 10415, /* Vendor */
2750 "APN-Configuration", /* Name */
2751 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2752 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
2753 AVP_TYPE_GROUPED /* base type of data */
2754 };
2755 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
2756 }
2757 /* EPS-Location-Information */
2758 {
2759 /* Grouped */
2760 struct dict_object * avp;
2761 struct dict_avp_data data = {
2762 1496, /* Code */
2763 10415, /* Vendor */
2764 "EPS-Location-Information", /* Name */
2765 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2766 AVP_FLAG_VENDOR, /* Fixed flag values */
2767 AVP_TYPE_GROUPED /* base type of data */
2768 };
2769 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
2770 }
2771 /* Trace-Data */
2772 {
2773 /* Grouped */
2774 struct dict_object * avp;
2775 struct dict_avp_data data = {
2776 1458, /* Code */
2777 10415, /* Vendor */
2778 "Trace-Data", /* Name */
2779 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2780 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
2781 AVP_TYPE_GROUPED /* base type of data */
2782 };
2783 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
2784 }
2785 /* Active-APN */
2786 {
2787 /* Grouped */
2788 struct dict_object * avp;
2789 struct dict_avp_data data = {
2790 1612, /* Code */
2791 10415, /* Vendor */
2792 "Active-APN", /* Name */
2793 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2794 AVP_FLAG_VENDOR, /* Fixed flag values */
2795 AVP_TYPE_GROUPED /* base type of data */
2796 };
2797 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
2798 }
2799 /* LCS-Info */
2800 {
2801 /* Grouped */
2802 struct dict_object * avp;
2803 struct dict_avp_data data = {
2804 1473, /* Code */
2805 10415, /* Vendor */
2806 "LCS-Info", /* Name */
2807 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2808 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
2809 AVP_TYPE_GROUPED /* base type of data */
2810 };
2811 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
2812 }
2813 /* APN-Configuration-Profile */
2814 {
2815 /* Grouped */
2816 struct dict_object * avp;
2817 struct dict_avp_data data = {
2818 1429, /* Code */
2819 10415, /* Vendor */
2820 "APN-Configuration-Profile", /* Name */
2821 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2822 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
2823 AVP_TYPE_GROUPED /* base type of data */
2824 };
2825 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
2826 }
2827 /* Subscription-Data */
2828 {
2829 /* Grouped */
2830 struct dict_object * avp;
2831 struct dict_avp_data data = {
2832 1400, /* Code */
2833 10415, /* Vendor */
2834 "Subscription-Data", /* Name */
2835 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
2836 AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
2837 AVP_TYPE_GROUPED /* base type of data */
2838 };
2839 CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
2840 }
2841
2842
2843 }
2844
2845 /* Commands section */
2846 {
2847
2848 }
2849
2850 return 0;
2851}
2852
2853static int dict_ts29272_avps_load_rules(char * conffile)
2854{
2855 /* Grouped AVP section */
2856 {
2857 /* V2X-Subscription-Data */
2858 {
2859 /* Grouped */
2860 struct dict_object * avp;
2861 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "V2X-Subscription-Data"};
2862 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
2863 struct local_rules_definition rules[] =
2864 {
2865 { { .avp_vendor = 10415, .avp_name = "V2X-Permission"}, RULE_OPTIONAL, -1, -1 },
2866 { { .avp_vendor = 10415, .avp_name = "UE-PC5-AMBR"}, RULE_OPTIONAL, -1, -1 }
2867 };
2868 PARSE_loc_rules( rules, avp );
2869 }
2870 /* E-UTRAN-Vector */
2871 {
2872 /* Grouped */
2873 struct dict_object * avp;
2874 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "E-UTRAN-Vector"};
2875 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
2876 struct local_rules_definition rules[] =
2877 {
2878 { { .avp_vendor = 10415, .avp_name = "Item-Number"}, RULE_OPTIONAL, -1, -1 },
2879 { { .avp_vendor = 10415, .avp_name = "RAND"}, RULE_REQUIRED, -1, -1 },
2880 { { .avp_vendor = 10415, .avp_name = "XRES"}, RULE_REQUIRED, -1, -1 },
2881 { { .avp_vendor = 10415, .avp_name = "AUTN"}, RULE_REQUIRED, -1, -1 },
2882 { { .avp_vendor = 10415, .avp_name = "KASME"}, RULE_REQUIRED, -1, -1 }
2883 };
2884 PARSE_loc_rules( rules, avp );
2885 }
2886 /* AMBR */
2887 {
2888 /* Grouped */
2889 struct dict_object * avp;
2890 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "AMBR"};
2891 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
2892 struct local_rules_definition rules[] =
2893 {
2894 { { .avp_vendor = 10415, .avp_name = "Max-Requested-Bandwidth-UL"}, RULE_REQUIRED, -1, -1 },
2895 { { .avp_vendor = 10415, .avp_name = "Max-Requested-Bandwidth-DL"}, RULE_REQUIRED, -1, -1 }
2896 };
2897 PARSE_loc_rules( rules, avp );
2898 }
2899 /* Adjacent-Access-Restriction-Data */
2900 {
2901 /* Grouped */
2902 struct dict_object * avp;
2903 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Adjacent-Access-Restriction-Data"};
2904 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
2905 struct local_rules_definition rules[] =
2906 {
2907 { { .avp_vendor = 10415, .avp_name = "Visited-PLMN-Id"}, RULE_REQUIRED, -1, -1 },
2908 { { .avp_vendor = 10415, .avp_name = "Access-Restriction-Data"}, RULE_REQUIRED, -1, -1 }
2909 };
2910 PARSE_loc_rules( rules, avp );
2911 }
2912 /* GERAN-Vector */
2913 {
2914 /* Grouped */
2915 struct dict_object * avp;
2916 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "GERAN-Vector"};
2917 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
2918 struct local_rules_definition rules[] =
2919 {
2920 { { .avp_vendor = 10415, .avp_name = "Item-Number"}, RULE_OPTIONAL, -1, -1 },
2921 { { .avp_vendor = 10415, .avp_name = "RAND"}, RULE_REQUIRED, -1, -1 },
2922 { { .avp_vendor = 10415, .avp_name = "SRES"}, RULE_REQUIRED, -1, -1 },
2923 { { .avp_vendor = 10415, .avp_name = "Kc"}, RULE_REQUIRED, -1, -1 }
2924 };
2925 PARSE_loc_rules( rules, avp );
2926 }
2927 /* eDRX-Cycle-Length */
2928 {
2929 /* Grouped */
2930 struct dict_object * avp;
2931 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "eDRX-Cycle-Length"};
2932 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
2933 struct local_rules_definition rules[] =
2934 {
2935 { { .avp_vendor = 10415, .avp_name = "RAT-Type"}, RULE_REQUIRED, -1, -1 },
2936 { { .avp_vendor = 10415, .avp_name = "eDRX-Cycle-Length-Value"}, RULE_REQUIRED, -1, -1 }
2937 };
2938 PARSE_loc_rules( rules, avp );
2939 }
2940 /* Area-Scope */
2941 {
2942 /* Grouped */
2943 struct dict_object * avp;
2944 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Area-Scope"};
2945 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
2946 struct local_rules_definition rules[] =
2947 {
2948 { { .avp_vendor = 10415, .avp_name = "Cell-Global-Identity"}, RULE_OPTIONAL, -1, -1 },
2949 { { .avp_vendor = 10415, .avp_name = "E-UTRAN-Cell-Global-Identity"}, RULE_OPTIONAL, -1, -1 },
2950 { { .avp_vendor = 10415, .avp_name = "Routing-Area-Identity"}, RULE_OPTIONAL, -1, -1 },
2951 { { .avp_vendor = 10415, .avp_name = "Location-Area-Identity"}, RULE_OPTIONAL, -1, -1 },
2952 { { .avp_vendor = 10415, .avp_name = "Tracking-Area-Identity"}, RULE_OPTIONAL, -1, -1 }
2953 };
2954 PARSE_loc_rules( rules, avp );
2955 }
2956 /* Call-Barring-Info */
2957 {
2958 /* Grouped */
2959 struct dict_object * avp;
2960 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Call-Barring-Info"};
2961 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
2962 struct local_rules_definition rules[] =
2963 {
2964 { { .avp_vendor = 10415, .avp_name = "SS-Code"}, RULE_REQUIRED, -1, -1 },
2965 { { .avp_vendor = 10415, .avp_name = "SS-Status"}, RULE_REQUIRED, -1, -1 }
2966 };
2967 PARSE_loc_rules( rules, avp );
2968 }
2969 /* CSG-Subscription-Data */
2970 {
2971 /* Grouped */
2972 struct dict_object * avp;
2973 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "CSG-Subscription-Data"};
2974 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
2975 struct local_rules_definition rules[] =
2976 {
2977 { { .avp_vendor = 10415, .avp_name = "CSG-Id"}, RULE_REQUIRED, -1, -1 },
2978 { { .avp_vendor = 10415, .avp_name = "Expiration-Date"}, RULE_OPTIONAL, -1, -1 },
2979 { { .avp_vendor = 0, .avp_name = "Service-Selection"}, RULE_OPTIONAL, -1, -1 },
2980 { { .avp_vendor = 10415, .avp_name = "Visited-PLMN-Id"}, RULE_OPTIONAL, -1, -1 }
2981 };
2982 PARSE_loc_rules( rules, avp );
2983 }
2984 /* VPLMN-CSG-Subscription-Data */
2985 {
2986 /* Grouped */
2987 struct dict_object * avp;
2988 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "VPLMN-CSG-Subscription-Data"};
2989 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
2990 struct local_rules_definition rules[] =
2991 {
2992 { { .avp_vendor = 10415, .avp_name = "CSG-Id"}, RULE_REQUIRED, -1, -1 },
2993 { { .avp_vendor = 10415, .avp_name = "Expiration-Date"}, RULE_OPTIONAL, -1, -1 }
2994 };
2995 PARSE_loc_rules( rules, avp );
2996 }
2997 /* MO-LR */
2998 {
2999 /* Grouped */
3000 struct dict_object * avp;
3001 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "MO-LR"};
3002 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
3003 struct local_rules_definition rules[] =
3004 {
3005 { { .avp_vendor = 10415, .avp_name = "SS-Code"}, RULE_REQUIRED, -1, -1 },
3006 { { .avp_vendor = 10415, .avp_name = "SS-Status"}, RULE_REQUIRED, -1, -1 }
3007 };
3008 PARSE_loc_rules( rules, avp );
3009 }
3010 /* WLAN-offloadability */
3011 {
3012 /* Grouped */
3013 struct dict_object * avp;
3014 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "WLAN-offloadability"};
3015 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
3016 struct local_rules_definition rules[] =
3017 {
3018 { { .avp_vendor = 10415, .avp_name = "WLAN-offloadability-EUTRAN"}, RULE_OPTIONAL, -1, -1 },
3019 { { .avp_vendor = 10415, .avp_name = "WLAN-offloadability-UTRAN"}, RULE_OPTIONAL, -1, -1 }
3020 };
3021 PARSE_loc_rules( rules, avp );
3022 }
3023 /* Equivalent-PLMN-List */
3024 {
3025 /* Grouped */
3026 struct dict_object * avp;
3027 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Equivalent-PLMN-List"};
3028 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
3029 struct local_rules_definition rules[] =
3030 {
3031 { { .avp_vendor = 10415, .avp_name = "Visited-PLMN-Id"}, RULE_REQUIRED, 1, -1 }
3032 };
3033 PARSE_loc_rules( rules, avp );
3034 }
3035 /* UTRAN-Vector */
3036 {
3037 /* Grouped */
3038 struct dict_object * avp;
3039 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "UTRAN-Vector"};
3040 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
3041 struct local_rules_definition rules[] =
3042 {
3043 { { .avp_vendor = 10415, .avp_name = "Item-Number"}, RULE_OPTIONAL, -1, -1 },
3044 { { .avp_vendor = 10415, .avp_name = "RAND"}, RULE_REQUIRED, -1, -1 },
3045 { { .avp_vendor = 10415, .avp_name = "XRES"}, RULE_REQUIRED, -1, -1 },
3046 { { .avp_vendor = 10415, .avp_name = "AUTN"}, RULE_REQUIRED, -1, -1 },
3047 { { .avp_vendor = 10415, .avp_name = "Confidentiality-Key"}, RULE_REQUIRED, -1, -1 },
3048 { { .avp_vendor = 10415, .avp_name = "Integrity-Key"}, RULE_REQUIRED, -1, -1 }
3049 };
3050 PARSE_loc_rules( rules, avp );
3051 }
3052 /* Local-Time-Zone */
3053 {
3054 /* Grouped */
3055 struct dict_object * avp;
3056 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Local-Time-Zone"};
3057 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
3058 struct local_rules_definition rules[] =
3059 {
3060 { { .avp_vendor = 10415, .avp_name = "Time-Zone"}, RULE_REQUIRED, -1, -1 },
3061 { { .avp_vendor = 10415, .avp_name = "Daylight-Saving-Time"}, RULE_REQUIRED, -1, -1 }
3062 };
3063 PARSE_loc_rules( rules, avp );
3064 }
3065 /* IMSI-Group-Id */
3066 {
3067 /* Grouped */
3068 struct dict_object * avp;
3069 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "IMSI-Group-Id"};
3070 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
3071 struct local_rules_definition rules[] =
3072 {
3073 { { .avp_vendor = 10415, .avp_name = "Group-Service-Id"}, RULE_REQUIRED, -1, -1 },
3074 { { .avp_vendor = 10415, .avp_name = "Group-PLMN-Id"}, RULE_REQUIRED, -1, -1 },
3075 { { .avp_vendor = 10415, .avp_name = "Local-Group-Id"}, RULE_REQUIRED, -1, -1 }
3076 };
3077 PARSE_loc_rules( rules, avp );
3078 }
3079 /* Terminal-Information */
3080 {
3081 /* Grouped */
3082 struct dict_object * avp;
3083 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Terminal-Information"};
3084 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
3085 struct local_rules_definition rules[] =
3086 {
3087 { { .avp_vendor = 10415, .avp_name = "IMEI"}, RULE_OPTIONAL, -1, -1 },
3088 { { .avp_vendor = 10415, .avp_name = "3GPP2-MEID"}, RULE_OPTIONAL, -1, -1 },
3089 { { .avp_vendor = 10415, .avp_name = "Software-Version"}, RULE_OPTIONAL, -1, -1 }
3090 };
3091 PARSE_loc_rules( rules, avp );
3092 }
3093 /* Teleservice-List */
3094 {
3095 /* Grouped */
3096 struct dict_object * avp;
3097 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Teleservice-List"};
3098 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
3099 struct local_rules_definition rules[] =
3100 {
3101 { { .avp_vendor = 10415, .avp_name = "TS-Code"}, RULE_REQUIRED, 1, -1 }
3102 };
3103 PARSE_loc_rules( rules, avp );
3104 }
3105 /* Service-Type */
3106 {
3107 /* Grouped */
3108 struct dict_object * avp;
3109 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Service-Type"};
3110 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
3111 struct local_rules_definition rules[] =
3112 {
3113 { { .avp_vendor = 10415, .avp_name = "ServiceTypeIdentity"}, RULE_REQUIRED, -1, -1 },
3114 { { .avp_vendor = 10415, .avp_name = "GMLC-Restriction"}, RULE_OPTIONAL, -1, -1 },
3115 { { .avp_vendor = 10415, .avp_name = "Notification-To-UE-User"}, RULE_OPTIONAL, -1, -1 }
3116 };
3117 PARSE_loc_rules( rules, avp );
3118 }
3119 /* Requested-UTRAN-GERAN-Authentication-Info */
3120 {
3121 /* Grouped */
3122 struct dict_object * avp;
3123 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Requested-UTRAN-GERAN-Authentication-Info"};
3124 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
3125 struct local_rules_definition rules[] =
3126 {
3127 { { .avp_vendor = 10415, .avp_name = "Number-Of-Requested-Vectors"}, RULE_OPTIONAL, -1, -1 },
3128 { { .avp_vendor = 10415, .avp_name = "Immediate-Response-Preferred"}, RULE_OPTIONAL, -1, -1 },
3129 { { .avp_vendor = 10415, .avp_name = "Re-Synchronization-Info"}, RULE_OPTIONAL, -1, -1 }
3130 };
3131 PARSE_loc_rules( rules, avp );
3132 }
3133 /* Subscription-Data-Deletion */
3134 {
3135 /* Grouped */
3136 struct dict_object * avp;
3137 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Subscription-Data-Deletion"};
3138 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
3139 struct local_rules_definition rules[] =
3140 {
3141 { { .avp_vendor = 10415, .avp_name = "DSR-Flags"}, RULE_REQUIRED, -1, -1 },
3142 { { .avp_vendor = 10415, .avp_name = "SCEF-ID"}, RULE_OPTIONAL, -1, -1 },
3143 { { .avp_vendor = 10415, .avp_name = "Context-Identifier"}, RULE_OPTIONAL, -1, -1 },
3144 { { .avp_vendor = 10415, .avp_name = "Trace-Reference"}, RULE_OPTIONAL, -1, -1 },
3145 { { .avp_vendor = 10415, .avp_name = "TS-Code"}, RULE_OPTIONAL, -1, -1 },
3146 { { .avp_vendor = 10415, .avp_name = "SS-Code"}, RULE_OPTIONAL, -1, -1 }
3147 };
3148 PARSE_loc_rules( rules, avp );
3149 }
3150 /* MME-User-State */
3151 {
3152 /* Grouped */
3153 struct dict_object * avp;
3154 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "MME-User-State"};
3155 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
3156 struct local_rules_definition rules[] =
3157 {
3158 { { .avp_vendor = 10415, .avp_name = "User-State"}, RULE_OPTIONAL, -1, -1 }
3159 };
3160 PARSE_loc_rules( rules, avp );
3161 }
3162 /* Requested-EUTRAN-Authentication-Info */
3163 {
3164 /* Grouped */
3165 struct dict_object * avp;
3166 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Requested-EUTRAN-Authentication-Info"};
3167 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
3168 struct local_rules_definition rules[] =
3169 {
3170 { { .avp_vendor = 10415, .avp_name = "Number-Of-Requested-Vectors"}, RULE_OPTIONAL, -1, -1 },
3171 { { .avp_vendor = 10415, .avp_name = "Immediate-Response-Preferred"}, RULE_OPTIONAL, -1, -1 },
3172 { { .avp_vendor = 10415, .avp_name = "Re-Synchronization-Info"}, RULE_OPTIONAL, -1, -1 }
3173 };
3174 PARSE_loc_rules( rules, avp );
3175 }
3176 /* Adjacent-PLMNs */
3177 {
3178 /* Grouped */
3179 struct dict_object * avp;
3180 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Adjacent-PLMNs"};
3181 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
3182 struct local_rules_definition rules[] =
3183 {
3184 { { .avp_vendor = 10415, .avp_name = "Visited-PLMN-Id"}, RULE_REQUIRED, 1, -1 }
3185 };
3186 PARSE_loc_rules( rules, avp );
3187 }
3188 /* SGSN-User-State */
3189 {
3190 /* Grouped */
3191 struct dict_object * avp;
3192 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "SGSN-User-State"};
3193 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
3194 struct local_rules_definition rules[] =
3195 {
3196 { { .avp_vendor = 10415, .avp_name = "User-State"}, RULE_OPTIONAL, -1, -1 }
3197 };
3198 PARSE_loc_rules( rules, avp );
3199 }
3200 /* External-Client */
3201 {
3202 /* Grouped */
3203 struct dict_object * avp;
3204 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "External-Client"};
3205 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
3206 struct local_rules_definition rules[] =
3207 {
3208 { { .avp_vendor = 10415, .avp_name = "Client-Identity"}, RULE_REQUIRED, -1, -1 },
3209 { { .avp_vendor = 10415, .avp_name = "GMLC-Restriction"}, RULE_OPTIONAL, -1, -1 },
3210 { { .avp_vendor = 10415, .avp_name = "Notification-To-UE-User"}, RULE_OPTIONAL, -1, -1 }
3211 };
3212 PARSE_loc_rules( rules, avp );
3213 }
3214 /* EPS-User-State */
3215 {
3216 /* Grouped */
3217 struct dict_object * avp;
3218 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "EPS-User-State"};
3219 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
3220 struct local_rules_definition rules[] =
3221 {
3222 { { .avp_vendor = 10415, .avp_name = "MME-User-State"}, RULE_OPTIONAL, -1, -1 },
3223 { { .avp_vendor = 10415, .avp_name = "SGSN-User-State"}, RULE_OPTIONAL, -1, -1 }
3224 };
3225 PARSE_loc_rules( rules, avp );
3226 }
3227 /* SGSN-Location-Information */
3228 {
3229 /* Grouped */
3230 struct dict_object * avp;
3231 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "SGSN-Location-Information"};
3232 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
3233 struct local_rules_definition rules[] =
3234 {
3235 { { .avp_vendor = 10415, .avp_name = "Cell-Global-Identity"}, RULE_OPTIONAL, -1, -1 },
3236 { { .avp_vendor = 10415, .avp_name = "Location-Area-Identity"}, RULE_OPTIONAL, -1, -1 },
3237 { { .avp_vendor = 10415, .avp_name = "Service-Area-Identity"}, RULE_OPTIONAL, -1, -1 },
3238 { { .avp_vendor = 10415, .avp_name = "Routing-Area-Identity"}, RULE_OPTIONAL, -1, -1 },
3239 { { .avp_vendor = 10415, .avp_name = "Geographical-Information"}, RULE_OPTIONAL, -1, -1 },
3240 { { .avp_vendor = 10415, .avp_name = "Geodetic-Information"}, RULE_OPTIONAL, -1, -1 },
3241 { { .avp_vendor = 10415, .avp_name = "Current-Location-Retrieved"}, RULE_OPTIONAL, -1, -1 },
3242 { { .avp_vendor = 10415, .avp_name = "Age-Of-Location-Information"}, RULE_OPTIONAL, -1, -1 },
3243 { { .avp_vendor = 10415, .avp_name = "User-CSG-Information"}, RULE_OPTIONAL, -1, -1 }
3244 };
3245 PARSE_loc_rules( rules, avp );
3246 }
3247 /* LCS-PrivacyException */
3248 {
3249 /* Grouped */
3250 struct dict_object * avp;
3251 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "LCS-PrivacyException"};
3252 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
3253 struct local_rules_definition rules[] =
3254 {
3255 { { .avp_vendor = 10415, .avp_name = "SS-Code"}, RULE_REQUIRED, -1, -1 },
3256 { { .avp_vendor = 10415, .avp_name = "SS-Status"}, RULE_REQUIRED, -1, -1 },
3257 { { .avp_vendor = 10415, .avp_name = "Notification-To-UE-User"}, RULE_OPTIONAL, -1, -1 },
3258 { { .avp_vendor = 10415, .avp_name = "External-Client"}, RULE_OPTIONAL, -1, -1 },
3259 { { .avp_vendor = 10415, .avp_name = "PLMN-Client"}, RULE_OPTIONAL, -1, -1 },
3260 { { .avp_vendor = 10415, .avp_name = "Service-Type"}, RULE_OPTIONAL, -1, -1 }
3261 };
3262 PARSE_loc_rules( rules, avp );
3263 }
3264 /* EPS-Subscribed-QoS-Profile */
3265 {
3266 /* Grouped */
3267 struct dict_object * avp;
3268 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "EPS-Subscribed-QoS-Profile"};
3269 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
3270 struct local_rules_definition rules[] =
3271 {
3272 { { .avp_vendor = 10415, .avp_name = "QoS-Class-Identifier"}, RULE_REQUIRED, -1, -1 },
3273 { { .avp_vendor = 10415, .avp_name = "Allocation-Retention-Priority"}, RULE_REQUIRED, -1, -1 }
3274 };
3275 PARSE_loc_rules( rules, avp );
3276 }
3277 /* Authentication-Info */
3278 {
3279 /* Grouped */
3280 struct dict_object * avp;
3281 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Authentication-Info"};
3282 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
3283 struct local_rules_definition rules[] =
3284 {
3285 { { .avp_vendor = 10415, .avp_name = "E-UTRAN-Vector"}, RULE_OPTIONAL, -1, -1 },
3286 { { .avp_vendor = 10415, .avp_name = "UTRAN-Vector"}, RULE_OPTIONAL, -1, -1 },
3287 { { .avp_vendor = 10415, .avp_name = "GERAN-Vector"}, RULE_OPTIONAL, -1, -1 }
3288 };
3289 PARSE_loc_rules( rules, avp );
3290 }
3291 /* Specific-APN-Info */
3292 {
3293 /* Grouped */
3294 struct dict_object * avp;
3295 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Specific-APN-Info"};
3296 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
3297 struct local_rules_definition rules[] =
3298 {
3299 { { .avp_vendor = 0, .avp_name = "Service-Selection"}, RULE_REQUIRED, -1, -1 },
3300 { { .avp_vendor = 10415, .avp_name = "MIP6-Agent-Info"}, RULE_REQUIRED, -1, -1 },
3301 { { .avp_vendor = 10415, .avp_name = "Visited-Network-Identifier"}, RULE_OPTIONAL, -1, -1 }
3302 };
3303 PARSE_loc_rules( rules, avp );
3304 }
3305 /* MDT-Configuration */
3306 {
3307 /* Grouped */
3308 struct dict_object * avp;
3309 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "MDT-Configuration"};
3310 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
3311 struct local_rules_definition rules[] =
3312 {
3313 { { .avp_vendor = 10415, .avp_name = "Job-Type"}, RULE_REQUIRED, -1, -1 },
3314 { { .avp_vendor = 10415, .avp_name = "Area-Scope"}, RULE_OPTIONAL, -1, -1 },
3315 { { .avp_vendor = 10415, .avp_name = "List-Of-Measurements"}, RULE_OPTIONAL, -1, -1 },
3316 { { .avp_vendor = 10415, .avp_name = "Reporting-Trigger"}, RULE_OPTIONAL, -1, -1 },
3317 { { .avp_vendor = 10415, .avp_name = "Report-Interval"}, RULE_OPTIONAL, -1, -1 },
3318 { { .avp_vendor = 10415, .avp_name = "Report-Amount"}, RULE_OPTIONAL, -1, -1 },
3319 { { .avp_vendor = 10415, .avp_name = "Event-Threshold-RSRP"}, RULE_OPTIONAL, -1, -1 },
3320 { { .avp_vendor = 10415, .avp_name = "Event-Threshold-RSRQ"}, RULE_OPTIONAL, -1, -1 },
3321 { { .avp_vendor = 10415, .avp_name = "Logging-Interval"}, RULE_OPTIONAL, -1, -1 },
3322 { { .avp_vendor = 10415, .avp_name = "Logging-Duration"}, RULE_OPTIONAL, -1, -1 },
3323 { { .avp_vendor = 10415, .avp_name = "Measurement-Period-LTE"}, RULE_OPTIONAL, -1, -1 },
3324 { { .avp_vendor = 10415, .avp_name = "Measurement-Period-UMTS"}, RULE_OPTIONAL, -1, -1 },
3325 { { .avp_vendor = 10415, .avp_name = "Collection-Period-RRM-LTE"}, RULE_OPTIONAL, -1, -1 },
3326 { { .avp_vendor = 10415, .avp_name = "Collection-Period-RRM-UMTS"}, RULE_OPTIONAL, -1, -1 },
3327 { { .avp_vendor = 10415, .avp_name = "Positioning-Method"}, RULE_OPTIONAL, -1, -1 },
3328 { { .avp_vendor = 10415, .avp_name = "Measurement-Quantity"}, RULE_OPTIONAL, -1, -1 },
3329 { { .avp_vendor = 10415, .avp_name = "Event-Threshold-Event-1F"}, RULE_OPTIONAL, -1, -1 },
3330 { { .avp_vendor = 10415, .avp_name = "Event-Threshold-Event-1I"}, RULE_OPTIONAL, -1, -1 },
3331 { { .avp_vendor = 10415, .avp_name = "MDT-Allowed-PLMN-Id"}, RULE_OPTIONAL, -1, -1 }
3332 };
3333 PARSE_loc_rules( rules, avp );
3334 }
3335 /* MME-Location-Information */
3336 {
3337 /* Grouped */
3338 struct dict_object * avp;
3339 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "MME-Location-Information"};
3340 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
3341 struct local_rules_definition rules[] =
3342 {
3343 { { .avp_vendor = 10415, .avp_name = "E-UTRAN-Cell-Global-Identity"}, RULE_OPTIONAL, -1, -1 },
3344 { { .avp_vendor = 10415, .avp_name = "Tracking-Area-Identity"}, RULE_OPTIONAL, -1, -1 },
3345 { { .avp_vendor = 10415, .avp_name = "Geographical-Information"}, RULE_OPTIONAL, -1, -1 },
3346 { { .avp_vendor = 10415, .avp_name = "Geodetic-Information"}, RULE_OPTIONAL, -1, -1 },
3347 { { .avp_vendor = 10415, .avp_name = "Current-Location-Retrieved"}, RULE_OPTIONAL, -1, -1 },
3348 { { .avp_vendor = 10415, .avp_name = "Age-Of-Location-Information"}, RULE_OPTIONAL, -1, -1 },
3349 { { .avp_vendor = 10415, .avp_name = "User-CSG-Information"}, RULE_OPTIONAL, -1, -1 },
3350 { { .avp_vendor = 10415, .avp_name = "eNodeB-Id"}, RULE_OPTIONAL, -1, -1 },
3351 { { .avp_vendor = 10415, .avp_name = "Extended-eNodeB-Id"}, RULE_OPTIONAL, -1, -1 }
3352 };
3353 PARSE_loc_rules( rules, avp );
3354 }
3355 /* PDP-Context */
3356 {
3357 /* Grouped */
3358 struct dict_object * avp;
3359 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "PDP-Context"};
3360 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
3361 struct local_rules_definition rules[] =
3362 {
3363 { { .avp_vendor = 10415, .avp_name = "Context-Identifier"}, RULE_REQUIRED, -1, -1 },
3364 { { .avp_vendor = 10415, .avp_name = "PDP-Type"}, RULE_REQUIRED, -1, -1 },
3365 { { .avp_vendor = 10415, .avp_name = "PDP-Address"}, RULE_OPTIONAL, -1, -1 },
3366 { { .avp_vendor = 10415, .avp_name = "QoS-Subscribed"}, RULE_REQUIRED, -1, -1 },
3367 { { .avp_vendor = 10415, .avp_name = "VPLMN-Dynamic-Address-Allowed"}, RULE_OPTIONAL, -1, -1 },
3368 { { .avp_vendor = 0, .avp_name = "Service-Selection"}, RULE_REQUIRED, -1, -1 },
3369 { { .avp_vendor = 10415, .avp_name = "3GPP-Charging-Characteristics"}, RULE_OPTIONAL, -1, -1 },
3370 { { .avp_vendor = 10415, .avp_name = "Ext-PDP-Type"}, RULE_OPTIONAL, -1, -1 },
3371 { { .avp_vendor = 10415, .avp_name = "Ext-PDP-Address"}, RULE_OPTIONAL, -1, -1 },
3372 { { .avp_vendor = 10415, .avp_name = "AMBR"}, RULE_OPTIONAL, -1, -1 },
3373 { { .avp_vendor = 10415, .avp_name = "APN-OI-Replacement"}, RULE_OPTIONAL, -1, -1 },
3374 { { .avp_vendor = 10415, .avp_name = "SIPTO-Permission"}, RULE_OPTIONAL, -1, -1 },
3375 { { .avp_vendor = 10415, .avp_name = "LIPA-Permission"}, RULE_OPTIONAL, -1, -1 },
3376 { { .avp_vendor = 10415, .avp_name = "Restoration-Priority"}, RULE_OPTIONAL, -1, -1 },
3377 { { .avp_vendor = 10415, .avp_name = "SIPTO-Local-Network-Permission"}, RULE_OPTIONAL, -1, -1 },
3378 { { .avp_vendor = 10415, .avp_name = "Non-IP-Data-Delivery-Mechanism"}, RULE_OPTIONAL, -1, -1 },
3379 { { .avp_vendor = 10415, .avp_name = "SCEF-ID"}, RULE_OPTIONAL, -1, -1 }
3380 };
3381 PARSE_loc_rules( rules, avp );
3382 }
3383 /* Emergency-Info */
3384 {
3385 /* Grouped */
3386 struct dict_object * avp;
3387 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Emergency-Info"};
3388 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
3389 struct local_rules_definition rules[] =
3390 {
3391 { { .avp_vendor = 10415, .avp_name = "MIP6-Agent-Info"}, RULE_OPTIONAL, -1, -1 }
3392 };
3393 PARSE_loc_rules( rules, avp );
3394 }
3395 /* GPRS-Subscription-Data */
3396 {
3397 /* Grouped */
3398 struct dict_object * avp;
3399 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "GPRS-Subscription-Data"};
3400 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
3401 struct local_rules_definition rules[] =
3402 {
3403 { { .avp_vendor = 10415, .avp_name = "Complete-Data-List-Included-Indicator"}, RULE_REQUIRED, -1, -1 },
3404 { { .avp_vendor = 10415, .avp_name = "PDP-Context"}, RULE_REQUIRED, 1, 50 }
3405 };
3406 PARSE_loc_rules( rules, avp );
3407 }
3408 /* APN-Configuration */
3409 {
3410 /* Grouped */
3411 struct dict_object * avp;
3412 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "APN-Configuration"};
3413 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
3414 struct local_rules_definition rules[] =
3415 {
3416 { { .avp_vendor = 10415, .avp_name = "Context-Identifier"}, RULE_REQUIRED, -1, -1 },
3417 { { .avp_vendor = 10415, .avp_name = "Served-Party-IP-Address"}, RULE_OPTIONAL, -1, 2 },
3418 { { .avp_vendor = 10415, .avp_name = "PDN-Type"}, RULE_REQUIRED, -1, -1 },
3419 { { .avp_vendor = 0, .avp_name = "Service-Selection"}, RULE_REQUIRED, -1, -1 },
3420 { { .avp_vendor = 10415, .avp_name = "EPS-Subscribed-QoS-Profile"}, RULE_OPTIONAL, -1, -1 },
3421 { { .avp_vendor = 10415, .avp_name = "VPLMN-Dynamic-Address-Allowed"}, RULE_OPTIONAL, -1, -1 },
3422 { { .avp_vendor = 10415, .avp_name = "MIP6-Agent-Info"}, RULE_OPTIONAL, -1, -1 },
3423 { { .avp_vendor = 10415, .avp_name = "Visited-Network-Identifier"}, RULE_OPTIONAL, -1, -1 },
3424 { { .avp_vendor = 10415, .avp_name = "PDN-GW-Allocation-Type"}, RULE_OPTIONAL, -1, -1 },
3425 { { .avp_vendor = 10415, .avp_name = "3GPP-Charging-Characteristics"}, RULE_OPTIONAL, -1, -1 },
3426 { { .avp_vendor = 10415, .avp_name = "AMBR"}, RULE_OPTIONAL, -1, -1 },
3427 { { .avp_vendor = 10415, .avp_name = "Specific-APN-Info"}, RULE_OPTIONAL, -1, -1 },
3428 { { .avp_vendor = 10415, .avp_name = "APN-OI-Replacement"}, RULE_OPTIONAL, -1, -1 },
3429 { { .avp_vendor = 10415, .avp_name = "SIPTO-Permission"}, RULE_OPTIONAL, -1, -1 },
3430 { { .avp_vendor = 10415, .avp_name = "LIPA-Permission"}, RULE_OPTIONAL, -1, -1 },
3431 { { .avp_vendor = 10415, .avp_name = "Restoration-Priority"}, RULE_OPTIONAL, -1, -1 },
3432 { { .avp_vendor = 10415, .avp_name = "SIPTO-Local-Network-Permission"}, RULE_OPTIONAL, -1, -1 },
3433 { { .avp_vendor = 10415, .avp_name = "WLAN-offloadability"}, RULE_OPTIONAL, -1, -1 },
3434 { { .avp_vendor = 10415, .avp_name = "Non-IP-PDN-Type-Indicator"}, RULE_OPTIONAL, -1, -1 },
3435 { { .avp_vendor = 10415, .avp_name = "Non-IP-Data-Delivery-Mechanism"}, RULE_OPTIONAL, -1, -1 },
3436 { { .avp_vendor = 10415, .avp_name = "SCEF-ID"}, RULE_OPTIONAL, -1, -1 },
3437 { { .avp_vendor = 10415, .avp_name = "SCEF-Realm"}, RULE_OPTIONAL, -1, -1 },
3438 { { .avp_vendor = 10415, .avp_name = "Preferred-Data-Mode"}, RULE_OPTIONAL, -1, -1 },
3439 { { .avp_vendor = 10415, .avp_name = "PDN-Connection-Continuity"}, RULE_OPTIONAL, -1, -1 }
3440 };
3441 PARSE_loc_rules( rules, avp );
3442 }
3443 /* EPS-Location-Information */
3444 {
3445 /* Grouped */
3446 struct dict_object * avp;
3447 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "EPS-Location-Information"};
3448 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
3449 struct local_rules_definition rules[] =
3450 {
3451 { { .avp_vendor = 10415, .avp_name = "MME-Location-Information"}, RULE_OPTIONAL, -1, -1 },
3452 { { .avp_vendor = 10415, .avp_name = "SGSN-Location-Information"}, RULE_OPTIONAL, -1, -1 }
3453 };
3454 PARSE_loc_rules( rules, avp );
3455 }
3456 /* Trace-Data */
3457 {
3458 /* Grouped */
3459 struct dict_object * avp;
3460 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Trace-Data"};
3461 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
3462 struct local_rules_definition rules[] =
3463 {
3464 { { .avp_vendor = 10415, .avp_name = "Trace-Reference"}, RULE_REQUIRED, -1, -1 },
3465 { { .avp_vendor = 10415, .avp_name = "Trace-Depth"}, RULE_REQUIRED, -1, -1 },
3466 { { .avp_vendor = 10415, .avp_name = "Trace-NE-Type-List"}, RULE_REQUIRED, -1, -1 },
3467 { { .avp_vendor = 10415, .avp_name = "Trace-Interface-List"}, RULE_OPTIONAL, -1, -1 },
3468 { { .avp_vendor = 10415, .avp_name = "Trace-Event-List"}, RULE_REQUIRED, -1, -1 },
3469 { { .avp_vendor = 10415, .avp_name = "OMC-Id"}, RULE_OPTIONAL, -1, -1 },
3470 { { .avp_vendor = 10415, .avp_name = "Trace-Collection-Entity"}, RULE_REQUIRED, -1, -1 },
3471 { { .avp_vendor = 10415, .avp_name = "MDT-Configuration"}, RULE_OPTIONAL, -1, -1 }
3472 };
3473 PARSE_loc_rules( rules, avp );
3474 }
3475 /* Active-APN */
3476 {
3477 /* Grouped */
3478 struct dict_object * avp;
3479 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Active-APN"};
3480 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
3481 struct local_rules_definition rules[] =
3482 {
3483 { { .avp_vendor = 10415, .avp_name = "Context-Identifier"}, RULE_REQUIRED, -1, -1 },
3484 { { .avp_vendor = 0, .avp_name = "Service-Selection"}, RULE_OPTIONAL, -1, -1 },
3485 { { .avp_vendor = 10415, .avp_name = "MIP6-Agent-Info"}, RULE_OPTIONAL, -1, -1 },
3486 { { .avp_vendor = 10415, .avp_name = "Visited-Network-Identifier"}, RULE_OPTIONAL, -1, -1 },
3487 { { .avp_vendor = 10415, .avp_name = "Specific-APN-Info"}, RULE_OPTIONAL, -1, -1 }
3488 };
3489 PARSE_loc_rules( rules, avp );
3490 }
3491 /* LCS-Info */
3492 {
3493 /* Grouped */
3494 struct dict_object * avp;
3495 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "LCS-Info"};
3496 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
3497 struct local_rules_definition rules[] =
3498 {
3499 { { .avp_vendor = 10415, .avp_name = "GMLC-Number"}, RULE_OPTIONAL, -1, -1 },
3500 { { .avp_vendor = 10415, .avp_name = "LCS-PrivacyException"}, RULE_OPTIONAL, -1, -1 },
3501 { { .avp_vendor = 10415, .avp_name = "MO-LR"}, RULE_OPTIONAL, -1, -1 }
3502 };
3503 PARSE_loc_rules( rules, avp );
3504 }
3505 /* APN-Configuration-Profile */
3506 {
3507 /* Grouped */
3508 struct dict_object * avp;
3509 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "APN-Configuration-Profile"};
3510 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
3511 struct local_rules_definition rules[] =
3512 {
3513 { { .avp_vendor = 10415, .avp_name = "Context-Identifier"}, RULE_REQUIRED, -1, -1 },
3514 { { .avp_vendor = 10415, .avp_name = "Additional-Context-Identifier"}, RULE_OPTIONAL, -1, -1 },
3515 { { .avp_vendor = 10415, .avp_name = "All-APN-Configurations-Included-Indicator"}, RULE_REQUIRED, -1, -1 },
3516 { { .avp_vendor = 10415, .avp_name = "APN-Configuration"}, RULE_REQUIRED, 1, -1 }
3517 };
3518 PARSE_loc_rules( rules, avp );
3519 }
3520 /* Subscription-Data */
3521 {
3522 /* Grouped */
3523 struct dict_object * avp;
3524 struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Subscription-Data"};
3525 CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
3526 struct local_rules_definition rules[] =
3527 {
3528 { { .avp_vendor = 10415, .avp_name = "Subscriber-Status"}, RULE_OPTIONAL, -1, -1 },
3529 { { .avp_vendor = 10415, .avp_name = "MSISDN"}, RULE_OPTIONAL, -1, -1 },
3530 { { .avp_vendor = 10415, .avp_name = "A-MSISDN"}, RULE_OPTIONAL, -1, -1 },
3531 { { .avp_vendor = 10415, .avp_name = "STN-SR"}, RULE_OPTIONAL, -1, -1 },
3532 { { .avp_vendor = 10415, .avp_name = "ICS-Indicator"}, RULE_OPTIONAL, -1, -1 },
3533 { { .avp_vendor = 10415, .avp_name = "Network-Access-Mode"}, RULE_OPTIONAL, -1, -1 },
3534 { { .avp_vendor = 10415, .avp_name = "Operator-Determined-Barring"}, RULE_OPTIONAL, -1, -1 },
3535 { { .avp_vendor = 10415, .avp_name = "HPLMN-ODB"}, RULE_OPTIONAL, -1, -1 },
3536 { { .avp_vendor = 10415, .avp_name = "Regional-Subscription-Zone-Code"}, RULE_OPTIONAL, -1, 10 },
3537 { { .avp_vendor = 10415, .avp_name = "Access-Restriction-Data"}, RULE_OPTIONAL, -1, -1 },
3538 { { .avp_vendor = 10415, .avp_name = "APN-OI-Replacement"}, RULE_OPTIONAL, -1, -1 },
3539 { { .avp_vendor = 10415, .avp_name = "LCS-Info"}, RULE_OPTIONAL, -1, -1 },
3540 { { .avp_vendor = 10415, .avp_name = "Teleservice-List"}, RULE_OPTIONAL, -1, -1 },
3541 { { .avp_vendor = 10415, .avp_name = "Call-Barring-Info"}, RULE_OPTIONAL, -1, -1 },
3542 { { .avp_vendor = 10415, .avp_name = "3GPP-Charging-Characteristics"}, RULE_OPTIONAL, -1, -1 },
3543 { { .avp_vendor = 10415, .avp_name = "AMBR"}, RULE_OPTIONAL, -1, -1 },
3544 { { .avp_vendor = 10415, .avp_name = "APN-Configuration-Profile"}, RULE_OPTIONAL, -1, -1 },
3545 { { .avp_vendor = 10415, .avp_name = "RAT-Frequency-Selection-Priority-ID"}, RULE_OPTIONAL, -1, -1 },
3546 { { .avp_vendor = 10415, .avp_name = "Trace-Data"}, RULE_OPTIONAL, -1, -1 },
3547 { { .avp_vendor = 10415, .avp_name = "GPRS-Subscription-Data"}, RULE_OPTIONAL, -1, -1 },
3548 { { .avp_vendor = 10415, .avp_name = "CSG-Subscription-Data"}, RULE_OPTIONAL, -1, -1 },
3549 { { .avp_vendor = 10415, .avp_name = "Roaming-Restricted-Due-To-Unsupported-Feature"}, RULE_OPTIONAL, -1, -1 },
3550 { { .avp_vendor = 10415, .avp_name = "Subscribed-Periodic-RAU-TAU-Timer"}, RULE_OPTIONAL, -1, -1 },
3551 { { .avp_vendor = 10415, .avp_name = "MPS-Priority"}, RULE_OPTIONAL, -1, -1 },
3552 { { .avp_vendor = 10415, .avp_name = "VPLMN-LIPA-Allowed"}, RULE_OPTIONAL, -1, -1 },
3553 { { .avp_vendor = 10415, .avp_name = "Relay-Node-Indicator"}, RULE_OPTIONAL, -1, -1 },
3554 { { .avp_vendor = 10415, .avp_name = "MDT-User-Consent"}, RULE_OPTIONAL, -1, -1 },
3555 { { .avp_vendor = 10415, .avp_name = "Subscribed-VSRVCC"}, RULE_OPTIONAL, -1, -1 },
3556 { { .avp_vendor = 10415, .avp_name = "ProSe-Subscription-Data"}, RULE_OPTIONAL, -1, -1 },
3557 { { .avp_vendor = 10415, .avp_name = "Subscription-Data-Flags"}, RULE_OPTIONAL, -1, -1 },
3558 { { .avp_vendor = 10415, .avp_name = "Adjacent-Access-Restriction-Data"}, RULE_OPTIONAL, -1, -1 },
3559 { { .avp_vendor = 10415, .avp_name = "DL-Buffering-Suggested-Packet-Count"}, RULE_OPTIONAL, -1, -1 },
3560 { { .avp_vendor = 10415, .avp_name = "IMSI-Group-Id"}, RULE_OPTIONAL, -1, -1 },
3561 { { .avp_vendor = 10415, .avp_name = "UE-Usage-Type"}, RULE_OPTIONAL, -1, -1 },
3562 { { .avp_vendor = 10415, .avp_name = "AESE-Communication-Pattern"}, RULE_OPTIONAL, -1, -1 },
3563 { { .avp_vendor = 10415, .avp_name = "Monitoring-Event-Configuration"}, RULE_OPTIONAL, -1, -1 },
3564 { { .avp_vendor = 10415, .avp_name = "Emergency-Info"}, RULE_OPTIONAL, -1, -1 },
3565 { { .avp_vendor = 10415, .avp_name = "V2X-Subscription-Data"}, RULE_OPTIONAL, -1, -1 },
3566 { { .avp_vendor = 10415, .avp_name = "eDRX-Cycle-Length"}, RULE_OPTIONAL, -1, -1 }
3567 };
3568 PARSE_loc_rules( rules, avp );
3569 }
3570
3571 }
3572
3573 /* Commands section */
3574 {
3575
3576 }
3577
3578 LOG_D( "Extension 'Dictionary definitions for ts29272_avps (e30)' initialized");
3579 return 0;
3580}
3581
3582int dict_entry(char * conffile)
3583{
3584 dict_ts29272_avps_load_defs(conffile);
3585 return dict_ts29272_avps_load_rules(conffile);
3586}
3587
3588const char* dict_ts29272_avps_proto_ver(char * conffile) {
3589 return ts29272_avps_proto_ver;
3590}
3591
3592const double dict_ts29272_avps_gen_ts(char * conffile) {
3593 return ts29272_avps_gen_date;
3594}
3595
3596EXTENSION_ENTRY2("dict_ts29272_avps", dict_ts29272_avps_load_defs, dict_ts29272_avps_load_rules, "dict_ts32299_avps", "dict_ts29336_avps", "dict_ts29273_avps", "dict_ts29212_avps", "dict_ts29214_avps", "dict_ts29344_avps", "dict_ts29338_avps", "dict_ts29217_avps", "dict_ts29329_avps", "dict_ts29229_avps", "dict_ts29173_avps", "dict_rfc5778_avps", "dict_ts29061_avps", "dict_rfc5447_avps", "dict_draftload_avps", "dict_rfc7683_avps", "dict_rfc4004_avps", "dict_rfc5777_avps", "dict_rfc7944_avps");
3597
3598
3599