2021-11-22 19:35:44 +00:00
|
|
|
/* HNBAP Templates in TTCN-3
|
|
|
|
* (C) 2021 Pau Espin Pedrol <pespin@sysmocom.de>
|
|
|
|
* 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 := ?) := {
|
2022-08-24 07:58:07 +00:00
|
|
|
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 := *
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
template (value) HNBAP_PDU
|
|
|
|
ts_HNBAP_HNBRegisterRequest(template (value) octetstring hNB_Identity_Info,
|
|
|
|
template (value) OCT3 plmnid,
|
|
|
|
template (value) BIT28 cell_identity,
|
|
|
|
template (value) OCT2 lac,
|
|
|
|
template (value) OCT1 rac,
|
|
|
|
template (value) OCT2 sac) := {
|
2021-11-22 19:35:44 +00:00
|
|
|
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 */
|
2022-01-05 08:12:34 +00:00
|
|
|
template (present) HNBAP_PDU
|
|
|
|
tr_HNBAP_HNBRegisterAccept(template (present) 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 }
|
|
|
|
}
|
|
|
|
},
|
2022-08-24 07:58:07 +00:00
|
|
|
protocolExtensions := * /* TODO: Mux Port Number (optional) 9.2.29 */
|
2022-01-05 08:12:34 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-11-22 19:35:44 +00:00
|
|
|
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 */
|
2022-08-23 14:01:04 +00:00
|
|
|
template (present) HNBAP_PDU
|
|
|
|
tr_HNBAP_HNBRegisterReject(template (present) Cause cause := ?) := {
|
|
|
|
unsuccessfulOutcome := {
|
|
|
|
procedureCode := id_HNBRegister,
|
|
|
|
criticality := reject,
|
|
|
|
value_ := {
|
|
|
|
HNBRegisterReject := {
|
|
|
|
protocolIEs := {
|
|
|
|
{
|
|
|
|
id := HNBAP_Constants.id_Cause,
|
|
|
|
criticality := ignore,
|
|
|
|
value_ := { Cause := cause }
|
|
|
|
}
|
|
|
|
},
|
|
|
|
protocolExtensions := * /* TODO: CriticalityDiagnostics, BackoffTimer */
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-11-22 19:35:44 +00:00
|
|
|
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 */
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-09-12 11:31:07 +00:00
|
|
|
/* 9.1.9 HNB DE-REGISTER */
|
|
|
|
template (value) HNBAP_PDU
|
|
|
|
ts_HNBAP_HNBDe_Register(template (value) Cause cause) := {
|
|
|
|
initiatingMessage := {
|
|
|
|
procedureCode := id_HNBDe_Register,
|
|
|
|
criticality := reject,
|
|
|
|
value_ := {
|
|
|
|
HNBDe_Register := {
|
|
|
|
protocolIEs := {
|
|
|
|
{
|
|
|
|
id := HNBAP_Constants.id_Cause,
|
|
|
|
criticality := ignore,
|
|
|
|
value_ := { Cause := cause }
|
|
|
|
}
|
|
|
|
},
|
|
|
|
protocolExtensions := omit /* TODO: BackoffTimer */
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-11-22 19:35:44 +00:00
|
|
|
}
|