Log additional info for radio errors

Change-Id: I936a07ce87f05d9c3dc351dc3bdc4f00d78265e0
Related: OS#1553
diff --git a/src/bts.cpp b/src/bts.cpp
index a47d7d8..b4e18e3 100644
--- a/src/bts.cpp
+++ b/src/bts.cpp
@@ -909,9 +909,9 @@
 void gprs_rlcmac_pdch::rcv_control_ack(Packet_Control_Acknowledgement_t *packet, uint32_t fn)
 {
 	struct gprs_rlcmac_tbf *tbf, *new_tbf;
-	uint32_t tlli = 0;
+	uint32_t tlli = packet->TLLI;
+	GprsMs *ms = bts()->ms_by_tlli(tlli);
 
-	tlli = packet->TLLI;
 	tbf = bts()->ul_tbf_by_poll_fn(fn, trx_no(), ts_no);
 	if (!tbf)
 		tbf = bts()->dl_tbf_by_poll_fn(fn, trx_no(), ts_no);
@@ -920,6 +920,15 @@
 		LOGP(DRLCMAC, LOGL_NOTICE, "PACKET CONTROL ACK with "
 			"unknown FN=%u TLLI=0x%08x (TRX %d TS %d)\n",
 			fn, tlli, trx_no(), ts_no);
+		if (ms)
+			LOGP(DRLCMAC, LOGL_NOTICE, "PACKET CONTROL ACK with "
+			     "unknown TBF corresponds to MS with IMSI %s, TA %d, "
+			     "uTBF (TFI=%d, state=%s), uTBF (TFI=%d, state=%s)\n",
+			     ms->imsi(), ms->ta(),
+			     ms->ul_tbf() ? ms->ul_tbf()->tfi() : 0,
+			     ms->ul_tbf() ? ms->ul_tbf()->state_name() : "None",
+			     ms->dl_tbf() ? ms->dl_tbf()->tfi() : 0,
+			     ms->dl_tbf() ? ms->dl_tbf()->state_name() : "None");
 		return;
 	}
 	tbf->update_ms(tlli, GPRS_RLCMAC_UL_TBF);
diff --git a/src/sba.cpp b/src/sba.cpp
index 46c1431..5d75b17 100644
--- a/src/sba.cpp
+++ b/src/sba.cpp
@@ -127,7 +127,9 @@
 
 int SBAController::timeout(struct gprs_rlcmac_sba *sba)
 {
-	LOGP(DRLCMAC, LOGL_NOTICE, "Poll timeout for SBA\n");
+	LOGP(DRLCMAC, LOGL_NOTICE,
+	     "Poll timeout for SBA (TRX=%u, TS=%u, FN=%u, TA=%u)\n", sba->trx_no,
+	     sba->ts_no, sba->fn, sba->ta);
 	m_bts.sba_timedout();
 	free_sba(sba);
 	return 0;