/* HNBAP Templates in TTCN-3 * (C) 2021 Pau Espin Pedrol * All rights reserved. * * Released under the terms of GNU General Public License, Version 2 or * (at your option) any later version. * * SPDX-License-Identifier: GPL-2.0-or-later */ module HNBAP_Templates { import from General_Types all; import from Osmocom_Types all; import from HNBAP_IEs all; import from HNBAP_CommonDataTypes all; import from HNBAP_Constants all; import from HNBAP_Containers all; import from HNBAP_PDU_Contents all; import from HNBAP_PDU_Descriptions all; /********************************************************************************* * 3GPP TS 25.469 *********************************************************************************/ template (value) Cause ts_HnbapCause(template (value) CauseRadioNetwork c) := { radioNetwork := c } /* 9.1.3 HNB REGISTER REQUEST */ template (present) HNBAP_PDU tr_HNBAP_HNBRegisterRequest(template (present) octetstring hNB_Identity_Info := ?, template (present) OCT3 plmnid := ?, template (present) BIT28 cell_identity := ?, template (present) OCT2 lac := ?, template (present) OCT1 rac := ?, template (present) OCT2 sac := ?) := { initiatingMessage := { procedureCode := id_HNBRegister, criticality := reject, value_ := { hNBRegisterRequest := { protocolIEs := { { id := HNBAP_Constants.id_HNB_Identity, criticality := reject, value_ := { hNB_Identity := { hNB_Identity_Info := hNB_Identity_Info, iE_Extensions := omit } } }, { id := 8, criticality := reject, value_ := { hNB_Location_Information := { macroCoverageInfo := omit, geographicalCoordinates := omit, iE_Extensions := omit } } }, { id := 9, criticality := reject, value_ := { pLMNidentity := plmnid } }, { id := 11, criticality := reject, value_ := { cellIdentity := cell_identity } }, { id := 6, criticality := reject, value_ := { lAC := lac } }, { id := 7, criticality := reject, value_ := { rAC := rac } }, { id := 10, criticality := reject, value_ := { sAC := sac } } }, protocolExtensions := omit } } } } /* 9.1.4 HNB REGISTER ACCEPT */ template (value) HNBAP_PDU ts_HNBAP_HNBRegisterAccept(template (value) uint16_t rnc_id) := { successfulOutcome := { procedureCode := id_HNBRegister, criticality := reject, value_ := { hNBRegisterAccept := { protocolIEs := { { id := HNBAP_Constants.id_RNC_ID, criticality := reject, value_ := { RNC_ID := rnc_id } } }, protocolExtensions := omit /* TODO: Mux Port Number (optional) 9.2.29 */ } } } } /* 9.1.5 HNB REGISTER REJECT */ template (value) HNBAP_PDU ts_HNBAP_HNBRegisterReject(template (value) Cause cause) := { unsuccessfulOutcome := { procedureCode := id_HNBRegister, criticality := reject, value_ := { HNBRegisterReject := { protocolIEs := { { id := HNBAP_Constants.id_Cause, criticality := ignore, value_ := { Cause := cause } } }, protocolExtensions := omit /* TODO: CriticalityDiagnostics, BackoffTimer */ } } } } }