Commit 7830a76a authored by wattelet's avatar wattelet
Browse files

EPC TCs update

parent 6bbbf939
Loading
Loading
Loading
Loading
+128 −1
Original line number Diff line number Diff line
@@ -5453,6 +5453,19 @@ group checksTC_IMS_SHARE_0009 {
            // TODO 
        } // End of function f_mtc_check_TP_EPC_6004_01

        /**
         * Starts monitor component behavior for TP_EPC_6004_02
         * @param p_monitorCompRef Reference to monitor component
         * @param p_checkMessage indicate if the incomming message should only be checked (port.check) or consumed (port.receive). 
         * The check operation allows read access to the top element of incoming port queues without removing the top element from the queue.
         */
        function f_mtc_check_TP_EPC_6004_02(
            ImsInterfaceMonitor p_monitorCompRef,
            boolean p_checkMessage
        ) runs on ImsTestCoordinator {
            // TODO 
        } // End of function f_mtc_check_TP_EPC_6004_02
        
        /**
         * Starts monitor component behavior for TP_EPC_6005_01
         * @param p_monitorCompRef Reference to monitor component
@@ -6261,6 +6274,22 @@ group checksTC_IMS_SHARE_0009 {
         * @param p_monitorCompRef Reference to monitor component
         * @param p_checkMessage indicate if the incomming message should only be checked (port.check) or consumed (port.receive). 
         * The check operation allows read access to the top element of incoming port queues without removing the top element from the queue.
         * <pre>
         * ensure that {
         * 	when { UE_A sends audio_media to UE_B }
         * 		then { EPC uses_correct_bearers for the service_data_flows }
         * 		then { UE_B receives media }
         * 	when { UE_B sends audio_media to UE_A }
         * 		then { EPC uses_correct_bearers for the service_data_flows }
         * 		then { UE_A receives the media }
         * 	when { UE_A sends video_media to UE_B }
         * 		then { EPC uses_correct_bearers for the service_data_flows }
         * 		then { UE_B receives the media }
         * 	when { UE_B sends video_media to UE_A }
         * 		then { EPC uses_correct_bearers for the service_data_flows }
         * 		then { UE_A receives the media }
         * }
         * </pre>
         */
        function f_mtc_check_TP_EPC_6030_02(
            ImsInterfaceMonitor p_monitorCompRef,
@@ -6274,6 +6303,25 @@ group checksTC_IMS_SHARE_0009 {
         * @param p_monitorCompRef Reference to monitor component
         * @param p_checkMessage indicate if the incomming message should only be checked (port.check) or consumed (port.receive). 
         * The check operation allows read access to the top element of incoming port queues without removing the top element from the queue.
         * <pre>
         * ensure that {
         * 		when {
         * 			IMS_P-CSCF receives 2xx_response on INVITE from IMS_P-CSCF
         * 		}
         * 		then { 
         * 			IMS_P-CSCF sends AA-Request to EPC_PCRF
         * 				containing Framed-IP-Address_AVP
         * 					indicating IPv4_address of UE_A or
         * 				containing Framed-IPv6-Address_AVP
         * 					indicating IPv6_address of UE_A and
         * 				containing one or more Media-Component-Description_AVP
         * 					containing Media-Component-Number_AVP
         * 						indicating values_derived from SDP
         * 					containing one or more Media-Subcomponent-Description_AVP
         * 						indicating values_derived from SDP
         * 		}
         * }
         * </pre>
         */
        function f_mtc_check_TP_EPC_6031_01(
            ImsInterfaceMonitor p_monitorCompRef,
@@ -6283,10 +6331,20 @@ group checksTC_IMS_SHARE_0009 {
        } // End of function f_mtc_check_TP_EPC_6031_01

         /**
         * Starts monitor component behavior for TP_EPC_6033_01
         * Starts monitor component behavior for TP_EPC_6032_01
         * @param p_monitorCompRef Reference to monitor component
         * @param p_checkMessage indicate if the incomming message should only be checked (port.check) or consumed (port.receive). 
         * The check operation allows read access to the top element of incoming port queues without removing the top element from the queue.
         * <pre>
         * ensure that {
         * 	when { UE_A sends media to UE_B }
         * 		then { EPC filters the IP_packets }
         * 			then { the IP_packets not visible on PO_SGi }
         * 	when { UE_B sends early_media to UE_A }
         * 		then { EPC uses_correct_bearers for service_data_flows }
         * 			then { UE_A receives media }
         * 	}
         * </pre>
         */
        function f_mtc_check_TP_EPC_6032_01(
            ImsInterfaceMonitor p_monitorCompRef,
@@ -6300,6 +6358,16 @@ group checksTC_IMS_SHARE_0009 {
         * @param p_monitorCompRef Reference to monitor component
         * @param p_checkMessage indicate if the incomming message should only be checked (port.check) or consumed (port.receive). 
         * The check operation allows read access to the top element of incoming port queues without removing the top element from the queue.
         * <pre>
         * ensure that {
         * 	when { IMS_P-CSCF receives INVITE with no SDP from UE_A }
         * 		then { IMS_P-CSCF does not send AA-Request to EPC_PCRF }
         * 		when { IMS_P-CSCF receives 200_response on INVITE with no SDP from IMS_S-CSCF }
         * 			then { IMS_P-CSCF does not send AA-Request to EPC_PCRF }
         * 			when { IMS_P-CSCF receives ACK with no SDP from UE_A }
         * 				then { IMS_P-CSCF does not send AA-Request to EPC_PCRF }
         * }
         * </pre>
         */
        function f_mtc_check_TP_EPC_6033_01(
            ImsInterfaceMonitor p_monitorCompRef,
@@ -6313,6 +6381,16 @@ group checksTC_IMS_SHARE_0009 {
         * @param p_monitorCompRef Reference to monitor component
         * @param p_checkMessage indicate if the incomming message should only be checked (port.check) or consumed (port.receive). 
         * The check operation allows read access to the top element of incoming port queues without removing the top element from the queue.
         * <pre>
         * ensure that {
         * 	when { IMS_P-CSCF receives INVITE with no SDP from IMS_S-CSCF }
         * 		then { IMS_P-CSCF does not send AA-Request to EPC_PCRF }
         * 		when { IMS_P-CSCF receives 200_response on INVITE with no SDP from UE_B }
         * 			then { IMS_P-CSCF does not send AA-Request to EPC_PCRF }
         * 			when { IMS_P-CSCF receives ACK with no SDP from IMS_S-CSCF }
         * 				then { IMS_P-CSCF does not send AA-Request to EPC_PCRF }
         * }
         * </pre>
         */
        function f_mtc_check_TP_EPC_6033_02(
            ImsInterfaceMonitor p_monitorCompRef,
@@ -6326,6 +6404,15 @@ group checksTC_IMS_SHARE_0009 {
         * @param p_monitorCompRef Reference to monitor component
         * @param p_checkMessage indicate if the incomming message should only be checked (port.check) or consumed (port.receive). 
         * The check operation allows read access to the top element of incoming port queues without removing the top element from the queue.
         * <pre>
         * ensure that {
         * 	when { IMS_P-CSCF receives SIP BYE Response from UE_A }
         * 		then { IMS_P-CSCF sends Session-Termination-Request to EPC_PCRF
         * 			containing Session-Id_AVP
         * 				indicating session for SIP_session
         * 		}
         * }
         * </pre>
         */
        function f_mtc_check_TP_EPC_6034_01(
            ImsInterfaceMonitor p_monitorCompRef,
@@ -6339,6 +6426,15 @@ group checksTC_IMS_SHARE_0009 {
         * @param p_monitorCompRef Reference to monitor component
         * @param p_checkMessage indicate if the incomming message should only be checked (port.check) or consumed (port.receive). 
         * The check operation allows read access to the top element of incoming port queues without removing the top element from the queue.
         * <pre>
         * ensure that {
         * 	when { IMS_P-CSCF receives CANCEL from UE_A }
         * 		then { IMS_P-CSCF sends Session-Termination-Request to EPC_PCRF
         * 			containing Session-Id_AVP
         * 				indicating session for SIP_session
         * 		}
         * }
         * </pre>
         */
        function f_mtc_check_TP_EPC_6034_02(
            ImsInterfaceMonitor p_monitorCompRef,
@@ -6352,6 +6448,15 @@ group checksTC_IMS_SHARE_0009 {
         * @param p_monitorCompRef Reference to monitor component
         * @param p_checkMessage indicate if the incomming message should only be checked (port.check) or consumed (port.receive). 
         * The check operation allows read access to the top element of incoming port queues without removing the top element from the queue.
         * <pre>
         * ensure that {
         * 	when { IMS_P-CSCF receives CANCEL from IMS_S-CSCF }
         * 		then { IMS_P-CSCF sends Session-Termination-Request to EPC_PCRF
         * 			containing Session-Id_AVP
         * 				indicating session for SIP_session
         * 		}
         * }
         * </pre>
         */
        function f_mtc_check_TP_EPC_6034_03(
            ImsInterfaceMonitor p_monitorCompRef,
@@ -6360,6 +6465,28 @@ group checksTC_IMS_SHARE_0009 {
            // TODO 
        } // End of function f_mtc_check_TP_EPC_6034_03
 
         /**
         * Starts monitor component behavior for TP_EPC_6034_04
         * @param p_monitorCompRef Reference to monitor component
         * @param p_checkMessage indicate if the incomming message should only be checked (port.check) or consumed (port.receive). 
         * The check operation allows read access to the top element of incoming port queues without removing the top element from the queue.
         * <pre>
         * ensure that {
         * 	when { IMS_P-CSCF receives 486_response on INVITE from UE_B }
         * 		then { IMS_P-CSCF sends Session-Termination-Request to EPC_PCRF
         * 			containing Session-Id_AVP
         * 				indicating session for SIP_session
         * 		}
         * }
         * </pre>
         */
        function f_mtc_check_TP_EPC_6034_04(
            ImsInterfaceMonitor p_monitorCompRef,
            boolean p_checkMessage
        ) runs on ImsTestCoordinator {
            // TODO 
        } // End of function f_mtc_check_TP_EPC_6034_04

    } // End of group epcChecks
    
} // end group
+103 −8
Original line number Diff line number Diff line
@@ -1084,16 +1084,111 @@ module AtsImsIot_TestCases_EPC {
                f_cf_adapter_down ( );
            } // End of TC TC_IMSEPC_Session_Abort_Terminating_0001

            /**
             * @desc	Originating Leg
             * On session reject, the P-CSCF should trigger the removal of all relevant previously created early-media bearers.
             * EPC removes the bearers for early-media.
             * Media transport is no longer possible, after the session reject.
             */
            testcase TC_IMSEPC_Session_Reject_Originating_0001 ( ) runs on ImsTestCoordinator system IotSystemInterface {
                var CF_EPC_CALL v_config;
                var IotEquipmentUser v_ueA	:= f_cf_create_IotEquipmentUser ( c_userUE_A );
                var IotEquipmentUser v_ueB	:= f_cf_create_IotEquipmentUser ( c_userUE_B );
                var ImsUserInfo v_userInfoA	:= f_getImUser ( PX_EUT_A );
                var ImsUserInfo v_userInfoB	:= f_getImUser ( PX_EUT_B ); 
                v_config.gmA				:= f_cf_create_monitor ( c_gm_A );
                v_config.gmB				:= f_cf_create_monitor ( c_gm_B );
                v_config.rx					:= f_cf_create_monitor ( c_rx );
            
                // map/connect component ports
                f_cf_adapter_up ( );
                f_cf_user_up ( v_ueA );
                f_cf_user_up ( v_ueA );
                f_cf_epc_call_up ( v_config );
            
                // preamble
                f_mtc_userRadioEnabled ( v_ueA, true, true ); // UA-A trigger an initial network_attachment by enabling radio interface of its mobile
                f_mtc_userRegistration ( v_ueA, v_userInfoA );
                f_mtc_userRegistration ( v_ueB, v_userInfoB );
				f_mtc_userInitiateCall ( v_ueA, v_userInfoB );
                
                // test body
                f_mtc_check_TP_EPC_6003_02 ( v_config.gmA, false );
                f_mtc_check_TP_EPC_6027_06 ( v_config.gmA, false );
                f_mtc_check_TP_EPC_6028_01 ( v_config.gmA, false );
                f_mtc_check_TP_EPC_6029_05 ( v_config.gmA, false );
                f_mtc_check_TP_EPC_6032_01 ( v_config.gmA, false );
                f_mtc_check_TP_EPC_6034_04 ( v_config.gmA, false );
                f_mtc_check_TP_EPC_6009_03 ( v_config.gmA, false );
                f_mtc_check_TP_EPC_6003_02 ( v_config.gmA, false );

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

                //unmap/disconnet component ports
                f_cf_user_down ( v_ueB );
                f_cf_user_down ( v_ueA );
                f_cf_epc_call_down ( v_config );
                f_cf_adapter_down ( );
            } // End of TC TC_IMSEPC_Session_Reject_Originating_0001
 
             /**
             * @desc	Terminating Leg
             * On session reject, the P-CSCF should trigger the removal of all relevant previously created early-media bearers.
             * EPC removes the bearers for early-media.
             * Media transport is no longer possible, after the session reject
             */
            testcase TC_IMSEPC_Session_RejectTerminating_0001 ( ) runs on ImsTestCoordinator system IotSystemInterface {
                var CF_EPC_CALL v_config;
                var IotEquipmentUser v_ueA	:= f_cf_create_IotEquipmentUser ( c_userUE_A );
                var IotEquipmentUser v_ueB	:= f_cf_create_IotEquipmentUser ( c_userUE_B );
                var ImsUserInfo v_userInfoA	:= f_getImUser ( PX_EUT_A );
                var ImsUserInfo v_userInfoB	:= f_getImUser ( PX_EUT_B ); 
                v_config.gmA				:= f_cf_create_monitor ( c_gm_A );
                v_config.gmB				:= f_cf_create_monitor ( c_gm_B );
                v_config.rx					:= f_cf_create_monitor ( c_rx );
            
                // map/connect component ports
                f_cf_adapter_up ( );
                f_cf_user_up ( v_ueA );
                f_cf_user_up ( v_ueA );
                f_cf_epc_call_up ( v_config );
            
                // preamble
                f_mtc_userRadioEnabled ( v_ueA, true, true ); // UA-A trigger an initial network_attachment by enabling radio interface of its mobile
                f_mtc_userRegistration ( v_ueA, v_userInfoA );
                f_mtc_userRegistration ( v_ueB, v_userInfoB );
				f_mtc_userInitiateCall ( v_ueA, v_userInfoB );
                
                // test body
                f_mtc_check_TP_EPC_6003_02 ( v_config.gmA, false );
                f_mtc_check_TP_EPC_6027_05 ( v_config.gmA, false );
                f_mtc_check_TP_EPC_6028_02 ( v_config.gmA, false );
                f_mtc_check_TP_EPC_6029_06 ( v_config.gmA, false );
                f_mtc_check_TP_EPC_6032_01 ( v_config.gmA, false );
                f_mtc_check_TP_EPC_6034_04 ( v_config.gmA, false );
                f_mtc_check_TP_EPC_6009_03 ( v_config.gmA, false );
                f_mtc_check_TP_EPC_6003_02 ( v_config.gmA, false );

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

                //unmap/disconnet component ports
                f_cf_user_down ( v_ueB );
                f_cf_user_down ( v_ueA );
                f_cf_epc_call_down ( v_config );
                f_cf_adapter_down ( );
            } // End of TC TC_IMSEPC_Session_RejectTerminating_0001
        } // End of group sipSessionAbortReject
        
        group epcInitiatedBearerModification { 

            /**
             * @desc	Originating Leg
             * On call release, the P-CSCF should trigger the removal of all relevant previously created bearers.
             * EPC removes the bearers for media.
             * Media transport is no longer possible, after the session release.
             * @desc	EPC Initiated Bearer Modification
             * On removal of all bearers, EPC PCRF will notify IMS P-CSCF that Rx session should be aborted.
             * IMS will take action and terminate all ongoing SIP sessions and the IMS registration.
             */
            testcase TC_IMSEPC_Bearer_Modification_0001 ( ) runs on ImsTestCoordinator system IotSystemInterface {
                var CF_EPC_CALL v_config;
@@ -1118,9 +1213,10 @@ module AtsImsIot_TestCases_EPC {
				f_mtc_userInitiateCall ( v_ueA, v_userInfoB );
                
                // test body
                f_mtc_check_TP_EPC_6030_01 ( v_config.gmA, false );
                f_mtc_check_TP_EPC_6034_01 ( v_config.gmA, false );
                f_mtc_check_TP_EPC_6009_03 ( v_config.gmA, false );
                f_mtc_check_TP_EPC_6004_02 ( v_config.gmA, false );
                f_mtc_check_TP_EPC_6005_01 ( v_config.gmA, false );
                f_mtc_check_TP_EPC_6006_01 ( v_config.gmA, false );
                f_mtc_check_TP_EPC_6010_01 ( v_config.gmA, false );
                f_mtc_check_TP_EPC_6003_02 ( v_config.gmA, false );

                // postamble
@@ -1133,7 +1229,6 @@ module AtsImsIot_TestCases_EPC {
                f_cf_epc_call_down ( v_config );
                f_cf_adapter_down ( );
            } // End of TC TC_IMSEPC_Bearer_Modification_0001
            
        } // End of group epcInitiatedBearerModification
    } // End of group sipSessionAndSessionBearer
    
+16 −3
Original line number Diff line number Diff line
@@ -124,6 +124,18 @@ module LibIot_PIXITS {
                            }
                        }
                    }
                },
                {
                    interfaceName	:= "Mw",
                    interfaceInfo	:= {
                        IpInterfaceInfo	:= {
                            {
                                domainName :=	"",
                                IpAddress	:= "", 
                                portNumbers	:= {2222}
                            }
                        }
                    }
                }
            }
        },
@@ -257,6 +269,7 @@ module LibIot_PIXITS {
		{ interfaceName := "Gm D", available := true },
		{ interfaceName := "Mx", available := true },
        { interfaceName := "Rx", available := true },
		{ interfaceName := "Mw", available := false },
		{ interfaceName := "Ici", available := true },
		{ interfaceName := "ISC A", available := true },
		{ interfaceName := "ISC B", available := true },