Commit c0beaeaf authored by schmitting's avatar schmitting
Browse files

Changes after week 49/2014 validation session

parent 0e732b4d
Loading
Loading
Loading
Loading
+377 −0
Original line number Diff line number Diff line
@@ -72,6 +72,9 @@ group AwaitingMessage {
                    tc_wait.stop;
                    vc_recvDiamMsg := v_MSG;
                  }
                [] tc_wait.timeout {
                    setverdict(fail,"*** " & __SCOPE__ & ": INCONC: Message was not received in due time. ***")
                }
            }
        }
        else
@@ -84,6 +87,9 @@ group AwaitingMessage {
                    tc_wait.stop;
                    vc_recvDiamMsg := v_MSG;
                  }
                [] tc_wait.timeout {
                    setverdict(fail,"*** " & __SCOPE__ & ": INCONC: Message was not received in due time. ***")
                }
            }
        }
    } // end f_awaitingDiameterMsg
@@ -315,6 +321,126 @@ group AwaitingMessage {
        //store specific parameter for PPA if needed
    }  

    function f_awaiting_ULR(template (present)ULR_MSG p_ULR) runs on DiameterComponent
    {
        f_awaitingDiameterMsg({uLR_MSG:=p_ULR});
        //store specific parameter for ULR if needed
        vc_sessionId := vc_recvDiamMsg.uLR_MSG.session_Id;
        vc_recv_hopid:= vc_recvDiamMsg.uLR_MSG.header.hopid;
        vc_recv_endid:= vc_recvDiamMsg.uLR_MSG.header.endid;
    }
        
    function f_awaiting_ULA(template (present)ULA_MSG p_ULA) runs on DiameterComponent
    {
        f_awaitingDiameterMsg({uLA_MSG:=p_ULA});
        //store specific parameter for ULA if needed
    } 

    function f_awaiting_AIR(template (present)AIR_MSG p_AIR) runs on DiameterComponent
    {
        f_awaitingDiameterMsg({aIR_MSG:=p_AIR});
        //store specific parameter for AIR if needed
        vc_sessionId := vc_recvDiamMsg.aIR_MSG.session_Id;
        vc_recv_hopid:= vc_recvDiamMsg.aIR_MSG.header.hopid;
        vc_recv_endid:= vc_recvDiamMsg.aIR_MSG.header.endid;
    }
        
    function f_awaiting_AIA(template (present)AIA_MSG p_AIA) runs on DiameterComponent
    {
        f_awaitingDiameterMsg({aIA_MSG:=p_AIA});
        //store specific parameter for AIA if needed
    } 

    function f_awaiting_CLR(template (present)CLR_MSG p_CLR) runs on DiameterComponent
    {
        f_awaitingDiameterMsg({cLR_MSG:=p_CLR});
        //store specific parameter for CLR if needed
        vc_sessionId := vc_recvDiamMsg.cLR_MSG.session_Id;
        vc_recv_hopid:= vc_recvDiamMsg.cLR_MSG.header.hopid;
        vc_recv_endid:= vc_recvDiamMsg.cLR_MSG.header.endid;
    }
        
    function f_awaiting_CLA(template (present)CLA_MSG p_CLA) runs on DiameterComponent
    {
        f_awaitingDiameterMsg({cLA_MSG:=p_CLA});
        //store specific parameter for CLA if needed
    }

    function f_awaiting_IDR(template (present)IDR_MSG p_IDR) runs on DiameterComponent
    {
        f_awaitingDiameterMsg({iDR_MSG:=p_IDR});
        //store specific parameter for IDR if needed
        vc_sessionId := vc_recvDiamMsg.iDR_MSG.session_Id;
        vc_recv_hopid:= vc_recvDiamMsg.iDR_MSG.header.hopid;
        vc_recv_endid:= vc_recvDiamMsg.iDR_MSG.header.endid;
    }
        
    function f_awaiting_IDA(template (present)IDA_MSG p_IDA) runs on DiameterComponent
    {
        f_awaitingDiameterMsg({iDA_MSG:=p_IDA});
        //store specific parameter for IDA if needed
    }

    function f_awaiting_DSR(template (present)DSR_MSG p_DSR) runs on DiameterComponent
    {
        f_awaitingDiameterMsg({dSR_MSG:=p_DSR});
        //store specific parameter for DSR if needed
        vc_sessionId := vc_recvDiamMsg.dSR_MSG.session_Id;
        vc_recv_hopid:= vc_recvDiamMsg.dSR_MSG.header.hopid;
        vc_recv_endid:= vc_recvDiamMsg.dSR_MSG.header.endid;
    }
        
    function f_awaiting_DSA(template (present)DSA_MSG p_DSA) runs on DiameterComponent
    {
        f_awaitingDiameterMsg({dSA_MSG:=p_DSA});
        //store specific parameter for DSA if needed
    }

    function f_awaiting_PUER(template (present)PUER_MSG p_PUER) runs on DiameterComponent
    {
        f_awaitingDiameterMsg({pUER_MSG:=p_PUER});
        //store specific parameter for PUER if needed
        vc_sessionId := vc_recvDiamMsg.pUER_MSG.session_Id;
        vc_recv_hopid:= vc_recvDiamMsg.pUER_MSG.header.hopid;
        vc_recv_endid:= vc_recvDiamMsg.pUER_MSG.header.endid;
    }
        
    function f_awaiting_PUEA(template (present)PUEA_MSG p_PUEA) runs on DiameterComponent
    {
        f_awaitingDiameterMsg({pUEA_MSG:=p_PUEA});
        //store specific parameter for PUEA if needed
    }

    function f_awaiting_RSR(template (present)RSR_MSG p_RSR) runs on DiameterComponent
    {
        f_awaitingDiameterMsg({rSR_MSG:=p_RSR});
        //store specific parameter for RSR if needed
        vc_sessionId := vc_recvDiamMsg.rSR_MSG.session_Id;
        vc_recv_hopid:= vc_recvDiamMsg.rSR_MSG.header.hopid;
        vc_recv_endid:= vc_recvDiamMsg.rSR_MSG.header.endid;
    }
        
    function f_awaiting_RSA(template (present)RSA_MSG p_RSA) runs on DiameterComponent
    {
        f_awaitingDiameterMsg({rSA_MSG:=p_RSA});
        //store specific parameter for RSA if needed
    }

    function f_awaiting_NOR(template (present)NOR_MSG p_NOR) runs on DiameterComponent
    {
        f_awaitingDiameterMsg({nOR_MSG:=p_NOR});
        //store specific parameter for NOR if needed
        vc_sessionId := vc_recvDiamMsg.nOR_MSG.session_Id;
        vc_recv_hopid:= vc_recvDiamMsg.nOR_MSG.header.hopid;
        vc_recv_endid:= vc_recvDiamMsg.nOR_MSG.header.endid;
    }
        
    function f_awaiting_NOA(template (present)NOA_MSG p_NOA) runs on DiameterComponent
    {
        f_awaitingDiameterMsg({nOA_MSG:=p_NOA});
        //store specific parameter for NOA if needed
    }
    
} // end AwaitingMessage

