RSL: Allow disabling of BCCH/SACCH filling for given SI type

If we want to instruct the BTS to stop sending a given SI, we must be
able to send the respective BCCH INFO / SACCH FILLING with a header but
without any L3 data IE.  This patch enables the related functions to do
this whenever their data argument points to NULL.

Change-Id: I88b85614951a108574f05db3b706884afe7e87a9
diff --git a/src/libbsc/abis_rsl.c b/src/libbsc/abis_rsl.c
index 441b386..9e36f79 100644
--- a/src/libbsc/abis_rsl.c
+++ b/src/libbsc/abis_rsl.c
@@ -245,12 +245,14 @@
 	    && type == RSL_SYSTEM_INFO_13) {
 		/* Ericsson proprietary encoding of SI13 */
 		msgb_tv_put(msg, RSL_IE_SYSINFO_TYPE, RSL_ERIC_SYSTEM_INFO_13);
-		msgb_tlv_put(msg, RSL_IE_FULL_BCCH_INFO, len, data);
+		if (data)
+			msgb_tlv_put(msg, RSL_IE_FULL_BCCH_INFO, len, data);
 		msgb_tv_put(msg, RSL_IE_ERIC_BCCH_MAPPING, 0x00);
 	} else {
 		/* Normal encoding */
 		msgb_tv_put(msg, RSL_IE_SYSINFO_TYPE, type);
-		msgb_tlv_put(msg, RSL_IE_FULL_BCCH_INFO, len, data);
+		if (data)
+			msgb_tlv_put(msg, RSL_IE_FULL_BCCH_INFO, len, data);
 	}
 
 	msg->dst = trx->rsl_link;
@@ -269,7 +271,8 @@
 	ch->msg_type = RSL_MT_SACCH_FILL;
 
 	msgb_tv_put(msg, RSL_IE_SYSINFO_TYPE, type);
-	msgb_tl16v_put(msg, RSL_IE_L3_INFO, len, data);
+	if (data)
+		msgb_tl16v_put(msg, RSL_IE_L3_INFO, len, data);
 
 	msg->dst = trx->rsl_link;
 
@@ -288,7 +291,8 @@
 	dh->chan_nr = chan_nr;
 
 	msgb_tv_put(msg, RSL_IE_SYSINFO_TYPE, type);
-	msgb_tl16v_put(msg, RSL_IE_L3_INFO, len, data);
+	if (data)
+		msgb_tl16v_put(msg, RSL_IE_L3_INFO, len, data);
 
 	msg->dst = lchan->ts->trx->rsl_link;