Commit d939ca7b authored by pintar's avatar pintar
Browse files

basic and Rx Diameter separation and optimisation

parent 8cd45650
Loading
Loading
Loading
Loading
+9 −30
Original line number Diff line number Diff line
@@ -12,18 +12,6 @@ module DiameterRx_PIXITS

// SUT specific implementation variants 
	
	/** @desc	boolean (This is an operator option, not a protocol option), 
				True, if SUT/S-CSCF rejects INVITE requests indicating services that are not subscribed to by the called subscriber,
				service may be requested in SDP or in a P-Asserted-Service header
				Ref: ES 283 033 5-4-3-3
	*/
	modulepar boolean PX_XXXXXXXXXXX 	:= true; 
	
    /** @desc	boolean (This is an operator option, not a protocol option), 
                True, if IPv6 addresses are used
    */
    modulepar boolean PX_IPv6 	:= true; 
	
	
    /** @desc	octetstring (This is an operator option, not a protocol option), 
                UE IP address:
@@ -88,8 +76,11 @@ module DiameterRx_PIXITS
   single host.

                Ref: RFC 3588 section 6-3
                NOTE: could be AF or PCRF role:
                	pcscf.metaswitch.com
                	pcrf.metaswitch.com
    */
    modulepar charstring PX_OriginHost := "pcscf.metaswitch.com";
    modulepar charstring PX_OriginHost := "origin.metaswitch.com";


	
@@ -113,8 +104,11 @@ module DiameterRx_PIXITS
   messages.

                Ref: RFC 3588 section 6-5
                NOTE: could be AF or PCRF role:
                	pcscf.metaswitch.com
                	pcrf.metaswitch.com
    */
    modulepar charstring PX_DestinationHost := "af.metaswitch.com";
    modulepar charstring PX_DestinationHost := "destination.metaswitch.com";


	
