bts: Add TC_sacch_chan_act() to test SACCH INFO at RSL CHAN ACT

According to 3GPP Ts 48.058, every logical channel can receive some
specific SACCH filling at the time of RSL channel activation.  This
overrides the global SACCH FILLING.

Related: OS#3750
Change-Id: I8adb371a7e0b80792dd2fa35e5204802068df5ba
diff --git a/library/RSL_Types.ttcn b/library/RSL_Types.ttcn
index 39ba3d3..0d772b3 100644
--- a/library/RSL_Types.ttcn
+++ b/library/RSL_Types.ttcn
@@ -565,6 +565,35 @@
 		cause_ext := omit
 	}
 
+	/* 9.3.29 */
+	type record RSL_SacchInfo {
+		uint8_t len,
+		uint8_t num_msgs,
+		RSL_SacchInfoElements elems
+	} with {
+		variant (len) "LENGTHTO(num_msgs,elems)";
+		variant (num_msgs) "LENGTHTO(elems)";
+		variant (num_msgs) "UNIT(elements)"
+	};
+	type record RSL_SacchInfoElement {
+		RSL_IE_SysinfoType si_type,
+		uint8_t len,
+		octetstring msg
+	} with {
+		variant (len) "LENGTHTO(msg)";
+	};
+	type record of RSL_SacchInfoElement RSL_SacchInfoElements;
+	template (value) RSL_SacchInfo ts_RSL_SacchInfo(template (value) RSL_SacchInfoElements elems) := {
+		len := 0, /* overwritten */
+		num_msgs := 0, /* overwritten */
+		elems := elems
+	}
+	template (value) RSL_SacchInfoElement ts_RSL_SacchInfoElem(RSL_IE_SysinfoType tp, octetstring msg) := {
+		si_type := tp,
+		len := lengthof(msg),
+		msg := msg
+	}
+
 	/* 9.3.40 */
 	type enumerated RSL_ChanNeeded {
 		RSL_CHANNEED_ANY	('00'B),
@@ -703,6 +732,7 @@
 		RSL_IE_ChanNeeded	chan_needed,
 		RSL_IE_CbCommandType	cb_cmd_type,
 		RSL_LV			smscb_message,
+		RSL_SacchInfo		sacch_info,
 
 		RSL_IE_StartingTime	starting_time,
 		RSL_IE_EncryptionInfo	encr_info,
@@ -755,6 +785,7 @@
 					chan_needed, iei = RSL_IE_CHAN_NEEDED;
 					cb_cmd_type, iei = RSL_IE_CB_CMD_TYPE;
 					smscb_message, iei = RSL_IE_SMSCB_MSG;
+					sacch_info, iei = RSL_IE_SACCH_INFO;
 					starting_time, iei = RSL_IE_STARTNG_TIME;
 					encr_info, iei = RSL_IE_ENCR_INFO;