Commit 28b7c3b4 authored by garciay's avatar garciay
Browse files

STF490: Terminate RO_OCF_xx TCs

Some FIXME/TODO to be fixed
parent ab859d32
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -315,6 +315,11 @@ module DiameterRfRo_PIXITS {
         */
        modulepar UTF8String PX_REDIRECT_SERVER_ADDRESS := "10.1.1.1";
        
        /** 
         * @desc    The The Time-Quota-Type AVP value, PIXIT item A-10/12
         */
        modulepar Time_Quota_Type PX_TIME_QUOTA_TYPE := DISCRETE_TIME_PERIOD_E;
        
    } // End of group ocfContext
    
    /** 
+319 −5
Original line number Diff line number Diff line
@@ -3106,6 +3106,7 @@ module DiameterRfRo_TCFunctions {
                                                                         // containing a Multiple-Services-Credit-Control AVP
                                    mw_quota_Holding_Time_AVP(           // containing a Quota-Holding-Time AVP
                                        complement(0)                    //     indicating a non 0 value
                                        // FIXME Does not compile with TCT3
                                    )
                                )
                            )
@@ -3916,7 +3917,7 @@ module DiameterRfRo_TCFunctions {

                    // FIXME How to implement on service termination request ?

                    f_awaiting_ASR(
                    f_awaiting_ASR(                            // the IUT sends an AS-Request
                        mdw_aSR(
                            vc_sessionId,                      // containing a Session-ID AVP
                            mdw_asrBodyAvps(
@@ -3929,7 +3930,7 @@ module DiameterRfRo_TCFunctions {
                        )
                    );

                    f_send_ASA(
                    f_send_ASA(                                 // the IUT receives an AS-Answer
                        md_aSA(
                            vc_sessionId,                       // containing a Session-ID AVP
                            md_asaBodyAvps(
@@ -3942,7 +3943,7 @@ module DiameterRfRo_TCFunctions {
                        )
                    );

                    f_send_CCR(
                    f_send_CCR(                                // the IUT receives an CC-Request
                        md_cCR(
                            vc_sessionId,                      // containing a Session-ID AVP
                            md_ccrBodyAvps_TypeOfCharging(
@@ -3960,7 +3961,7 @@ module DiameterRfRo_TCFunctions {
                        )
                    );

                    f_awaiting_CCA(
                    f_awaiting_CCA(                             // the IUT sends an CC-Answer
                        mdw_cCA(
                            vc_sessionId,                       // containing a Session-ID AVP
                            mdw_ccaBodyAvps(
@@ -3985,6 +3986,319 @@ module DiameterRfRo_TCFunctions {
                    
                } // End of function f_TC_RO_OCF_OP_11
                
                /**
                 * @desc    Verify that the IUT can successfully process Envelope AVP
                 * @verdict pass on success, fail on error or inconc on timeout only 
                 */
                function f_TC_RO_OCF_OP_12() runs on DiameterRfRo { 
                    // Local variables
                    
                    // Preamble
                    f_preamble_Ro_CTF();
                    f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
                    log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                    
                    f_send_CCR(                                             // the IUT receives a CC-Request
                        md_cCR(
                            vc_sessionId,
                            md_ccrBodyAvps_TypeOfCharging(
                                vc_originHost,
                                vc_originRealm,
                                vc_destinationRealm,
                                md_cC_Request_Type_AVP(                     // containing a CC-Request-Type AVP 
                                    INITIAL_REQUEST_E                       //     indicating INITIAL_REQUEST
                                ),
                                m_cC_Request_Number_dummy,
                                m_service_Context_Id(PX_SERVICE_CONTEXT_ID), 
                                -,
                                m_multiple_Services_Credit_Control_AVP(     // containing a Multiple-Services-Credit-Control AVP
                                    m_requested_Service_Unit_cC_Total_Octets_AVP(
                                                                            //     containing a Requested-Service-Unit AVP
                                        m_cC_Total_Octets_AVP(32)           // FIXME How to trigger Envelope-Reporting AVP/Volume
                                    )
                                )
                            )
                        )
                    );

                    f_awaiting_CCA(                                     // the IUT sends a CC-Answer
                        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 
                                    INITIAL_REQUEST_E                   //     indicating INITIAL_REQUEST
                                ),
                                mw_cC_Request_Number_AVP,
                                mdw_multiple_Services_Credit_Control_Envelope_Reporting_AVP(
                                                                        // containing a Multiple-Services-Credit-Control AVP
                                    mw_envelope_Reporting_AVP(          //     containing an Envelope-Reporting AVP
                                        REPORT_ENVELOPES_WITH_VOLUME_E  //         indicating REPORT_ENVELOPES_WITH_VOLUME
                                    ) 
                                )
                            )
                        )
                    );
                    
                    f_send_CCR(                                         // the IUT receives a CC-Request
                        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
                                ),
                                m_cC_Request_Number_dummy,
                                m_service_Context_Id(PX_SERVICE_CONTEXT_ID), 
                                -,
                                md_multiple_Services_Credit_Control_granted_Service_Unit_Envelope(
                                                                            // containing a Multiple-Services-Credit-Control AVP
                                    m_granted_Service_Unit_Volume_AVP(      //     containing a Granted-Service-Unit AVP
                                        m_cC_Total_Octets_AVP(32)           //         indicating reserved units
                                    ),
                                    m_envelope_AVP(                         //     containing an Envelope AVP
                                        m_envelope_Start_Time_AVP(          //         containing an Envelope-Start-Time AVP
                                            0 // FIXME Set start time value
                                        ),
                                        -,                                  //         optionally containing an Envelope-Stop-Time AVP
                                        m_cC_Total_Octets_AVP(32),          //         containing a CC-Total-Octets AVP
                                        m_cC_Input_Octets_AVP(16),          //         containing a CC-Input-Octets AVP
                                        m_cC_Output_Octets_AVP(16)          //         containing a CC-Output-Octets AVP
                                                                            //         optionally containing a CC-Service-Specific-Units AVP
                                    )
                                )
                            )
                        )
                    );

                    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
                                )
                            )
                        )
                    );
                    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_12
                
                /**
                 * @desc    Verify that the IUT can successfully process combinational quota
                 * @verdict pass on success, fail on error or inconc on timeout only 
                 */
                function f_TC_RO_OCF_OP_13() runs on DiameterRfRo { 
                    // Local variables
                    
                    // Preamble
                    f_preamble_Ro_CTF();
                    f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
                    log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                    
                    f_send_CCR(                                             // the IUT receives a CC-Request
                        md_cCR(
                            vc_sessionId,
                            md_ccrBodyAvps_TypeOfCharging(
                                vc_originHost,
                                vc_originRealm,
                                vc_destinationRealm,
                                md_cC_Request_Type_AVP(                     // containing a CC-Request-Type AVP 
                                    INITIAL_REQUEST_E                       //     indicating INITIAL_REQUEST
                                ),
                                m_cC_Request_Number_dummy,
                                m_service_Context_Id(PX_SERVICE_CONTEXT_ID), 
                                -,
                                m_multiple_Services_Credit_Control_AVP(     // containing a Multiple-Services-Credit-Control AVP
                                    m_requested_Service_Unit_cC_Total_Octets_AVP(
                                                                            //     containing a Requested-Service-Unit AVP
                                        m_cC_Total_Octets_AVP(32)           // FIXME How to trigger Envelope-Reporting AVP/Volume
                                    )
                                )
                            )
                        )
                    );

                    f_awaiting_CCA(                                     // the IUT sends a CC-Answer
                        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 
                                    INITIAL_REQUEST_E                   //     indicating INITIAL_REQUEST
                                ),
                                mw_cC_Request_Number_AVP,
                                mdw_multiple_Services_Credit_Control_Time_Quota_Mechanism_AVP(
                                                                        // containing a Multiple-Services-Credit-Control AVP
                                    mw_time_Quota_Mechanism_AVP(        //     containing a Time-Quota-Mechanism AVP
                                        m_time_Quota_Type_AVP(          //         containing a Time-Quota-Type AVP
                                            PX_TIME_QUOTA_TYPE          //             indicating a value Table 3 
                                        ),
                                        m_base_Time_Interval_AVP(       //     containing a Base-Time-Interval AVP
                                            0                           //         indicating the length of the base time interval
                                        )
                                    ) 
                                )
                            )
                        )
                    );
                    
                    f_send_CCR(                                         // the IUT receives a CC-Request
                        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
                                ),
                                m_cC_Request_Number_dummy,
                                m_service_Context_Id(PX_SERVICE_CONTEXT_ID), 
                                -,
                                md_multiple_Services_Credit_Control_granted_Service_Unit_Envelope(
                                                                            // containing a Multiple-Services-Credit-Control AVP
                                    m_granted_Service_Unit_Volume_AVP(      //     containing a Granted-Service-Unit AVP
                                        m_cC_Total_Octets_AVP(32)           //         indicating reserved units
                                    ),
                                    m_envelope_AVP(                         //     containing an Envelope AVP
                                        m_envelope_Start_Time_AVP(          //         containing an Envelope-Start-Time AVP
                                            0 // FIXME Set start time value
                                        ),
                                        -,                                  //         optionally containing an Envelope-Stop-Time AVP
                                        m_cC_Total_Octets_AVP(32),          //         containing a CC-Total-Octets AVP
                                        m_cC_Input_Octets_AVP(16),          //         containing a CC-Input-Octets AVP
                                        m_cC_Output_Octets_AVP(16)          //         containing a CC-Output-Octets AVP
                                                                            //         optionally containing a CC-Service-Specific-Units AVP
                                    )
                                )
                            )
                        )
                    );

                    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
                                )
                            )
                        )
                    );
                    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_13
                
                /**
                 * @desc    Verify that the IUT can successfully process control of offline charging information
                 * @verdict pass on success, fail on error or inconc on timeout only 
                 */
                function f_TC_RO_OCF_OP_14() runs on DiameterRfRo { 
                    // Local variables
                    
                    // Preamble
                    f_preamble_Ro_CTF();
                    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 
                                    INITIAL_REQUEST_E                       //     indicating INITIAL_REQUEST
                                ),
                                m_cC_Request_Number_dummy,
                                -,
                                -,
                                m_multiple_Services_Credit_Control_AVP(
                                    m_requested_Service_Unit_cC_Time_AVP(
                                        m_cC_Time_AVP(PX_CC_TIME_VALUE)
                                    )
                                )
                            )
                        )
                    );

                    f_awaiting_CCA(
                        mdw_cCA(
                            vc_sessionId,
                            mdw_ccaBodyAvps_service_Information(
                                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 
                                    INITIAL_REQUEST_E                    //     indicating INITIAL_REQUEST
                                ),
                                mw_cC_Request_Number_AVP,
                                mw_service_Information_PS_Information_AVP(
                                                                         // containing a Service-Information AVP
                                    mw_ps_Information_AVP(               //     containing a PS-Information AVP
                                        mw_offline_Charging_AVP          //         containing an Offline-Charging AVP
                                                                         //             contaning a Quota-Consumption-Time AVP or,
                                                                         //             contaning a Time-Quota-Mechanism AVP
                                                                         //             FIXME optionally containing an Envelope-Reporting AVP
                                                                         //                 indicating REPORT_ENVELOPES_WITH_VOLUM
                                    )
                                )
                            )
                        )
                    );
                    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_14
                
            } // End of group TP_RO_OCF_OP
            
        } //End of group TP_RO_OCF_Role
+173 −21

File changed.

Preview size limit exceeded, changes collapsed.

+213 −0

File changed.

Preview size limit exceeded, changes collapsed.

+9 −0
Original line number Diff line number Diff line
@@ -126,6 +126,15 @@ module DiameterRfRo_TestControl {
                if (PICS_RO_OCF_SERVICE_TERMINATION_WITH_CCA and PICS_RO_OCF_SERVICE_TERMINATION_WITH_ASR) {
                    execute(TC_RO_OCF_OP_11());
                }
                if (PICS_RO_OCF_ENVELOPE_REPORTING) {
                    execute(TC_RO_OCF_OP_12());
                }
                if (PICS_RO_OCF_TIME_QUOTA_MECHANISM) {
                    execute(TC_RO_OCF_OP_13());
                }
                if (PICS_RO_OCF_QUOTA_CONSUMPTION_TIME and PICS_RO_OCF_ENVELOPE_REPORTING and PICS_RO_OCF_OFFLINE_CHARGING_INFORMATION) {
                    execute(TC_RO_OCF_OP_14());
                }
            }
            
        }