Rev

Rev 59 | Blame | Compare with Previous | Last modification | View Log | Download | SVN

/**
 *  @author     STF 466
 *  @version    $Id: DiameterS9_TestControl.ttcn3 66 2014-03-14 15:14:51Z garciay $
 *  @desc       This module provides execution part for S9 test cases.
 */


module DiameterS9_TestControl {
   
    // DiameterS9
    import from DiameterS9_PICS all;
    import from DiameterS9_TestCases all;

    control {
       
        // 5.2.1.1      S9 Messages
            execute(TC_HPCRF_MS_01());

        // 5.2.1.2.1    S9 Session Establishment
        if (PICS_HPCRF_S9_SESSION_ESTABLISHEMENT) {
            execute(TC_HPCRF_HSE_01());
            execute(TC_HPCRF_HSE_02());
        }

        // 5.2.1.2.2    S9 Session Modification
            execute(TC_HPCRF_HSM_01());
            execute(TC_HPCRF_HSM_02());
            execute(TC_HPCRF_HSM_03());
            execute(TC_HPCRF_HSM_04());

        // 5.2.1.2.3    Provision of QoS Rules by the H-PCRF
        if (PICS_HPCRF_PROVISION_OF_QOS_WO_VPCRF_REQUEST) {
            execute(TC_HPCRF_HPQ_01());
            execute(TC_HPCRF_HPQ_02());
        }

        // 5.2.1.2.4    S9 Session Termination
        if (PICS_HPCRF_S9_SESSION_TERMINATION) {
            execute(TC_HPCRF_HST_01());
            execute(TC_HPCRF_HST_02());
            execute(TC_HPCRF_HST_03());
            execute(TC_HPCRF_HST_04());
        }

        // 5.2.1.2.5    Multiple BBERF Handling
        if (PICS_HPCRF_MULTIPLE_BBERF_WITH_SAME_IPCAN_SESSION_DURING_HANDOVER) {
            execute(TC_HPCRF_HMB_01());
            execute(TC_HPCRF_HMB_02());
            execute(TC_HPCRF_HMB_03());
            execute(TC_HPCRF_HMB_04());
            execute(TC_HPCRF_HMB_05());
            execute(TC_HPCRF_HMB_06());
        }

        if (PICS_HPCRF_TWO_BBERFS_WITH_FLOW_MOBILITY_WITH_SAME_IPCAN_SESSION_DURING_HANDOVER) {
            execute(TC_HPCRF_HMB_07());
        }

        // 5.2.1.3.1    QoS and PCC Rules
            execute(TC_HPCRF_VQR_01());
            execute(TC_HPCRF_VQR_02());
            execute(TC_HPCRF_VQR_03());
            execute(TC_HPCRF_VQR_04());

        // 5.2.1.3.2    Provision of QoS and PCC Rules
        if (PICS_HPCRF_PULL_FOR_PCC_AND_QOS_RULE_PROVISIONING) {
            execute(TC_HPCRF_VPQ_01());
            execute(TC_HPCRF_VPQ_02());
        }

        if (PICS_HPCRF_PUSH_FOR_PCC_AND_QOS_RULE_PROVISIONING) {
            execute(TC_HPCRF_VPQ_03());
            execute(TC_HPCRF_VPQ_04());
            execute(TC_HPCRF_VPQ_05());
        }

        // 5.2.1.3.3    S9 Session/Subsession Termination
        if (PICS_HPCRF_S9_SESSION_TERMINATION) {
            execute(TC_HPCRF_VST_01());
            execute(TC_HPCRF_VST_02());
        }

        if (PICS_HPCRF_S9_SESSION_TERMINATION and PICS_HPCRF_ACTIVE_S9_SESSION_SUBSESSION_TERMINATION) {
            execute(TC_HPCRF_VST_03());
            execute(TC_HPCRF_VST_04());
        }

        // 5.2.2.1      S9 Messages
            execute(TC_VPCRF_MS_01());

        // 5.2.2.2.1    S9 Session Establishment
        if (PICS_VPCRF_S9_SESSION_ESTABLISHEMENT) {
            execute(TC_VPCRF_HSE_01());
            execute(TC_VPCRF_HSE_02());
        }

        // 5.2.2.2.2    S9 Session Modification                
            execute(TC_VPCRF_HSM_01());
            execute(TC_VPCRF_HSM_02());
            execute(TC_VPCRF_HSM_03());
            execute(TC_VPCRF_HSM_04());

            execute(TC_VPCRF_HPQ_01());
            execute(TC_VPCRF_HPQ_02());
            execute(TC_VPCRF_HPQ_03());
            execute(TC_VPCRF_HPQ_04());

        // 5.2.2.2.4    S9 Session Termination
        if (PICS_VPCRF_S9_SESSION_TERMINATION) {
            execute(TC_VPCRF_HST_01());
            execute(TC_VPCRF_HST_02());
            execute(TC_VPCRF_HST_03());
            execute(TC_VPCRF_HST_04());
        }

        // 5.2.2.2.5    Multiple BBERF Handling
        if (PICS_VPCRF_MULTIPLE_BBERF_WITH_SAME_IPCAN_SESSION_DURING_HANDOVER) {
            execute(TC_VPCRF_HMB_01());
            execute(TC_VPCRF_HMB_02());
            execute(TC_VPCRF_HMB_03());
            execute(TC_VPCRF_HMB_04());
            execute(TC_VPCRF_HMB_05());
            execute(TC_VPCRF_HMB_06());
            execute(TC_VPCRF_HMB_07());
        }

        // 5.2.2.2.6    Deferred Session Linking Handling
        if (PICS_VPCRF_SESSION_LINKING_HANDLING_MULTIPLE_PDN_TO_SINGLE_APN) {
            execute(TC_VPCRF_HDS_01());
        }

        // 5.2.2.2.7    Session Linking Handling When Multiple PDN Connection to a single APN  
        if (PICS_VPCRF_IP_FLOW_MOBILITY) {
            execute(TC_VPCRF_HSL_01());
        }

        // 5.2.2.3.1    QoS and PCC Rules
        if (PICS_VPCRF_REQUESTS_FOR_PCC_AND_QOS_RULES) {
            execute(TC_VPCRF_VQR_01());
            execute(TC_VPCRF_VQR_02());
            execute(TC_VPCRF_VQR_03());
            execute(TC_VPCRF_VQR_04());
            execute(TC_VPCRF_VQR_05());
            execute(TC_VPCRF_VQR_06());
        }

        // 5.2.2.3.2    Provision of QoS and PCC Rules
        if (PICS_VPCRF_REQUESTS_FOR_PCC_AND_QOS_RULE_PROVISIONING_FROM_HPCRF) {
            execute(TC_VPCRF_VPQ_01());
            execute(TC_VPCRF_VPQ_02());
        }

        // 5.2.2.3.3    S9 Session/Subsession Termination
        if (PICS_VPCRF_VA_ACTIVE_S9_SUB_SESSION_TERMINATION) {
            execute(TC_VPCRF_VST_01());
            execute(TC_VPCRF_VST_02());
            execute(TC_VPCRF_VST_03());
        }
            execute(TC_VPCRF_VST_04());
            execute(TC_VPCRF_VST_05());

        // 5.2.2.3.4    Multiple BBERF Handling
            execute(TC_VPCRF_VMB_01());
            execute(TC_VPCRF_VMB_02());        

        // 5.2.2.3.5    Deferred Session Linking Handling
        if (PICS_VPCRF_SESSION_LINKING_HANDLING_MULTIPLE_PDN_TO_SINGLE_APN) {
            execute(TC_VPCRF_VDS_01());
            execute(TC_VPCRF_VDS_02());
            execute(TC_VPCRF_VDS_03());
        }

        // 5.2.2.3.6    Session Linking Handling When Multiple PDN Connection to a single APN
        if (PICS_VPCRF_IP_FLOW_MOBILITY) {
            execute(TC_VPCRF_VSL_01());
        }

        // 5.2.2.3.7    IP flow mobility support
            execute(TC_VPCRF_VIF_01());
            execute(TC_VPCRF_VIF_02());

    } // End of 'Control' statement

} // End of module DiameterS9_TestControl