Loading ttcn/LibDiameter_Templates.ttcn +1570 −1584 Original line number Diff line number Diff line Loading @@ -222,13 +222,27 @@ module LibDiameter_Templates { endid := ? } template AVP_Flags m_avpFlags := { template AVP_Flags m_avpFlags_Mbit1 := { v_bit := '0'B, m_bit := '1'B, p_bit := '0'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 := { v_bit := ?, m_bit := ?, Loading @@ -250,13 +264,19 @@ module LibDiameter_Templates { 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_flags := m_avpFlags, aVP_flags := m_avpFlags_Mbit1, aVP_len := 8 + p_dataLen, 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 Loading @@ -274,7 +294,6 @@ module LibDiameter_Templates { aVP_vid := p_avpVid } /** * @desc complete AVP header field template * @param p_avpCode specific Code of the AVP parameter Loading @@ -291,6 +310,22 @@ module LibDiameter_Templates { 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 { var AVP_Length v_sum; v_sum := p_length8 + p_avpDataLen + f_lengthVid(p_avpVid); Loading @@ -309,93 +344,87 @@ module LibDiameter_Templates { if(isvalue(p_avpVid)){return '1'B} else{return '0'B} } } //end group DiameterHeaderGroup 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 := { 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" } 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" } 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 } 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" } 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 } 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 } 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" } 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" } 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 } 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" } 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 } 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 } 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 } 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 } 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 := { scheme := "aaa", diameterId_FQDN := "www.etsi.org", Loading @@ -406,104 +435,104 @@ module LibDiameter_Templates { } 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" } 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 } 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 } 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 } 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 := { 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" }, 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_Type := omit } 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_Credit_Control_Server_URI := omit, aVP_Type := omit } 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" } 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_Info_AVP := omit, aVP_Type := omit } 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 } 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" } 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, mSISDN_AVP := omit, aVP_Type := omit } 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 } 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 } 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 } 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 } 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, auth_Application_Id := omit, acct_Application_Id := omit } 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 } Loading @@ -513,80 +542,80 @@ module LibDiameter_Templates { 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 } template Auth_Application_Id_AVP mw_authApplicationId(UInt32 p_avpData) := { aVP_Header := mw_aVP_Header(c_result_Code_AVP_Code), aVP_Data := p_avpData template Disconnect_Cause_AVP m_disconnectCause(Disconnect_Cause_Type p_aVP_Data) := { aVP_Header := m_aVP_HeaderVid_Mbit1(c_disconnect_Cause_AVP_Code, 4, omit ), aVP_Data := p_aVP_Data } 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 } template Origin_Host_AVP m_originHost(charstring p_avpData) := { aVP_Header := m_aVP_HeaderVid(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_Header := m_aVP_HeaderVid_Mbit1(c_origin_Host_AVP_Code, lengthof(p_avpData), omit), aVP_Data := 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 } 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 } 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 } 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 } 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)}, auth_Application_Id := {m_authApplicationId(p_authApplicationId)}, acct_Application_Id := omit } template Disconnect_Cause_AVP m_disconnectCause(Disconnect_Cause_Type p_aVP_Data) := { aVP_Header := m_aVP_HeaderVid(c_disconnect_Cause_AVP_Code, 4, omit ), aVP_Data := p_aVP_Data template Auth_Application_Id_AVP mw_authApplicationId(UInt32 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 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 Loading @@ -594,50 +623,7 @@ module LibDiameter_Templates { /** Message templates for CER,CEA, DWR, DWA, AAA, AAR, .... methods */ 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 { template UNKNOWN_MSG mw_UNKNOWN_dummy := { Loading Loading
ttcn/LibDiameter_Templates.ttcn +1570 −1584 Original line number Diff line number Diff line Loading @@ -222,13 +222,27 @@ module LibDiameter_Templates { endid := ? } template AVP_Flags m_avpFlags := { template AVP_Flags m_avpFlags_Mbit1 := { v_bit := '0'B, m_bit := '1'B, p_bit := '0'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 := { v_bit := ?, m_bit := ?, Loading @@ -250,13 +264,19 @@ module LibDiameter_Templates { 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_flags := m_avpFlags, aVP_flags := m_avpFlags_Mbit1, aVP_len := 8 + p_dataLen, 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 Loading @@ -274,7 +294,6 @@ module LibDiameter_Templates { aVP_vid := p_avpVid } /** * @desc complete AVP header field template * @param p_avpCode specific Code of the AVP parameter Loading @@ -291,6 +310,22 @@ module LibDiameter_Templates { 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 { var AVP_Length v_sum; v_sum := p_length8 + p_avpDataLen + f_lengthVid(p_avpVid); Loading @@ -309,93 +344,87 @@ module LibDiameter_Templates { if(isvalue(p_avpVid)){return '1'B} else{return '0'B} } } //end group DiameterHeaderGroup 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 := { 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" } 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" } 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 } 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" } 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 } 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 } 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" } 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" } 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 } 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" } 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 } 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 } 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 } 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 } 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 := { scheme := "aaa", diameterId_FQDN := "www.etsi.org", Loading @@ -406,104 +435,104 @@ module LibDiameter_Templates { } 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" } 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 } 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 } 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 } 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 := { 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" }, 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_Type := omit } 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_Credit_Control_Server_URI := omit, aVP_Type := omit } 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" } 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_Info_AVP := omit, aVP_Type := omit } 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 } 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" } 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, mSISDN_AVP := omit, aVP_Type := omit } 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 } 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 } 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 } 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 } 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, auth_Application_Id := omit, acct_Application_Id := omit } 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 } Loading @@ -513,80 +542,80 @@ module LibDiameter_Templates { 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 } template Auth_Application_Id_AVP mw_authApplicationId(UInt32 p_avpData) := { aVP_Header := mw_aVP_Header(c_result_Code_AVP_Code), aVP_Data := p_avpData template Disconnect_Cause_AVP m_disconnectCause(Disconnect_Cause_Type p_aVP_Data) := { aVP_Header := m_aVP_HeaderVid_Mbit1(c_disconnect_Cause_AVP_Code, 4, omit ), aVP_Data := p_aVP_Data } 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 } template Origin_Host_AVP m_originHost(charstring p_avpData) := { aVP_Header := m_aVP_HeaderVid(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_Header := m_aVP_HeaderVid_Mbit1(c_origin_Host_AVP_Code, lengthof(p_avpData), omit), aVP_Data := 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 } 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 } 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 } 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 } 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)}, auth_Application_Id := {m_authApplicationId(p_authApplicationId)}, acct_Application_Id := omit } template Disconnect_Cause_AVP m_disconnectCause(Disconnect_Cause_Type p_aVP_Data) := { aVP_Header := m_aVP_HeaderVid(c_disconnect_Cause_AVP_Code, 4, omit ), aVP_Data := p_aVP_Data template Auth_Application_Id_AVP mw_authApplicationId(UInt32 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 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 Loading @@ -594,50 +623,7 @@ module LibDiameter_Templates { /** Message templates for CER,CEA, DWR, DWA, AAA, AAR, .... methods */ 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 { template UNKNOWN_MSG mw_UNKNOWN_dummy := { Loading