Loading ttcn/AtsImsIot/AtsImsIot_Emergency.ttcn +45 −1 Original line number Original line Diff line number Diff line Loading @@ -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 { Loading ttcn/AtsImsIot/AtsImsIot_TestSystem.ttcn +20 −14 Original line number Original line Diff line number Diff line Loading @@ -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, Loading Loading @@ -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 ttcn/LibIot/LibIot_TypesAndValues.ttcn +3 −1 Original line number Original line Diff line number Diff line Loading @@ -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, Loading ttcn/LibIot/LibIot_VxLTE_Functions.ttcn +73 −20 Original line number Original line Diff line number Diff line Loading @@ -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); Loading Loading @@ -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); Loading Loading @@ -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( Loading Loading @@ -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); Loading Loading @@ -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;} Loading Loading @@ -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){ Loading @@ -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; Loading ttcn/LibIot/LibIot_VxLTE_PIXITS.ttcn +6 −2 Original line number Original line Diff line number Diff line Loading @@ -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 Loading @@ -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 Loading
ttcn/AtsImsIot/AtsImsIot_Emergency.ttcn +45 −1 Original line number Original line Diff line number Diff line Loading @@ -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 { Loading
ttcn/AtsImsIot/AtsImsIot_TestSystem.ttcn +20 −14 Original line number Original line Diff line number Diff line Loading @@ -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, Loading Loading @@ -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
ttcn/LibIot/LibIot_TypesAndValues.ttcn +3 −1 Original line number Original line Diff line number Diff line Loading @@ -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, Loading
ttcn/LibIot/LibIot_VxLTE_Functions.ttcn +73 −20 Original line number Original line Diff line number Diff line Loading @@ -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); Loading Loading @@ -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); Loading Loading @@ -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( Loading Loading @@ -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); Loading Loading @@ -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;} Loading Loading @@ -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){ Loading @@ -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; Loading
ttcn/LibIot/LibIot_VxLTE_PIXITS.ttcn +6 −2 Original line number Original line Diff line number Diff line Loading @@ -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 Loading @@ -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