Commit fb551caf authored by Yann Garcia's avatar Yann Garcia
Browse files

Merge branch 'TTF010' of https://forge.etsi.org/rep/int/vxlte/emergency-iop into TTF010

parents 914b5a63 c6141db8
Loading
Loading
Loading
Loading
+45 −1
Original line number Original line Diff line number Diff line
@@ -49,7 +49,51 @@ module AtsImsIot_Emergency {
        group NetworkAttachment {
        group NetworkAttachment {


            group UENetworkAttachmentWithUSIM {
            group UENetworkAttachmentWithUSIM {
				/**
				 * @desc    Emergency Network Attachment and Establishment of the Emergency Bearer with USIM.
				 * On successful emergency attachment, the UE/IVS should discover the P-CSCF IP address.
				 * The EPC will create the Emergency Bearers which will allow communication only between the UE and the P-CSCF
				 * and allowed forwarding towards E-CSCF
				 * @see TS 124 229 [2], clause 9.2.1 and L.2.2.6; TS 129 212 [7], clauses 4.5.15 and 4a.5.12; 
				 * TS 129 272 [8], clause 5.2.1.1 (MME shall proceed even if Update Location fails)
				 * 
				 */
				testcase TC_VoLTE_ECO_INT_ATT_01 ( ) runs on ImsTestCoordinator system IotSystemInterface {
    
					var IotEquipmentUser v_ueA    := f_cf_create_IotEquipmentUser ( c_userUE_A );
					var ImsUserInfo v_userInfoA    := f_getImUser ( PX_EUT_A );
    
					f_setVxLteMonIterfacesAvailability();
					//Check required monitor interfaces due to TD
					if (f_checkVxLteRequiredMonitorInterface({PX_DIAMETER_GX_INTERFACENAME,PX_DIAMETER_S6A_INTERFACENAME})){
						f_cf_createVxLteMonitor();    
        
						// map/connect component ports
						f_cf_adapter_up ( );
						f_cf_user_up ( v_ueA );
						f_cf_VxLteMonitor_Up();
        
						// preamble
						f_mtc_userRadioEnabled ( v_ueA, true, true ); // UA-A trigger an initial network_attachment by enabling radio interface of its mobile
        
        
						// test body
						// Check that user A starts initial network attachment
						f_mtc_check_TP_S6A_MME_ULR_01 ( vc_vxlte_monitor_components.s6a, true ); // Check (ULR – Event 2)
						f_mtc_check_TP_S6A_HSS_ULA_01 ( vc_vxlte_monitor_components.s6a);        // Check (ULA – Event 3) 
						f_mtc_check_TP_GX_PCRF_CCA_01 ( vc_vxlte_monitor_components.gx); // Check (CCR, CCA – Events 4, 5)
        
						// postamble
						f_mtc_userRadioEnabled ( v_ueA, false, true );
        
						//unmap/disconnect component ports
						f_cf_user_down ( v_ueA );
						f_cf_VxLteMonitor_Down();
						f_cf_adapter_down ( );
					}else{
						//log...
						setverdict (inconc,"At least one required monitor interface SHALL be selected! Check PIXITs")
					}
				} // End of TC TC_VxLTE_INT_ATT_01
            } // End of group UENetworkAttachmentWithUSIM
            } // End of group UENetworkAttachmentWithUSIM


            group UENetworkAttachmentWithoutUSIM {
            group UENetworkAttachmentWithoutUSIM {
+20 −14
Original line number Original line Diff line number Diff line
@@ -122,10 +122,15 @@ module AtsImsIot_TestSystem {
		type record CF_VXLTE_Interfaces{
		type record CF_VXLTE_Interfaces{
			SipInterfaceMonitor gmA 	optional,
			SipInterfaceMonitor gmA 	optional,
			SipInterfaceMonitor gmB 	optional,
			SipInterfaceMonitor gmB 	optional,
			SipInterfaceMonitor mmB_PSAP  optional,// MmMx interface at IBCF to PSAP
			SipInterfaceMonitor mwEB      optional,// Mw interface at E-CSCF/IBCF 
			SipInterfaceMonitor mwS_PSAP  optional,// MwMmMx interface at E,SCSCF to PSAP
			SipInterfaceMonitor ic      optional,
			SipInterfaceMonitor ic      optional,
			SipInterfaceMonitor mwPI    optional,// Mw interface at P-CSCF/I-CSCF or P-CSCF/S-CSCF if I-CSCF not used
			SipInterfaceMonitor mwPI    optional,// Mw interface at P-CSCF/I-CSCF or P-CSCF/S-CSCF if I-CSCF not used
			SipInterfaceMonitor mwPS    optional,
			SipInterfaceMonitor mwPS    optional,
			SipInterfaceMonitor mwPE    optional,// Mw interface at P-CSCF to E-CSCF
			SipInterfaceMonitor mwIS    optional,// Mw interface at I-CSCF/S-CSCF
			SipInterfaceMonitor mwIS    optional,// Mw interface at I-CSCF/S-CSCF
			SipInterfaceMonitor mwIE    optional,// Mw interface at I-CSCF/S-CSCF to E-CSCF
			SipInterfaceMonitor mwPB    optional,// Mw interface at P-CSCF/IBCF    
			SipInterfaceMonitor mwPB    optional,// Mw interface at P-CSCF/IBCF    
			SipInterfaceMonitor mwIB    optional,// Mw interface at I-CSCF/IBCF 
			SipInterfaceMonitor mwIB    optional,// Mw interface at I-CSCF/IBCF 
			SipInterfaceMonitor isc     optional, 
			SipInterfaceMonitor isc     optional, 
@@ -162,4 +167,5 @@ module AtsImsIot_TestSystem {
			SipInterfaceMonitor 		gmB
			SipInterfaceMonitor 		gmB
		}
		}
	} // end of g_release15
	} // end of g_release15
	
}
}
 No newline at end of file
+3 −1
Original line number Original line Diff line number Diff line
@@ -100,7 +100,9 @@ module LibIot_TypesAndValues {
    type record VxLTEMonitorInterfaceList{
    type record VxLTEMonitorInterfaceList{
        MonitorInterfaceInfo gmA     optional,
        MonitorInterfaceInfo gmA     optional,
        MonitorInterfaceInfo gmB     optional,
        MonitorInterfaceInfo gmB     optional,
        MonitorInterfaceInfo mwPSAP optional,// MwMmMx interface at E,SCSCF to PSAP
        MonitorInterfaceInfo mmB_PSAP optional,// Mm interface at IBCF to PSAP
		MonitorInterfaceInfo mwEB     optional,// Mw interface at ECSCF to IBCF
        MonitorInterfaceInfo mwS_PSAP optional,// Mw interface at SCSCF to PSAP
        MonitorInterfaceInfo ic     optional,
        MonitorInterfaceInfo ic     optional,
        MonitorInterfaceInfo mwPI     optional,// Mw interface at P-CSCF/I-CSCF or P-CSCF/S-CSCF if I-CSCF not used
        MonitorInterfaceInfo mwPI     optional,// Mw interface at P-CSCF/I-CSCF or P-CSCF/S-CSCF if I-CSCF not used
        MonitorInterfaceInfo mwPS     optional,
        MonitorInterfaceInfo mwPS     optional,
+73 −20
Original line number Original line Diff line number Diff line
@@ -54,8 +54,14 @@ module LibIot_VxLTE_Functions {
            if (PX_SIP_GMB_MONITORENABLED == true){
            if (PX_SIP_GMB_MONITORENABLED == true){
                vc_MonIntfList.gmB := valueof(m_MonIntf_Sip_Gm_B);
                vc_MonIntfList.gmB := valueof(m_MonIntf_Sip_Gm_B);
            }
            }
            if (PX_SIP_MW_PSAP_MONITORENABLED == true){
            if (PX_SIP_MM_B_PSAP_MONITORENABLED == true){
                vc_MonIntfList.mwPSAP := valueof(m_MonIntf_Sip_Mw_PSAP);
                vc_MonIntfList.mmB_PSAP := valueof(m_MonIntf_Sip_MmB_PSAP);
            }
			if (PX_SIP_MW_EB_MONITORENABLED == true){
				vc_MonIntfList.mwEB := valueof(m_MonIntf_Sip_Mw_EB);
			}
			if (PX_SIP_MW_S_PSAP_MONITORENABLED == true){
			    vc_MonIntfList.mwS_PSAP := valueof(m_MonIntf_Sip_MwS_PSAP);
		    }
		    }
            if (PX_SIP_IC_MONITORENABLED == true){
            if (PX_SIP_IC_MONITORENABLED == true){
                vc_MonIntfList.ic := valueof(m_MonIntf_Sip_Ic);
                vc_MonIntfList.ic := valueof(m_MonIntf_Sip_Ic);
@@ -124,8 +130,14 @@ module LibIot_VxLTE_Functions {
                vc_vxlte_monitor_components.gmB := f_cf_create_monitor_sip ( vc_MonIntfList.gmB);
                vc_vxlte_monitor_components.gmB := f_cf_create_monitor_sip ( vc_MonIntfList.gmB);
            }
            }
            
            
            if (isvalue(vc_MonIntfList.mwPSAP)){
            if (isvalue(vc_MonIntfList.mmB_PSAP)){
                vc_vxlte_monitor_components.mwPSAP := f_cf_create_monitor_sip ( vc_MonIntfList.mwPSAP);
                vc_vxlte_monitor_components.mmB_PSAP := f_cf_create_monitor_sip ( vc_MonIntfList.mmB_PSAP);
            }
			if (isvalue(vc_MonIntfList.mwEB)){
				vc_vxlte_monitor_components.mwEB := f_cf_create_monitor_sip ( vc_MonIntfList.mwEB);
			}
			if (isvalue(vc_MonIntfList.mwS_PSAP)){
				vc_vxlte_monitor_components.mwS_PSAP := f_cf_create_monitor_sip ( vc_MonIntfList.mwS_PSAP);
			}
			}
            if (isvalue(vc_MonIntfList.ic)){
            if (isvalue(vc_MonIntfList.ic)){
                vc_vxlte_monitor_components.ic := f_cf_create_monitor_sip ( vc_MonIntfList.ic);
                vc_vxlte_monitor_components.ic := f_cf_create_monitor_sip ( vc_MonIntfList.ic);
@@ -211,16 +223,33 @@ module LibIot_VxLTE_Functions {
                                                     )));
                                                     )));
            }
            }
            
            
            if (isvalue(vc_MonIntfList.mwPSAP)){
            if (isvalue(vc_MonIntfList.mmB_PSAP)){
                f_cf_monitor_up_sip(vc_vxlte_monitor_components.mwPSAP);
                f_cf_monitor_up_sip(vc_vxlte_monitor_components.mmB_PSAP);
                vc_vxlte_monitor_components.mwPI.start(f_cf_setFilter(
                vc_vxlte_monitor_components.mmB_PSAP.start(f_cf_setFilter(
                                                        valueof (m_SetFilterReq(
                                                        valueof (m_SetFilterReq(
                                                                    e_sip,
                                                                    e_sip,
                                                                    {vc_MonIntfList.mwPSAP.interfaceInfo}
                                                                    {vc_MonIntfList.mmB_PSAP.interfaceInfo}
                                                        )
                                                     )));
            }
			if (isvalue(vc_MonIntfList.mwEB)){
				f_cf_monitor_up_sip(vc_vxlte_monitor_components.mwEB);
				vc_vxlte_monitor_components.mwEB.start(f_cf_setFilter(
														valueof (m_SetFilterReq(
																	e_sip,
																	{vc_MonIntfList.mwEB.interfaceInfo}
														)
													 )));
			}
			if (isvalue(vc_MonIntfList.mwS_PSAP)){
			    f_cf_monitor_up_sip(vc_vxlte_monitor_components.mwS_PSAP);
			    vc_vxlte_monitor_components.mwS_PSAP.start(f_cf_setFilter(
				 									   valueof (m_SetFilterReq(
				 												   e_sip,
				 												   {vc_MonIntfList.mwS_PSAP.interfaceInfo}
				 									   )
				 									   )
				 									)));
				 									)));
		    }             
		    }             
                        
            if (isvalue(vc_MonIntfList.ic)){
            if (isvalue(vc_MonIntfList.ic)){
                f_cf_monitor_up_sip(vc_vxlte_monitor_components.ic);
                f_cf_monitor_up_sip(vc_vxlte_monitor_components.ic);
                vc_vxlte_monitor_components.ic.start(f_cf_setFilter(
                vc_vxlte_monitor_components.ic.start(f_cf_setFilter(
@@ -394,8 +423,14 @@ module LibIot_VxLTE_Functions {
            if (isvalue(vc_MonIntfList.gmB)){
            if (isvalue(vc_MonIntfList.gmB)){
                f_cf_monitor_down_sip(vc_vxlte_monitor_components.gmB);
                f_cf_monitor_down_sip(vc_vxlte_monitor_components.gmB);
            }
            }
            if (isvalue(vc_MonIntfList.mwPSAP)){
            if (isvalue(vc_MonIntfList.mmB_PSAP)){
                f_cf_monitor_down_sip(vc_vxlte_monitor_components.mwPSAP);
                f_cf_monitor_down_sip(vc_vxlte_monitor_components.mmB_PSAP);
            }
			if (isvalue(vc_MonIntfList.mwEB)){
				f_cf_monitor_down_sip(vc_vxlte_monitor_components.mwEB);
			}
			if (isvalue(vc_MonIntfList.mwS_PSAP)){
				f_cf_monitor_down_sip(vc_vxlte_monitor_components.mwS_PSAP);
			}
			}
            if (isvalue(vc_MonIntfList.ic)){
            if (isvalue(vc_MonIntfList.ic)){
                f_cf_monitor_down_sip(vc_vxlte_monitor_components.ic);
                f_cf_monitor_down_sip(vc_vxlte_monitor_components.ic);
@@ -488,7 +523,9 @@ module LibIot_VxLTE_Functions {
            if ((isvalue(vc_MonIntfList.gmA))  and (vc_MonIntfList.gmA.interfaceName==p_interfaceName)){ return true;}
            if ((isvalue(vc_MonIntfList.gmA))  and (vc_MonIntfList.gmA.interfaceName==p_interfaceName)){ return true;}
            //if ((isvalue(vc_MonIntfList.gmB))  and (vc_MonIntfList.gmB.interfaceName==p_interfaceName)){ return true;}
            //if ((isvalue(vc_MonIntfList.gmB))  and (vc_MonIntfList.gmB.interfaceName==p_interfaceName)){ return true;}


            if ((isvalue(vc_MonIntfList.mwPSAP)) and (vc_MonIntfList.mwPSAP.interfaceName==p_interfaceName)){ return true;}
            if ((isvalue(vc_MonIntfList.mmB_PSAP)) and (vc_MonIntfList.mmB_PSAP.interfaceName==p_interfaceName)){ return true;}
			if ((isvalue(vc_MonIntfList.mwEB)) and (vc_MonIntfList.mwEB.interfaceName==p_interfaceName)){ return true;}
			if ((isvalue(vc_MonIntfList.mwS_PSAP)) and (vc_MonIntfList.mwS_PSAP.interfaceName==p_interfaceName)){ return true;}
            if ((isvalue(vc_MonIntfList.ic))   and (vc_MonIntfList.ic.interfaceName==p_interfaceName)){ return true;}
            if ((isvalue(vc_MonIntfList.ic))   and (vc_MonIntfList.ic.interfaceName==p_interfaceName)){ return true;}


            if ((isvalue(vc_MonIntfList.mwPI)) and (vc_MonIntfList.mwPI.interfaceName==p_interfaceName)){ return true;}
            if ((isvalue(vc_MonIntfList.mwPI)) and (vc_MonIntfList.mwPI.interfaceName==p_interfaceName)){ return true;}
@@ -531,7 +568,7 @@ module LibIot_VxLTE_Functions {
        
        
        var InterfaceAvailableList v_VxLTE_MonIntf_Available;
        var InterfaceAvailableList v_VxLTE_MonIntf_Available;
        var InterfaceAvailable v_InterfaceAvailable;
        var InterfaceAvailable v_InterfaceAvailable;
        var SipInterfaceMonitor v_gmA, v_gmB, v_mwPSAP, v_ic, v_mwPI, v_mwPS, v_mwPE, v_mwSI, v_mwPB, v_mwIB, v_mwIE, v_isc;
        var SipInterfaceMonitor v_gmA, v_gmB, v_mmBPSAP, v_mwEB, v_mwSPSAP, v_ic, v_mwPI, v_mwPS, v_mwPE, v_mwSI, v_mwPB, v_mwIB, v_mwIE, v_isc;
        var DiameterInterfaceMonitor v_cxIH, v_cxSH, v_gx, v_rx, v_s6a, v_s9, v_sh;
        var DiameterInterfaceMonitor v_cxIH, v_cxSH, v_gx, v_rx, v_s6a, v_s9, v_sh;
        
        
        if (PX_SIP_GMA_MONITORENABLED == true){
        if (PX_SIP_GMA_MONITORENABLED == true){
@@ -548,13 +585,29 @@ module LibIot_VxLTE_Functions {
            v_gmB := f_cf_create_monitor_sip (  valueof(m_MonIntf_Sip_Gm_B)/*PX_SIP_GMB_INTERFACENAME*/);
            v_gmB := f_cf_create_monitor_sip (  valueof(m_MonIntf_Sip_Gm_B)/*PX_SIP_GMB_INTERFACENAME*/);
            f_cf_monitor_up_sip(v_gmB);
            f_cf_monitor_up_sip(v_gmB);
        }
        }
        if (PX_SIP_MW_PSAP_MONITORENABLED == true){
        if (PX_SIP_MM_B_PSAP_MONITORENABLED == true){
            
            v_InterfaceAvailable.interfaceName := PX_SIP_MM_B_PSAP_INTERFACENAME; 
            v_InterfaceAvailable.available := PX_SIP_MM_B_PSAP_MONITORENABLED;
            v_VxLTE_MonIntf_Available := f_update_MonitorInterfaceList(v_VxLTE_MonIntf_Available,v_InterfaceAvailable);
            v_mmBPSAP := f_cf_create_monitor_sip (  valueof(m_MonIntf_Sip_MmB_PSAP)/*PX_SIP_MW_PSAP_INTERFACENAME*/ );
            f_cf_monitor_up_sip(v_mmBPSAP);
        }
		if (PX_SIP_MW_EB_MONITORENABLED == true){
    
			v_InterfaceAvailable.interfaceName := PX_SIP_MW_EB_INTERFACENAME; 
			v_InterfaceAvailable.available := PX_SIP_MW_EB_MONITORENABLED;
			v_VxLTE_MonIntf_Available := f_update_MonitorInterfaceList(v_VxLTE_MonIntf_Available,v_InterfaceAvailable);
			v_mwEB := f_cf_create_monitor_sip (  valueof(m_MonIntf_Sip_Mw_EB)/*PX_SIP_MW_PI_INTERFACENAME*/ );
			f_cf_monitor_up_sip(v_mwEB);
		}
		if (PX_SIP_MW_S_PSAP_MONITORENABLED == true){
    
    
            v_InterfaceAvailable.interfaceName := PX_SIP_MW_PSAP_INTERFACENAME; 
		    v_InterfaceAvailable.interfaceName := PX_SIP_MW_S_PSAP_INTERFACENAME; 
            v_InterfaceAvailable.available := PX_SIP_MW_PSAP_MONITORENABLED;
		    v_InterfaceAvailable.available := PX_SIP_MW_S_PSAP_MONITORENABLED;
		    v_VxLTE_MonIntf_Available := f_update_MonitorInterfaceList(v_VxLTE_MonIntf_Available,v_InterfaceAvailable);
		    v_VxLTE_MonIntf_Available := f_update_MonitorInterfaceList(v_VxLTE_MonIntf_Available,v_InterfaceAvailable);
            v_mwPSAP := f_cf_create_monitor_sip (  valueof(m_MonIntf_Sip_Mw_PSAP)/*PX_SIP_MW_PSAP_INTERFACENAME*/ );
		    v_mwSPSAP := f_cf_create_monitor_sip (  valueof(m_MonIntf_Sip_MwS_PSAP)/*PX_SIP_MW_PSAP_INTERFACENAME*/ );
            f_cf_monitor_up_sip(v_mwPSAP);
		    f_cf_monitor_up_sip(v_mwSPSAP);
	    }
	    }
        if (PX_SIP_IC_MONITORENABLED == true){
        if (PX_SIP_IC_MONITORENABLED == true){
            v_InterfaceAvailable.interfaceName := PX_SIP_IC_INTERFACENAME; 
            v_InterfaceAvailable.interfaceName := PX_SIP_IC_INTERFACENAME; 
+6 −2
Original line number Original line Diff line number Diff line
@@ -52,7 +52,9 @@ module LibIot_VxLTE_PIXITS {
            //A.8.4    PIXIT items for the Mw Interface 
            //A.8.4    PIXIT items for the Mw Interface 
            //The Mw interface connects an x-CSCF with another x-CSCF or an IBCF using the SIP and SDP protocols as defined in ETSI TS 124 229 [1].
            //The Mw interface connects an x-CSCF with another x-CSCF or an IBCF using the SIP and SDP protocols as defined in ETSI TS 124 229 [1].
            group Mw{
            group Mw{
                modulepar charstring    PX_SIP_MW_PSAP_INTERFACENAME  := "Mw PSAP";              //MwMmMx interface between E,S-CSCF and PSAP
                modulepar charstring    PX_SIP_MM_B_PSAP_INTERFACENAME  := "Mm IBCF PSAP";              //Mm interface between IBCF and PSAP
				modulepar charstring    PX_SIP_MW_EB_INTERFACENAME      := "Mw ECSCF IBCF";             //Mw interface between ECSCF and IBCF
                modulepar charstring    PX_SIP_MW_S_PSAP_INTERFACENAME  := "Mw SCSCF PSAP";             //Mw interface between S-CSCF and PSAP
                modulepar charstring    PX_SIP_MW_PI_INTERFACENAME  := "Mw PI";                  //Mw interface between P-CSCF and I-CSCF
                modulepar charstring    PX_SIP_MW_PI_INTERFACENAME  := "Mw PI";                  //Mw interface between P-CSCF and I-CSCF
                modulepar charstring    PX_SIP_MW_PS_INTERFACENAME  := "Mw PS";                  //Mw interface between P-CSCF and S-CSCF
                modulepar charstring    PX_SIP_MW_PS_INTERFACENAME  := "Mw PS";                  //Mw interface between P-CSCF and S-CSCF
                modulepar charstring    PX_SIP_MW_PE_INTERFACENAME  := "Mw PE";                  //Mw interface between P-CSCF and E-CSCF
                modulepar charstring    PX_SIP_MW_PE_INTERFACENAME  := "Mw PE";                  //Mw interface between P-CSCF and E-CSCF
@@ -72,7 +74,9 @@ module LibIot_VxLTE_PIXITS {
                modulepar integer       PX_SIP_MW_E_CSCF_PORT       := 5095;                     //Mw Port number of E-CSCF
                modulepar integer       PX_SIP_MW_E_CSCF_PORT       := 5095;                     //Mw Port number of E-CSCF
                modulepar charstring    PX_SIP_MW_IBCF_IPADDR       := "fe80::21a:a0ff:fe07:98"; //Mw IP address of IBCF
                modulepar charstring    PX_SIP_MW_IBCF_IPADDR       := "fe80::21a:a0ff:fe07:98"; //Mw IP address of IBCF
                modulepar integer       PX_SIP_MW_IBCF_PORT         := 5050;                     //Mw Port number of IBCF
                modulepar integer       PX_SIP_MW_IBCF_PORT         := 5050;                     //Mw Port number of IBCF
                modulepar boolean       PX_SIP_MW_PSAP_MONITORENABLED := true; //true - Monitor enabled for PSAP connection only
				modulepar boolean       PX_SIP_MM_B_PSAP_MONITORENABLED := true; //true - Monitor enabled for PSAP connection only
				modulepar boolean       PX_SIP_MW_EB_MONITORENABLED := true; //true - Monitor enabled for PE connection only
                modulepar boolean       PX_SIP_MW_S_PSAP_MONITORENABLED := true; //true - Monitor enabled for PSAP connection only
                modulepar boolean       PX_SIP_MW_PI_MONITORENABLED := true; //true - Monitor enabled for PI connection only
                modulepar boolean       PX_SIP_MW_PI_MONITORENABLED := true; //true - Monitor enabled for PI connection only
                modulepar boolean       PX_SIP_MW_PS_MONITORENABLED := true; //true - Monitor enabled for PS connection only
                modulepar boolean       PX_SIP_MW_PS_MONITORENABLED := true; //true - Monitor enabled for PS connection only
                modulepar boolean       PX_SIP_MW_PE_MONITORENABLED := true; //true - Monitor enabled for PE connection only
                modulepar boolean       PX_SIP_MW_PE_MONITORENABLED := true; //true - Monitor enabled for PE connection only
Loading