Commit e8d48aba authored by juvancic's avatar juvancic
Browse files

Merge branch 'TTF006' of https://forge.etsi.org/rep/vxlte/vxlte-iop into TTF006

parents 67e8f8be 66540e7f
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
log4j.rootLogger=error, stdout, R
log4j.rootLogger=debug, stdout, R

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+25.1 KiB (48.2 KiB)

File changed.

No diff preview for this file type.

+37 −5
Original line number Diff line number Diff line
@@ -473,6 +473,7 @@ module AtsImsIot_Diameter_Templates {
            group CxRequestMessageTemplates{

                template MAR_MSG mw_MAR modifies mw_MAR_dummy := {
                    header := mw_diameterHeaderReq_dummy(MAR_E, c_applId3GPPCxDx),
                    mAR_Body :={
                        vendor_Specific_Application_Id := ?,
                        auth_Session_State := mw_authSessionState_noStateMaintained,
@@ -485,6 +486,7 @@ module AtsImsIot_Diameter_Templates {
                }

                template RTR_MSG mw_RTR modifies mw_RTR_dummy := {
                    header := mw_diameterHeaderReq_dummy(RTR_E, c_applId3GPPCxDx),
                    rTR_Body :={
                        vendor_Specific_Application_Id := ?,
                        auth_Session_State := mw_authSessionState_noStateMaintained,
@@ -494,6 +496,7 @@ module AtsImsIot_Diameter_Templates {
                }

                template SAR_MSG mw_SAR_UnregisteredUser modifies mw_SAR_dummy := {
                    header := mw_diameterHeaderReq_dummy(SAR_E, c_applId3GPPCxDx),
                    sAR_Body :={
                        vendor_Specific_Application_Id := ?,
                        auth_Session_State := mw_authSessionState_noStateMaintained,
@@ -506,6 +509,7 @@ module AtsImsIot_Diameter_Templates {
                }

                template SAR_MSG mw_SAR_UserDeregistration modifies mw_SAR_dummy := {
                    header := mw_diameterHeaderReq_dummy(SAR_E, c_applId3GPPCxDx),
                    sAR_Body :={
                        vendor_Specific_Application_Id := ?,
                        auth_Session_State := mw_authSessionState_noStateMaintained,
@@ -518,42 +522,58 @@ module AtsImsIot_Diameter_Templates {
                }

                template UAR_MSG mw_UAR_Registration modifies mw_UAR_dummy := {
                    header := mw_diameterHeaderReq_dummy(UAR_E, c_applId3GPPCxDx),
                    uAR_Body :={
                        vendor_Specific_Application_Id := ?,
                        auth_Session_State := mw_authSessionState_noStateMaintained,
                        user_Name := omit,
                        user_Name := ?,
                        public_Identity := ?,
                        visited_Network_Identifier := ?,
                        user_Authorization_Type := mw_userAuthorizationType(REGISTRATION)
                        user_Authorization_Type := mw_userAuthorizationType(REGISTRATION),
                        sIP_AOR := *,
                        sIP_Visited_Network_Id := *,
                        sIP_User_Authorization_Type := *
                    }
                }

                template UAR_MSG mw_UAR modifies mw_UAR_dummy := {
                    header := mw_diameterHeaderReq_dummy(UAR_E, c_applId3GPPCxDx),
                    uAR_Body :={
                        vendor_Specific_Application_Id := ?,
                        auth_Session_State := mw_authSessionState_noStateMaintained,
                        user_Name := ?, 
                        public_Identity := ?
                        public_Identity := ?,
                        sIP_AOR := *,
                        sIP_Visited_Network_Id := *,
                        sIP_User_Authorization_Type := *
                    }
                }

                template UAR_MSG mw_UAR_unknownPrivateId modifies mw_UAR_dummy := {
                    header := mw_diameterHeaderReq_dummy(UAR_E, c_applId3GPPCxDx),
                    uAR_Body :={
                        vendor_Specific_Application_Id := ?,
                        auth_Session_State := mw_authSessionState_noStateMaintained,
                        user_Name := ?,//UNKNOWN PRIVATE USER IDENTITY
                        public_Identity := ?
                        public_Identity := ?,
                        sIP_AOR := *,
                        sIP_Visited_Network_Id := *,
                        sIP_User_Authorization_Type := *
                    }
                }

                template UAR_MSG mw_UAR_deRegistration modifies mw_UAR_dummy := {
                    header := mw_diameterHeaderReq_dummy(UAR_E, c_applId3GPPCxDx),
                    uAR_Body :={
                        vendor_Specific_Application_Id := ?,
                        auth_Session_State := mw_authSessionState_noStateMaintained,
                        user_Name := ?,
                        public_Identity := ?,
                        visited_Network_Identifier := ?,
                        user_Authorization_Type := mw_userAuthorizationType(DE_REGISTRATION)
                        user_Authorization_Type := mw_userAuthorizationType(DE_REGISTRATION),
                        sIP_AOR := *,
                        sIP_Visited_Network_Id := *,
                        sIP_User_Authorization_Type := *
                    }
                }
            
@@ -561,6 +581,7 @@ module AtsImsIot_Diameter_Templates {
            group CxAnswertMessageTemplates{
                
                template MAA_MSG mw_MAA modifies mw_MAA_dummy := {
                    header := mw_diameterHeaderAns_dummy(MAA_E, c_applId3GPPCxDx),
                    mAA_Body :={
                        vendor_Specific_Application_Id := ?,
                        auth_Session_State := mw_authSessionState_noStateMaintained,
@@ -573,6 +594,7 @@ module AtsImsIot_Diameter_Templates {
                }
                
                template RTA_MSG mw_RTA modifies mw_RTA_dummy := {
                    header := mw_diameterHeaderAns_dummy(RTA_E, c_applId3GPPCxDx),
                    rTA_Body :={
                        vendor_Specific_Application_Id := ?,
                        auth_Session_State := mw_authSessionState_noStateMaintained,
@@ -581,6 +603,7 @@ module AtsImsIot_Diameter_Templates {
                }
                
                template SAA_MSG mw_SAA modifies mw_SAA_dummy := {
                    header := mw_diameterHeaderAns_dummy(SAA_E, c_applId3GPPCxDx),
                    sAA_Body :={
                        vendor_Specific_Application_Id := ?,
                        auth_Session_State := mw_authSessionState_noStateMaintained,
@@ -589,6 +612,7 @@ module AtsImsIot_Diameter_Templates {
                }
                
                template SAA_MSG mw_SAA_userData modifies mw_SAA_dummy := {
                    header := mw_diameterHeaderAns_dummy(SAA_E, c_applId3GPPCxDx),
                    sAA_Body :={
                        vendor_Specific_Application_Id := ?,
                        auth_Session_State := mw_authSessionState_noStateMaintained,
@@ -599,8 +623,10 @@ module AtsImsIot_Diameter_Templates {
                }
                
                template UAA_MSG mw_UAA_diamFirstRegistration modifies mw_UAA_dummy := {
                    header := mw_diameterHeaderAns_dummy(UAA_E, c_applId3GPPCxDx),
                    uAA_Body :={
                        vendor_Specific_Application_Id := ?,
                        auth_Application_Id := *,
                        auth_Session_State := mw_authSessionState_noStateMaintained,
                        result_Code := omit,
                        experimental_Result := mw_experimentalResult(DIAMETER_FIRST_REGISTRATION_E)
@@ -608,9 +634,11 @@ module AtsImsIot_Diameter_Templates {
                }
                
                template UAA_MSG mw_UAA_diamSubsequentRegistration modifies mw_UAA_dummy := {
                    header := mw_diameterHeaderAns_dummy(UAA_E, c_applId3GPPCxDx),
                    uAA_Body :={
                        vendor_Specific_Application_Id := ?,
                        auth_Session_State := mw_authSessionState_noStateMaintained,
                        auth_Application_Id := *,
                        result_Code := omit,
                        experimental_Result := mw_experimentalResult(DIAMETER_SUBSEQUENT_REGISTRATION_E),
                        server_Name := ?,
@@ -619,8 +647,10 @@ module AtsImsIot_Diameter_Templates {
                }
                
                template UAA_MSG mw_UAA_diamErrorUserUnknown modifies mw_UAA_dummy := {
                    header := mw_diameterHeaderAns_dummy(UAA_E, c_applId3GPPCxDx),
                    uAA_Body :={
                        vendor_Specific_Application_Id := ?,
                        auth_Application_Id := *,
                        auth_Session_State := mw_authSessionState_noStateMaintained,
                        result_Code := omit,
                        experimental_Result := mw_experimentalResult(DIAMETER_ERROR_USER_UNKNOWN_E),
@@ -629,8 +659,10 @@ module AtsImsIot_Diameter_Templates {
                }
                
                template UAA_MSG mw_UAA_diamSuccess modifies mw_UAA_dummy := {
                    header := mw_diameterHeaderAns_dummy(UAA_E, c_applId3GPPCxDx),
                    uAA_Body :={
                        vendor_Specific_Application_Id := ?,
                        auth_Application_Id := *,
                        auth_Session_State := mw_authSessionState_noStateMaintained,
                        result_Code := mw_resultCode(mw_resultCode_diameterSuccess),
                        experimental_Result := omit,
+88 −47
Original line number Diff line number Diff line
/**
 *    @author     STF 370
 *    @author     STF 370, TTF006;
 *  @version    $Id: $
 *    @desc        This module provides common function for TestCoordinator component.
 */
module AtsImsIot_Functions {

     import from AtsImsIot_Templates { template mw_EnumQuery_Base, mw_EnumResponse_Base, mw_SIP_URI_Base; }
     import from AtsImsIot_TestSystem all;
    //LibDiameter
    import from LibDiameter_TypesAndValues {type DIAMETER_MSG;}
    
    //LibSip
    import from LibSip_SIPTypesAndValues all;
     import from AtsImsIot_TestSystem { type ImsTestCoordinator, ImsInterfaceMonitor; }
    
    //LibIms
    import from LibIms_UpperTester all;
    
    //LibIot
    import from LibIot_PIXITS { modulepar PX_MAX_MSG_WAIT, PX_PRODUCTS, PX_AVAILABLE_INTERFACES; }
    import from LibIot_Functions { function f_setConformanceVerdict, f_sendEquipmentCmd; }
     import from AtsImsIot_TypesAndValues { type SipMessage, SipMessageList, NAPTRmessage, EnumMessage, SkipType, DiameterMessageList, SkipTypeDiameter;}
    import from LibIms_UpperTester all;
     import from LibUpperTester all;
    import from LibIot_TestInterface { type InterfaceMonitor, TestCoordinator, EquipmentUser; }
    import from LibIot_Functions { function f_getE2EVerdict; }
    import from LibIot_TypesAndValues { type DefaultList, MonitorInterfaceInfo; }
    import from LibDiameter_TypesAndValues {type DIAMETER_MSG;}
    
    import from LibIot_VxLTE_Functions {function f_SipMonitorInterface_available,f_DiameterMonitorInterface_available;}
    
    //LibUpperTester
    import from LibUpperTester all;
    
    //AtsImsIot
    import from AtsImsIot_Templates { template mw_EnumQuery_Base, mw_EnumResponse_Base, mw_SIP_URI_Base; }
    import from AtsImsIot_TestSystem all;
    import from AtsImsIot_TestSystem { type ImsTestCoordinator, ImsInterfaceMonitor; }
    import from AtsImsIot_TypesAndValues { type SipMessage, SipMessageList, NAPTRmessage, EnumMessage, SkipType, DiameterMessageList, SkipTypeDiameter;}
     
     
     group ue {
         
         /**
@@ -2632,9 +2643,30 @@ module AtsImsIot_Functions {
                    }
                }
               }
        }  //end f_receiveDiameterMsg
        
        /**
         * @desc
         *     This function returns correct cx interface monitor in case of single Cx interface connection or 
         *     set cxIH Interface monitor in case of two Cx interface connections. 
         *     If single is set to true then only CxSH monitor is enabled. If single is set to false this monitor is set to CxIH monitor.
         * @param p_singleCxInterface true - only one interface Cx with IH-SH/false - two separate interfaces one for SH(S-CSCF HSS) and another for IH(I-CSCF HSS) 
         */
         function f_getCxInterface(boolean p_singleCxInterface) runs on ImsTestCoordinator system IotSystemInterface return DiameterInterfaceMonitor {
           var DiameterInterfaceMonitor v_diameterInterfaceMonitor;
           if (p_singleCxInterface)
           { 
               v_diameterInterfaceMonitor := vc_vxlte_monitor_components.cxSH
           }
           else
           {
               v_diameterInterfaceMonitor := vc_vxlte_monitor_components.cxIH
           }
           return v_diameterInterfaceMonitor;
         }
        
    }  //end group diameterComponent

     group sgiComponent {
         /**
        * @desc
@@ -2690,6 +2722,26 @@ module AtsImsIot_Functions {
                }
            }
        }    
         /**
        * @desc
        *     This function waits for a Diameter message send from a given monitor
        *     component to mtc.
        * @param p_monitor Reference of Interface Monitor component
        * @param p_msg The Diameter message
        */
         function f_getDiameterMsgFromMonitor(InterfaceMonitor p_monitor, out DIAMETER_MSG p_msg) runs on ImsTestCoordinator {
            timer t_local := PX_MAX_MSG_WAIT;
            t_local.start;            
            alt {
                []icpPort.receive (DIAMETER_MSG:?) /*from p_monitor*/ -> value p_msg {
                   t_local.stop;
                   setverdict(pass, self, "***f_getDiameterMsgFromMonitor: DIAMETER message received***");    
                }
                []t_local.timeout {
                       setverdict(fail, self, "***f_getDiameterMsgFromMonitor: DIAMETER message not received***");    
                }
            }
        }    
     }
     
    group altsteps {
@@ -2885,9 +2937,9 @@ module AtsImsIot_Functions {
        }
        
        /**
        * @desc This altstep add one alternative checking for a very specifc SIP response.
        * @desc This altstep add one alternative checking for a very specifc DIAMETER message.
                                        If it matches then the conformance verdict is set to requested verdict
        * @param p_message The expected SIP response
        * @param p_message The expected DIAMETER message
        * @param p_verdict Verdict to be used in case of match
        * @param p_tpId The test purpose identifier
        * @param p_forwardMtc indicates if the received reponse should be forwarded to mtc
@@ -2906,7 +2958,7 @@ module AtsImsIot_Functions {
                    var DIAMETER_MSG v_msg;
                    v_msg := v_message;
                    log("### Forwarding message to MTC");
                    //icpPort.send(v_msg); //TODO: check how to sync diameter with MTC
                    icpPort.send(v_msg);
                }
            }
            [p_checkMessage] diameterPort.check(receive(p_message) -> value v_message) {
@@ -2915,7 +2967,7 @@ module AtsImsIot_Functions {
                    var DIAMETER_MSG v_msg;
                    v_msg := v_message;
                    log("### Forwarding message to MTC");
                    //icpPort.send(v_msg);//TODO: check how to sync diameter with MTC
                    icpPort.send(v_msg);
                }
            }
        }
@@ -2977,7 +3029,7 @@ module AtsImsIot_Functions {
         *     allows read access to the top element of incoming port queues
         *     without removing the top element from the queue.
         */     
        function f_imsIot_receive( 
        function f_imsIot_receive( // FIXME To be removed
          in template SipMessageList p_passCriteria,
          in template SipMessageList p_failCriteria,
          in template SkipType p_skip,
@@ -3021,7 +3073,7 @@ log ("### f_imsIot_receive: failCriteria=", p_failCriteria);
         * @param p_tpId The Test Purpose identifier
         * @param p_skipCount Indicate how many messages should be skipped prior to checking
         */     
        function f_gen_receive( 
        function f_gen_receive( // FIXME To be removed
          in charstring p_tpId,
          in template SkipType p_skip
        ) runs on ImsInterfaceMonitor {
@@ -3122,7 +3174,7 @@ log ("### f_imsIot_receive: failCriteria=", p_failCriteria);
                           any of the expcted messages 
        * @param p_tpId Test Purpose identifir
        */
        function f_activateImsSipDefaults(
        function f_activateImsSipDefaults( // FIXME To be removed
            inout DefaultList p_default,
            in integer p_startIdx,
            in template SipMessageList p_list,
@@ -3174,10 +3226,12 @@ log ("### f_imsIot_receive: failCriteria=", p_failCriteria);

            for (var integer i := 0; i < v_size; i := i + 1) {
                if (ischosen(p_list[i].request)) {
                    //log ("### f_activateImsSipDefaults: Adding ", p_list[i].request);
                    p_default[v_idx] := activate(
                        a_receive_sip_Request(p_list[i].request,p_verdict, p_tpId, p_forwardMtc, p_checkMessage)
                    );
                } else {
                    //log ("### f_activateImsSipDefaults: Adding ", p_list[i].response);
                    p_default[v_idx] := activate(
                        a_receive_sip_Response(p_list[i].response,p_verdict, p_tpId, p_forwardMtc, p_checkMessage)
                    );
@@ -3188,7 +3242,7 @@ log ("### f_imsIot_receive: failCriteria=", p_failCriteria);
        }
        
        /**
        * @desc Activates for each entry in a expected IMS SIP message list a default 
        * @desc Activates for each entry in a expected IMS DIAMETER message list a default 
        *       for receiving that message and setting the verdict as desired
        * @param p_default Reference to default array where deaults are to be added
        * @param p_startIdx Index into default array after which references for 
@@ -3211,11 +3265,15 @@ log ("### f_imsIot_receive: failCriteria=", p_failCriteria);
            var integer v_idx := p_startIdx;

            for (var integer i := 0; i < v_size; i := i + 1) {
                if (isvalue(p_list[i])) {
                if (ispresent(p_list[i])) {
                    log("Function f_activateDiameterDefaults ispresent:",p_list[i],i);
                    p_default[v_idx] := activate(
                    a_receive_diameter(p_list[i],p_verdict, p_tpId, p_forwardMtc, p_checkMessage)
                    );
                } 
                else {
                    log("Function f_activateDiameterDefaults else statement:",p_list[i]);
                }
//                else {
//                    p_default[v_idx] := activate(
//                        a_receive_diameter_Response(p_list[i].response,p_verdict, p_tpId, p_forwardMtc, p_checkMessage)
@@ -3282,8 +3340,8 @@ log ("### f_imsIot_receive: failCriteria=", p_failCriteria);
           var integer i := 0;
           var integer v_size_ai := lengthof(PX_AVAILABLE_INTERFACES);

           log ("### f_Iot_Sip_receive: passCriteria=", p_passCriteria);
           log ("### f_Iot_Sip_receive: failCriteria=", p_failCriteria);
           //log ("### f_Iot_Sip_receive: passCriteria=", p_passCriteria);
           //log ("### f_Iot_Sip_receive: failCriteria=", p_failCriteria);
            
           // check if interface is available
           if(not((isvalue(vc_Interface))  /*and (vc_interfaceName=="")*/)){
@@ -3300,23 +3358,6 @@ log ("### f_imsIot_receive: failCriteria=", p_failCriteria);
            
           }
            
//           for(i := 0; i < v_size_ai; i := i+1) {
//               if (PX_AVAILABLE_INTERFACES[i].interfaceName == vc_interfaceName) {
//                   if (PX_AVAILABLE_INTERFACES[i].available == false) {
//                       setverdict(inconc, self, "******f_imsIot_receive: Interface " & PX_AVAILABLE_INTERFACES[i].interfaceName & " not available and is not evaluated******" );
//                   } else { // Interface is available
//                       v_defaultArray[0] := activate(a_default(p_tpId));
//                       f_activateImsSipDefaults(v_defaultArray, 1, p_failCriteria, fail, p_tpId, p_forwardMtc, p_checkMessage);
//                       f_activateImsSipDefaults(v_defaultArray, v_size + 1, p_passCriteria, pass, p_tpId, p_forwardMtc, p_checkMessage);
//                       f_gen_receive(p_tpId, p_skip);
//    
//                       for (i := 0; i < lengthof(v_defaultArray); i := i + 1) {
//                           deactivate(v_defaultArray[i]);
//                       }
//                   }
//                   break; // Exit loop
//               }    
//           } // 'for' loop           
       }
       
        /**
@@ -3353,7 +3394,7 @@ log ("### f_imsIot_receive: failCriteria=", p_failCriteria);
         *     skipped prior to checking
         * @param p_tpId The Test Purpose identifier
         * @param p_forwardMtc
         *     indicate if the received Sip message should be forwarded to the
         *     indicate if the received Diameter message should be forwarded to the
         *     mtc
         * @param p_checkMessage
         *     indicate if the incomming message should only be checked
+42 −37

File changed.

Preview size limit exceeded, changes collapsed.

Loading