LibNGAP_Templates.ttcn 11.8 KB
Newer Older
Yann Garcia's avatar
Yann Garcia committed
/**
 *    @author   ETSI / 
 *    @version  $URL:$
 *              $Id:$
 *    @desc     This module provides Lib NGAP Templates used by the test component for NGAP tests.
 *    @copyright   ETSI Copyright Notification
 *                 No part may be reproduced except as authorized by written permission.
 *                 The copyright and the foregoing restriction extend to reproduction in all media.
 *                 All rights reserved.
 *    @see      ETSI TS 
 */
module LibNGAP_Templates {
    
    // LibCommon
    import from LibCommon_BasicTypesAndValues all;
    import from LibCommon_DataStrings all;
    
    // LibNGAP
    import from NGAP_Constants language "ASN.1:2002" all;
    import from NGAP_CommonDataTypes language "ASN.1:2002" all;
    import from NGAP_IEs language "ASN.1:2002" all;
    import from NGAP_PDU_Contents language "ASN.1:2002" all;
    import from NGAP_PDU_Descriptions language "ASN.1:2002" all;
    import from NGAP_Containers language "ASN.1:2002" all;
    
    import from LibNGAP_TypesAndValues all;
    import from LibNGAP_Pixits all;
    
    group g_NGAP {
        
        group  g_NGAP_PDU {
            
             /**
             * @desc Send template for NGAP PDU with InitiatingMessage payload
             * @param p_procedureCode   Procedure code
             * @param p_value           Message value according to the Procedure code
             * @see ETSI TS 
             */
            template (value) NGAP_PDU m_initiatingMessage(
                                                          in ProcedureCode p_procedureCode//, 
                                                          //in anytype p_value
            ) := {
                initiatingMessage := {
                    procedureCode := p_procedureCode,
                    criticality := reject,
                    value_ := omit//p_value
                }
            } // End of template m_initiatingMessage

        } // End of group g_NGAP_PDU
        
        /**
        * @desc Send messages for Management procedures
        */
        group Management_group {
            
            /**
                * @desc Send template for InitiatingMessage message with N2_NGSETUP_REQUEST payload
                * @param p_value           The protocol information elements.
                */
            template (value) InitiatingMessage m_n2_NGSetup_Request(
                                                                    in template (value) GlobalRANNodeID p_globalRANNodeID
                                                                    //in InitiatingMessage.value_ p_value
            ) := {
                procedureCode := id_NGSetup,
                criticality   := reject,
                value_        := {
                                  NGSetupRequest := {
                                                     protocolIEs := {
                                                                     {
                                                                        id := id_GlobalRANNodeID,
                                                                        criticality := reject,
                                                                        value_ := { globalRANNodeID := p_globalRANNodeID }
                                                                     }
                                                                     }
                                 }}
            } // End of template m_N2_NGSetup_Request

            template (value) GlobalRANNodeID m_globalRANNodeID_globalGNB_ID(
                                                                            in template (value) GlobalGNB_ID p_globalGNB_ID
                                                                            ) := {
                globalGNB_ID := p_globalGNB_ID
            } // End of template m_globalRANNodeID_globalGNB_ID

            /*template InitiatingMessage.value_ m_NGSR /*(/*in template (value) GlobalRANNodeID p_global_GNB_ID
            ):=*/               //valueof(m_global_gNB_ID_IE(p_global_GNB_ID))

                   
          ///*   template /*NGAP_PDU_Contents.NGResetIEs*/ /*protocolIEs*/ NGAP_Containers.NGAP_PROTOCOL_IES /*ProtocolIE_Container*/ m_NgsetupReqIEs := {
          //id := ?, criticality := ?, Value := ?, presence := ?
          //}

           /*template   NGSetupRequestIEs testies :=(
           {
        id := NGAP_Constants.id_GlobalRANNodeID,
        criticality := NGAP_CommonDataTypes.reject,
        Value := "NGAP_IEs.GlobalRANNodeID",
        presence := NGAP_CommonDataTypes.mandatory
  }, {
        id := NGAP_Constants.id_RANNodeName,
        criticality := NGAP_CommonDataTypes.ignore,
        Value := "NGAP_IEs.RANNodeName",
        presence := NGAP_CommonDataTypes.optional_
  }, {
        id := NGAP_Constants.id_SupportedTAList,
        criticality := NGAP_CommonDataTypes.reject,
        Value := "NGAP_IEs.SupportedTAList",
        presence := NGAP_CommonDataTypes.mandatory
  }, {
        id := NGAP_Constants.id_DefaultPagingDRX,
        criticality := NGAP_CommonDataTypes.ignore,
        Value := "NGAP_IEs.PagingDRX",
        presence := NGAP_CommonDataTypes.mandatory
  }, {
        id := NGAP_Constants.id_UERetentionInformation,
        criticality := NGAP_CommonDataTypes.ignore,
        Value := "NGAP_IEs.UERetentionInformation",
        presence := NGAP_CommonDataTypes.optional_
  }, {
        id := NGAP_Constants.id_NB_IoT_DefaultPagingDRX,
        criticality := NGAP_CommonDataTypes.ignore,
        Value := "NGAP_IEs.NB_IoT_DefaultPagingDRX",
        presence := NGAP_CommonDataTypes.optional_
  }, {
        id := NGAP_Constants.id_Extended_RANNodeName,
        criticality := NGAP_CommonDataTypes.ignore,
        Value := "NGAP_IEs.Extended_RANNodeName",
        presence := NGAP_CommonDataTypes.optional_
  }, ?);*/

/*template NGAP_PDU_Contents.NGSetupRequest m_ngSetup2Amf := {protocolIEs := omit}*/


            template (value) InitiatingMessage m_n2_NGSetup_Request_withIE(
                                                                    in template (value) GlobalRANNodeID p_global_GNB_ID,
                                                                        in template (value) SupportedTAList p_supportedTAs,
                                                                        in template (value) PagingDRX p_pagingDRXs
            ) := {
                procedureCode := id_NGSetup,
                criticality := reject//,
                //value_ := ?
                //type_:={
                //m_global_gNB_ID_IE(p_global_GNB_ID)//,
                //m_supportedTAList_IE(p_supportedTAs),
                //m_pagingDRX_IE(p_pagingDRXs)
                 // }  
            } // End of template m_N2_NGSetup_Request
            /**
                * @desc Send template for N2_NGSETUP_REQUEST message
                * @param p_global_ENB_ID   The Global eNB ID value
                * @param p_supportedTAs    The list of SupportedTAs-Item protocol IE
                * @param p_pagingDRXs      The Paging DRX as defined in TS 36.304
                */
            template (value) RecordOf_ProtocolIE m_n2_NGSetup_RequestIEs(
                                                                        in template (value) GlobalRANNodeID p_global_GNB_ID,
                                                                        in template (value) SupportedTAList p_supportedTAs,
                                                                        in template (value) PagingDRX p_pagingDRXs
            ) := {
                m_global_gNB_ID_IE(p_global_GNB_ID),
                m_supportedTAList_IE(p_supportedTAs),
                m_pagingDRX_IE(p_pagingDRXs)
            } // End of template m_s1_Setup_RequestIEs
            
            /**
                * @desc Send template for InitiatingMessage message with S1_SETUP_RESPONSE payload
                * @param p_value           The protocol information elements.
                */
            //template (value) SuccessfulOutcome m_s1_Setup_Response(
            //                                                        in template (value) RecordOf_ProtocolIE p_value
            //) := {
            //    procedureCode := id_S1Setup,
            //    criticality := reject,
            //    value_ := {RecordOf_ProtocolIE := p_value}
            //} // End of template m_s1_Setup_Response
            
            /**
                * @desc Send template for S1_SETUP_RESPONSE message
                * @param p_global_ENB_ID       The Global eNB ID value.
                * @param p_relativeMMECapacity The relative MME capacity value.
                */
            //template (value) RecordOf_ProtocolIE m_s1_Setup_ResponseIEs(
            //                                                            in template (value) ServedGUMMEIs p_servedGUMMEIs,
            //                                                            in template (value) RelativeMMECapacity p_relativeMMECapacity
            //) := {
            //    m_servedGUMMEIs_IE(p_servedGUMMEIs),
            //    m_relativeMMECapacity_IE(p_relativeMMECapacity)
            //} // End of template m_s1_Setup_ResponseIEs
        } //End of group Management_group 

    } // End of group g_NGAP
   
