Loading DiameterGx/ttcn/DiameterGx_Gx_TCFunctions.ttcn +217 −7 Original line number Diff line number Diff line Loading @@ -39,7 +39,7 @@ module DiameterGx_Gx_TCFunctions { f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync f_send_CCR(m_CCR_basic(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(),f_framedIpAddress6_send())); f_send_CCR(m_CCR_InitialRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(),f_framedIpAddress6_send())); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync Loading Loading @@ -85,7 +85,7 @@ module DiameterGx_Gx_TCFunctions { f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync f_send_CCR(m_CCR_NetworkRequestSupport(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(),f_framedIpAddress6_send())); f_send_CCR(m_CCR_InitialRequest_NetworkRequestSupport(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync Loading @@ -112,11 +112,11 @@ module DiameterGx_Gx_TCFunctions { f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync //establishement of the session f_send_CCR(m_CCR_basic(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(),f_framedIpAddress6_send())); 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))); //session modification f_send_CCR(m_CCR_basic(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(),f_framedIpAddress6_send())); f_send_CCR(m_CCR_UpdateRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm)); f_awaiting_CCA(mw_CCA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, mw_resultCode(mw_resultCode_diameterSuccess))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync Loading @@ -127,8 +127,218 @@ module DiameterGx_Gx_TCFunctions { } // end function f_TC_PCRF_MSI_01 /* * @desc This is the test case function TC_PCRF_MSI_02 * @param */ function f_TC_PCRF_MSI_02() 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))); //session modification f_send_CCR(m_CCR_UpdateRequest_allReqAVPs(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm)); f_awaiting_CCA(mw_CCA_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_postamble_PCEF(); } // end function f_TC_PCRF_MSI_02 /* * @desc This is the test case function TC_PCRF_MSI_03 * @param */ function f_TC_PCRF_MSI_03() 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))); //session modification f_send_CCR(m_CCR_UpdateRequest_UERequestForAllocResources( vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, m_pFInfo_Precedence_pFContent(m_precedence(PX_PRECEDENCE_DATA),m_packet_Filter_Content(m_iPFilterRule)), m_packet_Filter_Operation(ADDITION_E), m_qoS_Information_ClassIdentifier(QCI_1_E) )); f_awaiting_CCA(mw_CCA_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_postamble_PCEF(); } // end function f_TC_PCRF_MSI_03 /* * @desc This is the test case function TC_PCRF_MSI_04 * @param */ function f_TC_PCRF_MSI_04() 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))); //session modification f_send_CCR(m_CCR_UpdateRequest_UERequestForAllocResources( vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, m_pFInfo_PacketFilterId_FlowDirection(m_packet_Filter_Identifier(PX_PACKET_FILTER_IDENTIFIER_DATA)), m_packet_Filter_Operation(MODIFICATION_E), omit )); f_awaiting_CCA(mw_CCA_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_postamble_PCEF(); } // end function f_TC_PCRF_MSI_04 /* * @desc This is the test case function TC_PCRF_MSI_05 * @param */ function f_TC_PCRF_MSI_05() 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))); //session modification f_send_CCR(m_CCR_UpdateRequest_UERequestForAllocResources( vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, m_pFInfo_PacketFilterId(m_packet_Filter_Identifier(PX_PACKET_FILTER_IDENTIFIER_DATA)), m_packet_Filter_Operation(DELETION_E), omit )); f_awaiting_CCA(mw_CCA_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_postamble_PCEF(); } // end function f_TC_PCRF_MSI_05 /* * @desc This is the test case function TC_PCRF_MSI_06 * @param */ function f_TC_PCRF_MSI_06() 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))); //session modification f_send_CCR(m_CCR_UpdateRequest_NetworkRequestSupport(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm)); f_awaiting_CCA(mw_CCA_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_postamble_PCEF(); } // end function f_TC_PCRF_MSI_06 }//end group TP_PCRFRole_MSI group TP_PCRFRole_INV { //Invalid Behaviour /* * @desc This is the test case function TC_PCRF_INV_01 * @param */ function f_TC_PCRF_INV_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))); //session modification f_send_CCR(m_CCR_UpdateRequest_Invalid(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm)); f_awaiting_CCA(mw_CCA_ExperimentalResult(vc_sessionId, vc_originHost, vc_originRealm, mw_experimentalResult(DIAMETER_ERROR_TRAFFIC_MAPPING_INFO_REJECTED_E))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_postamble_PCEF(); } // end function f_TC_PCRF_INV_01 /* * @desc This is the test case function TC_PCRF_INV_02 * @param */ function f_TC_PCRF_INV_02() runs on DiameterComponent { f_preamble_PCEF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync //establishement of the session f_send_CCR(m_CCR_InitialRequest_Invalid(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(),f_framedIpAddress6_send())); f_awaiting_CCA(mw_CCA_ExperimentalResult(vc_sessionId, vc_originHost, vc_originRealm, mw_experimentalResult(DIAMETER_ERROR_TRAFFIC_MAPPING_INFO_REJECTED_E))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_postamble_PCEF(); } // end function f_TC_PCRF_INV_02 }//end group TP_PCRFRole_INV group TP_PCRFRole_ST { //Session Termination }//end group TP_PCRFRole_ST Loading Loading @@ -162,14 +372,14 @@ module DiameterGx_Gx_TCFunctions { f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync f_awaiting_CCR(mw_CCR_sessionRequest(vc_sessionId, f_awaiting_CCR(mw_CCR_InitialRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, mw_cC_Request_Type(INITIAL_REQUEST_E), f_framedIpAddress4(), f_framedIpAddress6(), ?)); *)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync Loading @@ -192,7 +402,7 @@ module DiameterGx_Gx_TCFunctions { f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync f_awaiting_CCR(mw_CCR_sessionRequest(vc_sessionId, f_awaiting_CCR(mw_CCR_InitialRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, Loading DiameterGx/ttcn/DiameterGx_PIXITS.ttcn +6 −1 Original line number Diff line number Diff line Loading @@ -248,6 +248,11 @@ module DiameterGx_PIXITS */ modulepar octetstring PX_PACKET_FILTER_IDENTIFIER_DATA := '08'O; /** @desc enumerated type PCC_Rule_Status, PIXIT item A.1/ * avp_Data within Rule_Failure_Code_AVP is of enumerated type Rule_Failure_Code */ modulepar Rule_Failure_Code PX_RULE_FAILURE_CODE := UNKNOWN_RULE_NAME_E; } //end group DiameterCommonGxData } // end module DiameterGx_PIXITS No newline at end of file DiameterGx/ttcn/DiameterGx_Templates.ttcn +98 −10 Original line number Diff line number Diff line Loading @@ -36,6 +36,18 @@ module DiameterGx_Templates { group DummyAVPHeaders{ template Charging_Rule_Report_AVP m_chargRuleReport_dummy := { aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Report_AVP, 0, omit), charging_Rule_Name := omit, charging_Rule_Base_Name := omit, bearer_Identifier := omit, pCC_Rule_Status := omit, rule_Failure_Code := omit, final_Unit_Indication := omit, aVP_Type := omit } template QoS_Information_AVP m_qoS_Information_dummy := { aVP_Header := m_aVP_HeaderVid(c_vendIdQoS_Information_AVP, 0, omit), Loading Loading @@ -294,16 +306,19 @@ module DiameterGx_Templates { aVP_Data := p_avpData } template Charging_Rule_Report_AVP m_charging_Rule_Report(Charging_Rule_Name_AVP p_crn, PCC_Rule_Status_AVP p_ccrs) := template Charging_Rule_Report_AVP m_chargRuleReport_RNameStatus(Charging_Rule_Name_AVP p_crn, PCC_Rule_Status_AVP p_ccrs) modifies m_chargRuleReport_dummy := { aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Report_AVP, lengthof(encvalue(p_crn))+lengthof(encvalue(p_ccrs)), omit), aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Report_AVP, lengthof(encvalue(p_crn))+12/*PCC_Rule_Status_AVP length*/, omit), charging_Rule_Name := {p_crn}, pCC_Rule_Status := p_ccrs } template Charging_Rule_Report_AVP m_chargRuleReport_RNameStatusFailure(Charging_Rule_Name_AVP p_crn, PCC_Rule_Status_AVP p_ccrs, Rule_Failure_Code_AVP p_rfc) modifies m_chargRuleReport_dummy := { aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Report_AVP, lengthof(encvalue(p_crn))+12/*PCC_Rule_Status_AVP length*/+12/*Rule_Failure_Code_AVP length*/, omit), charging_Rule_Name := {p_crn}, charging_Rule_Base_Name := omit, bearer_Identifier := omit, pCC_Rule_Status := p_ccrs, rule_Failure_Code := omit, final_Unit_Indication := omit, aVP_Type := omit rule_Failure_Code := p_rfc } template Charging_Rule_Name_AVP m_charging_Rule_Name(octetstring p_avpData) := Loading @@ -318,6 +333,12 @@ module DiameterGx_Templates { aVP_Data := p_avpData } template Rule_Failure_Code_AVP m_rule_Failure_Code(Rule_Failure_Code p_avpData) := { aVP_Header := m_aVP_HeaderVid(c_vendIdRule_Failure_Code_AVP, 4, omit), aVP_Data := p_avpData } template Packet_Filter_Information_AVP m_pFInfo_PacketFilterId(Packet_Filter_Identifier_AVP p_pfId) modifies m_packet_Filter_Information_dummy := { aVP_Header := m_aVP_HeaderVid(c_vendIdPacket_Filter_Information_AVP, lengthof(encvalue(p_pfId)), omit), Loading Loading @@ -362,6 +383,25 @@ module DiameterGx_Templates { aVP_Data := p_avpData } template Experimental_Result_AVP m_experimentalResult(Vendor_Id_AVP p_vendorId, Experimental_Result_Code_AVP p_expResultCode) := { aVP_Header := m_aVP_HeaderVid(c_vendIdExperimental_Result_AVP, 12/*12-Vendor_Id_AVP*/+12/*12-experimental_Result_Code*/, omit), vendor_Id := p_vendorId, experimental_Result_Code := p_expResultCode } template Vendor_Id_AVP m_vendorId(UInt32 p_avpData):= { aVP_Header := m_aVP_HeaderVid(c_vendIdVendor_Id_AVP, 4, omit), aVP_Data := p_avpData } template Experimental_Result_Code_AVP m_expResultCode(Experimental_Result_Type p_avpData) := { aVP_Header := m_aVP_HeaderVid(c_vendIdExperimental_Result_Code_AVP, 4, omit), aVP_Data := p_avpData } }//end group sendingTemplatesForAVPs group awaitingTemplatesForAVPs{ Loading Loading @@ -430,6 +470,19 @@ module DiameterGx_Templates { routing_IP_Address := *, aVP_Type := * } template Experimental_Result_AVP mw_experimentalResult(Experimental_Result_Type p_avpData) := { aVP_Header := mw_aVP_Header_any, vendor_Id := ?, experimental_Result_Code := mw_expResultCode(p_avpData) } template Experimental_Result_Code_AVP mw_expResultCode(Experimental_Result_Type p_avpData) := { aVP_Header := mw_aVP_Header_any, aVP_Data := p_avpData } }//end group awaitingTemplatesForAVPs } //end group SpecificAVPHeaders } //end group HeaderFieldTemplates Loading Loading @@ -568,7 +621,7 @@ module DiameterGx_Templates { template Destination_Realm_AVP p_destinationRealm) modifies m_CCR_basic := { cC_Request_Type := m_cC_Request_Type(UPDATE_REQUEST_E), cC_Request_Number := m_cC_Request_Number(1), charging_Rule_Report := {m_charging_Rule_Report(m_charging_Rule_Name(PX_CHARGING_RULE_NAME_DATA),m_pCC_Rule_Status(PX_PCC_RULE_STATUS))}, charging_Rule_Report := {m_chargRuleReport_RNameStatus(m_charging_Rule_Name(PX_CHARGING_RULE_NAME_DATA),m_pCC_Rule_Status(PX_PCC_RULE_STATUS))}, event_Trigger := {m_event_Trigger(IP_CAN_CHANGE_E)} } Loading Loading @@ -603,6 +656,33 @@ module DiameterGx_Templates { network_Request_Support := m_network_Request_Support(PX_NETWORK_REQUEST_SUPPORT) } template CCR_MSG m_CCR_UpdateRequest_Invalid(template Session_Id_AVP p_sessionId, template Origin_Host_AVP p_originHost, template Origin_Realm_AVP p_originRealm, template Destination_Realm_AVP p_destinationRealm) modifies m_CCR_basic := { cC_Request_Type := m_cC_Request_Type(UPDATE_REQUEST_E), cC_Request_Number := m_cC_Request_Number(1), charging_Rule_Report := {m_chargRuleReport_RNameStatusFailure(m_charging_Rule_Name(PX_CHARGING_RULE_NAME_DATA), m_pCC_Rule_Status(PX_PCC_RULE_STATUS), m_rule_Failure_Code(PX_RULE_FAILURE_CODE))}, event_Trigger := {m_event_Trigger(IP_CAN_CHANGE_E)} } template CCR_MSG m_CCR_InitialRequest_Invalid(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_basic := { subscription_Id := {m_subscription_Id(m_subscription_Id_Type(PX_SUBSCRIPTION_ID_TYPE),m_subscription_Id_Data(PX_SUBSCRIPTION_ID_DATA))}, framed_IP_Address := p_framedIpAddress, framed_IPv6_Prefix := p_framedIp6Address, iP_CAN_Type := m_iP_CAN_Type(PX_IP_CAN_TYPE), rAT_Type := m_rAT_Type(PX_RAT_TYPE), called_Station_Id := m_called_Station_Id("Emergency APN"), event_Trigger := {m_event_Trigger(RESOURCE_MODIFICATION_REQUEST_E)} } } // end group Gxmodified_request_templates_send group Gxmodified_request_templates_receive { Loading Loading @@ -656,6 +736,14 @@ module DiameterGx_Templates { charging_Rule_Install := ? } template CCA_MSG mw_CCA_ExperimentalResult( template Session_Id_AVP p_sessionId, template Origin_Host_AVP p_originHost, template Origin_Realm_AVP p_originRealm, template Experimental_Result_AVP p_experimentalResult) modifies mw_CCA_basic := { experimental_Result := p_experimentalResult } } // end group Gxmodified_answer_templates_receive } //end group Gxmodified_templates Loading Loading
DiameterGx/ttcn/DiameterGx_Gx_TCFunctions.ttcn +217 −7 Original line number Diff line number Diff line Loading @@ -39,7 +39,7 @@ module DiameterGx_Gx_TCFunctions { f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync f_send_CCR(m_CCR_basic(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(),f_framedIpAddress6_send())); f_send_CCR(m_CCR_InitialRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(),f_framedIpAddress6_send())); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync Loading Loading @@ -85,7 +85,7 @@ module DiameterGx_Gx_TCFunctions { f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync f_send_CCR(m_CCR_NetworkRequestSupport(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(),f_framedIpAddress6_send())); f_send_CCR(m_CCR_InitialRequest_NetworkRequestSupport(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync Loading @@ -112,11 +112,11 @@ module DiameterGx_Gx_TCFunctions { f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync //establishement of the session f_send_CCR(m_CCR_basic(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(),f_framedIpAddress6_send())); 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))); //session modification f_send_CCR(m_CCR_basic(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(),f_framedIpAddress6_send())); f_send_CCR(m_CCR_UpdateRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm)); f_awaiting_CCA(mw_CCA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, mw_resultCode(mw_resultCode_diameterSuccess))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync Loading @@ -127,8 +127,218 @@ module DiameterGx_Gx_TCFunctions { } // end function f_TC_PCRF_MSI_01 /* * @desc This is the test case function TC_PCRF_MSI_02 * @param */ function f_TC_PCRF_MSI_02() 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))); //session modification f_send_CCR(m_CCR_UpdateRequest_allReqAVPs(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm)); f_awaiting_CCA(mw_CCA_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_postamble_PCEF(); } // end function f_TC_PCRF_MSI_02 /* * @desc This is the test case function TC_PCRF_MSI_03 * @param */ function f_TC_PCRF_MSI_03() 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))); //session modification f_send_CCR(m_CCR_UpdateRequest_UERequestForAllocResources( vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, m_pFInfo_Precedence_pFContent(m_precedence(PX_PRECEDENCE_DATA),m_packet_Filter_Content(m_iPFilterRule)), m_packet_Filter_Operation(ADDITION_E), m_qoS_Information_ClassIdentifier(QCI_1_E) )); f_awaiting_CCA(mw_CCA_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_postamble_PCEF(); } // end function f_TC_PCRF_MSI_03 /* * @desc This is the test case function TC_PCRF_MSI_04 * @param */ function f_TC_PCRF_MSI_04() 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))); //session modification f_send_CCR(m_CCR_UpdateRequest_UERequestForAllocResources( vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, m_pFInfo_PacketFilterId_FlowDirection(m_packet_Filter_Identifier(PX_PACKET_FILTER_IDENTIFIER_DATA)), m_packet_Filter_Operation(MODIFICATION_E), omit )); f_awaiting_CCA(mw_CCA_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_postamble_PCEF(); } // end function f_TC_PCRF_MSI_04 /* * @desc This is the test case function TC_PCRF_MSI_05 * @param */ function f_TC_PCRF_MSI_05() 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))); //session modification f_send_CCR(m_CCR_UpdateRequest_UERequestForAllocResources( vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, m_pFInfo_PacketFilterId(m_packet_Filter_Identifier(PX_PACKET_FILTER_IDENTIFIER_DATA)), m_packet_Filter_Operation(DELETION_E), omit )); f_awaiting_CCA(mw_CCA_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_postamble_PCEF(); } // end function f_TC_PCRF_MSI_05 /* * @desc This is the test case function TC_PCRF_MSI_06 * @param */ function f_TC_PCRF_MSI_06() 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))); //session modification f_send_CCR(m_CCR_UpdateRequest_NetworkRequestSupport(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm)); f_awaiting_CCA(mw_CCA_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_postamble_PCEF(); } // end function f_TC_PCRF_MSI_06 }//end group TP_PCRFRole_MSI group TP_PCRFRole_INV { //Invalid Behaviour /* * @desc This is the test case function TC_PCRF_INV_01 * @param */ function f_TC_PCRF_INV_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))); //session modification f_send_CCR(m_CCR_UpdateRequest_Invalid(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm)); f_awaiting_CCA(mw_CCA_ExperimentalResult(vc_sessionId, vc_originHost, vc_originRealm, mw_experimentalResult(DIAMETER_ERROR_TRAFFIC_MAPPING_INFO_REJECTED_E))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_postamble_PCEF(); } // end function f_TC_PCRF_INV_01 /* * @desc This is the test case function TC_PCRF_INV_02 * @param */ function f_TC_PCRF_INV_02() runs on DiameterComponent { f_preamble_PCEF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync //establishement of the session f_send_CCR(m_CCR_InitialRequest_Invalid(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(),f_framedIpAddress6_send())); f_awaiting_CCA(mw_CCA_ExperimentalResult(vc_sessionId, vc_originHost, vc_originRealm, mw_experimentalResult(DIAMETER_ERROR_TRAFFIC_MAPPING_INFO_REJECTED_E))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_postamble_PCEF(); } // end function f_TC_PCRF_INV_02 }//end group TP_PCRFRole_INV group TP_PCRFRole_ST { //Session Termination }//end group TP_PCRFRole_ST Loading Loading @@ -162,14 +372,14 @@ module DiameterGx_Gx_TCFunctions { f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync f_awaiting_CCR(mw_CCR_sessionRequest(vc_sessionId, f_awaiting_CCR(mw_CCR_InitialRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, mw_cC_Request_Type(INITIAL_REQUEST_E), f_framedIpAddress4(), f_framedIpAddress6(), ?)); *)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync Loading @@ -192,7 +402,7 @@ module DiameterGx_Gx_TCFunctions { f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync f_awaiting_CCR(mw_CCR_sessionRequest(vc_sessionId, f_awaiting_CCR(mw_CCR_InitialRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, Loading
DiameterGx/ttcn/DiameterGx_PIXITS.ttcn +6 −1 Original line number Diff line number Diff line Loading @@ -248,6 +248,11 @@ module DiameterGx_PIXITS */ modulepar octetstring PX_PACKET_FILTER_IDENTIFIER_DATA := '08'O; /** @desc enumerated type PCC_Rule_Status, PIXIT item A.1/ * avp_Data within Rule_Failure_Code_AVP is of enumerated type Rule_Failure_Code */ modulepar Rule_Failure_Code PX_RULE_FAILURE_CODE := UNKNOWN_RULE_NAME_E; } //end group DiameterCommonGxData } // end module DiameterGx_PIXITS No newline at end of file
DiameterGx/ttcn/DiameterGx_Templates.ttcn +98 −10 Original line number Diff line number Diff line Loading @@ -36,6 +36,18 @@ module DiameterGx_Templates { group DummyAVPHeaders{ template Charging_Rule_Report_AVP m_chargRuleReport_dummy := { aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Report_AVP, 0, omit), charging_Rule_Name := omit, charging_Rule_Base_Name := omit, bearer_Identifier := omit, pCC_Rule_Status := omit, rule_Failure_Code := omit, final_Unit_Indication := omit, aVP_Type := omit } template QoS_Information_AVP m_qoS_Information_dummy := { aVP_Header := m_aVP_HeaderVid(c_vendIdQoS_Information_AVP, 0, omit), Loading Loading @@ -294,16 +306,19 @@ module DiameterGx_Templates { aVP_Data := p_avpData } template Charging_Rule_Report_AVP m_charging_Rule_Report(Charging_Rule_Name_AVP p_crn, PCC_Rule_Status_AVP p_ccrs) := template Charging_Rule_Report_AVP m_chargRuleReport_RNameStatus(Charging_Rule_Name_AVP p_crn, PCC_Rule_Status_AVP p_ccrs) modifies m_chargRuleReport_dummy := { aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Report_AVP, lengthof(encvalue(p_crn))+lengthof(encvalue(p_ccrs)), omit), aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Report_AVP, lengthof(encvalue(p_crn))+12/*PCC_Rule_Status_AVP length*/, omit), charging_Rule_Name := {p_crn}, pCC_Rule_Status := p_ccrs } template Charging_Rule_Report_AVP m_chargRuleReport_RNameStatusFailure(Charging_Rule_Name_AVP p_crn, PCC_Rule_Status_AVP p_ccrs, Rule_Failure_Code_AVP p_rfc) modifies m_chargRuleReport_dummy := { aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Report_AVP, lengthof(encvalue(p_crn))+12/*PCC_Rule_Status_AVP length*/+12/*Rule_Failure_Code_AVP length*/, omit), charging_Rule_Name := {p_crn}, charging_Rule_Base_Name := omit, bearer_Identifier := omit, pCC_Rule_Status := p_ccrs, rule_Failure_Code := omit, final_Unit_Indication := omit, aVP_Type := omit rule_Failure_Code := p_rfc } template Charging_Rule_Name_AVP m_charging_Rule_Name(octetstring p_avpData) := Loading @@ -318,6 +333,12 @@ module DiameterGx_Templates { aVP_Data := p_avpData } template Rule_Failure_Code_AVP m_rule_Failure_Code(Rule_Failure_Code p_avpData) := { aVP_Header := m_aVP_HeaderVid(c_vendIdRule_Failure_Code_AVP, 4, omit), aVP_Data := p_avpData } template Packet_Filter_Information_AVP m_pFInfo_PacketFilterId(Packet_Filter_Identifier_AVP p_pfId) modifies m_packet_Filter_Information_dummy := { aVP_Header := m_aVP_HeaderVid(c_vendIdPacket_Filter_Information_AVP, lengthof(encvalue(p_pfId)), omit), Loading Loading @@ -362,6 +383,25 @@ module DiameterGx_Templates { aVP_Data := p_avpData } template Experimental_Result_AVP m_experimentalResult(Vendor_Id_AVP p_vendorId, Experimental_Result_Code_AVP p_expResultCode) := { aVP_Header := m_aVP_HeaderVid(c_vendIdExperimental_Result_AVP, 12/*12-Vendor_Id_AVP*/+12/*12-experimental_Result_Code*/, omit), vendor_Id := p_vendorId, experimental_Result_Code := p_expResultCode } template Vendor_Id_AVP m_vendorId(UInt32 p_avpData):= { aVP_Header := m_aVP_HeaderVid(c_vendIdVendor_Id_AVP, 4, omit), aVP_Data := p_avpData } template Experimental_Result_Code_AVP m_expResultCode(Experimental_Result_Type p_avpData) := { aVP_Header := m_aVP_HeaderVid(c_vendIdExperimental_Result_Code_AVP, 4, omit), aVP_Data := p_avpData } }//end group sendingTemplatesForAVPs group awaitingTemplatesForAVPs{ Loading Loading @@ -430,6 +470,19 @@ module DiameterGx_Templates { routing_IP_Address := *, aVP_Type := * } template Experimental_Result_AVP mw_experimentalResult(Experimental_Result_Type p_avpData) := { aVP_Header := mw_aVP_Header_any, vendor_Id := ?, experimental_Result_Code := mw_expResultCode(p_avpData) } template Experimental_Result_Code_AVP mw_expResultCode(Experimental_Result_Type p_avpData) := { aVP_Header := mw_aVP_Header_any, aVP_Data := p_avpData } }//end group awaitingTemplatesForAVPs } //end group SpecificAVPHeaders } //end group HeaderFieldTemplates Loading Loading @@ -568,7 +621,7 @@ module DiameterGx_Templates { template Destination_Realm_AVP p_destinationRealm) modifies m_CCR_basic := { cC_Request_Type := m_cC_Request_Type(UPDATE_REQUEST_E), cC_Request_Number := m_cC_Request_Number(1), charging_Rule_Report := {m_charging_Rule_Report(m_charging_Rule_Name(PX_CHARGING_RULE_NAME_DATA),m_pCC_Rule_Status(PX_PCC_RULE_STATUS))}, charging_Rule_Report := {m_chargRuleReport_RNameStatus(m_charging_Rule_Name(PX_CHARGING_RULE_NAME_DATA),m_pCC_Rule_Status(PX_PCC_RULE_STATUS))}, event_Trigger := {m_event_Trigger(IP_CAN_CHANGE_E)} } Loading Loading @@ -603,6 +656,33 @@ module DiameterGx_Templates { network_Request_Support := m_network_Request_Support(PX_NETWORK_REQUEST_SUPPORT) } template CCR_MSG m_CCR_UpdateRequest_Invalid(template Session_Id_AVP p_sessionId, template Origin_Host_AVP p_originHost, template Origin_Realm_AVP p_originRealm, template Destination_Realm_AVP p_destinationRealm) modifies m_CCR_basic := { cC_Request_Type := m_cC_Request_Type(UPDATE_REQUEST_E), cC_Request_Number := m_cC_Request_Number(1), charging_Rule_Report := {m_chargRuleReport_RNameStatusFailure(m_charging_Rule_Name(PX_CHARGING_RULE_NAME_DATA), m_pCC_Rule_Status(PX_PCC_RULE_STATUS), m_rule_Failure_Code(PX_RULE_FAILURE_CODE))}, event_Trigger := {m_event_Trigger(IP_CAN_CHANGE_E)} } template CCR_MSG m_CCR_InitialRequest_Invalid(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_basic := { subscription_Id := {m_subscription_Id(m_subscription_Id_Type(PX_SUBSCRIPTION_ID_TYPE),m_subscription_Id_Data(PX_SUBSCRIPTION_ID_DATA))}, framed_IP_Address := p_framedIpAddress, framed_IPv6_Prefix := p_framedIp6Address, iP_CAN_Type := m_iP_CAN_Type(PX_IP_CAN_TYPE), rAT_Type := m_rAT_Type(PX_RAT_TYPE), called_Station_Id := m_called_Station_Id("Emergency APN"), event_Trigger := {m_event_Trigger(RESOURCE_MODIFICATION_REQUEST_E)} } } // end group Gxmodified_request_templates_send group Gxmodified_request_templates_receive { Loading Loading @@ -656,6 +736,14 @@ module DiameterGx_Templates { charging_Rule_Install := ? } template CCA_MSG mw_CCA_ExperimentalResult( template Session_Id_AVP p_sessionId, template Origin_Host_AVP p_originHost, template Origin_Realm_AVP p_originRealm, template Experimental_Result_AVP p_experimentalResult) modifies mw_CCA_basic := { experimental_Result := p_experimentalResult } } // end group Gxmodified_answer_templates_receive } //end group Gxmodified_templates Loading