@@ -133,21 +127,6 @@ module DiameterRx_PIXITS
    */
    modulepar charstring PX_DestinationRealm := "myalupcrf.vf.de";
    

	
    /** @desc	charstring 
                 
   The Auth-Application-Id AVP (AVP Code 258) is of type Unsigned32 and
   is used in order to advertise support of the Authentication and
   Authorization portion of an application (see Section 2.4).  The
   Auth-Application-Id MUST also be present in all Authentication and/or
   Authorization messages that are defined in a separate Diameter
   specification and have an Application ID assigned.

                Ref: RFC 3588 section 6-8
    */
    modulepar UInt32 PX_AuthApplicationId := 16777236;  // 3GPP Rx ('01000014'H)
    
    /** @desc	charstring 
                 
   The ANCA (Access-Network-Charging-Address) is of type IPv4Addr or
+8 −10
Original line number Diff line number Diff line
@@ -37,7 +37,7 @@ module DiameterRx_Rx_TCFunctions {
				
				f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
				
				f_awaiting_AAR(mw_AAR_FIP_Media1(?,?,?,?,?,?,
				f_awaiting_AAR(mw_AAR_FIP_Media1(?,?,?,?,?,
                	f_framedIpAddress4(), // indicating UE
                	f_framedIpAddress6(), // indicationg UE (IPv6)
                	mw_mediaComponentDescription_flowStatus(?))); // should be present
@@ -69,7 +69,7 @@ module DiameterRx_Rx_TCFunctions {
				
                    f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
				
                    f_awaiting_AAR(mw_AAR_basic(?,?,?,?,?,?));
                    f_awaiting_AAR(mw_AAR_basic(?,?,?,?,?));
                    
					// sessionId used from AAR
                     vc_originHost := m_originHost(PX_OriginHost);
@@ -80,7 +80,7 @@ module DiameterRx_Rx_TCFunctions {
															  vc_originHost,
															  vc_originRealm,															  
															  m_resultCode(m_resultCode_diameterSuccess),
															  m_accessNetworkChargingAddress(f_IPAdresss())));
															  m_accessNetworkChargingAddress(f_IPAdresss(PX_ANCA_ipv4, PX_ANCA_ipv6))));
                                           				
                    f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //     sync

@@ -103,7 +103,7 @@ module DiameterRx_Rx_TCFunctions {
				
                    f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
				
                    f_awaiting_AAR(mw_AAR_SCD(?,?,?,?,?,?,
                    f_awaiting_AAR(mw_AAR_SCD(?,?,?,?,?,
                    mw_sponsoredConnectivityData(?,?,*,*))); // should be present
				
                    f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //     sync
@@ -136,7 +136,6 @@ module DiameterRx_Rx_TCFunctions {
					f_send_RAR(m_RAR_SpecificAction
							   (vc_sessionId, vc_originHost, vc_originRealm,
								vc_destinationRealm, vc_destinationHost,
								vc_authApplicationId,
								m_specificAction
								(INDICATION_OF_FAILED_RESOURCES_ALLOCATION_E)));
                    
@@ -187,7 +186,7 @@ module DiameterRx_Rx_TCFunctions {
				
                    f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); //     sync
					f_awaiting_AAR(mw_AAR_FIP_supSA_supMedia
								   (?, ?, ?, ?, ?, ?, f_framedIpAddress4(),
								   (?, ?, ?, ?, ?, f_framedIpAddress4(),
									//     indicating UE
									f_framedIpAddress6(),
									//     indicationg UE (IPv6)
@@ -226,7 +225,7 @@ module DiameterRx_Rx_TCFunctions {
				
                    f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); //     sync
                    f_awaiting_AAR(mw_AAR_FIP_supSA_supMedia
                                   (?, ?, ?, ?, ?, ?, f_framedIpAddress4(),
                                   (?, ?, ?, ?, ?, f_framedIpAddress4(),
                                    //     indicating UE
                                    f_framedIpAddress6(),
                                    //     indicationg UE (IPv6)
@@ -270,7 +269,7 @@ module DiameterRx_Rx_TCFunctions {

                    
                    f_send_ASR(m_ASR_basic(vc_sessionId, vc_originHost,
                    vc_originRealm, vc_destinationRealm, vc_destinationHost, vc_authApplicationId));  
                    vc_originRealm, vc_destinationRealm, vc_destinationHost));  
                    
                    f_awaiting_ASA(mw_ASA_dummy); 
                    f_awaiting_STR(mw_STR_dummy); 
@@ -324,7 +323,7 @@ module DiameterRx_Rx_TCFunctions {
												f_framedIpAddress6_send(), 
                    							m_mediaComponentDescription_flowStatus(m_flowStatus(ENABLED_E))));
                    
                    f_awaiting_AAA(mw_AAA_modified_ResultCode_ANCA(?, ?, ?, ?,
                    f_awaiting_AAA(mw_AAA_modified_ResultCode_ANCA(?, ?, ?,
																   mw_resultCode
																   (mw_resultCode_diameterSuccess)
																   , ?)); // ANCA-AVP present
@@ -354,7 +353,6 @@ module DiameterRx_Rx_TCFunctions {
                    
					f_send_STR(m_STR_basic(vc_sessionId, vc_originHost, // Tester initiates termination
										   vc_originRealm, vc_destinationRealm,
										   vc_authApplicationId,
										   m_terminationCause(DIAMETER_LOGOUT_E)));
                    
                    f_awaiting_STA(mw_STA_dummy);
+1 −7
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@
    import from LibDiameter_Steps  all;
    import from LibDiameter_PIXITS all;
    import from LibDiameter_Interface {type DiameterComponent;};
    import from LibDiameter_PIXITS all;	
    
    //DiameterRx
    import from DiameterRx_Templates all;
@@ -103,11 +104,4 @@
         {if (PX_IPv6)
             {return(m_framedIp6Address(PX_UE_framedIp6Address))}
             else {return(omit)}}
             
    function f_IPAdresss ()
    	return template Address
    	{if (PX_IPv6)
    	    {return( {ipv6:= PX_ANCA_ipv6  }  ) }
    	    else {return( {ipv4:= PX_ANCA_ipv4 }   )}
    	}
} // end module DiameterRx_Steps
 No newline at end of file
+9 −34
Original line number Diff line number Diff line
@@ -810,7 +810,6 @@ module DiameterRx_Templates {
    									 template Origin_Host_AVP p_originHost,
    									 template Origin_Realm_AVP p_originRealm,
    									 template Destination_Realm_AVP p_destinationRealm,
    									 template Auth_Application_Id_AVP p_authApplicationId,
    									 template Termination_Cause_AVP p_terminationCause)
    			modifies m_STR_dummy := 
    		{
@@ -818,7 +817,7 @@ module DiameterRx_Templates {
    			origin_Host := p_originHost,
    			origin_Realm := p_originRealm,
    			destination_Realm := p_destinationRealm,
    			auth_Application_Id := p_authApplicationId,
    			auth_Application_Id := m_authApplicationId(c_applIdRx),
    			termination_Cause := p_terminationCause
    		}
            
@@ -827,8 +826,7 @@ module DiameterRx_Templates {
                                         template Origin_Host_AVP p_originHost,
                                         template Origin_Realm_AVP p_originRealm,
                                         template Destination_Realm_AVP p_destinationRealm,
                                         template Destination_Host_AVP p_destinationHost,
                                         template Auth_Application_Id_AVP p_authApplicationId)
                                         template Destination_Host_AVP p_destinationHost)
                modifies m_RAR_dummy := 
            {
                session_Id := p_sessionId,
@@ -836,7 +834,7 @@ module DiameterRx_Templates {
                origin_Realm := p_originRealm,
                destination_Realm := p_destinationRealm,
                destination_Host := p_destinationHost,
                auth_Application_Id := p_authApplicationId
                auth_Application_Id := m_authApplicationId(c_applIdRx)
            }
            
            
@@ -844,8 +842,7 @@ module DiameterRx_Templates {
                             template Origin_Host_AVP p_originHost,
                             template Origin_Realm_AVP p_originRealm,
                             template Destination_Realm_AVP p_destinationRealm,
                             template Destination_Host_AVP p_destinationHost,
                             template Auth_Application_Id_AVP p_authApplicationId)
                             template Destination_Host_AVP p_destinationHost)
    			modifies m_ASR_dummy := 
    		{
                header := m_diameterHeaderReq_dummy(ASR_E, 0),
@@ -854,7 +851,7 @@ module DiameterRx_Templates {
                origin_Realm := p_originRealm,
                destination_Realm := p_destinationRealm,
                destination_Host := p_destinationHost,
                auth_Application_Id := p_authApplicationId,
                auth_Application_Id := m_authApplicationId(c_applIdRx),
                abort_cause := omit,
                user_Name := omit,
                origin_State_Id := omit,
@@ -871,28 +868,24 @@ module DiameterRx_Templates {
    									  template Origin_Host_AVP p_originHost,
    									  template Origin_Realm_AVP p_originRealm,
    									  template Destination_Realm_AVP p_destinationRealm,
    									  template Destination_Host_AVP p_destinationHost,
    									  template Auth_Application_Id_AVP p_authApplicationId)
    									  template Destination_Host_AVP p_destinationHost)
    			modifies mw_AAR_dummy := 
    		{
    			session_Id := p_sessionId,
    			origin_Host := p_originHost,
    			origin_Realm := p_originRealm,
    			destination_Realm := p_destinationRealm,
    			destination_Host := p_destinationHost,
    			auth_Application_Id := p_authApplicationId
    			destination_Host := p_destinationHost
    		}
    		
    		template AAA_MSG mw_AAA_basic(template Session_Id_AVP p_sessionId,
    									  template Origin_Host_AVP p_originHost,
    									  template Origin_Realm_AVP p_originRealm,
    									  template Auth_Application_Id_AVP p_authApplicationId)
    									  template Origin_Realm_AVP p_originRealm)
    			modifies mw_AAA_dummy := 
    		{
                    session_Id := p_sessionId,
                    origin_Host := p_originHost,
                    origin_Realm := p_originRealm,
                    auth_Application_Id := p_authApplicationId
                    origin_Realm := p_originRealm
    		}

        }//end group Rxbasic_request_templates_receive
@@ -969,7 +962,6 @@ module DiameterRx_Templates {
                                           template Origin_Realm_AVP p_originRealm,
                                           template Destination_Realm_AVP p_destinationRealm,
                                           template Destination_Host_AVP p_destinationHost,
                                           template Auth_Application_Id_AVP p_authApplicationId,
                                           template Specific_Action_AVP p_specificAction)
                  modifies m_RAR_dummy := 
              {
@@ -985,7 +977,6 @@ module DiameterRx_Templates {
										template Origin_Realm_AVP p_originRealm,
										template Destination_Realm_AVP p_destinationRealm,
										template Destination_Host_AVP p_destinationHost,
										template Auth_Application_Id_AVP p_authApplicationId,
										template Framed_IP_Address_AVP p_framedIpAddress,
                                        template Framed_IPv6_Prefix_AVP p_framedIp6Address,
										template Media_Component_Description_AVP p_mediaComponentDescription)
@@ -1001,7 +992,6 @@ module DiameterRx_Templates {
                                        template Origin_Realm_AVP p_originRealm,
                                        template Destination_Realm_AVP p_destinationRealm,
                                        template Destination_Host_AVP p_destinationHost,
                                        template Auth_Application_Id_AVP p_authApplicationId,
                                        template Framed_IP_Address_AVP p_framedIpAddress,
                                        template Framed_IPv6_Prefix_AVP p_framedIp6Address,
                                        template Specific_Action_AVP p_specificAction,
@@ -1019,7 +1009,6 @@ module DiameterRx_Templates {
                                        template Origin_Realm_AVP p_originRealm,
                                        template Destination_Realm_AVP p_destinationRealm,
                                        template Destination_Host_AVP p_destinationHost,
                                        template Auth_Application_Id_AVP p_authApplicationId,
                                        template Sponsored_Connectivity_Data_AVP p_sponsoredConnectivityData)
                  modifies mw_AAR_basic := 
              {
@@ -1050,7 +1039,6 @@ module DiameterRx_Templates {
    		  (template Session_Id_AVP p_sessionId,
    		   template Origin_Host_AVP p_originHost,
    		   template Origin_Realm_AVP p_originRealm,
    		   template Auth_Application_Id_AVP p_authApplicationId,
    		   template Result_Code_AVP p_resultCode,
    		   template Access_Network_Charging_Address_AVP p_accessNetworkChargingAddress) 
    		   	modifies mw_AAA_basic := 
@@ -1064,18 +1052,5 @@ module DiameterRx_Templates {
	  } //end group Rxmodified_templates
    } //end group RxMessageTemplates 
    
    group FunctionsForTemplates {
    
    
     function f_IPAdressLength ()
         return integer
     {if (PX_IPv6)
         {return(8) }
         else {return(4) }
     }
    
    
    }//end group FunctionsForTemplates 
    
    
}//end module LibDiameter_Templates
 No newline at end of file