Mercurial > hg > freeDiameter
comparison extensions/dict_dcca_3gpp/dict_dcca_3gpp.c @ 1486:eeb5706333c3
Update to 3GPP TS 29.061 V15.5.0 (2018-12)
Add AVPs:
- TWAN-Identifier, OctetString, code 29, section 16.4.7
- 3GPP-User-Location-Info-Time, OctetString, code 30, section 16.4.7
- 3GPP-Secondary-RAT-Usage, OctetString, code 31, section 16.4.7
- MBMS-Access-Indicator, Enumerated, code 923, section 20.5a.1
- MBMS-GW-SSM-IP-Address, OctetString, code 924, section 20.5a.2
- MBMS-GW-SSM-IPv6-Address, OctetString, code 925, section 20.5a.3
- MBMS-BMSC-SSM-UDP-Port, OctetString, code 926, section 20.5a.4
- MBMS-GW-UDP-Port, OctetString, code 927, section 20.5a.5
- MBMS-GW-UDP-Port-Indicator, Enumerated, code 928, section 20.5a.6
- MBMS-Data-Transfer-Start, Unsigned64, code 929, section 20.5a.7
- MBMS-Data-Transfer-Stop, Unsigned64, code 930, section 20.5a.8
- MBMS-Flag, Unsigned32, code 931, section 20.5a.9
- Restart-Counter, Unsigned32, code 932, section 20.5a.10
- Diagnostic-Info, Unsigned32, code 933, section 20.5a.11
- MBMS-Cell-List, OctetString, code 934, section 20.5a.12
Update notes and comments to reflect current style.
author | Luke Mewburn <luke@mewburn.net> |
---|---|
date | Fri, 27 Mar 2020 10:30:27 +1100 |
parents | a0ca9ac32a3a |
children | 431ad99c39fe |
comparison
equal
deleted
inserted
replaced
1485:a0ca9ac32a3a | 1486:eeb5706333c3 |
---|---|
366 /* Changes will be lost during the next update. */ | 366 /* Changes will be lost during the next update. */ |
367 /* Do not modify; modify the source .csv file instead. */ | 367 /* Do not modify; modify the source .csv file instead. */ |
368 /*==================================================================*/ | 368 /*==================================================================*/ |
369 | 369 |
370 /*==================================================================*/ | 370 /*==================================================================*/ |
371 /* 3GPP 29.061-c00 (12.0.0 2012.12.20) */ | 371 /* 3GPP TS 29.061 V15.5.0 (2018-12) */ |
372 /* 3GPP 29.061 is not very clear and self-inconsistent about M */ | 372 /* From 3GPP 29061-f50.doc */ |
373 /* for this reason, other sources are assumed more trustworthy */ | |
374 /*==================================================================*/ | 373 /*==================================================================*/ |
375 | 374 |
376 /* M inconsistently specified */ | 375 /*==================================================================*/ |
376 /* 3GPP TS 29.061 Table 9a: Gi/Sgi specific AVPs */ | |
377 | |
378 /* Note: 3GPP TS 29.061 is unclear and inconsistent about M. */ | |
379 /* For this reason, other sources are assumed more trustworthy. */ | |
380 /*==================================================================*/ | |
381 | |
382 /* Note: 3GPP-IMSI (1) changed to Must M. */ | |
377 /* 3GPP-IMSI, UTF8String, code 1, section 16.4.7 */ | 383 /* 3GPP-IMSI, UTF8String, code 1, section 16.4.7 */ |
378 { | 384 { |
379 struct dict_avp_data data = { | 385 struct dict_avp_data data = { |
380 1, /* Code */ | 386 1, /* Code */ |
381 10415, /* Vendor */ | 387 10415, /* Vendor */ |
385 AVP_TYPE_OCTETSTRING /* base type of data */ | 391 AVP_TYPE_OCTETSTRING /* base type of data */ |
386 }; | 392 }; |
387 CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL); | 393 CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL); |
388 }; | 394 }; |
389 | 395 |
390 /* 29.061 says OctetString; dumps say UInt32; manually changed */ | 396 /* Note: 3GPP-Charging-Id (2) type changed from OctetString to Unsigned32, */ |
391 /* 29.061 says MUST NOT M; dumps say MUST */ | 397 /* per 3GPP TS 29.061 clause 16.4.7.2/2 and packet dumps. */ |
392 /* 3GPP-Charging-Id, Unsigned32, code 2, section 16.4.7 */ | 398 /* 3GPP-Charging-Id, Unsigned32, code 2, section 16.4.7 */ |
393 { | 399 { |
394 struct dict_avp_data data = { | 400 struct dict_avp_data data = { |
395 2, /* Code */ | 401 2, /* Code */ |
396 10415, /* Vendor */ | 402 10415, /* Vendor */ |
400 AVP_TYPE_UNSIGNED32 /* base type of data */ | 406 AVP_TYPE_UNSIGNED32 /* base type of data */ |
401 }; | 407 }; |
402 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); | 408 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); |
403 }; | 409 }; |
404 | 410 |
405 /* 29.061 says MUST NOT M; dumps say MUST */ | 411 /* Note: 3GPP-PDP-Type (3) changed to Must M. */ |
406 /* 3GPP-PDP-Type, Enumerated, code 3, section 16.4.7 */ | 412 /* 3GPP-PDP-Type, Enumerated, code 3, section 16.4.7 */ |
407 { | 413 { |
408 struct dict_avp_data data = { | 414 struct dict_avp_data data = { |
409 3, /* Code */ | 415 3, /* Code */ |
410 10415, /* Vendor */ | 416 10415, /* Vendor */ |
430 AVP_TYPE_OCTETSTRING /* base type of data */ | 436 AVP_TYPE_OCTETSTRING /* base type of data */ |
431 }; | 437 }; |
432 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); | 438 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); |
433 }; | 439 }; |
434 | 440 |
435 /* 29.061 says MUST NOT M; old contrib/3gpp says MUST */ | 441 /* Note: 3GPP-GPRS-Negotiated-QoS-Profile (5) changed to Must M per contrib/3gpp. */ |
436 /* 3GPP-GPRS-Negotiated-QoS-Profile, UTF8String, code 5, section 16.4.7 */ | 442 /* 3GPP-GPRS-Negotiated-QoS-Profile, UTF8String, code 5, section 16.4.7 */ |
437 { | 443 { |
438 struct dict_avp_data data = { | 444 struct dict_avp_data data = { |
439 5, /* Code */ | 445 5, /* Code */ |
440 10415, /* Vendor */ | 446 10415, /* Vendor */ |
444 AVP_TYPE_OCTETSTRING /* base type of data */ | 450 AVP_TYPE_OCTETSTRING /* base type of data */ |
445 }; | 451 }; |
446 CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL); | 452 CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL); |
447 }; | 453 }; |
448 | 454 |
449 /* M inconsistently specified; old contrib/3gg says MUST NOT */ | |
450 /* 3GPP-SGSN-Address, OctetString, code 6, section 16.4.7 */ | 455 /* 3GPP-SGSN-Address, OctetString, code 6, section 16.4.7 */ |
451 { | 456 { |
452 struct dict_avp_data data = { | 457 struct dict_avp_data data = { |
453 6, /* Code */ | 458 6, /* Code */ |
454 10415, /* Vendor */ | 459 10415, /* Vendor */ |
471 AVP_TYPE_OCTETSTRING /* base type of data */ | 476 AVP_TYPE_OCTETSTRING /* base type of data */ |
472 }; | 477 }; |
473 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); | 478 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); |
474 }; | 479 }; |
475 | 480 |
476 /* 29.061 says MUST NOT M; dumps say MUST */ | 481 /* Note: 3GPP-IMSI-MCC-MNC (8) changed to Must M per packet dumps. */ |
477 /* 3GPP-IMSI-MCC-MNC, UTF8String, code 8, section 16.4.7 */ | 482 /* 3GPP-IMSI-MCC-MNC, UTF8String, code 8, section 16.4.7 */ |
478 { | 483 { |
479 struct dict_avp_data data = { | 484 struct dict_avp_data data = { |
480 8, /* Code */ | 485 8, /* Code */ |
481 10415, /* Vendor */ | 486 10415, /* Vendor */ |
485 AVP_TYPE_OCTETSTRING /* base type of data */ | 490 AVP_TYPE_OCTETSTRING /* base type of data */ |
486 }; | 491 }; |
487 CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL); | 492 CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL); |
488 }; | 493 }; |
489 | 494 |
490 /* 29.061 says MUST NOT M; old contrib/3gpp says MUST */ | 495 /* Note: 3GPP-GGSN-MCC-MNC (9) changed to Must M per contrib/3gpp. */ |
491 /* 3GPP-GGSN-MCC-MNC, UTF8String, code 9, section 16.4.7 */ | 496 /* 3GPP-GGSN-MCC-MNC, UTF8String, code 9, section 16.4.7 */ |
492 { | 497 { |
493 struct dict_avp_data data = { | 498 struct dict_avp_data data = { |
494 9, /* Code */ | 499 9, /* Code */ |
495 10415, /* Vendor */ | 500 10415, /* Vendor */ |
499 AVP_TYPE_OCTETSTRING /* base type of data */ | 504 AVP_TYPE_OCTETSTRING /* base type of data */ |
500 }; | 505 }; |
501 CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL); | 506 CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL); |
502 }; | 507 }; |
503 | 508 |
504 /* 29.061 says MUST NOT M; old contrib/3gpp says MUST */ | 509 /* Note: 3GPP-NSAPI (10) changed to Must M per contrib/3gpp. */ |
505 /* 3GPP-NSAPI, OctetString, code 10, section 16.4.7 */ | 510 /* 3GPP-NSAPI, OctetString, code 10, section 16.4.7 */ |
506 { | 511 { |
507 struct dict_avp_data data = { | 512 struct dict_avp_data data = { |
508 10, /* Code */ | 513 10, /* Code */ |
509 10415, /* Vendor */ | 514 10415, /* Vendor */ |
513 AVP_TYPE_OCTETSTRING /* base type of data */ | 518 AVP_TYPE_OCTETSTRING /* base type of data */ |
514 }; | 519 }; |
515 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); | 520 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); |
516 }; | 521 }; |
517 | 522 |
518 /* added manually, missing in AVP table */ | 523 /* Note: 3GPP TS 29.061 table 9a does not define */ |
524 /* 3GPP-Session-Stop-Indicator (11) even when it is referenced */ | |
525 /* by other 3GPP Diameter AVPs including PS-Information (874). */ | |
519 /* 3GPP-Session-Stop-Indicator, OctetString, code 11, section 16.4.7 */ | 526 /* 3GPP-Session-Stop-Indicator, OctetString, code 11, section 16.4.7 */ |
520 { | 527 { |
521 struct dict_avp_data data = { | 528 struct dict_avp_data data = { |
522 11, /* Code */ | 529 11, /* Code */ |
523 10415, /* Vendor */ | 530 10415, /* Vendor */ |
527 AVP_TYPE_OCTETSTRING /* base type of data */ | 534 AVP_TYPE_OCTETSTRING /* base type of data */ |
528 }; | 535 }; |
529 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); | 536 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); |
530 }; | 537 }; |
531 | 538 |
532 /* 29.061 says MUST NOT M; old contrib/3gpp says MUST */ | 539 /* Note: 3GPP-Selection-Mode (12) changed to Must M per contrib/3gpp. */ |
533 /* 3GPP-Selection-Mode, UTF8String, code 12, section 16.4.7 */ | 540 /* 3GPP-Selection-Mode, UTF8String, code 12, section 16.4.7 */ |
534 { | 541 { |
535 struct dict_avp_data data = { | 542 struct dict_avp_data data = { |
536 12, /* Code */ | 543 12, /* Code */ |
537 10415, /* Vendor */ | 544 10415, /* Vendor */ |
541 AVP_TYPE_OCTETSTRING /* base type of data */ | 548 AVP_TYPE_OCTETSTRING /* base type of data */ |
542 }; | 549 }; |
543 CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL); | 550 CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL); |
544 }; | 551 }; |
545 | 552 |
546 /* 29.061 says MUST NOT M; old contrib/3gpp says MUST */ | 553 /* Note: 3GPP-Charging-Characteristics (13) changed to Must M per contrib/3gpp. */ |
547 /* 3GPP-Charging-Characteristics, UTF8String, code 13, section 16.4.7 */ | 554 /* 3GPP-Charging-Characteristics, UTF8String, code 13, section 16.4.7 */ |
548 { | 555 { |
549 struct dict_avp_data data = { | 556 struct dict_avp_data data = { |
550 13, /* Code */ | 557 13, /* Code */ |
551 10415, /* Vendor */ | 558 10415, /* Vendor */ |
555 AVP_TYPE_OCTETSTRING /* base type of data */ | 562 AVP_TYPE_OCTETSTRING /* base type of data */ |
556 }; | 563 }; |
557 CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL); | 564 CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL); |
558 }; | 565 }; |
559 | 566 |
560 /* 29.061 says MUST NOT M; old contrib/3gpp says MUST */ | 567 /* Note: 3GPP TS 29.061 V12.6.0 (2014-06) renamed */ |
568 /* 3GPP-CG-IPv6-Address (14) to 3GPP-CG-Ipv6-Address. */ | |
569 /* This rename was not applied. */ | |
570 /* 3GPP-CG-IPv6-Address (14) changed to Must M per contrib/3gpp. */ | |
561 /* 3GPP-CG-IPv6-Address, OctetString, code 14, section 16.4.7 */ | 571 /* 3GPP-CG-IPv6-Address, OctetString, code 14, section 16.4.7 */ |
562 { | 572 { |
563 struct dict_avp_data data = { | 573 struct dict_avp_data data = { |
564 14, /* Code */ | 574 14, /* Code */ |
565 10415, /* Vendor */ | 575 10415, /* Vendor */ |
569 AVP_TYPE_OCTETSTRING /* base type of data */ | 579 AVP_TYPE_OCTETSTRING /* base type of data */ |
570 }; | 580 }; |
571 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); | 581 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); |
572 }; | 582 }; |
573 | 583 |
574 /* M inconsistently specified */ | 584 /* Note: 3GPP TS 29.061 V12.6.0 (2014-06) renamed */ |
575 /* 29.061 says MUST NOT M; old contrib/3gpp says MUST */ | 585 /* 3GPP-SGSN-IPv6-Address (15) to 3GPP-SGSN-Ipv6-Address. */ |
586 /* This rename was not applied. */ | |
587 /* 3GPP-SGSN-IPv6-Address (15) changed to Must M per contrib/3gpp. */ | |
576 /* 3GPP-SGSN-IPv6-Address, OctetString, code 15, section 16.4.7 */ | 588 /* 3GPP-SGSN-IPv6-Address, OctetString, code 15, section 16.4.7 */ |
577 { | 589 { |
578 struct dict_avp_data data = { | 590 struct dict_avp_data data = { |
579 15, /* Code */ | 591 15, /* Code */ |
580 10415, /* Vendor */ | 592 10415, /* Vendor */ |
584 AVP_TYPE_OCTETSTRING /* base type of data */ | 596 AVP_TYPE_OCTETSTRING /* base type of data */ |
585 }; | 597 }; |
586 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); | 598 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); |
587 }; | 599 }; |
588 | 600 |
589 /* 29.061 says MUST NOT M; old contrib/3gpp says MUST */ | 601 /* Note: 3GPP TS 29.061 V12.6.0 (2014-06) renamed */ |
602 /* 3GPP-GGSN-IPv6-Address (16) to 3GPP-GGSN-Ipv6-Address. */ | |
603 /* This rename was not applied. */ | |
604 /* 3GPP-GGSN-IPv6-Address (16) changed to Must M per contrib/3gpp. */ | |
590 /* 3GPP-GGSN-IPv6-Address, OctetString, code 16, section 16.4.7 */ | 605 /* 3GPP-GGSN-IPv6-Address, OctetString, code 16, section 16.4.7 */ |
591 { | 606 { |
592 struct dict_avp_data data = { | 607 struct dict_avp_data data = { |
593 16, /* Code */ | 608 16, /* Code */ |
594 10415, /* Vendor */ | 609 10415, /* Vendor */ |
598 AVP_TYPE_OCTETSTRING /* base type of data */ | 613 AVP_TYPE_OCTETSTRING /* base type of data */ |
599 }; | 614 }; |
600 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); | 615 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); |
601 }; | 616 }; |
602 | 617 |
603 /* 29.061 says MUST NOT M; old contrib/3gpp says MUST */ | 618 /* Note: 3GPP TS 29.061 V12.6.0 (2014-06) renamed */ |
619 /* 3GPP-IPv6-DNS-Servers (17) to 3GPP-Ipv6-DNS-Servers. */ | |
620 /* This rename was not applied. */ | |
621 /* 3GPP-IPv6-DNS-Servers (17) changed to Must M per contrib/3gpp. */ | |
604 /* 3GPP-IPv6-DNS-Servers, OctetString, code 17, section 16.4.7 */ | 622 /* 3GPP-IPv6-DNS-Servers, OctetString, code 17, section 16.4.7 */ |
605 { | 623 { |
606 struct dict_avp_data data = { | 624 struct dict_avp_data data = { |
607 17, /* Code */ | 625 17, /* Code */ |
608 10415, /* Vendor */ | 626 10415, /* Vendor */ |
612 AVP_TYPE_OCTETSTRING /* base type of data */ | 630 AVP_TYPE_OCTETSTRING /* base type of data */ |
613 }; | 631 }; |
614 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); | 632 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); |
615 }; | 633 }; |
616 | 634 |
617 /* 29.061 says MUST NOT M; old contrib/3gpp says MUST */ | 635 /* Note: 3GPP-SGSN-MCC-MNC (18) changed to Must M per contrib/3gpp. */ |
618 /* 3GPP-SGSN-MCC-MNC, UTF8String, code 18, section 16.4.7 */ | 636 /* 3GPP-SGSN-MCC-MNC, UTF8String, code 18, section 16.4.7 */ |
619 { | 637 { |
620 struct dict_avp_data data = { | 638 struct dict_avp_data data = { |
621 18, /* Code */ | 639 18, /* Code */ |
622 10415, /* Vendor */ | 640 10415, /* Vendor */ |
626 AVP_TYPE_OCTETSTRING /* base type of data */ | 644 AVP_TYPE_OCTETSTRING /* base type of data */ |
627 }; | 645 }; |
628 CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL); | 646 CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL); |
629 }; | 647 }; |
630 | 648 |
631 /* M inconsistently specified */ | 649 /* Note: 3GPP-IMEISV (20) changed to Must M. */ |
632 /* 3GPP-IMEISV, OctetString, code 20, section 16.4.7 */ | 650 /* 3GPP-IMEISV, OctetString, code 20, section 16.4.7 */ |
633 { | 651 { |
634 struct dict_avp_data data = { | 652 struct dict_avp_data data = { |
635 20, /* Code */ | 653 20, /* Code */ |
636 10415, /* Vendor */ | 654 10415, /* Vendor */ |
640 AVP_TYPE_OCTETSTRING /* base type of data */ | 658 AVP_TYPE_OCTETSTRING /* base type of data */ |
641 }; | 659 }; |
642 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); | 660 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); |
643 }; | 661 }; |
644 | 662 |
645 /* M inconsistently specified */ | 663 /* Note: 3GPP-RAT-Type (21) changed to Must M. */ |
646 /* 3GPP-RAT-Type, OctetString, code 21, section 16.4.7 */ | 664 /* 3GPP-RAT-Type, OctetString, code 21, section 16.4.7 */ |
647 { | 665 { |
648 struct dict_avp_data data = { | 666 struct dict_avp_data data = { |
649 21, /* Code */ | 667 21, /* Code */ |
650 10415, /* Vendor */ | 668 10415, /* Vendor */ |
654 AVP_TYPE_OCTETSTRING /* base type of data */ | 672 AVP_TYPE_OCTETSTRING /* base type of data */ |
655 }; | 673 }; |
656 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); | 674 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); |
657 }; | 675 }; |
658 | 676 |
659 /* M inconsistently specified */ | 677 /* Note: 3GPP-User-Location-Info (22) changed to Must M. */ |
660 /* 3GPP-User-Location-Info, OctetString, code 22, section 16.4.7 */ | 678 /* 3GPP-User-Location-Info, OctetString, code 22, section 16.4.7 */ |
661 { | 679 { |
662 struct dict_avp_data data = { | 680 struct dict_avp_data data = { |
663 22, /* Code */ | 681 22, /* Code */ |
664 10415, /* Vendor */ | 682 10415, /* Vendor */ |
668 AVP_TYPE_OCTETSTRING /* base type of data */ | 686 AVP_TYPE_OCTETSTRING /* base type of data */ |
669 }; | 687 }; |
670 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); | 688 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); |
671 }; | 689 }; |
672 | 690 |
673 /* M inconsistently specified */ | 691 /* Note: 3GPP-MS-TimeZone (23) changed to Must M. */ |
674 /* 3GPP-MS-TimeZone, OctetString, code 23, section 16.4.7 */ | 692 /* 3GPP-MS-TimeZone, OctetString, code 23, section 16.4.7 */ |
675 { | 693 { |
676 struct dict_avp_data data = { | 694 struct dict_avp_data data = { |
677 23, /* Code */ | 695 23, /* Code */ |
678 10415, /* Vendor */ | 696 10415, /* Vendor */ |
742 /* for External-Identifier (3111). */ | 760 /* for External-Identifier (3111). */ |
743 /* */ | 761 /* */ |
744 /* External-Identifier (28) OctetString replaced by */ | 762 /* External-Identifier (28) OctetString replaced by */ |
745 /* External-Identifier (3111) UTF8String. */ | 763 /* External-Identifier (3111) UTF8String. */ |
746 | 764 |
747 /* TMGI, OctetString, code 900, section 17.07.02 */ | 765 |
766 /* TWAN-Identifier, OctetString, code 29, section 16.4.7 */ | |
767 { | |
768 struct dict_avp_data data = { | |
769 29, /* Code */ | |
770 10415, /* Vendor */ | |
771 "TWAN-Identifier", /* Name */ | |
772 AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ | |
773 AVP_FLAG_VENDOR, /* Fixed flag values */ | |
774 AVP_TYPE_OCTETSTRING /* base type of data */ | |
775 }; | |
776 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); | |
777 }; | |
778 | |
779 /* 3GPP-User-Location-Info-Time, OctetString, code 30, section 16.4.7 */ | |
780 { | |
781 struct dict_avp_data data = { | |
782 30, /* Code */ | |
783 10415, /* Vendor */ | |
784 "3GPP-User-Location-Info-Time", /* Name */ | |
785 AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ | |
786 AVP_FLAG_VENDOR, /* Fixed flag values */ | |
787 AVP_TYPE_OCTETSTRING /* base type of data */ | |
788 }; | |
789 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); | |
790 }; | |
791 | |
792 /* 3GPP-Secondary-RAT-Usage, OctetString, code 31, section 16.4.7 */ | |
793 { | |
794 struct dict_avp_data data = { | |
795 31, /* Code */ | |
796 10415, /* Vendor */ | |
797 "3GPP-Secondary-RAT-Usage", /* Name */ | |
798 AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ | |
799 AVP_FLAG_VENDOR, /* Fixed flag values */ | |
800 AVP_TYPE_OCTETSTRING /* base type of data */ | |
801 }; | |
802 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); | |
803 }; | |
804 | |
805 /*==================================================================*/ | |
806 /* 3GPP TS 29.061 Table 10: Gmb specific AVPs */ | |
807 /*==================================================================*/ | |
808 | |
809 /* TMGI, OctetString, code 900, section 17.7.2 */ | |
748 { | 810 { |
749 struct dict_avp_data data = { | 811 struct dict_avp_data data = { |
750 900, /* Code */ | 812 900, /* Code */ |
751 10415, /* Vendor */ | 813 10415, /* Vendor */ |
752 "TMGI", /* Name */ | 814 "TMGI", /* Name */ |
755 AVP_TYPE_OCTETSTRING /* base type of data */ | 817 AVP_TYPE_OCTETSTRING /* base type of data */ |
756 }; | 818 }; |
757 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); | 819 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); |
758 }; | 820 }; |
759 | 821 |
760 /* Required-MBMS-Bearer-Capabilities, UTF8String, code 901, section 17.07.03 */ | 822 /* Required-MBMS-Bearer-Capabilities, UTF8String, code 901, section 17.7.3 */ |
761 { | 823 { |
762 struct dict_avp_data data = { | 824 struct dict_avp_data data = { |
763 901, /* Code */ | 825 901, /* Code */ |
764 10415, /* Vendor */ | 826 10415, /* Vendor */ |
765 "Required-MBMS-Bearer-Capabilities", /* Name */ | 827 "Required-MBMS-Bearer-Capabilities", /* Name */ |
768 AVP_TYPE_OCTETSTRING /* base type of data */ | 830 AVP_TYPE_OCTETSTRING /* base type of data */ |
769 }; | 831 }; |
770 CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL); | 832 CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL); |
771 }; | 833 }; |
772 | 834 |
773 /* MBMS-StartStop-Indication, Enumerated, code 902, section 17.07.05 */ | 835 /* MBMS-StartStop-Indication, Enumerated, code 902, section 17.7.5 */ |
774 { | 836 { |
775 struct dict_avp_data data = { | 837 struct dict_avp_data data = { |
776 902, /* Code */ | 838 902, /* Code */ |
777 10415, /* Vendor */ | 839 10415, /* Vendor */ |
778 "MBMS-StartStop-Indication", /* Name */ | 840 "MBMS-StartStop-Indication", /* Name */ |
784 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/MBMS-StartStop-Indication)", NULL, NULL, NULL }; | 846 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/MBMS-StartStop-Indication)", NULL, NULL, NULL }; |
785 CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type); | 847 CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type); |
786 CHECK_dict_new(DICT_AVP, &data, type, NULL); | 848 CHECK_dict_new(DICT_AVP, &data, type, NULL); |
787 }; | 849 }; |
788 | 850 |
789 /* MBMS-Service-Area, OctetString, code 903, section 17.07.06 */ | 851 /* MBMS-Service-Area, OctetString, code 903, section 17.7.6 */ |
790 { | 852 { |
791 struct dict_avp_data data = { | 853 struct dict_avp_data data = { |
792 903, /* Code */ | 854 903, /* Code */ |
793 10415, /* Vendor */ | 855 10415, /* Vendor */ |
794 "MBMS-Service-Area", /* Name */ | 856 "MBMS-Service-Area", /* Name */ |
797 AVP_TYPE_OCTETSTRING /* base type of data */ | 859 AVP_TYPE_OCTETSTRING /* base type of data */ |
798 }; | 860 }; |
799 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); | 861 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); |
800 }; | 862 }; |
801 | 863 |
802 /* MBMS-Session-Duration, OctetString, code 904, section 17.07.07 */ | 864 /* MBMS-Session-Duration, OctetString, code 904, section 17.7.7 */ |
803 { | 865 { |
804 struct dict_avp_data data = { | 866 struct dict_avp_data data = { |
805 904, /* Code */ | 867 904, /* Code */ |
806 10415, /* Vendor */ | 868 10415, /* Vendor */ |
807 "MBMS-Session-Duration", /* Name */ | 869 "MBMS-Session-Duration", /* Name */ |
810 AVP_TYPE_OCTETSTRING /* base type of data */ | 872 AVP_TYPE_OCTETSTRING /* base type of data */ |
811 }; | 873 }; |
812 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); | 874 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); |
813 }; | 875 }; |
814 | 876 |
815 /* Alternative-APN, UTF8String, code 905, section 17.07.08 */ | 877 /* Alternative-APN, UTF8String, code 905, section 17.7.8 */ |
816 { | 878 { |
817 struct dict_avp_data data = { | 879 struct dict_avp_data data = { |
818 905, /* Code */ | 880 905, /* Code */ |
819 10415, /* Vendor */ | 881 10415, /* Vendor */ |
820 "Alternative-APN", /* Name */ | 882 "Alternative-APN", /* Name */ |
823 AVP_TYPE_OCTETSTRING /* base type of data */ | 885 AVP_TYPE_OCTETSTRING /* base type of data */ |
824 }; | 886 }; |
825 CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL); | 887 CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL); |
826 }; | 888 }; |
827 | 889 |
828 /* MBMS-Service-Type, Enumerated, code 906, section 17.07.09 */ | 890 /* MBMS-Service-Type, Enumerated, code 906, section 17.7.9 */ |
829 { | 891 { |
830 struct dict_avp_data data = { | 892 struct dict_avp_data data = { |
831 906, /* Code */ | 893 906, /* Code */ |
832 10415, /* Vendor */ | 894 10415, /* Vendor */ |
833 "MBMS-Service-Type", /* Name */ | 895 "MBMS-Service-Type", /* Name */ |
839 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/MBMS-Service-Type)", NULL, NULL, NULL }; | 901 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/MBMS-Service-Type)", NULL, NULL, NULL }; |
840 CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type); | 902 CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type); |
841 CHECK_dict_new(DICT_AVP, &data, type, NULL); | 903 CHECK_dict_new(DICT_AVP, &data, type, NULL); |
842 }; | 904 }; |
843 | 905 |
844 /* MBMS-2G-3G-Indicator, Enumerated, code 907, section 17.07.10 */ | 906 /* MBMS-2G-3G-Indicator, Enumerated, code 907, section 17.7.10 */ |
845 { | 907 { |
846 struct dict_avp_data data = { | 908 struct dict_avp_data data = { |
847 907, /* Code */ | 909 907, /* Code */ |
848 10415, /* Vendor */ | 910 10415, /* Vendor */ |
849 "MBMS-2G-3G-Indicator", /* Name */ | 911 "MBMS-2G-3G-Indicator", /* Name */ |
855 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/MBMS-2G-3G-Indicator)", NULL, NULL, NULL }; | 917 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/MBMS-2G-3G-Indicator)", NULL, NULL, NULL }; |
856 CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type); | 918 CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type); |
857 CHECK_dict_new(DICT_AVP, &data, type, NULL); | 919 CHECK_dict_new(DICT_AVP, &data, type, NULL); |
858 }; | 920 }; |
859 | 921 |
860 /* MBMS-Session-Identity, OctetString, code 908, section 17.07.11 */ | 922 /* MBMS-Session-Identity, OctetString, code 908, section 17.7.11 */ |
861 { | 923 { |
862 struct dict_avp_data data = { | 924 struct dict_avp_data data = { |
863 908, /* Code */ | 925 908, /* Code */ |
864 10415, /* Vendor */ | 926 10415, /* Vendor */ |
865 "MBMS-Session-Identity", /* Name */ | 927 "MBMS-Session-Identity", /* Name */ |
868 AVP_TYPE_OCTETSTRING /* base type of data */ | 930 AVP_TYPE_OCTETSTRING /* base type of data */ |
869 }; | 931 }; |
870 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); | 932 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); |
871 }; | 933 }; |
872 | 934 |
873 /* RAI, UTF8String, code 909, section 17.07.12 */ | 935 /* RAI, UTF8String, code 909, section 17.7.12 */ |
874 { | 936 { |
875 struct dict_avp_data data = { | 937 struct dict_avp_data data = { |
876 909, /* Code */ | 938 909, /* Code */ |
877 10415, /* Vendor */ | 939 10415, /* Vendor */ |
878 "RAI", /* Name */ | 940 "RAI", /* Name */ |
881 AVP_TYPE_OCTETSTRING /* base type of data */ | 943 AVP_TYPE_OCTETSTRING /* base type of data */ |
882 }; | 944 }; |
883 CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL); | 945 CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL); |
884 }; | 946 }; |
885 | 947 |
886 /* Additional-MBMS-Trace-Info, OctetString, code 910, section 17.07.13 */ | 948 /* Additional-MBMS-Trace-Info, OctetString, code 910, section 17.7.13 */ |
887 { | 949 { |
888 struct dict_avp_data data = { | 950 struct dict_avp_data data = { |
889 910, /* Code */ | 951 910, /* Code */ |
890 10415, /* Vendor */ | 952 10415, /* Vendor */ |
891 "Additional-MBMS-Trace-Info", /* Name */ | 953 "Additional-MBMS-Trace-Info", /* Name */ |
894 AVP_TYPE_OCTETSTRING /* base type of data */ | 956 AVP_TYPE_OCTETSTRING /* base type of data */ |
895 }; | 957 }; |
896 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); | 958 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); |
897 }; | 959 }; |
898 | 960 |
899 /* MBMS-Time-To-Data-Transfer, OctetString, code 911, section 17.07.14 */ | 961 /* MBMS-Time-To-Data-Transfer, OctetString, code 911, section 17.7.14 */ |
900 { | 962 { |
901 struct dict_avp_data data = { | 963 struct dict_avp_data data = { |
902 911, /* Code */ | 964 911, /* Code */ |
903 10415, /* Vendor */ | 965 10415, /* Vendor */ |
904 "MBMS-Time-To-Data-Transfer", /* Name */ | 966 "MBMS-Time-To-Data-Transfer", /* Name */ |
907 AVP_TYPE_OCTETSTRING /* base type of data */ | 969 AVP_TYPE_OCTETSTRING /* base type of data */ |
908 }; | 970 }; |
909 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); | 971 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); |
910 }; | 972 }; |
911 | 973 |
912 /* MBMS-Session-Repetition-Number, OctetString, code 912, section 17.07.15 */ | 974 /* MBMS-Session-Repetition-Number, OctetString, code 912, section 17.7.15 */ |
913 { | 975 { |
914 struct dict_avp_data data = { | 976 struct dict_avp_data data = { |
915 912, /* Code */ | 977 912, /* Code */ |
916 10415, /* Vendor */ | 978 10415, /* Vendor */ |
917 "MBMS-Session-Repetition-Number", /* Name */ | 979 "MBMS-Session-Repetition-Number", /* Name */ |
920 AVP_TYPE_OCTETSTRING /* base type of data */ | 982 AVP_TYPE_OCTETSTRING /* base type of data */ |
921 }; | 983 }; |
922 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); | 984 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); |
923 }; | 985 }; |
924 | 986 |
925 /* MBMS-Required-QoS, UTF8String, code 913, section 17.07.16 */ | 987 /* MBMS-Required-QoS, UTF8String, code 913, section 17.7.16 */ |
926 { | 988 { |
927 struct dict_avp_data data = { | 989 struct dict_avp_data data = { |
928 913, /* Code */ | 990 913, /* Code */ |
929 10415, /* Vendor */ | 991 10415, /* Vendor */ |
930 "MBMS-Required-QoS", /* Name */ | 992 "MBMS-Required-QoS", /* Name */ |
933 AVP_TYPE_OCTETSTRING /* base type of data */ | 995 AVP_TYPE_OCTETSTRING /* base type of data */ |
934 }; | 996 }; |
935 CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL); | 997 CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL); |
936 }; | 998 }; |
937 | 999 |
938 /* MBMS-Counting-Information, Enumerated, code 914, section 17.07.17 */ | 1000 /* MBMS-Counting-Information, Enumerated, code 914, section 17.7.17 */ |
939 { | 1001 { |
940 struct dict_avp_data data = { | 1002 struct dict_avp_data data = { |
941 914, /* Code */ | 1003 914, /* Code */ |
942 10415, /* Vendor */ | 1004 10415, /* Vendor */ |
943 "MBMS-Counting-Information", /* Name */ | 1005 "MBMS-Counting-Information", /* Name */ |
949 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/MBMS-Counting-Information)", NULL, NULL, NULL }; | 1011 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/MBMS-Counting-Information)", NULL, NULL, NULL }; |
950 CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type); | 1012 CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type); |
951 CHECK_dict_new(DICT_AVP, &data, type, NULL); | 1013 CHECK_dict_new(DICT_AVP, &data, type, NULL); |
952 }; | 1014 }; |
953 | 1015 |
954 /* MBMS-User-Data-Mode-Indication, Enumerated, code 915, section 17.07.18 */ | 1016 /* MBMS-User-Data-Mode-Indication, Enumerated, code 915, section 17.7.18 */ |
955 { | 1017 { |
956 struct dict_avp_data data = { | 1018 struct dict_avp_data data = { |
957 915, /* Code */ | 1019 915, /* Code */ |
958 10415, /* Vendor */ | 1020 10415, /* Vendor */ |
959 "MBMS-User-Data-Mode-Indication", /* Name */ | 1021 "MBMS-User-Data-Mode-Indication", /* Name */ |
965 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/MBMS-User-Data-Mode-Indication)", NULL, NULL, NULL }; | 1027 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/MBMS-User-Data-Mode-Indication)", NULL, NULL, NULL }; |
966 CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type); | 1028 CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type); |
967 CHECK_dict_new(DICT_AVP, &data, type, NULL); | 1029 CHECK_dict_new(DICT_AVP, &data, type, NULL); |
968 }; | 1030 }; |
969 | 1031 |
970 /* MBMS-GGSN-Address, OctetString, code 916, section 17.07.19 */ | 1032 /* MBMS-GGSN-Address, OctetString, code 916, section 17.7.19 */ |
971 { | 1033 { |
972 struct dict_avp_data data = { | 1034 struct dict_avp_data data = { |
973 916, /* Code */ | 1035 916, /* Code */ |
974 10415, /* Vendor */ | 1036 10415, /* Vendor */ |
975 "MBMS-GGSN-Address", /* Name */ | 1037 "MBMS-GGSN-Address", /* Name */ |
978 AVP_TYPE_OCTETSTRING /* base type of data */ | 1040 AVP_TYPE_OCTETSTRING /* base type of data */ |
979 }; | 1041 }; |
980 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); | 1042 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); |
981 }; | 1043 }; |
982 | 1044 |
983 /* MBMS-GGSN-IPv6-Address, OctetString, code 917, section 17.07.20 */ | 1045 /* Note: 3GPP TS 29.061 V12.6.0 (2014-06) renamed */ |
1046 /* MBMS-GGSN-IPv6-Address (917) to MBMS-GGSN-Ipv6-Address. */ | |
1047 /* This rename was not applied. */ | |
1048 /* MBMS-GGSN-IPv6-Address, OctetString, code 917, section 17.7.20 */ | |
984 { | 1049 { |
985 struct dict_avp_data data = { | 1050 struct dict_avp_data data = { |
986 917, /* Code */ | 1051 917, /* Code */ |
987 10415, /* Vendor */ | 1052 10415, /* Vendor */ |
988 "MBMS-GGSN-IPv6-Address", /* Name */ | 1053 "MBMS-GGSN-IPv6-Address", /* Name */ |
991 AVP_TYPE_OCTETSTRING /* base type of data */ | 1056 AVP_TYPE_OCTETSTRING /* base type of data */ |
992 }; | 1057 }; |
993 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); | 1058 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); |
994 }; | 1059 }; |
995 | 1060 |
996 /* MBMS-BMSC-SSM-IP-Address, OctetString, code 918, section 17.07.21 */ | 1061 /* MBMS-BMSC-SSM-IP-Address, OctetString, code 918, section 17.7.21 */ |
997 { | 1062 { |
998 struct dict_avp_data data = { | 1063 struct dict_avp_data data = { |
999 918, /* Code */ | 1064 918, /* Code */ |
1000 10415, /* Vendor */ | 1065 10415, /* Vendor */ |
1001 "MBMS-BMSC-SSM-IP-Address", /* Name */ | 1066 "MBMS-BMSC-SSM-IP-Address", /* Name */ |
1004 AVP_TYPE_OCTETSTRING /* base type of data */ | 1069 AVP_TYPE_OCTETSTRING /* base type of data */ |
1005 }; | 1070 }; |
1006 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); | 1071 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); |
1007 }; | 1072 }; |
1008 | 1073 |
1009 /* MBMS-BMSC-SSM-IPv6-Address, OctetString, code 919, section 17.07.22 */ | 1074 /* Note: 3GPP TS 29.061 V12.6.0 (2014-06) renamed */ |
1075 /* MBMS-BMSC-SSM-IPv6-Address (919) to MBMS-BMSC-SSM-Ipv6-Address. */ | |
1076 /* This rename was not applied. */ | |
1077 /* MBMS-BMSC-SSM-IPv6-Address, OctetString, code 919, section 17.7.22 */ | |
1010 { | 1078 { |
1011 struct dict_avp_data data = { | 1079 struct dict_avp_data data = { |
1012 919, /* Code */ | 1080 919, /* Code */ |
1013 10415, /* Vendor */ | 1081 10415, /* Vendor */ |
1014 "MBMS-BMSC-SSM-IPv6-Address", /* Name */ | 1082 "MBMS-BMSC-SSM-IPv6-Address", /* Name */ |
1060 }; | 1128 }; |
1061 struct dict_object *type; | 1129 struct dict_object *type; |
1062 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/MBMS-HC-Indicator)", NULL, NULL, NULL }; | 1130 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/MBMS-HC-Indicator)", NULL, NULL, NULL }; |
1063 CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type); | 1131 CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type); |
1064 CHECK_dict_new(DICT_AVP, &data, type, NULL); | 1132 CHECK_dict_new(DICT_AVP, &data, type, NULL); |
1133 }; | |
1134 | |
1135 /*==================================================================*/ | |
1136 /* 3GPP TS 29.061 Table 20.5a.1: SGmb specific AVPs */ | |
1137 /*==================================================================*/ | |
1138 | |
1139 /* MBMS-Access-Indicator, Enumerated, code 923, section 20.5a.1 */ | |
1140 { | |
1141 struct dict_avp_data data = { | |
1142 923, /* Code */ | |
1143 10415, /* Vendor */ | |
1144 "MBMS-Access-Indicator", /* Name */ | |
1145 AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ | |
1146 AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flag values */ | |
1147 AVP_TYPE_INTEGER32 /* base type of data */ | |
1148 }; | |
1149 struct dict_object *type; | |
1150 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/MBMS-Access-Indicator)", NULL, NULL, NULL }; | |
1151 CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type); | |
1152 CHECK_dict_new(DICT_AVP, &data, type, NULL); | |
1153 }; | |
1154 | |
1155 /* MBMS-GW-SSM-IP-Address, OctetString, code 924, section 20.5a.2 */ | |
1156 { | |
1157 struct dict_avp_data data = { | |
1158 924, /* Code */ | |
1159 10415, /* Vendor */ | |
1160 "MBMS-GW-SSM-IP-Address", /* Name */ | |
1161 AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ | |
1162 AVP_FLAG_VENDOR, /* Fixed flag values */ | |
1163 AVP_TYPE_OCTETSTRING /* base type of data */ | |
1164 }; | |
1165 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); | |
1166 }; | |
1167 | |
1168 /* Note: 3GPP TS 29.061 V12.6.0 (2014-06) renamed */ | |
1169 /* MBMS-GW-SSM-IPv6-Address (925) to MBMS-GW-SSM-Ipv6-Address. */ | |
1170 /* This rename was not applied. */ | |
1171 /* MBMS-GW-SSM-IPv6-Address, OctetString, code 925, section 20.5a.3 */ | |
1172 { | |
1173 struct dict_avp_data data = { | |
1174 925, /* Code */ | |
1175 10415, /* Vendor */ | |
1176 "MBMS-GW-SSM-IPv6-Address", /* Name */ | |
1177 AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ | |
1178 AVP_FLAG_VENDOR, /* Fixed flag values */ | |
1179 AVP_TYPE_OCTETSTRING /* base type of data */ | |
1180 }; | |
1181 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); | |
1182 }; | |
1183 | |
1184 /* MBMS-BMSC-SSM-UDP-Port, OctetString, code 926, section 20.5a.4 */ | |
1185 { | |
1186 struct dict_avp_data data = { | |
1187 926, /* Code */ | |
1188 10415, /* Vendor */ | |
1189 "MBMS-BMSC-SSM-UDP-Port", /* Name */ | |
1190 AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ | |
1191 AVP_FLAG_VENDOR, /* Fixed flag values */ | |
1192 AVP_TYPE_OCTETSTRING /* base type of data */ | |
1193 }; | |
1194 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); | |
1195 }; | |
1196 | |
1197 /* MBMS-GW-UDP-Port, OctetString, code 927, section 20.5a.5 */ | |
1198 { | |
1199 struct dict_avp_data data = { | |
1200 927, /* Code */ | |
1201 10415, /* Vendor */ | |
1202 "MBMS-GW-UDP-Port", /* 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 | |
1210 /* MBMS-GW-UDP-Port-Indicator, Enumerated, code 928, section 20.5a.6 */ | |
1211 { | |
1212 struct dict_avp_data data = { | |
1213 928, /* Code */ | |
1214 10415, /* Vendor */ | |
1215 "MBMS-GW-UDP-Port-Indicator", /* Name */ | |
1216 AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ | |
1217 AVP_FLAG_VENDOR, /* Fixed flag values */ | |
1218 AVP_TYPE_INTEGER32 /* base type of data */ | |
1219 }; | |
1220 struct dict_object *type; | |
1221 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/MBMS-GW-UDP-Port-Indicator)", NULL, NULL, NULL }; | |
1222 CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type); | |
1223 CHECK_dict_new(DICT_AVP, &data, type, NULL); | |
1224 }; | |
1225 | |
1226 /* MBMS-Data-Transfer-Start, Unsigned64, code 929, section 20.5a.7 */ | |
1227 { | |
1228 struct dict_avp_data data = { | |
1229 929, /* Code */ | |
1230 10415, /* Vendor */ | |
1231 "MBMS-Data-Transfer-Start", /* Name */ | |
1232 AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ | |
1233 AVP_FLAG_VENDOR, /* Fixed flag values */ | |
1234 AVP_TYPE_UNSIGNED64 /* base type of data */ | |
1235 }; | |
1236 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); | |
1237 }; | |
1238 | |
1239 /* MBMS-Data-Transfer-Stop, Unsigned64, code 930, section 20.5a.8 */ | |
1240 { | |
1241 struct dict_avp_data data = { | |
1242 930, /* Code */ | |
1243 10415, /* Vendor */ | |
1244 "MBMS-Data-Transfer-Stop", /* Name */ | |
1245 AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ | |
1246 AVP_FLAG_VENDOR, /* Fixed flag values */ | |
1247 AVP_TYPE_UNSIGNED64 /* base type of data */ | |
1248 }; | |
1249 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); | |
1250 }; | |
1251 | |
1252 /* MBMS-Flag, Unsigned32, code 931, section 20.5a.9 */ | |
1253 { | |
1254 struct dict_avp_data data = { | |
1255 931, /* Code */ | |
1256 10415, /* Vendor */ | |
1257 "MBMS-Flag", /* Name */ | |
1258 AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ | |
1259 AVP_FLAG_VENDOR, /* Fixed flag values */ | |
1260 AVP_TYPE_UNSIGNED32 /* base type of data */ | |
1261 }; | |
1262 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); | |
1263 }; | |
1264 | |
1265 /* Restart-Counter, Unsigned32, code 932, section 20.5a.10 */ | |
1266 { | |
1267 struct dict_avp_data data = { | |
1268 932, /* Code */ | |
1269 10415, /* Vendor */ | |
1270 "Restart-Counter", /* Name */ | |
1271 AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ | |
1272 AVP_FLAG_VENDOR, /* Fixed flag values */ | |
1273 AVP_TYPE_UNSIGNED32 /* base type of data */ | |
1274 }; | |
1275 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); | |
1276 }; | |
1277 | |
1278 /* Diagnostic-Info, Unsigned32, code 933, section 20.5a.11 */ | |
1279 { | |
1280 struct dict_avp_data data = { | |
1281 933, /* Code */ | |
1282 10415, /* Vendor */ | |
1283 "Diagnostic-Info", /* Name */ | |
1284 AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ | |
1285 AVP_FLAG_VENDOR, /* Fixed flag values */ | |
1286 AVP_TYPE_UNSIGNED32 /* base type of data */ | |
1287 }; | |
1288 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); | |
1289 }; | |
1290 | |
1291 /* MBMS-Cell-List, OctetString, code 934, section 20.5a.12 */ | |
1292 { | |
1293 struct dict_avp_data data = { | |
1294 934, /* Code */ | |
1295 10415, /* Vendor */ | |
1296 "MBMS-Cell-List", /* Name */ | |
1297 AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ | |
1298 AVP_FLAG_VENDOR, /* Fixed flag values */ | |
1299 AVP_TYPE_OCTETSTRING /* base type of data */ | |
1300 }; | |
1301 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); | |
1065 }; | 1302 }; |
1066 | 1303 |
1067 /*==================================================================*/ | 1304 /*==================================================================*/ |
1068 /* 3GPP TS 29.128 V15.6.0 (2019-09) */ | 1305 /* 3GPP TS 29.128 V15.6.0 (2019-09) */ |
1069 /* From 3GPP 29128-f60.docx */ | 1306 /* From 3GPP 29128-f60.docx */ |
1637 }; | 1874 }; |
1638 CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL); | 1875 CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL); |
1639 }; | 1876 }; |
1640 | 1877 |
1641 /* Note: Name conflict with 3GPP TS 32.299 Status (2702). */ | 1878 /* Note: Name conflict with 3GPP TS 32.299 Status (2702). */ |
1879 /* Status (1116) renamed to Status-29.140 (1116). */ | |
1642 /* Status-29.140, Grouped, code 1116, section 6.3.19 */ | 1880 /* Status-29.140, Grouped, code 1116, section 6.3.19 */ |
1643 { | 1881 { |
1644 struct dict_avp_data data = { | 1882 struct dict_avp_data data = { |
1645 1116, /* Code */ | 1883 1116, /* Code */ |
1646 10415, /* Vendor */ | 1884 10415, /* Vendor */ |
4876 /* From 3GPP 29229-f20.doc */ | 5114 /* From 3GPP 29229-f20.doc */ |
4877 /*==================================================================*/ | 5115 /*==================================================================*/ |
4878 | 5116 |
4879 /*==================================================================*/ | 5117 /*==================================================================*/ |
4880 /* 3GPP TS 29.229 Table 6.3.1: Diameter Multimedia Application AVPs */ | 5118 /* 3GPP TS 29.229 Table 6.3.1: Diameter Multimedia Application AVPs */ |
5119 /* */ | |
5120 /* Note: AVPs referenced from other sources are not added here. */ | |
4881 /*==================================================================*/ | 5121 /*==================================================================*/ |
4882 | 5122 |
4883 /* Visited-Network-Identifier, OctetString, code 600, section 6.3.1 */ | 5123 /* Visited-Network-Identifier, OctetString, code 600, section 6.3.1 */ |
4884 { | 5124 { |
4885 struct dict_avp_data data = { | 5125 struct dict_avp_data data = { |
5378 AVP_TYPE_OCTETSTRING /* base type of data */ | 5618 AVP_TYPE_OCTETSTRING /* base type of data */ |
5379 }; | 5619 }; |
5380 CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL); | 5620 CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL); |
5381 }; | 5621 }; |
5382 | 5622 |
5383 /* Note: Uses RFC 4590 Digest-Realm (104). */ | |
5384 /* Note: Uses RFC 4590 Digest-Algorithm (111). */ | |
5385 /* Note: Uses RFC 4590 Digest-QoP (110). */ | |
5386 /* Note: Uses RFC 4590 Digest-HA1 (121). */ | |
5387 | |
5388 /* UAR-Flags, Unsigned32, code 637, section 6.3.44 */ | 5623 /* UAR-Flags, Unsigned32, code 637, section 6.3.44 */ |
5389 { | 5624 { |
5390 struct dict_avp_data data = { | 5625 struct dict_avp_data data = { |
5391 637, /* Code */ | 5626 637, /* Code */ |
5392 10415, /* Vendor */ | 5627 10415, /* Vendor */ |
5616 AVP_TYPE_UNSIGNED32 /* base type of data */ | 5851 AVP_TYPE_UNSIGNED32 /* base type of data */ |
5617 }; | 5852 }; |
5618 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); | 5853 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); |
5619 }; | 5854 }; |
5620 | 5855 |
5621 /* Note: Uses RFC 7683 OC-Supported-Features (621). */ | |
5622 /* Note: Uses RFC 7683 OC-OLR (623). */ | |
5623 | |
5624 /* Initial-CSeq-Sequence-Number, Unsigned32, code 654, section 6.3.62 */ | 5856 /* Initial-CSeq-Sequence-Number, Unsigned32, code 654, section 6.3.62 */ |
5625 { | 5857 { |
5626 struct dict_avp_data data = { | 5858 struct dict_avp_data data = { |
5627 654, /* Code */ | 5859 654, /* Code */ |
5628 10415, /* Vendor */ | 5860 10415, /* Vendor */ |
5683 AVP_FLAG_VENDOR, /* Fixed flag values */ | 5915 AVP_FLAG_VENDOR, /* Fixed flag values */ |
5684 AVP_TYPE_OCTETSTRING /* base type of data */ | 5916 AVP_TYPE_OCTETSTRING /* base type of data */ |
5685 }; | 5917 }; |
5686 CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL); | 5918 CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL); |
5687 }; | 5919 }; |
5688 | |
5689 /* Note: Uses RFC 7944 DRMP (301). */ | |
5690 /* Note: Uses RFC 8583 Load (650). */ | |
5691 | 5920 |
5692 /* RTR-Flags, Unsigned32, code 659, section 6.3.69 */ | 5921 /* RTR-Flags, Unsigned32, code 659, section 6.3.69 */ |
5693 { | 5922 { |
5694 struct dict_avp_data data = { | 5923 struct dict_avp_data data = { |
5695 659, /* Code */ | 5924 659, /* Code */ |
6696 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); | 6925 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); |
6697 }; | 6926 }; |
6698 | 6927 |
6699 /* Note: 3GPP TS 29.272 V12.5.0 (2014-06) table 7.3.1/1 */ | 6928 /* Note: 3GPP TS 29.272 V12.5.0 (2014-06) table 7.3.1/1 */ |
6700 /* changed row SS-Status (1477) to be OctetString instead of Grouped. */ | 6929 /* changed row SS-Status (1477) to be OctetString instead of Grouped. */ |
6701 /* Clause 7.3.88 already described SS-Status as OctetString. */ | 6930 /* Clause 7.3.88 already described SS-Status (1147) as OctetString. */ |
6702 /* SS-Status, OctetString, code 1477, section 7.3.88 */ | 6931 /* SS-Status, OctetString, code 1477, section 7.3.88 */ |
6703 { | 6932 { |
6704 struct dict_avp_data data = { | 6933 struct dict_avp_data data = { |
6705 1477, /* Code */ | 6934 1477, /* Code */ |
6706 10415, /* Vendor */ | 6935 10415, /* Vendor */ |
8418 /* From 3GPP 29329-f20.doc */ | 8647 /* From 3GPP 29329-f20.doc */ |
8419 /*==================================================================*/ | 8648 /*==================================================================*/ |
8420 | 8649 |
8421 /*==================================================================*/ | 8650 /*==================================================================*/ |
8422 /* 3GPP TS 29.329 Table 6.3.1: Table 6.3.1: Diameter Multimedia Application AVPs */ | 8651 /* 3GPP TS 29.329 Table 6.3.1: Table 6.3.1: Diameter Multimedia Application AVPs */ |
8652 /* */ | |
8653 /* Note: AVPs referenced from other sources are not added here. */ | |
8423 /*==================================================================*/ | 8654 /*==================================================================*/ |
8424 | 8655 |
8425 /* User-Identity, Grouped, code 700, section 6.3.1 */ | 8656 /* User-Identity, Grouped, code 700, section 6.3.1 */ |
8426 { | 8657 { |
8427 struct dict_avp_data data = { | 8658 struct dict_avp_data data = { |
8447 }; | 8678 }; |
8448 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); | 8679 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); |
8449 }; | 8680 }; |
8450 | 8681 |
8451 /* Note: Name conflict with 3GPP TS 29.229 User-Data (606). */ | 8682 /* Note: Name conflict with 3GPP TS 29.229 User-Data (606). */ |
8683 /* User-Data (702) renamed to User-Data-29.329 (702). */ | |
8452 /* User-Data-29.329, OctetString, code 702, section 6.3.3 */ | 8684 /* User-Data-29.329, OctetString, code 702, section 6.3.3 */ |
8453 { | 8685 { |
8454 struct dict_avp_data data = { | 8686 struct dict_avp_data data = { |
8455 702, /* Code */ | 8687 702, /* Code */ |
8456 10415, /* Vendor */ | 8688 10415, /* Vendor */ |
8582 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/Send-Data-Indication)", NULL, NULL, NULL }; | 8814 struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/Send-Data-Indication)", NULL, NULL, NULL }; |
8583 CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type); | 8815 CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type); |
8584 CHECK_dict_new(DICT_AVP, &data, type, NULL); | 8816 CHECK_dict_new(DICT_AVP, &data, type, NULL); |
8585 }; | 8817 }; |
8586 | 8818 |
8587 /* Note: Uses 3GPP TS 29.229 Server-Name (602). */ | |
8588 /* Note: Uses 3GPP TS 29.229 Supported-Features (628). */ | |
8589 /* Note: Uses 3GPP TS 29.229 Feature-List-ID (629). */ | |
8590 /* Note: Uses 3GPP TS 29.229 Feature-List (630). */ | |
8591 /* Note: Uses 3GPP TS 29.229 Supported-Applications (631). */ | |
8592 /* Note: Uses 3GPP TS 29.229 Public-Identity (601). */ | |
8593 | |
8594 /* DSAI-Tag, OctetString, code 711, section 6.3.18 */ | 8819 /* DSAI-Tag, OctetString, code 711, section 6.3.18 */ |
8595 { | 8820 { |
8596 struct dict_avp_data data = { | 8821 struct dict_avp_data data = { |
8597 711, /* Code */ | 8822 711, /* Code */ |
8598 10415, /* Vendor */ | 8823 10415, /* Vendor */ |
8601 AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flag values */ | 8826 AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flag values */ |
8602 AVP_TYPE_OCTETSTRING /* base type of data */ | 8827 AVP_TYPE_OCTETSTRING /* base type of data */ |
8603 }; | 8828 }; |
8604 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); | 8829 CHECK_dict_new(DICT_AVP, &data, NULL, NULL); |
8605 }; | 8830 }; |
8606 | |
8607 /* Note: Uses 3GPP TS 29.229 Wildcarded-Public-Identity (634). */ | |
8608 /* Note: Uses 3GPP TS 29.229 Wildcarded-IMPU (636). */ | |
8609 /* Note: Uses 3GPP TS 29.229 Session-Priority (650). */ | |
8610 | 8831 |
8611 /* One-Time-Notification, Enumerated, code 712, section 6.3.22 */ | 8832 /* One-Time-Notification, Enumerated, code 712, section 6.3.22 */ |
8612 { | 8833 { |
8613 struct dict_avp_data data = { | 8834 struct dict_avp_data data = { |
8614 712, /* Code */ | 8835 712, /* Code */ |
8837 CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type); | 9058 CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type); |
8838 CHECK_dict_new(DICT_AVP, &data, type, NULL); | 9059 CHECK_dict_new(DICT_AVP, &data, type, NULL); |
8839 }; | 9060 }; |
8840 | 9061 |
8841 /* Note: Name conflict with 3GPP TS 29.212 3GPP-PS-Data-Off-Status (2847). */ | 9062 /* Note: Name conflict with 3GPP TS 29.212 3GPP-PS-Data-Off-Status (2847). */ |
9063 /* 3GPP-PS-Data-Off-Status (4406) renamed to 3GPP-PS-Data-Off-Status-32.299 (4406). */ | |
8842 /* 3GPP-PS-Data-Off-Status-32.299, Enumerated, code 4406 */ | 9064 /* 3GPP-PS-Data-Off-Status-32.299, Enumerated, code 4406 */ |
8843 { | 9065 { |
8844 struct dict_avp_data data = { | 9066 struct dict_avp_data data = { |
8845 4406, /* Code */ | 9067 4406, /* Code */ |
8846 10415, /* Vendor */ | 9068 10415, /* Vendor */ |