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

Create LibAtsImsIot; Remove ttcn/patch_ats_ims_iot forlder; update install.sh

parent 804b4ad3
Loading
Loading
Loading
Loading
+68 −1
Original line number Diff line number Diff line
@@ -2,11 +2,78 @@
	"folders": [
		{
			"path": "."
		},
		{
			"path": "../../frameworks/titan/titan.core"
		},
		{
			"path": "../emergency-iop"
		}
	],
	"settings": {
		"files.associations": {
			"memory": "cpp"
			"memory": "cpp",
			"functional": "cpp",
			"cctype": "cpp",
			"clocale": "cpp",
			"cmath": "cpp",
			"cstdarg": "cpp",
			"cstddef": "cpp",
			"cstdio": "cpp",
			"cstdlib": "cpp",
			"cstring": "cpp",
			"ctime": "cpp",
			"cwchar": "cpp",
			"cwctype": "cpp",
			"array": "cpp",
			"atomic": "cpp",
			"bit": "cpp",
			"bitset": "cpp",
			"chrono": "cpp",
			"codecvt": "cpp",
			"compare": "cpp",
			"concepts": "cpp",
			"condition_variable": "cpp",
			"cstdint": "cpp",
			"deque": "cpp",
			"map": "cpp",
			"set": "cpp",
			"string": "cpp",
			"unordered_map": "cpp",
			"vector": "cpp",
			"exception": "cpp",
			"algorithm": "cpp",
			"iterator": "cpp",
			"memory_resource": "cpp",
			"numeric": "cpp",
			"random": "cpp",
			"ratio": "cpp",
			"regex": "cpp",
			"string_view": "cpp",
			"system_error": "cpp",
			"tuple": "cpp",
			"type_traits": "cpp",
			"utility": "cpp",
			"fstream": "cpp",
			"initializer_list": "cpp",
			"iomanip": "cpp",
			"iosfwd": "cpp",
			"iostream": "cpp",
			"istream": "cpp",
			"limits": "cpp",
			"mutex": "cpp",
			"new": "cpp",
			"numbers": "cpp",
			"ostream": "cpp",
			"semaphore": "cpp",
			"sstream": "cpp",
			"stdexcept": "cpp",
			"stop_token": "cpp",
			"streambuf": "cpp",
			"thread": "cpp",
			"cinttypes": "cpp",
			"typeinfo": "cpp",
			"hash_map": "cpp"
		}
	}
}
 No newline at end of file
+3 −3
Original line number Diff line number Diff line
@@ -26,7 +26,9 @@ cd $BASE_PATH/ttcn/LibIms
git checkout TTF006

cd $BASE_PATH
ln -f ./ttcn/patch_ats_ims_iot/module.mk ./ttcn/AtsIms5gIot/module.mk
ttcn/patch_lib_ats_ims_iot
rm ./ttcn/LibAtsImsIot/module.mk
ln -f ./ttcn/patch_lib_ats_ims_iot/module.mk ./ttcn/LibAtsImsIot/module.mk
ln -f ./ttcn/patch_lib_common_titan/module.mk ./ttcn/LibCommon/module.mk
ln -f ./ttcn/patch_lib_ims_titan/module.mk ./ttcn/LibIms/module.mk
ln -f ./ttcn/patch_lib_sip_titan/module.mk ./ttcn/LibSip/module.mk
@@ -36,8 +38,6 @@ rm ./ttcn/LibEmcom/LibNg112/module.mk
ln -f ./ttcn/patch_lib_ng112_titan/ttcn/module.mk ./ttcn/LibEmcom/LibNg112/module.mk
ln -f ./ttcn/patch_lib_iot_titan/module.mk ./ttcn/LibIot/module.mk
ln -f ./ttcn/patch_lib_config_and_trigger_titan/module.mk ./ttcn/LibIms_ConfigAndTrigger/module.mk
ln -f ./ttcn/patch_lib_upper_tester_titan/module.mk ./ttcn/LibUpperTester/module.mk
#ln -f ./ttcn/patch_ats_ims_iot/module.mk ./ttcn/AtsImsIot/module.mk

cd ./ttcn/modules/titan.TestPorts.Common_Components.Abstract_Socket/module/src
git apply ../../../../patch_abstract_socket/Abstract_Socket.hh.patch
+5053 −0