   group g_NGAP_IEs{

        /**
        * @desc Send template for Global eNB ID protocol IE
        * @param p_global_ENB_ID The Global eNB ID value
        */
        template (value) ProtocolIE m_global_gNB_ID_IE(
                                                        in template (value) GlobalRANNodeID p_value
        ) := {
            id := NGAP_Constants.id_GlobalRANNodeID,
            criticality := reject,
            IE:={ value_ :=omit,
                  globalRANNodeID := /*valueof*/p_value,
                  globalGNB_ID := omit,
                  rANNodeName := omit,
                  supportedTAList := omit,
                  defaultPagingDRX := omit,
                  uERetentionInformation := omit,
                  nB_IoT_DefaultPagingDRX := omit,
                  extended_RANNodeName := omit
            }
            //value_ := { GlobalGNB_ID := valueof(p_global_GNB_ID)     }
        } // End of template m_global_gNB_ID_IE
        
        template GlobalRANNodeID m_granID := {
            
             globalGNB_ID := { 
                        pLMNIdentity	:= '010001'O,
                        gNB_ID			:={ gNB_ID:='0000000000000000000000'B},
                        iE_Extensions := omit
                  
             }           
        } //End of template granID

        /**
        * @desc Send template for SupportedTAs protocol IE 
        * @param p_value The SupportedTAs value.
        */
        template (value) ProtocolIE m_supportedTAList_IE(
                                                        in template (value) SupportedTAList p_value
        ) := {
            id := NGAP_Constants.id_SupportedTAList,
            criticality := reject,
            IE:={supportedTAList := valueof(p_value)}
            //value_ := {SupportedTAList := valueof(p_value)}
        } // End of template m_supportedTAs_IE
        
        /**
        * @desc Send template for PagingDRX protocol IE 
        * @param p_value The PagingDRX value.
        */
        template (value) ProtocolIE m_pagingDRX_IE(
                                                    in template (value) PagingDRX p_value
        ) := {
            id := NGAP_Constants.id_PagingDRX,
            criticality := ignore,
            IE:={defaultPagingDRX := valueof(p_value)}
            //value_ := {PagingDRX := valueof(p_value)            }
        } // End of template m_pagingDRX_IE


   } // End of group 

    /** 
     * @desc Type functions 
     */
    group functionsForTemplates {
        
    } // End of group functionsForTemplates
    
} // End of module LibNGAP_Templates
with {
extension "anytype NGAP_PROTOCOL_IES"
extension "anytype NGSetupRequestIEs"
extension "anytype RecordOf_ProtocolIE"
}