Move LLC enqueuing and retransmit timer to MS object

The LLC queue is already in the MS object. The LLC timer and most
of the logic to enqueue its data is independent from the TBF.

Change-Id: I56b89fcac838d8eb732b629734d5e458e9c806d1
diff --git a/src/gprs_ms.h b/src/gprs_ms.h
index cc92e2a..703e84b 100644
--- a/src/gprs_ms.h
+++ b/src/gprs_ms.h
@@ -79,6 +79,7 @@
 	enum CodingScheme current_cs_dl;
 
 	struct gprs_llc_queue llc_queue;
+	struct osmo_timer_list llc_timer;
 
 	bool is_idle;
 	int ref;
@@ -143,6 +144,8 @@
 bool ms_nacc_rts(const struct GprsMs *ms);
 struct msgb *ms_nacc_create_rlcmac_msg(struct GprsMs *ms, struct gprs_rlcmac_tbf *tbf, uint32_t fn, uint8_t ts);
 
+int ms_append_llc_dl_data(struct GprsMs *ms, uint16_t pdu_delay_csec, const uint8_t *data, uint16_t len);
+
 static inline bool ms_is_idle(const struct GprsMs *ms)
 {
 	return !ms->ul_tbf && !ms->dl_tbf && !ms->ref && llist_empty(&ms->old_tbfs);