aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Willmann <dwillmann@sysmocom.de>2014-08-07 14:54:11 +0200
committerDaniel Willmann <daniel@totalueberwachung.de>2014-08-07 16:12:05 +0200
commit350f64d9e282f0d337c04344a57dda69279119c1 (patch)
treee4301b5dd8b96166a93180c5df8ac9343dfb5e8c
parent4f3c4208527b7cd3275bff87b2d016c5b2c15506 (diff)
tbf: Move UL TBF methods from base class into UL TBF
The methods create_ul_ack(), rcv_data_block_acknowledged(), maybe_schedule_uplink_acknack() are only used for UL TBFs so make them methods of that class instead of the base class. Ticket: SYS#389 Sponsored by: On-Waves ehf
-rw-r--r--src/tbf.cpp10
-rw-r--r--src/tbf.h11
2 files changed, 12 insertions, 9 deletions
diff --git a/src/tbf.cpp b/src/tbf.cpp
index f7cdca51..31276d18 100644
--- a/src/tbf.cpp
+++ b/src/tbf.cpp
@@ -1293,7 +1293,7 @@ struct msgb *gprs_rlcmac_tbf::create_dl_ass(uint32_t fn)
struct msgb *gprs_rlcmac_tbf::create_ul_ass(uint32_t fn)
{
struct msgb *msg;
- struct gprs_rlcmac_tbf *new_tbf;
+ struct gprs_rlcmac_ul_tbf *new_tbf;
if (poll_state != GPRS_RLCMAC_POLL_NONE) {
LOGP(DRLCMACUL, LOGL_DEBUG, "Polling is already "
@@ -1312,7 +1312,7 @@ struct msgb *gprs_rlcmac_tbf::create_ul_ass(uint32_t fn)
if (direction == GPRS_RLCMAC_DL_TBF)
new_tbf = bts->ul_tbf_by_tlli(m_tlli);
else
- new_tbf = this;
+ new_tbf = static_cast<gprs_rlcmac_ul_tbf *>(this);
if (!new_tbf) {
LOGP(DRLCMACUL, LOGL_ERROR, "We have a schedule for uplink "
@@ -1353,7 +1353,7 @@ struct msgb *gprs_rlcmac_tbf::create_ul_ass(uint32_t fn)
return msg;
}
-struct msgb *gprs_rlcmac_tbf::create_ul_ack(uint32_t fn)
+struct msgb *gprs_rlcmac_ul_tbf::create_ul_ack(uint32_t fn)
{
int final = (state_is(GPRS_RLCMAC_FINISHED));
struct msgb *msg;
@@ -1620,7 +1620,7 @@ int gprs_rlcmac_tbf::extract_tlli(const uint8_t *data, const size_t len)
return 1;
}
-int gprs_rlcmac_tbf::rcv_data_block_acknowledged(const uint8_t *data, size_t len, int8_t rssi)
+int gprs_rlcmac_ul_tbf::rcv_data_block_acknowledged(const uint8_t *data, size_t len, int8_t rssi)
{
struct rlc_ul_header *rh = (struct rlc_ul_header *)data;
int rc;
@@ -1716,7 +1716,7 @@ int gprs_rlcmac_tbf::rcv_data_block_acknowledged(const uint8_t *data, size_t len
return 0;
}
-void gprs_rlcmac_tbf::maybe_schedule_uplink_acknack(const rlc_ul_header *rh)
+void gprs_rlcmac_ul_tbf::maybe_schedule_uplink_acknack(const rlc_ul_header *rh)
{
if (rh->si || rh->ti || state_is(GPRS_RLCMAC_FINISHED)
|| (dir.ul.rx_counter % SEND_ACK_AFTER_FRAMES) == 0) {
diff --git a/src/tbf.h b/src/tbf.h
index e2f3d8f5..779f9fab 100644
--- a/src/tbf.h
+++ b/src/tbf.h
@@ -123,11 +123,8 @@ struct gprs_rlcmac_tbf {
struct msgb *create_dl_ass(uint32_t fn);
struct msgb *create_ul_ass(uint32_t fn);
- struct msgb *create_ul_ack(uint32_t fn);
int snd_ul_ud();
- /* blocks were acked */
- int rcv_data_block_acknowledged(const uint8_t *data, size_t len, int8_t rssi);
uint8_t tsc() const;
int rlcmac_diag();
@@ -257,7 +254,6 @@ protected:
gprs_rlcmac_bts *bts_data() const;
int extract_tlli(const uint8_t *data, const size_t len);
- void maybe_schedule_uplink_acknack(const rlc_ul_header *rh);
};
@@ -358,6 +354,13 @@ protected:
};
struct gprs_rlcmac_ul_tbf : public gprs_rlcmac_tbf {
+ struct msgb *create_ul_ack(uint32_t fn);
+
+ /* blocks were acked */
+ int rcv_data_block_acknowledged(const uint8_t *data, size_t len, int8_t rssi);
+
+protected:
+ void maybe_schedule_uplink_acknack(const rlc_ul_header *rh);
};
#endif