Loading DiameterGx/ttcn/DiameterGx_Gx_TCFunctions.ttcn +36 −24 Original line number Diff line number Diff line Loading @@ -2118,7 +2118,7 @@ module DiameterGx_Gx_TCFunctions { f_awaiting_RAA(mw_RAA_basic(?,?,?)); f_awaiting_CCR(mw_CCR_AccessNetChargId(vc_sessionId, f_awaiting_CCR(mw_CCR_AccessNetChargId(?, vc_originHost, vc_originRealm, vc_destinationRealm, Loading Loading @@ -2161,7 +2161,7 @@ module DiameterGx_Gx_TCFunctions { f_send_RAR(DiameterGx_Templates.m_RAR_CharRuleInst // RAR in Rx-module has different header! (vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, vc_destinationHost, m_chrgRuleInstall_Definition(m_chrgRuleDefinition_QoS(PX_CHARGING_RULE_NAME_DATA, m_qoS_Information_dummy)))); m_chrgRuleInstall_Definition(m_chrgRuleDefinition_QoS(PX_CHARGING_RULE_NAME_DATA, m_qoS_Information_ClassIdentifier(QCI_1_E))))); f_awaiting_RAA(mw_RAA_basic(?,?,?)); Loading Loading @@ -2284,7 +2284,7 @@ module DiameterGx_Gx_TCFunctions { tc_wait.timeout; // Revalidation due to PCRF request in RAR f_awaiting_CCR(mw_CCR_basic(vc_sessionId, f_awaiting_CCR(mw_CCR_basic(?, vc_originHost, vc_originRealm, vc_destinationRealm, Loading Loading @@ -2455,12 +2455,11 @@ module DiameterGx_Gx_TCFunctions { f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm, m_cC_Request_Type(INITIAL_REQUEST_E))); f_send_RAR(DiameterGx_Templates.m_RAR_CharRuleRemoveInstall2 // RAR in Rx-module has different header! f_send_RAR(DiameterGx_Templates.m_RAR_CharRuleRemoveInstall // RAR in Rx-module has different header! (vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, vc_destinationHost, m_chrgRuleRemove_Name(m_chargingRuleName(PX_CHARGING_RULE_NAME_DATA)), m_chrgRuleInstall_Name(m_chargingRuleName(PX_CHARGING_RULE_NAME_DATA2)), m_chrgRuleInstall_Name(m_chargingRuleName(PX_CHARGING_RULE_NAME_DATA3)) m_chrgRuleInstall_Definition(m_chrgRuleDefinition(PX_CHARGING_RULE_NAME_DATA)) )); f_awaiting_RAA(mw_RAA_basic(vc_sessionId,?,?)); Loading Loading @@ -2567,7 +2566,7 @@ module DiameterGx_Gx_TCFunctions { action("Trigger for Emergency service"); f_awaiting_CCR(mw_CCR_Request_EMS(vc_sessionId, f_awaiting_CCR((mw_CCR_Request_EMS1(?, vc_originHost, vc_originRealm, vc_destinationRealm, Loading @@ -2575,8 +2574,16 @@ module DiameterGx_Gx_TCFunctions { f_framedIpAddress4(), f_framedIpAddress6(), *, mw_CalledStationId(PX_EMERGENCY_APN), mw_UserEquipmentInfo(mw_UserEquipmentInfoType(IMEISV_E),?))); mw_CalledStationId(PX_EMERGENCY_APN)), mw_CCR_Request_EMS2(?, vc_originHost, vc_originRealm, vc_destinationRealm, mw_cC_Request_Type(INITIAL_REQUEST_E), f_framedIpAddress4(), f_framedIpAddress6(), *, mw_CalledStationId(PX_EMERGENCY_APN)))); f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm, m_cC_Request_Type(INITIAL_REQUEST_E))); Loading Loading @@ -2618,7 +2625,10 @@ module DiameterGx_Gx_TCFunctions { (vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, vc_destinationHost, m_event_Trigger(USAGE_REPORT_E), m_usageMonitoringInformation(m_monitoringKey(PX_MONITORING_KEY), omit))); m_usageMonitoringInformation(m_monitoringKey(PX_MONITORING_KEY), m_grantedServiceUnit_cCs(m_cC_Total_Octets(1024000), m_cC_Input_Octets(512000), m_cC_Output_Octets(512000))))); f_awaiting_RAA(mw_RAA_basic(vc_sessionId,?,?)); Loading Loading @@ -2658,9 +2668,11 @@ module DiameterGx_Gx_TCFunctions { f_send_RAR(DiameterGx_Templates.m_RAR_CharRuleInst // RAR in Rx-module has different header! (vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, vc_destinationHost, m_chrgRuleInstall_Definition(m_chrgRuleDefinition_FI_AF(PX_CHARGING_RULE_NAME_DATA, m_chrgRuleInstall_Definition( m_chrgRuleDefinition_FI_AF(PX_CHARGING_RULE_NAME_DATA, m_flowInformation_direction_packetFID(m_packet_Filter_Identifier(PX_PACKET_FILTER_IDENTIFIER_DATA), m_flowDirection_Bidirectional),m_afSignallingProtocol(SIP_E))) m_flowDirection_Bidirectional), m_afSignallingProtocol(SIP_E))) )); f_awaiting_RAA(mw_RAA_basic(vc_sessionId,?,?)); Loading DiameterGx/ttcn/DiameterGx_PIXITS.ttcn +9 −9 Original line number Diff line number Diff line Loading @@ -345,24 +345,24 @@ module DiameterGx_PIXITS modulepar octetstring PX_MONITORING_KEY2 := '01020304050677'O; /** @desc octectstring, * avp_Data within Revalidation_Time_AVP is of UInt64 type /** @desc UInt32, * avp_Data within Revalidation_Time_AVP is of UInt32 type * (parameter is part of RAR message) */ modulepar UInt64 PX_REVALIDATION_TIME := 7; modulepar UInt32 PX_REVALIDATION_TIME := 7; /** @desc octectstring, * avp_Data within Rule_Activation_Time_AVP is of UInt64 type /** @desc UInt32, * avp_Data within Rule_Activation_Time_AVP is of UInt32 type * (parameter is part of Charging_Rule_Install_AVP) */ modulepar UInt64 PX_ACTIVATION_TIME := 0; modulepar UInt32 PX_ACTIVATION_TIME := 0; /** @desc octectstring, * avp_Data within Rule_DeActivation_Time_AVP is of UInt64 type /** @desc UInt32, * avp_Data within Rule_DeActivation_Time_AVP is of UInt32 type * (parameter is part of Charging_Rule_Install_AVP) */ modulepar UInt64 PX_DEACTIVATION_TIME := 0; modulepar UInt32 PX_DEACTIVATION_TIME := 0; /** @desc UTF8String, Loading DiameterGx/ttcn/DiameterGx_Templates.ttcn +89 −25 Original line number Diff line number Diff line Loading @@ -229,6 +229,20 @@ module DiameterGx_Templates { aVP_Type := * } template Granted_Service_Unit_AVP m_grantedServiceUnit_dummy := { // Ref: RFC4006 8.17. Granted-Service-Unit AVP aVP_Header := m_aVP_HeaderVid(c_granted_Service_Unit_AVP_Code,0, omit), tariff_Time_Change := omit, cC_Time := omit, cC_Money := omit, cC_Total_Octets := omit, cC_Input_Octets := omit, cC_Output_Octets := omit, cC_Service_Specific_Units := omit, aVP_Type := omit } template Flow_Information_AVP mw_flowInformation_dummy := { aVP_Header := mw_aVP_Header(c_flow_Information_AVP_Code), flow_Description := *, Loading Loading @@ -369,7 +383,7 @@ module DiameterGx_Templates { template QoS_Information_AVP m_qoS_Information_Bearer(template Bearer_Identifier_AVP p_bearerIdentifier) modifies m_qoS_Information_dummy := { aVP_Header := m_aVP_HeaderVid(c_qoS_Information_AVP_Code, 4+lengthof(encvalue(p_bearerIdentifier))/8, omit), aVP_Header := m_aVP_HeaderVid(c_qoS_Information_AVP_Code, lengthof(encvalue(p_bearerIdentifier))/8, omit), bearer_Identifier := p_bearerIdentifier } Loading Loading @@ -411,7 +425,7 @@ module DiameterGx_Templates { template Bearer_Identifier_AVP m_bearer_Identifier(octetstring p_avpData) := { aVP_Header := m_aVP_HeaderVid(c_bearer_Usage_AVP_Code, 4+lengthof(p_avpData), omit), aVP_Header := m_aVP_HeaderVid(c_bearer_Identifier_AVP_Code, lengthof(p_avpData), omit), aVP_Data := p_avpData } Loading Loading @@ -769,33 +783,33 @@ module DiameterGx_Templates { template Revalidation_Time_AVP m_revalidationTime (Time p_avpData) := { aVP_Header := m_aVP_HeaderVid(c_revalidation_Time_AVP_Code, 8, omit), aVP_Header := m_aVP_HeaderVid(c_revalidation_Time_AVP_Code, 4, omit), aVP_Data := p_avpData } template Rule_Activation_Time_AVP m_activationTime (Time p_avpData) := { aVP_Header := m_aVP_HeaderVid(c_rule_Activation_Time_AVP_Code, 8, omit), aVP_Header := m_aVP_HeaderVid(c_rule_Activation_Time_AVP_Code, 4, omit), aVP_Data := p_avpData } template Rule_DeActivation_Time_AVP m_deactivationTime (Time p_avpData) := { aVP_Header := m_aVP_HeaderVid(c_rule_DeActivation_Time_AVP_Code, 8, omit), aVP_Header := m_aVP_HeaderVid(c_rule_DeActivation_Time_AVP_Code, 4, omit), aVP_Data := p_avpData } template AF_Signalling_Protocol_AVP m_afSignallingProtocol (AF_Signalling_Protocol_Type p_avpData) := { aVP_Header := m_aVP_HeaderVid(c_aF_Signalling_Protocol_AVP_Code, 8, omit), aVP_Header := m_aVP_HeaderVid(c_aF_Signalling_Protocol_AVP_Code, 4, omit), aVP_Data := p_avpData } template Usage_Monitoring_Report_AVP m_usageMonitoringReport (Usage_Monitoring_Report p_avpData) := { aVP_Header := m_aVP_HeaderVid(c_usage_Monitoring_Report_AVP_Code, 8, omit), aVP_Header := m_aVP_HeaderVid(c_usage_Monitoring_Report_AVP_Code, 4, omit), aVP_Data := p_avpData } Loading @@ -811,7 +825,7 @@ module DiameterGx_Templates { (template Monitoring_Key_AVP p_monitoringKey, template Granted_Service_Unit_AVP p_grantedServiceUnit) := { aVP_Header := m_aVP_HeaderVid(c_usage_Monitoring_Information_AVP_Code, 8+lengthof(encvalue(p_monitoringKey))/8+lengthof(encvalue(p_grantedServiceUnit))/8, omit), aVP_Header := m_aVP_HeaderVid(c_usage_Monitoring_Information_AVP_Code, lengthof(encvalue(p_monitoringKey))/8+lengthof(encvalue(p_grantedServiceUnit))/8, omit), monitoring_Key := p_monitoringKey, granted_Service_Unit := p_grantedServiceUnit, Loading @@ -825,7 +839,7 @@ module DiameterGx_Templates { template Usage_Monitoring_Information_AVP m_usageMonitoringInformationRequestReport (template Usage_Monitoring_Report_AVP p_usageMonitoringReport) := { aVP_Header := m_aVP_HeaderVid(c_usage_Monitoring_Information_AVP_Code, 8+lengthof(encvalue(p_usageMonitoringReport))/8, omit), aVP_Header := m_aVP_HeaderVid(c_usage_Monitoring_Information_AVP_Code, lengthof(encvalue(p_usageMonitoringReport))/8, omit), monitoring_Key := omit, granted_Service_Unit := omit, Loading @@ -840,7 +854,7 @@ module DiameterGx_Templates { template Usage_Monitoring_Information_AVP m_usageMonitoringInformationRequestSupport (template Usage_Monitoring_Support_AVP p_usageMonitoringSupport) := { aVP_Header := m_aVP_HeaderVid(c_usage_Monitoring_Information_AVP_Code, 8+lengthof(encvalue(m_monitoringKey(PX_MONITORING_KEY)))/8+lengthof(encvalue(p_usageMonitoringSupport))/8, omit), aVP_Header := m_aVP_HeaderVid(c_usage_Monitoring_Information_AVP_Code, lengthof(encvalue(m_monitoringKey(PX_MONITORING_KEY)))/8+lengthof(encvalue(p_usageMonitoringSupport))/8, omit), monitoring_Key := m_monitoringKey(PX_MONITORING_KEY), granted_Service_Unit := omit, Loading @@ -856,7 +870,7 @@ module DiameterGx_Templates { (template QoS_Class_Identifier_AVP p_qoSClassIdentifier, template Allocation_Retention_Priority_AVP p_allocationRetentionPriority) := { aVP_Header := m_aVP_HeaderVid(c_default_EPS_Bearer_QoS_AVP_Code, 8+lengthof(encvalue(p_qoSClassIdentifier))/8+lengthof(encvalue(p_allocationRetentionPriority))/8, omit), aVP_Header := m_aVP_HeaderVid(c_default_EPS_Bearer_QoS_AVP_Code, lengthof(encvalue(p_qoSClassIdentifier))/8+lengthof(encvalue(p_allocationRetentionPriority))/8, omit), qoS_Class_Identifier := p_qoSClassIdentifier, allocation_Retention_Priority := p_allocationRetentionPriority, aVP_Type := omit Loading @@ -871,7 +885,7 @@ module DiameterGx_Templates { template Allocation_Retention_Priority_AVP m_allocRetentionPrio (template Priority_Level_AVP p_priorityLevel):= { aVP_Header := m_aVP_HeaderVid(c_allocation_Retention_Priority_AVP_Code, 8+lengthof(encvalue(p_priorityLevel))/8, omit), aVP_Header := m_aVP_HeaderVid(c_allocation_Retention_Priority_AVP_Code, lengthof(encvalue(p_priorityLevel))/8, omit), priority_Level := p_priorityLevel, pre_emption_Capability := omit, pre_emption_Vulnerability := omit Loading @@ -886,13 +900,45 @@ module DiameterGx_Templates { template Logical_Access_ID_AVP m_logicalAccessID(template (value) octetstring p_avpData) := { aVP_Header := m_aVP_HeaderVid(c_logical_Access_ID_AVP_Code, 4+lengthof(p_avpData), omit), aVP_Header := m_aVP_HeaderVid(c_logical_Access_ID_AVP_Code, lengthof(p_avpData), omit), aVP_Data := p_avpData } template Physical_Access_ID_AVP m_physicalAccessID(template (value) UTF8String p_avpData) := { aVP_Header := m_aVP_HeaderVid(c_physical_Access_ID_AVP_Code, 4+lengthof(p_avpData), omit), aVP_Header := m_aVP_HeaderVid(c_physical_Access_ID_AVP_Code, lengthof(p_avpData), omit), aVP_Data := p_avpData } template Granted_Service_Unit_AVP m_grantedServiceUnit_cCs(template CC_Total_Octets_AVP p_cC_Total_Octets, template CC_Input_Octets_AVP p_cC_Input_Octets, template CC_Output_Octets_AVP p_cC_Output_Octets) modifies m_grantedServiceUnit_dummy:= { // Ref: RFC4006 8.17. Granted-Service-Unit AVP aVP_Header := m_aVP_HeaderVid(c_granted_Service_Unit_AVP_Code, (lengthof(encvalue(p_cC_Total_Octets))/8+ lengthof(encvalue(p_cC_Input_Octets))/8+ lengthof(encvalue(p_cC_Output_Octets))/8), omit), cC_Total_Octets := p_cC_Total_Octets, cC_Input_Octets := p_cC_Input_Octets, cC_Output_Octets := p_cC_Output_Octets } template CC_Total_Octets_AVP m_cC_Total_Octets(template (value) UInt64 p_avpData) := { aVP_Header := m_aVP_HeaderVid(c_cC_Total_Octets_AVP_Code, 8, omit), aVP_Data := p_avpData } template CC_Input_Octets_AVP m_cC_Input_Octets(template (value) UInt64 p_avpData) := { aVP_Header := m_aVP_HeaderVid(c_cC_Input_Octets_AVP_Code, 8, omit), aVP_Data := p_avpData } template CC_Output_Octets_AVP m_cC_Output_Octets(template (value) UInt64 p_avpData) := { aVP_Header := m_aVP_HeaderVid(c_cC_Output_Octets_AVP_Code, 8, omit), aVP_Data := p_avpData } Loading @@ -911,14 +957,14 @@ module DiameterGx_Templates { aVP_Data := p_avpData } template Subscription_Id_AVP mw_subscription_Id(Subscription_Id_Type_AVP p_typeAVP, Subscription_Id_Data_AVP p_dataAVP):= template Subscription_Id_AVP mw_subscription_Id(template Subscription_Id_Type_AVP p_typeAVP, template Subscription_Id_Data_AVP p_dataAVP):= { aVP_Header := mw_aVP_Header(c_subscription_Id_AVP_Code), subscription_Id_Type := p_typeAVP, subscription_Id_Data := p_dataAVP } template Subscription_Id_Type_AVP mw_subscription_Id_Type(Subscription_Id_Ty_Type p_avpData):= template Subscription_Id_Type_AVP mw_subscription_Id_Type(template Subscription_Id_Ty_Type p_avpData):= { aVP_Header := mw_aVP_Header(c_subscription_Id_Type_AVP_Code), aVP_Data := p_avpData Loading Loading @@ -1648,19 +1694,18 @@ module DiameterGx_Templates { } template RAR_MSG m_RAR_CharRuleRemoveInstall2(template Session_Id_AVP p_sessionId, template RAR_MSG m_RAR_CharRuleRemoveInstall(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 Destination_Host_AVP p_destinationHost, template Charging_Rule_Remove_AVP p_chargingRuleRemove, template Charging_Rule_Install_AVP p_chargingRuleInstall, template Charging_Rule_Install_AVP p_chargingRuleInstall2) template Charging_Rule_Install_AVP p_chargingRuleInstall) modifies m_RAR_basic := { charging_Rule_Remove := {p_chargingRuleRemove}, charging_Rule_Install := {p_chargingRuleInstall,p_chargingRuleInstall2} charging_Rule_Install := {p_chargingRuleInstall} } Loading Loading @@ -1761,7 +1806,7 @@ module DiameterGx_Templates { } template CCR_MSG mw_CCR_Request_EMS(template Session_Id_AVP p_sessionId, template CCR_MSG mw_CCR_Request_EMS1(template Session_Id_AVP p_sessionId, template Origin_Host_AVP p_originHost, template Origin_Realm_AVP p_originRealm, template Destination_Realm_AVP p_destinationRealm, Loading @@ -1769,8 +1814,7 @@ module DiameterGx_Templates { template Framed_IP_Address_AVP p_framedIpAddress, template Framed_IPv6_Prefix_AVP p_framedIp6Address, template Routing_Rule_Install_AVP p_routing_Rule_Install, template Called_Station_Id_AVP p_calledStationId, template User_Equipment_Info_AVP p_userEquipmentInfo template Called_Station_Id_AVP p_calledStationId ) modifies mw_CCR_basic := { subscription_Id := {mw_subscription_Id(mw_subscription_Id_Type(END_USER_IMSI_E),mw_subscription_Id_Data(?))}, framed_IP_Address := p_framedIpAddress, Loading @@ -1778,8 +1822,28 @@ module DiameterGx_Templates { iP_CAN_Type := mw_iP_CAN_Type(PX_IP_CAN_TYPE), rAT_Type := mw_rAT_Type(PX_RAT_TYPE), routing_Rule_Install := p_routing_Rule_Install, called_Station_Id := p_calledStationId } template CCR_MSG mw_CCR_Request_EMS2(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 CC_Request_Type_AVP p_cCRequestType, template Framed_IP_Address_AVP p_framedIpAddress, template Framed_IPv6_Prefix_AVP p_framedIp6Address, template Routing_Rule_Install_AVP p_routing_Rule_Install, template Called_Station_Id_AVP p_calledStationId ) modifies mw_CCR_basic := { framed_IP_Address := p_framedIpAddress, framed_IPv6_Prefix := p_framedIp6Address, iP_CAN_Type := mw_iP_CAN_Type(PX_IP_CAN_TYPE), rAT_Type := mw_rAT_Type(PX_RAT_TYPE), routing_Rule_Install := p_routing_Rule_Install, called_Station_Id := p_calledStationId, user_Equipment_Info := p_userEquipmentInfo user_Equipment_Info := mw_UserEquipmentInfo(mw_UserEquipmentInfoType(IMEISV_E),?) } template RAR_MSG mw_RAR_sessReleaseCause(template Session_Id_AVP p_sessionId, Loading Loading
DiameterGx/ttcn/DiameterGx_Gx_TCFunctions.ttcn +36 −24 Original line number Diff line number Diff line Loading @@ -2118,7 +2118,7 @@ module DiameterGx_Gx_TCFunctions { f_awaiting_RAA(mw_RAA_basic(?,?,?)); f_awaiting_CCR(mw_CCR_AccessNetChargId(vc_sessionId, f_awaiting_CCR(mw_CCR_AccessNetChargId(?, vc_originHost, vc_originRealm, vc_destinationRealm, Loading Loading @@ -2161,7 +2161,7 @@ module DiameterGx_Gx_TCFunctions { f_send_RAR(DiameterGx_Templates.m_RAR_CharRuleInst // RAR in Rx-module has different header! (vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, vc_destinationHost, m_chrgRuleInstall_Definition(m_chrgRuleDefinition_QoS(PX_CHARGING_RULE_NAME_DATA, m_qoS_Information_dummy)))); m_chrgRuleInstall_Definition(m_chrgRuleDefinition_QoS(PX_CHARGING_RULE_NAME_DATA, m_qoS_Information_ClassIdentifier(QCI_1_E))))); f_awaiting_RAA(mw_RAA_basic(?,?,?)); Loading Loading @@ -2284,7 +2284,7 @@ module DiameterGx_Gx_TCFunctions { tc_wait.timeout; // Revalidation due to PCRF request in RAR f_awaiting_CCR(mw_CCR_basic(vc_sessionId, f_awaiting_CCR(mw_CCR_basic(?, vc_originHost, vc_originRealm, vc_destinationRealm, Loading Loading @@ -2455,12 +2455,11 @@ module DiameterGx_Gx_TCFunctions { f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm, m_cC_Request_Type(INITIAL_REQUEST_E))); f_send_RAR(DiameterGx_Templates.m_RAR_CharRuleRemoveInstall2 // RAR in Rx-module has different header! f_send_RAR(DiameterGx_Templates.m_RAR_CharRuleRemoveInstall // RAR in Rx-module has different header! (vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, vc_destinationHost, m_chrgRuleRemove_Name(m_chargingRuleName(PX_CHARGING_RULE_NAME_DATA)), m_chrgRuleInstall_Name(m_chargingRuleName(PX_CHARGING_RULE_NAME_DATA2)), m_chrgRuleInstall_Name(m_chargingRuleName(PX_CHARGING_RULE_NAME_DATA3)) m_chrgRuleInstall_Definition(m_chrgRuleDefinition(PX_CHARGING_RULE_NAME_DATA)) )); f_awaiting_RAA(mw_RAA_basic(vc_sessionId,?,?)); Loading Loading @@ -2567,7 +2566,7 @@ module DiameterGx_Gx_TCFunctions { action("Trigger for Emergency service"); f_awaiting_CCR(mw_CCR_Request_EMS(vc_sessionId, f_awaiting_CCR((mw_CCR_Request_EMS1(?, vc_originHost, vc_originRealm, vc_destinationRealm, Loading @@ -2575,8 +2574,16 @@ module DiameterGx_Gx_TCFunctions { f_framedIpAddress4(), f_framedIpAddress6(), *, mw_CalledStationId(PX_EMERGENCY_APN), mw_UserEquipmentInfo(mw_UserEquipmentInfoType(IMEISV_E),?))); mw_CalledStationId(PX_EMERGENCY_APN)), mw_CCR_Request_EMS2(?, vc_originHost, vc_originRealm, vc_destinationRealm, mw_cC_Request_Type(INITIAL_REQUEST_E), f_framedIpAddress4(), f_framedIpAddress6(), *, mw_CalledStationId(PX_EMERGENCY_APN)))); f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm, m_cC_Request_Type(INITIAL_REQUEST_E))); Loading Loading @@ -2618,7 +2625,10 @@ module DiameterGx_Gx_TCFunctions { (vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, vc_destinationHost, m_event_Trigger(USAGE_REPORT_E), m_usageMonitoringInformation(m_monitoringKey(PX_MONITORING_KEY), omit))); m_usageMonitoringInformation(m_monitoringKey(PX_MONITORING_KEY), m_grantedServiceUnit_cCs(m_cC_Total_Octets(1024000), m_cC_Input_Octets(512000), m_cC_Output_Octets(512000))))); f_awaiting_RAA(mw_RAA_basic(vc_sessionId,?,?)); Loading Loading @@ -2658,9 +2668,11 @@ module DiameterGx_Gx_TCFunctions { f_send_RAR(DiameterGx_Templates.m_RAR_CharRuleInst // RAR in Rx-module has different header! (vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, vc_destinationHost, m_chrgRuleInstall_Definition(m_chrgRuleDefinition_FI_AF(PX_CHARGING_RULE_NAME_DATA, m_chrgRuleInstall_Definition( m_chrgRuleDefinition_FI_AF(PX_CHARGING_RULE_NAME_DATA, m_flowInformation_direction_packetFID(m_packet_Filter_Identifier(PX_PACKET_FILTER_IDENTIFIER_DATA), m_flowDirection_Bidirectional),m_afSignallingProtocol(SIP_E))) m_flowDirection_Bidirectional), m_afSignallingProtocol(SIP_E))) )); f_awaiting_RAA(mw_RAA_basic(vc_sessionId,?,?)); Loading
DiameterGx/ttcn/DiameterGx_PIXITS.ttcn +9 −9 Original line number Diff line number Diff line Loading @@ -345,24 +345,24 @@ module DiameterGx_PIXITS modulepar octetstring PX_MONITORING_KEY2 := '01020304050677'O; /** @desc octectstring, * avp_Data within Revalidation_Time_AVP is of UInt64 type /** @desc UInt32, * avp_Data within Revalidation_Time_AVP is of UInt32 type * (parameter is part of RAR message) */ modulepar UInt64 PX_REVALIDATION_TIME := 7; modulepar UInt32 PX_REVALIDATION_TIME := 7; /** @desc octectstring, * avp_Data within Rule_Activation_Time_AVP is of UInt64 type /** @desc UInt32, * avp_Data within Rule_Activation_Time_AVP is of UInt32 type * (parameter is part of Charging_Rule_Install_AVP) */ modulepar UInt64 PX_ACTIVATION_TIME := 0; modulepar UInt32 PX_ACTIVATION_TIME := 0; /** @desc octectstring, * avp_Data within Rule_DeActivation_Time_AVP is of UInt64 type /** @desc UInt32, * avp_Data within Rule_DeActivation_Time_AVP is of UInt32 type * (parameter is part of Charging_Rule_Install_AVP) */ modulepar UInt64 PX_DEACTIVATION_TIME := 0; modulepar UInt32 PX_DEACTIVATION_TIME := 0; /** @desc UTF8String, Loading
DiameterGx/ttcn/DiameterGx_Templates.ttcn +89 −25 Original line number Diff line number Diff line Loading @@ -229,6 +229,20 @@ module DiameterGx_Templates { aVP_Type := * } template Granted_Service_Unit_AVP m_grantedServiceUnit_dummy := { // Ref: RFC4006 8.17. Granted-Service-Unit AVP aVP_Header := m_aVP_HeaderVid(c_granted_Service_Unit_AVP_Code,0, omit), tariff_Time_Change := omit, cC_Time := omit, cC_Money := omit, cC_Total_Octets := omit, cC_Input_Octets := omit, cC_Output_Octets := omit, cC_Service_Specific_Units := omit, aVP_Type := omit } template Flow_Information_AVP mw_flowInformation_dummy := { aVP_Header := mw_aVP_Header(c_flow_Information_AVP_Code), flow_Description := *, Loading Loading @@ -369,7 +383,7 @@ module DiameterGx_Templates { template QoS_Information_AVP m_qoS_Information_Bearer(template Bearer_Identifier_AVP p_bearerIdentifier) modifies m_qoS_Information_dummy := { aVP_Header := m_aVP_HeaderVid(c_qoS_Information_AVP_Code, 4+lengthof(encvalue(p_bearerIdentifier))/8, omit), aVP_Header := m_aVP_HeaderVid(c_qoS_Information_AVP_Code, lengthof(encvalue(p_bearerIdentifier))/8, omit), bearer_Identifier := p_bearerIdentifier } Loading Loading @@ -411,7 +425,7 @@ module DiameterGx_Templates { template Bearer_Identifier_AVP m_bearer_Identifier(octetstring p_avpData) := { aVP_Header := m_aVP_HeaderVid(c_bearer_Usage_AVP_Code, 4+lengthof(p_avpData), omit), aVP_Header := m_aVP_HeaderVid(c_bearer_Identifier_AVP_Code, lengthof(p_avpData), omit), aVP_Data := p_avpData } Loading Loading @@ -769,33 +783,33 @@ module DiameterGx_Templates { template Revalidation_Time_AVP m_revalidationTime (Time p_avpData) := { aVP_Header := m_aVP_HeaderVid(c_revalidation_Time_AVP_Code, 8, omit), aVP_Header := m_aVP_HeaderVid(c_revalidation_Time_AVP_Code, 4, omit), aVP_Data := p_avpData } template Rule_Activation_Time_AVP m_activationTime (Time p_avpData) := { aVP_Header := m_aVP_HeaderVid(c_rule_Activation_Time_AVP_Code, 8, omit), aVP_Header := m_aVP_HeaderVid(c_rule_Activation_Time_AVP_Code, 4, omit), aVP_Data := p_avpData } template Rule_DeActivation_Time_AVP m_deactivationTime (Time p_avpData) := { aVP_Header := m_aVP_HeaderVid(c_rule_DeActivation_Time_AVP_Code, 8, omit), aVP_Header := m_aVP_HeaderVid(c_rule_DeActivation_Time_AVP_Code, 4, omit), aVP_Data := p_avpData } template AF_Signalling_Protocol_AVP m_afSignallingProtocol (AF_Signalling_Protocol_Type p_avpData) := { aVP_Header := m_aVP_HeaderVid(c_aF_Signalling_Protocol_AVP_Code, 8, omit), aVP_Header := m_aVP_HeaderVid(c_aF_Signalling_Protocol_AVP_Code, 4, omit), aVP_Data := p_avpData } template Usage_Monitoring_Report_AVP m_usageMonitoringReport (Usage_Monitoring_Report p_avpData) := { aVP_Header := m_aVP_HeaderVid(c_usage_Monitoring_Report_AVP_Code, 8, omit), aVP_Header := m_aVP_HeaderVid(c_usage_Monitoring_Report_AVP_Code, 4, omit), aVP_Data := p_avpData } Loading @@ -811,7 +825,7 @@ module DiameterGx_Templates { (template Monitoring_Key_AVP p_monitoringKey, template Granted_Service_Unit_AVP p_grantedServiceUnit) := { aVP_Header := m_aVP_HeaderVid(c_usage_Monitoring_Information_AVP_Code, 8+lengthof(encvalue(p_monitoringKey))/8+lengthof(encvalue(p_grantedServiceUnit))/8, omit), aVP_Header := m_aVP_HeaderVid(c_usage_Monitoring_Information_AVP_Code, lengthof(encvalue(p_monitoringKey))/8+lengthof(encvalue(p_grantedServiceUnit))/8, omit), monitoring_Key := p_monitoringKey, granted_Service_Unit := p_grantedServiceUnit, Loading @@ -825,7 +839,7 @@ module DiameterGx_Templates { template Usage_Monitoring_Information_AVP m_usageMonitoringInformationRequestReport (template Usage_Monitoring_Report_AVP p_usageMonitoringReport) := { aVP_Header := m_aVP_HeaderVid(c_usage_Monitoring_Information_AVP_Code, 8+lengthof(encvalue(p_usageMonitoringReport))/8, omit), aVP_Header := m_aVP_HeaderVid(c_usage_Monitoring_Information_AVP_Code, lengthof(encvalue(p_usageMonitoringReport))/8, omit), monitoring_Key := omit, granted_Service_Unit := omit, Loading @@ -840,7 +854,7 @@ module DiameterGx_Templates { template Usage_Monitoring_Information_AVP m_usageMonitoringInformationRequestSupport (template Usage_Monitoring_Support_AVP p_usageMonitoringSupport) := { aVP_Header := m_aVP_HeaderVid(c_usage_Monitoring_Information_AVP_Code, 8+lengthof(encvalue(m_monitoringKey(PX_MONITORING_KEY)))/8+lengthof(encvalue(p_usageMonitoringSupport))/8, omit), aVP_Header := m_aVP_HeaderVid(c_usage_Monitoring_Information_AVP_Code, lengthof(encvalue(m_monitoringKey(PX_MONITORING_KEY)))/8+lengthof(encvalue(p_usageMonitoringSupport))/8, omit), monitoring_Key := m_monitoringKey(PX_MONITORING_KEY), granted_Service_Unit := omit, Loading @@ -856,7 +870,7 @@ module DiameterGx_Templates { (template QoS_Class_Identifier_AVP p_qoSClassIdentifier, template Allocation_Retention_Priority_AVP p_allocationRetentionPriority) := { aVP_Header := m_aVP_HeaderVid(c_default_EPS_Bearer_QoS_AVP_Code, 8+lengthof(encvalue(p_qoSClassIdentifier))/8+lengthof(encvalue(p_allocationRetentionPriority))/8, omit), aVP_Header := m_aVP_HeaderVid(c_default_EPS_Bearer_QoS_AVP_Code, lengthof(encvalue(p_qoSClassIdentifier))/8+lengthof(encvalue(p_allocationRetentionPriority))/8, omit), qoS_Class_Identifier := p_qoSClassIdentifier, allocation_Retention_Priority := p_allocationRetentionPriority, aVP_Type := omit Loading @@ -871,7 +885,7 @@ module DiameterGx_Templates { template Allocation_Retention_Priority_AVP m_allocRetentionPrio (template Priority_Level_AVP p_priorityLevel):= { aVP_Header := m_aVP_HeaderVid(c_allocation_Retention_Priority_AVP_Code, 8+lengthof(encvalue(p_priorityLevel))/8, omit), aVP_Header := m_aVP_HeaderVid(c_allocation_Retention_Priority_AVP_Code, lengthof(encvalue(p_priorityLevel))/8, omit), priority_Level := p_priorityLevel, pre_emption_Capability := omit, pre_emption_Vulnerability := omit Loading @@ -886,13 +900,45 @@ module DiameterGx_Templates { template Logical_Access_ID_AVP m_logicalAccessID(template (value) octetstring p_avpData) := { aVP_Header := m_aVP_HeaderVid(c_logical_Access_ID_AVP_Code, 4+lengthof(p_avpData), omit), aVP_Header := m_aVP_HeaderVid(c_logical_Access_ID_AVP_Code, lengthof(p_avpData), omit), aVP_Data := p_avpData } template Physical_Access_ID_AVP m_physicalAccessID(template (value) UTF8String p_avpData) := { aVP_Header := m_aVP_HeaderVid(c_physical_Access_ID_AVP_Code, 4+lengthof(p_avpData), omit), aVP_Header := m_aVP_HeaderVid(c_physical_Access_ID_AVP_Code, lengthof(p_avpData), omit), aVP_Data := p_avpData } template Granted_Service_Unit_AVP m_grantedServiceUnit_cCs(template CC_Total_Octets_AVP p_cC_Total_Octets, template CC_Input_Octets_AVP p_cC_Input_Octets, template CC_Output_Octets_AVP p_cC_Output_Octets) modifies m_grantedServiceUnit_dummy:= { // Ref: RFC4006 8.17. Granted-Service-Unit AVP aVP_Header := m_aVP_HeaderVid(c_granted_Service_Unit_AVP_Code, (lengthof(encvalue(p_cC_Total_Octets))/8+ lengthof(encvalue(p_cC_Input_Octets))/8+ lengthof(encvalue(p_cC_Output_Octets))/8), omit), cC_Total_Octets := p_cC_Total_Octets, cC_Input_Octets := p_cC_Input_Octets, cC_Output_Octets := p_cC_Output_Octets } template CC_Total_Octets_AVP m_cC_Total_Octets(template (value) UInt64 p_avpData) := { aVP_Header := m_aVP_HeaderVid(c_cC_Total_Octets_AVP_Code, 8, omit), aVP_Data := p_avpData } template CC_Input_Octets_AVP m_cC_Input_Octets(template (value) UInt64 p_avpData) := { aVP_Header := m_aVP_HeaderVid(c_cC_Input_Octets_AVP_Code, 8, omit), aVP_Data := p_avpData } template CC_Output_Octets_AVP m_cC_Output_Octets(template (value) UInt64 p_avpData) := { aVP_Header := m_aVP_HeaderVid(c_cC_Output_Octets_AVP_Code, 8, omit), aVP_Data := p_avpData } Loading @@ -911,14 +957,14 @@ module DiameterGx_Templates { aVP_Data := p_avpData } template Subscription_Id_AVP mw_subscription_Id(Subscription_Id_Type_AVP p_typeAVP, Subscription_Id_Data_AVP p_dataAVP):= template Subscription_Id_AVP mw_subscription_Id(template Subscription_Id_Type_AVP p_typeAVP, template Subscription_Id_Data_AVP p_dataAVP):= { aVP_Header := mw_aVP_Header(c_subscription_Id_AVP_Code), subscription_Id_Type := p_typeAVP, subscription_Id_Data := p_dataAVP } template Subscription_Id_Type_AVP mw_subscription_Id_Type(Subscription_Id_Ty_Type p_avpData):= template Subscription_Id_Type_AVP mw_subscription_Id_Type(template Subscription_Id_Ty_Type p_avpData):= { aVP_Header := mw_aVP_Header(c_subscription_Id_Type_AVP_Code), aVP_Data := p_avpData Loading Loading @@ -1648,19 +1694,18 @@ module DiameterGx_Templates { } template RAR_MSG m_RAR_CharRuleRemoveInstall2(template Session_Id_AVP p_sessionId, template RAR_MSG m_RAR_CharRuleRemoveInstall(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 Destination_Host_AVP p_destinationHost, template Charging_Rule_Remove_AVP p_chargingRuleRemove, template Charging_Rule_Install_AVP p_chargingRuleInstall, template Charging_Rule_Install_AVP p_chargingRuleInstall2) template Charging_Rule_Install_AVP p_chargingRuleInstall) modifies m_RAR_basic := { charging_Rule_Remove := {p_chargingRuleRemove}, charging_Rule_Install := {p_chargingRuleInstall,p_chargingRuleInstall2} charging_Rule_Install := {p_chargingRuleInstall} } Loading Loading @@ -1761,7 +1806,7 @@ module DiameterGx_Templates { } template CCR_MSG mw_CCR_Request_EMS(template Session_Id_AVP p_sessionId, template CCR_MSG mw_CCR_Request_EMS1(template Session_Id_AVP p_sessionId, template Origin_Host_AVP p_originHost, template Origin_Realm_AVP p_originRealm, template Destination_Realm_AVP p_destinationRealm, Loading @@ -1769,8 +1814,7 @@ module DiameterGx_Templates { template Framed_IP_Address_AVP p_framedIpAddress, template Framed_IPv6_Prefix_AVP p_framedIp6Address, template Routing_Rule_Install_AVP p_routing_Rule_Install, template Called_Station_Id_AVP p_calledStationId, template User_Equipment_Info_AVP p_userEquipmentInfo template Called_Station_Id_AVP p_calledStationId ) modifies mw_CCR_basic := { subscription_Id := {mw_subscription_Id(mw_subscription_Id_Type(END_USER_IMSI_E),mw_subscription_Id_Data(?))}, framed_IP_Address := p_framedIpAddress, Loading @@ -1778,8 +1822,28 @@ module DiameterGx_Templates { iP_CAN_Type := mw_iP_CAN_Type(PX_IP_CAN_TYPE), rAT_Type := mw_rAT_Type(PX_RAT_TYPE), routing_Rule_Install := p_routing_Rule_Install, called_Station_Id := p_calledStationId } template CCR_MSG mw_CCR_Request_EMS2(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 CC_Request_Type_AVP p_cCRequestType, template Framed_IP_Address_AVP p_framedIpAddress, template Framed_IPv6_Prefix_AVP p_framedIp6Address, template Routing_Rule_Install_AVP p_routing_Rule_Install, template Called_Station_Id_AVP p_calledStationId ) modifies mw_CCR_basic := { framed_IP_Address := p_framedIpAddress, framed_IPv6_Prefix := p_framedIp6Address, iP_CAN_Type := mw_iP_CAN_Type(PX_IP_CAN_TYPE), rAT_Type := mw_rAT_Type(PX_RAT_TYPE), routing_Rule_Install := p_routing_Rule_Install, called_Station_Id := p_calledStationId, user_Equipment_Info := p_userEquipmentInfo user_Equipment_Info := mw_UserEquipmentInfo(mw_UserEquipmentInfoType(IMEISV_E),?) } template RAR_MSG mw_RAR_sessReleaseCause(template Session_Id_AVP p_sessionId, Loading