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/tbf_dl.h b/src/tbf_dl.h
index 0f531ec..5920672 100644
--- a/src/tbf_dl.h
+++ b/src/tbf_dl.h
@@ -39,9 +39,6 @@
 	~gprs_rlcmac_dl_tbf();
 	gprs_rlc_window *window();
 
-	int append_data(uint16_t pdu_delay_csec,
-			const uint8_t *data, uint16_t len);
-
 	int rcvd_dl_ack(bool final_ack, unsigned first_bsn, struct bitvec *rbb);
 	struct msgb *create_dl_acked_block(uint32_t fn, uint8_t ts, enum mcs_kind req_mcs_kind = EGPRS);
 	void trigger_ass(struct gprs_rlcmac_tbf *old_tbf);
@@ -100,7 +97,6 @@
 	int rcvd_dl_final_ack();
 	bool dl_window_stalled() const;
 	void reuse_tbf();
-	void start_llc_timer();
 	int analyse_errors(char *show_rbb, uint8_t ssn, ana_result *res);
 	void schedule_next_frame();
 
@@ -109,8 +105,6 @@
 	unsigned int get_egprs_dl_spb_status(int bsn);
 	enum egprs_rlcmac_dl_spb get_egprs_dl_spb(int bsn);
 
-	struct osmo_timer_list m_llc_timer;
-
 	/* Please note that all variables below will be reset when changing
 	 * from WAIT RELEASE back to FLOW state (re-use of TBF).
 	 * All states that need reset must be in this struct, so this is why
@@ -145,6 +139,7 @@
 		  const uint8_t *data, const uint16_t len);
 
 void tbf_dl_trigger_ass(struct gprs_rlcmac_dl_tbf *tbf, struct gprs_rlcmac_tbf *old_tbf);
+void tbf_dl_request_dl_ack(struct gprs_rlcmac_dl_tbf *tbf);
 
 #define LOGPTBFDL(tbf, level, fmt, args...) LOGP(DTBFDL, level, "%s " fmt, tbf_name(tbf), ## args)
 #ifdef __cplusplus