Compare Revisions

The credentials to download the source code are:
 Username: svnusers
 Password: svnusers

Ignore whitespace Rev 56 → Rev 57

/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{