tbf: Move the LLC queue to GprsMs

Currently the enqueued DL LLC messages which have not yet passed to
RLC/MAC encoding are eventually copied from one TBF to the next one
(see gprs_rlcmac_dl_tbf::reuse_tbf). Since the enqueued LLC messages
are related to a specific MS, they should be stored at that layer.

This commit moves the gprs_llc_queue object to GprsMs and changes the
TBF's accessor methods accordingly. The LLC copying code is removed
from gprs_rlcmac_dl_tbf::reuse_tbf().

Sponsored-by: On-Waves ehf
diff --git a/src/tbf.cpp b/src/tbf.cpp
index dc26cc7..136226c 100644
--- a/src/tbf.cpp
+++ b/src/tbf.cpp
@@ -102,6 +102,16 @@
 	m_ta = ta;
 }
 
+gprs_llc_queue *gprs_rlcmac_tbf::llc_queue()
+{
+	return m_ms ? m_ms->llc_queue() : NULL;
+}
+
+const gprs_llc_queue *gprs_rlcmac_tbf::llc_queue() const
+{
+	return m_ms ? m_ms->llc_queue() : NULL;
+}
+
 void gprs_rlcmac_tbf::set_ms(GprsMs *ms)
 {
 	if (m_ms == ms)
@@ -219,7 +229,6 @@
 			tbf_name(tbf));
 	tbf->stop_timer();
 	#warning "TODO: Could/Should generate  bssgp_tx_llc_discarded"
-	tbf->llc_queue()->clear(tbf->bts);
 	tbf_unlink_pdch(tbf);
 	llist_del(&tbf->list.list);
 
@@ -451,7 +460,6 @@
 	gettimeofday(&tbf->meas.rssi_tv, NULL);
 
 	tbf->m_llc.init();
-	tbf->llc_queue()->init();
 	return 0;
 }