/trunk/DiameterS9/ttcn/DiameterS9_Gxx_TCFunctions.ttcn3 |
---|
1620,10 → 1620,125 |
} //end group TP_VPCRFRole_VDS |
group TP_VPCRFRole_VSL { |
/* |
* @desc This is the test case function f_TC_VPCRF_VSL_01_PCEF |
* @param |
*/ |
function f_TC_VPCRF_VSL_01_PCEF() |
runs on DiameterComponent { |
f_preamble_PCEF(); |
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync |
f_send_CCR(m_CCR_Gxx_InitialRequest_SessLink_PDNConn |
(vc_sessionId, |
vc_originHost, |
vc_originRealm, |
vc_destinationRealm, |
f_framedIpAddress4_send(PX_UE1_framedIpAddress), |
f_framedIpAddress6_send(PX_UE1_framedIp6Address), |
{m_subscription_Id(valueof(m_subscription_Id_Type(END_USER_IMSI_E)), |
valueof(m_subscription_Id_Data(PX_SUBSCRIPTION_ID_DATA)))}, |
omit, //{m_anGwAddress(f_IPAdress(PX_SGW_AGW_ipv4,PX_SGW_AGW_ipv6))}, |
m_called_Station_Id(PX_CALLED_STATION_ID_PDN), |
m_pDN_Connection_ID(PX_PDN_CONNECTION_ID_DATA),//PDN_Connection |
omit //m_sessionLinkingIndicator_dummy(SESSION_LINKING_DEFERRED_E) |
) |
); |
f_awaiting_CCA(mw_CCA_Gx_basic(vc_sessionId, vc_originHost, vc_originRealm)); |
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync |
f_terminate_session_PCEF(); // postamble |
f_postamble_PCEF(); |
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync |
} // end function f_TC_VPCRF_VSL_01_PCEF |
} //end group TP_VPCRFRole_VSL |
group TP_VPCRFRole_VIF { |
/* |
* @desc This is the test case function f_TC_VPCRF_VIF_01_PCEF |
* @param |
*/ |
function f_TC_VPCRF_VIF_01_PCEF() |
runs on DiameterComponent { |
f_preamble_PCEF(); |
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync |
f_send_CCR(m_CCR_Gxx_InitialRequest_routingRule_EvTri |
(vc_sessionId, |
vc_originHost, |
vc_originRealm, |
vc_destinationRealm, |
f_framedIpAddress4_send(PX_UE1_framedIpAddress), |
f_framedIpAddress6_send(PX_UE1_framedIp6Address), |
{m_subscription_Id(valueof(m_subscription_Id_Type(END_USER_IMSI_E)), |
valueof(m_subscription_Id_Data(PX_SUBSCRIPTION_ID_DATA)))}, |
omit, // event_Trigger |
m_routing_Rule_Install(valueof(m_routing_Rule_Definition(valueof(m_routing_Rule_Identifier(PX_ROUTING_RULE_IDENTIFIER_VALUE)),valueof(m_routing_Filter)))), |
omit // routing_Rule_Remove |
) |
); |
f_awaiting_CCA(mw_CCA_Gx_basic(vc_sessionId, vc_originHost, vc_originRealm)); |
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync |
f_terminate_session_PCEF(); // postamble |
f_postamble_PCEF(); |
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync |
} // end function f_TC_VPCRF_VIF_01_PCEF |
/* |
* @desc This is the test case function f_TC_VPCRF_VIF_02_PCEF |
* @param |
*/ |
function f_TC_VPCRF_VIF_02_PCEF() |
runs on DiameterComponent { |
f_preamble_PCEF(); |
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync |
f_send_CCR(m_CCR_Gxx_InitialRequest_routingRule_EvTri |
(vc_sessionId, |
vc_originHost, |
vc_originRealm, |
vc_destinationRealm, |
f_framedIpAddress4_send(PX_UE1_framedIpAddress), |
f_framedIpAddress6_send(PX_UE1_framedIp6Address), |
{m_subscription_Id(valueof(m_subscription_Id_Type(END_USER_IMSI_E)), |
valueof(m_subscription_Id_Data(PX_SUBSCRIPTION_ID_DATA)))}, |
{m_event_Trigger(ROUTING_RULE_CHANGE_E)}, |
omit, // m_routing_Rule_Install |
m_routing_Rule_Remove(m_routing_Rule_Identifier(PX_ROUTING_RULE_IDENTIFIER_VALUE)) // routing_Rule_Remove |
) |
); |
f_awaiting_CCA(mw_CCA_Gx_basic(vc_sessionId, vc_originHost, vc_originRealm)); |
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync |
f_terminate_session_PCEF(); // postamble |
f_postamble_PCEF(); |
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync |
} // end function f_TC_VPCRF_VIF_02_PCEF |
} //end group TP_VPCRFRole_VIF |
/trunk/DiameterS9/ttcn/DiameterS9_Gxx_Templates.ttcn |
---|
430,7 → 430,30 |
called_Station_Id := p_calledStationId |
} |
} |
template CCR_MSG m_CCR_Gxx_InitialRequest_routingRule_EvTri (template Session_Id_AVP p_sessionId, |
template Origin_Host_AVP p_originHost, |
template Origin_Realm_AVP p_originRealm, |
template Destination_Realm_AVP p_destinationRealm, |
template Framed_IP_Address_AVP p_framedIpAddress, |
template Framed_IPv6_Prefix_AVP p_framedIp6Address, |
template CCR_MSG.cCR_Body.subscription_Id p_subscriptionId, |
template CCR_MSG.cCR_Body.event_Trigger p_eventTrigger, |
template CCR_MSG.cCR_Body.routing_Rule_Install p_routingRuleInstall, |
template CCR_MSG.cCR_Body.routing_Rule_Remove p_routingRuleRemove) |
modifies m_CCR_Gxx_basic := { |
cCR_Body := { |
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), |
subscription_Id := p_subscriptionId, |
event_Trigger := p_eventTrigger, |
routing_Rule_Install := p_routingRuleInstall, |
routing_Rule_Remove := p_routingRuleRemove |
} |
} |
template CCR_MSG m_CCR_Gxx_InitialRequest_qosRuleReport (template Session_Id_AVP p_sessionId, |
template Origin_Host_AVP p_originHost, |
template Origin_Realm_AVP p_originRealm, |
/trunk/DiameterS9/ttcn/DiameterS9_PIXITS.ttcn |
---|
646,6 → 646,12 |
Ref: RFC 3588 section 6-6 |
*/ |
modulepar charstring PX_GXX_DestinationRealm := "myalupcrf.etsi.org"; |
/** @desc octetstring, PIXIT item A-7/30 |
* An IP flow mobility routing rule for the Routing-Rule-Identifier AVP in Routing-Rule-Definition AVPs |
*/ |
modulepar octetstring PX_ROUTING_RULE_IDENTIFIER_VALUE := '08'O; |
}//end group DiameterCommonGxxData |
} // end module DiameterS9_PIXITS |
/trunk/DiameterS9/ttcn/DiameterS9_Templates.ttcn |
---|
770,6 → 770,77 |
aVP_Data := p_avpData |
} |
template Routing_Rule_Install_AVP m_routing_Rule_Install(Routing_Rule_Definition_AVP p_rrd) := |
{ |
aVP_Header := m_aVP_HeaderVid_Mbit0(c_routing_Rule_Install_AVP_Code, lengthof(encvalue(p_rrd))/8, c_vendId3gpp), |
routing_Rule_Definition := {p_rrd}, |
aVP_Type := omit |
} |
template Routing_Rule_Definition_AVP m_routing_Rule_Definition(Routing_Rule_Identifier_AVP p_rri, Routing_Filter_AVP p_rf) := |
{ |
aVP_Header := m_aVP_HeaderVid_Mbit0(c_routing_Rule_Definition_AVP_Code, (lengthof(encvalue(p_rri))/8+lengthof(encvalue(p_rf))/8), c_vendId3gpp), |
routing_Rule_Identifier := p_rri, |
routing_Filter := {p_rf}, |
precedence := omit, |
routing_IP_Address := omit, |
aVP_Type := omit |
} |
template Routing_Rule_Identifier_AVP m_routing_Rule_Identifier(octetstring p_avpData) := |
{ |
aVP_Header := m_aVP_HeaderVid_Mbit0(c_routing_Rule_Identifier_AVP_Code, lengthof(p_avpData), c_vendId3gpp), |
aVP_Data := p_avpData |
} |
template Routing_Filter_AVP m_routing_Filter := |
{ |
aVP_Header := m_aVP_HeaderVid_Mbit0(c_routing_Filter_AVP_Code, 16/*flow_direction: 12+4 for vendId*/+ lengthof(encvalue(m_flow_Description(valueof(m_iPFilterRule))))/8, c_vendId3gpp), |
flow_Description := m_flow_Description(valueof(m_iPFilterRule)), |
flow_Direction := m_flowDirection_Bidirectional, |
toS_Traffic_Class := omit, |
security_Parameter_Index := omit, |
flow_Label := omit, |
aVP_Type := omit |
} |
template Flow_Description_AVP m_flow_Description(IPFilterRule_Type p_IPftr) := |
{ |
aVP_Header := m_aVP_HeaderVid_Mbit1(c_flow_Description_AVP_Code, lengthof(encvalue(p_IPftr))/8, c_vendId3gpp), |
aVP_Data := p_IPftr |
} |
template Flow_Direction_AVP m_flowDirection_Bidirectional := |
{ |
aVP_Header := m_aVP_HeaderVid_Mbit0(c_flow_Direction_AVP_Code, 4, c_vendId3gpp), |
aVP_Data := BIDIRECTIONAL_E |
} |
template IPFilterRule_Type m_iPFilterRule := |
{ |
action_ := "permit", |
direction := "out", |
proto := "ip", |
src := { |
addr := "1.1.1.1", |
mask := omit, |
ports := omit |
}, |
dst := { |
addr := "10.10.10.1", |
mask := omit, |
ports := omit |
}, |
options := omit |
} |
template Routing_Rule_Remove_AVP m_routing_Rule_Remove (Routing_Rule_Identifier_AVP p_rri):= |
{ |
aVP_Header := m_aVP_HeaderVid_Mbit0(c_routing_Rule_Remove_AVP_Code, lengthof(encvalue(p_rri))/8, c_vendId3gpp), |
routing_Rule_Identifier := {p_rri}, |
aVP_Type := omit |
} |
}//end group sendingTemplatesForAVPs |
group awaitingTemplatesForAVPs{ |