File added.

Preview size limit exceeded, changes collapsed.

+8 −0
Original line number Diff line number Diff line
module AtsIms5gIot_TestControl {

    import from AtsIms5gIot_xxx_REG all;

    control {

        execute(TD_VoNR_ECO_INT_5RG_01());

    } // End of 'control' statetment

} // End of module AtsIms5gIot_TestControl
+161 −7
Original line number Diff line number Diff line
@@ -22,15 +22,16 @@ module AtsIms5gIot_xxx_REG {
    import from AtsIms5gIot_TestConfiguration all; 
    import from AtsIms5gIot_TestSystem all; 
    import from AtsIms5gIot_Functions all; 
    import from AtsIms5gIot_TP_behavior_GM all;
    import from AtsIms5gIot_TP_behavior_N1N2 all;
    import from AtsIms5gIot_TP_behavior_N5_PCF all;
     
    group Interoperability{

        group xxx {
        group Network_5G_Registration {
            
            // FIXME FSCOM It is just a skeleton to start buildoing the real ATS
            testcase TC_VoNR_xxx() runs on FiveGNRTestCoordinator system FiveGNRIotSystemInterface {
            // To perform UE emergency 5G registration to the network with USIM and establish an emergency PDU session
            testcase TD_VoNR_ECO_INT_5RG_01() runs on FiveGNRTestCoordinator system FiveGNRIotSystemInterface {
                
                var IotEquipmentUser v_ueA    := f_cf_create_IotEquipmentUser ( c_userUE_A );
                var ImsUserInfo v_userInfoA   := f_getSipUserId ( PX_EUT_A );
@@ -49,8 +50,11 @@ module AtsIms5gIot_xxx_REG {
                    f_mtc_userRadioEnabled ( v_ueA, true, true ); // UA-A trigger an initial network_attachment by enabling radio interface of its mobile

                    // test body
                    f_mtc_check_TP_N1N2_AMF_ECO_REG_01(vc_5g_monitor_components.ngap, true);
                    // TODO To be continued
                    // Step 1, 2
                    f_mtc_check_TP_N1N2_AMF_ECO_REG_02(vc_5g_monitor_components.ngap, true);
                    // Step 3
                    f_mtc_check_TP_N1N2_AMF_ECO_PDUE_01(vc_5g_monitor_components.ngap, true);
                    f_mtc_check_TP_N1N2_AMF_ECO_PDUE_02(vc_5g_monitor_components.ngap, true);

                    // postamble
                    f_mtc_userRadioEnabled ( v_ueA, false, true );
@@ -63,10 +67,160 @@ module AtsIms5gIot_xxx_REG {
                    //log...
                    setverdict (inconc,"At least one required monitor interface SHALL be selected! Check PIXITs")
                }
            } // End of testcase TC_VoNR_xxx
            } // End of testcase TD_VoNR_ECO_INT_5RG_01

         } //End of group xxx    
            // To attempt initial emergency IMS registration via the established emergency PDU session
            testcase TD_VoNR_ECO_INT_5RG_02() runs on FiveGNRTestCoordinator system FiveGNRIotSystemInterface {
                
                var IotEquipmentUser v_ueA    := f_cf_create_IotEquipmentUser ( c_userUE_A );
                var ImsUserInfo v_userInfoA   := f_getSipUserId ( PX_EUT_A );

                f_set5GNRMonIterfacesAvailability();
                // Check required monitor interfaces due to TD
                if (f_check5GNRRequiredMonitorInterface({PX_DIAMETER_GX_INTERFACENAME,PX_DIAMETER_S6A_INTERFACENAME,PX_NGAP_N1N2_INTERFACENAME,PX_HTTP_N5_INTERFACENAME})){
                    f_cf_create5GNRMonitor();

                    // map/connect component ports
                    f_cf_adapter_up ( );
                    f_cf_user_up ( v_ueA );
                    f_cf_5GNRMonitor_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
                    // Step 1, 2
                    f_mtc_check_TP_N1N2_AMF_ECO_REG_02(vc_5g_monitor_components.ngap, true);
                    // Step 3
                    f_mtc_check_TP_N1N2_AMF_ECO_PDUE_01(vc_5g_monitor_components.ngap, true);
                    f_mtc_check_TP_N1N2_AMF_ECO_PDUE_02(vc_5g_monitor_components.ngap, true);

                    // postamble
                    f_mtc_userRadioEnabled ( v_ueA, false, true );

                    //unmap/disconnect component ports
                    f_cf_user_down ( v_ueA );
                    f_cf_5GNRMonitor_Down();
                    f_cf_adapter_down ( );
                }else{
                    //log...
                    setverdict (inconc,"At least one required monitor interface SHALL be selected! Check PIXITs")
                }
            } // End of testcase TD_VoNR_ECO_INT_5RG_02

        } // End of group Network_5G_Registration    

        group IMS_Emergency_Registration_Unsuccessful {

            // To demonstrate the establishment of dedicated PDU sessions at the originating 5GC due to SIP emergency session establishment within an emergency registration
            testcase TD_VoNR_ECO_INT_INI_01() runs on FiveGNRTestCoordinator system FiveGNRIotSystemInterface {
                
                var IotEquipmentUser v_ueA    := f_cf_create_IotEquipmentUser ( c_userUE_A );
                var ImsUserInfo v_userInfoA   := f_getSipUserId ( PX_EUT_A );

                f_set5GNRMonIterfacesAvailability();
                // Check required monitor interfaces due to TD
                if (f_check5GNRRequiredMonitorInterface({PX_DIAMETER_GX_INTERFACENAME,PX_DIAMETER_S6A_INTERFACENAME,PX_NGAP_N1N2_INTERFACENAME,PX_HTTP_N5_INTERFACENAME})){
                    f_cf_create5GNRMonitor();

                    // map/connect component ports
                    f_cf_adapter_up ( );
                    f_cf_user_up ( v_ueA );
                    f_cf_5GNRMonitor_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
                    // Step 1, 2
                    f_mtc_check_TP_N1N2_AMF_ECO_REG_02(vc_5g_monitor_components.ngap, true);
                    // Step 3
                    f_mtc_check_TP_N1N2_AMF_ECO_PDUE_01(vc_5g_monitor_components.ngap, true);
                    f_mtc_check_TP_N1N2_AMF_ECO_PDUE_02(vc_5g_monitor_components.ngap, true);

                    f_mtc_check_TP_GM_5G_PCSCF_MESSAGE_01(vc_5g_monitor_components.gmA, true); // For build testing purpose only

                    // postamble
                    f_mtc_userRadioEnabled ( v_ueA, false, true );

                    //unmap/disconnect component ports
                    f_cf_user_down ( v_ueA );
                    f_cf_5GNRMonitor_Down();
                    f_cf_adapter_down ( );
                }else{
                    //log...
                    setverdict (inconc,"At least one required monitor interface SHALL be selected! Check PIXITs")
                }
            } // End of testcase TD_VoNR_ECO_INT_INI_01

        } // End of group IMS_Emergency_Registration_Unsuccessful

    } // End of group Interoperability

    group validate_diameter_messages {

        // For Diameter codec tests only
        import from LibDiameter_TypesAndValues all;

        function f_validate_aar(in octetstring p_aar) {
            var bitstring v_conv := oct2bit(p_aar);
            var AAR_MSG v_msg;
            var integer v_result := decvalue(v_conv, v_msg);
            log("msg: ", v_msg);
            if (not(isbound(v_msg))) {
                log("v_msg not bound");
                setverdict(fail);
            } else if (v_result == 0) {
                var octetstring v_aar_enc := bit2oct(encvalue(v_msg));
                log("v_aar_enc: ", v_aar_enc);
                log("Matching v_aar_enc: ", match(p_aar, v_aar_enc));
                if (match(p_aar, v_aar_enc)) {
                    setverdict(pass);
                } else {
                    setverdict(fail);
                }
            } else {
                setverdict(fail);
            }
        }

        function f_validate_uar(in octetstring p_uar) {
            var bitstring v_conv := oct2bit(p_uar);
            var UAR_MSG v_msg;
            var integer v_result := decvalue(v_conv, v_msg);
            log("msg: ", v_msg);
            if (not(isbound(v_msg))) {
                log("v_msg not bound");
                setverdict(fail);
            } else if (v_result == 0) {
                var octetstring v_uar_enc := bit2oct(encvalue(v_msg));
                log("v_uar_enc: ", v_uar_enc);
                log("Matching v_uar_enc: ", match(p_uar, v_uar_enc));
                if (match(p_uar, v_uar_enc)) {
                    setverdict(pass);
                } else {
                    setverdict(fail);
                }
            } else {
                setverdict(fail);
            }
        }

        // TC_VxLTE_RMI_REG_01.pcapng
        testcase TC_VoNR_Diameter_AAR() runs on FiveGNRTestCoordinator system FiveGNRIotSystemInterface {
            f_validate_aar('010002acc000010901000014000002334670023300000107400000876174686f6e65742e696d732e6d6e633030312e6d63633030312e336770706e6574776f726b2e6f72673b303b303b7369703a30303130313130303130303232303740696d732e6d6e633030312e6d63633030312e336770706e6574776f726b2e6f72673b696d733a7369703a3139322e3136382e3136362e37333a353036300000000108400000316174686f6e65742e696d732e6d6e633030312e6d63633030312e336770706e6574776f726b2e6f72670000000000012840000029696d732e6d6e633030312e6d63633030312e336770706e6574776f726b2e6f7267000000000001024000000c010000140000011b400000296570632e6d6e633030312e6d63633030312e336770706e6574776f726b2e6f7267000000000000084000000cc0a8a64900000205c000010c000028af00000206c0000010000028af0000000000000207c00000dc000028af000001fdc0000010000028af00000001000001fbc0000046000028af7065726d697420696e2031372066726f6d203139322e3136382e3136362e3733203530363020746f203137322e32392e33362e313020353036300000000001fbc0000047000028af7065726d6974206f75742031372066726f6d203137322e32392e33362e3130203530363020746f203139322e3136382e3136362e3733203530363000000001ffc0000010000028af0000000200000200c0000010000028af000000020000021180000010000028af00000001000001f8c0000013000028af6174686f6e65740000000201c0000010000028af0000000c00000201c0000010000028af0000000200000201c0000010000028af000000040000021880000010000028af000000000000020fc0000010000028af000000000000021580000010000028af00000000'O);
        }
        testcase TC_VoNR_Diameter_AAA() runs on FiveGNRTestCoordinator system FiveGNRIotSystemInterface {
            f_validate_aar('010001104000010901000014000002334670023300000107400000876174686f6e65742e696d732e6d6e633030312e6d63633030312e336770706e6574776f726b2e6f72673b303b303b7369703a30303130313130303130303232303740696d732e6d6e633030312e6d63633030312e336770706e6574776f726b2e6f72673b696d733a7369703a3139322e3136382e3136362e37333a3530363000000001024000000c01000014000001084000002e706372662e6570632e6d6e633030312e6d63633030312e336770706e6574776f726b2e6f7267000000000128400000296570632e6d6e633030312e6d63633030312e336770706e6574776f726b2e6f72670000000000010c4000000c000007d1'O);
        }
        testcase TC_VoNR_Diameter_UAR() runs on FiveGNRTestCoordinator system FiveGNRIotSystemInterface {
            f_validate_uar('010001a0c000012c010000000001fc43c521ba2d000001074000002d7363736366696d73342e696d73342e69736b726174656c2e6d616b3b3131303b373131333400000000000104400000200000010a4000000c000028af000001024000000c01000000000001154000000c0000000100000108400000237363736366696d73342e696d73342e69736b726174656c2e6d616b000000012840000019696d73342e69736b726174656c2e6d616b00000000000125400000236873733131696d73342e696d73342e69736b726174656c2e6d616b000000011b40000019696d73342e69736b726174656c2e6d616b00000000000258c000001d000028af696d73342e69736b726174656c2e6d616b0000000000026fc0000010000028af0000000000000259c0000041000028af7369703a30303130313130303130303232303740696d732e6d6e633030312e6d63633030312e336770706e6574776f726b2e6f7267000000000000014000003930303130313130303130303232303740696d732e6d6e633030312e6d63633030312e336770706e6574776f726b2e6f7267000000'O);
        }

    } // End of group validate_diameter_messages





} // End of module AtsIms5gIot_xxx_REG
Loading