bts: Verify the PCU protocol interface version
Change-Id: If2033720a38879cd2f4c4f8d3fe3fed1468da3cb
diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn
index 5e0b3fb..15d5f6d 100644
--- a/bts/BTS_Tests.ttcn
+++ b/bts/BTS_Tests.ttcn
@@ -234,9 +234,12 @@
/* PCU socket may at any time receive a new INFO.ind */
private altstep as_pcu_info_ind() runs on test_CT {
var PCUIF_send_data sd;
- [] PCU.receive(t_SD_PCUIF_MSGT(g_pcu_conn_id, PCU_IF_MSG_INFO_IND)) -> value sd {
+ [] PCU.receive(t_SD_PCUIF(g_pcu_conn_id, tr_PCUIF_INFO_IND(0, ?))) -> value sd {
g_pcu_last_info := sd.data;
- repeat;
+ }
+ [] PCU.receive(t_SD_PCUIF(g_pcu_conn_id, tr_PCUIF_INFO_IND(?, ?, ?))) -> value sd {
+ setverdict(fail, "Invalid PCU Version/BTS Number received");
+ self.stop;
}
}
@@ -252,9 +255,7 @@
T.start;
alt {
- [] PCU.receive(t_SD_PCUIF_MSGT(g_pcu_conn_id, PCU_IF_MSG_INFO_IND)) -> value sd {
- g_pcu_last_info := sd.data;
- }
+ [] as_pcu_info_ind();
[] T.timeout {
setverdict(fail, "Timeout waiting for PCU INFO_IND");
self.stop;
diff --git a/library/PCUIF_Types.ttcn b/library/PCUIF_Types.ttcn
index e4a314d..b469627 100644
--- a/library/PCUIF_Types.ttcn
+++ b/library/PCUIF_Types.ttcn
@@ -410,5 +410,49 @@
}
}
+template PCUIF_Message tr_PCUIF_INFO_IND(template uint8_t bts_nr := ?,
+ template PCUIF_Flags flags := ?,
+ template uint32_t version := PCU_IF_VERSION) := {
+ msg_type := PCU_IF_MSG_INFO_IND,
+ bts_nr := bts_nr,
+ spare := ?,
+ u := {
+ info_ind := {
+ version := version,
+ flags := flags,
+ trx := ?,
+ bsic := ?,
+ mcc := ?,
+ mnc :=?,
+ lac := ?,
+ rac := ?,
+ nsei := ?,
+ nse_timer := ?,
+ cell_timer := ?,
+ cell_id := ?,
+ repeat_time := ?,
+ repeat_count := ?,
+ bvci := ?,
+ t3142 := ?,
+ t3169 := ?,
+ t3191 := ?,
+ t3193_10ms := ?,
+ t3195 := ?,
+ t3101 := ?,
+ t3103 := ?,
+ t3105 := ?,
+ cv_countdown := ?,
+ dl_tbf_ext := ?,
+ ul_tbf_ext := ?,
+ initial_cs := ?,
+ initial_mcs := ?,
+ nsvci := ?,
+ local_pprt := ?,
+ remote_port := ?,
+ remote_ip := ?
+ }
+ }
+}
+
} with { encode "RAW" variant "BYTEORDER(first)" };