bsc: Test suite for CBSP (Cell Broadcast Service Protocol)

In this testsuite, we simulate BTS and CBC by attaching to RSL and CBSP
protocol interfaces of the BSC.  We then issue a variety of CBSP
commands to the BSC and check for corresponding action on both the BTS-
facing RSL as well as responses on the CBSP side.

Change-Id: Ia6ffac181f50586d06d2f29bca1c57285179e861
diff --git a/library/RSL_Types.ttcn b/library/RSL_Types.ttcn
index da8c7f8..db0e231 100644
--- a/library/RSL_Types.ttcn
+++ b/library/RSL_Types.ttcn
@@ -1549,6 +1549,25 @@
 			t_RSL_IE(RSL_IE_FULL_BCCH_INFO, RSL_IE_Body:{other := ts_RSL_LV(full_bcch_info)})
 		}
 	}
+	template RSL_Message tr_RSL_NO_BCCH_INFO(template RSL_IE_SysinfoType si_type := ?) := {
+		msg_disc := tr_RSL_MsgDisc(RSL_MDISC_CCHAN, false),
+		msg_type := RSL_MT_BCCH_INFO,
+		ies := {
+			tr_RSL_IE(RSL_IE_Body:{chan_nr := ts_RslChanNr_BCCH(0)}),
+			tr_RSL_IE(RSL_IE_Body:{sysinfo_type := si_type})
+		}
+	}
+	template RSL_Message tr_RSL_BCCH_INFO(template RSL_IE_SysinfoType si_type := ?,
+					      template octetstring full_bcch_info := ?) := {
+		msg_disc := tr_RSL_MsgDisc(RSL_MDISC_CCHAN, false),
+		msg_type := RSL_MT_BCCH_INFO,
+		ies := {
+			tr_RSL_IE(RSL_IE_Body:{chan_nr := ts_RslChanNr_BCCH(0)}),
+			tr_RSL_IE(RSL_IE_Body:{sysinfo_type := si_type}),
+			tr_RSL_IE(RSL_IE_Body:{other := tr_RSL_LV(full_bcch_info)}),
+			*
+		}
+	}
 
 	/* 8.5.2 BTS -> BSC */
 	template (value) RSL_Message ts_RSL_RACH_LOAD_IND(uint16_t slot_ct, uint16_t busy_ct,
@@ -1562,7 +1581,7 @@
 	}
 	template RSL_Message tr_RSL_RACH_LOAD_IND(template uint16_t slot_ct := ?,
 						  template uint16_t busy_ct := ?,
-						  template uint16_t acc_ct) := {
+						  template uint16_t acc_ct := ?) := {
 		msg_disc := tr_RSL_MsgDisc(RSL_MDISC_CCHAN, false),
 		msg_type := RSL_MT_CCCH_LOAD_IND,
 		ies := {
@@ -1761,6 +1780,24 @@
 			t_RSL_IE(RSL_IE_L3_INFO, RSL_IE_Body:{l3_info := ts_RSL_L16V(l3_info)})
 		}
 	}
+	template RSL_Message tr_RSL_NO_SACCH_FILL(template RSL_IE_SysinfoType si_type := ?) := {
+		msg_disc := tr_RSL_MsgDisc(RSL_MDISC_TRX_MGMT, false),
+		msg_type := RSL_MT_SACCH_FILL,
+		ies := {
+			tr_RSL_IE(RSL_IE_Body:{sysinfo_type := si_type})
+		}
+	}
+	template RSL_Message tr_RSL_SACCH_FILL(template RSL_IE_SysinfoType si_type := ?,
+						template octetstring l3_info := ?) := {
+		msg_disc := tr_RSL_MsgDisc(RSL_MDISC_TRX_MGMT, false),
+		msg_type := RSL_MT_SACCH_FILL,
+		ies := {
+			tr_RSL_IE(RSL_IE_Body:{sysinfo_type := si_type}),
+			tr_RSL_IE(RSL_IE_Body:{l3_info := tr_RSL_L16V(l3_info)}),
+			*
+		}
+	}
+
 
 	/* 8.6.4 BTS -> BSC */
 	template (value) RSL_Message ts_RSL_ERROR_REPORT(RSL_Cause cause) := {