group SendMessage {
@@ -627,6 +753,158 @@ group SendMessage {
        f_sendDiameterMsg({pPA_MSG:=p_PPA});
    }

    function f_send_ULR(template (value) ULR_MSG p_ULR) runs on DiameterComponent
    {
        tc_delay.start;
        alt
        { []tc_delay.timeout
            {} }

        //set specific parameter for ULR if needed

        f_sendDiameterMsg({uLR_MSG:=p_ULR});
    }

    function f_send_ULA(template (value) ULA_MSG p_ULA) runs on DiameterComponent
    {
        //set specific parameter for ULA if needed

        f_sendDiameterMsg({uLA_MSG:=p_ULA});
    }    

    function f_send_AIR(template (value) AIR_MSG p_AIR) runs on DiameterComponent
    {
        tc_delay.start;
        alt
        { []tc_delay.timeout
            {} }

        //set specific parameter for AIR if needed

        f_sendDiameterMsg({aIR_MSG:=p_AIR});
    }

    function f_send_AIA(template (value) AIA_MSG p_AIA) runs on DiameterComponent
    {
        //set specific parameter for AIA if needed

        f_sendDiameterMsg({aIA_MSG:=p_AIA});
    }    

    function f_send_CLR(template (value) CLR_MSG p_CLR) runs on DiameterComponent
    {
        tc_delay.start;
        alt
        { []tc_delay.timeout
            {} }

        //set specific parameter for CLR if needed

        f_sendDiameterMsg({cLR_MSG:=p_CLR});
    }

    function f_send_CLA(template (value) CLA_MSG p_CLA) runs on DiameterComponent
    {
        //set specific parameter for CLA if needed

        f_sendDiameterMsg({cLA_MSG:=p_CLA});
    }    

    function f_send_IDR(template (value) IDR_MSG p_IDR) runs on DiameterComponent
    {
        tc_delay.start;
        alt
        { []tc_delay.timeout
            {} }

        //set specific parameter for IDR if needed

        f_sendDiameterMsg({iDR_MSG:=p_IDR});
    }

    function f_send_IDA(template (value) IDA_MSG p_IDA) runs on DiameterComponent
    {
        //set specific parameter for IDA if needed

        f_sendDiameterMsg({iDA_MSG:=p_IDA});
    }    

    function f_send_DSR(template (value) DSR_MSG p_DSR) runs on DiameterComponent
    {
        tc_delay.start;
        alt
        { []tc_delay.timeout
            {} }

        //set specific parameter for DSR if needed

        f_sendDiameterMsg({dSR_MSG:=p_DSR});
    }

    function f_send_DSA(template (value) DSA_MSG p_DSA) runs on DiameterComponent
    {
        //set specific parameter for DSA if needed

        f_sendDiameterMsg({dSA_MSG:=p_DSA});
    }    

    function f_send_PUER(template (value) PUER_MSG p_PUER) runs on DiameterComponent
    {
        tc_delay.start;
        alt
        { []tc_delay.timeout
            {} }

        //set specific parameter for PUER if needed

        f_sendDiameterMsg({pUER_MSG:=p_PUER});
    }

    function f_send_PUEA(template (value) PUEA_MSG p_PUEA) runs on DiameterComponent
    {
        //set specific parameter for PUEA if needed

        f_sendDiameterMsg({pUEA_MSG:=p_PUEA});
    }    

    function f_send_RSR(template (value) RSR_MSG p_RSR) runs on DiameterComponent
    {
        tc_delay.start;
        alt
        { []tc_delay.timeout
            {} }

        //set specific parameter for RSR if needed

        f_sendDiameterMsg({rSR_MSG:=p_RSR});
    }

    function f_send_RSA(template (value) RSA_MSG p_RSA) runs on DiameterComponent
    {
        //set specific parameter for RSA if needed

        f_sendDiameterMsg({rSA_MSG:=p_RSA});
    }    

    function f_send_NOR(template (value) NOR_MSG p_NOR) runs on DiameterComponent
    {
        tc_delay.start;
        alt
        { []tc_delay.timeout
            {} }

        //set specific parameter for NOR if needed

        f_sendDiameterMsg({nOR_MSG:=p_NOR});
    }

    function f_send_NOA(template (value) NOA_MSG p_NOA) runs on DiameterComponent
    {
        //set specific parameter for NOA if needed

        f_sendDiameterMsg({nOA_MSG:=p_NOA});
    }    

    
} // end SendMessage

