Commit 6baa53f4 authored by garciay's avatar garciay
Browse files

STF500: Week #50

parent 42e5267e
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -83,7 +83,7 @@ module LibDiameter_Interface


      //general timers
      //general timers
      timer tc_wait  := PX_DIAMETER_TWAIT;
      timer tc_wait  := PX_DIAMETER_TWAIT;
      timer tc_delay := 1.0;  // delay next Request
      timer tc_delay := 0.3;  // delay next Request


      // variables for storing default references
      // variables for storing default references
	  var default 	vc_default_diameter;
	  var default 	vc_default_diameter;
+79 −35
Original line number Original line Diff line number Diff line
@@ -499,14 +499,17 @@ module LibDiameter_Templates {


            template SIP_AOR_AVP m_sIP_AOR_dummy := {
            template SIP_AOR_AVP m_sIP_AOR_dummy := {
              aVP_Header := m_aVP_HeaderVid_Mbit1(c_sIP_AOR_AVP_Code, 18, omit),
              aVP_Header := m_aVP_HeaderVid_Mbit1(c_sIP_AOR_AVP_Code, 18, omit),
              aVP_Data := {
              aVP_Data := f_DiameterURI_2_UTF8String(m_diameterURI_dummy)
            }
            
            template (value) DiameterURI m_diameterURI_dummy := 
            {
                scheme := "aaa",
                scheme := "aaa",
                diameterId_FQDN := "www.etsi.org",
                diameterId_FQDN := "www.etsi.org",
                portField := omit,
                portField := omit,
                transport := omit,
                transport := omit,
                protocol := omit
                protocol := omit
            }
            }
            }


            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_HeaderVid_Mbit1(c_sIP_Visited_Network_Id_AVP_Code, 6, omit),
                aVP_Header := m_aVP_HeaderVid_Mbit1(c_sIP_Visited_Network_Id_AVP_Code, 6, omit),
@@ -874,34 +877,44 @@ module LibDiameter_Templates {
                // TODO How to pass RAND + AUX
                // TODO How to pass RAND + AUX
            }
            }
            
            
            template Digest_Username_AVP m_digestUsername(template (value) UTF8String p_text) := {
            template Digest_Username_AVP m_digestUsername(template (value) UTF8String p_avpData) := {
                Type := c_digest_Username_AVP_Code,
                aVP_Header := m_aVP_Header_Mbit1(c_digest_Username_AVP_Code, f_getUTF8StringLength(valueof(p_avpData))),
                Length := f_getUTF8StringLength(valueof(p_text)),
                aVP_Data := p_avpData
                Text := p_text
//                Type := c_digest_Username_AVP_Code,
//                Length := f_getUTF8StringLength(valueof(p_text)),
//                Text := p_text
            }
            }
            
            
            template Digest_Realm_AVP m_digestRealm(template (value) UTF8String p_text) := {
            template Digest_Realm_AVP m_digestRealm(template (value) UTF8String p_avpData) := {
                Type := c_digest_Realm_AVP_Code,
                aVP_Header := m_aVP_Header_Mbit1(c_digest_Realm_AVP_Code, f_getUTF8StringLength(valueof(p_avpData))),
                Length := f_getUTF8StringLength(valueof(p_text)),
                aVP_Data := p_avpData
                Text := p_text
//                Type := c_digest_Realm_AVP_Code,
//                Length := f_getUTF8StringLength(valueof(p_text)),
//                Text := p_text
            }
            }
            
            
            template Digest_Nonce_AVP m_digestNonce(template (value) UTF8String p_text) := {
            template Digest_Nonce_AVP m_digestNonce(template (value) UTF8String p_avpData) := {
                Type := c_digest_Realm_AVP_Code,
                aVP_Header := m_aVP_Header_Mbit1(c_digest_Realm_AVP_Code, f_getUTF8StringLength(valueof(p_avpData))),
                Length := f_getUTF8StringLength(valueof(p_text)),
                aVP_Data := p_avpData
                Text := p_text
//                Type := c_digest_Realm_AVP_Code,
//                Length := f_getUTF8StringLength(valueof(p_text)),
//                Text := p_text
            }
            }
            
            
            template Digest_URI_AVP m_digestUri(template (value) UTF8String p_text) := {
            template Digest_URI_AVP m_digestUri(template (value) UTF8String p_avpData) := {
                Type := c_digest_URI_AVP_Code,
                aVP_Header := m_aVP_Header_Mbit1(c_digest_URI_AVP_Code, f_getUTF8StringLength(valueof(p_avpData))),
                Length := f_getUTF8StringLength(valueof(p_text)),
                aVP_Data := p_avpData
                Text := p_text
//                Type := c_digest_URI_AVP_Code,
//                Length := f_getUTF8StringLength(valueof(p_text)),
//                Text := p_text
            }
            }
            
            
            template Digest_Response_AVP m_digestResponse(template (value) UTF8String p_text) := {
            template Digest_Response_AVP m_digestResponse(template (value) UTF8String p_avpData) := {
                Type := c_digest_Response_AVP_Code,
                aVP_Header := m_aVP_Header_Mbit1(c_digest_Response_AVP_Code, f_getUTF8StringLength(valueof(p_avpData))),
                Length := f_getUTF8StringLength(valueof(p_text)),
                aVP_Data := p_avpData
                Text := p_text
//                Type := c_digest_Response_AVP_Code,
//                Length := f_getUTF8StringLength(valueof(p_text)),
//                Text := p_text
            }
            }
            
            
            template User_Name_AVP mw_userName(template (present) UTF8String p_avpData) := {
            template User_Name_AVP mw_userName(template (present) UTF8String p_avpData) := {
@@ -3128,12 +3141,12 @@ module LibDiameter_Templates {
        group modified_request_templates_receive {
        group modified_request_templates_receive {
            
            
            template User_Data_AVP mw_user_Data_dummy := {
            template User_Data_AVP mw_user_Data_dummy := {
                aVP_Header := mw_aVP_HeaderVid_Mbit1(c_user_Data_AVP_Code, ?, c_vendId3gpp),
                aVP_Header := mw_aVP_Header_Vbit0Mbit1(c_user_Data_AVP_Code),
                aVP_Data := ?
                aVP_Data := ?
            }
            }
            
            
            template SIP_Auth_Data_Item_RFC_AVP mw_sIPAuthDataItem_dummy_RFC := {
            template SIP_Auth_Data_Item_RFC_AVP mw_sIPAuthDataItem_dummy_RFC := {
                aVP_Header := mw_aVP_HeaderVid_Mbit1(c_sIP_Auth_Data_Item_AVP_Code_RFC, ?, c_vendId3gpp),
                aVP_Header := mw_aVP_Header_Vbit0Mbit1(c_sIP_Auth_Data_Item_AVP_Code_RFC),
                sIP_Authentication_Scheme := mw_sIPAuthenticationScheme_digest_RFC,
                sIP_Authentication_Scheme := mw_sIPAuthenticationScheme_digest_RFC,
                sIP_Item_Number := omit,
                sIP_Item_Number := omit,
                sIP_Authenticate := omit,
                sIP_Authenticate := omit,
@@ -3148,7 +3161,7 @@ module LibDiameter_Templates {
                                                                                                     template (present) SIP_Authenticate_AVP            p_sIP_Authenticate := ?,
                                                                                                     template (present) SIP_Authenticate_AVP            p_sIP_Authenticate := ?,
                                                                                                     template SIP_Authorization_AVP                     p_sIP_Authorization := omit
                                                                                                     template SIP_Authorization_AVP                     p_sIP_Authorization := omit
            ) modifies mw_sIPAuthDataItem_dummy_RFC := {
            ) modifies mw_sIPAuthDataItem_dummy_RFC := {
                aVP_Header := mw_aVP_HeaderVid_Mbit1(c_sIP_Auth_Data_Item_AVP_Code_RFC, ?, c_vendId3gpp),
                aVP_Header := mw_aVP_Header_Vbit0Mbit1(c_sIP_Auth_Data_Item_AVP_Code_RFC),
                sIP_Authentication_Scheme   := p_sIP_Authentication_Scheme,
                sIP_Authentication_Scheme   := p_sIP_Authentication_Scheme,
                sIP_Item_Number             := p_sIP_Item_Number,
                sIP_Item_Number             := p_sIP_Item_Number,
                sIP_Authenticate            := p_sIP_Authenticate,
                sIP_Authenticate            := p_sIP_Authenticate,
@@ -3169,7 +3182,7 @@ module LibDiameter_Templates {
                }
                }
            }
            }
            
            
            template SIP_Number_Auth_Items_AVP mw_sIPNumberAuthItems (template (present) UInt32 p_avpData := ?) := {
            template SIP_Number_Auth_Items_AVP mw_sIPNumberAuthItems_RFC (template (present) UInt32 p_avpData := ?) := {
                aVP_Header := mw_aVP_Header_Vbit0Mbit1(c_sIP_Number_Auth_Items_AVP_Code_RFC),
                aVP_Header := mw_aVP_Header_Vbit0Mbit1(c_sIP_Number_Auth_Items_AVP_Code_RFC),
                aVP_Data := p_avpData
                aVP_Data := p_avpData
            }
            }
@@ -3226,13 +3239,13 @@ module LibDiameter_Templates {
              
              
            template SIP_User_Data_AVP mw_sIP_User_Data_dummy :=
            template SIP_User_Data_AVP mw_sIP_User_Data_dummy :=
            {
            {
                aVP_Header := mw_aVP_HeaderVid_Mbit1(c_sIP_User_Data_AVP_Code, ?, c_vendId3gpp),
                aVP_Header := mw_aVP_Header_Vbit0Mbit1(c_sIP_User_Data_AVP_Code),
                sIP_User_Data_Type := {
                sIP_User_Data_Type := {
                    aVP_Header := mw_aVP_HeaderVid_Mbit1(c_sIP_User_Data_Type_AVP_Code, ?, c_vendId3gpp),
                    aVP_Header := mw_aVP_Header_Vbit0Mbit1(c_sIP_User_Data_Type_AVP_Code),
                    aVP_Data := ?
                    aVP_Data := ?
                },
                },
                sIP_User_Data_Contents := {
                sIP_User_Data_Contents := {
                    aVP_Header := mw_aVP_HeaderVid_Mbit1(c_sIP_User_Data_Contents_AVP_Code, ?, c_vendId3gpp),
                    aVP_Header := mw_aVP_Header_Vbit0Mbit1(c_sIP_User_Data_Contents_AVP_Code),
                    aVP_Data := ?
                    aVP_Data := ?
                },
                },
                aVP_Type := *
                aVP_Type := *
@@ -3240,7 +3253,7 @@ module LibDiameter_Templates {
            
            
            template Framed_IP_Address_AVP mw_framed_IP_Address_dummy := {
            template Framed_IP_Address_AVP mw_framed_IP_Address_dummy := {
            //  Ref: RFC4005 6.11.1 Framed_IP_Address AVP
            //  Ref: RFC4005 6.11.1 Framed_IP_Address AVP
                aVP_Header := mw_aVP_HeaderVid_Mbit1(c_framed_IP_Address_AVP_Code, ?, c_vendId3gpp),
                aVP_Header := mw_aVP_Header_Vbit0Mbit1(c_framed_IP_Address_AVP_Code),
                aVP_Data := ?
                aVP_Data := ?
            }
            }
            
            
@@ -3338,6 +3351,37 @@ module LibDiameter_Templates {
            
            
        } // End of f_addPaddedBytes2Length
        } // End of f_addPaddedBytes2Length
        
        
 
        /** @desc Converts DiameterURI to UTF8String
         */
        function f_DiameterURI_2_UTF8String(in template DiameterURI p_diameterURI) return UTF8String {
            var UTF8String v_utf8String;
            var template charstring v_scheme, v_diameterId_FQDN, v_transport, v_protocol;
            var template integer v_portField;
            
            
            v_scheme := p_diameterURI.scheme;
            v_diameterId_FQDN := p_diameterURI.diameterId_FQDN;
            if (ispresent(p_diameterURI.portField)) 
            {
                v_portField := p_diameterURI.portField;
            }
            if (ispresent(p_diameterURI.transport)) 
            {
                v_transport := p_diameterURI.transport;
            }
            
            if (ispresent(p_diameterURI.protocol)) 
            {
                v_protocol := p_diameterURI.protocol;
            }
            //FIXME add also cases if portField, transport and protocol are present
            v_utf8String := v_scheme & "://" & v_diameterId_FQDN;
            
            return v_utf8String;
            
        } // End of f_addPaddedBytes2Length

    }//end group FunctionsForTemplates
    }//end group FunctionsForTemplates


}//end module LibDiameter_Templates
}//end module LibDiameter_Templates
 No newline at end of file
+1 −0
Original line number Original line Diff line number Diff line
@@ -65,6 +65,7 @@ group BasicTypesAndConstants{
      } // End of group ApplicationIdConstants
      } // End of group ApplicationIdConstants
      group SMINetworkManagementPrivateEnterpriseCodes_VendorIDAVP {
      group SMINetworkManagementPrivateEnterpriseCodes_VendorIDAVP {
        const UInt32 c_vendId3gpp := 10415;            //Vendor idFor 3GPP
        const UInt32 c_vendId3gpp := 10415;            //Vendor idFor 3GPP
        const UInt32 c_vendIdETSI := 13019;            //Vendor idFor ETSI
      } // End of group SMINetworkManagementPrivateEnterpriseCodes_VendorIDAVP
      } // End of group SMINetworkManagementPrivateEnterpriseCodes_VendorIDAVP
      group AVPCodeConstants {
      group AVPCodeConstants {
        group AVPCodeConstantsRFC3855{
        group AVPCodeConstantsRFC3855{
+216 −200

File changed.

Preview size limit exceeded, changes collapsed.

+11 −0
Original line number Original line Diff line number Diff line
@@ -467,6 +467,17 @@ module LibDiameter_Types_CxDx_AVPs {
                set of AVP_Type                     aVP_Type optional
                set of AVP_Type                     aVP_Type optional
            }
            }
            
            
            type record SIP_Authenticate_3GPP_AVP{
            // Ref: 129 229 6.3.10.  SIP-Authenticate AVP
                AVP_Header             aVP_Header,//<AVP header: 609 ....>
                octetstring            aVP_Data
            }
            type record SIP_Authorization_3GPP_AVP{
                //    Ref: 129 229 6.3.11.  SIP-Authorization AVP
                AVP_Header             aVP_Header,//SIP-Authorization ::= < AVP Header: 610 >
                octetstring            aVP_Data
            }
            
            type record Identity_with_Emergency_Registration_AVP{
            type record Identity_with_Emergency_Registration_AVP{
            //Ref: ETSI TS 129 229 6.3.57 Identity_with_Emergency_Registration AVP
            //Ref: ETSI TS 129 229 6.3.57 Identity_with_Emergency_Registration AVP
                AVP_Header                  aVP_Header,//SIP-Deregistration-Reason ::= < AVP Header: 651 >
                AVP_Header                  aVP_Header,//SIP-Deregistration-Reason ::= < AVP Header: 651 >