Commit 2853aed9 authored by garciay's avatar garciay
Browse files

Add OCF_OP_02, OCF_OP_03

parent c807205f
Loading
Loading
Loading
Loading
+3 −4
Original line number Diff line number Diff line
@@ -176,14 +176,13 @@ module DiameterRfRo_PICS {
        modulepar boolean PICS_RO_OCF_CREDIT_POOLING := false;
        
        /**
         * @desc Does OCF support re-authorization and specification of an idle 
         * timeout in the Quota Holding-Time AVP of the CCA message? 
         * @desc Does OCF support specification of an idle timeout in the Quota Holding-Time AVP of the CCA message? 
         * @see  ETSI TS 103 374-1 V1.1.2 (2015-09) A.6/9.1
         */
        modulepar boolean PICS_RO_OCF_RE_AUTHORIZATION_QUOTA_HOLDING_TIME := false;
        /**
         * @desc Does OCF support re-authorization and instructions to trigger re-authorization 
         * in the Trigger AVP in the Multiple-Services-Credit-Control AVP of the CCA messag? 
         * @desc Does OCF support instructions to trigger re-authorization in the Trigger AVP in the 
         *       Multiple-Services-Credit-Control AVP of the CCA message? 
         * @see  ETSI TS 103 374-1 V1.1.2 (2015-09) A.6/9.2
         */
        modulepar boolean PICS_RO_OCF_RE_AUTHORIZATION_TRIGGER := false;
+3 −0
Original line number Diff line number Diff line
@@ -10,6 +10,7 @@ module DiameterRfRo_PIXITS {
    
    // LibDiameter
    import from LibDiameter_Types_Base_AVPs all;
    import from LibDiameter_Types_RfRo_AVPs all;
    import from LibDiameter_Types_Gx_AVPs all;
    import from LibDiameter_Types_S9_AVPs all;

@@ -289,6 +290,8 @@ module DiameterRfRo_PIXITS {
         */
        modulepar UTF8String PX_SERVICE_CONTEXT_ID := "ContextId";
        
        modulepar Trigger_Type PX_TRIGGER_TYPE := CHANGEINQOS_TRAFFIC_CLASS_E;
        
    } // End of group ocfContext
    
    /** 
+168 −14
Original line number Diff line number Diff line
@@ -2760,23 +2760,104 @@ module DiameterRfRo_TCFunctions {
                                    INITIAL_REQUEST_E                    //     indicating INITIAL_REQUEST
                                ),
                                mw_cC_Request_Number_AVP,
                                mdw_multiple_Services_Credit_Control_granted_Service_Unit( 
                                mdw_multiple_Services_Credit_Control_quota_holdling( 
                                                                         // containing a Multiple-Services-Credit-Control AVP
                                    mdw_granted_Service_Unit_Time(       // containing a Granted-Service-Unit AVP
                                        mw_cC_Time                       //     indicating reserved units
                                    mw_quota_Holding_Time_AVP(           // containing a Quota-Holding-Time AVP
                                        complement(0)                    //     indicating a non 0 value
                                    )
                                )
                            )
                        )
                    );
                    f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync

                    f_sendCCR_awaitCCA_(
                                        TERMINATION_REQUEST_E, 
                                        3
                                        );
                    f_postamble_Ro_CTF();
                    f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync
                    log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                    
                } // End of function f_TC_RO_OCF_OP_01
                
                /**
                 * @desc    Verify that the IUT can successfully process a CC-Answer [Update] including various Trigger-Type AVPs and generate a credit re-authorization
                 * @verdict pass on success, fail on error or inconc on timeout only 
                 */
                function f_TC_RO_OCF_OP_02() runs on DiameterRfRo { 
                    // Local variables
                    
                    // Preamble
                    f_preamble_Ro_CTF();
                    // Preamble action: CCR,CCA [Event] direct debeting action are exchanged
                    f_sendCCR_awaitCCA_(
                                        INITIAL_REQUEST_E, 
                                        3,
                                        m_service_Context_Id(PX_SERVICE_CONTEXT_ID) 
                                        );
                    f_sendCCR_awaitCCA_(
                                        INITIAL_REQUEST_E, 
                                        3,
                                        m_service_Context_Id(PX_SERVICE_CONTEXT_ID) 
                                        
                                        );
                    f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
                    log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                    
                    f_send_CCR(
                        md_cCR(
                            vc_sessionId,
                            md_ccrBodyAvps_TypeOfCharging(
                                vc_originHost,
                                vc_originRealm,
                                vc_destinationRealm,
                                md_cC_Request_Type_AVP(                     // containing a CC-Request-Type AVP 
                                    UPDATE_REQUEST_E                        //     indicating UPDATE_REQUEST
                                ),
                                mw_cost_Information_AVP(                 // optionally containing a Cost-Information AVP
                                    mw_unit_Value_AVP(                   //     containing a Unit-Value AVP
                                        mw_value_Digits_AVP              //         containing a Value-Digits AVP
                                md_cC_Request_Number_AVP(3),
                                m_service_Context_Id(PX_SERVICE_CONTEXT_ID)
                            )
                        )
                    );

                    f_awaiting_CCA(
                        mdw_cCA(
                            vc_sessionId,
                            mdw_ccaBodyAvps_multiple_Services_Credit_Control(
                                mw_resultCode(                          // containing a Result-Code AVP
                                    DIAMETER_SUCCESS_E                  //     indicating DIAMETER_SUCCESS
                                ),
                                    mw_currency_Code_AVP                 //     containing a Currency-Code AVP
                                vc_originHost,
                                vc_originRealm,
                                mw_cC_Request_Type_AVP(                  // containing a CC-Request-Type AVP 
                                    UPDATE_REQUEST_E                     //     indicating UPDATE_REQUEST
                                ),
                                mw_remaining_Balance_AVP(                // optionally containing a Remaining-Balance AVP
                                    mw_unit_Value_AVP(                   //     containing a Unit-Value AVP
                                        mw_value_Digits_AVP              //         containing a Value-Digits AVP
                                mw_cC_Request_Number_AVP,
                                mdw_multiple_Services_Credit_Control_Trigger_AVP(
                                                                            // containing a Multiple-Services-Credit-Control AVP
                                    mw_trigger_AVP(                         //     containing a Trigger AVP
                                        mw_trigger_Type_AVP(                //         containing a Trigger-Type AVP
                                            PX_TRIGGER_TYPE                 //             indicating one of the possible values (7.2.235/236)
                                        )
                                    ) 
                                )
                            )
                        )
                    );
                    f_awaiting_RAR(
                        mdw_rAR(
                            ?, 
                            mdw_rarBodyAvps(
                                vc_originHost,                  // containing an Origin-Host AVP
                                vc_originRealm,                 // containing an Origin-Realm AVP
                                vc_destinationRealm,            // containing a Destination-Realm AVP
                                vc_destinationHost,             // containing a CC-Request-Type AVP
                                mw_auth_Application_Id_AVP(     // containing an Auth-Application-Id AVP
                                    4                           //     indicating the value 4
                                ),
                                    mw_currency_Code_AVP                 //     containing a Currency-Code AVP
                                mw_re_Auth_Request(            // containing a Re-Auth-Request-Type AVP
                                    AUTHORIZE_ONLY_E           //     indicating AUTHORIZE_ONLY
                                )
                            )
                        )
@@ -2791,7 +2872,80 @@ module DiameterRfRo_TCFunctions {
                    f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync
                    log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                    
                } // End of function f_TC_RO_OCF_OP_01
                } // End of function f_TC_RO_OCF_OP_02
                
                /**
                 * @desc    Verify that the IUT can successfully reset triggers which were already set
                 * @verdict pass on success, fail on error or inconc on timeout only 
                 */
                function f_TC_RO_OCF_OP_03() runs on DiameterRfRo { 
                    // Local variables
                    
                    // Preamble
                    f_preamble_Ro_CTF();
                    // Preamble action: CCR,CCA [Event] direct debeting action are exchanged
                    f_sendCCR_awaitCCA_(
                                        INITIAL_REQUEST_E, 
                                        3,
                                        m_service_Context_Id(PX_SERVICE_CONTEXT_ID) 
                                        );
                    f_sendCCR_awaitCCA_(
                                        INITIAL_REQUEST_E, 
                                        3,
                                        m_service_Context_Id(PX_SERVICE_CONTEXT_ID) 
                                        
                                        );
                    f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
                    log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                    
                    f_send_CCR(
                        md_cCR(
                            vc_sessionId,
                            md_ccrBodyAvps_TypeOfCharging(
                                vc_originHost,
                                vc_originRealm,
                                vc_destinationRealm,
                                md_cC_Request_Type_AVP(                     // containing a CC-Request-Type AVP 
                                    UPDATE_REQUEST_E                        //     indicating UPDATE_REQUEST
                                ),
                                md_cC_Request_Number_AVP(3),
                                m_service_Context_Id(PX_SERVICE_CONTEXT_ID)
                            )
                        )
                    );

                    f_awaiting_CCA(
                        mdw_cCA(
                            vc_sessionId,
                            mdw_ccaBodyAvps_multiple_Services_Credit_Control(
                                mw_resultCode(                          // containing a Result-Code AVP
                                    DIAMETER_SUCCESS_E                  //     indicating DIAMETER_SUCCESS
                                ),
                                vc_originHost,
                                vc_originRealm,
                                mw_cC_Request_Type_AVP(                  // containing a CC-Request-Type AVP 
                                    UPDATE_REQUEST_E                     //     indicating UPDATE_REQUEST
                                ),
                                mw_cC_Request_Number_AVP,
                                mdw_multiple_Services_Credit_Control_Trigger_AVP(
                                                                            // containing a Multiple-Services-Credit-Control AVP
                                    mw_reseted_trigger_AVP                  //     containing a Trigger AVP
                                                                            //         not containing a Trigger-Type AVP
                                )
                            )
                        )
                    );
                    f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync

                    f_sendCCR_awaitCCA_(
                                        TERMINATION_REQUEST_E, 
                                        3
                                        );
                    f_postamble_Ro_CTF();
                    f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync
                    log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                    
                } // End of function f_TC_RO_OCF_OP_03
                
            } // End of group TP_RO_OCF_OP
            
+84 −13
Original line number Diff line number Diff line
@@ -3799,7 +3799,7 @@ module DiameterRfRo_Templates {
            } // End of template mw_pdp_Context_Type_AVP
            
            /**
             * @desc The Trigger send template 
             * @desc The Trigger receieve template 
             * @param p_trigger_Type Holds the trigger types
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.235 Trigger AVP
@@ -3812,6 +3812,17 @@ module DiameterRfRo_Templates {
                trigger_Type    := { p_trigger_Type }
            } // End of template mw_trigger_AVP
            
            /**
             * @desc The Trigger receieve template without trigger type
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.235 Trigger AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template (present) Trigger_AVP mw_reseted_trigger_AVP := {
                aVP_Header      := mw_aVP_HeaderVid_Mbit1(c_trigger_AVP_Code, 4, c_vendId3gpp),
                trigger_Type    := { }
            } // End of template mw_reseted_trigger_AVP
            
            /**
             * @desc Base-Time-Interval AVP receive template 
             * @param p_reason  contains the length of the base aVP_Data interval, for controlling the consumption of aVP_Data quota, in seconds
@@ -5153,14 +5164,14 @@ module DiameterRfRo_Templates {
             * @desc Await template for CCR message body
             */
            template (present) CCR_Body_AVP mdw_ccrBodyAvps(
                                                             in template (present) Origin_Host_AVP                      p_originHost,
                                                             in template (present) Origin_Realm_AVP                     p_originRealm,
                                                             in template (present) Destination_Realm_AVP                p_destination_Realm,
                                                             in template (present) CC_Request_Type_AVP                  p_cC_Request_Type,
                                                             in template (present) CC_Request_Number_AVP                p_cC_Request_Number,
                                                             in template (present) Service_Context_Id_AVP               p_service_Context_Id,
                                                             in template Requested_Action_AVP                           p_requested_Action,
                                                             in template CCR_Body_AVP.multiple_Services_Credit_Control  p_multiple_Services_Credit_Control
                                                            template (present) Origin_Host_AVP                      p_originHost,
                                                            template (present) Origin_Realm_AVP                     p_originRealm,
                                                            template (present) Destination_Realm_AVP                p_destination_Realm,
                                                            template (present) CC_Request_Type_AVP                  p_cC_Request_Type,
                                                            template (present) CC_Request_Number_AVP                p_cC_Request_Number,
                                                            template (present) Service_Context_Id_AVP               p_service_Context_Id,
                                                            template Requested_Action_AVP                           p_requested_Action,
                                                            template CCR_Body_AVP.multiple_Services_Credit_Control  p_multiple_Services_Credit_Control
            ) modifies mw_CCR_Body_dummy := {
                    origin_Host                         := p_originHost,
                    origin_Realm                        := p_originRealm,
@@ -5173,6 +5184,39 @@ module DiameterRfRo_Templates {
                    multiple_Services_Credit_Control    := p_multiple_Services_Credit_Control
            } // End of template mdw_ccrBodyAvps_TypeOfCharging
            
            /**
             * @desc Receive template for RAR
             * @param p_sessionId   Session identifier
             * @param p_rarBody     RAR message body
             */
            template (present) RAR_MSG mdw_rAR(
                                               template (present) Session_Id_AVP  p_sessionId,
                                               template (present) RAR_Body_AVP    p_rarBody
            ) modifies mw_RAR_dummy := {
                header      := mw_diameterHeaderReq_dummy(RAR_E, c_applIdRfRo),
                session_Id  := p_sessionId,
                rAR_Body    := p_rarBody
            } // End of template mdw_rAR
            
            /**
             * @desc Receive template for RAR message body
             */
            template (present) RAR_Body_AVP mdw_rarBodyAvps( 
                                                            template (present) Origin_Host_AVP            p_originHost,
                                                            template (present) Origin_Realm_AVP           p_originRealm,
                                                            template (present) Destination_Realm_AVP      p_destination_Realm,
                                                            template (present) Destination_Host_AVP       p_destination_Host,
                                                            template (present) Auth_Application_Id_AVP    p_auth_Application_Id,
                                                            template (present) Re_Auth_Request_Type_AVP   p_re_Auth_Request_Type
            ) modifies mw_RAR_Body_dummy := {
                    origin_Host             := p_originHost,
                    origin_Realm            := p_originRealm,
                    destination_Realm       := p_destination_Realm,
                    destination_Host        := p_destination_Host,
                    auth_Application_Id     := p_auth_Application_Id,
                    re_Auth_Request_Type    := p_re_Auth_Request_Type
            } // End of template mdw_rarBodyAvps
            
            /**
             * @desc Receive template for RAA
             * @param p_sessionId   Session identifier
@@ -5489,6 +5533,13 @@ module DiameterRfRo_Templates {
                refund_Information          := p_refund_Information
            } // End of template m_multiple_Services_Credit_Control_RefundInfo
            
            template (omit) Multiple_Services_Credit_Control_AVP m_multiple_Services_Credit_Control_Trigger_AVP(
                                                                                                                in template (value) Trigger_AVP p_trigger
            ) modifies m_multiple_Services_Credit_Control_AVP_dummy := {
                // TODO set headers length
                trigger_ := p_trigger
            } // End of template m_multiple_Services_Credit_Control_Trigger_AVP
            
            template (value) Requested_Service_Unit_AVP m_requested_Service_Unit_cC_Time_AVP(
                                                                                             in template (value) CC_Time_AVP p_cC_Time
            ) modifies m_requested_Service_Unit_AVP_dummy := {
@@ -5724,7 +5775,20 @@ module DiameterRfRo_Templates {
                                                                                                                        template (present) G_S_U_Pool_Reference_AVP p_g_S_U_Pool_Reference := ?
            ) modifies mw_multiple_Services_Credit_Control_dummy := {
                g_S_U_Pool_Reference    := { p_g_S_U_Pool_Reference }
            } // End of template m_multiple_Services_Credit_Control_Pool_Reference
            } // End of template mdw_multiple_Services_Credit_Control_Pool_Reference
            
            template (present) Multiple_Services_Credit_Control_AVP mdw_multiple_Services_Credit_Control_quota_holdling(
                                                                                                                        template (present) Quota_Holding_Time_AVP p_quota_Holding_Time := ?
            ) modifies mw_multiple_Services_Credit_Control_dummy := {
                quota_Holding_Time  := p_quota_Holding_Time
            } // End of template mdw_multiple_Services_Credit_Control_quota_holdling
            
            template (present) Multiple_Services_Credit_Control_AVP mdw_multiple_Services_Credit_Control_Trigger_AVP(
                                                                                                                     template (present) Trigger_AVP p_trigger := ?
            ) modifies mw_multiple_Services_Credit_Control_dummy := {
                // TODO set headers length
                trigger_ := p_trigger
            } // End of template mdw_multiple_Services_Credit_Control_Trigger_AVP
            
            template (present) Granted_Service_Unit_AVP mdw_granted_Service_Unit_Time(
                                                                                      template (present) CC_Time_AVP p_cC_Time := ?
@@ -5862,12 +5926,19 @@ module DiameterRfRo_Templates {
            } // End of template mw_cC_Unit_Type_AVP
            
            template (present) Multiple_Services_Indicator_AVP mw_multiple_Services_Indicator_AVP(
                                                                                                  template (present) Multiple_Serv_Indi_Type p_aVP_Data
                                                                                                  template (present) Multiple_Serv_Indi_Type p_aVP_Data := ?
            ) := {
                aVP_Header := mw_aVP_HeaderVid_Mbit1(c_multiple_Services_Indicator_AVP_Code, 4, ?),
                aVP_Header := mw_aVP_HeaderVid_Mbit1(c_multiple_Services_Indicator_AVP_Code, 4, c_vendId3gpp),
                aVP_Data := p_aVP_Data
            } // End of template mw_multiple_Services_Indicator_AVP
            
            template (present) Re_Auth_Request_Type_AVP mw_re_Auth_Request(
                                                                           template (present) Re_Auth_Req_Type p_aVP_Data := ?
            ) := {
                aVP_Header := mw_aVP_HeaderVid_Mbit1(c_re_Auth_Request_Type_AVP_Code, 4, ?),
                aVP_Data := p_aVP_Data
            } // End of template mw_re_Auth_Request
            
        } // End of group Ro_avps_templates_receive 
        
    } // End of group Ro_avps_templates 
+124 −12

File changed.

Preview size limit exceeded, changes collapsed.

Loading