aboutsummaryrefslogtreecommitdiffstats
path: root/src/tbf_ul.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/tbf_ul.cpp')
-rw-r--r--src/tbf_ul.cpp55
1 files changed, 54 insertions, 1 deletions
diff --git a/src/tbf_ul.cpp b/src/tbf_ul.cpp
index f67ffd7..420fc1a 100644
--- a/src/tbf_ul.cpp
+++ b/src/tbf_ul.cpp
@@ -175,7 +175,7 @@ int gprs_rlcmac_ul_tbf::rcv_data_block_acknowledged(
/* Increment RX-counter */
this->m_rx_counter++;
-
+ update_coding_scheme_counter_ul(rlc->cs);
/* Loop over num_blocks */
for (block_idx = 0; block_idx < rlc->num_data_blocks; block_idx++) {
int num_chunks;
@@ -517,3 +517,56 @@ egprs_rlc_ul_reseg_bsn_state gprs_rlcmac_ul_tbf::handle_egprs_ul_spb(
}
return assemble_status;
}
+
+void gprs_rlcmac_ul_tbf::update_coding_scheme_counter_ul(const GprsCodingScheme cs)
+{
+ uint8_t coding_scheme = 0;
+
+ coding_scheme = GprsCodingScheme::Scheme(cs);
+ if (cs.isGprs()) {
+ switch (coding_scheme) {
+ case GprsCodingScheme::CS1 :
+ bts->gprs_ul_cs1();
+ break;
+ case GprsCodingScheme::CS2 :
+ bts->gprs_ul_cs2();
+ break;
+ case GprsCodingScheme::CS3 :
+ bts->gprs_ul_cs3();
+ break;
+ case GprsCodingScheme::CS4 :
+ bts->gprs_ul_cs4();
+ break;
+ }
+ } else {
+ switch (coding_scheme) {
+ case GprsCodingScheme::MCS1 :
+ bts->egprs_ul_mcs1();
+ break;
+ case GprsCodingScheme::MCS2 :
+ bts->egprs_ul_mcs2();
+ break;
+ case GprsCodingScheme::MCS3 :
+ bts->egprs_ul_mcs3();
+ break;
+ case GprsCodingScheme::MCS4 :
+ bts->egprs_ul_mcs4();
+ break;
+ case GprsCodingScheme::MCS5 :
+ bts->egprs_ul_mcs5();
+ break;
+ case GprsCodingScheme::MCS6 :
+ bts->egprs_ul_mcs6();
+ break;
+ case GprsCodingScheme::MCS7 :
+ bts->egprs_ul_mcs7();
+ break;
+ case GprsCodingScheme::MCS8 :
+ bts->egprs_ul_mcs8();
+ break;
+ case GprsCodingScheme::MCS9 :
+ bts->egprs_ul_mcs9();
+ break;
+ }
+ }
+}