Commit b8a69bc9 authored by rennoch's avatar rennoch
Browse files

inital modules for S6a and S9 ATS

parent 9b70dfab
Loading
Loading
Loading
Loading
+74 −0
Original line number Diff line number Diff line
/**
 *  @author     STF 466
 *  @version    $Id: DiameterS9_Steps.ttcn3 661 2013-08-30 12:55:35Z schmitting $
 *  @desc       This module provides ATS specific steps used by the test cases
 *              for IMS-DIAMETER S9 tests.
 */
 module DiameterS9_Steps {

    //LibCommon
    import from LibCommon_DataStrings {type Bit1, Bit4, Bit5, Bit8;}//all;
    import from LibCommon_BasicTypesAndValues {type UInt8;};//LibCommon
    import from LibCommon_Sync all ;
    import from LibCommon_VerdictControl all ;

    //LibDiameter
    import from LibDiameter_TypesAndValues all;
    import from LibDiameter_Templates all;
    import from LibDiameter_Steps  all;
    import from LibDiameter_PIXITS all;
    import from LibDiameter_Interface all;

    //DiameterGx
    import from DiameterGx_Templates all;
    import from DiameterGx_PIXITS all;
    import from DiameterGx_Gx_TCFunctions all;
    import from DiameterGx_TestConfiguration all;
    import from DiameterGx_Steps all;

    // GPRS tunneling protocol
    // import from LibGtp_TypesAndValues all;
//    import from LibGtp_Interface all;

    group GlobalSteps {



    } // end group GlobalSteps

    group Preambles{

        /*
        *  @desc    This is a test step that initiate communication with H-PCRF
        *  @param   
        */
        function f_initiate_session_HPCRF() runs on DiameterComponent
        {
            f_send_CCR(m_CCR_InitialRequest(vc_sessionId,
                                            vc_originHost,
                                            vc_originRealm,
                                            vc_destinationRealm,
                                            f_framedIpAddress4_send(PX_UE1_framedIpAddress),
                                            f_framedIpAddress6_send(PX_UE1_framedIp6Address)));

            f_awaiting_CCA(mw_CCA_ResultCode(vc_sessionId, vc_originHost_IUT, vc_originRealm_IUT, mw_resultCode(mw_resultCode_diameterSuccess)));
        }

    }// end group Preambles

    group Postambles {


    }// end group Postambles

    group AVPOperations {


    }//end group AVPOperations

    group CheckFunctions {


    } //end group CheckFunctions

} // end module DiameterGx_Steps
 No newline at end of file
+115 −0
Original line number Diff line number Diff line
/**
 *  @author     STF 466
 *  @version    $Id: DiameterS9_TCFunctions.ttcn 661 2013-08-30 12:55:35Z schmitting $
 *  @desc       This module provides S9 test functions used by the test cases
 *              for IMS-DIAMETER tests.
 */
module DiameterS9_TCFunctions {
    // LibCommon
    import from LibCommon_Sync {function f_selfOrClientSyncAndVerdict;
                                const c_prDone, c_tbDone, c_poDone;}
    import from LibCommon_VerdictControl all ;

    // LibDiameter
    import from LibDiameter_TypesAndValues all;
    import from LibDiameter_Templates all;
    import from LibDiameter_Interface all;
    import from LibDiameter_Steps all;

    //DiameterGx
    import from DiameterGx_PIXITS all;
    import from DiameterGx_Steps all;
    import from DiameterGx_Templates all;

    //DiameterS9
    import from DiameterS9_Templates all;
    import from DiameterS9_Steps all;


    group TP_HPCRFRole{ // §5.2.1
        group TP_HPCRFRole_HA {//S9 Messages

            /*
            *  @desc    This is the test case function TC_PCRF_HA_01
            *  @param
            */
            function TC_PCRF_HA_01()
            runs on DiameterComponent {

                f_preamble_PCEF();

                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync

                f_send_CCR(m_CCR_S9_InitialRequest(vc_sessionId,
                                                vc_originHost,
                                                vc_originRealm,
                                                vc_destinationRealm,
                                                f_framedIpAddress4_send(PX_UE1_framedIpAddress),
                                                f_framedIpAddress6_send(PX_UE1_framedIp6Address)));

                f_awaiting_CCA(mw_CCA_ResultCode(vc_sessionId, vc_originHost_IUT, vc_originRealm_IUT, mw_resultCode(mw_resultCode_diameterSuccess)));

                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync

                //session termination
                f_terminate_session_PCEF();

                f_postamble_PCEF();

                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

            } // end function TC_PCRF_HA_01

        } // group TP_HPCRFRole_HA

        group TP_HPCRFRole_HSE {//S9 Session Establishment

            /*
            *  @desc    This is the test case function TC_PCRF_HA_01
            *  @param
            */
            function TC_PCRF_HSE_01()
            runs on DiameterComponent {

                f_preamble_PCEF();
                
                //f_initiate_session_HPCRF();

                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync

                f_send_CCR(m_CCR_S9_InitialRequest_SubID_AnGw_BBERFatt(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(PX_SUBSCRIPTION_ID_TYPE)),
                								    valueof(m_subscription_Id_Data(PX_SUBSCRIPTION_ID_DATA)))},
                                                // TODO AN-GW-Address
                								m_qoS_Information_dummy // BBERF attributes TODO: to check more required AVPs         								    
                								)
                                                );

