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/gprs_ms.h b/src/gprs_ms.h
index db55bad..5c42c50 100644
--- a/src/gprs_ms.h
+++ b/src/gprs_ms.h
@@ -25,6 +25,7 @@
 struct gprs_rlcmac_ul_tbf;
 
 #include "cxx_linuxlist.h"
+#include "llc.h"
 
 extern "C" {
 	#include <osmocom/core/timer.h>
@@ -67,6 +68,9 @@
 	uint8_t ta() const;
 	void set_ta(uint8_t ta);
 
+	gprs_llc_queue *llc_queue();
+	const gprs_llc_queue *llc_queue() const;
+
 	void set_timeout(unsigned secs);
 
 	void attach_tbf(gprs_rlcmac_tbf *tbf);
@@ -104,6 +108,7 @@
 	/* store IMSI for look-up and PCH retransmission */
 	char m_imsi[16];
 	uint8_t m_ta;
+	gprs_llc_queue m_llc_queue;
 
 	bool m_is_idle;
 	int m_ref;
@@ -139,3 +144,14 @@
 {
 	m_delay = secs;
 }
+
+inline gprs_llc_queue *GprsMs::llc_queue()
+{
+	return &m_llc_queue;
+}
+
+inline const gprs_llc_queue *GprsMs::llc_queue() const
+{
+	return &m_llc_queue;
+}
+