diff options
author | Daniel Willmann <dwillmann@sysmocom.de> | 2014-07-30 19:12:28 +0200 |
---|---|---|
committer | Daniel Willmann <daniel@totalueberwachung.de> | 2014-08-07 13:03:10 +0200 |
commit | b8f260176ee7877384ce39e9699e1a2e2b092ddb (patch) | |
tree | a458a22a0daa46b1b2bc0dc6eaffbf553fb41bbf | |
parent | 6c813fc9bc024efba40810421148f28973ce74af (diff) |
tbf: Make create_new_bsn and create_dl_acked_block a method of DL TBF
These functions are only used for DL TBFs so move them.
sched_select_downlink() in src/gprs_rlcmac_sched.cpp now needs to deal
with DL TBFs instead of the base class.
Ticket: SYS#389
Sponsored-by: On-Waves ehf
-rw-r--r-- | src/gprs_rlcmac_sched.cpp | 2 | ||||
-rw-r--r-- | src/tbf.cpp | 6 | ||||
-rw-r--r-- | src/tbf.h | 10 |
3 files changed, 10 insertions, 8 deletions
diff --git a/src/gprs_rlcmac_sched.cpp b/src/gprs_rlcmac_sched.cpp index dab38d83..6c46a73d 100644 --- a/src/gprs_rlcmac_sched.cpp +++ b/src/gprs_rlcmac_sched.cpp @@ -164,7 +164,7 @@ static struct msgb *sched_select_downlink(struct gprs_rlcmac_bts *bts, uint8_t block_nr, struct gprs_rlcmac_pdch *pdch) { struct msgb *msg = NULL; - struct gprs_rlcmac_tbf *tbf = NULL; + struct gprs_rlcmac_dl_tbf *tbf = NULL; uint8_t i, tfi; /* select downlink resource */ diff --git a/src/tbf.cpp b/src/tbf.cpp index d9c55f3e..2f3cc31d 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -889,7 +889,7 @@ int gprs_rlcmac_tbf::assemble_forward_llc(const gprs_rlc_data *_data) * Create DL data block * The messages are fragmented and forwarded as data blocks. */ -struct msgb *gprs_rlcmac_tbf::create_dl_acked_block(uint32_t fn, uint8_t ts) +struct msgb *gprs_rlcmac_dl_tbf::create_dl_acked_block(uint32_t fn, uint8_t ts) { LOGP(DRLCMACDL, LOGL_DEBUG, "%s downlink (V(A)==%d .. " "V(S)==%d)\n", tbf_name(this), @@ -954,7 +954,7 @@ do_resend: return create_new_bsn(fn, ts); } -struct msgb *gprs_rlcmac_tbf::create_new_bsn(const uint32_t fn, const uint8_t ts) +struct msgb *gprs_rlcmac_dl_tbf::create_new_bsn(const uint32_t fn, const uint8_t ts) { struct rlc_dl_header *rh; struct rlc_li_field *li; @@ -1121,7 +1121,7 @@ struct msgb *gprs_rlcmac_tbf::create_new_bsn(const uint32_t fn, const uint8_t ts return create_dl_acked_block(fn, ts, bsn, first_fin_ack); } -struct msgb *gprs_rlcmac_tbf::create_dl_acked_block( +struct msgb *gprs_rlcmac_dl_tbf::create_dl_acked_block( const uint32_t fn, const uint8_t ts, const int index, const bool first_fin_ack) { @@ -121,7 +121,6 @@ struct gprs_rlcmac_tbf { /* TODO: extract LLC class? */ int assemble_forward_llc(const gprs_rlc_data *data); - struct msgb *create_dl_acked_block(uint32_t fn, uint8_t ts); struct msgb *create_dl_ass(uint32_t fn); struct msgb *create_ul_ass(uint32_t fn); struct msgb *create_ul_ack(uint32_t fn); @@ -270,9 +269,6 @@ protected: int extract_tlli(const uint8_t *data, const size_t len); void maybe_schedule_uplink_acknack(const rlc_ul_header *rh); - struct msgb *create_dl_acked_block(const uint32_t fn, const uint8_t ts, - const int index, const bool fin_first_ack); - struct msgb *create_new_bsn(const uint32_t fn, const uint8_t ts); }; @@ -354,6 +350,12 @@ struct gprs_rlcmac_dl_tbf : public gprs_rlcmac_tbf { const uint8_t *data, const uint16_t len); int rcvd_dl_ack(uint8_t final, uint8_t ssn, uint8_t *rbb); + struct msgb *create_dl_acked_block(uint32_t fn, uint8_t ts); + +protected: + struct msgb *create_new_bsn(const uint32_t fn, const uint8_t ts); + struct msgb *create_dl_acked_block(const uint32_t fn, const uint8_t ts, + const int index, const bool fin_first_ack); }; struct gprs_rlcmac_ul_tbf : public gprs_rlcmac_tbf { |