Commits (10)
......@@ -50,7 +50,51 @@ module AtsImsIot_Emergency {
group NetworkAttachment {
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
group UENetworkAttachmentWithoutUSIM {
......
......@@ -1808,6 +1808,6 @@ module AtsImsIot_TestConfiguration {
} // end of function f_cf_epc_call_rel15_down
} // end group g_release15
} // end group g_release15
}
\ No newline at end of file
......@@ -122,20 +122,25 @@ module AtsImsIot_TestSystem {
type record CF_VXLTE_Interfaces{
SipInterfaceMonitor gmA optional,
SipInterfaceMonitor gmB 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 mwPS optional,
SipInterfaceMonitor mwIS optional,// Mw interface at I-CSCF/S-CSCF
SipInterfaceMonitor mwPB optional,// Mw interface at P-CSCF/IBCF
SipInterfaceMonitor mwIB optional,// Mw interface at I-CSCF/IBCF
SipInterfaceMonitor isc optional,
DiameterInterfaceMonitor cxIH optional,
DiameterInterfaceMonitor cxSH optional,
DiameterInterfaceMonitor gx optional,
DiameterInterfaceMonitor rx optional,
DiameterInterfaceMonitor s6a optional,
DiameterInterfaceMonitor s9 optional,
DiameterInterfaceMonitor sh 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 mwPI optional,// Mw interface at P-CSCF/I-CSCF or P-CSCF/S-CSCF if I-CSCF not used
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 mwIE optional,// Mw interface at I-CSCF/S-CSCF to E-CSCF
SipInterfaceMonitor mwPB optional,// Mw interface at P-CSCF/IBCF
SipInterfaceMonitor mwIB optional,// Mw interface at I-CSCF/IBCF
SipInterfaceMonitor isc optional,
DiameterInterfaceMonitor cxIH optional,
DiameterInterfaceMonitor cxSH optional,
DiameterInterfaceMonitor gx optional,
DiameterInterfaceMonitor rx optional,
DiameterInterfaceMonitor s6a optional,
DiameterInterfaceMonitor s9 optional,
DiameterInterfaceMonitor sh optional
}
type record CF_ATT_old {
......@@ -162,4 +167,5 @@ module AtsImsIot_TestSystem {
SipInterfaceMonitor gmB
}
} // end of g_release15
}
\ No newline at end of file
......@@ -100,7 +100,9 @@ module LibIot_TypesAndValues {
type record VxLTEMonitorInterfaceList{
MonitorInterfaceInfo gmA 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 mwPI optional,// Mw interface at P-CSCF/I-CSCF or P-CSCF/S-CSCF if I-CSCF not used
MonitorInterfaceInfo mwPS optional,
......
......@@ -54,9 +54,15 @@ module LibIot_VxLTE_Functions {
if (PX_SIP_GMB_MONITORENABLED == true){
vc_MonIntfList.gmB := valueof(m_MonIntf_Sip_Gm_B);
}
if (PX_SIP_MW_PSAP_MONITORENABLED == true){
vc_MonIntfList.mwPSAP := valueof(m_MonIntf_Sip_Mw_PSAP);
}
if (PX_SIP_MM_B_PSAP_MONITORENABLED == true){
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){
vc_MonIntfList.ic := valueof(m_MonIntf_Sip_Ic);
}
......@@ -124,9 +130,15 @@ module LibIot_VxLTE_Functions {
vc_vxlte_monitor_components.gmB := f_cf_create_monitor_sip ( vc_MonIntfList.gmB);
}
if (isvalue(vc_MonIntfList.mwPSAP)){
vc_vxlte_monitor_components.mwPSAP := f_cf_create_monitor_sip ( vc_MonIntfList.mwPSAP);
}
if (isvalue(vc_MonIntfList.mmB_PSAP)){
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)){
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)){
f_cf_monitor_up_sip(vc_vxlte_monitor_components.mwPSAP);
vc_vxlte_monitor_components.mwPI.start(f_cf_setFilter(
if (isvalue(vc_MonIntfList.mmB_PSAP)){
f_cf_monitor_up_sip(vc_vxlte_monitor_components.mmB_PSAP);
vc_vxlte_monitor_components.mmB_PSAP.start(f_cf_setFilter(
valueof (m_SetFilterReq(
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)){
f_cf_monitor_up_sip(vc_vxlte_monitor_components.ic);
vc_vxlte_monitor_components.ic.start(f_cf_setFilter(
......@@ -394,9 +423,15 @@ module LibIot_VxLTE_Functions {
if (isvalue(vc_MonIntfList.gmB)){
f_cf_monitor_down_sip(vc_vxlte_monitor_components.gmB);
}
if (isvalue(vc_MonIntfList.mwPSAP)){
f_cf_monitor_down_sip(vc_vxlte_monitor_components.mwPSAP);
if (isvalue(vc_MonIntfList.mmB_PSAP)){
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)){
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.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.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 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;
if (PX_SIP_GMA_MONITORENABLED == true){
......@@ -548,14 +585,30 @@ module LibIot_VxLTE_Functions {
v_gmB := f_cf_create_monitor_sip ( valueof(m_MonIntf_Sip_Gm_B)/*PX_SIP_GMB_INTERFACENAME*/);
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_MW_PSAP_INTERFACENAME;
v_InterfaceAvailable.available := PX_SIP_MW_PSAP_MONITORENABLED;
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_mwPSAP := f_cf_create_monitor_sip ( valueof(m_MonIntf_Sip_Mw_PSAP)/*PX_SIP_MW_PSAP_INTERFACENAME*/ );
f_cf_monitor_up_sip(v_mwPSAP);
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_S_PSAP_INTERFACENAME;
v_InterfaceAvailable.available := PX_SIP_MW_S_PSAP_MONITORENABLED;
v_VxLTE_MonIntf_Available := f_update_MonitorInterfaceList(v_VxLTE_MonIntf_Available,v_InterfaceAvailable);
v_mwSPSAP := f_cf_create_monitor_sip ( valueof(m_MonIntf_Sip_MwS_PSAP)/*PX_SIP_MW_PSAP_INTERFACENAME*/ );
f_cf_monitor_up_sip(v_mwSPSAP);
}
if (PX_SIP_IC_MONITORENABLED == true){
v_InterfaceAvailable.interfaceName := PX_SIP_IC_INTERFACENAME;
v_InterfaceAvailable.available := PX_SIP_IC_MONITORENABLED;
......
......@@ -52,7 +52,9 @@ module LibIot_VxLTE_PIXITS {
//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].
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_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
......@@ -72,7 +74,9 @@ module LibIot_VxLTE_PIXITS {
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 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_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
......
......@@ -118,15 +118,15 @@ module LibIot_VxLTE_Templates {
}
};
template MonitorInterfaceInfo m_MonIntf_Sip_Mw_PSAP:=
template MonitorInterfaceInfo m_MonIntf_Sip_MmB_PSAP:=
{
interfaceName := PX_SIP_MW_PSAP_INTERFACENAME,
interfaceName := PX_SIP_MM_B_PSAP_INTERFACENAME,
interfaceInfo := {
IpInterfaceInfo := {
{
domainName := "pcscf.ims.domain",
IpAddress := PX_SIP_MW_S_CSCF_IPADDR,//or PX_SIP_MW_IBCF_IPADDR//TODO:extend IPaddress to recordof
portNumbers := {PX_SIP_MW_S_CSCF_PORT}
IpAddress := PX_SIP_MW_IBCF_IPADDR,
portNumbers := {PX_SIP_MW_IBCF_PORT}
},
{
domainName := "icscf.ims.domain",
......@@ -136,6 +136,44 @@ module LibIot_VxLTE_Templates {
}
}
};
template MonitorInterfaceInfo m_MonIntf_Sip_Mw_EB:=
{
interfaceName := PX_SIP_MW_EB_INTERFACENAME,
interfaceInfo := {
IpInterfaceInfo := {
{
domainName := "pcscf.ims.domain",
IpAddress := PX_SIP_MW_E_CSCF_IPADDR,
portNumbers := {PX_SIP_MW_E_CSCF_PORT}
},
{
domainName := "icscf.ims.domain",
IpAddress := PX_SIP_MW_IBCF_IPADDR,
portNumbers := {PX_SIP_MW_IBCF_PORT}
}
}
}
};
template MonitorInterfaceInfo m_MonIntf_Sip_MwS_PSAP:=
{
interfaceName := PX_SIP_MW_S_PSAP_INTERFACENAME,
interfaceInfo := {
IpInterfaceInfo := {
{
domainName := "pcscf.ims.domain",
IpAddress := PX_SIP_MW_S_CSCF_IPADDR,
portNumbers := {PX_SIP_MW_S_CSCF_PORT}
},
{
domainName := "icscf.ims.domain",
IpAddress := PX_SIP_MW_PSAP_IPADDR,
portNumbers := {PX_SIP_MW_PSAP_PORT}
}
}
}
};
template MonitorInterfaceInfo m_MonIntf_Sip_Ic :=
{
......