S1AP_TestCases.ttcn 78.3 KB
Newer Older
garciay's avatar
garciay committed
 *    @author   ETSI / STF519
garciay's avatar
garciay committed
 *    @desc     This module provides test cases for S1AP tests.
 *    @copyright   ETSI Copyright Notification
 *                 No part may be reproduced except as authorized by written permission.
 *                 The copyright and the foregoing restriction extend to reproduction in all media.
 *                 All rights reserved.
 *    @see      ETSI TS 136 413 / 3GPP TS 36.413 version 13.4.0 Release 13
garciay's avatar
garciay committed
module S1AP_TestCases {
    
    //LibCommon
    import from LibCommon_Sync all ;
    import from LibCommon_VerdictControl all;
    
    //LibS1AP
    //import from LibS1AP_TypesAndValues all;
    import from LibS1AP_Interface all;
garciay's avatar
garciay committed
    import from LibS1AP_Steps all;
    
    //Ats
    import from S1AP_TestConfiguration all;
    import from S1AP_TestSystem all;
    import from S1AP_TCFunctions all;
garciay's avatar
garciay committed
    import from S1AP_Pics all;
    import from S1AP_Pixits all;
    import from S1AP_Steps all;
    import from S1AP_TestSystem all;
    
garciay's avatar
garciay committed
    group eNB_Role {
        /**
         * @desc E-RAB management group
         * @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.2  E-RAB management group
         */
garciay's avatar
garciay committed
        group ERAB_management_group {
            
            /**
             * @desc Verify that the IUT can successfully process all mandatory IEs in an E-RAB_SETUP_REQUEST received 
             *       due to E-RAB management procedure and send E-RAB_SETUP_RESPONSE with successfully established E-RABs 
             *       included in the E-RAB_Setup_List IE.
             * <pre>
             * Pics Selection: PICS A.3/1.1
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         on receipt of an E-RAB_SETUP_REQUEST
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing an E-RAB_to_be_Setup_List
             *                 containing an E-RAB_to_be_Setup Item 1
             *                     containing an E-RAB_ID
             *                     containing an E-RAB_Level_QoS_Parameters
             *                         containing QCI
             *                             indicating value 5
             *                     containing a Transport_Layer_Address
             *                     containing a GTP-TEID
             *                     containing a NAS-PDU
             *         sends an E-RAB_SETUP_RESPONSE
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing an E-RAB_Setup_List
             *                 containing an E-RAB_Setup Item 1
             *                     containing an E-RAB_ID
             *                     containing a Transport_Layer_Address
             *                     containing a GTP-TEID.
             * </pre>
             * 
             * @see       ETSI DTS/INT-00135-2 TP_S1AP_ENB_RAB_01
garciay's avatar
garciay committed
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.2.1.2(1st dashed line in 5th dashed list) and 9.1.3.1 and 9.1.3.2
             */
            testcase TC_S1AP_ENB_RAB_01() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_enb; 
                
                // Test control
                if (not PICS_S1AP_eNB_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_eNB_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component configuration
garciay's avatar
garciay committed
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                v_s1ap_enb.start(f_TC_S1AP_ENB_RAB_01()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
garciay's avatar
garciay committed
                f_cf_Down();
            } // End of testcase TC_S1AP_ENB_RAB_01
            /**
             * @desc Verify that the IUT after receiving an E-RAB_SETUP_REQUEST with failed E-RAB sends an E-RAB_SETUP_RESPONSE 
             *       with E-RAB_Failed_to_Setup_List.
             * <pre>
             * Pics Selection: PICS A.3/1.1
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         on receipt of an E-RAB_SETUP_REQUEST
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing an E-RAB_to_be_Setup_List
             *                 containing an E-RAB_to_be_Setup Item 1
             *                     containing an E-RAB_ID
             *                         indicating value A
             *                     containing an E-RAB_Level_QoS_Parameters
             *                     containing a Transport_Layer_Address
             *                     containing a GTP-TEID
             *                     containing a NAS-PDU
             *                 containing an E-RAB_to_be_Setup Item 2(not acceptable data for eNB)
             *                     containing an E-RAB_ID
             *                         indicating value B(different to value A)
             *                     containing an E-RAB_Level_QoS_Parameters
             *                         containing QCI
             *                             indicating not supported QCI value(255)
             *                     containing a Transport_Layer_Address
             *                     containing a GTP-TEID
             *                     containing a NAS-PDU
             *         sends an E-RAB_SETUP_RESPONSE
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing an E-RAB_Setup_List
             *                 containing an E-RAB_Setup Item 1
             *                     containing an E-RAB_ID
             *                         indicating value A
             *                     containing a Transport_Layer_Address
             *                     containing a GTP-TEID
             *             containing an E-RAB_Failed_to_Setup_List
             *                 containing an E-RAB_List Item 1
             *                     containing an E-RAB_ID
             *                         indicating value B
             *                     containing a Cause
             *                         indicating ‘not-supported-QCI-value’.
             * </pre>
             * 
             * @see       ETSI DTS/INT-00135-2 TP_S1AP_ENB_RAB_02
garciay's avatar
garciay committed
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.2.1.2(2nd dashed line in 5th dashed list) and 9.1.3.1 and 9.1.3.2
             */
            testcase TC_S1AP_ENB_RAB_02() runs on S1AP system TestAdapter { 
garciay's avatar
garciay committed
                // Local variables
                var S1AP v_s1ap_enb; 
                
                // Test control
                if (not PICS_S1AP_eNB_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_eNB_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component configuration
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                
                // Start
                v_s1ap_enb.start(f_TC_S1AP_ENB_RAB_02()); 
garciay's avatar
garciay committed
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
            } // End of testcase TC_S1AP_ENB_RAB_02
garciay's avatar
garciay committed
        } // End of group E-RAB_management_group
garciay's avatar
garciay committed
        /**
         * @desc Management group
         * @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.7 Management group
         */
        group Management_group {
            
            /**
             * @desc Verify that the IUT can successfully process all mandatory IEs in a RESET and send a RESET_ACKNOWLEDGE due to a Reset procedure initiated from the MME.
             * <pre>
             * Pics Selection: PICS A.3/6.1.2
             * direct information: CF_S1-MME
             *     Ensure that the IUT
             *         on receipt of a RESET
             *             containing a Cause
             *                 indicating an appropriate cause value
             *             containing a Reset_Type
             *                 containing a S1_Interface
             *                     indicating a value ‘Reset_all’
             *         sends a RESET_ACKNOWLEDGE
             *             containing a UE-associated_logical_S1-connection_list.
             * </pre>
             * 
             * @see       ETSI DTS/INT-00135-2 TP_S1AP_ENB_MNP_01
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.7.1.2.1¶2 and 9.1.8.1 and 9.1.8.2
             */
            testcase TC_S1AP_ENB_MNP_01() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_enb; 
                
                // Test control
                if (not PICS_S1AP_eNB_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_eNB_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component direct information
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                
                // Start
                v_s1ap_enb.start(f_TC_S1AP_ENB_MNP_01()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
            } // End of testcase TC_S1AP_ENB_MNP_01
            
            /**
             * @desc Verify that the IUT can send an RESET due to a Reset procedure initiated from the E-UTRAN.
             * <pre>
             * Pics Selection: PICS A.3/6.1.2
             * direct information: CF_S1-MME
             *     Ensure that the IUT
             *         to indicate a Reset procedure initiated from the E-UTRAN
             *         sends a  RESET
             *             containing a Cause
             *                 indicating an appropriate cause value
             *             containing a Reset_Type
             *                 containing a S1_Interface
             *                     indicating a value ‘Reset_all’.
             * </pre>
             * 
             * @see       ETSI DTS/INT-00135-2 TP_S1AP_ENB_MNP_02
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.7.1.2.2¶1 and 9.1.8.1 and 9.1.8.2
             */
            testcase TC_S1AP_ENB_MNP_02() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_enb; 
                
                // Test control
                if (not PICS_S1AP_eNB_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_eNB_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component direct information
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                
                // Start
                v_s1ap_enb.start(f_TC_S1AP_ENB_MNP_02()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
            } // End of testcase TC_S1AP_ENB_MNP_02
            
            /**
             * @desc Verify that the IUT can successfully manage Reset procedure in case of Abnormal Condition at the E-UTRAN.
             * <pre>
             * Pics Selection: PICS A.3/6.1.1
             * direct information: CF_S1-MME
             *     Ensure that the IUT
             *         on receipt of a RESET
             *             containing a Cause
             *                 indicating an appropriate cause value
             *             containing a Reset_Type
             *                 containing a Part_of_S1_interface
             *                     indicating one empty ‘UE-associated_logical_S1-connection’
             *         sends a RESET_ACKNOWLEDGE
             *             containing a UE-associated_logical_S1-connection_list.
             * </pre>
             * 
             * @see       ETSI DTS/INT-00135-2 TP_S1AP_ENB_MNP_03
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.7.1.2.2¶1 and 9.1.8.1 and 9.1.8.2
             */
            testcase TC_S1AP_ENB_MNP_03() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_enb; 
                
                // Test control
                if (not PICS_S1AP_eNB_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_eNB_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component direct information
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                
                // Start
                v_s1ap_enb.start(f_TC_S1AP_ENB_MNP_03()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
            } // End of testcase TC_S1AP_ENB_MNP_03
            
        } // End of group Management_group
        
        /**
         * @desc S1 CDMA 2000 tunnelling group
         * @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.8   S1 CDMA 2000 tunnelling group group
         */
        group S1_CDMA_2000_tunelling_group {
            
            /**
             * @desc Verify that the IUT can send a DOWNLINK_S1_CDMA2000_TUNNELLING.
             * <pre>
             * Pics Selection: PICS A.3/7.2
             * direct information: CF_S1-MME
             *     Ensure that the IUT
             *         to indicate a CDMA2000 to be forwarded
             *         sends an UPLINK_S1_CDMA2000_TUNNELLING
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing a CDMA2000_RAT_Type
             *             containing a CDMA2000_Sector_ID
             *             containing a CDMA2000_PDU.
             * </pre>
             * 
             * @see       ETSI DTS/INT-00135-2 TP_S1AP_ENB_STP_01
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.8.2.2¶1 and 9.1.9.2 and 9.2.1.23
             */
            testcase TC_S1AP_ENB_STP_01() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_enb; 
                
                // Test control
                if (not PICS_S1AP_eNB_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_eNB_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component direct information
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                
                // Start
                v_s1ap_enb.start(f_TC_S1AP_ENB_STP_01()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
            } // End of testcase TC_S1AP_ENB_STP_01
            
        } // End of group S1_CDMA_2000_tunelling_group
        
        /**
         * @desc UE capability info indication group
         * @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.9   UE capability info indication group
         */
        group UE_capability_info_indication_group {
            
            /**
             * @desc Verify that the IUT can send a UE_CAPABILITY_INFO_INDICATION to indicate capability-related information update.
             * <pre>
             * Pics Selection: PICS A.3/8
             * direct information: CF_S1-MME
             *     Ensure that the IUT
             *         to indicate a capability-related information update
             *         sends an UE_CAPABILITY_INFO_INDICATION
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing a containing a UE_Radio_Capability.
             * </pre>
             * 
             * @see       ETSI DTS/INT-00135-2 TP_S1AP_ENB_UEC_01
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.9.2 and 9.1.10
             */
            testcase TC_S1AP_ENB_UEC_01() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_enb; 
                
                // Test control
                if (not PICS_S1AP_eNB_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_eNB_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component direct information
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                
                // Start
                v_s1ap_enb.start(f_TC_S1AP_ENB_UEC_01()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
            } // End of testcase TC_S1AP_ENB_UEC_01
            
        } // End of group UE_capability_info_indication_group
        
        /**
         * @desc Trace Procedures group
garciay's avatar
garciay committed
         * @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.10  Trace group
         */
        group Trace_group {
            
            /**
             * @desc Verify that the IUT can successfully send a TRACE_FAILURE_INDICATION on TRACE_START.
             * <pre>
             * Pics Selection: PICS A.3/9.1 and A.3/9.2
             * direct information: CF_S1-MME
             *     Ensure that the IUT
             *         on receipt of a TRACE_START
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing a Trace_Activation
             *                 containing an E-UTRAN_Trace_ID
             *                 containing a Interfaces_To_Trace
             *                     indicating value ‘S1-MME’
             *                 containing a Trace_depth
             *                     indicating value ‘maximum’
             *                 containing a Trace_Collection_Entity_IP_Address
             *                 not containing an MDT_Configuration
             *         sends TRACE_FAILURE_INDICATION
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing an E-UTRAN_Trace_ID
             *             containing a Cause
             *                 indicating an appropriate cause value.
             * </pre>
             * 
             * @see       ETSI DTS/INT-00135-2 TP_S1AP_ENB_TRP_01
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.10.1.2-8 and 8.10.2.2 and 9.1.11.1 and 9.1.11.2
             */
            testcase TC_S1AP_ENB_TRP_01() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_enb; 
                
                // Test control
                if (not PICS_S1AP_eNB_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_eNB_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component direct information
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                
                // Start
                v_s1ap_enb.start(f_TC_S1AP_ENB_TRP_01()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
            } // End of testcase TC_S1AP_ENB_TRP_01
            
            /**
             * @desc Verify that the IUT can successfully send a TRACE_FAILURE_INDICATION on DEACTIVATE_TRACE.
             * <pre>
             * Pics Selection: PICS A.3/9.1 and A.3/9.2
             * direct information: CF_S1-MME
             *     Ensure that the IUT
             *         on receipt of a DEACTIVATE_TRACE
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing a Trace_Activation
             *                 containing an E-UTRAN_Trace_ID
             *         sends TRACE_FAILURE_INDICATION
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing an E-UTRAN_Trace_ID
             *             containing a Cause
             *                 indicating an appropriate cause value.
             * </pre>
             * 
             * @see       ETSI DTS/INT-00135-2 TP_S1AP_ENB_TRP_02
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.10.3.2-3 and 8.10.2.2 and 9.1.11.3 and 9.1.11.2
garciay's avatar
garciay committed
             */
            testcase TC_S1AP_ENB_TRP_02() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_enb; 
                
                // Test control
                if (not PICS_S1AP_eNB_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_eNB_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component direct information
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                
                // Start
                v_s1ap_enb.start(f_TC_S1AP_ENB_TRP_02()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
            } // End of testcase TC_S1AP_ENB_TRP_02
            
            /**
             * @desc Verify that the IUT can send a CELL_TRAFFIC_TRACE when the conditions required for tracing are met.
             * <pre>
             * Pics Selection: PICS A.3/9.4
             * direct information: CF_S1-MME
             *     Ensure that the IUT
             *         to indicate the conditions required for tracing are met
             *         sends CELL_TRAFFIC_TRACE
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing an E-UTRAN_Trace_ID
             *             containing an E-UTRAN_CGI
             *                 containing a PLMN_Identity
             *                 containing a Cell_Identity
             *             containing a Trace_Collection_Entity_IP_Address.
             * </pre>
             * 
             * @see       ETSI DTS/INT-00135-2 TP_S1AP_ENB_TRP_03
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.10.4.2 and 9.1.18
             */
            testcase TC_S1AP_ENB_TRP_03() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_enb; 
                
                // Test control
                if (not PICS_S1AP_eNB_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_eNB_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component direct information
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                
                // Start
                v_s1ap_enb.start(f_TC_S1AP_ENB_TRP_03()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
            } // End of testcase TC_S1AP_ENB_TRP_03
            
garciay's avatar
garciay committed
        } // End of group Trace_group
        
        /**
         * @desc Location Reporting Procedures group
garciay's avatar
garciay committed
546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931
         * @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.11  Location reporting group
         */
        group Location_reporting_group {
            
            /**
             * @desc Verify that the IUT can process all mandatory IEs in a LOCATION_REPORTING_CONTROL containing Event Type IE indicating Directly and send a LOCATION_REPORT.
             * <pre>
             * Pics Selection: PICS A.3/10.1 and A.3/10.3
             * direct information: CF_S1-MME
             *     Ensure that the IUT
             *         on receipt of a LOCATION_REPORTING_CONTROL
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing a Request_Type
             *                 containing an Event_Type
             *                     indicating Directly
             *                 containing a Report_Area
             *                     indicating ECGI
             *         sends LOCATION_REPORT
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing an E-UTRAN_CGI
             *                 containing a PLMN_Identity
             *                 containing a Cell_Identity
             *             containing a TAI
             *                 containing a PLMN_Identity
             *                 containing a TAC
             *             containing a Request_Type
             *                 containing a Event_Type
             *                 containing a Report_Area.
             * </pre>
             * 
             * @see       ETSI DTS/INT-00135-2 TP_S1AP_ENB_LRP_01
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.11.1.2-2(1st dashed line) and 9.1.12.1 and 9.1.12.3 and 9.2.1.16,34,38
             */
            testcase TC_S1AP_ENB_LRP_01() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_enb; 
                
                // Test control
                if (not PICS_S1AP_eNB_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_eNB_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component direct information
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                
                // Start
                v_s1ap_enb.start(f_TC_S1AP_ENB_LRP_01()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
            } // End of testcase TC_S1AP_ENB_LRP_01
            
            /**
             * @desc Verify that the IUT can process all mandatory IEs in a LOCATION_REPORTING_CONTROL containing Event Type IE indicating Change of service cell and send a LOCATION_REPORT.
             * <pre>
             * Pics Selection: PICS A.3/10.1 and A.3/10.3
             * direct information: CF_S1-MME
             *     Ensure that the IUT
             *         on receipt of a LOCATION_REPORTING_CONTROL
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing a Request_Type
             *                 containing an Event_Type
             *                     indicating change_of_service_cell
             *                 containing a Report_Area
             *                     indicating ECGI
             *         when UE changes to new cell
             *         sends LOCATION_REPORT
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing an E-UTRAN_CGI
             *                 containing a PLMN_Identity
             *                 containing a Cell_Identity
             *             containing a TAI
             *                 containing a PLMN_Identity
             *                 containing a TAC
             *             containing a Request_Type
             *                 containing a Event_Type
             *                 containing a Report_Area.
             * </pre>
             * 
             * @see       ETSI DTS/INT-00135-2 TP_S1AP_ENB_LRP_02
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.11.1.2-2(1st dashed line) and 9.1.12.1 and 9.1.12.3 and 9.2.1.16,34,38
             */
            testcase TC_S1AP_ENB_LRP_02() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_enb; 
                
                // Test control
                if (not PICS_S1AP_eNB_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_eNB_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component direct information
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                
                // Start
                v_s1ap_enb.start(f_TC_S1AP_ENB_LRP_02()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
            } // End of testcase TC_S1AP_ENB_LRP_02
            
            /**
             * @desc Verify that the IUT can process all mandatory IEs in a LOCATION_REPORTING_CONTROL containing Event Type IE indicating Stop change of service cell and send a LOCATION_REPORT.
             * <pre>
             * Pics Selection: PICS A.3/10.1 and A.3/10.3
             * direct information: CF_S1-MME
             *     Ensure that the IUT
             *         on receipt of a LOCATION_REPORTING_CONTROL
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing a Request_Type
             *                 containing an Event_Type
             *                     indicating stop_change_of_service_cell
             *                 containing a Report_Area
             *                     indicating ECGI
             *         when UE changes to new cell
             *         sends LOCATION_REPORT
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing an E-UTRAN_CGI
             *                 containing a PLMN_Identity
             *                 containing a Cell_Identity
             *             containing a TAI
             *                 containing a PLMN_Identity
             *                 containing a TAC
             *             containing a Request_Type
             *                 containing a Event_Type
             *                 containing a Report_Area.
             * </pre>
             * 
             * @see       ETSI DTS/INT-00135-2 TP_S1AP_ENB_LRP_03
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.11.1.2-2(1st dashed line) and 9.1.12.1 and 9.1.12.3 and 9.2.1.16,34,38
             */
            testcase TC_S1AP_ENB_LRP_03() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_enb; 
                
                // Test control
                if (not PICS_S1AP_eNB_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_eNB_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component direct information
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                
                // Start
                v_s1ap_enb.start(f_TC_S1AP_ENB_LRP_03()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
            } // End of testcase TC_S1AP_ENB_LRP_03
            
            /**
             * @desc Verify that the IUT can send a LOCATION REPORT_FAILURE_INDICATION.
             * <pre>
             * Pics Selection: PICS A.3/10.1 and A.3/10.3
             * direct information: CF_S1-MME
             *     Ensure that the IUT
             *         on receipt of a LOCATION_REPORTING_CONTROL
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing a Request_Type
             *                 containing an Event_Type
             *                 containing a Report_Area
             *         sends LOCATION REPORT_FAILURE_INDICATION
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing a Cause
             *                 indicating an appropriate cause value.
             * </pre>
             * 
             * @see       ETSI DTS/INT-00135-2 TP_S1AP_ENB_LRP_04
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.11.2.2-1 and 9.1.12.2
             */
            testcase TC_S1AP_ENB_LRP_04() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_enb; 
                
                // Test control
                if (not PICS_S1AP_eNB_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_eNB_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component direct information
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                
                // Start
                v_s1ap_enb.start(f_TC_S1AP_ENB_LRP_04()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
            } // End of testcase TC_S1AP_ENB_LRP_04
            
        } // End of group Location_reporting_group
        
        /**
         * @desc Warning message transmission group
         * @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.12 Warning message transmission group
         */
        group Warning_message_transmission_group {
            
            /**
             * @desc Verify that the IUT can successfully process all mandatory IEs in a WRITE-REPLACE_WARNING_REQUEST received and send a WRITE-REPLACE_WARNING_RESPONSE.
             * <pre>
             * Pics Selection: PICS A.3/11.1
             * direct information: CF_S1-MME
             *     Ensure that the IUT
             *         on receipt of an WRITE-REPLACE_WARNING_REQUEST
             *             containing a Message_Identifier
             *             containing a Serial_Number
             *             containing a Repetition Period
             *             containing an Number_of_Broadcasts_Requested
             *         sends an WRITE-REPLACE_WARNING_RESPONSE
             *             containing a Serial_Number.
             * </pre>
             * 
             * @see       ETSI DTS/INT-00135-2 TP_S1AP_ENB_WTP_01
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.12.1.2-1 and 9.1.13.1 and 9.1.13.2
             */
            testcase TC_S1AP_ENB_WTP_01() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_enb; 
                
                // Test control
                if (not PICS_S1AP_eNB_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_eNB_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component direct information
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                
                // Start
                v_s1ap_enb.start(f_TC_S1AP_ENB_WTP_01()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
            } // End of testcase TC_S1AP_ENB_WTP_01
            
            /**
             * @desc Verify that the IUT can successfully process all mandatory IEs in an KILL_REQUEST received and send a KILL_RESPONSE.
             * <pre>
             * Pics Selection: PICS A.3/11.2
             * direct information: CF_S1-MME
             *     Ensure that the IUT
             *         on receipt of a KILL_REQUEST
             *             containing a Message_Identifier
             *             containing a Serial_Number
             *         sends sends a KILL_RESPONSE
             *             containing a Message_Identifier
             *             containing a Serial_Number.
             * </pre>
             * 
             * @see       ETSI DTS/INT-00135-2 TP_S1AP_ENB_WTP_02
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.12.2.2-1,3 and 9.1.13.3 and 9.1.13.4
             */
            testcase TC_S1AP_ENB_WTP_02() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_enb; 
                
                // Test control
                if (not PICS_S1AP_eNB_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_eNB_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component direct information
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                
                // Start
                v_s1ap_enb.start(f_TC_S1AP_ENB_WTP_02()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
            } // End of testcase TC_S1AP_ENB_WTP_02
            
            /**
             * @desc Verify that the IUT can send a PWS_RESTART_INDICATION to indicate a PWS Restart Indication procedure.
             * <pre>
             * Pics Selection: PICS A.3/11.3
             * direct information: CF_S1-MME
             *     Ensure that the IUT
             *         to indicate a PWS Restart Indication procedure
             *         sends a PWS_RESTART_INDICATION
             *             containing an E-CGI_List_for_Restart
             *                 indicating a valid list of E-CGI
             *             containing a Global_eNB_ID
             *             containing a TAI_List_for_Restart
             *                 indicating a valid list of eNB identifier
             *             containing an Emergency_Area_ID_List_for_Restart
             *                 indicating an empty list.
             * </pre>
             * 
             * @see       ETSI DTS/INT-00135-2 TP_S1AP_ENB_WTP_03
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.12.3.2 and 9.1.13.5
             */
            testcase TC_S1AP_ENB_WTP_03() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_enb; 
                
                // Test control
                if (not PICS_S1AP_eNB_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_eNB_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component direct information
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                
                // Start
                v_s1ap_enb.start(f_TC_S1AP_ENB_WTP_03()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
            } // End of testcase TC_S1AP_ENB_WTP_03
            
            /**
             * @desc Verify that the IUT can send a PWS_FAILURE_INDICATION to indicate PWS Failure Indication procedure.
             * <pre>
             * Pics Selection: PICS A.3/11.4
             * direct information: CF_S1-MME
             *     Ensure that the IUT
             *         to indicate a PWS Failure Indication procedure
             *         sends a PWS_FAILURE_INDICATION
             *             containing an PWS failed E-CGI List
             *                 indicating a valid list of E-CGI
             *             containing a Global_eNB_ID.
             * </pre>
             * 
             * @see       ETSI DTS/INT-00135-2 TP_S1AP_ENB_WTP_04
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.12.4.2 and 9.1.13.6
             */
            testcase TC_S1AP_ENB_WTP_04() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_enb; 
                
                // Test control
                if (not PICS_S1AP_eNB_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_eNB_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component direct information
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                
                // Start
                v_s1ap_enb.start(f_TC_S1AP_ENB_WTP_04()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
            } // End of testcase TC_S1AP_ENB_WTP_04
            
        } // End of group Warning_message_transmission_group
        
        /**
         * @desc eNB direct information transfer group
         * @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.13  eNB direct information transfer group
         */
        group ENB_direct_information_transfer_group {
            
            /**
             * @desc Verify that the IUT can send an eNB_DIRECT_INFORMATION_TRANSFER to indicate an eNB Direct Information Transfer procedure.
             * <pre>
             * Pics Selection: PICS A.4/12
             * direct information: CF_S1-MME
             *     Ensure that the IUT
             *         to indicate an eNB direct information Transfer procedure,
             *         sends an eNB_DIRECT_INFORMATION_TRANSFER
             *             containing an Inter-system_Information_Transfer_Type
             *                 containing a RIM
             *                     containing a RIM_Transfer
             *                         containing a RIM_Information
             *                         containing a RIM_Routing_Address.
             * </pre>
             * 
             * @see       ETSI DTS/INT-00135-2 TP_S1AP_ENB_EIT_01
garciay's avatar
garciay committed
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.13.2.1 and 9.1.14 and 9.2.3.23
             */
            testcase TC_S1AP_ENB_EIT_01() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_enb; 
                
                // Test control
                if (not PICS_S1AP_eNB_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_eNB_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component direct information
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                
                // Start
                v_s1ap_enb.start(f_TC_S1AP_ENB_EIT_01()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
            } // End of testcase TC_S1AP_ENB_EIT_01
            
        } // End of group ENB_direct_information_transfer_group
        
        /**
         * @desc eNB configuration transfer group
         * @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.15  eNB configuration transfer group
         */
        group ENB_configuration_transfer_group {
            
            /**
             * @desc Verify that the IUT can send an eNB_CONFIGURATION_TRANSFER to indicate an eNB Configuration Transfer procedure.
             * <pre>
             * Pics Selection: PICS A.4/14
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         to indicate an eNB Configuration Transfer procedure,
             *         sends an eNB_CONFIGURATION_TRANSFER
             *             containing a SON_Configuration_Transfer
             *                 containing a Target_eNB-ID
             *                 containing a Source_eNB-ID
             *                 containing a SON_Information.
             *                     containing a SON_Information_Request
             *                         indicating X2TNL_Configuration_Info