Commit 860bda7a authored by pintar's avatar pintar
Browse files

Updates due to AVP flags V and M

parent 2fffd09b
Loading
Loading
Loading
Loading
+1570 −1584
Original line number Original line Diff line number Diff line
@@ -222,13 +222,27 @@ module LibDiameter_Templates {
                endid := ?
                endid := ?
            }
            }
            
            
            template AVP_Flags m_avpFlags := {
            template AVP_Flags m_avpFlags_Mbit1 := {
                v_bit := '0'B,
                v_bit := '0'B,
                m_bit := '1'B,
                m_bit := '1'B,
                p_bit := '0'B,
                p_bit := '0'B,
                reserved_bits := '00000'B
                reserved_bits := '00000'B
            }
            }
            
            
            template AVP_Flags m_avpFlags_Mbit0 := {
                v_bit := '0'B,
                m_bit := '0'B,
                p_bit := '0'B,
                reserved_bits := '00000'B
            }
            
            template AVP_Flags m_avpFlags_VMbit1 := {
                v_bit := '1'B,
                m_bit := '1'B,
                p_bit := '0'B,
                reserved_bits := '00000'B
            }
            
            template AVP_Flags mw_avpFlags_any := {
            template AVP_Flags mw_avpFlags_any := {
                v_bit := ?,
                v_bit := ?,
                m_bit := ?,
                m_bit := ?,
@@ -250,13 +264,19 @@ module LibDiameter_Templates {
                aVP_vid := *
                aVP_vid := *
            }
            }


            template AVP_Header m_aVP_Header(AVP_Code p_avpCode, AVP_Length p_dataLen:=0) := {
            template AVP_Header m_aVP_Header_Mbit1(AVP_Code p_avpCode, AVP_Length p_dataLen:=0) := {
                aVP_Code := p_avpCode,
                aVP_Code := p_avpCode,
                aVP_flags := m_avpFlags,
                aVP_flags := m_avpFlags_Mbit1,
                aVP_len := 8 + p_dataLen,
                aVP_len := 8 + p_dataLen,
                aVP_vid := omit
                aVP_vid := omit
            }
            }


            template AVP_Header m_aVP_Header_Mbit0(AVP_Code p_avpCode, AVP_Length p_dataLen:=0) := {
                aVP_Code := p_avpCode,
                aVP_flags := m_avpFlags_Mbit0,
                aVP_len := 8 + p_dataLen,
                aVP_vid := omit
            }


          /**
          /**
           * @desc complete AVP header field template
           * @desc complete AVP header field template
@@ -274,7 +294,6 @@ module LibDiameter_Templates {
                 aVP_vid := p_avpVid
                 aVP_vid := p_avpVid
             }
             }


			
            /**
            /**
             * @desc complete AVP header field template
             * @desc complete AVP header field template
             * @param p_avpCode specific Code of the AVP parameter
             * @param p_avpCode specific Code of the AVP parameter
@@ -291,6 +310,22 @@ module LibDiameter_Templates {
                   aVP_vid := p_avpVid
                   aVP_vid := p_avpVid
               }
               }


            /**
             * @desc complete AVP header field template
             * @param p_avpCode specific Code of the AVP parameter
             * @param p_avpDataLen additional length caused if AVP data field is present
             * @param p_avpVid vendor id if needed
             */
            template AVP_Header m_aVP_HeaderVid_Mbit1(AVP_Code p_avpCode, AVP_Length p_avpDataLen, template AVP_Vendor_ID p_avpVid) := {
                aVP_Code := p_avpCode,
                aVP_flags := {v_bit := f_aVPvBit(p_avpVid),
                    m_bit := '1'B,
                    p_bit := '0'B,
                    reserved_bits := '00000'B},
                aVP_len :=f_aVP_len(8, p_avpDataLen, p_avpVid), // add length of avpData and optional 4 (if Vid is present)
                aVP_vid := p_avpVid
            }
            
            function f_aVP_len(AVP_Length p_length8, AVP_Length p_avpDataLen, template AVP_Vendor_ID p_avpVid)return AVP_Length  {
            function f_aVP_len(AVP_Length p_length8, AVP_Length p_avpDataLen, template AVP_Vendor_ID p_avpVid)return AVP_Length  {
                var AVP_Length v_sum;
                var AVP_Length v_sum;
                v_sum := p_length8 + p_avpDataLen + f_lengthVid(p_avpVid);
                v_sum := p_length8 + p_avpDataLen + f_lengthVid(p_avpVid);
@@ -309,93 +344,87 @@ module LibDiameter_Templates {
                if(isvalue(p_avpVid)){return '1'B} else{return '0'B}
                if(isvalue(p_avpVid)){return '1'B} else{return '0'B}
            }
            }


                    	
        } //end group DiameterHeaderGroup
        } //end group DiameterHeaderGroup
        
        
        group DummyAVPHeaders{  
        group DummyAVPHeaders{  
            
            
            template Host_IP_Address_AVP m_hostIPAddress_dummy := {
				aVP_Header := m_aVP_Header(c_host_IP_Address_AVP_Code,6),
				aVP_Data := {addressFamily := c_ipv4AddressFamily, ipAddress := {ipv4 := {127, 0, 0, 0}}}
			}        
            
            template Origin_Host_AVP m_originHost_dummy := {
            template Origin_Host_AVP m_originHost_dummy := {
                aVP_Header := m_aVP_Header(c_origin_Host_AVP_Code, 3),
                aVP_Header := m_aVP_Header_Mbit1(c_origin_Host_AVP_Code, 3),
                aVP_Data := "abc"
                aVP_Data := "abc"
            }
            }
            
            
            template Origin_Realm_AVP m_originRealm_dummy := {
            template Origin_Realm_AVP m_originRealm_dummy := {
                aVP_Header := m_aVP_Header(c_origin_Realm_AVP_Code, 3),
                aVP_Header := m_aVP_Header_Mbit1(c_origin_Realm_AVP_Code, 3),
                aVP_Data := "abc"
                aVP_Data := "abc"
            }
            }
            
            
            template Vendor_Id_AVP m_vendorId_dummy := {
            template Vendor_Id_AVP m_vendorId_dummy := {
                aVP_Header := m_aVP_Header(c_vendor_Id_AVP_Code, 4),
                aVP_Header := m_aVP_Header_Mbit1(c_vendor_Id_AVP_Code, 4),
                aVP_Data := 0
                aVP_Data := 0
            }
            }


            template Product_Name_AVP m_productName_dummy := {
            template Product_Name_AVP m_productName_dummy := {
                aVP_Header := m_aVP_Header(c_product_Name_AVP_Code, 3),
                aVP_Header := m_aVP_Header_Mbit0(c_product_Name_AVP_Code, 3),
                aVP_Data := "abc"
                aVP_Data := "abc"
            }
            }
            
            
            template Disconnect_Cause_AVP m_disconnectCause_dummy := {
            template Disconnect_Cause_AVP m_disconnectCause_dummy := {
                aVP_Header := m_aVP_Header(c_disconnect_Cause_AVP_Code, 4),
                aVP_Header := m_aVP_Header_Mbit1(c_disconnect_Cause_AVP_Code, 4),
                aVP_Data := REBOOTING_E
                aVP_Data := REBOOTING_E
            }
            }
            
            
            template Result_Code_AVP m_resultCode_dummy := {
            template Result_Code_AVP m_resultCode_dummy := {
                aVP_Header := m_aVP_Header(c_result_Code_AVP_Code, 4),
                aVP_Header := m_aVP_Header_Mbit1(c_result_Code_AVP_Code, 4),
                aVP_Data := DIAMETER_DUMMY_E
                aVP_Data := DIAMETER_DUMMY_E
            }
            }
    
    
            template Destination_Host_AVP m_destinationHost_dummy := 
            template Destination_Host_AVP m_destinationHost_dummy := 
            {
            {
                aVP_Header := m_aVP_Header(c_destination_Host_AVP_Code, 3),
                aVP_Header := m_aVP_Header_Mbit1(c_destination_Host_AVP_Code, 3),
                aVP_Data := "abc"
                aVP_Data := "abc"
            }
            }
         
         
            template Destination_Realm_AVP m_destinationRealm_dummy := 
            template Destination_Realm_AVP m_destinationRealm_dummy := 
            {
            {
                aVP_Header := m_aVP_Header(c_destination_Realm_AVP_Code, 3),
                aVP_Header := m_aVP_Header_Mbit1(c_destination_Realm_AVP_Code, 3),
                aVP_Data := "abc"
                aVP_Data := "abc"
            }
            }
            
            
            template Termination_Cause_AVP m_terminationCause_dummy := 
            template Termination_Cause_AVP m_terminationCause_dummy := 
            {
            {
                aVP_Header := m_aVP_Header(c_termination_Cause_AVP_Code, 4),
                aVP_Header := m_aVP_Header_Mbit1(c_termination_Cause_AVP_Code, 4),
                aVP_Data := DIAMETER_LOGOUT_E
                aVP_Data := DIAMETER_LOGOUT_E
            }
            }
            
            
            template Session_Id_AVP m_sessionId_dummy := 
            template Session_Id_AVP m_sessionId_dummy := 
            {
            {
				aVP_Header := m_aVP_Header(c_session_Id_AVP_Code, 3),
                aVP_Header := m_aVP_Header_Mbit1(c_session_Id_AVP_Code, 3),
                aVP_Data := "abc"
                aVP_Data := "abc"
            }
            }
            
            
            template Auth_Application_Id_AVP m_authApplicationId_dummy := 
            template Auth_Application_Id_AVP m_authApplicationId_dummy := 
            {
            {
                aVP_Header := m_aVP_Header(c_auth_Application_Id_AVP_Code, 4),
                aVP_Header := m_aVP_Header_Mbit1(c_auth_Application_Id_AVP_Code, 4),
                aVP_Data := 0
                aVP_Data := 0
            }
            }
            
            
            template Accounting_Record_Type_AVP m_accounting_Record_Type_dummy := {
            template Accounting_Record_Type_AVP m_accounting_Record_Type_dummy := {
				aVP_Header := m_aVP_Header(c_accounting_Record_Type_AVP_Code,4),
                aVP_Header := m_aVP_Header_Mbit1(c_accounting_Record_Type_AVP_Code,4),
                aVP_Data := EVENT_RECORD_E
                aVP_Data := EVENT_RECORD_E
            }
            }
            
            
            template Accounting_Record_Number_AVP m_accounting_Record_Number_dummy := {
            template Accounting_Record_Number_AVP m_accounting_Record_Number_dummy := {
				aVP_Header := m_aVP_Header(c_accounting_Record_Number_AVP_Code,4),
                aVP_Header := m_aVP_Header_Mbit1(c_accounting_Record_Number_AVP_Code,4),
                aVP_Data := 0
                aVP_Data := 0
            }
            }
            
            
            template Auth_Session_State_AVP m_auth_Session_State_dummy := {
            template Auth_Session_State_AVP m_auth_Session_State_dummy := {
            	aVP_Header := m_aVP_Header(c_auth_Session_State_AVP_Code,4),
                aVP_Header := m_aVP_Header_Mbit1(c_auth_Session_State_AVP_Code,4),
                aVP_Data := STATE_MAINTAINED_E
                aVP_Data := STATE_MAINTAINED_E
            }
            }


            template SIP_AOR_AVP m_sIP_AOR_dummy := {
            template SIP_AOR_AVP m_sIP_AOR_dummy := {
              aVP_Header := m_aVP_Header(c_sIP_AOR_AVP_Code, 18),
              aVP_Header := m_aVP_HeaderVid_Mbit1(c_sIP_AOR_AVP_Code, 18, omit),
              aVP_Data := {
              aVP_Data := {
                    scheme := "aaa",
                    scheme := "aaa",
                    diameterId_FQDN := "www.etsi.org",
                    diameterId_FQDN := "www.etsi.org",
@@ -406,104 +435,104 @@ module LibDiameter_Templates {
            }
            }
            
            
            template SIP_Visited_Network_Id_AVP m_sIP_Visited_Network_Id_dummy := {
            template SIP_Visited_Network_Id_AVP m_sIP_Visited_Network_Id_dummy := {
            	aVP_Header := m_aVP_Header(c_sIP_Visited_Network_Id_AVP_Code,6),
                aVP_Header := m_aVP_HeaderVid_Mbit1(c_sIP_Visited_Network_Id_AVP_Code, 6, omit),
                aVP_Data := "abcabc"
                aVP_Data := "abcabc"
            }
            }
            
            
            template SIP_User_Authorization_Type_AVP m_sIP_User_Authorization_Type_dummy := {
            template SIP_User_Authorization_Type_AVP m_sIP_User_Authorization_Type_dummy := {
                aVP_Header := m_aVP_Header(c_sIP_User_Authorization_Type_AVP_Code,4),
                aVP_Header := m_aVP_HeaderVid_Mbit1(c_sIP_User_Authorization_Type_AVP_Code, 4, omit),
                aVP_Data := REGISTRATION_E
                aVP_Data := REGISTRATION_E
            }
            }


            template SIP_User_Data_Already_Available_AVP m_sIP_User_Data_Already_Available_dummy := {
            template SIP_User_Data_Already_Available_AVP m_sIP_User_Data_Already_Available_dummy := {
                aVP_Header := m_aVP_Header(c_sIP_User_Data_Already_Available_AVP_Code,4),
                aVP_Header := m_aVP_HeaderVid_Mbit1(c_sIP_User_Data_Already_Available_AVP_Code, 4, omit),
                aVP_Data := USER_DATA_NOT_AVAILABLE_E
                aVP_Data := USER_DATA_NOT_AVAILABLE_E
            }
            }
            
            
            template SIP_Server_Assignment_Type_AVP m_sIP_Server_Assignment_Type_dummy := {
            template SIP_Server_Assignment_Type_AVP m_sIP_Server_Assignment_Type_dummy := {
            	aVP_Header := m_aVP_Header(c_sIP_Server_Assignment_Type_AVP_Code,4),
                aVP_Header := m_aVP_HeaderVid_Mbit1(c_sIP_Server_Assignment_Type_AVP_Code, 4, omit),
                aVP_Data := NO_ASSIGNMENT_E
                aVP_Data := NO_ASSIGNMENT_E
            }
            }
            
            
            template SIP_User_Data_AVP m_sIP_User_Data_dummy := 
            template SIP_User_Data_AVP m_sIP_User_Data_dummy := 
            {
            {
            	aVP_Header := m_aVP_Header(c_sIP_User_Data_AVP_Code),
                aVP_Header := m_aVP_HeaderVid_Mbit1(c_sIP_User_Data_AVP_Code, 0, omit),
                sIP_User_Data_Type := {
                sIP_User_Data_Type := {
            		aVP_Header := m_aVP_Header(c_sIP_User_Data_Type_AVP_Code,3),
                    aVP_Header := m_aVP_HeaderVid_Mbit1(c_sIP_User_Data_Type_AVP_Code, 3 ,omit),
                    aVP_Data := "abc"
                    aVP_Data := "abc"
                },
                },
                sIP_User_Data_Contents := {
                sIP_User_Data_Contents := {
             		aVP_Header := m_aVP_Header(c_sIP_User_Data_Contents_AVP_Code,1),
                    aVP_Header := m_aVP_HeaderVid_Mbit1(c_sIP_User_Data_Contents_AVP_Code, 1, omit),
                    aVP_Data := '00'O
                    aVP_Data := '00'O
                },
                },
                aVP_Type := omit
                aVP_Type := omit
            }
            }
            
            
            template SIP_Accounting_Information_AVP m_sIP_Accounting_Information_dummy := {
            template SIP_Accounting_Information_AVP m_sIP_Accounting_Information_dummy := {
            	aVP_Header := m_aVP_Header(c_sIP_Accounting_Information_AVP_Code),
                aVP_Header := m_aVP_HeaderVid_Mbit1(c_sIP_Accounting_Information_AVP_Code, 0, omit),
                sIP_Accounting_Server_URI := omit,
                sIP_Accounting_Server_URI := omit,
                sIP_Credit_Control_Server_URI := omit,
                sIP_Credit_Control_Server_URI := omit,
                aVP_Type := omit
                aVP_Type := omit
            }
            }
            
            
            template SIP_Method_AVP m_sIP_Method_dummy := {
            template SIP_Method_AVP m_sIP_Method_dummy := {
				aVP_Header := m_aVP_Header(c_sIP_Method_AVP_Code,3),
                aVP_Header := m_aVP_HeaderVid_Mbit1(c_sIP_Method_AVP_Code, 3, omit),
                aVP_Data := "sip"
                aVP_Data := "sip"
            }
            }
            
            
            template SIP_Deregistration_Reason_AVP m_sIP_Deregistration_Reason_dummy := {
            template SIP_Deregistration_Reason_AVP m_sIP_Deregistration_Reason_dummy := {
				aVP_Header := m_aVP_Header(c_sIP_Deregistration_Reason_AVP_Code,8),
                aVP_Header := m_aVP_HeaderVid_Mbit1(c_sIP_Deregistration_Reason_AVP_Code, 8, omit),
                sIP_Reason_Code_AVP := m_sIP_Reason_Code_dummy,
                sIP_Reason_Code_AVP := m_sIP_Reason_Code_dummy,
                sIP_Reason_Info_AVP := omit,
                sIP_Reason_Info_AVP := omit,
                aVP_Type := omit
                aVP_Type := omit
            }
            }
            
            
            template SIP_Reason_Code_AVP m_sIP_Reason_Code_dummy := {
            template SIP_Reason_Code_AVP m_sIP_Reason_Code_dummy := {
				aVP_Header := m_aVP_Header(c_sIP_Reason_Code_AVP_Code,4),
                aVP_Header := m_aVP_HeaderVid_Mbit1(c_sIP_Reason_Code_AVP_Code, 4, omit),
                aVP_Data := PERMANENT_TERMINATION_E
                aVP_Data := PERMANENT_TERMINATION_E
            }
            }
            
            
            template User_Name_AVP m_user_Name_dummy := {
            template User_Name_AVP m_user_Name_dummy := {
				aVP_Header := m_aVP_Header(c_user_Name_AVP_Code,3),
                aVP_Header := m_aVP_HeaderVid_Mbit1(c_user_Name_AVP_Code, 3, omit),
                aVP_Data := "dbo"
                aVP_Data := "dbo"
            }
            }
            
            
            template User_Identity_AVP m_user_Identity_dummy := {
            template User_Identity_AVP m_user_Identity_dummy := {
            	aVP_Header := m_aVP_Header(c_user_Identity_AVP_Code),
                aVP_Header := m_aVP_HeaderVid_Mbit1(c_user_Identity_AVP_Code, 0, c_vendId3gpp),
                public_Identity_AVP := omit,
                public_Identity_AVP := omit,
                mSISDN_AVP := omit,
                mSISDN_AVP := omit,
                aVP_Type := omit
                aVP_Type := omit
            }
            }
            
            
            template User_Data_AVP m_user_Data_dummy := {
            template User_Data_AVP m_user_Data_dummy := {
				aVP_Header := m_aVP_Header(c_user_Data_AVP_Code, 1),
                aVP_Header := m_aVP_HeaderVid_Mbit1(c_user_Data_AVP_Code, 1, c_vendId3gpp),
                aVP_Data := '00'O
                aVP_Data := '00'O
            }
            }
            
            
            template CC_Request_Type_AVP m_cC_Request_Type_dummy := {
            template CC_Request_Type_AVP m_cC_Request_Type_dummy := {
				aVP_Header := m_aVP_Header(c_cC_Request_Type_AVP_Code,4),
                aVP_Header := m_aVP_HeaderVid_Mbit1(c_cC_Request_Type_AVP_Code,4, omit),
                aVP_Data := INITIAL_REQUEST_E
                aVP_Data := INITIAL_REQUEST_E
            }
            }
            
            
            template CC_Request_Number_AVP m_cC_Request_Number_dummy := {
            template CC_Request_Number_AVP m_cC_Request_Number_dummy := {
				aVP_Header := m_aVP_Header(c_cC_Request_Number_AVP_Code,4),
                aVP_Header := m_aVP_HeaderVid_Mbit1(c_cC_Request_Number_AVP_Code,4, omit),
                aVP_Data := 0
                aVP_Data := 0
            }
            }
            
            
            template Data_Reference_AVP m_data_Reference_dummy := {
            template Data_Reference_AVP m_data_Reference_dummy := {
            	aVP_Header := m_aVP_Header(c_data_Reference_AVP_Code, 4),
                aVP_Header := m_aVP_HeaderVid_Mbit1(c_data_Reference_AVP_Code, 4, c_vendId3gpp),
                aVP_Data := REPOSITORY_DATA_E
                aVP_Data := REPOSITORY_DATA_E
            }
            }
            
            
            template Vendor_Specific_Appl_Id_AVP m_vendor_Specific_Appl_Id_dummy := {
            template Vendor_Specific_Appl_Id_AVP m_vendor_Specific_Appl_Id_dummy := {
            	aVP_Header := m_aVP_Header(c_vendor_Specific_Appl_Id_AVP_Code),
                aVP_Header := m_aVP_Header_Mbit1(c_vendor_Specific_Appl_Id_AVP_Code),
                vendor_Id := omit,
                vendor_Id := omit,
                auth_Application_Id := omit,
                auth_Application_Id := omit,
                acct_Application_Id := omit
                acct_Application_Id := omit
            }
            }
            
            
            template Re_Auth_Request_Type_AVP m_re_Auth_Request_dummy := {
            template Re_Auth_Request_Type_AVP m_re_Auth_Request_dummy := {
            	aVP_Header := m_aVP_Header(c_re_Auth_Request_Type_AVP_Code, 4),
                aVP_Header := m_aVP_Header_Mbit1(c_re_Auth_Request_Type_AVP_Code, 4),
                aVP_Data := AUTHORIZE_ONLY_E
                aVP_Data := AUTHORIZE_ONLY_E
            }
            }
            
            
@@ -513,80 +542,80 @@ module LibDiameter_Templates {
            
            
            template Auth_Application_Id_AVP m_authApplicationId(UInt32 p_avpData):= 
            template Auth_Application_Id_AVP m_authApplicationId(UInt32 p_avpData):= 
            {
            {
                aVP_Header := m_aVP_HeaderVid(c_auth_Application_Id_AVP_Code, 4, omit),
                aVP_Header := m_aVP_HeaderVid_Mbit1(c_auth_Application_Id_AVP_Code, 4, omit),
                aVP_Data := p_avpData
                aVP_Data := p_avpData
            }
            }
            
            
            template Auth_Application_Id_AVP mw_authApplicationId(UInt32 p_avpData) := {
            template Disconnect_Cause_AVP m_disconnectCause(Disconnect_Cause_Type p_aVP_Data) := {
            	aVP_Header := mw_aVP_Header(c_result_Code_AVP_Code),
                aVP_Header := m_aVP_HeaderVid_Mbit1(c_disconnect_Cause_AVP_Code, 4, omit ),
            	aVP_Data := p_avpData
                aVP_Data := p_aVP_Data
            }
            }
            
            
            template Host_IP_Address_AVP m_hostIPAddress(Address p_avpData) := {
            template Host_IP_Address_AVP m_hostIPAddress(Address p_avpData) := {
                aVP_Header := m_aVP_HeaderVid(c_host_IP_Address_AVP_Code, f_IPAdressLength(), omit),
                aVP_Header := m_aVP_HeaderVid_Mbit1(c_host_IP_Address_AVP_Code, f_IPAdressLength(), omit),
                aVP_Data := p_avpData
                aVP_Data := p_avpData
            }
            }
            
            
            template Origin_Host_AVP m_originHost(charstring p_avpData) := {
            template Origin_Host_AVP m_originHost(charstring p_avpData) := {
				aVP_Header := m_aVP_HeaderVid(c_origin_Host_AVP_Code, lengthof(p_avpData), omit),
                aVP_Header := m_aVP_HeaderVid_Mbit1(c_origin_Host_AVP_Code, lengthof(p_avpData), omit),
				aVP_Data := p_avpData
			}          
                    
            template Result_Code_AVP mw_resultCode(template (present)/*integer*/Result_Code_Type p_avpData) := {
            	aVP_Header := mw_aVP_Header(c_result_Code_AVP_Code),
            	aVP_Data := p_avpData
            }
                    
            template QoS_Information_AVP mw_qosInformation_QosInfo_ARP := {
                    aVP_Header := mw_aVP_Header(c_qoS_Information_AVP_Code), //<AVP header: 1016 ....>
                    qoS_Class_Identifier :=?,
                    max_Requested_Bandwidth_UL :=*,
                    max_Requested_Bandwidth_DL :=*,
                    guaranteed_Bitrate_UL :=*,
                    guaranteed_Bitrate_DL :=*,
                    bearer_Identifier :=*,
                    allocation_Retention_Priority :=?,
                    aPN_Aggregate_Max_Bitrate_UL :=*,
                    aPN_Aggregate_Max_Bitrate_DL :=*,
                    aVP_Type:=*
            }                        
        
            template Result_Code_AVP m_resultCode(template (value) /*integer*/Result_Code_Type p_avpData) := {
    			aVP_Header := m_aVP_HeaderVid(c_result_Code_AVP_Code, 4, omit),
                aVP_Data := p_avpData
                aVP_Data := p_avpData
            }
            }
            
            
            template Origin_Realm_AVP m_originRealm(template(value) charstring p_avpData) := 
            template Origin_Realm_AVP m_originRealm(template(value) charstring p_avpData) := 
            {
            {
				aVP_Header := m_aVP_HeaderVid(c_origin_Realm_AVP_Code, lengthof(p_avpData), omit),
                aVP_Header := m_aVP_HeaderVid_Mbit1(c_origin_Realm_AVP_Code, lengthof(p_avpData), omit),
                aVP_Data := p_avpData
                aVP_Data := p_avpData
            }
            }
            
            
            template Product_Name_AVP m_productName(template(value) universal charstring p_avpData) := {
            template Product_Name_AVP m_productName(template(value) universal charstring p_avpData) := {
                aVP_Header := m_aVP_HeaderVid_Mbit0(c_product_Name_AVP_Code, lengthof(p_avpData), omit),
                aVP_Header := m_aVP_HeaderVid_Mbit0(c_product_Name_AVP_Code, lengthof(p_avpData), c_vendId3gpp),
                aVP_Data := p_avpData
            }
            
            template Result_Code_AVP m_resultCode(template (value) /*integer*/Result_Code_Type p_avpData) := {
                aVP_Header := m_aVP_HeaderVid_Mbit1(c_result_Code_AVP_Code, 4, omit),
                aVP_Data := p_avpData
                aVP_Data := p_avpData
            }
            }
            
            
            template Vendor_Id_AVP m_supportedVendorId(template(value) UInt32 p_avpData) := {
            template Vendor_Id_AVP m_supportedVendorId(template(value) UInt32 p_avpData) := {
                aVP_Header := m_aVP_HeaderVid(c_supported_Vendor_Id_AVP_Code, 4, omit),
                aVP_Header := m_aVP_HeaderVid_Mbit1(c_supported_Vendor_Id_AVP_Code, 4, omit),
                aVP_Data := p_avpData
                aVP_Data := p_avpData
            }
            }
            
            
            template Vendor_Id_AVP m_vendorId(template(value) UInt32 p_avpData) := {
            template Vendor_Id_AVP m_vendorId(template(value) UInt32 p_avpData) := {
                aVP_Header := m_aVP_HeaderVid(c_vendor_Id_AVP_Code, 4, omit),
                aVP_Header := m_aVP_HeaderVid_Mbit1(c_vendor_Id_AVP_Code, 4, omit),
                aVP_Data := p_avpData
                aVP_Data := p_avpData
            }
            }
            
            
            template Vendor_Specific_Appl_Id_AVP m_vendor_Specific_Appl_Id(UInt32 p_authApplicationId) := {
            template Vendor_Specific_Appl_Id_AVP m_vendor_Specific_Appl_Id(UInt32 p_authApplicationId) := {
            	aVP_Header := m_aVP_HeaderVid(c_vendor_Specific_Appl_Id_AVP_Code, 24, omit),
                aVP_Header := m_aVP_HeaderVid_Mbit1(c_vendor_Specific_Appl_Id_AVP_Code, 24, omit),
                vendor_Id := {m_vendorId(c_vendId3gpp)},
                vendor_Id := {m_vendorId(c_vendId3gpp)},
                auth_Application_Id := {m_authApplicationId(p_authApplicationId)},
                auth_Application_Id := {m_authApplicationId(p_authApplicationId)},
                acct_Application_Id := omit
                acct_Application_Id := omit
            }
            }
            
            
            template Disconnect_Cause_AVP m_disconnectCause(Disconnect_Cause_Type p_aVP_Data) := {
            template Auth_Application_Id_AVP mw_authApplicationId(UInt32 p_avpData) := {
                aVP_Header := m_aVP_HeaderVid(c_disconnect_Cause_AVP_Code, 4, omit ),
                aVP_Header := mw_aVP_Header(c_result_Code_AVP_Code),
                aVP_Data := p_aVP_Data
                aVP_Data := p_avpData
            }
            
            template QoS_Information_AVP mw_qosInformation_QosInfo_ARP := {
                    aVP_Header := mw_aVP_Header(c_qoS_Information_AVP_Code), //<AVP header: 1016 ....>
                    qoS_Class_Identifier :=?,
                    max_Requested_Bandwidth_UL :=*,
                    max_Requested_Bandwidth_DL :=*,
                    guaranteed_Bitrate_UL :=*,
                    guaranteed_Bitrate_DL :=*,
                    bearer_Identifier :=*,
                    allocation_Retention_Priority :=?,
                    aPN_Aggregate_Max_Bitrate_UL :=*,
                    aPN_Aggregate_Max_Bitrate_DL :=*,
                    aVP_Type:=*
            }
            
            template Result_Code_AVP mw_resultCode(template (present)/*integer*/Result_Code_Type p_avpData) := {
                aVP_Header := mw_aVP_Header(c_result_Code_AVP_Code),
                aVP_Data := p_avpData
            }
            }


        } //end group SpecificAVPHeaders
        } //end group SpecificAVPHeaders
@@ -594,50 +623,7 @@ module LibDiameter_Templates {
    
    
    /** Message templates for CER,CEA, DWR, DWA, AAA, AAR, .... methods  */
    /** Message templates for CER,CEA, DWR, DWA, AAA, AAR, .... methods  */
    group MessageTemplates {
    group MessageTemplates {
//      group templates_used_for_default_step {

//            template DIAMETER_MSG mw_diameter_cer(template (present) CER_MSG p_cer) :={
//                cER_MSG := p_cer
//            }
//            template DIAMETER_MSG mw_diameter_cea(template (present) CEA_MSG p_cea) :={
//                cEA_MSG := p_cea
//            }
//            template DIAMETER_MSG mw_diameter_dwr(template (present) DWR_MSG p_dwr) :={
//                dWR_MSG := p_dwr
//            }
//            template DIAMETER_MSG mw_diameter_dwa(template (present) DWA_MSG p_dwa) :={
//                dWA_MSG := p_dwa
//            }
//            template DIAMETER_MSG mw_diameter_dpr(template (present) DPR_MSG p_dpr) :={
//                dPR_MSG := p_dpr
//            }
//            template DIAMETER_MSG mw_diameter_dpa(template (present) DPA_MSG p_dpa) :={
//                dPA_MSG := p_dpa
//            }
//            template DIAMETER_MSG mw_diameter_aar(template (present) AAR_MSG p_aar) :={
//                aAR_MSG := p_aar
//            }
//            template DIAMETER_MSG mw_diameter_aaa(template (present) AAA_MSG p_aaa) :={
//                aAA_MSG := p_aaa
//            }
//            template DIAMETER_MSG mw_diameter_str(template (present) STR_MSG p_str) :={
//                sTR_MSG := p_str
//            }
//            template DIAMETER_MSG mw_diameter_sta(template (present) STA_MSG p_sta) :={
//                sTA_MSG := p_sta
//            }
//            template DIAMETER_MSG mw_diameter_asr(template (present) ASR_MSG p_asr) :={
//                aSR_MSG := p_asr
//            }
//            template DIAMETER_MSG mw_diameter_asa(template (present) ASA_MSG p_asa) :={
//                aSA_MSG := p_asa
//            }
//            template DIAMETER_MSG mw_diameter_rar(template (present) RAR_MSG p_rar) :={
//                rAR_MSG := p_rar
//            }
//            template DIAMETER_MSG mw_diameter_raa(template (present) RAA_MSG p_raa) :={
//                rAA_MSG := p_raa
//            }
//      }
      group dummy_templates {
      group dummy_templates {
          
          
          template UNKNOWN_MSG mw_UNKNOWN_dummy := {
          template UNKNOWN_MSG mw_UNKNOWN_dummy := {