Loading DiameterGx/ttcn/DiameterGx_Gx_TCFunctions.ttcn +121 −2 Original line number Diff line number Diff line Loading @@ -89,7 +89,9 @@ module DiameterGx_Gx_TCFunctions { f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_awaiting_CCA(mw_CCA_ResultCode_BearerControlMode(vc_sessionId, vc_originHost, vc_originRealm, mw_resultCode(mw_resultCode_diameterSuccess))); f_awaiting_CCA(mw_CCA_ResultCode_BearerControlMode(vc_sessionId, vc_originHost, vc_originRealm, mw_resultCode(mw_resultCode_diameterSuccess), mw_bearerControlMode(UE_NW_E))); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync Loading Loading @@ -588,7 +590,7 @@ module DiameterGx_Gx_TCFunctions { //modification of PCC rule f_awaiting_RAR(mw_RAR_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, vc_destinationHost, mw_chrgRuleInstall_Definition)); mw_chrgRuleInstall_Definition(mw_chrgRuleDefinition))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync Loading Loading @@ -673,8 +675,125 @@ module DiameterGx_Gx_TCFunctions { } // end function f_TC_PCRF_PCC_07 /* * @desc This is the test case function TC_PCRF_PCC_08 * @param */ function f_TC_PCRF_PCC_08() runs on DiameterComponent { f_preamble_PCEF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync //establishement of the session f_send_CCR(m_CCR_InitialRequest_OnlineOffline(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(),f_framedIpAddress6_send())); f_awaiting_CCA(mw_CCA_ResultCode_OnlineOffline(vc_sessionId, vc_originHost, vc_originRealm, mw_resultCode(mw_resultCode_diameterSuccess))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_postamble_PCEF(); } // end function f_TC_PCRF_PCC_08 /* * @desc This is the test case function TC_PCRF_PCC_09 * @param */ function f_TC_PCRF_PCC_09() runs on DiameterComponent { f_preamble_PCEF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync //establishement of the session f_send_CCR(m_CCR_InitialRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(),f_framedIpAddress6_send())); f_awaiting_CCA(mw_CCA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, mw_resultCode(mw_resultCode_diameterSuccess))); //remove group of PCC rules f_awaiting_RAR(mw_RAR_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, vc_destinationHost, mw_chrgRuleInstall_Definition(mw_chrgRuleDefinition_qosInfoNoBearerID))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_send_RAA(m_RAA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, m_resultCode(m_resultCode_diameterSuccess))); //postamble //session termination f_send_CCR(m_CCR_TerminationRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm)); f_awaiting_CCA(mw_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm)); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_postamble_PCEF(); } // end function f_TC_PCRF_PCC_09 }//end group TP_PCRFRole_PCC group TP_PCRFRole_EMS { //Emergency services /* * @desc This is the test case function TC_PCRF_EMS_01 * @param */ function f_TC_PCRF_EMS_01() runs on DiameterComponent { f_preamble_PCEF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync //establishement of the session f_send_CCR(m_CCR_InitialRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(),f_framedIpAddress6_send())); f_awaiting_CCA(mw_CCA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, mw_resultCode(mw_resultCode_diameterSuccess))); //remove group of PCC rules f_awaiting_RAR(mw_RAR_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, vc_destinationHost, mw_chrgRuleInstall_Definition(mw_chrgRuleDefinition_qosInfo_AllocRetPrio))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_send_RAA(m_RAA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, m_resultCode(m_resultCode_diameterSuccess))); //postamble //session termination f_send_CCR(m_CCR_TerminationRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm)); f_awaiting_CCA(mw_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm)); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_postamble_PCEF(); } // end function f_TC_PCRF_EMS_01 /* * @desc This is the test case function TC_PCRF_EMS_02 * @param */ function f_TC_PCRF_EMS_02() runs on DiameterComponent { f_preamble_PCEF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync //establishement of the session with Called-Station-Id: set value emergency APN with PX_CALLED_STATION_ID_DATA f_send_CCR(m_CCR_InitialRequest_CalledStationId(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(),f_framedIpAddress6_send())); f_awaiting_CCA(mw_CCA_ResultCode_BearerControlMode(vc_sessionId, vc_originHost, vc_originRealm, mw_resultCode(mw_resultCode_diameterSuccess), mw_bearerControlMode(?))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_postamble_PCEF(); } // end function f_TC_PCRF_EMS_02 }//end group TP_PCRFRole_EMS group TP_PCRFRole_UMC { //Usage monitoring control }//end group TP_PCRFRole_UMC Loading DiameterGx/ttcn/DiameterGx_PIXITS.ttcn +11 −1 Original line number Diff line number Diff line Loading @@ -253,6 +253,16 @@ module DiameterGx_PIXITS */ modulepar Rule_Failure_Code PX_RULE_FAILURE_CODE := UNKNOWN_RULE_NAME_E; /** @desc enumerated type PCC_Rule_Status, PIXIT item A.1/ * avp_Data within Offline_AVP is of enumerated type Offline */ modulepar Offline PX_OFFLINE_DATA := DISABLE_OFFLINE_E; /** @desc enumerated type PCC_Rule_Status, PIXIT item A.1/ * avp_Data within Online_AVP is of enumerated type Online */ modulepar Online PX_ONLINE_DATA := ENABLE_ONLINE_E; } //end group DiameterCommonGxData } // end module DiameterGx_PIXITS No newline at end of file DiameterGx/ttcn/DiameterGx_Templates.ttcn +111 −21 Original line number Diff line number Diff line Loading @@ -121,6 +121,29 @@ module DiameterGx_Templates { aVP_Type := * } template QoS_Information_AVP mw_qoS_Information_dummy := { aVP_Header := mw_aVP_Header_any, qoS_Class_Identifier := *, max_Requested_Bandwidth_UL := *, max_Requested_Bandwidth_DL := *, guaranteed_Bitrate_UL := *, guaranteed_Bitrate_DL := *, bearer_Identifier := *, allocation_Retention_Priority := *, aPN_Aggregate_Max_Bitrate_UL := *, aPN_Aggregate_Max_Bitrate_DL := *, aVP_Type := * } template Allocation_Retention_Priority_AVP mw_allocRetentionPrio_dummy := { aVP_Header := mw_aVP_Header_any, priority_Level := ?, pre_emption_Capability := *, pre_emption_Vulnerability := * } } //end group DummyAVPHeaders group SpecificAVPHeaders { Loading Loading @@ -447,6 +470,18 @@ module DiameterGx_Templates { aVP_Data := p_avpData } template Offline_AVP m_offline(Offline p_avpData) := { aVP_Header := m_aVP_HeaderVid(c_vendIdOffline_AVP, 4, omit), aVP_Data := p_avpData } template Online_AVP m_online(Online p_avpData) := { aVP_Header := m_aVP_HeaderVid(c_vendIdOnline_AVP, 4, omit), aVP_Data := p_avpData } }//end group sendingTemplatesForAVPs group awaitingTemplatesForAVPs{ Loading Loading @@ -548,11 +583,10 @@ module DiameterGx_Templates { resource_Allocation_Notification := mw_resourceAllocNotif } template Charging_Rule_Install_AVP mw_chrgRuleInstall_Definition modifies mw_chrgRuleInstall_dummy := template Charging_Rule_Install_AVP mw_chrgRuleInstall_Definition(template Charging_Rule_Definition_AVP p_chrgRuleDefinition) modifies mw_chrgRuleInstall_dummy := { aVP_Header := mw_aVP_Header_any, charging_Rule_Definition := {mw_chrgRuleDefinition}, charging_Rule_Name := {mw_chrgRuleName} charging_Rule_Definition := {p_chrgRuleDefinition} } template Charging_Rule_Install_AVP mw_chrgRuleInstall_BaseName modifies mw_chrgRuleInstall_dummy:= Loading @@ -579,6 +613,29 @@ module DiameterGx_Templates { charging_Rule_Name := mw_chrgRuleName } template Charging_Rule_Definition_AVP mw_chrgRuleDefinition_qosInfoNoBearerID modifies mw_chrgRuleDefinition_dummy:= { aVP_Header := mw_aVP_Header_any, charging_Rule_Name := mw_chrgRuleName, qoS_Information := mw_qoSInfo_noBearerID } template Charging_Rule_Definition_AVP mw_chrgRuleDefinition_qosInfo_AllocRetPrio modifies mw_chrgRuleDefinition_dummy:= { aVP_Header := mw_aVP_Header_any, qoS_Information := mw_qoSInfo_allocRetPriority } template QoS_Information_AVP mw_qoSInfo_noBearerID modifies mw_qoS_Information_dummy := { bearer_Identifier := omit } template QoS_Information_AVP mw_qoSInfo_allocRetPriority modifies mw_qoS_Information_dummy := { allocation_Retention_Priority := mw_allocRetentionPrio_dummy } template Charging_Rule_Name_AVP mw_chrgRuleName:= { aVP_Header := mw_aVP_Header_any, Loading @@ -597,27 +654,30 @@ module DiameterGx_Templates { aVP_Data := ENABLE_NOTIFICATION_E } template Offline_AVP mw_offline_any := { aVP_Header := mw_aVP_Header_any, aVP_Data := ? } template Online_AVP mw_online_any := { aVP_Header := mw_aVP_Header_any, aVP_Data := ? } template Bearer_Control_Mode_AVP mw_bearerControlMode(template Bearer_Control_Mode p_aVP_Data) := { aVP_Header := mw_aVP_Header_any, aVP_Data := p_aVP_Data } }//end group awaitingTemplatesForAVPs } //end group SpecificAVPHeaders } //end group HeaderFieldTemplates /** Message templates for RAR, RAA, CCR, CCA.... methods */ group GxMessageTemplates { group Gxdummy_templates { group Gxdummy_request_templates_send { }//end group Gxdummy_request_templates_send group Gxdummy_request_templates_receive { }//end group Gxdummy_request_templates_receive group Gxdummy_answer_templates_send { }//end group Gxdummy_answer_templates_send group Gxdummy_answer_templates_receive { }//end group Gxdummy_answer_templates_receive } //end group Gxdummy_templates group Gxbase_templates { group Gxbasic_request_templates_send { Loading Loading @@ -790,6 +850,15 @@ module DiameterGx_Templates { event_Trigger := {m_event_Trigger(IP_CAN_CHANGE_E)} } template CCR_MSG m_CCR_InitialRequest_CalledStationId(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) modifies m_CCR_InitialRequest := { called_Station_Id := m_called_Station_Id(PX_CALLED_STATION_ID_DATA) } template CCR_MSG m_CCR_UpdateRequest_allReqAVPs(template Session_Id_AVP p_sessionId, template Origin_Host_AVP p_originHost, template Origin_Realm_AVP p_originRealm, Loading Loading @@ -867,6 +936,16 @@ module DiameterGx_Templates { cC_Request_Number := m_cC_Request_Number(1) } template CCR_MSG m_CCR_InitialRequest_OnlineOffline(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) modifies m_CCR_InitialRequest := { online := m_online(PX_ONLINE_DATA), offline := m_offline(PX_OFFLINE_DATA) } } // end group Gxmodified_request_templates_send group Gxmodified_request_templates_receive { Loading Loading @@ -956,10 +1035,11 @@ module DiameterGx_Templates { template CCA_MSG mw_CCA_ResultCode_BearerControlMode( template Session_Id_AVP p_sessionId, template Origin_Host_AVP p_originHost, template Origin_Realm_AVP p_originRealm, template Result_Code_AVP p_resultCode) modifies mw_CCA_basic := template Result_Code_AVP p_resultCode, template Bearer_Control_Mode_AVP p_bearerControleMode ) modifies mw_CCA_basic := { result_Code := p_resultCode, bearer_Control_Mode := ? bearer_Control_Mode := p_bearerControleMode } template CCA_MSG mw_CCA_PCCrules_ChrgRuleInstall( template Session_Id_AVP p_sessionId, Loading @@ -977,6 +1057,16 @@ module DiameterGx_Templates { experimental_Result := p_experimentalResult } template CCA_MSG mw_CCA_ResultCode_OnlineOffline( template Session_Id_AVP p_sessionId, template Origin_Host_AVP p_originHost, template Origin_Realm_AVP p_originRealm, template Result_Code_AVP p_resultCode) modifies mw_CCA_basic := { result_Code := p_resultCode, online := mw_online_any ifpresent, offline := mw_offline_any ifpresent } } // end group Gxmodified_answer_templates_receive } //end group Gxmodified_templates Loading DiameterGx/ttcn/DiameterGx_TestCases.ttcn +84 −0 Original line number Diff line number Diff line Loading @@ -482,9 +482,93 @@ module DiameterGx_TestCases f_cf_1GxEDown(v_diameterComponent_pcef); } // end TC_PCRF_PCC_07 /* * @desc TC_PCRF_PCC_08 * @param p_cSeq_s Transaction Id */ testcase TC_PCRF_PCC_08() runs on ServerSyncComp system TestAdapter { //Variables var DiameterComponent v_diameterComponent_pcef; f_cf_1GxEUp(v_diameterComponent_pcef); //Start v_diameterComponent_pcef.start(f_TC_PCRF_PCC_08()); // synchronize PTC on 3 sychronization points f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); f_cf_1GxEDown(v_diameterComponent_pcef); } // end TC_PCRF_PCC_08 /* * @desc TC_PCRF_PCC_09 * @param p_cSeq_s Transaction Id */ testcase TC_PCRF_PCC_09() runs on ServerSyncComp system TestAdapter { //Variables var DiameterComponent v_diameterComponent_pcef; f_cf_1GxEUp(v_diameterComponent_pcef); //Start v_diameterComponent_pcef.start(f_TC_PCRF_PCC_09()); // synchronize PTC on 3 sychronization points f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); f_cf_1GxEDown(v_diameterComponent_pcef); } // end TC_PCRF_PCC_09 }//end group TP_PCRFRole_PCC group TP_PCRFRole_EMS { //Emergency services /* * @desc TC_PCRF_EMS_01 * @param p_cSeq_s Transaction Id */ testcase TC_PCRF_EMS_01() runs on ServerSyncComp system TestAdapter { //Variables var DiameterComponent v_diameterComponent_pcef; f_cf_1GxEUp(v_diameterComponent_pcef); //Start v_diameterComponent_pcef.start(f_TC_PCRF_EMS_01()); // synchronize PTC on 3 sychronization points f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); f_cf_1GxEDown(v_diameterComponent_pcef); } // end TC_PCRF_EMS_01 /* * @desc TC_PCRF_EMS_02 * @param p_cSeq_s Transaction Id */ testcase TC_PCRF_EMS_02() runs on ServerSyncComp system TestAdapter { //Variables var DiameterComponent v_diameterComponent_pcef; f_cf_1GxEUp(v_diameterComponent_pcef); //Start v_diameterComponent_pcef.start(f_TC_PCRF_EMS_02()); // synchronize PTC on 3 sychronization points f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); f_cf_1GxEDown(v_diameterComponent_pcef); } // end TC_PCRF_EMS_02 }//end group TP_PCRFRole_EMS group TP_PCRFRole_UMC { //Usage monitoring control Loading Loading
DiameterGx/ttcn/DiameterGx_Gx_TCFunctions.ttcn +121 −2 Original line number Diff line number Diff line Loading @@ -89,7 +89,9 @@ module DiameterGx_Gx_TCFunctions { f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_awaiting_CCA(mw_CCA_ResultCode_BearerControlMode(vc_sessionId, vc_originHost, vc_originRealm, mw_resultCode(mw_resultCode_diameterSuccess))); f_awaiting_CCA(mw_CCA_ResultCode_BearerControlMode(vc_sessionId, vc_originHost, vc_originRealm, mw_resultCode(mw_resultCode_diameterSuccess), mw_bearerControlMode(UE_NW_E))); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync Loading Loading @@ -588,7 +590,7 @@ module DiameterGx_Gx_TCFunctions { //modification of PCC rule f_awaiting_RAR(mw_RAR_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, vc_destinationHost, mw_chrgRuleInstall_Definition)); mw_chrgRuleInstall_Definition(mw_chrgRuleDefinition))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync Loading Loading @@ -673,8 +675,125 @@ module DiameterGx_Gx_TCFunctions { } // end function f_TC_PCRF_PCC_07 /* * @desc This is the test case function TC_PCRF_PCC_08 * @param */ function f_TC_PCRF_PCC_08() runs on DiameterComponent { f_preamble_PCEF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync //establishement of the session f_send_CCR(m_CCR_InitialRequest_OnlineOffline(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(),f_framedIpAddress6_send())); f_awaiting_CCA(mw_CCA_ResultCode_OnlineOffline(vc_sessionId, vc_originHost, vc_originRealm, mw_resultCode(mw_resultCode_diameterSuccess))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_postamble_PCEF(); } // end function f_TC_PCRF_PCC_08 /* * @desc This is the test case function TC_PCRF_PCC_09 * @param */ function f_TC_PCRF_PCC_09() runs on DiameterComponent { f_preamble_PCEF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync //establishement of the session f_send_CCR(m_CCR_InitialRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(),f_framedIpAddress6_send())); f_awaiting_CCA(mw_CCA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, mw_resultCode(mw_resultCode_diameterSuccess))); //remove group of PCC rules f_awaiting_RAR(mw_RAR_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, vc_destinationHost, mw_chrgRuleInstall_Definition(mw_chrgRuleDefinition_qosInfoNoBearerID))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_send_RAA(m_RAA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, m_resultCode(m_resultCode_diameterSuccess))); //postamble //session termination f_send_CCR(m_CCR_TerminationRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm)); f_awaiting_CCA(mw_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm)); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_postamble_PCEF(); } // end function f_TC_PCRF_PCC_09 }//end group TP_PCRFRole_PCC group TP_PCRFRole_EMS { //Emergency services /* * @desc This is the test case function TC_PCRF_EMS_01 * @param */ function f_TC_PCRF_EMS_01() runs on DiameterComponent { f_preamble_PCEF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync //establishement of the session f_send_CCR(m_CCR_InitialRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(),f_framedIpAddress6_send())); f_awaiting_CCA(mw_CCA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, mw_resultCode(mw_resultCode_diameterSuccess))); //remove group of PCC rules f_awaiting_RAR(mw_RAR_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, vc_destinationHost, mw_chrgRuleInstall_Definition(mw_chrgRuleDefinition_qosInfo_AllocRetPrio))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_send_RAA(m_RAA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, m_resultCode(m_resultCode_diameterSuccess))); //postamble //session termination f_send_CCR(m_CCR_TerminationRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm)); f_awaiting_CCA(mw_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm)); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_postamble_PCEF(); } // end function f_TC_PCRF_EMS_01 /* * @desc This is the test case function TC_PCRF_EMS_02 * @param */ function f_TC_PCRF_EMS_02() runs on DiameterComponent { f_preamble_PCEF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync //establishement of the session with Called-Station-Id: set value emergency APN with PX_CALLED_STATION_ID_DATA f_send_CCR(m_CCR_InitialRequest_CalledStationId(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(),f_framedIpAddress6_send())); f_awaiting_CCA(mw_CCA_ResultCode_BearerControlMode(vc_sessionId, vc_originHost, vc_originRealm, mw_resultCode(mw_resultCode_diameterSuccess), mw_bearerControlMode(?))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_postamble_PCEF(); } // end function f_TC_PCRF_EMS_02 }//end group TP_PCRFRole_EMS group TP_PCRFRole_UMC { //Usage monitoring control }//end group TP_PCRFRole_UMC Loading
DiameterGx/ttcn/DiameterGx_PIXITS.ttcn +11 −1 Original line number Diff line number Diff line Loading @@ -253,6 +253,16 @@ module DiameterGx_PIXITS */ modulepar Rule_Failure_Code PX_RULE_FAILURE_CODE := UNKNOWN_RULE_NAME_E; /** @desc enumerated type PCC_Rule_Status, PIXIT item A.1/ * avp_Data within Offline_AVP is of enumerated type Offline */ modulepar Offline PX_OFFLINE_DATA := DISABLE_OFFLINE_E; /** @desc enumerated type PCC_Rule_Status, PIXIT item A.1/ * avp_Data within Online_AVP is of enumerated type Online */ modulepar Online PX_ONLINE_DATA := ENABLE_ONLINE_E; } //end group DiameterCommonGxData } // end module DiameterGx_PIXITS No newline at end of file
DiameterGx/ttcn/DiameterGx_Templates.ttcn +111 −21 Original line number Diff line number Diff line Loading @@ -121,6 +121,29 @@ module DiameterGx_Templates { aVP_Type := * } template QoS_Information_AVP mw_qoS_Information_dummy := { aVP_Header := mw_aVP_Header_any, qoS_Class_Identifier := *, max_Requested_Bandwidth_UL := *, max_Requested_Bandwidth_DL := *, guaranteed_Bitrate_UL := *, guaranteed_Bitrate_DL := *, bearer_Identifier := *, allocation_Retention_Priority := *, aPN_Aggregate_Max_Bitrate_UL := *, aPN_Aggregate_Max_Bitrate_DL := *, aVP_Type := * } template Allocation_Retention_Priority_AVP mw_allocRetentionPrio_dummy := { aVP_Header := mw_aVP_Header_any, priority_Level := ?, pre_emption_Capability := *, pre_emption_Vulnerability := * } } //end group DummyAVPHeaders group SpecificAVPHeaders { Loading Loading @@ -447,6 +470,18 @@ module DiameterGx_Templates { aVP_Data := p_avpData } template Offline_AVP m_offline(Offline p_avpData) := { aVP_Header := m_aVP_HeaderVid(c_vendIdOffline_AVP, 4, omit), aVP_Data := p_avpData } template Online_AVP m_online(Online p_avpData) := { aVP_Header := m_aVP_HeaderVid(c_vendIdOnline_AVP, 4, omit), aVP_Data := p_avpData } }//end group sendingTemplatesForAVPs group awaitingTemplatesForAVPs{ Loading Loading @@ -548,11 +583,10 @@ module DiameterGx_Templates { resource_Allocation_Notification := mw_resourceAllocNotif } template Charging_Rule_Install_AVP mw_chrgRuleInstall_Definition modifies mw_chrgRuleInstall_dummy := template Charging_Rule_Install_AVP mw_chrgRuleInstall_Definition(template Charging_Rule_Definition_AVP p_chrgRuleDefinition) modifies mw_chrgRuleInstall_dummy := { aVP_Header := mw_aVP_Header_any, charging_Rule_Definition := {mw_chrgRuleDefinition}, charging_Rule_Name := {mw_chrgRuleName} charging_Rule_Definition := {p_chrgRuleDefinition} } template Charging_Rule_Install_AVP mw_chrgRuleInstall_BaseName modifies mw_chrgRuleInstall_dummy:= Loading @@ -579,6 +613,29 @@ module DiameterGx_Templates { charging_Rule_Name := mw_chrgRuleName } template Charging_Rule_Definition_AVP mw_chrgRuleDefinition_qosInfoNoBearerID modifies mw_chrgRuleDefinition_dummy:= { aVP_Header := mw_aVP_Header_any, charging_Rule_Name := mw_chrgRuleName, qoS_Information := mw_qoSInfo_noBearerID } template Charging_Rule_Definition_AVP mw_chrgRuleDefinition_qosInfo_AllocRetPrio modifies mw_chrgRuleDefinition_dummy:= { aVP_Header := mw_aVP_Header_any, qoS_Information := mw_qoSInfo_allocRetPriority } template QoS_Information_AVP mw_qoSInfo_noBearerID modifies mw_qoS_Information_dummy := { bearer_Identifier := omit } template QoS_Information_AVP mw_qoSInfo_allocRetPriority modifies mw_qoS_Information_dummy := { allocation_Retention_Priority := mw_allocRetentionPrio_dummy } template Charging_Rule_Name_AVP mw_chrgRuleName:= { aVP_Header := mw_aVP_Header_any, Loading @@ -597,27 +654,30 @@ module DiameterGx_Templates { aVP_Data := ENABLE_NOTIFICATION_E } template Offline_AVP mw_offline_any := { aVP_Header := mw_aVP_Header_any, aVP_Data := ? } template Online_AVP mw_online_any := { aVP_Header := mw_aVP_Header_any, aVP_Data := ? } template Bearer_Control_Mode_AVP mw_bearerControlMode(template Bearer_Control_Mode p_aVP_Data) := { aVP_Header := mw_aVP_Header_any, aVP_Data := p_aVP_Data } }//end group awaitingTemplatesForAVPs } //end group SpecificAVPHeaders } //end group HeaderFieldTemplates /** Message templates for RAR, RAA, CCR, CCA.... methods */ group GxMessageTemplates { group Gxdummy_templates { group Gxdummy_request_templates_send { }//end group Gxdummy_request_templates_send group Gxdummy_request_templates_receive { }//end group Gxdummy_request_templates_receive group Gxdummy_answer_templates_send { }//end group Gxdummy_answer_templates_send group Gxdummy_answer_templates_receive { }//end group Gxdummy_answer_templates_receive } //end group Gxdummy_templates group Gxbase_templates { group Gxbasic_request_templates_send { Loading Loading @@ -790,6 +850,15 @@ module DiameterGx_Templates { event_Trigger := {m_event_Trigger(IP_CAN_CHANGE_E)} } template CCR_MSG m_CCR_InitialRequest_CalledStationId(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) modifies m_CCR_InitialRequest := { called_Station_Id := m_called_Station_Id(PX_CALLED_STATION_ID_DATA) } template CCR_MSG m_CCR_UpdateRequest_allReqAVPs(template Session_Id_AVP p_sessionId, template Origin_Host_AVP p_originHost, template Origin_Realm_AVP p_originRealm, Loading Loading @@ -867,6 +936,16 @@ module DiameterGx_Templates { cC_Request_Number := m_cC_Request_Number(1) } template CCR_MSG m_CCR_InitialRequest_OnlineOffline(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) modifies m_CCR_InitialRequest := { online := m_online(PX_ONLINE_DATA), offline := m_offline(PX_OFFLINE_DATA) } } // end group Gxmodified_request_templates_send group Gxmodified_request_templates_receive { Loading Loading @@ -956,10 +1035,11 @@ module DiameterGx_Templates { template CCA_MSG mw_CCA_ResultCode_BearerControlMode( template Session_Id_AVP p_sessionId, template Origin_Host_AVP p_originHost, template Origin_Realm_AVP p_originRealm, template Result_Code_AVP p_resultCode) modifies mw_CCA_basic := template Result_Code_AVP p_resultCode, template Bearer_Control_Mode_AVP p_bearerControleMode ) modifies mw_CCA_basic := { result_Code := p_resultCode, bearer_Control_Mode := ? bearer_Control_Mode := p_bearerControleMode } template CCA_MSG mw_CCA_PCCrules_ChrgRuleInstall( template Session_Id_AVP p_sessionId, Loading @@ -977,6 +1057,16 @@ module DiameterGx_Templates { experimental_Result := p_experimentalResult } template CCA_MSG mw_CCA_ResultCode_OnlineOffline( template Session_Id_AVP p_sessionId, template Origin_Host_AVP p_originHost, template Origin_Realm_AVP p_originRealm, template Result_Code_AVP p_resultCode) modifies mw_CCA_basic := { result_Code := p_resultCode, online := mw_online_any ifpresent, offline := mw_offline_any ifpresent } } // end group Gxmodified_answer_templates_receive } //end group Gxmodified_templates Loading
DiameterGx/ttcn/DiameterGx_TestCases.ttcn +84 −0 Original line number Diff line number Diff line Loading @@ -482,9 +482,93 @@ module DiameterGx_TestCases f_cf_1GxEDown(v_diameterComponent_pcef); } // end TC_PCRF_PCC_07 /* * @desc TC_PCRF_PCC_08 * @param p_cSeq_s Transaction Id */ testcase TC_PCRF_PCC_08() runs on ServerSyncComp system TestAdapter { //Variables var DiameterComponent v_diameterComponent_pcef; f_cf_1GxEUp(v_diameterComponent_pcef); //Start v_diameterComponent_pcef.start(f_TC_PCRF_PCC_08()); // synchronize PTC on 3 sychronization points f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); f_cf_1GxEDown(v_diameterComponent_pcef); } // end TC_PCRF_PCC_08 /* * @desc TC_PCRF_PCC_09 * @param p_cSeq_s Transaction Id */ testcase TC_PCRF_PCC_09() runs on ServerSyncComp system TestAdapter { //Variables var DiameterComponent v_diameterComponent_pcef; f_cf_1GxEUp(v_diameterComponent_pcef); //Start v_diameterComponent_pcef.start(f_TC_PCRF_PCC_09()); // synchronize PTC on 3 sychronization points f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); f_cf_1GxEDown(v_diameterComponent_pcef); } // end TC_PCRF_PCC_09 }//end group TP_PCRFRole_PCC group TP_PCRFRole_EMS { //Emergency services /* * @desc TC_PCRF_EMS_01 * @param p_cSeq_s Transaction Id */ testcase TC_PCRF_EMS_01() runs on ServerSyncComp system TestAdapter { //Variables var DiameterComponent v_diameterComponent_pcef; f_cf_1GxEUp(v_diameterComponent_pcef); //Start v_diameterComponent_pcef.start(f_TC_PCRF_EMS_01()); // synchronize PTC on 3 sychronization points f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); f_cf_1GxEDown(v_diameterComponent_pcef); } // end TC_PCRF_EMS_01 /* * @desc TC_PCRF_EMS_02 * @param p_cSeq_s Transaction Id */ testcase TC_PCRF_EMS_02() runs on ServerSyncComp system TestAdapter { //Variables var DiameterComponent v_diameterComponent_pcef; f_cf_1GxEUp(v_diameterComponent_pcef); //Start v_diameterComponent_pcef.start(f_TC_PCRF_EMS_02()); // synchronize PTC on 3 sychronization points f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); f_cf_1GxEDown(v_diameterComponent_pcef); } // end TC_PCRF_EMS_02 }//end group TP_PCRFRole_EMS group TP_PCRFRole_UMC { //Usage monitoring control Loading