Loading DiameterS6a/ttcn/DiameterS6a_HSS_TCFunctions.ttcn3 +11 −20 Original line number Diff line number Diff line Loading @@ -17,14 +17,15 @@ module DiameterS6a_HSS_TCFunctions { // LibDiameter import from LibDiameter_TypesAndValues { type DIAMETER_MSG type DIAMETER_MSG; const c_sync1, c_sync2, c_sync3; }; import from LibDiameter_Steps { function f_getVerdict, f_IPAdress, f_send_ULR, f_send_PUER, f_send_AIR, f_send_NOR, f_awaiting_ULA, f_awaiting_PUEA, f_awaiting_AIA, f_awaiting_NOA, f_awaiting_CLR, f_awaiting_IDR, f_awaiting_DSR, f_awaiting_RSR, f_send_CLA, f_send_IDA, f_send_DSA, f_send_RSA f_send_CLA, f_send_IDA, f_send_DSA, f_send_RSA, f_wait }; import from LibDiameter_Types_Base_AVPs { type all Loading @@ -34,7 +35,8 @@ module DiameterS6a_HSS_TCFunctions { }; import from LibDiameter_Templates { template m_originHost, m_originRealm, m_sessionId, m_destinationHost, m_destinationRealm, m_userName m_originHost, m_originRealm, m_sessionId, m_destinationHost, m_destinationRealm, m_userName, mw_resultCode }; import from LibDiameter_Interface { type Loading @@ -42,15 +44,11 @@ module DiameterS6a_HSS_TCFunctions { }; // DiameterS6a // import from DiameterS6a_TypesAndValues { // type // DIAMETER_S6a_HSS_Initiated_Message // }; import from DiameterS6a_Templates all; import from DiameterS6a_PIXITS all; import from DiameterS6a_Steps { function f_preamble_HSS, f_preamble_HSS2, f_postamble_HSS, f_init_sendULR_awaitULA; f_preamble_HSS, f_preamble_HSS2, f_postamble_HSS, f_postamble_HSS2, f_init_sendULR_awaitULA; altstep a_hss_default }; Loading Loading @@ -465,10 +463,6 @@ module DiameterS6a_HSS_TCFunctions { */ function f_TC_HSS_UL_08() runs on DiameterComponent { // Local variables const charstring c_sync1 := "sync1"; const charstring c_sync2 := "sync2"; // Preamble f_preamble_HSS(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); Loading Loading @@ -507,7 +501,6 @@ module DiameterS6a_HSS_TCFunctions { // indicating MME_UPDATE_PROCEDURE ))); f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Trigger CL-Answer. ***"); f_send_CLA( md_CLA( Loading @@ -516,6 +509,8 @@ module DiameterS6a_HSS_TCFunctions { ) // End of md_CLA ); f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict()); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // Postamble Loading @@ -529,10 +524,6 @@ module DiameterS6a_HSS_TCFunctions { */ function f_TC_HSS_UL_08_NewMME() runs on DiameterComponent { // Local variables const charstring c_sync1 := "sync1"; const charstring c_sync2 := "sync2"; // Preamble f_preamble_HSS2(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); Loading Loading @@ -564,11 +555,11 @@ module DiameterS6a_HSS_TCFunctions { f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // Postamble f_postamble_HSS(); f_postamble_HSS2(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of TC function f_TC_HSS_UL_08_OldMME } // End of TC function f_TC_HSS_UL_08_NewMME /** * @desc Verify that the IUT when UL Request is received over S6a shall send CL Request to the previous old SGSN Loading DiameterS6a/ttcn/DiameterS6a_MME_TCFunctions.ttcn3 +9 −10 Original line number Diff line number Diff line Loading @@ -32,12 +32,14 @@ module DiameterS6a_MME_TCFunctions { import from LibDiameter_Types_S6a_AVPs { type all }; import from LibDiameter_TypesAndValues all; // import from LibDiameter_TypesAndValues { // type DIAMETER_MSG; // }; //import from LibDiameter_TypesAndValues all; import from LibDiameter_TypesAndValues { type DIAMETER_MSG, PUER_MSG; const c_sync1, c_sync2, c_sync3; }; import from LibDiameter_Templates { template m_resultCode_diameterSuccess, m_resultCode, m_supportedFeatures, m_featureList, m_featureListId, m_userName template m_resultCode_diameterSuccess, m_resultCode, m_supportedFeatures, m_featureList, m_featureListId, m_userName, mw_resultCode }; import from LibDiameter_Interface { type Loading @@ -45,9 +47,6 @@ module DiameterS6a_MME_TCFunctions { }; // DiameterS6a import from DiameterS6a_TypesAndValues { const c_sync1 }; import from DiameterS6a_PICS { modulepar PX_MME_IUT_SUPPORT_NAS_PROTOCOL }; Loading Loading @@ -249,7 +248,7 @@ module DiameterS6a_MME_TCFunctions { // Clause 'then' f_init_awaitULR_sendULA(); f_selfOrClientSyncAndVerdict(DiameterS6a_TypesAndValues.c_sync1, e_success); f_selfOrClientSyncAndVerdict(c_sync1, e_success); //awaiting second ULR f_awaiting_ULR( mdw_ULR( Loading Loading @@ -1908,7 +1907,7 @@ module DiameterS6a_MME_TCFunctions { } else { action("the IUT is requested to indicate additional request for update location information"); } f_selfOrClientSyncAndVerdict(DiameterS6a_TypesAndValues.c_sync1, e_success); f_selfOrClientSyncAndVerdict(c_sync1, e_success); // Clause 'then': Nothing to do f_selfOrClientSyncAndVerdict(c_tbDone, e_success); Loading DiameterS6a/ttcn/DiameterS6a_PIXITS.ttcn +8 −2 Original line number Diff line number Diff line Loading @@ -42,7 +42,7 @@ module DiameterS6a_PIXITS { /** * @desc second IP address of the test system */ modulepar charstring PX_DIAMETER_S6a_ETS_IPADDR2 := "192.168.42.3"; modulepar charstring PX_DIAMETER_S6a2_ETS_IPADDR := "192.168.42.3"; /** * @desc IP address of the system under test Loading @@ -59,7 +59,7 @@ module DiameterS6a_PIXITS { /** * @desc Second Port number of the test system */ modulepar integer PX_DIAMETER_S6a_ETS_PORT2 := 1302; modulepar integer PX_DIAMETER_S6a2_ETS_PORT := 1302; /** * @desc Port number of the system under test Loading Loading @@ -125,6 +125,12 @@ module DiameterS6a_PIXITS { */ modulepar Diameter_Identity PX_ORIGIN_HOST := "orgHost"; /** * @desc The Origin-Host identifying the endpoint that originates the Diameter messages * @see ETSI DTS/INT-094-1 V0.0.3 (2013-11) A.7/6 */ modulepar Diameter_Identity PX_ORIGIN_HOST2 := "orgHost2"; /** * @desc The Origin-Realm identifying the Realm of the originator of any Diameter messages * @see ETSI DTS/INT-094-1 V0.0.3 (2013-11) A.7/7 Loading DiameterS6a/ttcn/DiameterS6a_Steps.ttcn3 +21 −3 Original line number Diff line number Diff line Loading @@ -41,9 +41,9 @@ runs on DiameterComponent { vc_ETS_address := PX_DIAMETER_S6a_ETS_IPADDR; vc_ETS_address2 := PX_DIAMETER_S6a_ETS_IPADDR2; vc_ETS_address2 := PX_DIAMETER_S6a2_ETS_IPADDR; vc_ETS_port := PX_DIAMETER_S6a_ETS_PORT; vc_ETS_port2 := PX_DIAMETER_S6a_ETS_PORT2; vc_ETS_port2 := PX_DIAMETER_S6a2_ETS_PORT; vc_SUT_address := PX_DIAMETER_S6a_SUT_IPADDR; vc_SUT_port := PX_DIAMETER_S6a_SUT_PORT; Loading @@ -51,6 +51,7 @@ vc_sessionId := m_sessionId(PX_SESSION_ID); vc_sessionId2 := m_sessionId(PX_SESSION_ID2); vc_originHost := m_originHost(PX_ORIGIN_HOST); vc_originHost2 := m_originHost(PX_ORIGIN_HOST2); vc_originRealm := m_originRealm(PX_ORIGIN_REALM); vc_originHost_IUT := m_originHost(PX_DESTINATION_HOST); Loading @@ -64,7 +65,7 @@ vc_hostIPAddress := valueof(f_IPV4or6_String2Address (PX_DIAMETER_S6a_ETS_IPADDR)); vc_hostIPAddress2 := valueof(f_IPV4or6_String2Address (PX_DIAMETER_S6a_ETS_IPADDR2)); vc_hostIPAddress2 := valueof(f_IPV4or6_String2Address (PX_DIAMETER_S6a2_ETS_IPADDR)); vc_send_hopid:= 4; //hex2int('00000100'H); vc_send_endid:= 1048575; //hex2int('01000000'H); Loading Loading @@ -194,6 +195,10 @@ * @desc Preamble for New MME */ function f_preamble_HSS2() runs on DiameterComponent { // Delay timer is used for 2nd PTC component to avoid problem with other component in the validation time f_wait(1.0); // Connect client sync port f_connect4SelfOrClientSync(); Loading Loading @@ -247,6 +252,19 @@ deactivate; } // End of function f_postamble_HSS /** * @desc Postamble for HSS2 IUT role */ function f_postamble_HSS2() runs on DiameterComponent { // Delay timer is used for 2nd PTC component to avoid problem with other component in the validation time f_wait(1.0); f_send_DPR(m_DPR_basic(vc_originHost2, vc_originRealm)); f_awaiting_DPA(mw_DPA_dummy); // Deactivate defaults deactivate; } // End of function f_postamble_HSS2 } // End of group hssRole } // End of group Postambles Loading DiameterS6a/ttcn/DiameterS6a_Templates.ttcn +6 −10 Original line number Diff line number Diff line Loading @@ -6,7 +6,12 @@ * Note that any changes made to the definitions in this module * may be overwritten by future releases of this library * End users are encouraged to contact the distributers of this * module regarding their modifications or additions * module regarding their modifications or additions. * Note that usage of encvalue command (codec function) returns bitstring * length of the message or AVP with padding bytes. Therefore this function * is not used on the first level where length of one single AVP can be * calculated with lengthof function. It shall be used only on message level * or in case where one AVP is group of other AVPs. * @remark Any additions to the templates shall follow the design rules * and always modify base templates only; */ Loading Loading @@ -1390,15 +1395,6 @@ module DiameterS6a_Templates { /** AVPs basic templates for receive */ group awaitingTemplatesForAVPs{ /** * @desc Result-Code AVP receive message * @param p_avpData Expected status code */ template (present) Result_Code_AVP mw_resultCode(template (present) Result_Code_Type p_avpData) := { aVP_Header := mw_aVP_Header_Vbit0Mbit1 (c_result_Code_AVP_Code), aVP_Data := p_avpData } // End of template mw_resultCode /** * @desc Experimental-Code AVP receive message * @param p_experimental_Result_Code Expected sExperimental-Result-Code AVP Loading Loading
DiameterS6a/ttcn/DiameterS6a_HSS_TCFunctions.ttcn3 +11 −20 Original line number Diff line number Diff line Loading @@ -17,14 +17,15 @@ module DiameterS6a_HSS_TCFunctions { // LibDiameter import from LibDiameter_TypesAndValues { type DIAMETER_MSG type DIAMETER_MSG; const c_sync1, c_sync2, c_sync3; }; import from LibDiameter_Steps { function f_getVerdict, f_IPAdress, f_send_ULR, f_send_PUER, f_send_AIR, f_send_NOR, f_awaiting_ULA, f_awaiting_PUEA, f_awaiting_AIA, f_awaiting_NOA, f_awaiting_CLR, f_awaiting_IDR, f_awaiting_DSR, f_awaiting_RSR, f_send_CLA, f_send_IDA, f_send_DSA, f_send_RSA f_send_CLA, f_send_IDA, f_send_DSA, f_send_RSA, f_wait }; import from LibDiameter_Types_Base_AVPs { type all Loading @@ -34,7 +35,8 @@ module DiameterS6a_HSS_TCFunctions { }; import from LibDiameter_Templates { template m_originHost, m_originRealm, m_sessionId, m_destinationHost, m_destinationRealm, m_userName m_originHost, m_originRealm, m_sessionId, m_destinationHost, m_destinationRealm, m_userName, mw_resultCode }; import from LibDiameter_Interface { type Loading @@ -42,15 +44,11 @@ module DiameterS6a_HSS_TCFunctions { }; // DiameterS6a // import from DiameterS6a_TypesAndValues { // type // DIAMETER_S6a_HSS_Initiated_Message // }; import from DiameterS6a_Templates all; import from DiameterS6a_PIXITS all; import from DiameterS6a_Steps { function f_preamble_HSS, f_preamble_HSS2, f_postamble_HSS, f_init_sendULR_awaitULA; f_preamble_HSS, f_preamble_HSS2, f_postamble_HSS, f_postamble_HSS2, f_init_sendULR_awaitULA; altstep a_hss_default }; Loading Loading @@ -465,10 +463,6 @@ module DiameterS6a_HSS_TCFunctions { */ function f_TC_HSS_UL_08() runs on DiameterComponent { // Local variables const charstring c_sync1 := "sync1"; const charstring c_sync2 := "sync2"; // Preamble f_preamble_HSS(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); Loading Loading @@ -507,7 +501,6 @@ module DiameterS6a_HSS_TCFunctions { // indicating MME_UPDATE_PROCEDURE ))); f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Trigger CL-Answer. ***"); f_send_CLA( md_CLA( Loading @@ -516,6 +509,8 @@ module DiameterS6a_HSS_TCFunctions { ) // End of md_CLA ); f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict()); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // Postamble Loading @@ -529,10 +524,6 @@ module DiameterS6a_HSS_TCFunctions { */ function f_TC_HSS_UL_08_NewMME() runs on DiameterComponent { // Local variables const charstring c_sync1 := "sync1"; const charstring c_sync2 := "sync2"; // Preamble f_preamble_HSS2(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); Loading Loading @@ -564,11 +555,11 @@ module DiameterS6a_HSS_TCFunctions { f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // Postamble f_postamble_HSS(); f_postamble_HSS2(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of TC function f_TC_HSS_UL_08_OldMME } // End of TC function f_TC_HSS_UL_08_NewMME /** * @desc Verify that the IUT when UL Request is received over S6a shall send CL Request to the previous old SGSN Loading
DiameterS6a/ttcn/DiameterS6a_MME_TCFunctions.ttcn3 +9 −10 Original line number Diff line number Diff line Loading @@ -32,12 +32,14 @@ module DiameterS6a_MME_TCFunctions { import from LibDiameter_Types_S6a_AVPs { type all }; import from LibDiameter_TypesAndValues all; // import from LibDiameter_TypesAndValues { // type DIAMETER_MSG; // }; //import from LibDiameter_TypesAndValues all; import from LibDiameter_TypesAndValues { type DIAMETER_MSG, PUER_MSG; const c_sync1, c_sync2, c_sync3; }; import from LibDiameter_Templates { template m_resultCode_diameterSuccess, m_resultCode, m_supportedFeatures, m_featureList, m_featureListId, m_userName template m_resultCode_diameterSuccess, m_resultCode, m_supportedFeatures, m_featureList, m_featureListId, m_userName, mw_resultCode }; import from LibDiameter_Interface { type Loading @@ -45,9 +47,6 @@ module DiameterS6a_MME_TCFunctions { }; // DiameterS6a import from DiameterS6a_TypesAndValues { const c_sync1 }; import from DiameterS6a_PICS { modulepar PX_MME_IUT_SUPPORT_NAS_PROTOCOL }; Loading Loading @@ -249,7 +248,7 @@ module DiameterS6a_MME_TCFunctions { // Clause 'then' f_init_awaitULR_sendULA(); f_selfOrClientSyncAndVerdict(DiameterS6a_TypesAndValues.c_sync1, e_success); f_selfOrClientSyncAndVerdict(c_sync1, e_success); //awaiting second ULR f_awaiting_ULR( mdw_ULR( Loading Loading @@ -1908,7 +1907,7 @@ module DiameterS6a_MME_TCFunctions { } else { action("the IUT is requested to indicate additional request for update location information"); } f_selfOrClientSyncAndVerdict(DiameterS6a_TypesAndValues.c_sync1, e_success); f_selfOrClientSyncAndVerdict(c_sync1, e_success); // Clause 'then': Nothing to do f_selfOrClientSyncAndVerdict(c_tbDone, e_success); Loading
DiameterS6a/ttcn/DiameterS6a_PIXITS.ttcn +8 −2 Original line number Diff line number Diff line Loading @@ -42,7 +42,7 @@ module DiameterS6a_PIXITS { /** * @desc second IP address of the test system */ modulepar charstring PX_DIAMETER_S6a_ETS_IPADDR2 := "192.168.42.3"; modulepar charstring PX_DIAMETER_S6a2_ETS_IPADDR := "192.168.42.3"; /** * @desc IP address of the system under test Loading @@ -59,7 +59,7 @@ module DiameterS6a_PIXITS { /** * @desc Second Port number of the test system */ modulepar integer PX_DIAMETER_S6a_ETS_PORT2 := 1302; modulepar integer PX_DIAMETER_S6a2_ETS_PORT := 1302; /** * @desc Port number of the system under test Loading Loading @@ -125,6 +125,12 @@ module DiameterS6a_PIXITS { */ modulepar Diameter_Identity PX_ORIGIN_HOST := "orgHost"; /** * @desc The Origin-Host identifying the endpoint that originates the Diameter messages * @see ETSI DTS/INT-094-1 V0.0.3 (2013-11) A.7/6 */ modulepar Diameter_Identity PX_ORIGIN_HOST2 := "orgHost2"; /** * @desc The Origin-Realm identifying the Realm of the originator of any Diameter messages * @see ETSI DTS/INT-094-1 V0.0.3 (2013-11) A.7/7 Loading
DiameterS6a/ttcn/DiameterS6a_Steps.ttcn3 +21 −3 Original line number Diff line number Diff line Loading @@ -41,9 +41,9 @@ runs on DiameterComponent { vc_ETS_address := PX_DIAMETER_S6a_ETS_IPADDR; vc_ETS_address2 := PX_DIAMETER_S6a_ETS_IPADDR2; vc_ETS_address2 := PX_DIAMETER_S6a2_ETS_IPADDR; vc_ETS_port := PX_DIAMETER_S6a_ETS_PORT; vc_ETS_port2 := PX_DIAMETER_S6a_ETS_PORT2; vc_ETS_port2 := PX_DIAMETER_S6a2_ETS_PORT; vc_SUT_address := PX_DIAMETER_S6a_SUT_IPADDR; vc_SUT_port := PX_DIAMETER_S6a_SUT_PORT; Loading @@ -51,6 +51,7 @@ vc_sessionId := m_sessionId(PX_SESSION_ID); vc_sessionId2 := m_sessionId(PX_SESSION_ID2); vc_originHost := m_originHost(PX_ORIGIN_HOST); vc_originHost2 := m_originHost(PX_ORIGIN_HOST2); vc_originRealm := m_originRealm(PX_ORIGIN_REALM); vc_originHost_IUT := m_originHost(PX_DESTINATION_HOST); Loading @@ -64,7 +65,7 @@ vc_hostIPAddress := valueof(f_IPV4or6_String2Address (PX_DIAMETER_S6a_ETS_IPADDR)); vc_hostIPAddress2 := valueof(f_IPV4or6_String2Address (PX_DIAMETER_S6a_ETS_IPADDR2)); vc_hostIPAddress2 := valueof(f_IPV4or6_String2Address (PX_DIAMETER_S6a2_ETS_IPADDR)); vc_send_hopid:= 4; //hex2int('00000100'H); vc_send_endid:= 1048575; //hex2int('01000000'H); Loading Loading @@ -194,6 +195,10 @@ * @desc Preamble for New MME */ function f_preamble_HSS2() runs on DiameterComponent { // Delay timer is used for 2nd PTC component to avoid problem with other component in the validation time f_wait(1.0); // Connect client sync port f_connect4SelfOrClientSync(); Loading Loading @@ -247,6 +252,19 @@ deactivate; } // End of function f_postamble_HSS /** * @desc Postamble for HSS2 IUT role */ function f_postamble_HSS2() runs on DiameterComponent { // Delay timer is used for 2nd PTC component to avoid problem with other component in the validation time f_wait(1.0); f_send_DPR(m_DPR_basic(vc_originHost2, vc_originRealm)); f_awaiting_DPA(mw_DPA_dummy); // Deactivate defaults deactivate; } // End of function f_postamble_HSS2 } // End of group hssRole } // End of group Postambles Loading
DiameterS6a/ttcn/DiameterS6a_Templates.ttcn +6 −10 Original line number Diff line number Diff line Loading @@ -6,7 +6,12 @@ * Note that any changes made to the definitions in this module * may be overwritten by future releases of this library * End users are encouraged to contact the distributers of this * module regarding their modifications or additions * module regarding their modifications or additions. * Note that usage of encvalue command (codec function) returns bitstring * length of the message or AVP with padding bytes. Therefore this function * is not used on the first level where length of one single AVP can be * calculated with lengthof function. It shall be used only on message level * or in case where one AVP is group of other AVPs. * @remark Any additions to the templates shall follow the design rules * and always modify base templates only; */ Loading Loading @@ -1390,15 +1395,6 @@ module DiameterS6a_Templates { /** AVPs basic templates for receive */ group awaitingTemplatesForAVPs{ /** * @desc Result-Code AVP receive message * @param p_avpData Expected status code */ template (present) Result_Code_AVP mw_resultCode(template (present) Result_Code_Type p_avpData) := { aVP_Header := mw_aVP_Header_Vbit0Mbit1 (c_result_Code_AVP_Code), aVP_Data := p_avpData } // End of template mw_resultCode /** * @desc Experimental-Code AVP receive message * @param p_experimental_Result_Code Expected sExperimental-Result-Code AVP Loading