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