Commit 33cb68ef authored by rennoch's avatar rennoch
Browse files

HSM_01/02

parent 1bb8fd79
Loading
Loading
Loading
Loading
+122 −5
Original line number Diff line number Diff line
@@ -11,6 +11,7 @@ module DiameterS9_S9_TCFunctions {
    import from LibCommon_VerdictControl all ;

    // LibDiameter
    import from LibDiameter_Types_S9_AVPs all;
    import from LibDiameter_TypesAndValues all;
    import from LibDiameter_Templates all;
    import from LibDiameter_Interface all;
@@ -69,8 +70,6 @@ module DiameterS9_S9_TCFunctions {

                //TODO: function have to be declared in S9_steps: f_preamble_VPCRF();

                //f_initiate_session_HPCRF();

                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync

                f_send_CCR(m_CCR_InitialRequest_SubID_AnGw_BBERFatt(vc_sessionId,
@@ -79,15 +78,14 @@ module DiameterS9_S9_TCFunctions {
                                                vc_destinationRealm,
                                                f_framedIpAddress4_send(PX_UE1_framedIpAddress),
                                                f_framedIpAddress6_send(PX_UE1_framedIp6Address),
                								{m_subscription_Id(valueof(m_subscription_Id_Type(PX_SUBSCRIPTION_ID_TYPE)),
                								{m_subscription_Id(valueof(m_subscription_Id_Type(END_USER_IMSI_E)),
                								    valueof(m_subscription_Id_Data(PX_SUBSCRIPTION_ID_DATA)))},
                                                {m_anGwAddress(f_IPAdress(PX_SGW_AGW_ipv4,PX_SGW_AGW_ipv6))},
                								m_qoS_Information_dummy // BBERF attributes TODO: to check more required AVPs         								    
                								)
                                                );

				// TODO: p_qosRuleInstall:=? 
                f_awaiting_CCA(mw_CCA_ResultCode_BearerControlMode(vc_sessionId, vc_originHost_IUT, vc_originRealm_IUT, mw_resultCode(mw_resultCode_diameterSuccess)));
                f_awaiting_CCA(mw_CCA_ResultCode_QosRuleInstall(vc_sessionId, vc_originHost_IUT, vc_originRealm_IUT, mw_resultCode(mw_resultCode_diameterSuccess),?));

                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync

@@ -100,8 +98,127 @@ module DiameterS9_S9_TCFunctions {

            } // end function TC_HPCRF_HSE_01


            /*
            *  @desc    This is the test case function TC_PCRF_HA_02
            *  @param
            */
            function f_TC_HPCRF_HSE_02()
            runs on DiameterComponent {

                //TODO: function have to be declared in S9_steps: f_preamble_VPCRF();

                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync

                f_send_CCR(m_CCR_InitialRequest_SubID_AnGw_BBERFatt_SubSessEnfInf(vc_sessionId,
                                                vc_originHost,
                                                vc_originRealm,
                                                vc_destinationRealm,
                                                f_framedIpAddress4_send(PX_UE1_framedIpAddress),
                                                f_framedIpAddress6_send(PX_UE1_framedIp6Address),
                								{m_subscription_Id(valueof(m_subscription_Id_Type(END_USER_IMSI_E)),
                								    valueof(m_subscription_Id_Data(PX_SUBSCRIPTION_ID_DATA)))},
                                                {m_anGwAddress(f_IPAdress(PX_SGW_AGW_ipv4,PX_SGW_AGW_ipv6))},
                								m_qoS_Information_dummy, // BBERF attributes TODO: to check more required AVPs         								    
                								{m_subsesEnforcementInfo_Operation(m_subsessionId_dummy(1),
                								    		m_subsessionOperation_dummy(Subsession_Operation_Code:ESTABLISHMENT_E))}
                                                ));

                f_awaiting_CCA(mw_CCA_ResultCode_SubsesDecInfo(vc_sessionId,
                    vc_originHost_IUT, vc_originRealm_IUT,
                    mw_resultCode(mw_resultCode_diameterSuccess),
                    {mw_SubsesDecisionInfo_qosRuleInstall(mw_subsessionId_dummy(1),?)}) );

                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync

                //session termination
                f_terminate_session_HPCRF();

                //TODO: function have to be declared in S9_steps: f_postamble_VPCRF();

                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

            } // end function TC_HPCRF_HSE_02

        } // group TP_HPCRFRole_HSE
        
        group TP_HPCRFRole_HSM {//S9 Session Modification

            /*
            *  @desc    This is the test case function TC_PCRF_HA_01
            *  @param
            */
            function f_TC_HPCRF_HSM_01()
            runs on DiameterComponent {

                //TODO: function have to be declared in S9_steps: f_preamble_VPCRF();
                
                f_initiate_session_HPCRF();

                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync

                f_send_CCR(m_CCR_UpdateRequest(vc_sessionId,
                                                vc_originHost,
                                                vc_originRealm,
                                                vc_destinationRealm,
												{m_qoSRuleReport_dummy},
                								m_qoS_Information_dummy // BBERF attributes TODO: to check more required AVPs         								    
                								)
                                                );

                f_awaiting_CCA(mw_CCA_ResultCode_QosRuleInstall(vc_sessionId, vc_originHost_IUT, vc_originRealm_IUT, mw_resultCode(mw_resultCode_diameterSuccess),?));

                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync

                //session termination
                f_terminate_session_HPCRF();

                //TODO: function have to be declared in S9_steps: f_postamble_VPCRF();

                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

            } // end function TC_HPCRF_HSM_01

            /*
            *  @desc    This is the test case function TC_PCRF_HA_02
            *  @param
            */
            function f_TC_HPCRF_HSM_02()
            runs on DiameterComponent {

                //TODO: function have to be declared in S9_steps: f_preamble_VPCRF();
                
                f_initiate_session_HPCRF();

                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync

                f_send_CCR(m_CCR_UpdateRequest_SubSessEnfInf(vc_sessionId,
                                                vc_originHost,
                                                vc_originRealm,
                                                vc_destinationRealm,
                                                {m_qoSRuleReport_dummy},
                                                m_qoS_Information_dummy, // BBERF attributes TODO: to check more required AVPs 
                								{m_subsesEnforcementInfo_Operation(m_subsessionId_dummy(1),
                            							m_subsessionOperation_dummy(Subsession_Operation_Code:MODIFICATION_E))}                                                        								    
                                                )
                                                );

                f_awaiting_CCA(mw_CCA_ResultCode_QosRuleInstall(vc_sessionId, vc_originHost_IUT, vc_originRealm_IUT, mw_resultCode(mw_resultCode_diameterSuccess),?));

                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync

                //session termination
                f_terminate_session_HPCRF();

                //TODO: function have to be declared in S9_steps: f_postamble_VPCRF();

                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

            } // end function TC_HPCRF_HSM_02


        } // group TP_HPCRFRole_HSM        

    } // group TP_HPCRFRole    

    group TP_VPCRFRole{ // §5.2.2
+98 −10
Original line number Diff line number Diff line
@@ -398,7 +398,7 @@ module DiameterS9_Templates {
                aVP_Data						:= p_avpData
			}

            template Subsession_Operation_AVP m_subsessionOperation_dummy  ( template Subsession_Operation_Code p_avpData ) := {
            template Subsession_Operation_AVP m_subsessionOperation_dummy  ( template (value) Subsession_Operation_Code p_avpData ) := {
                aVP_Header						:= m_aVP_HeaderVid_Mbit1 ( 	c_subsession_Operation_AVP_Code,
                                											lengthof ( encvalue ( p_avpData ) ) / 8,
                															c_vendId3gpp ),
@@ -586,6 +586,12 @@ module DiameterS9_Templates {
                    aVP_Data := p_avpData
                }
                
                template Subses_Enforcement_Info_AVP m_subsesEnforcementInfo_Operation  
                	( template Subsession_Id_AVP p_subsessionId, template Subsession_Operation_AVP p_subsessionOperation ) modifies m_subsesEnforcementInfo_dummy:= 
                {
                    subsession_Operation := p_subsessionOperation
                }
                
          	}//end group sendingTemplatesForAVPs
          	group awaitingTemplatesForAVPs{

@@ -606,6 +612,14 @@ module DiameterS9_Templates {
                    aVP_Header := mw_aVP_Header_Vbit0Mbit1(c_cC_Request_Type_AVP_Code),
                    aVP_Data := p_avpData
                }
                
                template Subses_Decision_Info_AVP mw_SubsesDecisionInfo_qosRuleInstall  ( template (present) Subsession_Id_AVP p_subsessionId, 
                			template Subses_Decision_Info_AVP.qoS_Rule_Install p_qosRuleInstall) 
                			modifies mw_SubsesDecisionInfo_dummy := 
                {
                    qoS_Rule_Install				:= p_qosRuleInstall
                }
                
			}//end group awaitingTemplatesForAVPs
        } //end group SpecificAVPHeaders
    } //end group HeaderFieldTemplates
@@ -857,16 +871,38 @@ module DiameterS9_Templates {
                                                                           template Framed_IP_Address_AVP p_framedIpAddress,
                                                                           template Framed_IPv6_Prefix_AVP p_framedIp6Address,
                                                                           template CCR_MSG.cCR_Body.subscription_Id p_subscriptionId,
                                                                           template CCR_MSG.cCR_Body.aN_GW_Address p_aN_GW_Address,
                                                                           template QoS_Information_AVP p_qosInformation
                                                                           template CCR_MSG.cCR_Body.aN_GW_Address p_anGwAddress,
                														   // BBERF attributes TODO: to check more required AVPs 
                                                                           template QoS_Information_AVP p_qosInformation 
                                                                        )
                modifies m_CCR_InitialRequest := {
                    cCR_Body := {
                        subscription_Id       := p_subscriptionId
                        subscription_Id       := p_subscriptionId,
                        aN_GW_Address		  := p_anGwAddress,
                        qoS_Information 	  := p_qosInformation // BBERF attributes
                    }
                }

            
                template CCR_MSG m_CCR_InitialRequest_SubID_AnGw_BBERFatt_SubSessEnfInf (template Session_Id_AVP		p_sessionId,
                                                                           template Origin_Host_AVP	p_originHost,
                                                                           template Origin_Realm_AVP p_originRealm,
                                                                           template Destination_Realm_AVP p_destinationRealm,
                                                                           template Framed_IP_Address_AVP p_framedIpAddress,
                                                                           template Framed_IPv6_Prefix_AVP p_framedIp6Address,
                                                                           template CCR_MSG.cCR_Body.subscription_Id p_subscriptionId,
                                                                           template CCR_MSG.cCR_Body.aN_GW_Address p_anGwAddress,
                                                                           // BBERF attributes TODO: to check more required AVPs 
                                                                           template QoS_Information_AVP p_qosInformation,
                                                                           template CCR_MSG.cCR_Body.subsesion_Enforcement_Info p_subsesionEnforcementInfo
                                                                        )
                modifies m_CCR_InitialRequest_SubID_AnGw_BBERFatt := {
                    cCR_Body := {
                        subsesion_Enforcement_Info       := p_subsesionEnforcementInfo
                    }
                }

                
                template CCR_MSG m_CCR_TerminationRequest(template Session_Id_AVP p_sessionId,
                                            template Origin_Host_AVP p_originHost,
                                            template Origin_Realm_AVP p_originRealm,
@@ -879,6 +915,41 @@ module DiameterS9_Templates {
                    }
                }
                
                template CCR_MSG m_CCR_UpdateRequest (template Session_Id_AVP         p_sessionId,
                                                       template Origin_Host_AVP        p_originHost,
                                                       template Origin_Realm_AVP       p_originRealm,
                                                       template Destination_Realm_AVP  p_destinationRealm,
                                                       template CCR_MSG.cCR_Body.qoS_Rule_Report p_qoSRuleReport,
                                                       // BBERF attributes TODO: to check more required AVPs 
                                                       template QoS_Information_AVP p_qosInformation
                                                      )
                modifies m_CCR_basic := {
                    cCR_Body := {
                        cC_Request_Type       := m_cC_Request_Type ( UPDATE_REQUEST_E ),
                        qoS_Rule_Report       := p_qoSRuleReport,
                        qoS_Information 	  := p_qosInformation // BBERF attributes
                    }
                }                                

                
                template CCR_MSG m_CCR_UpdateRequest_SubSessEnfInf (template Session_Id_AVP         p_sessionId,
                                                       template Origin_Host_AVP        p_originHost,
                                                       template Origin_Realm_AVP       p_originRealm,
                                                       template Destination_Realm_AVP  p_destinationRealm,
                                                       template CCR_MSG.cCR_Body.qoS_Rule_Report p_qoSRuleReport,
                                                       // BBERF attributes TODO: to check more required AVPs 
                                                       template QoS_Information_AVP p_qosInformation,
                                                       template CCR_MSG.cCR_Body.subsesion_Enforcement_Info p_subsesionEnforcementInfo
                                                      )
                modifies m_CCR_basic := {
                    cCR_Body := {
                        cC_Request_Type       := m_cC_Request_Type ( UPDATE_REQUEST_E ),
                        qoS_Rule_Report       := p_qoSRuleReport,
                        qoS_Information 	  := p_qosInformation, // BBERF attributes
                        subsesion_Enforcement_Info       := p_subsesionEnforcementInfo
                    }
                }
                
            } //     end group S9modified_request_templates_send
            group S9modified_request_templates_receive {
            } //     end group S9modified_request_templates_receive
@@ -896,18 +967,35 @@ module DiameterS9_Templates {
                    }
                }

                template CCA_MSG mw_CCA_ResultCode_BearerControlMode(template (present) Session_Id_AVP   p_sessionId,
                template CCA_MSG mw_CCA_ResultCode_QosRuleInstall(template (present) Session_Id_AVP   p_sessionId,
                                                                     template (present) Origin_Host_AVP  p_originHost,
                                                                     template (present) Origin_Realm_AVP p_originRealm,
                                                                     template (present) Result_Code_AVP  p_resultCode,
                                                                     template (present) CCA_MSG.cCA_Body.qoS_Rule_Install p_qosRuleInstall
                                                                    ) 
                modifies mw_CCA_basic := {
                    cCA_Body := {
                        result_Code           := p_resultCode,
                        qoS_Rule_Install      := p_qosRuleInstall
                    }
            	}
            	

                template CCA_MSG mw_CCA_ResultCode_SubsesDecInfo(template (present) Session_Id_AVP   p_sessionId,
                                                                     template (present) Origin_Host_AVP  p_originHost,
                                                                     template (present) Origin_Realm_AVP p_originRealm,
                                                                     template (present) Result_Code_AVP  p_resultCode //,
                                                                     //  TODO template (present) QoS_Rule_Install_AVP p_qosRuleInstall
                                                                     template (present) Result_Code_AVP  p_resultCode,
                                                                     template (present) CCA_MSG.cCA_Body.subsession_Decision_Info p_subsessionDecisionInfo
                                                                    ) 
                modifies mw_CCA_basic := {
                    cCA_Body := {
                        result_Code           := p_resultCode,
                        qoS_Rule_Install      := ?
                        subsession_Decision_Info      := p_subsessionDecisionInfo
                    }
                }
                
                            	
            	
        	} // end group S9modified_answer_templates_receive
    	} //end group S9modified_templates
	} //end group S9MessageTemplates