Commit 243b0c7c authored by filatov's avatar filatov
Browse files

Release TS 101 580-3 v2.1.1

parent 864b2fe0
Loading
Loading
Loading
Loading
+16 −173
Original line number Diff line number Diff line
@@ -35,7 +35,6 @@
            //Defaults
    		vc_def_catchSyncStop_diameter := activate(a_diameter_catchSyncStop());
    		vc_default_diameter := activate (a_diameter_default());
    		activate(a_diameter_Rx_default());
    		
    		//Base LibDiameter init function if there will be any base initialisation
    		f_Diameter_Init_Component();
@@ -65,84 +64,16 @@
        *  @param	
        */
        function f_IUT_session_establishment()
        runs on DiameterComponent {var DIAMETER_MSG v_MSG;
        runs on DiameterComponent {
    		
            if (PX_DIAM_LLP_ENABLED and f_gtZero(vc_ETS_conn))
            {                
                tc_wait.start(2.0);
                interleave
                {
                    []DIAMP.receive	(DIAMETER_MSG:{aAR_MSG:=mw_AAR_basic(?,?,?,?,*)}) -> value v_MSG
                      {
                        tc_wait.stop;
                        vc_recvDiamMsg := v_MSG;
                        // store specific parameter for AAR if needed
                        vc_recv_hopid:= vc_recvDiamMsg.aAR_MSG.header.hopid;
                        vc_recv_endid:= vc_recvDiamMsg.aAR_MSG.header.endid;
                        vc_sessionId := vc_recvDiamMsg.aAR_MSG.session_Id;
                        //TODO store session1
                        f_send_AAA(m_AAA_modified_ResultCode_ANCA(vc_sessionId,
                                                                  vc_originHost,
                                                                  vc_originRealm,
                                                                  m_resultCode(m_resultCode_diameterSuccess),
                                                                  omit));
                      }
            f_awaiting_AAR(mw_AAR_dummy); // IUT esthablish Diameter session
                
                    []DIAMP.receive	(DIAMETER_MSG:{aAR_MSG:=mw_AAR_basic(?,?,?,?,*)}) -> value v_MSG
                      {
                        tc_wait.stop;
                        vc_recvDiamMsg := v_MSG;
                        // store specific parameter for AAR if needed
                        vc_recv_hopid:= vc_recvDiamMsg.aAR_MSG.header.hopid;
                        vc_recv_endid:= vc_recvDiamMsg.aAR_MSG.header.endid;
                        vc_sessionId := vc_recvDiamMsg.aAR_MSG.session_Id;
                        //TODO store session2
            f_send_AAA(m_AAA_modified_ResultCode_ANCA(vc_sessionId,
													  vc_originHost,
													  vc_originRealm,
													  m_resultCode(m_resultCode_diameterSuccess),
													  omit));
                      }
                }
            }
            else
            {
                tc_wait.start;
                interleave
                {
                    []DIAMP.receive	(DIAMETER_MSG:{aAR_MSG:=mw_AAR_basic(?,?,?,?,*)}) -> value v_MSG
                      {
                        tc_wait.stop;
                        vc_recvDiamMsg := v_MSG;
                        // store specific parameter for AAR if needed
                        vc_recv_hopid:= vc_recvDiamMsg.aAR_MSG.header.hopid;
                        vc_recv_endid:= vc_recvDiamMsg.aAR_MSG.header.endid;
                        vc_sessionId := vc_recvDiamMsg.aAR_MSG.session_Id;
                        //TODO store session1
                        f_send_AAA(m_AAA_modified_ResultCode_ANCA(vc_sessionId,
                                                                  vc_originHost,
                                                                  vc_originRealm,
                                                                  m_resultCode(m_resultCode_diameterSuccess),
                                                                  omit));
                      }
    
                    []DIAMP.receive	(DIAMETER_MSG:{aAR_MSG:=mw_AAR_basic(?,?,?,?,*)}) -> value v_MSG
                      {
                        tc_wait.stop;
                        vc_recvDiamMsg := v_MSG;
                        // store specific parameter for AAR if needed
                        vc_recv_hopid:= vc_recvDiamMsg.aAR_MSG.header.hopid;
                        vc_recv_endid:= vc_recvDiamMsg.aAR_MSG.header.endid;
                        vc_sessionId := vc_recvDiamMsg.aAR_MSG.session_Id;
                        //TODO store session2
                        f_send_AAA(m_AAA_modified_ResultCode_ANCA(vc_sessionId,
                                                                  vc_originHost,
                                                                  vc_originRealm,
                                                                  m_resultCode(m_resultCode_diameterSuccess),
                                                                  omit));
                      }
                }
            }
        } // end function f_IUT_session_establishment
        
        /*
@@ -232,6 +163,7 @@
    
    group twoSessionRelatedFunctions{
	

        function f_awaitAAR_sendAAAandSaveSessionIds() runs on DiameterComponent
        {
            var DIAMETER_MSG v_MSG;
@@ -249,7 +181,7 @@
                        vc_recv_hopid:= vc_recvDiamMsg.aAR_MSG.header.hopid;
                        vc_recv_endid:= vc_recvDiamMsg.aAR_MSG.header.endid;
                        vc_sessionId := vc_recvDiamMsg.aAR_MSG.session_Id;
                        //TODO store session1 if needed
                        //TODO store session1
                        f_send_AAA(m_AAA_basic(vc_sessionId, vc_originHost, vc_originRealm));
                      }
                      
@@ -261,7 +193,7 @@
                        vc_recv_hopid:= vc_recvDiamMsg.aAR_MSG.header.hopid;
                        vc_recv_endid:= vc_recvDiamMsg.aAR_MSG.header.endid;
                        vc_sessionId := vc_recvDiamMsg.aAR_MSG.session_Id;
                        //TODO store session2 if needed
                        //TODO store session2
                        f_send_AAA(m_AAA_basic(vc_sessionId, vc_originHost, vc_originRealm));
                      }
                }
@@ -279,7 +211,7 @@
                        vc_recv_hopid:= vc_recvDiamMsg.aAR_MSG.header.hopid;
                        vc_recv_endid:= vc_recvDiamMsg.aAR_MSG.header.endid;
                        vc_sessionId := vc_recvDiamMsg.aAR_MSG.session_Id;
                        //TODO store session1 if needed
                        //TODO store session1
                        f_send_AAA(m_AAA_basic(vc_sessionId, vc_originHost, vc_originRealm));
                      }
                      
@@ -291,102 +223,13 @@
                        vc_recv_hopid:= vc_recvDiamMsg.aAR_MSG.header.hopid;
                        vc_recv_endid:= vc_recvDiamMsg.aAR_MSG.header.endid;
                        vc_sessionId := vc_recvDiamMsg.aAR_MSG.session_Id;
                        //TODO store session2 if  needed
                        //TODO store session2
                        f_send_AAA(m_AAA_basic(vc_sessionId, vc_originHost, vc_originRealm));
                      }
                }
            }
        } //end function f_awaitAAR_sendAAAandSaveSessionIds()
    

        function f_awaitSTR_sendSTA() runs on DiameterComponent
        {
            var DIAMETER_MSG v_MSG;
        
            if (PX_DIAM_LLP_ENABLED and f_gtZero(vc_ETS_conn))
            {                
                tc_wait.start(5.0);
                interleave
                {
                    []DIAMP.receive	(DIAMETER_MSG:{sTR_MSG:=mw_STR_dummy}) -> value v_MSG
                      {
                        tc_wait.stop;
                        vc_recvDiamMsg := v_MSG;
                        // store specific parameter for STR if needed
                        vc_recv_hopid:= vc_recvDiamMsg.sTR_MSG.header.hopid;
                        vc_recv_endid:= vc_recvDiamMsg.sTR_MSG.header.endid;
                        vc_sessionId := vc_recvDiamMsg.sTR_MSG.session_Id;
                        f_send_STA(m_STA_basic(vc_sessionId, m_resultCode(m_resultCode_diameterSuccess), vc_originHost,
                                               vc_originRealm));
                      }
                      
                    []DIAMP.receive	(DIAMETER_MSG:{sTR_MSG:=mw_STR_dummy}) -> value v_MSG
                      {
                        tc_wait.stop;
                        vc_recvDiamMsg := v_MSG;
                        // store specific parameter for STR if needed
                        vc_recv_hopid:= vc_recvDiamMsg.sTR_MSG.header.hopid;
                        vc_recv_endid:= vc_recvDiamMsg.sTR_MSG.header.endid;
                        vc_sessionId := vc_recvDiamMsg.sTR_MSG.session_Id;
                        f_send_STA(m_STA_basic(vc_sessionId, m_resultCode(m_resultCode_diameterSuccess), vc_originHost,
                                               vc_originRealm));
                      }
                }
            }
            else
            {
                tc_wait.start;
                interleave
                {
                    []DIAMP.receive	(DIAMETER_MSG:{sTR_MSG:=mw_STR_dummy}) -> value v_MSG
                      {
                        tc_wait.stop;
                        vc_recvDiamMsg := v_MSG;
                        // store specific parameter for STR if needed
                        vc_recv_hopid:= vc_recvDiamMsg.sTR_MSG.header.hopid;
                        vc_recv_endid:= vc_recvDiamMsg.sTR_MSG.header.endid;
                        vc_sessionId := vc_recvDiamMsg.sTR_MSG.session_Id;
                        f_send_STA(m_STA_basic(vc_sessionId, m_resultCode(m_resultCode_diameterSuccess), vc_originHost,
                                               vc_originRealm));
                      }
                      
                    []DIAMP.receive	(DIAMETER_MSG:{sTR_MSG:=mw_STR_dummy}) -> value v_MSG
                      {
                        tc_wait.stop;
                        vc_recvDiamMsg := v_MSG;
                        // store specific parameter for STR if needed
                        vc_recv_hopid:= vc_recvDiamMsg.sTR_MSG.header.hopid;
                        vc_recv_endid:= vc_recvDiamMsg.sTR_MSG.header.endid;
                        vc_sessionId := vc_recvDiamMsg.sTR_MSG.session_Id;
                        f_send_STA(m_STA_basic(vc_sessionId, m_resultCode(m_resultCode_diameterSuccess), vc_originHost,
                                               vc_originRealm));
                      }
                }
            }
        } //end function f_awaitAAR_sendAAAandSaveSessionIds()

    } //end group twoSessionRelatedFunctions
             
    
          
          
    altstep a_diameter_Rx_default() runs on DiameterComponent
    {
    []DIAMP.receive	(DIAMETER_MSG:{aAR_MSG:=mw_AAR_basic(?,?,?,?,*)}) -> value vc_recvDiamMsg
      {
        tc_wait.stop;
        setverdict(fail,"Unexpected AAR");
        // store specific parameter for AAR if needed
        vc_recv_hopid:= vc_recvDiamMsg.aAR_MSG.header.hopid;
        vc_recv_endid:= vc_recvDiamMsg.aAR_MSG.header.endid;
        vc_sessionId := vc_recvDiamMsg.aAR_MSG.session_Id;
        f_send_AAA(m_AAA_modified_ResultCode_ANCA(vc_sessionId,
                                                  vc_originHost,
                                                  vc_originRealm,
                                                  m_resultCode(DIAMETER_UNSUPPORTED_VERSION_E),
                                                  omit));
      }
    }            
          
             
} // end module DiameterRx_Steps
 No newline at end of file