				// TODO: p_qosRuleInstall:=? 
                f_awaiting_CCA(mw_CCA_S9_ResultCode_BearerControlMode(vc_sessionId, vc_originHost_IUT, vc_originRealm_IUT, mw_resultCode(mw_resultCode_diameterSuccess)));

                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync

                //session termination
                f_terminate_session_PCEF();

                f_postamble_PCEF();

                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

            } // end function TC_PCRF_HSE_01

        } // group TP_HPCRFRole_HSE

    } // group TP_HPCRFRole    

    group TP_VPCRFRole{ // §5.2.2
    
    } // group TP_VPCRFRole    
    
}
 No newline at end of file
+149 −0
Original line number Diff line number Diff line
/**
 *  @author   STF 466
 *  @version  $Id: DiameterS9_Templates.ttcn 661 2013-08-30 12:55:35Z schmitting $
 *  @desc     This module defines S9 Diameter Templates for message, header, and
 *            structured types. <br>
 *            Note that any changes made to the definitions in this module
 *            may be overwritten by future releases of this library
 *            End users are encouraged to contact the distributers of this
 *            module regarding their modifications or additions
 *  @remark   Any additions to the templates shall follow the design rules
 *            and always modify base templates only;
 */

module DiameterS9_Templates {

    //LibCommon
    import from LibCommon_DataStrings {type Bit1, Bit4, Bit5, Bit8;}//all;
    import from LibCommon_BasicTypesAndValues {type UInt8, UInt32;};

    //LibDiameter
    import from LibDiameter_TypesAndValues all;
    import from LibDiameter_Templates all;
    import from LibDiameter_Steps all;

    //DiameterGx
    import from DiameterGx_PIXITS all;
    import from DiameterGx_Templates all;    

    group SubFields{

    } //end group SubFields

    group HeaderFieldTemplates {

        group DummyAVPHeaders{


        } //end group DummyAVPHeaders

        group SpecificAVPHeaders {
             
          group sendingTemplatesForAVPs{
          }//end group sendingTemplatesForAVPs
                    
          group awaitingTemplatesForAVPs{
          }//end group awaitingTemplatesForAVPs
          
        } //end group SpecificAVPHeaders
        
        
    } //end group HeaderFieldTemplates

    /** Message templates for RAR, RAA, CCR, CCA.... methods  */
    group S9MessageTemplates {
      group S9base_templates {

        group S9basic_request_templates_send {

            template CCR_MSG m_CCR_S9_basic(template Session_Id_AVP p_sessionId,
                                        template Origin_Host_AVP p_originHost,
                                        template Origin_Realm_AVP p_originRealm,
                                        template Destination_Realm_AVP p_destinationRealm) 
                modifies m_CCR_dummy :=
            {
                header := m_diameterHeaderReq_dummy(CCR_E, c_applIdGx),
//                session_Id := p_sessionId,
//                origin_Host := p_originHost,
//                origin_Realm := p_originRealm,
//                destination_Realm := p_destinationRealm,
//                auth_Application_Id := m_authApplicationId(c_applIdGx),
                cC_Request_Type := m_cC_Request_Type(INITIAL_REQUEST_E) //,
//                cC_Request_Number := m_cC_Request_Number(0)
            }


        } // end group S9basic_request_templates_send

        group S9basic_request_templates_receive {
        }//end group S9basic_request_templates_receive

        group S9basic_answer_templates_send {
        }

        group S9basic_answer_templates_receive {
        }

      } //end group Gxbase_templates
      group S9modified_templates {

          group S9modified_request_templates_send {

            template CCR_MSG m_CCR_S9_InitialRequest(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)
                modifies m_CCR_basic :=
            {
                subscription_Id := {m_subscription_Id(valueof(m_subscription_Id_Type(PX_SUBSCRIPTION_ID_TYPE)),valueof(m_subscription_Id_Data(PX_SUBSCRIPTION_ID_DATA)))},
                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)
            }
            
            template CCR_MSG m_CCR_S9_InitialRequest_SubID_AnGw_BBERFatt(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.subscription_Id p_subscriptionId,
                                        // TODO AN-GW-Address
                                        template QoS_Information_AVP p_qosInformation // BBERF attributes TODO: to check more required AVPs  
                                        )
                modifies m_CCR_S9_InitialRequest :=
            {
                subscription_Id := p_subscriptionId
            }            

          } //     end group S9modified_request_templates_send

          group S9modified_request_templates_receive {
          } //     end group S9modified_request_templates_receive

          group S9modified_answer_templates_send {
          } //     end group S9modified_answer_templates_send

          group S9modified_answer_templates_receive {
              
          template CCA_MSG mw_CCA_S9_ResultCode_BearerControlMode( template Session_Id_AVP p_sessionId,
                                                       template Origin_Host_AVP p_originHost,
                                                       template Origin_Realm_AVP p_originRealm,
                                                       template Result_Code_AVP p_resultCode //,
                                                       // TODO template QoS_Rule_Install_AVP p_qosRuleInstall 
                                                       )
              modifies mw_CCA_basic :=
          {
              result_Code := p_resultCode //,
              // TODO qoS_Rule_Install := p_qosRuleInstall
          }    
              
          } // end group S9modified_answer_templates_receive

      } //end group S9modified_templates
    } //end group S9MessageTemplates

}//end module LibDiameter_Templates
 No newline at end of file