S1AP_TCFunctions.ttcn 145 KB
Newer Older
garciay's avatar
garciay committed
 *    @author   ETSI / STF519
garciay's avatar
garciay committed
 *    @desc     This module provides RfRo test functions used by the test cases.
 *    @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
 */
module S1AP_TCFunctions {
    // LibCommon
    import from LibCommon_Sync all;
garciay's avatar
garciay committed
    import from LibCommon_VerdictControl all;
    // LibS1AP
    import from S1AP_Constants language "ASN.1:1997" all;
    import from S1AP_CommonDataTypes language "ASN.1:1997" all;
    // import from S1AP_Containers language "ASN.1:1997" all;
    import from S1AP_IEs language "ASN.1:1997" all;
    import from S1AP_PDU_Contents language "ASN.1:1997" all;
    import from S1AP_PDU_Descriptions language "ASN.1:1997" all;
    
garciay's avatar
garciay committed
    import from LibS1AP_Pixits all;
    //import from LibS1AP_TypesAndValues all;
    import from LibS1AP_Templates all;
    import from LibS1AP_Interface all;
    import from LibS1AP_Steps all;

    // Ats
    import from S1AP_Templates all;
    import from S1AP_Steps all;
garciay's avatar
garciay committed
    import from S1AP_Pixits 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 {
garciay's avatar
garciay committed
            /**
garciay's avatar
garciay committed
             * @desc Testcase function for TC_S1AP_eNB_RAB_01
garciay's avatar
garciay committed
             */
garciay's avatar
garciay committed
            function f_TC_S1AP_eNB_RAB_01() runs on S1APComponent { 
garciay's avatar
garciay committed
                // Local variables
                
                // Preamble
                f_S1AP_enb_init();
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
//                f_send_S1AP_initiatingMessage(
//                    m_E_RABSetupRequest(
//                    {
//                        m_MME_UE_S1AP_ID(vc_MME_UE_ID),
garciay's avatar
garciay committed
//                        m_eNB_UE_S1AP_ID(vc_eNB_UE_ID),
//                        m_E_RABToBeSetupList(
//                        {
//                            m_E_RABToBeSetupItemBearerSUReq
//                            (
//                                -,
//                                m_e_RABlevelQoSParameters
//                                (5)
//                            )
//                        }
//                        )
//                    }
//                    )
//                );
                f_send_E_RABSetupRequest(m_E_RABSetupReqIEs(
                    vc_MME_UE_ID,
garciay's avatar
garciay committed
                    vc_eNB_UE_ID,
                    {m_E_RABToBeSetupItemBearerSUReq (
                        -,
                        m_e_RABlevelQoSParameters
                        (5)
                    )}
                ));

                f_recv_E_RABSetupResponse(mw_E_RABSetupResIEs(
                    vc_MME_UE_ID,
garciay's avatar
garciay committed
                    vc_eNB_UE_ID,
garciay's avatar
garciay committed
                    {
                        mw_E_RABSetupItemBearerSURes
garciay's avatar
garciay committed
                    }
garciay's avatar
garciay committed
                
//                f_recv_S1AP_successfulOutcome(
//                    mw_E_RABSetupResponse(
//                        {
//                            mw_MME_UE_S1AP_ID(vc_MME_UE_ID,ignore),
garciay's avatar
garciay committed
//                            mw_eNB_UE_S1AP_ID(vc_eNB_UE_ID,ignore),
//                            mw_E_RABSetupList(
//                            {
//                                mw_E_RABSetupItemBearerSURes
//                            }
//                            )
//                        }
//                    )
//                );
garciay's avatar
garciay committed
                
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 
                
                f_postamble_S1AP_eNB();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                
garciay's avatar
garciay committed
            } // End of function f_TC_S1AP_eNB_RAB_01
garciay's avatar
garciay committed
             * @desc Testcase function for TC_S1AP_eNB_RAB_02
garciay's avatar
garciay committed
            function f_TC_S1AP_eNB_RAB_02() runs on S1APComponent { 
garciay's avatar
garciay committed
                // Local variables
                
                // Preamble
                f_S1AP_enb_init();
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
                f_send_E_RABSetupRequest(m_E_RABSetupReqIEs(
                    vc_MME_UE_ID,
garciay's avatar
garciay committed
                    vc_eNB_UE_ID,
garciay's avatar
garciay committed
                    {
                         m_E_RABToBeSetupItemBearerSUReq(1),
                         m_E_RABToBeSetupItemBearerSUReq(
                            2,
                            m_e_RABlevelQoSParameters
                            (255)
garciay's avatar
garciay committed
                         )
                     }
garciay's avatar
garciay committed
                
//                f_send_S1AP_initiatingMessage(
//                    m_E_RABSetupRequest(
//                    {
//                         m_MME_UE_S1AP_ID(vc_MME_UE_ID),
garciay's avatar
garciay committed
//                         m_eNB_UE_S1AP_ID(vc_eNB_UE_ID),
//                         m_E_RABToBeSetupList(
//                         {
//                             m_E_RABToBeSetupItemBearerSUReq(1),
//                             m_E_RABToBeSetupItemBearerSUReq(
//                                2,
//                                m_e_RABlevelQoSParameters
//                                (255)
//                             )
//                         }
//                         )
//                     }
//                     )
//                     
//                );

                f_recv_E_RABSetupResponse(mw_E_RABSetupResIEs_FailedToSetupList(
                    vc_MME_UE_ID,
garciay's avatar
garciay committed
                    vc_eNB_UE_ID,
                    {
                          mw_E_RABSetupItemBearerSURes(1)
                    },
                    {
                        mw_E_RABItem(
                            2,
garciay's avatar
garciay committed
                            {
                                radioNetwork :=not_supported_QCI_value
garciay's avatar
garciay committed
                            }
                        )
                    }
                ));
                
//                f_recv_S1AP_successfulOutcome(
//                    mw_E_RABSetupResponse(
//                        {
//                            mw_MME_UE_S1AP_ID(vc_MME_UE_ID,ignore),
garciay's avatar
garciay committed
//                            mw_eNB_UE_S1AP_ID(vc_eNB_UE_ID,ignore),
//                            mw_E_RABSetupList(
//                            {
//                                  mw_E_RABSetupItemBearerSURes(1)
//                            }
//                            ),
//                            mw_E_RABFailedToSetupList(
//                            {
//                                mw_E_RABItem(
//                                    2,
//                                    {
//                                        radioNetwork :=not_supported_QCI_value
//                                    }
//                                )
//                            }
//                            )
//                        }
//                    )
//                );
garciay's avatar
garciay committed
                
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 
                
                f_postamble_S1AP_eNB();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                
garciay's avatar
garciay committed
            } // End of function f_TC_S1AP_eNB_RAB_02
garciay's avatar
garciay committed
            
            /**
             * @desc Testcase function for TC_S1AP_eNB_RAB_03
             */
            function f_TC_S1AP_eNB_RAB_03() runs on S1APComponent { 
                // Local variables
                // Preamble
                f_S1AP_enb_init();
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                f_send_E_RABSetupRequest(m_E_RABSetupReqIEs(
                    vc_MME_UE_ID,
                    vc_eNB_UE_ID,
                    {
                        m_E_RABToBeSetupItemBearerSUReq
                    }
                ));
       
                f_recv_E_RABSetupResponse(mw_E_RABSetupResIEs_FailedToSetupList(
                    vc_MME_UE_ID,
                    vc_eNB_UE_ID,
                    -, //omit
                    {
                        mw_E_RABItem(
                            0,
                            {
                                radioNetwork :=
                            (s1_intra_system_handover_triggered,
                             s1_inter_system_handover_triggered,
                             x2_handover_triggered)
                            }
                        )
                    }
                ));
                                
                f_recv_Handover_Required(mw_HandoverRequiredIEs(
                    vc_MME_UE_ID,
                    vc_eNB_UE_ID,
                    ltetoutran,
                    ?,
                    ?,
                    ?
                ));
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 
                f_postamble_S1AP_eNB();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
            } // End of function f_TC_S1AP_eNB_RAB_03
            /**
             * @desc Testcase function for TC_S1AP_eNB_RAB_04
             */
            function f_TC_S1AP_eNB_RAB_04() runs on S1APComponent { 
                // Local variables
                const QCI c_qci_id := 1; // TODO
                
                // Preamble
                f_S1AP_enb_init();
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
                f_send_E_RABSetupRequest(m_E_RABSetupReqIEs(
                    vc_MME_UE_ID,
                    vc_eNB_UE_ID,
                    {m_E_RABToBeSetupItemBearerSUReq (
                        -,
                        m_e_RABlevelQoSParameters(c_qci_id)
                    )}
                ));
                
                
                f_recv_E_RABSetupResponse(mw_E_RABSetupResIEs_FailedToSetupList(
                    vc_MME_UE_ID,
                    vc_eNB_UE_ID,
                    -, //omit
                    {
                        mw_E_RABItem(
                            0,
                            {
                                radioNetwork := not_supported_QCI_value
                            }
                        )
                    }
                ));
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 
                
                f_postamble_S1AP_eNB();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                
            } // End of function f_TC_S1AP_eNB_RAB_04
            
            /**
             * @desc Testcase function for TC_S1AP_eNB_RAB_05
             */
            function f_TC_S1AP_eNB_RAB_05() runs on S1APComponent { 
                // Local variables
                const QCI c_qci_id := 1; // TODO
    
                // Preamble
                f_S1AP_enb_init();
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
    
                // Test body
                f_send_E_RABSetupRequest(m_E_RABSetupReqIEs(
                   vc_MME_UE_ID,
                   vc_eNB_UE_ID,
                   {
                        m_E_RABToBeSetupItemBearerSUReq(1),
                        m_E_RABToBeSetupItemBearerSUReq(1)
                    }
               ));
    
                f_recv_E_RABSetupResponse(mw_E_RABSetupResIEs_FailedToSetupList(
                    vc_MME_UE_ID,
                    vc_eNB_UE_ID,
                    -, //omit
                    {
                        mw_E_RABItem(
                            1,
                            {
                                radioNetwork := multiple_E_RAB_ID_instances
                            }
                        ),
                        mw_E_RABItem(
                            1,
                            {
                                radioNetwork := multiple_E_RAB_ID_instances
                            }
                        )
                    }
                ));
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 
                f_postamble_S1AP_eNB();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
            } // End of function f_TC_S1AP_eNB_RAB_05
            /**
             * @desc Testcase function for TC_S1AP_eNB_RAB_06
             */
            function f_TC_S1AP_eNB_RAB_06() runs on S1APComponent { 
                // Local variables
                
                // Preamble
                f_S1AP_enb_init();
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                // Test body
                f_send_E_RABSetupRequest(m_E_RABSetupReqIEs(
                    vc_MME_UE_ID,
                    vc_eNB_UE_ID,
                    {m_E_RABToBeSetupItemBearerSUReq (
                        1,
                        m_e_RABlevelQoSParameters
                        (5)
                    )}
                ));
    
                f_recv_E_RABSetupResponse(mw_E_RABSetupResIEs(
                    vc_MME_UE_ID,
                    vc_eNB_UE_ID,
                    {
                        mw_E_RABSetupItemBearerSURes
                    }
                ));
                f_send_E_RABSetupRequest(m_E_RABSetupReqIEs(
                    vc_MME_UE_ID,
                    vc_eNB_UE_ID,
                    {
                         m_E_RABToBeSetupItemBearerSUReq(1)
                     }
                ));
                
                f_recv_E_RABSetupResponse(mw_E_RABSetupResIEs_FailedToSetupList(
                    vc_MME_UE_ID,
                    vc_eNB_UE_ID,
                    -, //omit
                    {
                        mw_E_RABItem(
                            1,
                            {
                                radioNetwork := multiple_E_RAB_ID_instances
                            }
                        )
                    }
                ));     
                               
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 
                f_postamble_S1AP_eNB();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
			} // End of function f_TC_S1AP_eNB_RAB_06        
			
			 * @desc Testcase function for TC_S1AP_eNB_RAB_07
			 */
			function f_TC_S1AP_eNB_RAB_07() runs on S1APComponent { 
				// Local variables
				const E_RAB_ID c_E_RAB_ID_A := 0;
			  	const TransportLayerAddress c_transportLayerAddress := '0'B;
			   	const GTP_TEID c_gTP_TEID := '00000000'O;
			   	const NAS_PDU c_nAS_PDU := '0000'O;
				
				// Preamble
				f_S1AP_enb_init();
				f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
				log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
    
			
				// Test body
				f_send_E_RABSetupRequest(m_E_RABSetupReqIEs(
					vc_MME_UE_ID,
					vc_eNB_UE_ID,
					{m_E_RABToBeSetupItemBearerSUReq (
						c_E_RAB_ID_A,
						m_e_RABlevelQoSParameters
						(1),
						c_transportLayerAddress,
						c_gTP_TEID,
						c_nAS_PDU,
						{m_correlationID_IE('01020304'O), m_SIPTO_correlationID_IE('01020304'O)} // iE_Extensions
					)}
				));
	
				f_recv_E_RABSetupResponse(mw_E_RABSetupResIEs_FailedToSetupList(
					vc_MME_UE_ID,
					vc_eNB_UE_ID,
					-, //omit
					{
						mw_E_RABItem(
							1,
							?
						)
					}
				)); 
			 
				               
				f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 
    
				f_postamble_S1AP_eNB();
				f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
				log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
    
			} // End of function f_TC_S1AP_eNB_RAB_07     
			
			/**
			 * @desc Testcase function for TC_S1AP_eNB_RAB_08
			 */
			function f_TC_S1AP_eNB_RAB_08() runs on S1APComponent { 
				// Local variables
				const E_RAB_ID c_E_RAB_ID_A := 0;
				const NAS_PDU c_nAS_PDU := '0000'O;
				
				// Preamble
				f_S1AP_enb_init();
				f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
				log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
    
				f_send_E_RABModifiedRequest(m_E_RABModifiedReqIEs(
					vc_MME_UE_ID,
					vc_eNB_UE_ID,
					{m_E_RABToBeModifiedItemBearerSUReq(
						c_E_RAB_ID_A,
						m_e_RABlevelQoSParameters(5),
						c_nAS_PDU
					)}
				));
				
				f_recv_E_RABModifiedResponse(mw_E_RABModifiedResIEs(
					vc_MME_UE_ID,
					vc_eNB_UE_ID,
					{
						mw_E_RABModifyItemBearerModRes(c_E_RAB_ID_A)
					}
				));
				
				f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 
    
				f_postamble_S1AP_eNB();
				f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
				log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
    
			} // End of function f_TC_S1AP_eNB_RAB_08          
			/**
			 * @desc Testcase function for TC_S1AP_eNB_RAB_09
			 */
			function f_TC_S1AP_eNB_RAB_09 () runs on S1APComponent { 
				// Local variables
				const E_RAB_ID c_E_RAB_ID_A := 0;
				const NAS_PDU c_nAS_PDU := '0000'O;
				// Preamble
				f_S1AP_enb_init();
				f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
				log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
    
				f_send_E_RABModifiedRequest(m_E_RABModifiedReqIEs(
					vc_MME_UE_ID,
					vc_eNB_UE_ID,
					{m_E_RABToBeModifiedItemBearerSUReq(
						c_E_RAB_ID_A,
						m_e_RABlevelQoSParameters(255),
						c_nAS_PDU
					)}
				));

				f_recv_E_RABModifiedResponse(mw_E_RABModifiedResIEs_FailedToModifyList(
					vc_MME_UE_ID,
					vc_eNB_UE_ID,
					{
						mw_E_RABItem(
							c_E_RAB_ID_A,
							{
								radioNetwork := not_supported_QCI_value
							}
						)
					}
				));
							
				f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 
    
				f_postamble_S1AP_eNB();
				f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
				log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
    
			} // End of function f_TC_S1AP_eNB_RAB_09 
			
			/**
			 * @desc Testcase function for TC_S1AP_eNB_RAB_10
			 */
			function f_TC_S1AP_eNB_RAB_10 () runs on S1APComponent { 
				// Local variables
				const E_RAB_ID c_E_RAB_ID_A := 0;
				const NAS_PDU c_nAS_PDU := '0000'O;
				
				// Preamble
				f_S1AP_enb_init();
				f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
				log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
    
				f_send_E_RABModifiedRequest(m_E_RABModifiedReqIEs(
					vc_MME_UE_ID,
					vc_eNB_UE_ID,
					{m_E_RABToBeModifiedItemBearerSUReq(
						c_E_RAB_ID_A,
						m_e_RABlevelQoSParameters(255),
						c_nAS_PDU
					)}
				));
				
				f_recv_E_RABModifiedResponse(mw_E_RABModifiedResIEs_FailedToModifyList(
					vc_MME_UE_ID,
					vc_eNB_UE_ID,
					omit,
					{
						mw_E_RABItem(
							c_E_RAB_ID_A,
							{
								radioNetwork := (s1_intra_system_handover_triggered,
											 s1_inter_system_handover_triggered,
											 x2_handover_triggered)
							}
						)
					}
				));
			
				f_recv_Handover_Required(mw_HandoverRequiredIEs(
					vc_MME_UE_ID,
					vc_eNB_UE_ID,
					ltetoutran,
					?,
					?,
					?
				));
				
				f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 
    
				f_postamble_S1AP_eNB();
				f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
				log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
    
			} // End of function f_TC_S1AP_eNB_RAB_10
			
			/**
			 * @desc Testcase function for TC_S1AP_eNB_RAB_11
			 */
			function f_TC_S1AP_eNB_RAB_11 () runs on S1APComponent { 
				// Local variables
				
				
				// Preamble
				f_S1AP_enb_init();
				f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
				log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
    
				// TODO
			
				f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 
    
				f_postamble_S1AP_eNB();
				f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
				log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
    
			} // End of function f_TC_S1AP_eNB_RAB_11
			
			/**
			 * @desc Testcase function for TC_S1AP_eNB_RAB_12
			 */
			function f_TC_S1AP_eNB_RAB_12  () runs on S1APComponent {
				// Local variables
				
				
				// Preamble
				f_S1AP_enb_init();
				f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
				log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");

				// TODO

				f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());

				f_postamble_S1AP_eNB();
				f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
				log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");

			} // End of function f_TC_S1AP_eNB_RAB_12

garciay's avatar
garciay committed
        } // End of group ERAB_management_group
        
        /**
         * @desc Context management group
         * @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.3  Context management group
         */
        group Context_management_group {
             * @desc Testcase function for TC_S1AP_eNB_CMP_01
            function f_TC_S1AP_eNB_CMP_01() runs on S1APComponent { 
                // Local variables
                
                // Preamble
                f_S1AP_enb_init();
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
                // Test body
                f_send_InitialContext_SetupRequest(m_InitialContextSetupReqIEs(
                    vc_MME_UE_ID,
                    vc_eNB_UE_ID,
                    m_UEAggregateMaximumBitrate(1,1),
                    {m_E_RABToBeSetupItemBearerSUReq (
                        -,
                        m_e_RABlevelQoSParameters
                    m_UESecurityCapabilities('0101010101010101'B,'0101010101010101'B),
                    m_securityKey
                f_recv_InitialContext_SetupResponse(mw_InitialContextSetupResIEs(
                    vc_MME_UE_ID,
                    vc_eNB_UE_ID,
                    {
                        mw_E_RABSetupItemBearerSURes
                    }
                ));
                
                
                // Postamble
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 
                
                f_postamble_S1AP_eNB();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                
            } // End of function f_TC_S1AP_eNB_CMP_01
            /**
             * @desc Testcase function for TC_S1AP_eNB_CMP_02
             */
            function f_TC_S1AP_eNB_CMP_02() runs on S1APComponent { 
                // Local variables
                const E_RAB_ID c_E_RAB_ID_A := 0;
                const E_RAB_ID c_E_RAB_ID_B := 1;
                const TransportLayerAddress c_transportLayerAddress := '0'B;
                const GTP_TEID c_gTP_TEID := '00000000'O;
                const NAS_PDU c_nAS_PDU := '0000'O;
                // Preamble
                f_S1AP_enb_init();
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
                // Test body
                f_send_InitialContext_SetupRequest(
                    m_InitialContextSetupReqIEs(
                        vc_MME_UE_ID,
                        vc_eNB_UE_ID,
                        m_UEAggregateMaximumBitrate(1,1),
                        {
                            m_E_RABToBeSetupItemBearerSUReq (
                                c_E_RAB_ID_A,
                                m_e_RABlevelQoSParameters(5),
                                c_transportLayerAddress,
                                c_gTP_TEID,
                                c_nAS_PDU
                            ),
                            m_E_RABToBeSetupItemBearerSUReq(
                                c_E_RAB_ID_B,
                                m_e_RABlevelQoSParameters(255),
                                c_transportLayerAddress,
                                c_gTP_TEID,
                                c_nAS_PDU
                        m_UESecurityCapabilities('0101010101010101'B,'0101010101010101'B),
                        m_securityKey
                f_recv_InitialContext_SetupResponse(
                    mw_InitialContextSetupResIEs(
                        vc_MME_UE_ID,
                        vc_eNB_UE_ID,
                        {
                            mw_E_RABSetupItemBearerSURes(c_E_RAB_ID_A)
                        },
                        {
                            mw_E_RABItem(
                                c_E_RAB_ID_B,
                                {
                                    radioNetwork :=not_supported_QCI_value
                                }
                            )
                        }
                ));
                
                
                // Postamble
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 
                
                f_postamble_S1AP_eNB();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                
            } // End of function f_TC_S1AP_eNB_CMP_02

            /**
             * @desc Testcase function for TC_S1AP_eNB_CMP_03
             */
            function f_TC_S1AP_eNB_CMP_03() runs on S1APComponent { 
                // Local variables
                const E_RAB_ID c_E_RAB_ID_A := 0;
                const TransportLayerAddress c_transportLayerAddress := '0'B;
                const GTP_TEID c_gTP_TEID := '00000000'O;
                const NAS_PDU c_nAS_PDU := '0000'O;
                // Preamble
                f_S1AP_enb_init();
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
                // Test body
                f_send_InitialContext_SetupRequest(m_InitialContextSetupReqIEs(
                    vc_MME_UE_ID,
                    vc_eNB_UE_ID,
                    m_UEAggregateMaximumBitrate(1,1),
                    {m_E_RABToBeSetupItemBearerSUReq (
                        c_E_RAB_ID_A,
                        m_e_RABlevelQoSParameters
                        (1),
                        c_transportLayerAddress,
                        c_gTP_TEID,
                        c_nAS_PDU
                    m_UESecurityCapabilities('0101010101010101'B,'0101010101010101'B),
                    m_securityKey
                f_recv_InitialContext_SetupResponse(mw_InitialContextSetupResIEs(
                    {
                        mw_E_RABItem(
                            c_E_RAB_ID_A,
                            ?
                        )
                    }
                ));
                
                
                // Postamble
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 
                
                f_postamble_S1AP_eNB();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                
            } // End of function f_TC_S1AP_eNB_CMP_03

            /**
             * @desc Testcase function for TC_S1AP_eNB_CMP_04
             */
            function f_TC_S1AP_eNB_CMP_04() runs on S1APComponent { 
                // Local variables
                const E_RAB_ID c_E_RAB_ID_A := 0;
                const TransportLayerAddress c_transportLayerAddress := '0'B;
                const GTP_TEID c_gTP_TEID := '00000000'O;
                const NAS_PDU c_nAS_PDU := '0000'O;
                // Preamble
                f_S1AP_enb_init();
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
                // Test body
                f_send_InitialContext_SetupRequest(m_InitialContextSetupReqIEs(
                    vc_MME_UE_ID,
                    vc_eNB_UE_ID,
                    m_UEAggregateMaximumBitrate(1,1),
                    {m_E_RABToBeSetupItemBearerSUReq (
                        c_E_RAB_ID_A,
                        m_e_RABlevelQoSParameters
                        (5),
                        c_transportLayerAddress,
                        c_gTP_TEID,
                        c_nAS_PDU
                    ),
                    m_E_RABToBeSetupItemBearerSUReq (
                        c_E_RAB_ID_A,
                        m_e_RABlevelQoSParameters
                        (5),
                        c_transportLayerAddress,
                        c_gTP_TEID,
                        c_nAS_PDU
                    )},
                    m_UESecurityCapabilities('0101010101010101'B,'0101010101010101'B),
                    m_securityKey
                ));
                f_recv_InitialContext_SetupResponse(mw_InitialContextSetupResIEs(
                    vc_MME_UE_ID,
                    vc_eNB_UE_ID,
                    -,
                    {
                        mw_E_RABItem(
                            c_E_RAB_ID_A,
                            {
                            radioNetwork := multiple_E_RAB_ID_instances
                            }                    
                        ),
                        mw_E_RABItem(
                            c_E_RAB_ID_A,
                            {
                            radioNetwork := multiple_E_RAB_ID_instances
                            }                            
                        )
                    }
                ));
                
                
                // Postamble
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 
                
                f_postamble_S1AP_eNB();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                
            } // End of function f_TC_S1AP_eNB_CMP_04
            /**
             * @desc Testcase function for TC_S1AP_eNB_CMP_05
             */
            function f_TC_S1AP_eNB_CMP_05() runs on S1APComponent { 
                // Local variables
                const E_RAB_ID c_E_RAB_ID_A := 0;
                const TransportLayerAddress c_transportLayerAddress := '0'B;
                const GTP_TEID c_gTP_TEID := '00000000'O;
                const NAS_PDU c_nAS_PDU := '0000'O;
                const EncryptionAlgorithms c_notSupportedEncryptionAlgorithms := '0000000000000000'B;
                // Preamble
                f_S1AP_enb_init();
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
                // Test body
                f_send_InitialContext_SetupRequest(m_InitialContextSetupReqIEs(
                    vc_MME_UE_ID,
                    vc_eNB_UE_ID,
                    m_UEAggregateMaximumBitrate(1,1),
                    {m_E_RABToBeSetupItemBearerSUReq (
                        c_E_RAB_ID_A,
                        m_e_RABlevelQoSParameters
                        (5),
                        c_transportLayerAddress,
                        c_gTP_TEID,
                        c_nAS_PDU
                    )},
                    m_UESecurityCapabilities(c_notSupportedEncryptionAlgorithms,'0101010101010101'B),
                    m_securityKey
                ));
                f_recv_InitialContext_SetupResponse(mw_InitialContextSetupFailureIEs(
                    vc_MME_UE_ID,
                    vc_eNB_UE_ID,
                    mw_cause_ran(encryption_and_or_integrity_protection_algorithms_not_supported)
                ));
                // Postamble
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 
                f_postamble_S1AP_eNB();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
            } // End of function f_TC_S1AP_eNB_CMP_05
            /**
             * @desc Testcase function for TC_S1AP_eNB_CMP_06
             */
            function f_TC_S1AP_eNB_CMP_06() runs on S1APComponent { 
                // Local variables
                const E_RAB_ID c_E_RAB_ID_A := 0;
                const TransportLayerAddress c_transportLayerAddress := '0'B;
                const GTP_TEID c_gTP_TEID := '00000000'O;
                const NAS_PDU c_nAS_PDU := '0000'O;
                const IntegrityProtectionAlgorithms c_notSupportedIntegrityProtectionAlgorithms := '0000000000000000'B;
                // Preamble
                f_S1AP_enb_init();
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
                // Test body
                f_send_InitialContext_SetupRequest(m_InitialContextSetupReqIEs(
                    vc_MME_UE_ID,
                    vc_eNB_UE_ID,
                    m_UEAggregateMaximumBitrate(1,1),
                    {m_E_RABToBeSetupItemBearerSUReq (
                        c_E_RAB_ID_A,
                        m_e_RABlevelQoSParameters
                        (5),
                        c_transportLayerAddress,
                        c_gTP_TEID,
                        c_nAS_PDU
                    )},
                    m_UESecurityCapabilities('0101010101010101'B, c_notSupportedIntegrityProtectionAlgorithms),
                    m_securityKey
                ));
                f_recv_InitialContext_SetupResponse(mw_InitialContextSetupFailureIEs(
                    vc_MME_UE_ID,
                    vc_eNB_UE_ID,
                    mw_cause_ran(encryption_and_or_integrity_protection_algorithms_not_supported)
                ));
                // Postamble
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 
                f_postamble_S1AP_eNB();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
            } // End of function f_TC_S1AP_eNB_CMP_06
            /**
             * @desc Testcase function for TC_S1AP_eNB_CMP_07
             */
            function f_TC_S1AP_eNB_CMP_07() runs on S1APComponent { 
                // Local variables
                const E_RAB_ID c_E_RAB_ID_A := 0;