Commit e2373966 authored by rennoch's avatar rennoch
Browse files

additions for VSL and VIF test groups

parent cce14198
Loading
Loading
Loading
Loading
+115 −0
Original line number Diff line number Diff line
@@ -1621,10 +1621,125 @@ module DiameterS9_Gxx_TCFunctions {
        
        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

    } // group TP_VPCRFRole    
+24 −1
Original line number Diff line number Diff line
@@ -431,6 +431,29 @@ module DiameterS9_Gxx_Templates {
                    }
                }

                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,
+6 −0
Original line number Diff line number Diff line
@@ -646,6 +646,12 @@ module DiameterS9_PIXITS
                    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
 No newline at end of file
+71 −0
Original line number Diff line number Diff line
@@ -770,6 +770,77 @@ module DiameterS9_Templates {
                    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{