Commit fcac044c authored by rennoch's avatar rennoch
Browse files

MME_AIR_01-03

parent bd11cd8f
Loading
Loading
Loading
Loading
+85 −3
Original line number Diff line number Diff line
@@ -1669,6 +1669,8 @@ module DiameterS6a_MME_TCFunctions {
        function f_TC_MME_AIR_01() runs on TestAdapter {
            
            // Local variables
            var User_Name_AVP               v_user_Name         := md_user_Name ( PX_USR_NAME );
            var Auth_Session_State_AVP        v_noStateMaintained := md_auth_Session_State_noStateMaintained;
            
            // Preamble
            f_preamble_MME();
@@ -1677,8 +1679,29 @@ module DiameterS6a_MME_TCFunctions {
            
            // Test Body
            // Clause 'when'
            action("Trigger a synchronization failure during E-UTRAN authentication.");
            
            // Clause 'then'
            tc_ac.start;
            alt {
                []  HSS_S6a.receive ( mw_mmeAuthenticationInformationRequest ( mdw_AIR_TCs ( vc_sessionId, mdw_airBodyAvps (
                                v_noStateMaintained,                    // containing an Auth-Session-State AVP indicating NO_STATE_MAINTAINED
                                vc_originHost,                          // containing an Origin-Host AVP
                                vc_originRealm,                         // containing an Origin-Realm AVP
                                vc_destinationRealm,                    // containing a Destination-Realm AVP
                                v_user_Name,                            // containing an User-Name AVP
                                ?,                                      // Visited_PLMN_Id_AVP
                                mw_reqEUTRANAuthInfo_withReSynInfo,             // Req_EUTRAN_Auth_Info_AVP
                                mw_reqUTRANGERANAuthInfo_noReSynInfo ifpresent // Req_UTRAN_GERAN_Auth_Info_AVP
                                )))) {                   
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                    log("*** " & __SCOPE__ & ": PASS: Expected was received. ***");
                }
                []  tc_ac.timeout {
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
                    log("*** " & __SCOPE__ & ": INCONC: Message was not received in due time. ***");
                }
            } // End of alt
                        
            // Postamble
            f_postamble_MME();
@@ -1690,6 +1713,8 @@ module DiameterS6a_MME_TCFunctions {
        function f_TC_MME_AIR_02() runs on TestAdapter {
            
            // Local variables
            var User_Name_AVP               v_user_Name         := md_user_Name ( PX_USR_NAME );
            var Auth_Session_State_AVP        v_noStateMaintained := md_auth_Session_State_noStateMaintained;
            
            // Preamble
            f_preamble_MME();
@@ -1698,8 +1723,29 @@ module DiameterS6a_MME_TCFunctions {
            
            // Test Body
            // Clause 'when'
            action("Trigger a synchronization failure during UTRAN or GERAN authentication.");
            
            // Clause 'then'
            tc_ac.start;
            alt {
                []  HSS_S6a.receive ( mw_mmeAuthenticationInformationRequest ( mdw_AIR_TCs ( vc_sessionId, mdw_airBodyAvps (
                                v_noStateMaintained,                    // containing an Auth-Session-State AVP indicating NO_STATE_MAINTAINED
                                vc_originHost,                          // containing an Origin-Host AVP
                                vc_originRealm,                         // containing an Origin-Realm AVP
                                vc_destinationRealm,                    // containing a Destination-Realm AVP
                                v_user_Name,                            // containing an User-Name AVP
                                ?,                                      // Visited_PLMN_Id_AVP
                                mw_reqEUTRANAuthInfo_noReSynInfo ifpresent, // Req_EUTRAN_Auth_Info_AVP
                                mw_reqUTRANGERANAuthInfo_withReSynInfo  // Req_UTRAN_GERAN_Auth_Info_AVP
                                )))) {                   
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                    log("*** " & __SCOPE__ & ": PASS: Expected was received. ***");
                }
                []  tc_ac.timeout {
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
                    log("*** " & __SCOPE__ & ": INCONC: Message was not received in due time. ***");
                }
            } // End of alt
                        
            // Postamble
            f_postamble_MME();
@@ -1711,6 +1757,8 @@ module DiameterS6a_MME_TCFunctions {
        function f_TC_MME_AIR_03() runs on TestAdapter {
            
            // Local variables
            var User_Name_AVP               v_user_Name         := md_user_Name ( PX_USR_NAME );
            var Auth_Session_State_AVP        v_noStateMaintained := md_auth_Session_State_noStateMaintained;
            
            // Preamble
            f_preamble_MME();
@@ -1719,8 +1767,42 @@ module DiameterS6a_MME_TCFunctions {
            
            // Test Body
            // Clause 'when'
            action("Trigger a Authentication Information Request.");
            
            // Clause 'then'
            tc_ac.start;
            alt {
                []  HSS_S6a.receive ( mw_mmeAuthenticationInformationRequest ( mdw_AIR_TCs ( vc_sessionId, mdw_airBodyAvps (
                                v_noStateMaintained,                    // containing an Auth-Session-State AVP indicating NO_STATE_MAINTAINED
                                vc_originHost,                          // containing an Origin-Host AVP
                                vc_originRealm,                         // containing an Origin-Realm AVP
                                vc_destinationRealm,                    // containing a Destination-Realm AVP
                                v_user_Name,                            // containing an User-Name AVP
                                ?,                                      // Visited_PLMN_Id_AVP
                                mw_reqEUTRANAuthInfo_ImRespPre(omit),   // Req_EUTRAN_Auth_Info_AVP
                                mw_reqUTRANGERANAuthInfo_ImRespPre(?)   // Req_UTRAN_GERAN_Auth_Info_AVP
                                )))) {                   
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                    log("*** " & __SCOPE__ & ": PASS: Expected was received. ***");
                }
                []  HSS_S6a.receive ( mw_mmeAuthenticationInformationRequest ( mdw_AIR_TCs ( vc_sessionId, mdw_airBodyAvps (
                                v_noStateMaintained,                    // containing an Auth-Session-State AVP indicating NO_STATE_MAINTAINED
                                vc_originHost,                          // containing an Origin-Host AVP
                                vc_originRealm,                         // containing an Origin-Realm AVP
                                vc_destinationRealm,                    // containing a Destination-Realm AVP
                                v_user_Name,                            // containing an User-Name AVP
                                ?,                                      // Visited_PLMN_Id_AVP
                                mw_reqEUTRANAuthInfo_ImRespPre(?),      // Req_EUTRAN_Auth_Info_AVP
                                mw_reqUTRANGERANAuthInfo_ImRespPre(omit) // Req_UTRAN_GERAN_Auth_Info_AVP
                                )))) {                   
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                    log("*** " & __SCOPE__ & ": PASS: Expected was received. ***");
                }
                []  tc_ac.timeout {
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
                    log("*** " & __SCOPE__ & ": INCONC: Message was not received in due time. ***");
                }
            } // End of alt
                        
            // Postamble
            f_postamble_MME();
+1619 −1515
Original line number Diff line number Diff line
@@ -816,6 +816,54 @@ module DiameterS6a_Templates {
                    aVP_Type       := *
                } // End of template mw_e_UTRAN_Vector_dummy

                template Req_EUTRAN_Auth_Info_AVP mw_reqEUTRANAuthInfo_dummy := {
                    aVP_Header                      := m_aVP_HeaderVid_Mbit1 ( c_requested_EUTRAN_Authentication_Info_AVP_Code, 4, c_vendId3gpp ),
                    number_Of_Requested_Vectors     := *,
                    immediate_Response_Preferred    := *,
                    re_synchronization_Info         := *,
                    aVP_Type                        := *
                } // End of template mw_reqEUTRANAuthInfo_dummy

                template Req_EUTRAN_Auth_Info_AVP mw_reqEUTRANAuthInfo_ImRespPre 
                         (template Immediate_Response_Preferred_AVP p_immediateResponsePreferred)
                modifies mw_reqEUTRANAuthInfo_dummy := {
                    immediate_Response_Preferred    := p_immediateResponsePreferred
                } // End of template mw_reqEUTRANAuthInfo_ImRespPre

                template Req_EUTRAN_Auth_Info_AVP mw_reqEUTRANAuthInfo_noReSynInfo 
                modifies mw_reqEUTRANAuthInfo_dummy := {
                    re_synchronization_Info         := omit
                } // End of template mw_reqEUTRANAuthInfo_noReSynInfo

                template Req_EUTRAN_Auth_Info_AVP mw_reqEUTRANAuthInfo_withReSynInfo 
                modifies mw_reqEUTRANAuthInfo_dummy := {
                    re_synchronization_Info         := ?
                } // End of template mw_reqEUTRANAuthInfo_withReSynInfo

                template Req_UTRAN_GERAN_Auth_Info_AVP mw_reqUTRANGERANAuthInfo_dummy := {
                    aVP_Header                      := m_aVP_HeaderVid_Mbit1 ( c_requested_UTRAN_GERAN_Authentication_Info_AVP_Code, 4, c_vendId3gpp ),
                    number_Of_Requested_Vectors     := *,
                    immediate_Response_Preferred    := *,
                    re_synchronization_Info         := *,
                    aVP_Type                        := *
                } // End of template mw_reqUTRANGERANAuthInfo_dummy

                template Req_UTRAN_GERAN_Auth_Info_AVP mw_reqUTRANGERANAuthInfo_ImRespPre 
                         (template Immediate_Response_Preferred_AVP p_immediateResponsePreferred)
                modifies mw_reqUTRANGERANAuthInfo_dummy := {
                    immediate_Response_Preferred    := p_immediateResponsePreferred
                } // End of template mw_reqUTRANGERANAuthInfo_ImRespPre

                template Req_UTRAN_GERAN_Auth_Info_AVP mw_reqUTRANGERANAuthInfo_noReSynInfo :=
                modifies mw_reqUTRANGERANAuthInfo_dummy:= {
                    re_synchronization_Info         := omit
                } // End of template mw_reqUTRANGERANAuthInfo_noReSynInfo

                template Req_UTRAN_GERAN_Auth_Info_AVP mw_reqUTRANGERANAuthInfo_withReSynInfo 
                modifies mw_reqUTRANGERANAuthInfo_dummy:= {
                    re_synchronization_Info         := ?
                } // End of template mw_reqUTRANGERANAuthInfo_withReSynInfo
                                
            } // End of group awaitingTemplatesForAVPs
            
        } // End of group SpecificAVPHeaders
@@ -1836,6 +1884,14 @@ module DiameterS6a_Templates {
                    aIA_MSG := p_aIA_MSG
                } // End of template mw_mmeAuthenticationInformationAnswer
                
                /**
                * @desc Main receive template for MME_S6a port
                * @param p_s6a_AIR_MSG Request receive template message
                */
                template (present) DIAMETER_MSG mw_mmeAuthenticationInformationRequest(in template (present) AIR_MSG p_aIR_MSG) := {
                    aIR_MSG := p_aIR_MSG
                } // End of template mw_mmeAuthenticationInformationRequest
                
                /**
                * @desc Main receive template for MME_S6a port
                * @param p_rSR_MSG RS-Request receive template message
@@ -2957,6 +3013,19 @@ module DiameterS6a_Templates {
                    rSA_Body    := p_rsaBody
                } // End of template mdw_RSA_TCs
                                
                /**
                * @desc Send template for AIR
                * @param p_sessionId   Session identifier
                * @param p_airBody     AIR message body
                */
                template (present) AIR_MSG mdw_AIR_TCs (
                    in template (present) Session_Id_AVP p_sessionId,
                    in template (present) AIR_Body_AVP p_airBody
                ) modifies mw_S6a_AIR_dummy := {
                    session_Id  := p_sessionId,
                    aIR_Body    := p_airBody
                } // End of template mdw_AIR_TCs
                
                /**
                * @desc Receive templates for TC_MME_UL_01
                */
@@ -3217,6 +3286,41 @@ module DiameterS6a_Templates {
                    
                } // End of group t_TC_MME_NOT_01

                /**
                * @desc Receive templates for TC_MME_NOT_01
                */
                group t_TC_MME_AIR {
                    
                    /**
                    * @desc Receive template for AIR message body
                    * @param p_auth_Session_State  TODO
                    * @param p_originHost          TODO
                    * @param p_originRealm         TODO
                    * @param p_destinationRealm    TODO
                    * @param p_user_Name           TODO
                    */
                    template (present) AIR_Body_AVP mdw_airBodyAvps(
                        in template (present) Auth_Session_State_AVP p_auth_Session_State,
                        in template (present) Origin_Host_AVP p_originHost,
                        in template (present) Origin_Realm_AVP p_originRealm,
                        in template (present) Destination_Realm_AVP p_destinationRealm,
                        in template (present) User_Name_AVP p_user_Name,
                        in template (present) Visited_PLMN_Id_AVP p_visitedPlmnId,
                        in template Req_EUTRAN_Auth_Info_AVP p_reqEutranAuthInfo,
                        in template Req_UTRAN_GERAN_Auth_Info_AVP p_reqUtranGeranAuthInfo
                    ) modifies mw_S6a_AIR_Body_dummy := {
                        origin_Host         := p_originHost,
                        origin_Realm        := m_originRealm_dummy,
                        destination_Realm   := p_destinationRealm,
                        auth_Session_State  := p_auth_Session_State,
                        user_Name           := p_user_Name,
                        visited_PLMN_Id                 := p_visitedPlmnId,
                        req_EUTRAN_Auth_Info            := p_reqEutranAuthInfo,
                        req_UTRAN_GERAN_Auth_Info       := p_reqUtranGeranAuthInfo
                    } // End of template mdw_airBodyAvps_TC_01
                    
                } // End of group t_TC_MME_AIR
                
            } // End of group S6aModified_request_templates_receive

            group S6aModified_answer_templates_send {