Commit 2497c26b authored by garciay's avatar garciay
Browse files

Add basic support of IMS/EPC

parent 6de2a3b4
Loading
Loading
Loading
Loading
+446 −1
Original line number Diff line number Diff line
@@ -4940,7 +4940,7 @@ group checksTC_IMS_SHARE_0009 {
            ImsInterfaceMonitor p_monitorCompRef,
            boolean p_checkMessage
        ) runs on ImsTestCoordinator return SipMessage {
            var SipMessage v_sip := { request := valueof(m_INVITE_Dummy) }; // used to stroe INVITE request message
            var SipMessage v_sip := { request := valueof(m_INVITE_Dummy) }; // used to store INVITE request message
            
            p_monitorCompRef.start(
                f_imsIot_receive(
@@ -5184,6 +5184,451 @@ group checksTC_IMS_SHARE_0009 {
            
        } // End of function f_mtc_check_TP_MSRP_9000_05
        
        /**
         * @desc Starts monitor component behavior for TP_IMS_5097_04
         * @param p_monitorCompRef Reference to monitor component
         */
        function f_mtc_check_TP_IMS_9000_06(
            ImsInterfaceMonitor p_monitorCompRef,
            boolean p_checkMessage
        ) runs on ImsTestCoordinator {
            p_monitorCompRef.start(
            f_imsIot_receive(
                {mw_SipRequest(mdw_TP_IMS_5097_04_gm(mw_SIP_URI_ConfFactory))},
                {mw_SipRequest(mw_INVITE_Request_Base)},
                {0, omit},
                "TP_IMS_9000_06",
                false,
                p_checkMessage
                )
            );
            p_monitorCompRef.done;
        }
        
    } // End of group msrpChecks
    
    group epcChecks {
        
        /**
         * Starts monitor component behavior for TP_EPC_6001_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 completes initial network_attachment to EPC 
         *     }
         *     then { 
         *         receives IP_configuration_data ( 
         *             containing IPv4_address of UE_A or 
         *             containing IPv6_address of UE_A or 
         *             containing (IPv4_address and IPv6_address) of UE_A
         *         )
         *         containing DNS_information 
         *         containing P-CSCF_information ( 
         *             indicating the P-CSCF-IP_address or 
         *             indicating the P-CSCF-FQDN_address 
         *         )
         *     }
         * }
         * </pre>
         * @see TS 103 029 V3.1.1 clause 7.1.1
         */
        function f_mtc_check_TP_EPC_6001_01(
            ImsInterfaceMonitor p_monitorCompRef,
            boolean p_checkMessage
        ) runs on ImsTestCoordinator {
            // TODO 
        } // End of function f_mtc_check_TP_EPC_6001_01
        
        /**
         * Starts monitor component behavior for TP_EPC_6002_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 REGISTER to IMS_P-CSCF 
         *     }
         *     then { 
         *         IMS_P-CSCF receives REGISTER
         *     }
         *     when { 
         *         IMS_P-CSCF sends response on REGISTER to UE_A 
         *     }
         *     then { 
         *         UE_A receives response on REGISTER
         *     }
         * }
         * </pre>
         * @see TS 103 029 V3.1.1 clause 7.1.1
         */
        function f_mtc_check_TP_EPC_6002_01(
            ImsInterfaceMonitor p_monitorCompRef,
            boolean p_checkMessage
        ) runs on ImsTestCoordinator {
            // TODO 
        } // End of function f_mtc_check_TP_EPC_6002_01
        
        /**
         * Starts monitor component behavior for TP_EPC_6003_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 IP_packets to UE_B 
         *     }
         *     then { 
         *         EPC filters the IP_packets 
         *         and the IP_packets not visible on PO_SGi 
         *     } 
         *     when { 
         *         UE_B sends IP_packets to UE_A 
         *     } 
         *     then { 
         *         EPC filters the IP_packets 
         *         and the IP_packets not visible on PO_SGi
         *     } 
         * } 
         * </pre>
         * @see TS 103 029 V3.1.1 clause 7.1.1
         */
        function f_mtc_check_TP_EPC_6003_01(
            ImsInterfaceMonitor p_monitorCompRef,
            boolean p_checkMessage
        ) runs on ImsTestCoordinator {
            // TODO 
        } // End of function f_mtc_check_TP_EPC_6003_01
        
        /**
         * Starts monitor component behavior for TP_EPC_6003_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.
         * <pre>
         * ensure that {
         *     when { 
         *         UE_A sends media to UE_B 
         *     }
         *     then { 
         *         EPC filters the IP_packets 
         *         and the IP_packets not visible on PO_SGi 
         *     } 
         *     when { 
         *         UE_B sends media to UE_A 
         *     } 
         *     then { 
         *         EPC filters the IP_packets 
         *         and the IP_packets not visible on PO_SGi
         *     } 
         * } 
         * </pre>
         * @see TS 103 029 V3.1.1 clause 7.1.1
         */
        function f_mtc_check_TP_EPC_6003_02(
            ImsInterfaceMonitor p_monitorCompRef,
            boolean p_checkMessage
        ) runs on ImsTestCoordinator {
            // TODO 
        } // End of function f_mtc_check_TP_EPC_6003_02
        
        /**
         * Starts monitor component behavior for TP_EPC_6004_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 starts_complete_network_detachment from EPC 
         *     }
         *     then { 
         *         EPC_PCRF removes_relevant_bearers 
         *         and EPC_PCRF triggers_termination of SIP_session 
         *         and EPC_PCRF triggers_termination of IMS_signalling
         *     } 
         * } 
         * </pre>
         * @see TS 103 029 V3.1.1 clause 7.1.2
         */
        function f_mtc_check_TP_EPC_6004_01(
            ImsInterfaceMonitor p_monitorCompRef,
            boolean p_checkMessage
        ) runs on ImsTestCoordinator {
            // TODO 
        } // End of function f_mtc_check_TP_EPC_6004_01
        
        /**
         * Starts monitor component behavior for TP_EPC_6005_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 { 
         *         EPC_PCRF triggers_termination of SIP_session 
         *     }
         *     then { 
         *         EPC_PCRF sends Abort-Session-Request to IMS_P-CSCF containing 
         *             Session-Id_AVP indicating session of SIP_session
         *             Abort-Cause_AVP indicating BEARER_RELEASED (0)
         *     } 
         * } 
         * </pre>
         * @see TS 103 029 V3.1.1 clause 7.1.2
         */
        function f_mtc_check_TP_EPC_6005_01(
            ImsInterfaceMonitor p_monitorCompRef,
            boolean p_checkMessage
        ) runs on ImsTestCoordinator {
            // TODO 
        } // End of function f_mtc_check_TP_EPC_6005_01
        
        /**
         * Starts monitor component behavior for TP_EPC_6005_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.
         * <pre>
         * ensure that {
         *     when { 
         *         EPC_PCRF triggers_termination of IMS_signalling 
         *     }
         *     then { 
         *         EPC_PCRF sends Abort-Session-Request to IMS_P-CSCF containing 
         *             Session-Id_AVP indicating session of SIP_session
         *             Abort-Cause_AVP indicating BEARER_RELEASED (0)
         *     } 
         * } 
         * </pre>
         * @see TS 103 029 V3.1.1 clause 7.1.2
         */
        function f_mtc_check_TP_EPC_6005_02(
            ImsInterfaceMonitor p_monitorCompRef,
            boolean p_checkMessage
        ) runs on ImsTestCoordinator {
            // TODO 
        } // End of function f_mtc_check_TP_EPC_6005_02
        
        /**
         * Starts monitor component behavior for TP_EPC_6006_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 { 
         *         IMS_P-CSCF receives Abort-Session-Request for SIP_session 
         *     }
         *     then { 
         *         IMS_P-CSCF sends 
         *             Abort-Session-Answer to EPC_PCRF containing 
         *                 Session-Id_AVP indicating value_received in Abort-Session-Request
         *                 Result-Code_AVP indicating DIAMETER_SUCCESS(2001)
         *         and IMS_P-CSCF sends 
         *             Session-Termination-Request to EPC_PCRF containing 
         *                 Session-Id_AVP indicating value_received in Abort-Session-Request 
         *         and IMS_P-CSCF triggers_call_release 
         *     } 
         * } 
         * </pre>
         * @see TS 103 029 V3.1.1 clause 7.1.2
         */
        function f_mtc_check_TP_EPC_6006_01(
            ImsInterfaceMonitor p_monitorCompRef,
            boolean p_checkMessage
        ) runs on ImsTestCoordinator {
            // TODO 
        } // End of function f_mtc_check_TP_EPC_6006_01
        
        /**
         * Starts monitor component behavior for TP_EPC_6006_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.
         * <pre>
         * ensure that {
         *     when { 
         *         IMS_P-CSCF receives Abort-Session-Request for IMS_signalling 
         *     }
         *     then { 
         *         IMS_P-CSCF sends 
         *             Abort-Session-Answer to EPC_PCRF containing 
         *                 Session-Id_AVP indicating value_received in Abort-Session-Request
         *                 Result-Code_AVP indicating DIAMETER_SUCCESS(2001)
         *         and IMS_P-CSCF sends 
         *             Session-Termination-Request to EPC_PCRF containing 
         *                 Session-Id_AVP indicating value_received in Abort-Session-Request 
         *         and IMS_P-CSCF triggers_call_release 
         *     } 
         * } 
         * </pre>
         * @see TS 103 029 V3.1.1 clause 7.1.2
         */
        function f_mtc_check_TP_EPC_6006_02(
            ImsInterfaceMonitor p_monitorCompRef,
            boolean p_checkMessage
        ) runs on ImsTestCoordinator {
            // TODO 
        } // End of function f_mtc_check_TP_EPC_6006_02
        
        /**
         * Starts monitor component behavior for TP_EPC_6009_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 { 
         *         EPC_PCRF receives Session-Termination-Request from IMS_P-CSCF containing 
         *             Session-Id_AVP indicating session for SIP_session
         *     }
         *     then { 
         *         EPC_PCRF sends Session-Termination-Answer to IMS_P-CSCF containing 
         *             Session-Id_AVP indicating SIP_session value_received in Session-Termination-Request
         *             Result-Code_AVP indicating DIAMETER_SUCCESS(2001) 
         *     } 
         * } 
         * </pre>
         * @see TS 103 029 V3.1.1 clause 7.1.2
         */
        function f_mtc_check_TP_EPC_6009_01(
            ImsInterfaceMonitor p_monitorCompRef,
            boolean p_checkMessage
        ) runs on ImsTestCoordinator {
            // TODO 
        } // End of function f_mtc_check_TP_EPC_6009_01
        
        /**
         * Starts monitor component behavior for TP_EPC_6010_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 { 
         *         IMS_P-CSCF triggers_call_release
         *     }
         *     then { 
         *         IMS_P-CSCF sends BYE to UE_A containing 
         *             Request_URI indicating contact_address from Contact_header of UE_A 
         *             and To_header indicating the initial 200_OK_From_value 
         *             and From_header indicating the initial INVITE_To_value 
         *             and Call-ID_header indicating the initial INVITE_Call_Id_value 
         *             and CSeq_header including an incremented Sequence_Number 
         *             and Route_header indicating specific_routing_information for UE_A 
         *             and Reason_header indicating 503_service_unavailable 
         *     } 
         * } 
         * </pre>
         * @see TS 103 029 V3.1.1 clause 7.1.2
         */
        function f_mtc_check_TP_EPC_6010_01(
            ImsInterfaceMonitor p_monitorCompRef,
            boolean p_checkMessage
        ) runs on ImsTestCoordinator {
            // TODO 
        } // End of function f_mtc_check_TP_EPC_6010_01
        
        /**
         * Starts monitor component behavior for TP_EPC_6011_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 { 
         *         IMS_P-CSCF triggers_administrative_de-registration
         *     }
         *     then { 
         *         IMS_P-CSCF sends BYE to UE_A containing 
         *             Request_URI indicating stored_domain_URI for affected_IMPU of UE_A 
         *             and To_header indicating affected_IMPU --IP Multimedia Public Identity 
         *             and From_header indicating affected_IMPU 
         *             and Contact_header indicating Contact_header_value 
         *             and Authorization_header indicating an integrity-protected_parameter indicating yes 
         *             and Expires_header indicating 0 
         *             and Reason_header indicating 503_service_unavailable 
         *     } 
         * } 
         * </pre>
         * @see TS 103 029 V3.1.1 clause 7.1.2
         */
        function f_mtc_check_TP_EPC_6011_01(
            ImsInterfaceMonitor p_monitorCompRef,
            boolean p_checkMessage
        ) runs on ImsTestCoordinator {
            // TODO 
        } // End of function f_mtc_check_TP_EPC_6011_01
        
        /**
         * Starts monitor component behavior for TP_EPC_6012_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 { 
         *         IMS_P-CSCF receives 2xx_Response on REGISTER from IMS_SCSCF
         *     }
         *     then { 
         *         UE_A receives 2xx_Response 
         *     } 
         * } 
         * </pre>
         * @see TS 103 029 V3.1.1 clause 7.2.1.1
         */
        function f_mtc_check_TP_EPC_6012_01(
            ImsInterfaceMonitor p_monitorCompRef,
            boolean p_checkMessage
        ) runs on ImsTestCoordinator {
            // TODO 
        } // End of function f_mtc_check_TP_EPC_6012_01
        
        /**
         * Starts monitor component behavior for TP_EPC_6013_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 { 
         *         IMS_P-CSCF receives 2xx_Response on REGISTER from IMS_SCSCF
         *     }
         *     then { 
         *         IMS_P-CSCF sends AA-Request to EPC_PCRF containing 
         *             a framed IPv4_Address AVP indicating IPv4_Address of UE_A 
         *             or a framed IPv6_Address AVP indicating IPv6_Address of UE_A 
         *             and one or more Media-Component-Description_AVP containing 
         *                 Media-Component-Number_AVP indicating value 0
         *                 and Flow-Description_AVP indicating 
         *                     indicating permit_in_ip from (UE_A-IP_address and UE_A_port_number) to (P-CSCF-IP_address and P-CSCF_port_number) 
         *                     or permit_in_udp from (UE_A-IP_address and UE_A_port_number) to (P-CSCF-IP_address and P-CSCF_port_number) 
         *                     or permit_in_tcp from (UE_A-IP_address and UE_A_port_number) to (P-CSCF-IP_address and P-CSCF_port_number) 
         *                 and Flow-Description_AVP indicating 
         *                     permit_out_ip from (P-CSCF-IP_address PCSCF_port_number) to UE_A-IP_address 
         *                     or permit_out_udp from (P-CSCF-IP_address PCSCF_port_number) to UE_A-IP_address 
         *                     or permit_out_tcp from (P-CSCF-IP_address PCSCF_port_number) to UE_A-IP_address 
         *                 and Flow-Usage_AVP indicating AF_SIGNALING(0)
         *                 and Flow-Status_AVP indicating ENABLED(2)
         *                 and AF-Signalling-Protocol_AVP indicating SIP(1)
         *     } 
         * } 
         * </pre>
         * @see TS 103 029 V3.1.1 clause 7.2.1.1
         */
        function f_mtc_check_TP_EPC_6013_01(
            ImsInterfaceMonitor p_monitorCompRef,
            boolean p_checkMessage
        ) runs on ImsTestCoordinator {
            // TODO 
        } // End of function f_mtc_check_TP_EPC_6013_01
        
    } // End of group epcChecks
    
} // end group
}// end module
+16 −4
Original line number Diff line number Diff line
@@ -23,8 +23,10 @@ module AtsImsIot_Templates {
			IpAddress,
			Status;
	}
    import from AtsImsIot_TypesAndValues {type SipMessage;}
	import from AtsImsIot_TypesAndValues {type NAPTRmessage;}
    import from AtsImsIot_TypesAndValues {
        type 
            SipMessage, NAPTRmessage
    };
	import from LibSip_SIPTypesAndValues all;
	import from LibSip_Templates all;
    import from LibMsrp_TypesAndValues {
@@ -43,6 +45,10 @@ module AtsImsIot_Templates {
         	PX_IOT_MERGE_TOOL_PATH,
         	PX_IOT_IFACES;
	}
	import from LibIms_PIXITS { 
	    modulepar 
			PX_IMS_SUT_CONF_FACTORY_NAME, PX_IMS_SUT_CONF_HOME_DOMAIN 
	};
	
	group adapterMsgTemplates {
		template SetFilterReq m_SetFilterReq(ProtocolFilter p_protocol, InterfaceInfoList p_iterfaces)	:= {
@@ -74,7 +80,7 @@ module AtsImsIot_Templates {
		}
	}//end group
	
	group sipMsrpMessages {
	group msrpMessages {
	    
		/**
		* @desc MSRP request template
@@ -92,7 +98,7 @@ module AtsImsIot_Templates {
            msrpResponse := p_msrpResponse
		}
        
	} // End of group sipMsrpMessages
	} // End of group msrpMessages

    group naptrTemplates {
        template NAPTRmessage mw_EnumQuery_Base	:= {
@@ -2312,6 +2318,12 @@ module AtsImsIot_Templates {
            headers := *
        }
 
		template SipUrl mw_SIP_URI_ConfFactory 
		modifies mw_SIP_URI_Base := {
	        userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_CONF_FACTORY_NAME, password:=*},
	        hostPort := {host := PX_IMS_SUT_CONF_HOME_DOMAIN, portField := *}
	    }
 
    } //end group

  group adapterTemplates {
+169 −0

File changed.

Preview size limit exceeded, changes collapsed.

+200 −23

File changed.

Preview size limit exceeded, changes collapsed.

+127 −2

File changed.

Preview size limit exceeded, changes collapsed.

Loading