bts: Test forwarding PCUIF<->IPA/OSMO/PCU
Change-Id: I78880098a55d1cb456011746efa0a47832a86ca8
diff --git a/library/PCUIF_Types.ttcn b/library/PCUIF_Types.ttcn
index 6cfe410..1e57fb2 100644
--- a/library/PCUIF_Types.ttcn
+++ b/library/PCUIF_Types.ttcn
@@ -37,7 +37,8 @@
PCU_IF_MSG_TIME_IND ('52'O),
PCU_IF_MSG_INTERF_IND ('53'O),
PCU_IF_MSG_PAG_REQ ('60'O),
- PCU_IF_MSG_TXT_IND ('70'O)
+ PCU_IF_MSG_TXT_IND ('70'O),
+ PCU_IF_MSG_CONTAINER ('80'O)
} with { variant "FIELDLENGTH(8)" };
type enumerated PCUIF_Sapi {
@@ -253,6 +254,26 @@
variant (tlli) "BYTEORDER(last)"
};
+type union PCUIF_ContainerMsgUnion {
+ /* This field can be removed once first container message is added, see
+ * https://bugs.eclipse.org/bugs/show_bug.cgi?id=574469 */
+ octetstring tmp_fixme,
+ octetstring other
+} with { variant "" };
+
+type record PCUIF_container {
+ uint8_t msg_type,
+ OCT1 spare,
+ uint16_t len, /* network byte order */
+ PCUIF_ContainerMsgUnion u
+} with {
+ variant (len) "BYTEORDER(last)"
+ variant (len) "LENGTHTO(u)"
+ variant (u) "CROSSTAG(
+ tmp_fixme, msg_type = 255;
+ other, OTHERWISE)"
+};
+
type union PCUIF_MsgUnion {
PCUIF_data data_req,
@@ -268,7 +289,8 @@
PCUIF_time_ind time_ind,
PCUIF_interf_ind interf_ind,
PCUIF_pag_req pag_req,
- PCUIF_app_info_req app_info_req
+ PCUIF_app_info_req app_info_req,
+ PCUIF_container container
} with { variant "" };
type record PCUIF_Message {
@@ -290,7 +312,8 @@
time_ind, msg_type = PCU_IF_MSG_TIME_IND;
interf_ind, msg_type = PCU_IF_MSG_INTERF_IND;
pag_req, msg_type = PCU_IF_MSG_PAG_REQ;
- app_info_req, msg_type = PCU_IF_MSG_APP_INFO_REQ)"
+ app_info_req, msg_type = PCU_IF_MSG_APP_INFO_REQ;
+ container, msg_type = PCU_IF_MSG_CONTAINER)"
/* PCUIFv10: 1006 * 8 = 8048 bits */
variant "PADDING(8048)"
};
@@ -984,6 +1007,43 @@
}
+template (value) PCUIF_Message ts_PCUIF_CONTAINER(template (value) uint8_t bts_nr,
+ template (value) PCUIF_container container) := {
+ msg_type := PCU_IF_MSG_CONTAINER,
+ bts_nr := bts_nr,
+ spare := '0000'O,
+ u := {
+ container := container
+ }
+}
+template (present) PCUIF_Message tr_PCUIF_CONTAINER(template (present) uint8_t bts_nr,
+ template (present) PCUIF_container container) := {
+ msg_type := PCU_IF_MSG_CONTAINER,
+ bts_nr := bts_nr,
+ spare := '0000'O,
+ u := {
+ container := container
+ }
+}
+
+template (value) PCUIF_container ts_PCUIF_CONT_OTHER(uint8_t msg_type, template (value) octetstring payload) := {
+ msg_type := msg_type,
+ spare := '00'O,
+ len := lengthof(payload),
+ u := {
+ other := payload
+ }
+}
+template (present) PCUIF_container tr_PCUIF_CONT_OTHER(template (present) uint8_t msg_type,
+ template (present) octetstring payload) := {
+ msg_type := msg_type,
+ spare := '00'O,
+ len := ?,
+ u := {
+ other := payload
+ }
+}
+
function f_PCUIF_PDCHMask_set(inout PCUIF_info_ind info, BIT8 pdch_mask,
template (present) uint8_t trx_nr := ?)
{