Loading DiameterRx/ttcn/DiameterRx_Rx_TCFunctions.ttcn +62 −6 Original line number Diff line number Diff line Loading @@ -684,7 +684,7 @@ module DiameterRx_Rx_TCFunctions { f_framedIpAddress4_send(), f_framedIpAddress6_send(), m_specificActionsList, m_mediaComponentDescription_subComponentFlowUN_componentNr m_mediaComponentDescription_subComponentFlow_componentNr (m_mediaSubComponentUN (0, AF_SIGNALLING_E), m_mediaComponentNr(0)))); Loading Loading @@ -717,7 +717,7 @@ module DiameterRx_Rx_TCFunctions { f_framedIpAddress4_send(), f_framedIpAddress6_send(), m_specificActionsList, m_mediaComponentDescription_subComponentFlowN_componentNr m_mediaComponentDescription_subComponentFlow_componentNr (m_mediaSubComponentN (0), m_mediaComponentNr(0)))); Loading Loading @@ -748,7 +748,7 @@ module DiameterRx_Rx_TCFunctions { f_framedIpAddress4_send(), f_framedIpAddress6_send(), m_specificActionsList, m_mediaComponentDescription_subComponentFlowN_componentNr m_mediaComponentDescription_subComponentFlow_componentNr (m_mediaSubComponentN (0), m_mediaComponentNr(0)))); Loading Loading @@ -789,11 +789,59 @@ module DiameterRx_Rx_TCFunctions { f_framedIpAddress4_send(), f_framedIpAddress6_send(), m_specificActionsList, m_mediaComponentDescription_subComponentFlowUN_componentNr m_mediaComponentDescription_subComponentFlow_componentNr (m_mediaSubComponentUND2SP (0,AF_SIGNALLING_E, m_flowDescription("permit","out","ip", {ipno := 4, addr := "1.2.3.4", mask := omit}, {ipno := 4, addr := "1.2.3.4", mask := omit}, "",""), m_flowDescription("permit","out","ip", {ipno := 4, addr := "1.2.3.4", mask := omit}, {ipno := 4, addr := "1.2.3.4", mask := omit}, "",""), m_flowStatus(ENABLED_E), m_afSignallingProtocolSIP ), m_mediaComponentNr(0)))); f_awaiting_AAA(mw_AAA_dummy); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_postamble_AF(); } // end function f_TC_PCRF_SN_04 /* * @desc This is the test case function TC_PCRF_SN_05 * @param */ function f_TC_PCRF_SN_05() runs on DiameterComponent { f_preamble_AF(); f_send_AAR(m_AAR_FIP_SA_Media1(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, vc_destinationHost, f_framedIpAddress4_send(), f_framedIpAddress6_send(), m_specificActionsList, m_mediaComponentDescription_subComponentFlow_componentNr (m_mediaSubComponentUND2SP (0,AF_SIGNALLING_E, m_flowDescription("permit","out","ip", {ipno := 4, addr := "1.2.3.4", mask := omit}, {ipno := 4, addr := "1.2.3.4", mask := omit}, "",""), m_flowDescription("permit","out","ip", {ipno := 4, addr := "1.2.3.4", mask := omit}, {ipno := 4, addr := "1.2.3.4", mask := omit}, "",""), m_flowStatus(ENABLED_E), m_afSignallingProtocolSIP ), Loading @@ -801,13 +849,21 @@ module DiameterRx_Rx_TCFunctions { f_awaiting_AAA(mw_AAA_dummy); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync f_send_STR(m_STR_basic(vc_sessionId, vc_originHost, // Tester initiates termination vc_originRealm, vc_destinationRealm, m_terminationCause(DIAMETER_LOGOUT_E))); f_awaiting_STA(mw_STA_dummy); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_postamble_AF(); } // end function f_TC_PCRF_SN_04 } // end function f_TC_PCRF_SN_05 } //end group TP_PCRFRole Loading DiameterRx/ttcn/DiameterRx_Templates.ttcn +64 −26 Original line number Diff line number Diff line Loading @@ -392,35 +392,26 @@ module DiameterRx_Templates { flow_Status := p_flowStatus } template Media_Component_Description_AVP m_mediaComponentDescription_subComponentFlowUN_componentNr template Media_Component_Description_AVP m_mediaComponentDescription_subComponentFlow_componentNr (template Media_Sub_Component_AVP p_mediaSubComponent, template Media_Component_Number_AVP p_mediaComponentNr) modifies m_mediaComponentDescription_dummy := { aVP_Header := m_aVP_HeaderVid(c_vendIdMedia_Component_Description_AVP, 32 + 12, omit), // considers lengths: // media_Component_Nr (12) // subComponent (32) media_Sub_component := {p_mediaSubComponent}, media_Component_Nr := p_mediaComponentNr } template Media_Component_Description_AVP m_mediaComponentDescription_subComponentFlowN_componentNr (template Media_Sub_Component_AVP p_mediaSubComponent, template Media_Component_Number_AVP p_mediaComponentNr) modifies m_mediaComponentDescription_dummy := { aVP_Header := m_aVP_HeaderVid(c_vendIdMedia_Component_Description_AVP, 20 + 12, omit), // considers lengths: // media_Component_Nr (12) // subComponent (20) 8 // header len + lengthof(encvalue(p_mediaSubComponent)) // subComponent (32) + lengthof(encvalue(p_mediaComponentNr)), // media_Component_Nr (12) omit), media_Sub_component := {p_mediaSubComponent}, media_Component_Nr := p_mediaComponentNr } template Media_Sub_Component_AVP m_mediaSubComponentUN (template UInt32 p_flowNumber, template Flow_Usage_Type p_flowUsageType ) := { aVP_Header := m_aVP_HeaderVid(c_vendIdMedia_Sub_Component_AVP,12+12, omit), aVP_Header := m_aVP_HeaderVid(c_vendIdMedia_Sub_Component_AVP, 8 + 12 // flow_Number + 12, // flow_Usage omit), flow_Number := {aVP_Header := m_aVP_HeaderVid(c_vendIdFlow_Number_AVP,4, omit), aVP_Data := p_flowNumber}, flow_Description := omit, flow_Status := omit, Loading @@ -434,13 +425,21 @@ module DiameterRx_Templates { template Media_Sub_Component_AVP m_mediaSubComponentUND2SP (template UInt32 p_flowNumber, template Flow_Usage_Type p_flowUsageType, // template Flow_Description_AVP p_flowDescription1, // template Flow_Description_AVP p_flowDescription2, template Flow_Description_AVP p_flowDescription1, template Flow_Description_AVP p_flowDescription2, template Flow_Status_AVP p_FlowStatus, template AF_Signalling_Protocol_AVP p_afSignallingProtocol) := { aVP_Header := m_aVP_HeaderVid(c_vendIdMedia_Sub_Component_AVP,12+12, omit), aVP_Header := m_aVP_HeaderVid(c_vendIdMedia_Sub_Component_AVP, 8 + 12 // flow_Number + lengthof(encvalue(p_flowDescription1)) + lengthof(encvalue(p_flowDescription2)) + 12 // flow_Usage + lengthof(encvalue(p_FlowStatus)) + lengthof(encvalue(p_afSignallingProtocol)), omit), flow_Number := {aVP_Header := m_aVP_HeaderVid(c_vendIdFlow_Number_AVP,4, omit), aVP_Data := p_flowNumber}, flow_Description := omit, //{p_flowDescription1, p_flowDescription2}, flow_Description := {p_flowDescription1, p_flowDescription2}, flow_Status := p_FlowStatus, flow_Usage := {aVP_Header := m_aVP_HeaderVid(c_vendIdFlow_Usage_AVP,4, omit), aVP_Data := p_flowUsageType}, max_Requested_Bw_Ul := omit, Loading @@ -450,7 +449,10 @@ module DiameterRx_Templates { } template Media_Sub_Component_AVP m_mediaSubComponentN (template UInt32 p_flowNumber) := { aVP_Header := m_aVP_HeaderVid(c_vendIdMedia_Sub_Component_AVP,12, omit), aVP_Header := m_aVP_HeaderVid(c_vendIdMedia_Sub_Component_AVP, 8 + 12, // flow_Number omit), flow_Number := {aVP_Header := m_aVP_HeaderVid(c_vendIdFlow_Number_AVP,4, omit), aVP_Data := p_flowNumber}, flow_Description := omit, flow_Status := omit, Loading Loading @@ -522,6 +524,42 @@ module DiameterRx_Templates { aVP := omit } template Flow_Description_AVP m_flowDescription_dummy := { aVP_Header := m_aVP_HeaderVid(c_vendIdFlow_Description_AVP,8, omit), aVP_Data := { action_ := "permit", direction := "out", proto := "ip", src := {ipno := 4, addr := "1.2.3.4", mask := omit}, dst := {ipno := 4, addr := "1.2.3.4", mask := omit}, ports := "", options := omit } } template Flow_Description_AVP m_flowDescription (UTF8String p_action, UTF8String p_direction, UTF8String p_proto, IP_AddressMask p_src, IP_AddressMask p_dst, UTF8String p_ports, UTF8String p_options) := { aVP_Header := m_aVP_HeaderVid(c_vendIdFlow_Description_AVP, 8 + lengthof(p_action) + lengthof(p_direction) + lengthof(encvalue(p_src)) + lengthof(encvalue(p_dst)) + lengthof(p_ports) + lengthof(p_options), omit), aVP_Data := { action_ := p_action, direction := p_direction, proto := p_proto, src := p_src, dst := p_dst, ports := p_ports, options := p_options } } template Sponsored_Connectivity_Data_AVP mw_sponsoredConnectivityData (template Sponsor_Identity_AVP p_sponsorIdentity, template Application_Service_Provider_Identity_AVP p_applicationServiceProviderId, Loading Loading
DiameterRx/ttcn/DiameterRx_Rx_TCFunctions.ttcn +62 −6 Original line number Diff line number Diff line Loading @@ -684,7 +684,7 @@ module DiameterRx_Rx_TCFunctions { f_framedIpAddress4_send(), f_framedIpAddress6_send(), m_specificActionsList, m_mediaComponentDescription_subComponentFlowUN_componentNr m_mediaComponentDescription_subComponentFlow_componentNr (m_mediaSubComponentUN (0, AF_SIGNALLING_E), m_mediaComponentNr(0)))); Loading Loading @@ -717,7 +717,7 @@ module DiameterRx_Rx_TCFunctions { f_framedIpAddress4_send(), f_framedIpAddress6_send(), m_specificActionsList, m_mediaComponentDescription_subComponentFlowN_componentNr m_mediaComponentDescription_subComponentFlow_componentNr (m_mediaSubComponentN (0), m_mediaComponentNr(0)))); Loading Loading @@ -748,7 +748,7 @@ module DiameterRx_Rx_TCFunctions { f_framedIpAddress4_send(), f_framedIpAddress6_send(), m_specificActionsList, m_mediaComponentDescription_subComponentFlowN_componentNr m_mediaComponentDescription_subComponentFlow_componentNr (m_mediaSubComponentN (0), m_mediaComponentNr(0)))); Loading Loading @@ -789,11 +789,59 @@ module DiameterRx_Rx_TCFunctions { f_framedIpAddress4_send(), f_framedIpAddress6_send(), m_specificActionsList, m_mediaComponentDescription_subComponentFlowUN_componentNr m_mediaComponentDescription_subComponentFlow_componentNr (m_mediaSubComponentUND2SP (0,AF_SIGNALLING_E, m_flowDescription("permit","out","ip", {ipno := 4, addr := "1.2.3.4", mask := omit}, {ipno := 4, addr := "1.2.3.4", mask := omit}, "",""), m_flowDescription("permit","out","ip", {ipno := 4, addr := "1.2.3.4", mask := omit}, {ipno := 4, addr := "1.2.3.4", mask := omit}, "",""), m_flowStatus(ENABLED_E), m_afSignallingProtocolSIP ), m_mediaComponentNr(0)))); f_awaiting_AAA(mw_AAA_dummy); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_postamble_AF(); } // end function f_TC_PCRF_SN_04 /* * @desc This is the test case function TC_PCRF_SN_05 * @param */ function f_TC_PCRF_SN_05() runs on DiameterComponent { f_preamble_AF(); f_send_AAR(m_AAR_FIP_SA_Media1(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, vc_destinationHost, f_framedIpAddress4_send(), f_framedIpAddress6_send(), m_specificActionsList, m_mediaComponentDescription_subComponentFlow_componentNr (m_mediaSubComponentUND2SP (0,AF_SIGNALLING_E, m_flowDescription("permit","out","ip", {ipno := 4, addr := "1.2.3.4", mask := omit}, {ipno := 4, addr := "1.2.3.4", mask := omit}, "",""), m_flowDescription("permit","out","ip", {ipno := 4, addr := "1.2.3.4", mask := omit}, {ipno := 4, addr := "1.2.3.4", mask := omit}, "",""), m_flowStatus(ENABLED_E), m_afSignallingProtocolSIP ), Loading @@ -801,13 +849,21 @@ module DiameterRx_Rx_TCFunctions { f_awaiting_AAA(mw_AAA_dummy); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync f_send_STR(m_STR_basic(vc_sessionId, vc_originHost, // Tester initiates termination vc_originRealm, vc_destinationRealm, m_terminationCause(DIAMETER_LOGOUT_E))); f_awaiting_STA(mw_STA_dummy); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_postamble_AF(); } // end function f_TC_PCRF_SN_04 } // end function f_TC_PCRF_SN_05 } //end group TP_PCRFRole Loading
DiameterRx/ttcn/DiameterRx_Templates.ttcn +64 −26 Original line number Diff line number Diff line Loading @@ -392,35 +392,26 @@ module DiameterRx_Templates { flow_Status := p_flowStatus } template Media_Component_Description_AVP m_mediaComponentDescription_subComponentFlowUN_componentNr template Media_Component_Description_AVP m_mediaComponentDescription_subComponentFlow_componentNr (template Media_Sub_Component_AVP p_mediaSubComponent, template Media_Component_Number_AVP p_mediaComponentNr) modifies m_mediaComponentDescription_dummy := { aVP_Header := m_aVP_HeaderVid(c_vendIdMedia_Component_Description_AVP, 32 + 12, omit), // considers lengths: // media_Component_Nr (12) // subComponent (32) media_Sub_component := {p_mediaSubComponent}, media_Component_Nr := p_mediaComponentNr } template Media_Component_Description_AVP m_mediaComponentDescription_subComponentFlowN_componentNr (template Media_Sub_Component_AVP p_mediaSubComponent, template Media_Component_Number_AVP p_mediaComponentNr) modifies m_mediaComponentDescription_dummy := { aVP_Header := m_aVP_HeaderVid(c_vendIdMedia_Component_Description_AVP, 20 + 12, omit), // considers lengths: // media_Component_Nr (12) // subComponent (20) 8 // header len + lengthof(encvalue(p_mediaSubComponent)) // subComponent (32) + lengthof(encvalue(p_mediaComponentNr)), // media_Component_Nr (12) omit), media_Sub_component := {p_mediaSubComponent}, media_Component_Nr := p_mediaComponentNr } template Media_Sub_Component_AVP m_mediaSubComponentUN (template UInt32 p_flowNumber, template Flow_Usage_Type p_flowUsageType ) := { aVP_Header := m_aVP_HeaderVid(c_vendIdMedia_Sub_Component_AVP,12+12, omit), aVP_Header := m_aVP_HeaderVid(c_vendIdMedia_Sub_Component_AVP, 8 + 12 // flow_Number + 12, // flow_Usage omit), flow_Number := {aVP_Header := m_aVP_HeaderVid(c_vendIdFlow_Number_AVP,4, omit), aVP_Data := p_flowNumber}, flow_Description := omit, flow_Status := omit, Loading @@ -434,13 +425,21 @@ module DiameterRx_Templates { template Media_Sub_Component_AVP m_mediaSubComponentUND2SP (template UInt32 p_flowNumber, template Flow_Usage_Type p_flowUsageType, // template Flow_Description_AVP p_flowDescription1, // template Flow_Description_AVP p_flowDescription2, template Flow_Description_AVP p_flowDescription1, template Flow_Description_AVP p_flowDescription2, template Flow_Status_AVP p_FlowStatus, template AF_Signalling_Protocol_AVP p_afSignallingProtocol) := { aVP_Header := m_aVP_HeaderVid(c_vendIdMedia_Sub_Component_AVP,12+12, omit), aVP_Header := m_aVP_HeaderVid(c_vendIdMedia_Sub_Component_AVP, 8 + 12 // flow_Number + lengthof(encvalue(p_flowDescription1)) + lengthof(encvalue(p_flowDescription2)) + 12 // flow_Usage + lengthof(encvalue(p_FlowStatus)) + lengthof(encvalue(p_afSignallingProtocol)), omit), flow_Number := {aVP_Header := m_aVP_HeaderVid(c_vendIdFlow_Number_AVP,4, omit), aVP_Data := p_flowNumber}, flow_Description := omit, //{p_flowDescription1, p_flowDescription2}, flow_Description := {p_flowDescription1, p_flowDescription2}, flow_Status := p_FlowStatus, flow_Usage := {aVP_Header := m_aVP_HeaderVid(c_vendIdFlow_Usage_AVP,4, omit), aVP_Data := p_flowUsageType}, max_Requested_Bw_Ul := omit, Loading @@ -450,7 +449,10 @@ module DiameterRx_Templates { } template Media_Sub_Component_AVP m_mediaSubComponentN (template UInt32 p_flowNumber) := { aVP_Header := m_aVP_HeaderVid(c_vendIdMedia_Sub_Component_AVP,12, omit), aVP_Header := m_aVP_HeaderVid(c_vendIdMedia_Sub_Component_AVP, 8 + 12, // flow_Number omit), flow_Number := {aVP_Header := m_aVP_HeaderVid(c_vendIdFlow_Number_AVP,4, omit), aVP_Data := p_flowNumber}, flow_Description := omit, flow_Status := omit, Loading Loading @@ -522,6 +524,42 @@ module DiameterRx_Templates { aVP := omit } template Flow_Description_AVP m_flowDescription_dummy := { aVP_Header := m_aVP_HeaderVid(c_vendIdFlow_Description_AVP,8, omit), aVP_Data := { action_ := "permit", direction := "out", proto := "ip", src := {ipno := 4, addr := "1.2.3.4", mask := omit}, dst := {ipno := 4, addr := "1.2.3.4", mask := omit}, ports := "", options := omit } } template Flow_Description_AVP m_flowDescription (UTF8String p_action, UTF8String p_direction, UTF8String p_proto, IP_AddressMask p_src, IP_AddressMask p_dst, UTF8String p_ports, UTF8String p_options) := { aVP_Header := m_aVP_HeaderVid(c_vendIdFlow_Description_AVP, 8 + lengthof(p_action) + lengthof(p_direction) + lengthof(encvalue(p_src)) + lengthof(encvalue(p_dst)) + lengthof(p_ports) + lengthof(p_options), omit), aVP_Data := { action_ := p_action, direction := p_direction, proto := p_proto, src := p_src, dst := p_dst, ports := p_ports, options := p_options } } template Sponsored_Connectivity_Data_AVP mw_sponsoredConnectivityData (template Sponsor_Identity_AVP p_sponsorIdentity, template Application_Service_Provider_Identity_AVP p_applicationServiceProviderId, Loading