@@ -880,6 +1158,103 @@ group GlobalSteps {
                    p_diameterMSG.aAA_MSG.header.endid:=vc_recv_endid;
                    vc_sendDiamMsg:=valueof(p_diameterMSG);
                }
                //S6a messages
                if (ischosen(p_diameterMSG.uLR_MSG)){
                    p_diameterMSG.uLR_MSG.header.msglen := lengthof(encvalue(p_diameterMSG.uLR_MSG))/8;
                    p_diameterMSG.uLR_MSG.header.hopid:=vc_recv_hopid;
                    p_diameterMSG.uLR_MSG.header.endid:=vc_recv_endid;
                    vc_sendDiamMsg:=valueof(p_diameterMSG);
                }
                if (ischosen(p_diameterMSG.uLA_MSG)){
                    p_diameterMSG.uLA_MSG.header.msglen := lengthof(encvalue(p_diameterMSG.uLA_MSG))/8;
                    p_diameterMSG.uLA_MSG.header.hopid:=vc_recv_hopid;
                    p_diameterMSG.uLA_MSG.header.endid:=vc_recv_endid;
                    vc_sendDiamMsg:=valueof(p_diameterMSG);
                }
                if (ischosen(p_diameterMSG.aIR_MSG)){
                    p_diameterMSG.aIR_MSG.header.msglen := lengthof(encvalue(p_diameterMSG.aIR_MSG))/8;
                    p_diameterMSG.aIR_MSG.header.hopid:=vc_recv_hopid;
                    p_diameterMSG.aIR_MSG.header.endid:=vc_recv_endid;
                    vc_sendDiamMsg:=valueof(p_diameterMSG);
                }
                if (ischosen(p_diameterMSG.aIA_MSG)){
                    p_diameterMSG.aIA_MSG.header.msglen := lengthof(encvalue(p_diameterMSG.aIA_MSG))/8;
                    p_diameterMSG.aIA_MSG.header.hopid:=vc_recv_hopid;
                    p_diameterMSG.aIA_MSG.header.endid:=vc_recv_endid;
                    vc_sendDiamMsg:=valueof(p_diameterMSG);
                }
                if (ischosen(p_diameterMSG.cLR_MSG)){
                    p_diameterMSG.cLR_MSG.header.msglen := lengthof(encvalue(p_diameterMSG.cLR_MSG))/8;
                    p_diameterMSG.cLR_MSG.header.hopid:=vc_recv_hopid;
                    p_diameterMSG.cLR_MSG.header.endid:=vc_recv_endid;
                    vc_sendDiamMsg:=valueof(p_diameterMSG);
                }
                if (ischosen(p_diameterMSG.cLA_MSG)){
                    p_diameterMSG.cLA_MSG.header.msglen := lengthof(encvalue(p_diameterMSG.cLA_MSG))/8;
                    p_diameterMSG.cLA_MSG.header.hopid:=vc_recv_hopid;
                    p_diameterMSG.cLA_MSG.header.endid:=vc_recv_endid;
                    vc_sendDiamMsg:=valueof(p_diameterMSG);
                }
                if (ischosen(p_diameterMSG.iDR_MSG)){
                    p_diameterMSG.iDR_MSG.header.msglen := lengthof(encvalue(p_diameterMSG.iDR_MSG))/8;
                    p_diameterMSG.iDR_MSG.header.hopid:=vc_recv_hopid;
                    p_diameterMSG.iDR_MSG.header.endid:=vc_recv_endid;
                    vc_sendDiamMsg:=valueof(p_diameterMSG);
                }
                if (ischosen(p_diameterMSG.iDA_MSG)){
                    p_diameterMSG.iDA_MSG.header.msglen := lengthof(encvalue(p_diameterMSG.iDA_MSG))/8;
                    p_diameterMSG.iDA_MSG.header.hopid:=vc_recv_hopid;
                    p_diameterMSG.iDA_MSG.header.endid:=vc_recv_endid;
                    vc_sendDiamMsg:=valueof(p_diameterMSG);
                }
                if (ischosen(p_diameterMSG.dSR_MSG)){
                    p_diameterMSG.dSR_MSG.header.msglen := lengthof(encvalue(p_diameterMSG.dSR_MSG))/8;
                    p_diameterMSG.dSR_MSG.header.hopid:=vc_recv_hopid;
                    p_diameterMSG.dSR_MSG.header.endid:=vc_recv_endid;
                    vc_sendDiamMsg:=valueof(p_diameterMSG);
                }
                if (ischosen(p_diameterMSG.dSA_MSG)){
                    p_diameterMSG.dSA_MSG.header.msglen := lengthof(encvalue(p_diameterMSG.dSA_MSG))/8;
                    p_diameterMSG.dSA_MSG.header.hopid:=vc_recv_hopid;
                    p_diameterMSG.dSA_MSG.header.endid:=vc_recv_endid;
                    vc_sendDiamMsg:=valueof(p_diameterMSG);
                }
                if (ischosen(p_diameterMSG.pUER_MSG)){
                    p_diameterMSG.pUER_MSG.header.msglen := lengthof(encvalue(p_diameterMSG.pUER_MSG))/8;
                    p_diameterMSG.pUER_MSG.header.hopid:=vc_recv_hopid;
                    p_diameterMSG.pUER_MSG.header.endid:=vc_recv_endid;
                    vc_sendDiamMsg:=valueof(p_diameterMSG);
                }
                if (ischosen(p_diameterMSG.pUEA_MSG)){
                    p_diameterMSG.pUEA_MSG.header.msglen := lengthof(encvalue(p_diameterMSG.pUEA_MSG))/8;
                    p_diameterMSG.pUEA_MSG.header.hopid:=vc_recv_hopid;
                    p_diameterMSG.pUEA_MSG.header.endid:=vc_recv_endid;
                    vc_sendDiamMsg:=valueof(p_diameterMSG);
                }
                if (ischosen(p_diameterMSG.rSR_MSG)){
                    p_diameterMSG.rSR_MSG.header.msglen := lengthof(encvalue(p_diameterMSG.rSR_MSG))/8;
                    p_diameterMSG.rSR_MSG.header.hopid:=vc_recv_hopid;
                    p_diameterMSG.rSR_MSG.header.endid:=vc_recv_endid;
                    vc_sendDiamMsg:=valueof(p_diameterMSG);
                }
                if (ischosen(p_diameterMSG.rSA_MSG)){
                    p_diameterMSG.rSA_MSG.header.msglen := lengthof(encvalue(p_diameterMSG.rSA_MSG))/8;
                    p_diameterMSG.rSA_MSG.header.hopid:=vc_recv_hopid;
                    p_diameterMSG.rSA_MSG.header.endid:=vc_recv_endid;
                    vc_sendDiamMsg:=valueof(p_diameterMSG);
                }
                if (ischosen(p_diameterMSG.nOR_MSG)){
                    p_diameterMSG.nOR_MSG.header.msglen := lengthof(encvalue(p_diameterMSG.nOR_MSG))/8;
                    p_diameterMSG.nOR_MSG.header.hopid:=vc_recv_hopid;
                    p_diameterMSG.nOR_MSG.header.endid:=vc_recv_endid;
                    vc_sendDiamMsg:=valueof(p_diameterMSG);
                }
                if (ischosen(p_diameterMSG.nOA_MSG)){
                    p_diameterMSG.nOA_MSG.header.msglen := lengthof(encvalue(p_diameterMSG.nOA_MSG))/8;
                    p_diameterMSG.nOA_MSG.header.hopid:=vc_recv_hopid;
                    p_diameterMSG.nOA_MSG.header.endid:=vc_recv_endid;
                    vc_sendDiamMsg:=valueof(p_diameterMSG);
                }

                if (ischosen(p_diameterMSG.uNKNOWN_MSG)){
                    p_diameterMSG.uNKNOWN_MSG.header.msglen := lengthof(encvalue(p_diameterMSG.uNKNOWN_MSG))/8;
@@ -923,6 +1298,7 @@ group GlobalSteps {

               if (PX_IPv6){
                   v_ip.addressFamily := c_ipv6AddressFamily;
                   v_ip.ipAddress.ipv6 := {0,0,0,0,0,0,0,0};
                   for(i:=0;i<addr_len;i:=i+1){
                       current:=substr(p_addr,i,1);
                       if(current==":"){
@@ -954,6 +1330,7 @@ group GlobalSteps {
               }
               else{
                   v_ip.addressFamily := c_ipv4AddressFamily;
                   v_ip.ipAddress.ipv4 := {0,0,0,0};
                   for(i:=0;i<addr_len;i:=i+1){
                       current:=substr(p_addr,i,1);
                       if(current=="."){
+3 −3
Original line number Diff line number Diff line
@@ -693,7 +693,7 @@ group BasicTypesAndConstants{
                    set length (1..infinity) of Host_IP_Address_AVP host_IP_Address,
                    Vendor_Id_AVP                          vendor_Id,
                    Product_Name_AVP                       product_Name,//required
                    set of Origin_State_Id_AVP             origin_State_Id optional,
                    Origin_State_Id_AVP             origin_State_Id optional, //set of removed due to RFC3588
                    set of Supported_Vendor_Id_AVP         supported_Vendor_Id optional,
                    set of Auth_Application_Id_AVP         auth_Application_Id optional,
                    set of Inband_Security_Id_AVP          inband_Security_Id optional,
@@ -2419,7 +2419,7 @@ group BasicTypesAndConstants{
                    Origin_Realm_AVP origin_Realm,
                    IMS_Voice_PS_Sessions_Support_AVP iMS_Voice_PS_Sessions_Support optional,
                    Last_UE_Activity_Time_AVP last_UE_Activity_Time_AVP optional,
                    RAT_Type_AVP rAT_Type optional,
                    RAT_Type_AVP rat_Type optional,
                    IDA_Flags_AVP iDA_Flags optional,
                    EPS_User_State_AVP ePS_User_State optional,
                    EPS_Location_Information_AVP ePS_Location_Information optional,
@@ -2517,7 +2517,7 @@ group BasicTypesAndConstants{
                }
            
              type set  PUEA_Body_AVP {
                  Vendor_Specific_Appl_Id_AVP            vendor_Specific_Application_Id,
                  Vendor_Specific_Appl_Id_AVP            vendor_Specific_Application_Id optional,
                  Result_Code_AVP                        result_Code optional,
                  Experimental_Result_AVP                experimental_Result optional,
                  Auth_Session_State_AVP                 auth_Session_State,//requi.
+2 −0
Original line number Diff line number Diff line
@@ -465,6 +465,8 @@ module LibDiameter_Types_Base_AVPs {
                DIAMETER_ERROR_SUBSESSION_E (5470),
                DIAMETER_ERROR_UNKNOWN_EPS_SUBSCRIPTION_E (5420),//(9990), // Set the correct error code value - See ETSI TS 129 272 Clause 5.2.1.1.3 Detailed behaviour of the HSS
                DIAMETER_ERROR_RAT_NOT_ALLOWED_E (5421),//(9991), // Set the correct error code value - See ETSI TS 129 272 Clause 5.2.1.1.3 Detailed behaviour of the HSS
                DIAMETER_ERROR_EQUIPMENT_UNKNOWN_E (5422), //See ETSI TS 129 272 Clause 7.4.3
                DIAMETER_ERROR_UNKOWN_SERVING_NODE_E (5423),//See ETSI TS 129 272 Clause 7.4.3
                unknown
            }
            with {