Loading ttcn/LibDiameter_Templates.ttcn +61 −24 Original line number Diff line number Diff line Loading @@ -156,7 +156,7 @@ module LibDiameter_Templates { template Result_Code_Type/*integer*/ m_resultCode_diameterSuccess := DIAMETER_SUCCESS_E/*2001*/; template Result_Code_Type/*integer*/ mw_resultCode_diameterSuccess := (DIAMETER_SUCCESS_E,DIAMETER_LIMITED_SUCCESS_E/*2000..2999*/); template AVP_Type mw_avpType(template AVP_Header p_avpHeader) := { template AVP_Type mw_avpType(template (value) AVP_Header p_avpHeader) := { aVP_Header := p_avpHeader, aVP_Data := * } Loading Loading @@ -271,7 +271,7 @@ module LibDiameter_Templates { aVP_vid := * } template AVP_Header mw_aVP_Header_any_Code (template AVP_Code p_avpCode):= { template AVP_Header mw_aVP_Header_any_Code (template (value) AVP_Code p_avpCode):= { aVP_Code := p_avpCode, aVP_flags := mw_avpFlags_any, aVP_len := ?, Loading Loading @@ -309,14 +309,14 @@ module LibDiameter_Templates { template (value) AVP_Header m_aVP_Header_Mbit1(AVP_Code p_avpCode, AVP_Length p_dataLen:=0) := { aVP_Code := p_avpCode, aVP_flags := m_avpFlags_Mbit1, aVP_len := 8 + p_dataLen, aVP_len := f_aVP_len(8, p_dataLen, omit), aVP_vid := omit } template (value) 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_len := f_aVP_len(8, p_dataLen, omit), aVP_vid := omit } Loading @@ -326,7 +326,7 @@ module LibDiameter_Templates { * @param p_avpDataLen additional length caused if AVP data field is present * @param p_avpVid vendor id if needed */ template (value) AVP_Header m_aVP_HeaderVid_Mbit0(AVP_Code p_avpCode, AVP_Length p_avpDataLen, template AVP_Vendor_ID p_avpVid) := { template (value) AVP_Header m_aVP_HeaderVid_Mbit0(AVP_Code p_avpCode, AVP_Length p_avpDataLen, template (omit) AVP_Vendor_ID p_avpVid) := { aVP_Code := p_avpCode, aVP_flags := {v_bit := f_aVPvBit(p_avpVid), m_bit := '0'B, Loading @@ -342,7 +342,7 @@ module LibDiameter_Templates { * @param p_avpDataLen additional length caused if AVP data field is present * @param p_avpVid vendor id if needed */ template (value) AVP_Header m_aVP_HeaderVid_Mbit1(AVP_Code p_avpCode, AVP_Length p_avpDataLen, template AVP_Vendor_ID p_avpVid) := { template (value) AVP_Header m_aVP_HeaderVid_Mbit1(AVP_Code p_avpCode, AVP_Length p_avpDataLen, template (omit) AVP_Vendor_ID p_avpVid) := { aVP_Code := p_avpCode, aVP_flags := {v_bit := f_aVPvBit(p_avpVid), m_bit := '1'B, Loading @@ -360,10 +360,13 @@ module LibDiameter_Templates { */ template (present) AVP_Header mw_aVP_HeaderVid_Mbit1( in AVP_Code p_avpCode, in template (present) AVP_Length p_avpDataLen, in template (present) AVP_Length p_avpDataLen := ?, in template (present) AVP_Vendor_ID p_avpVid) := { aVP_Code := p_avpCode, aVP_flags := ?, aVP_flags := {v_bit := f_aVPvBit(p_avpVid), m_bit := '1'B, p_bit := ?, reserved_bits := '00000'B}, aVP_len := p_avpDataLen, aVP_vid := p_avpVid } Loading @@ -376,7 +379,7 @@ module LibDiameter_Templates { function f_lengthof_AVP(AVP_Header p_header) return AVP_Length { var AVP_Length v_sum; v_sum := 8 + p_header.aVP_len + f_lengthVid(p_header.aVP_vid); v_sum := f_aVP_len (8, p_header.aVP_len, p_header.aVP_vid); return v_sum } Loading Loading @@ -615,7 +618,7 @@ module LibDiameter_Templates { template Session_Id_AVP m_sessionId(UTF8String p_avpData) := { aVP_Header := m_aVP_HeaderVid_Mbit1(c_session_Id_AVP_Code, lengthof(p_avpData), omit), aVP_Header := m_aVP_HeaderVid_Mbit1(c_session_Id_AVP_Code, f_getUTF8StringLength(p_avpData), omit), aVP_Data := p_avpData } Loading @@ -636,31 +639,31 @@ module LibDiameter_Templates { } template Origin_Host_AVP m_originHost(template(value) charstring p_avpData) := { aVP_Header := m_aVP_HeaderVid_Mbit1(c_origin_Host_AVP_Code, lengthof(p_avpData), omit), aVP_Header := m_aVP_HeaderVid_Mbit1(c_origin_Host_AVP_Code, f_getCharStringLength(p_avpData), omit), aVP_Data := p_avpData } template Origin_Realm_AVP m_originRealm(template(value) charstring p_avpData) := { aVP_Header := m_aVP_HeaderVid_Mbit1(c_origin_Realm_AVP_Code, lengthof(p_avpData), omit), aVP_Header := m_aVP_HeaderVid_Mbit1(c_origin_Realm_AVP_Code, f_getCharStringLength(p_avpData), omit), aVP_Data := p_avpData } template Destination_Host_AVP m_destinationHost(template(value) charstring p_avpData) := { aVP_Header := m_aVP_HeaderVid_Mbit1(c_destination_Host_AVP_Code, lengthof(p_avpData), omit), aVP_Header := m_aVP_HeaderVid_Mbit1(c_destination_Host_AVP_Code, f_getCharStringLength(p_avpData), omit), aVP_Data := p_avpData } template Destination_Realm_AVP m_destinationRealm(template(value) charstring p_avpData) := { aVP_Header := m_aVP_HeaderVid_Mbit1(c_destination_Realm_AVP_Code, lengthof(p_avpData), omit), aVP_Header := m_aVP_HeaderVid_Mbit1(c_destination_Realm_AVP_Code, f_getCharStringLength(p_avpData), omit), aVP_Data := p_avpData } template Product_Name_AVP m_productName(template(value) universal charstring p_avpData) := template Product_Name_AVP m_productName(template(value) UTF8String 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, f_getUTF8StringLength(p_avpData), omit), aVP_Data := p_avpData } Loading Loading @@ -727,7 +730,7 @@ module LibDiameter_Templates { template Supported_Features_AVP m_supportedFeatures ( template Vendor_Id_AVP p_vendorId, template Feature_List_ID_AVP p_feature_list_Id, template Feature_List_AVP p_feature_list, template (value) Feature_List_AVP p_feature_list, template Supported_Features_AVP.aVP_Data p_aVP_Data ):= { aVP_Header := m_aVP_HeaderVid_Mbit1(c_supported_Features_AVP_Code, 1, c_vendId3gpp), Loading @@ -749,7 +752,7 @@ module LibDiameter_Templates { aVP_Data := p_avpData } template Failed_AVP mw_failed(template Failed_AVP.aVP p_avpData) := { template Failed_AVP mw_failed(template (value) Failed_AVP.aVP p_avpData) := { aVP_Header := mw_aVP_Header_Vbit0Mbit1(c_failed_AVP_Code), aVP := p_avpData } Loading Loading @@ -779,7 +782,7 @@ module LibDiameter_Templates { } template User_Name_AVP m_userName(template (value) UTF8String p_avpData) := { aVP_Header := m_aVP_HeaderVid_Mbit1(c_user_Name_AVP_Code, lengthof(p_avpData), omit), aVP_Header := m_aVP_HeaderVid_Mbit1(c_user_Name_AVP_Code, f_getUTF8StringLength(p_avpData), omit), aVP_Data := p_avpData } template User_Name_AVP mw_userName(template (present) UTF8String p_avpData) := { Loading Loading @@ -2940,9 +2943,9 @@ module LibDiameter_Templates { } template (value) RAA_MSG m_RAA_basic( template Session_Id_AVP p_sessionId, template Origin_Host_AVP p_originHost, template Origin_Realm_AVP p_originRealm) template (value)Session_Id_AVP p_sessionId, template (value)Origin_Host_AVP p_originHost, template (value)Origin_Realm_AVP p_originRealm) modifies m_RAA_dummy := { session_Id := p_sessionId, rAA_Body := { Loading Loading @@ -3025,4 +3028,38 @@ module LibDiameter_Templates { }//end group FunctionsForTemplates /** Type convertion functions to reduce warnings due to type mismaches */ group functionsForTemplates { /** @desc Calculates the Diameter-Identity length in bytes */ function f_getDiameterIdentityAvpLength(in Diameter_Identity p_avpData) return AVP_Length { return lengthof(p_avpData); } // End of function f_getDiameterIdentityAvpLength /** @desc Calculates the UTF8String AVP data length */ function f_getUTF8StringLength(in UTF8String p_avpData) return AVP_Length { return lengthof(p_avpData); } // End of function f_getUTF8StringLength /** @desc Calculates the charstring AVP data length */ function f_getCharStringLength(in charstring p_avpData) return AVP_Length { return lengthof(p_avpData); } // End of function f_getCharStringLength /** @desc Calculates the octetstring AVP data length */ function f_getOctetStringLength(in octetstring p_octetstring) return AVP_Length { return lengthof(p_octetstring); } // End of function f_getOctetStringLength /** @desc Calculates the encoded playload length */ function f_getEncvalueLength(in bitstring p_bitstring) return AVP_Length { return lengthof(p_bitstring) / 8; } // End of function f_getEncvalueLength } // End of group FunctionsForTemplates }//end module LibDiameter_Templates No newline at end of file Loading
ttcn/LibDiameter_Templates.ttcn +61 −24 Original line number Diff line number Diff line Loading @@ -156,7 +156,7 @@ module LibDiameter_Templates { template Result_Code_Type/*integer*/ m_resultCode_diameterSuccess := DIAMETER_SUCCESS_E/*2001*/; template Result_Code_Type/*integer*/ mw_resultCode_diameterSuccess := (DIAMETER_SUCCESS_E,DIAMETER_LIMITED_SUCCESS_E/*2000..2999*/); template AVP_Type mw_avpType(template AVP_Header p_avpHeader) := { template AVP_Type mw_avpType(template (value) AVP_Header p_avpHeader) := { aVP_Header := p_avpHeader, aVP_Data := * } Loading Loading @@ -271,7 +271,7 @@ module LibDiameter_Templates { aVP_vid := * } template AVP_Header mw_aVP_Header_any_Code (template AVP_Code p_avpCode):= { template AVP_Header mw_aVP_Header_any_Code (template (value) AVP_Code p_avpCode):= { aVP_Code := p_avpCode, aVP_flags := mw_avpFlags_any, aVP_len := ?, Loading Loading @@ -309,14 +309,14 @@ module LibDiameter_Templates { template (value) AVP_Header m_aVP_Header_Mbit1(AVP_Code p_avpCode, AVP_Length p_dataLen:=0) := { aVP_Code := p_avpCode, aVP_flags := m_avpFlags_Mbit1, aVP_len := 8 + p_dataLen, aVP_len := f_aVP_len(8, p_dataLen, omit), aVP_vid := omit } template (value) 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_len := f_aVP_len(8, p_dataLen, omit), aVP_vid := omit } Loading @@ -326,7 +326,7 @@ module LibDiameter_Templates { * @param p_avpDataLen additional length caused if AVP data field is present * @param p_avpVid vendor id if needed */ template (value) AVP_Header m_aVP_HeaderVid_Mbit0(AVP_Code p_avpCode, AVP_Length p_avpDataLen, template AVP_Vendor_ID p_avpVid) := { template (value) AVP_Header m_aVP_HeaderVid_Mbit0(AVP_Code p_avpCode, AVP_Length p_avpDataLen, template (omit) AVP_Vendor_ID p_avpVid) := { aVP_Code := p_avpCode, aVP_flags := {v_bit := f_aVPvBit(p_avpVid), m_bit := '0'B, Loading @@ -342,7 +342,7 @@ module LibDiameter_Templates { * @param p_avpDataLen additional length caused if AVP data field is present * @param p_avpVid vendor id if needed */ template (value) AVP_Header m_aVP_HeaderVid_Mbit1(AVP_Code p_avpCode, AVP_Length p_avpDataLen, template AVP_Vendor_ID p_avpVid) := { template (value) AVP_Header m_aVP_HeaderVid_Mbit1(AVP_Code p_avpCode, AVP_Length p_avpDataLen, template (omit) AVP_Vendor_ID p_avpVid) := { aVP_Code := p_avpCode, aVP_flags := {v_bit := f_aVPvBit(p_avpVid), m_bit := '1'B, Loading @@ -360,10 +360,13 @@ module LibDiameter_Templates { */ template (present) AVP_Header mw_aVP_HeaderVid_Mbit1( in AVP_Code p_avpCode, in template (present) AVP_Length p_avpDataLen, in template (present) AVP_Length p_avpDataLen := ?, in template (present) AVP_Vendor_ID p_avpVid) := { aVP_Code := p_avpCode, aVP_flags := ?, aVP_flags := {v_bit := f_aVPvBit(p_avpVid), m_bit := '1'B, p_bit := ?, reserved_bits := '00000'B}, aVP_len := p_avpDataLen, aVP_vid := p_avpVid } Loading @@ -376,7 +379,7 @@ module LibDiameter_Templates { function f_lengthof_AVP(AVP_Header p_header) return AVP_Length { var AVP_Length v_sum; v_sum := 8 + p_header.aVP_len + f_lengthVid(p_header.aVP_vid); v_sum := f_aVP_len (8, p_header.aVP_len, p_header.aVP_vid); return v_sum } Loading Loading @@ -615,7 +618,7 @@ module LibDiameter_Templates { template Session_Id_AVP m_sessionId(UTF8String p_avpData) := { aVP_Header := m_aVP_HeaderVid_Mbit1(c_session_Id_AVP_Code, lengthof(p_avpData), omit), aVP_Header := m_aVP_HeaderVid_Mbit1(c_session_Id_AVP_Code, f_getUTF8StringLength(p_avpData), omit), aVP_Data := p_avpData } Loading @@ -636,31 +639,31 @@ module LibDiameter_Templates { } template Origin_Host_AVP m_originHost(template(value) charstring p_avpData) := { aVP_Header := m_aVP_HeaderVid_Mbit1(c_origin_Host_AVP_Code, lengthof(p_avpData), omit), aVP_Header := m_aVP_HeaderVid_Mbit1(c_origin_Host_AVP_Code, f_getCharStringLength(p_avpData), omit), aVP_Data := p_avpData } template Origin_Realm_AVP m_originRealm(template(value) charstring p_avpData) := { aVP_Header := m_aVP_HeaderVid_Mbit1(c_origin_Realm_AVP_Code, lengthof(p_avpData), omit), aVP_Header := m_aVP_HeaderVid_Mbit1(c_origin_Realm_AVP_Code, f_getCharStringLength(p_avpData), omit), aVP_Data := p_avpData } template Destination_Host_AVP m_destinationHost(template(value) charstring p_avpData) := { aVP_Header := m_aVP_HeaderVid_Mbit1(c_destination_Host_AVP_Code, lengthof(p_avpData), omit), aVP_Header := m_aVP_HeaderVid_Mbit1(c_destination_Host_AVP_Code, f_getCharStringLength(p_avpData), omit), aVP_Data := p_avpData } template Destination_Realm_AVP m_destinationRealm(template(value) charstring p_avpData) := { aVP_Header := m_aVP_HeaderVid_Mbit1(c_destination_Realm_AVP_Code, lengthof(p_avpData), omit), aVP_Header := m_aVP_HeaderVid_Mbit1(c_destination_Realm_AVP_Code, f_getCharStringLength(p_avpData), omit), aVP_Data := p_avpData } template Product_Name_AVP m_productName(template(value) universal charstring p_avpData) := template Product_Name_AVP m_productName(template(value) UTF8String 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, f_getUTF8StringLength(p_avpData), omit), aVP_Data := p_avpData } Loading Loading @@ -727,7 +730,7 @@ module LibDiameter_Templates { template Supported_Features_AVP m_supportedFeatures ( template Vendor_Id_AVP p_vendorId, template Feature_List_ID_AVP p_feature_list_Id, template Feature_List_AVP p_feature_list, template (value) Feature_List_AVP p_feature_list, template Supported_Features_AVP.aVP_Data p_aVP_Data ):= { aVP_Header := m_aVP_HeaderVid_Mbit1(c_supported_Features_AVP_Code, 1, c_vendId3gpp), Loading @@ -749,7 +752,7 @@ module LibDiameter_Templates { aVP_Data := p_avpData } template Failed_AVP mw_failed(template Failed_AVP.aVP p_avpData) := { template Failed_AVP mw_failed(template (value) Failed_AVP.aVP p_avpData) := { aVP_Header := mw_aVP_Header_Vbit0Mbit1(c_failed_AVP_Code), aVP := p_avpData } Loading Loading @@ -779,7 +782,7 @@ module LibDiameter_Templates { } template User_Name_AVP m_userName(template (value) UTF8String p_avpData) := { aVP_Header := m_aVP_HeaderVid_Mbit1(c_user_Name_AVP_Code, lengthof(p_avpData), omit), aVP_Header := m_aVP_HeaderVid_Mbit1(c_user_Name_AVP_Code, f_getUTF8StringLength(p_avpData), omit), aVP_Data := p_avpData } template User_Name_AVP mw_userName(template (present) UTF8String p_avpData) := { Loading Loading @@ -2940,9 +2943,9 @@ module LibDiameter_Templates { } template (value) RAA_MSG m_RAA_basic( template Session_Id_AVP p_sessionId, template Origin_Host_AVP p_originHost, template Origin_Realm_AVP p_originRealm) template (value)Session_Id_AVP p_sessionId, template (value)Origin_Host_AVP p_originHost, template (value)Origin_Realm_AVP p_originRealm) modifies m_RAA_dummy := { session_Id := p_sessionId, rAA_Body := { Loading Loading @@ -3025,4 +3028,38 @@ module LibDiameter_Templates { }//end group FunctionsForTemplates /** Type convertion functions to reduce warnings due to type mismaches */ group functionsForTemplates { /** @desc Calculates the Diameter-Identity length in bytes */ function f_getDiameterIdentityAvpLength(in Diameter_Identity p_avpData) return AVP_Length { return lengthof(p_avpData); } // End of function f_getDiameterIdentityAvpLength /** @desc Calculates the UTF8String AVP data length */ function f_getUTF8StringLength(in UTF8String p_avpData) return AVP_Length { return lengthof(p_avpData); } // End of function f_getUTF8StringLength /** @desc Calculates the charstring AVP data length */ function f_getCharStringLength(in charstring p_avpData) return AVP_Length { return lengthof(p_avpData); } // End of function f_getCharStringLength /** @desc Calculates the octetstring AVP data length */ function f_getOctetStringLength(in octetstring p_octetstring) return AVP_Length { return lengthof(p_octetstring); } // End of function f_getOctetStringLength /** @desc Calculates the encoded playload length */ function f_getEncvalueLength(in bitstring p_bitstring) return AVP_Length { return lengthof(p_bitstring) / 8; } // End of function f_getEncvalueLength } // End of group FunctionsForTemplates }//end module LibDiameter_Templates No newline at end of file