edge: Add bitvec based DL window updating methods

The current methods are based on the GRPS specific RBB and SSN values
and formats which are not compatible with EGPRS.

Add a second set of similar methods with the same semantics but
which are based on a bitvec and the first BSN instead.

The following methods are affected:

- gprs_rlc_dl_window::update
- gprs_rlcmac_dl_tbf::rcvd_dl_ack
- gprs_rlcmac_dl_tbf::update_window

Sponsored-by: On-Waves ehf
diff --git a/src/tbf.h b/src/tbf.h
index cd98273..11e1fc7 100644
--- a/src/tbf.h
+++ b/src/tbf.h
@@ -344,6 +344,7 @@
 			const uint8_t *data, const uint16_t len);
 
 	int rcvd_dl_ack(uint8_t final, uint8_t ssn, uint8_t *rbb);
+	int rcvd_dl_ack(uint8_t final_ack, unsigned first_bsn, struct bitvec *rbb);
 	struct msgb *create_dl_acked_block(uint32_t fn, uint8_t ts);
 	void request_dl_ack();
 	bool need_control_ts() const;
@@ -395,6 +396,7 @@
 	struct msgb *create_dl_acked_block(const uint32_t fn, const uint8_t ts,
 					const int index);
 	int update_window(const uint8_t ssn, const uint8_t *rbb);
+	int update_window(unsigned first_bsn, const struct bitvec *rbb);
 	int maybe_start_new_window();
 	bool dl_window_stalled() const;
 	void reuse_tbf();