Commit b62f32c3 authored by pintar's avatar pintar
Browse files

Corrections were done due to STF 512/Diameter RfRo validation:

- altstep was modified
- new template for CEA was introduced
- Diameter component is stopped now in case if timeout is reached
parent 6ccbbce6
Loading
Loading
Loading
Loading
+27 −14
Original line number Original line Diff line number Diff line
@@ -73,7 +73,10 @@ group AwaitingMessage {
                    vc_recvDiamMsg := v_MSG;
                    vc_recvDiamMsg := v_MSG;
                  }
                  }
                [] tc_wait.timeout {
                [] tc_wait.timeout {
                    setverdict(fail,"*** " & __SCOPE__ & ": INCONC: Message was not received in due time. ***")
                    setverdict(fail,"*** " & __SCOPE__ & ": INCONC: Message was not received in due time. ***");
                    //Stop the component in case of timeout
                    all timer.stop;
                    f_componentStop();
                }
                }
            }
            }
        }
        }
@@ -88,7 +91,10 @@ group AwaitingMessage {
                    vc_recvDiamMsg := v_MSG;
                    vc_recvDiamMsg := v_MSG;
                  }
                  }
                [] tc_wait.timeout {
                [] tc_wait.timeout {
                    setverdict(fail,"*** " & __SCOPE__ & ": INCONC: Message was not received in due time. ***")
                    setverdict(fail,"*** " & __SCOPE__ & ": INCONC: Message was not received in due time. ***");
                    //Stop the component in case of timeout         
                    all timer.stop;
                    f_componentStop();
                }
                }
            }
            }
        }
        }
@@ -1510,6 +1516,18 @@ group GlobalSteps {
                stop;
                stop;
            }
            }


            /**
             * @desc component termination
             */
            function f_componentStop(
            ) runs on DiameterComponent  {
                syncPort.send(m_syncClientStop);
                DIAMP.clear;
                stop;
            }

            /**

            /**
            /**
             *
             *
             * @desc original copied from older LibCommon_VerdictControl
             * @desc original copied from older LibCommon_VerdictControl
@@ -1760,18 +1778,15 @@ group DefaultsTestStep
            f_send_DWA(m_DWA_basic(vc_originHost, vc_originRealm));
            f_send_DWA(m_DWA_basic(vc_originHost, vc_originRealm));
            repeat;
            repeat;
          }
          }
        [] DIAMP.receive (DIAMETER_MSG:{cER_MSG := mw_CER_basic(mw_authApplicationId(c_applIdRx))}) -> value vc_recvDiamMsgDefault
        //CER message can be accepted in following cases:
        //- if CER message was not accepted 1st time then it is handled in default altstep. 
        //- if component is unmaped and maped back for TP reason then Diameter Session can be established again in default Altestep 
        [] DIAMP.receive (DIAMETER_MSG:{cER_MSG := mw_CER_basic(?)}) -> value vc_recvDiamMsgDefault
          {
          {
            vc_recv_hopid:= vc_recvDiamMsgDefault.cER_MSG.header.hopid;
            vc_recv_hopid:= vc_recvDiamMsgDefault.cER_MSG.header.hopid;
            vc_recv_endid:= vc_recvDiamMsgDefault.cER_MSG.header.endid;
            vc_recv_endid:= vc_recvDiamMsgDefault.cER_MSG.header.endid;
            f_send_CEA(m_CEA_AppId(vc_originHost, vc_originRealm, vc_hostIPAddress, c_applIdRx));
            //Set all possible interfaces to avoid multiple CER checking
            repeat;
            f_send_CEA(m_CEA_AppId_all(vc_originHost, vc_originRealm, vc_hostIPAddress));
          }
        [] DIAMP.receive (DIAMETER_MSG:{cER_MSG := mw_CER_basic(mw_authApplicationId(c_applIdGx))}) -> value vc_recvDiamMsgDefault
          {
            vc_recv_hopid:= vc_recvDiamMsgDefault.cER_MSG.header.hopid;
            vc_recv_endid:= vc_recvDiamMsgDefault.cER_MSG.header.endid;
            f_send_CEA(m_CEA_AppId(vc_originHost, vc_originRealm, vc_hostIPAddress, c_applIdGx));
            repeat;
            repeat;
          }
          }
        [] DIAMP.receive (DIAMETER_MSG:?) -> value vc_recvDiamMsgDefault
        [] DIAMP.receive (DIAMETER_MSG:?) -> value vc_recvDiamMsgDefault
@@ -1798,9 +1813,7 @@ group DefaultsTestStep
            // Terminate component execution
            // Terminate component execution
            stop;
            stop;
        }
        }
    }
    }//end altstep a_diameter_default




} // end of group DefaultsTestStep
} // end of group DefaultsTestStep
} // end module LibDiameter_Steps
} // end module LibDiameter_Steps
 No newline at end of file
+30 −0
Original line number Original line Diff line number Diff line
@@ -3322,6 +3322,36 @@ module LibDiameter_Templates {
                }
                }
            }
            }
            
            
            template (value) CEA_MSG m_CEA_AppId_all(
                template Origin_Host_AVP p_originHost,
                template Origin_Realm_AVP p_originRealm,
                Address p_address) 
              modifies m_CEA_basic := {
                cEA_Body := {
                    result_Code := m_resultCode(m_resultCode_diameterSuccess),
                    origin_Host := p_originHost,
                    origin_Realm := p_originRealm,
                    host_IP_Address := {m_hostIPAddress(p_address)},
                    vendor_Id := m_vendorId(c_vendId3gpp),
                    product_Name := m_productName("ETSI "),
                    supported_Vendor_Id := {m_supportedVendorId(c_vendId3gpp)},
                    vendor_Specific_Application_Id := {m_vendor_Specific_Appl_Id(c_applIdRx),
                                                        m_vendor_Specific_Appl_Id(c_applIdGx),
                                                        m_vendor_Specific_Appl_Id(c_applId3GPPCxDx),
                                                        m_vendor_Specific_Appl_Id(c_applIdRf),
                                                        m_vendor_Specific_Appl_Id(c_applIdRo)
                                                        //add new if needed
                                                        },
                    auth_Application_Id := {m_authApplicationId(c_applIdRx),
                                            m_authApplicationId(c_applIdGx),
                                            m_authApplicationId(c_applId3GPPCxDx),
                                            m_authApplicationId(c_applIdRf),
                                            m_authApplicationId(c_applIdRo)
                                            //add new if needed
                                            }
                }
            }

        } //end group modified_answer_templates_send
        } //end group modified_answer_templates_send


        group modified_answer_templates_receive {
        group modified_answer_templates_receive {
+3 −0
Original line number Original line Diff line number Diff line
@@ -2821,6 +2821,9 @@ group BasicTypesAndConstants{




        } // End of group MessageTypes
        } // End of group MessageTypes
        with{
            encode "DIAMETERCodec"
        }


        group Other{
        group Other{