LibNGAP_Templates.ttcn 28.4 KB
Newer Older
Yann Garcia's avatar
Yann Garcia committed
/**
 *    @author   ETSI / TTF033
 *    @version  $URL$
 *              $Id$
 *    @desc     This module provides templates for NGAP protocol.
Yann Garcia's avatar
Yann Garcia committed
 *    @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 138 413 / 3GPP TS 38.413 version 16.12 Release 16
Yann Garcia's avatar
Yann Garcia committed
 */
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  NGAP_CommonDataTypes.Criticality  p_criticality:=reject
                //in  anytype  p_value
            )  :=  {
                initiatingMessage  :=  {
                    procedureCode  :=  p_procedureCode,
                    criticality  :=  p_criticality,
                    value_  :=  omit//p_value
                }
            }  //  End  of  template  m_initiatingMessage
                        
            /**
             *  @desc  Send  template  for  NGAP  PDU  with  SuccessfulOutcome  payload
             *  @param  p_procedureCode      Procedure  code
             *  @param  p_value                      Message  value  according  to  the  Procedure  code
             *  @see  ETSI  TS
Yann Garcia's avatar
Yann Garcia committed
             */
            template  (value)  NGAP_PDU  m_successfulOutcome(
                in  ProcedureCode  p_procedureCode,
                in  NGAP_CommonDataTypes.Criticality  p_criticality:=reject
                //in  anytype  p_value
            )  :=  {
                successfulOutcome  :=  {
                    procedureCode  :=  p_procedureCode,
                    criticality  :=  p_criticality,
                    value_  :=  omit//p_value
                }
            }  //  End  of  template  m_successfulOutcome
              
            /**
             *  @desc  Send  template  for  NGAP  PDU  with  unsuccessfulOutcome  payload
             *  @param  p_procedureCode      Procedure  code
             *  @param  p_value                      Message  value  according  to  the  Procedure  code
             *  @see  ETSI  TS
             */
            template  (value)  NGAP_PDU  m_unsuccessfulOutcome(
                in  ProcedureCode  p_procedureCode,
                in  NGAP_CommonDataTypes.Criticality  p_criticality:=reject
                //in  anytype  p_value
            )  :=  {
                unsuccessfulOutcome  :=  {
                    procedureCode  :=  p_procedureCode,
                    criticality  :=  p_criticality,
                    value_  :=  omit//p_value
                }
            }  //  End  of  template  m_unsuccessfulOutcome
        }//end of group  g_NGAP_PDU
                
        //9.2
        group Message_Functional_Definition_and_Content{
            //9.2.1
            group PDU_Session_Management_Messages{
                //9.2.1.1
                group PDU_SESSION_RESOURCE_SETUP_REQUEST{
                    group Send{/*m_*/
                    }
                    group Receive{/*mw_*/
                    }
                }
                //9.2.1.2
                group PDU_SESSION_RESOURCE_SETUP_RESPONSE{
                    group Send{/*m_*/
                    }
                    group Receive{/*mw_*/
                    }
                }
                //9.2.1.3
                group PDU_SESSION_RESOURCE_RELEASE_COMMAND{
                    group Send{/*m_*/
                    }
                    group Receive{/*mw_*/
                    }
                }
                //9.2.1.4
                group PDU_SESSION_RESOURCE_RELEASE_RESPONSE{
                    group Send{/*m_*/
                    }
                    group Receive{/*mw_*/
                    }
                }
                //9.2.1.5
                group PDU_SESSION_RESOURCE_MODIFY_REQUEST{
                    group Send{/*m_*/
                    }
                    group Receive{/*mw_*/
                    }
                }
                //9.2.1.6
                group PDU_SESSION_RESOURCE_MODIFY_RESPONSE{
                    group Send{/*m_*/
                    }
                    group Receive{/*mw_*/
                    }
                }
                //9.2.1.7
                group PDU_SESSION_RESOURCE_NOTIFY{
                    group Send{/*m_*/
                    }
                    group Receive{/*mw_*/
                    }
                }
                //9.2.1.8
                group PDU_SESSION_RESOURCE_MODIFY_INDICATION{
                    group Send{/*m_*/
                    }
                    group Receive{/*mw_*/
                    }
                }
                //9.2.1.9
                group PDU_SESSION_RESOURCE_MODIFY_CONFIRM{
                    group Send{/*m_*/
                    }
                    group Receive{/*mw_*/
                    }
                }
            }//end_of_group_PDU_Session_Management_Messages
        
            //9.2.2
            group UE_Context_Management_Messages{
                //9.2.2.1
                group INITIAL_CONTEXT_SETUP_REQUEST{
                    group Send{/*m_*/
                    }
                    group Receive{/*mw_*/
                    }
                }
                //9.2.2.2
                group INITIAL_CONTEXT_SETUP_RESPONSE{
                    group Send{/*m_*/
                    }
                    group Receive{/*mw_*/
                    }
                }
                //9.2.2.3
                group INITIAL_CONTEXT_SETUP_FAILURE{
                    group Send{/*m_*/
                    }
                    group Receive{/*mw_*/
                    }
                }
                //9.2.2.4
                group UE_CONTEXT_RELEASE_REQUEST{
                    group Send{/*m_*/
                    }
                    group Receive{/*mw_*/
                    }
                }
                //9.2.2.5
                group UE_CONTEXT_RELEASE_COMMAND{
                    group Send{/*m_*/
                    }
                    group Receive{/*mw_*/
                    }
                }
                //9.2.2.6
                group UE_CONTEXT_RELEASE_COMPLETE{
                    group Send{/*m_*/
                    }
                    group Receive{/*mw_*/
                    }
                }
                //9.2.2.7
                group UE_CONTEXT_MODIFICATION_REQUEST{
                    group Send{/*m_*/
                    }
                    group Receive{/*mw_*/
                    }
                }
                //9.2.2.8
                group UE_CONTEXT_MODIFICATION_RESPONSE{
                    group Send{/*m_*/
                    }
                    group Receive{/*mw_*/
                    }
                }
                //9.2.2.9
                group UE_CONTEXT_MODIFICATION_FAILURE{
                    group Send{/*m_*/
                    }
                    group Receive{/*mw_*/
                    }
                }
                //9.2.2.10
                group RRC_INACTIVE_TRANSITION_REPORT{
                    group Send{/*m_*/
                    }
                    group Receive{/*mw_*/
                    }
                }
                //9.2.2.11
                group CONNECTION_ESTABLISHMENT_INDICATION{
                    group Send{/*m_*/
                    }
                    group Receive{/*mw_*/
                    }
                }
                //9.2.2.12
                group AMF_CP_RELOCATION_INDICATION{
                    group Send{/*m_*/
                    }
                    group Receive{/*mw_*/
                    }
                }
                //9.2.2.13
                group RAN_CP_RELOCATION_INDICATION{
                    group Send{/*m_*/
                    }
                    group Receive{/*mw_*/
                    }
                }
                //9.2.2.14
                group RETRIEVE_UE_INFORMATION{
                    group Send{/*m_*/
                    }
                    group Receive{/*mw_*/
                    }
                }
                //9.2.2.15
                group UE_INFORMATION_TRANSFER{
                    group Send{/*m_*/
                    }
                    group Receive{/*mw_*/
                    }
                }
                //9.2.2.16
                group UE_CONTEXT_SUSPEND_REQUEST{
                    group Send{/*m_*/
                    }
                    group Receive{/*mw_*/
                    }
                }
                //9.2.2.17
                group UE_CONTEXT_SUSPEND_RESPONSE{
                    group Send{/*m_*/
                    }
                    group Receive{/*mw_*/
                    }
                }
                //9.2.2.18
                group UE_CONTEXT_SUSPEND_FAILURE{
                    group Send{/*m_*/
                    }
                    group Receive{/*mw_*/
                    }
                }
                //9.2.2.19
                group UE_CONTEXT_RESUME_REQUEST{
                    group Send{/*m_*/
                    }
                    group Receive{/*mw_*/
                    }
                }
                //9.2.2.20
                group UE_CONTEXT_RESUME_RESPONSE{
                    group Send{/*m_*/
                    }
                    group Receive{/*mw_*/
                    }
                }
                //9.2.2.21
                group UE_CONTEXT_RESUME_FAILURE{
                    group Send{/*m_*/
                    }
                    group Receive{/*mw_*/
                    }
                }
            }//end_of_group_UE_Context_Management_Messages_
            //9.2.3
            group UE_Mobility_Management_Messages{
                //9.2.3.1
                group HANDOVER_REQUIRED{
                    group Send{/*m_*/
                    }
                    group Receive{/*mw_*/
                    }
                }
                //9.2.3.2
                group HANDOVER_COMMAND{
                    group Send{/*m_*/
                    }
                    group Receive{/*mw_*/
                    }
                }
                //9.2.3.3
                group HANDOVER_PREPARATION_FAILURE{
                    group Send{/*m_*/
                    }
                    group Receive{/*mw_*/
                    }
                }
                //9.2.3.4
                group HANDOVER_REQUEST{
                    group Send{/*m_*/
                    }
                    group Receive{/*mw_*/
                    }
                }
                //9.2.3.5
                group HANDOVER_REQUEST_ACKNOWLEDGE{
                    group Send{/*m_*/
                    }
                    group Receive{/*mw_*/
                    }
                }
                //9.2.3.6
                group HANDOVER_FAILURE{
                    group Send{/*m_*/
                    }
                    group Receive{/*mw_*/
                    }
                }
                //9.2.3.7
                group HANDOVER_NOTIFY{
                    group Send{/*m_*/
                    }
                    group Receive{/*mw_*/
                    }
                }
            //9.2.3.8
            group PATH_SWITCH_REQUEST{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
            //9.2.3.9
            group PATH_SWITCH_REQUEST_ACKNOWLEDGE{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
            //9.2.3.10
            group PATH_SWITCH_REQUEST_FAILURE{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
            //9.2.3.11
            group HANDOVER_CANCEL{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
            //9.2.3.12
            group HANDOVER_CANCEL_ACKNOWLEDGE{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
            //9.2.3.13
            group UPLINK_RAN_STATUS_TRANSFER{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
            //9.2.3.14
            group DOWNLINK_RAN_STATUS_TRANSFER{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
            //9.2.3.15
            group HANDOVER_SUCCESS{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
            //9.2.3.16
            group UPLINK_RAN_EARLY_STATUS_TRANSFER{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
            //9.2.3.17
            group DOWNLINK_RAN_EARLY_STATUS_TRANSFER{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
        }//end of group UE_Mobility_Management_Messages
        //9.2.4
        group Paging_Messages{
            //9.2.4.1
            group PAGING{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
        }//end of group Paging_Messages
            
        //9.2.5
        group NAS_Transport_Messages{
            //9.2.5.1
            group INITIAL_UE_MESSAGE{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
            //9.2.5.2
            group DOWNLINK_NAS_TRANSPORT{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
            //9.2.5.3
            group UPLINK_NAS_TRANSPORT{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
            //9.2.5.4
            group NAS_NON_DELIVERY_INDICATION{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
            //9.2.5.5
            group REROUTE_NAS_REQUEST{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
        }//end of group NAS_Transport_Messages
        //9.2.6
        group Interface_Management_Messages{
            //9.2.6.1
            group NG_SETUP_REQUEST{
                group Send{/*m_*/
                    
                    template (value) InitiatingMessage m_n2_NGSetupRequest(
                                                                            in template (value) GlobalRANNodeID p_globalRANNodeID,
                                                                            in template (value) SupportedTAList p_supportedTAs,
                                                                            in template (value) PagingDRX p_pagingDRX
                        ) := {
                               procedureCode := id_NGSetup,
                               criticality   := reject,
                               value_        := {
                                      NGSetupRequest := {
                                             protocolIEs := {
                                                    {
                                                      id := id_GlobalRANNodeID,
                                                      criticality := reject,
                                                       value_ := { globalRANNodeID := p_globalRANNodeID }
                                                    },
                                                    {
                                                      id := id_SupportedTAList,
                                                      criticality := reject,
                                                      value_ := { supportedTAList := p_supportedTAs }

                                                    },
                                                    {
                                                      id := id_DefaultPagingDRX,
                                                      criticality := ignore,
                                                      value_ := { pagingDRX := p_pagingDRX
                                                    }
                                              }
                                      }
                               }
                            }
                        }//end of template m_n2_NGSetupRequest
                    
                }
                group Receive{/*mw_*/
                }
            }
            //9.2.6.2
            group NG_SETUP_RESPONSE{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
            //9.2.6.3
            group NG_SETUP_FAILURE{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
            //9.2.6.4
            group RAN_CONFIGURATION_UPDATE{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
            //9.2.6.5
            group RAN_CONFIGURATION_UPDATE_ACKNOWLEDGE{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
            //9.2.6.6
            group RAN_CONFIGURATION_UPDATE_FAILURE{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
            //9.2.6.7
            group AMF_CONFIGURATION_UPDATE{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
            //9.2.6.8
            group AMF_CONFIGURATION_UPDATE_ACKNOWLEDGE{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
            //9.2.6.9
            group AMF_CONFIGURATION_UPDATE_FAILURE{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
            //9.2.6.10
            group AMF_STATUS_INDICATION{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
            //9.2.6.11
            group NG_RESET{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
            //9.2.6.12
            group NG_RESET_ACKNOWLEDGE{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
            //9.2.6.13
            group ERROR_INDICATION{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
            //9.2.6.14
            group OVERLOAD_START{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
            //9.2.6.15
            group OVERLOAD_STOP{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
        }//end of group Interface_Management_Messages
           
        //9.2.7
        group Configuration_Transfer_Messages{
            //9.2.7.1
            group UPLINK_RAN_CONFIGURATION_TRANSFER{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
            //9.2.7.2
            group DOWNLINK_RAN_CONFIGURATION_TRANSFER{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
        }//end of group Configuration_Transfer_Messages
            
        //9.2.8
        group Warning_Message_Transmission_Messages{
            //9.2.8.1
            group WRITE_REPLACE_WARNING_REQUEST{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
            //9.2.8.2
            group WRITE_REPLACE_WARNING_RESPONSE{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
            //9.2.8.3
            group PWS_CANCEL_REQUEST{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
            //9.2.8.4
            group PWS_CANCEL_RESPONSE{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
            //9.2.8.5
            group PWS_RESTART_INDICATION{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
            //9.2.8.6
            group PWS_FAILURE_INDICATION{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
        }//end of group Warning_Message_Transmission_Messages
        //9.2.9
        group NRPPa_Transport_Messages{
            //9.2.9.1
            group DOWNLINK_UE_ASSOCIATED_NRPPA_TRANSPORT{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
            //9.2.9.2
            group UPLINK_UE_ASSOCIATED_NRPPA_TRANSPORT{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
            //9.2.9.3
            group DOWNLINK_NON_UE_ASSOCIATED_NRPPA_TRANSPORT{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
            //9.2.9.4
            group UPLINK_NON_UE_ASSOCIATED_NRPPA_TRANSPORT{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
        }//end of group NRPPa_Transport_Messages
        //9.2.10
        group Trace_Messages{
            //9.2.10.1
            group TRACE_START{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
            //9.2.10.2
            group TRACE_FAILURE_INDICATION{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
            //9.2.10.3
            group DEACTIVATE_TRACE{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
            //9.2.10.4
            group CELL_TRAFFIC_TRACE{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
        }//end of group Trace_Messages
        //9.2.11
        group Location_Reporting_Messages{
            //9.2.11.1
            group LOCATION_REPORTING_CONTROL{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
            //9.2.11.2
            group LOCATION_REPORTING_FAILURE_INDICATION{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
            //9.2.11.3
            group LOCATION_REPORT{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
        }//end of group Location_Reporting_Messages
        //9.2.12
        group UE_TNLA_Binding_Messages{
            //9.2.12.1
            group UE_TNLA_BINDING_RELEASE_REQUEST{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
        }//end of group UE_TNLA_Binding_Messages
            
        //9.2.13
        group UE_Radio_Capability_Management_Messages{
            //9.2.13.1
            group UE_RADIO_CAPABILITY_INFO_INDICATION{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
            //9.2.13.2
            group UE_RADIO_CAPABILITY_CHECK_REQUEST{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
            //9.2.13.3
            group UE_RADIO_CAPABILITY_CHECK_RESPONSE{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
            //9.2.13.4
            group UE_RADIO_CAPABILITY_ID_MAPPING_REQUEST{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
            //9.2.13.5
            group UE_RADIO_CAPABILITY_ID_MAPPING_RESPONSE{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
        }//end of group UE_Radio_Capability_Management_Messages
            
        //9.2.14
        group Data_Usage_Reporting_Messages{
            //9.2.14.1
            group SECONDARY_RAT_DATA_USAGE_REPORT{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
        }//end of group Data_Usage_Reporting_Messages
            
        //9.2.15
        group RIM_Information_Transfer_Messages{
            //9.2.15.1
            group UPLINK_RIM_INFORMATION_TRANSFER{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
            //9.2.15.2
            group DOWNLINK_RIM_INFORMATION_TRANSFER{
                group Send{/*m_*/
                }
                group Receive{/*mw_*/
                }
            }
        }//end of group RIM_Information_Transfer_Messages
            
        }//end of group Message_Functional_Definition_and_Content
    group Information_elements{
        group Send{/*m_ie_*/
            
            template GlobalRANNodeID m_ie_gRanNodeID := {

                globalGNB_ID  := {
                    pLMNIdentity  := '010001'O,
                    gNB_ID        := {gNB_ID:='0000000000000000000000'B},
                    iE_Extensions :=  omit
                }
            }//end of template m_ie_gRanNodeID
            
            template SupportedTAList  m_ie_supportedTAList:= {
                {
                    tAC               :=  '000001'O,
                    broadcastPLMNList := {
                        {
                            pLMNIdentity        :=  '000101'O,
                            tAISliceSupportList := {
                                {  
                                    s_NSSAI := {
                                         sST := '00'O,
                                         sD  := '000000'O,
                                         iE_Extensions := omit
                                        },
                                    iE_Extensions  :=omit
                                }
                            },
                            iE_Extensions  :=omit
                        }
                    },
                    iE_Extensions  :=omit
                }
            }//end of template m_ie_supportedTAList

            template PagingDRX  m_ie_defaultPagingDRX (PagingDRX p_drx:=v256):= p_drx;
            
        }
        group Receive{/*mw_ie_*/
        }
    }//end of group Informtion_elements
    }//end of group g_NGAP    
    group  Functions_For_Templates{
    }//end of group  functionsForTemplates
}//  End  of  module  LibNGAP_Templates