Commit 3d8e3848 authored by schmitting's avatar schmitting
Browse files

End of validation week 23

parent 431b7df0
Loading
Loading
Loading
Loading
+36 −12
Original line number Diff line number Diff line
@@ -33,6 +33,8 @@ module DiameterRx_ImsGm_TCFunctions {

				var template REGISTER_Request v_register;

                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
                
				v_register :=
					valueof(m_REGISTER_Request_Base(vc_requestUri, vc_callId,
													p_cSeq_s, vc_from, vc_to,
@@ -42,16 +44,14 @@ module DiameterRx_ImsGm_TCFunctions {
				// 200 OK and user profile setting
				f_IMS_preamble_withRegistration(c_userProfile_UE1atSUThome,
												p_cSeq_s, v_register);
				f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
				// point
				// preamble
				// done
				f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync point preamble done

				// TESTBODY
				// prepare and send INVITE UE2
				// @SUT
				LibIms_Steps
				.f_setHeadersINVITE(p_cSeq_s, c_userProfile_UE2atSUThome);
				f_SendINVITE(m_INVITE_Request_UE(vc_requestUri, vc_callId,
				f_SendINVITE(m_INVITE_Request_UE_Diameter(vc_requestUri, vc_callId,
												 p_cSeq_s, vc_from, vc_to,
												 vc_via, vc_contact, omit,
												 vc_route_REG, omit,
@@ -93,6 +93,8 @@ module DiameterRx_ImsGm_TCFunctions {

				var template REGISTER_Request v_register;

                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());

				v_register :=
					valueof(m_REGISTER_Request_Base(vc_requestUri, vc_callId,
													p_cSeq_s, vc_from, vc_to,
@@ -106,10 +108,8 @@ module DiameterRx_ImsGm_TCFunctions {
				f_IMS_preamble_withRegistration(c_userProfile_UE2atSUThome,
												p_cSeq_s, v_register);

				f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
				// point
				// preamble
				// done
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync point preamble done

				// TESTBODY
				// Awaiting INVITE
				f_awaitingINVITE(mw_INVITE_Request_Base);
@@ -173,7 +173,7 @@ module DiameterRx_ImsGm_TCFunctions {
				// @SUT
				LibIms_Steps
				.f_setHeadersINVITE(p_cSeq_s, c_userProfile_UE2atSUThome);
				f_SendINVITE(m_INVITE_Request_UE(vc_requestUri, vc_callId,
				f_SendINVITE(m_INVITE_Request_UE_Diameter(vc_requestUri, vc_callId,
												 p_cSeq_s, vc_from, vc_to,
												 vc_via, vc_contact, omit,
												 vc_route_REG, omit,
@@ -300,7 +300,7 @@ module DiameterRx_ImsGm_TCFunctions {
				// @SUT
				LibIms_Steps
				.f_setHeadersINVITE(p_cSeq_s, c_userProfile_UE2atSUThome);
				f_SendINVITE(m_INVITE_Request_UE(vc_requestUri, vc_callId,
				f_SendINVITE(m_INVITE_Request_UE_Diameter(vc_requestUri, vc_callId,
												 p_cSeq_s, vc_from, vc_to,
												 vc_via, vc_contact, omit,
												 vc_route_REG, omit,
@@ -322,7 +322,7 @@ module DiameterRx_ImsGm_TCFunctions {
				// Check function to set headers for reinvite on
				// originating side
				LibIms_Steps.f_setHeadersReINVITE(p_cSeq_s, true);
				f_SendINVITE(m_INVITE_Request_UE(vc_requestUri, vc_callId,
				f_SendINVITE(m_INVITE_Request_UE_Diameter(vc_requestUri, vc_callId,
												 p_cSeq_s, vc_from, vc_to,
												 vc_via, vc_contact, omit,
												 vc_route, omit,
@@ -428,4 +428,28 @@ module DiameterRx_ImsGm_TCFunctions {
	
	} //end group TP_TargetRefresh	
	
	group IMSTemplates {
	
	
	
        template INVITE_Request m_INVITE_Request_UE_Diameter
        (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
          Via p_via, Contact p_contact, template Require p_require,
        template Route p_route,  template Supported p_supported, template MessageBody p_mb )
        modifies m_INVITE_Request_Base
        :=
        {
          msgHeader :=
          {
            contentLength	:= {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
            contentType := {fieldName := CONTENT_TYPE_E, mediaType :=  c_sdpAplication},
            require := p_require,
            route := p_route,
            supported := p_supported
          },
          messageBody := p_mb
        }
	
	}
	
} // end module DiameterRx_ImsGm_TCFunctions
 No newline at end of file
+41 −4
Original line number Diff line number Diff line
@@ -43,7 +43,7 @@ module DiameterRx_PIXITS
    		
        /** @desc	octetstring ,  PIXIT item A-1/7
          			(This is an operator option, not a protocol option), 
                    UE IP address:
                    UE1 IP address:
                     
                       The Framed-IP-Address AVP (AVP Code 8) [RADIUS] is of type
       OctetString and contains an IPv4 address of the type specified in the
@@ -61,11 +61,48 @@ module DiameterRx_PIXITS
    
                    Ref: TS 129 214 5-4, table 5-4-1
        */
    	modulepar octetstring PX_UE_framedIpAddress := 'ffffffff'O;
    	modulepar octetstring PX_UE1_framedIpAddress := 'ffffffff'O;
    		
        /** @desc	octetstring ,  PIXIT item A-1/7
                    (This is an operator option, not a protocol option), 
                    UE2 IP address:
                     
                       The Framed-IP-Address AVP (AVP Code 8) [RADIUS] is of type
       OctetString and contains an IPv4 address of the type specified in the
       attribute value to be configured for the user;  It MAY be used in an
       authorization request as a hint to the server that a specific address
       is desired, but the server is not required to honor the hint in the
       corresponding response;
    
       Two values have special significance: 0xFFFFFFFF and 0xFFFFFFFE;  The
       value 0xFFFFFFFF indicates that the NAS should allow the user to
       select an address (i.e., negotiated); The value 0xFFFFFFFE indicates
       that the NAS should select an address for the user (eg, assigned
       from a pool of addresses kept by the NAS);
    
    
                    Ref: TS 129 214 5-4, table 5-4-1
        */
        modulepar octetstring PX_UE2_framedIpAddress := 'ffffffff'O;
    	
        /** @desc	octetstring,  PIXIT item A-1/8
          			(This is an operator option, not a protocol option), 
                    UE1 IP6 address:
                     
       The Framed-IPv6-Prefix AVP (AVP Code 97) is of type OctetString and
       contains the IPv6 prefix to be configured for the user;  One or more
       AVPs MAY be used in authorization requests as a hint to the server
       that specific IPv6 prefixes are desired, but the server is not
       required to honor the hint in the corresponding response;
    
    
                    Ref: TS 129 214 5-4, table 5-4-1
        */
        modulepar octetstring PX_UE1_framedIp6Address := 'ffffffff'O;
    	
        /** @desc	octetstring,  PIXIT item A-1/8
                    (This is an operator option, not a protocol option), 
                    UE IP6 address:
                    UE2 IP6 address:
                     
       The Framed-IPv6-Prefix AVP (AVP Code 97) is of type OctetString and
       contains the IPv6 prefix to be configured for the user;  One or more
@@ -76,7 +113,7 @@ module DiameterRx_PIXITS
    
                    Ref: TS 129 214 5-4, table 5-4-1
        */
        modulepar octetstring PX_UE_framedIp6Address := 'ffffffff'O;
        modulepar octetstring PX_UE2_framedIp6Address := 'ffffffff'O;
    
    
    	
+697 −432

File changed.

Preview size limit exceeded, changes collapsed.

+83 −11
Original line number Diff line number Diff line
@@ -80,14 +80,14 @@
        *  @desc	This is a test step that initiate session establishment by the ETS
        *  @param	
        */
        function f_ETS_session_establishment()
        function f_ETS_session_establishment(template Framed_IP_Address_AVP p_framedIpAddress4, template Framed_IPv6_Prefix_AVP p_framedIpAddress6)
        runs on DiameterComponent {
            f_send_AAR(m_AAR_FIP_Media1(vc_sessionId, vc_originHost,
                                        vc_originRealm,
                                        vc_destinationRealm,
                                           vc_destinationHost,
                                        f_framedIpAddress4_send(),
                                        f_framedIpAddress6_send(), 
                                        p_framedIpAddress4,
                                        p_framedIpAddress6, 
                                        m_mediaComponentDescription_flowStatus(m_flowStatus(ENABLED_E))));
            
            f_awaiting_AAA(mw_AAA_modified_ResultCode_ANCA(?, ?, ?,
@@ -128,36 +128,108 @@
    
    group AVPOperations {
    
        function f_framedIpAddress4 ()
        function f_framedIpAddress4 (template octetstring p_framedIpAddress)
            return template Framed_IP_Address_AVP
        {
            if (PX_IPv6)
                {return(omit)}
            else {return(mw_framedIpAddress(PX_UE_framedIpAddress))}
            else {return(mw_framedIpAddress(p_framedIpAddress))}
        }
        function f_framedIpAddress6 ()
        
        function f_framedIpAddress6 (template octetstring p_framedIpAddress)
            return template Framed_IPv6_Prefix_AVP
        {
            if (PX_IPv6)
                {return(mw_framedIp6Address(PX_UE_framedIp6Address))}
                {return(mw_framedIp6Address(p_framedIpAddress))}
            else {return(omit)}
        }
                
        function f_framedIpAddress4_send ()
        function f_framedIpAddress4_send (octetstring p_framedIpAddress)
             return template Framed_IP_Address_AVP
        {
        	if (PX_IPv6)
                 {return(omit)}
        	else {return(m_framedIpAddress(PX_UE_framedIpAddress))}
        	else {return(m_framedIpAddress(p_framedIpAddress))}
        }
        
        function f_framedIpAddress6_send ()
        function f_framedIpAddress6_send (octetstring p_framedIpAddress)
             return template Framed_IPv6_Prefix_AVP
        {
        	if (PX_IPv6)
        		{return(m_framedIp6Address(PX_UE_framedIp6Address))}
        		{return(m_framedIp6Address(p_framedIpAddress))}
         	else {return(omit)}
        }
    }//end group AVPOperations
    
    group twoSessionRelatedFunctions{
	

        function f_awaitAAR_sendAAAandSaveSessionIds() runs on DiameterComponent
        {
            var DIAMETER_MSG v_MSG;
        
            if (PX_DIAM_LLP_ENABLED and f_gtZero(vc_ETS_conn))
            {                
                tc_wait.start(2.0);
                interleave
                {
                    []DIAMP.receive	(DIAMETER_MSG:{aAR_MSG:=mw_AAR_basic(?,?,?,?,*)}) -> value v_MSG
                      {
                        tc_wait.stop;
                        vc_recvDiamMsg := v_MSG;
                        // store specific parameter for AAR if needed
                        vc_recv_hopid:= vc_recvDiamMsg.aAR_MSG.header.hopid;
                        vc_recv_endid:= vc_recvDiamMsg.aAR_MSG.header.endid;
                        vc_sessionId := vc_recvDiamMsg.aAR_MSG.session_Id;
                        //TODO store session1
                        f_send_AAA(m_AAA_basic(vc_sessionId, vc_originHost, vc_originRealm));
                      }
                      
                    []DIAMP.receive	(DIAMETER_MSG:{aAR_MSG:=mw_AAR_basic(?,?,?,?,*)}) -> value v_MSG
                      {
                        tc_wait.stop;
                        vc_recvDiamMsg := v_MSG;
                        // store specific parameter for AAR if needed
                        vc_recv_hopid:= vc_recvDiamMsg.aAR_MSG.header.hopid;
                        vc_recv_endid:= vc_recvDiamMsg.aAR_MSG.header.endid;
                        vc_sessionId := vc_recvDiamMsg.aAR_MSG.session_Id;
                        //TODO store session2
                        f_send_AAA(m_AAA_basic(vc_sessionId, vc_originHost, vc_originRealm));
                      }
                }
            }
            else
            {
                tc_wait.start;
                interleave
                {
                    []DIAMP.receive	(DIAMETER_MSG:{aAR_MSG:=mw_AAR_basic(?,?,?,?,*)}) -> value v_MSG
                      {
                        tc_wait.stop;
                        vc_recvDiamMsg := v_MSG;
                        // store specific parameter for AAR if needed
                        vc_recv_hopid:= vc_recvDiamMsg.aAR_MSG.header.hopid;
                        vc_recv_endid:= vc_recvDiamMsg.aAR_MSG.header.endid;
                        vc_sessionId := vc_recvDiamMsg.aAR_MSG.session_Id;
                        //TODO store session1
                        f_send_AAA(m_AAA_basic(vc_sessionId, vc_originHost, vc_originRealm));
                      }
                      
                    []DIAMP.receive	(DIAMETER_MSG:{aAR_MSG:=mw_AAR_basic(?,?,?,?,*)}) -> value v_MSG
                      {
                        tc_wait.stop;
                        vc_recvDiamMsg := v_MSG;
                        // store specific parameter for AAR if needed
                        vc_recv_hopid:= vc_recvDiamMsg.aAR_MSG.header.hopid;
                        vc_recv_endid:= vc_recvDiamMsg.aAR_MSG.header.endid;
                        vc_sessionId := vc_recvDiamMsg.aAR_MSG.session_Id;
                        //TODO store session2
                        f_send_AAA(m_AAA_basic(vc_sessionId, vc_originHost, vc_originRealm));
                      }
                }
            }
        } //end function f_awaitAAR_sendAAAandSaveSessionIds()
    
    } //end group twoSessionRelatedFunctions
             
} // end module DiameterRx_Steps
 No newline at end of file
+2 −1
Original line number Diff line number Diff line
@@ -672,7 +672,8 @@ module DiameterRx_Templates {
				session_Id := p_sessionId,
				origin_Host := p_originHost,
				origin_Realm := p_originRealm,
				auth_Application_Id := m_authApplicationId(c_applIdRx)
				auth_Application_Id := m_authApplicationId(c_applIdRx),
                result_Code := m_resultCode(m_resultCode_diameterSuccess)
			}
			
            template ASA_MSG m_ASA_basic(template (value) Session_Id_AVP p_sessionId,
Loading