diff options
-rw-r--r-- | src/bts.cpp | 12 | ||||
-rw-r--r-- | src/bts.h | 346 | ||||
-rw-r--r-- | src/gprs_rlcmac_sched.cpp | 6 | ||||
-rw-r--r-- | src/gprs_rlcmac_ts_alloc.cpp | 4 | ||||
-rw-r--r-- | src/llc.cpp | 2 | ||||
-rw-r--r-- | src/pdch.cpp | 12 | ||||
-rw-r--r-- | src/rlc.cpp | 4 | ||||
-rw-r--r-- | src/sba.cpp | 6 | ||||
-rw-r--r-- | src/tbf.cpp | 58 | ||||
-rw-r--r-- | src/tbf_dl.cpp | 50 | ||||
-rw-r--r-- | src/tbf_ul.cpp | 32 |
11 files changed, 186 insertions, 346 deletions
diff --git a/src/bts.cpp b/src/bts.cpp index 2916ee76..2cf219a5 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -344,7 +344,7 @@ void BTS::set_current_block_frame_number(int fn, unsigned max_delay) LOGP(DRLCMAC, LOGL_NOTICE, "Late RLC block, FN delta: %d FN: %d curFN: %d\n", delay, fn, current_frame_number()); - rlc_late_block(); + do_rate_ctr_inc(CTR_RLC_LATE_BLOCK); } m_cur_blk_fn = fn; @@ -755,10 +755,10 @@ int BTS::rcv_rach(uint16_t ra, uint32_t Fn, int16_t qta, bool is_11bit, bool failure = false; GprsMs *ms; - rach_frame(); + do_rate_ctr_inc(CTR_RACH_REQUESTS); if (is_11bit) - rach_frame_11bit(); + do_rate_ctr_inc(CTR_11BIT_RACH_REQUESTS); /* Determine full frame number */ Fn = rfn_to_fn(Fn); @@ -831,7 +831,7 @@ int BTS::rcv_rach(uint16_t ra, uint32_t Fn, int16_t qta, bool is_11bit, plen = Encoding::write_immediate_assignment_reject( immediate_assignment, ra, Fn, burst_type); - immediate_assignment_reject(); + do_rate_ctr_inc(CTR_IMMEDIATE_ASSIGN_REJ); } else { LOGP(DRLCMAC, LOGL_DEBUG, @@ -845,7 +845,7 @@ int BTS::rcv_rach(uint16_t ra, uint32_t Fn, int16_t qta, bool is_11bit, } if (plen >= 0) { - immediate_assignment_ul_tbf(); + do_rate_ctr_inc(CTR_IMMEDIATE_ASSIGN_UL_TBF); pcu_l1if_tx_agch(immediate_assignment, plen); } @@ -920,7 +920,7 @@ void BTS::snd_dl_ass(gprs_rlcmac_tbf *tbf, bool poll, uint16_t pgroup) tbf->poll_fn, m_bts.alpha, m_bts.gamma, -1, GSM_L1_BURST_TYPE_ACCESS_0); if (plen >= 0) { - immediate_assignment_dl_tbf(); + do_rate_ctr_inc(CTR_IMMEDIATE_ASSIGN_DL_TBF); pcu_l1if_tx_pch(immediate_assignment, plen, pgroup); } @@ -175,6 +175,94 @@ struct gprs_rlcmac_bts { uint32_t app_info_pending; /* Count of MS with active TBF, to which we did not send app_info yet */ }; +enum { + CTR_TBF_DL_ALLOCATED, + CTR_TBF_DL_FREED, + CTR_TBF_DL_ABORTED, + CTR_TBF_UL_ALLOCATED, + CTR_TBF_UL_FREED, + CTR_TBF_UL_ABORTED, + CTR_TBF_REUSED, + CTR_TBF_ALLOC_ALGO_A, + CTR_TBF_ALLOC_ALGO_B, + CTR_TBF_FAILED_EGPRS_ONLY, + CTR_RLC_SENT, + CTR_RLC_RESENT, + CTR_RLC_RESTARTED, + CTR_RLC_STALLED, + CTR_RLC_NACKED, + CTR_RLC_FINAL_BLOCK_RESENT, + CTR_RLC_ASS_TIMEDOUT, + CTR_RLC_ASS_FAILED, + CTR_RLC_ACK_TIMEDOUT, + CTR_RLC_ACK_FAILED, + CTR_RLC_REL_TIMEDOUT, + CTR_RLC_LATE_BLOCK, + CTR_RLC_SENT_DUMMY, + CTR_RLC_SENT_CONTROL, + CTR_RLC_DL_BYTES, + CTR_RLC_DL_PAYLOAD_BYTES, + CTR_RLC_UL_BYTES, + CTR_RLC_UL_PAYLOAD_BYTES, + CTR_DECODE_ERRORS, + CTR_SBA_ALLOCATED, + CTR_SBA_FREED, + CTR_SBA_TIMEDOUT, + CTR_LLC_FRAME_TIMEDOUT, + CTR_LLC_FRAME_DROPPED, + CTR_LLC_FRAME_SCHED, + CTR_LLC_DL_BYTES, + CTR_LLC_UL_BYTES, + CTR_RACH_REQUESTS, + CTR_11BIT_RACH_REQUESTS, + CTR_SPB_UL_FIRST_SEGMENT, + CTR_SPB_UL_SECOND_SEGMENT, + CTR_SPB_DL_FIRST_SEGMENT, + CTR_SPB_DL_SECOND_SEGMENT, + CTR_IMMEDIATE_ASSIGN_UL_TBF, + CTR_IMMEDIATE_ASSIGN_REJ, + CTR_IMMEDIATE_ASSIGN_DL_TBF, + CTR_CHANNEL_REQUEST_DESCRIPTION, + CTR_PKT_UL_ASSIGNMENT, + CTR_PKT_ACCESS_REJ, + CTR_PKT_DL_ASSIGNMENT, + CTR_RLC_RECV_CONTROL, + CTR_PUA_POLL_TIMEDOUT, + CTR_PUA_POLL_FAILED, + CTR_PDA_POLL_TIMEDOUT, + CTR_PDA_POLL_FAILED, + CTR_PUAN_POLL_TIMEDOUT, + CTR_PUAN_POLL_FAILED, + CTR_PDAN_POLL_TIMEDOUT, + CTR_PDAN_POLL_FAILED, + CTR_GPRS_DL_CS1, + CTR_GPRS_DL_CS2, + CTR_GPRS_DL_CS3, + CTR_GPRS_DL_CS4, + CTR_EGPRS_DL_MCS1, + CTR_EGPRS_DL_MCS2, + CTR_EGPRS_DL_MCS3, + CTR_EGPRS_DL_MCS4, + CTR_EGPRS_DL_MCS5, + CTR_EGPRS_DL_MCS6, + CTR_EGPRS_DL_MCS7, + CTR_EGPRS_DL_MCS8, + CTR_EGPRS_DL_MCS9, + CTR_GPRS_UL_CS1, + CTR_GPRS_UL_CS2, + CTR_GPRS_UL_CS3, + CTR_GPRS_UL_CS4, + CTR_EGPRS_UL_MCS1, + CTR_EGPRS_UL_MCS2, + CTR_EGPRS_UL_MCS3, + CTR_EGPRS_UL_MCS4, + CTR_EGPRS_UL_MCS5, + CTR_EGPRS_UL_MCS6, + CTR_EGPRS_UL_MCS7, + CTR_EGPRS_UL_MCS8, + CTR_EGPRS_UL_MCS9, +}; + #ifdef __cplusplus /** * I represent a GSM BTS. I have one or more TRX, I know the current @@ -184,94 +272,6 @@ struct gprs_rlcmac_bts { struct BTS { public: enum { - CTR_TBF_DL_ALLOCATED, - CTR_TBF_DL_FREED, - CTR_TBF_DL_ABORTED, - CTR_TBF_UL_ALLOCATED, - CTR_TBF_UL_FREED, - CTR_TBF_UL_ABORTED, - CTR_TBF_REUSED, - CTR_TBF_ALLOC_ALGO_A, - CTR_TBF_ALLOC_ALGO_B, - CTR_TBF_FAILED_EGPRS_ONLY, - CTR_RLC_SENT, - CTR_RLC_RESENT, - CTR_RLC_RESTARTED, - CTR_RLC_STALLED, - CTR_RLC_NACKED, - CTR_RLC_FINAL_BLOCK_RESENT, - CTR_RLC_ASS_TIMEDOUT, - CTR_RLC_ASS_FAILED, - CTR_RLC_ACK_TIMEDOUT, - CTR_RLC_ACK_FAILED, - CTR_RLC_REL_TIMEDOUT, - CTR_RLC_LATE_BLOCK, - CTR_RLC_SENT_DUMMY, - CTR_RLC_SENT_CONTROL, - CTR_RLC_DL_BYTES, - CTR_RLC_DL_PAYLOAD_BYTES, - CTR_RLC_UL_BYTES, - CTR_RLC_UL_PAYLOAD_BYTES, - CTR_DECODE_ERRORS, - CTR_SBA_ALLOCATED, - CTR_SBA_FREED, - CTR_SBA_TIMEDOUT, - CTR_LLC_FRAME_TIMEDOUT, - CTR_LLC_FRAME_DROPPED, - CTR_LLC_FRAME_SCHED, - CTR_LLC_DL_BYTES, - CTR_LLC_UL_BYTES, - CTR_RACH_REQUESTS, - CTR_11BIT_RACH_REQUESTS, - CTR_SPB_UL_FIRST_SEGMENT, - CTR_SPB_UL_SECOND_SEGMENT, - CTR_SPB_DL_FIRST_SEGMENT, - CTR_SPB_DL_SECOND_SEGMENT, - CTR_IMMEDIATE_ASSIGN_UL_TBF, - CTR_IMMEDIATE_ASSIGN_REJ, - CTR_IMMEDIATE_ASSIGN_DL_TBF, - CTR_CHANNEL_REQUEST_DESCRIPTION, - CTR_PKT_UL_ASSIGNMENT, - CTR_PKT_ACCESS_REJ, - CTR_PKT_DL_ASSIGNMENT, - CTR_RLC_RECV_CONTROL, - CTR_PUA_POLL_TIMEDOUT, - CTR_PUA_POLL_FAILED, - CTR_PDA_POLL_TIMEDOUT, - CTR_PDA_POLL_FAILED, - CTR_PUAN_POLL_TIMEDOUT, - CTR_PUAN_POLL_FAILED, - CTR_PDAN_POLL_TIMEDOUT, - CTR_PDAN_POLL_FAILED, - CTR_GPRS_DL_CS1, - CTR_GPRS_DL_CS2, - CTR_GPRS_DL_CS3, - CTR_GPRS_DL_CS4, - CTR_EGPRS_DL_MCS1, - CTR_EGPRS_DL_MCS2, - CTR_EGPRS_DL_MCS3, - CTR_EGPRS_DL_MCS4, - CTR_EGPRS_DL_MCS5, - CTR_EGPRS_DL_MCS6, - CTR_EGPRS_DL_MCS7, - CTR_EGPRS_DL_MCS8, - CTR_EGPRS_DL_MCS9, - CTR_GPRS_UL_CS1, - CTR_GPRS_UL_CS2, - CTR_GPRS_UL_CS3, - CTR_GPRS_UL_CS4, - CTR_EGPRS_UL_MCS1, - CTR_EGPRS_UL_MCS2, - CTR_EGPRS_UL_MCS3, - CTR_EGPRS_UL_MCS4, - CTR_EGPRS_UL_MCS5, - CTR_EGPRS_UL_MCS6, - CTR_EGPRS_UL_MCS7, - CTR_EGPRS_UL_MCS8, - CTR_EGPRS_UL_MCS9, - }; - - enum { STAT_MS_PRESENT, }; @@ -320,91 +320,12 @@ public: /* * Statistics */ - void tbf_dl_created(); - void tbf_dl_freed(); - void tbf_dl_aborted(); - void tbf_ul_created(); - void tbf_ul_freed(); - void tbf_ul_aborted(); - void tbf_reused(); - void tbf_alloc_algo_a(); - void tbf_alloc_algo_b(); - void tbf_failed_egprs_only(); - void rlc_sent(); - void rlc_resent(); - void rlc_restarted(); - void rlc_stalled(); - void rlc_nacked(); - void rlc_final_block_resent(); - void rlc_ass_timedout(); - void rlc_ass_failed(); - void rlc_ack_timedout(); - void rlc_ack_failed(); - void rlc_rel_timedout(); - void rlc_late_block(); - void rlc_sent_dummy(); - void rlc_sent_control(); void rlc_dl_bytes(int bytes); void rlc_dl_payload_bytes(int bytes); void rlc_ul_bytes(int bytes); void rlc_ul_payload_bytes(int bytes); - void decode_error(); - void sba_allocated(); - void sba_freed(); - void sba_timedout(); - void llc_timedout_frame(); - void llc_dropped_frame(); - void llc_frame_sched(); void llc_dl_bytes(int bytes); void llc_ul_bytes(int bytes); - void rach_frame(); - void rach_frame_11bit(); - void spb_uplink_first_segment(); - void spb_uplink_second_segment(); - void spb_downlink_first_segment(); - void spb_downlink_second_segment(); - void immediate_assignment_ul_tbf(); - void immediate_assignment_reject(); - void immediate_assignment_dl_tbf(); - void channel_request_description(); - void pkt_ul_assignment(); - void pkt_access_reject(); - void pkt_dl_assignemnt(); - void rlc_rcvd_control(); - void pua_poll_timedout(); - void pua_poll_failed(); - void pda_poll_timedout(); - void pda_poll_failed(); - void pkt_ul_ack_nack_poll_timedout(); - void pkt_ul_ack_nack_poll_failed(); - void pkt_dl_ack_nack_poll_timedout(); - void pkt_dl_ack_nack_poll_failed(); - void gprs_dl_cs1(); - void gprs_dl_cs2(); - void gprs_dl_cs3(); - void gprs_dl_cs4(); - void egprs_dl_mcs1(); - void egprs_dl_mcs2(); - void egprs_dl_mcs3(); - void egprs_dl_mcs4(); - void egprs_dl_mcs5(); - void egprs_dl_mcs6(); - void egprs_dl_mcs7(); - void egprs_dl_mcs8(); - void egprs_dl_mcs9(); - void gprs_ul_cs1(); - void gprs_ul_cs2(); - void gprs_ul_cs3(); - void gprs_ul_cs4(); - void egprs_ul_mcs1(); - void egprs_ul_mcs2(); - void egprs_ul_mcs3(); - void egprs_ul_mcs4(); - void egprs_ul_mcs5(); - void egprs_ul_mcs6(); - void egprs_ul_mcs7(); - void egprs_ul_mcs8(); - void egprs_ul_mcs9(); void ms_present(int32_t n); int32_t ms_present_get(); @@ -414,6 +335,7 @@ public: */ struct rate_ctr_group *rate_counters() const; struct osmo_stat_item_group *stat_items() const; + void do_rate_ctr_inc(unsigned int ctr_id); LListHead<gprs_rlcmac_tbf>& ul_tbfs(); LListHead<gprs_rlcmac_tbf>& dl_tbfs(); @@ -483,103 +405,21 @@ inline struct osmo_stat_item_group *BTS::stat_items() const return m_statg; } +inline void BTS::do_rate_ctr_inc(unsigned int ctr_id) { + rate_ctr_inc(&m_ratectrs->ctr[ctr_id]); +} + #define CREATE_COUNT_ADD_INLINE(func_name, ctr_name) \ inline void BTS::func_name(int inc) {\ rate_ctr_add(&m_ratectrs->ctr[ctr_name], inc); \ } -#define CREATE_COUNT_INLINE(func_name, ctr_name) \ - inline void BTS::func_name() {\ - rate_ctr_inc(&m_ratectrs->ctr[ctr_name]); \ - } - -CREATE_COUNT_INLINE(tbf_dl_created, CTR_TBF_DL_ALLOCATED) -CREATE_COUNT_INLINE(tbf_dl_freed, CTR_TBF_DL_FREED) -CREATE_COUNT_INLINE(tbf_dl_aborted, CTR_TBF_DL_ABORTED) -CREATE_COUNT_INLINE(tbf_ul_created, CTR_TBF_UL_ALLOCATED) -CREATE_COUNT_INLINE(tbf_ul_freed, CTR_TBF_UL_FREED) -CREATE_COUNT_INLINE(tbf_ul_aborted, CTR_TBF_UL_ABORTED) -CREATE_COUNT_INLINE(tbf_reused, CTR_TBF_REUSED) -CREATE_COUNT_INLINE(tbf_alloc_algo_a, CTR_TBF_ALLOC_ALGO_A) -CREATE_COUNT_INLINE(tbf_alloc_algo_b, CTR_TBF_ALLOC_ALGO_B) -CREATE_COUNT_INLINE(tbf_failed_egprs_only, CTR_TBF_FAILED_EGPRS_ONLY) -CREATE_COUNT_INLINE(rlc_sent, CTR_RLC_SENT) -CREATE_COUNT_INLINE(rlc_resent, CTR_RLC_RESENT) -CREATE_COUNT_INLINE(rlc_restarted, CTR_RLC_RESTARTED) -CREATE_COUNT_INLINE(rlc_stalled, CTR_RLC_STALLED) -CREATE_COUNT_INLINE(rlc_nacked, CTR_RLC_NACKED) -CREATE_COUNT_INLINE(rlc_final_block_resent, CTR_RLC_FINAL_BLOCK_RESENT); -CREATE_COUNT_INLINE(rlc_ass_timedout, CTR_RLC_ASS_TIMEDOUT); -CREATE_COUNT_INLINE(rlc_ass_failed, CTR_RLC_ASS_FAILED); -CREATE_COUNT_INLINE(rlc_ack_timedout, CTR_RLC_ACK_TIMEDOUT); -CREATE_COUNT_INLINE(rlc_ack_failed, CTR_RLC_ACK_FAILED); -CREATE_COUNT_INLINE(rlc_rel_timedout, CTR_RLC_REL_TIMEDOUT); -CREATE_COUNT_INLINE(rlc_late_block, CTR_RLC_LATE_BLOCK); -CREATE_COUNT_INLINE(rlc_sent_dummy, CTR_RLC_SENT_DUMMY); -CREATE_COUNT_INLINE(rlc_sent_control, CTR_RLC_SENT_CONTROL); CREATE_COUNT_ADD_INLINE(rlc_dl_bytes, CTR_RLC_DL_BYTES); CREATE_COUNT_ADD_INLINE(rlc_dl_payload_bytes, CTR_RLC_DL_PAYLOAD_BYTES); CREATE_COUNT_ADD_INLINE(rlc_ul_bytes, CTR_RLC_UL_BYTES); CREATE_COUNT_ADD_INLINE(rlc_ul_payload_bytes, CTR_RLC_UL_PAYLOAD_BYTES); -CREATE_COUNT_INLINE(decode_error, CTR_DECODE_ERRORS) -CREATE_COUNT_INLINE(sba_allocated, CTR_SBA_ALLOCATED) -CREATE_COUNT_INLINE(sba_freed, CTR_SBA_FREED) -CREATE_COUNT_INLINE(sba_timedout, CTR_SBA_TIMEDOUT) -CREATE_COUNT_INLINE(llc_timedout_frame, CTR_LLC_FRAME_TIMEDOUT); -CREATE_COUNT_INLINE(llc_dropped_frame, CTR_LLC_FRAME_DROPPED); -CREATE_COUNT_INLINE(llc_frame_sched, CTR_LLC_FRAME_SCHED); CREATE_COUNT_ADD_INLINE(llc_dl_bytes, CTR_LLC_DL_BYTES); CREATE_COUNT_ADD_INLINE(llc_ul_bytes, CTR_LLC_UL_BYTES); -CREATE_COUNT_INLINE(rach_frame, CTR_RACH_REQUESTS); -CREATE_COUNT_INLINE(rach_frame_11bit, CTR_11BIT_RACH_REQUESTS); -CREATE_COUNT_INLINE(spb_uplink_first_segment, CTR_SPB_UL_FIRST_SEGMENT); -CREATE_COUNT_INLINE(spb_uplink_second_segment, CTR_SPB_UL_SECOND_SEGMENT); -CREATE_COUNT_INLINE(spb_downlink_first_segment, CTR_SPB_DL_FIRST_SEGMENT); -CREATE_COUNT_INLINE(spb_downlink_second_segment, CTR_SPB_DL_SECOND_SEGMENT); -CREATE_COUNT_INLINE(immediate_assignment_ul_tbf, CTR_IMMEDIATE_ASSIGN_UL_TBF); -CREATE_COUNT_INLINE(immediate_assignment_reject, CTR_IMMEDIATE_ASSIGN_REJ); -CREATE_COUNT_INLINE(immediate_assignment_dl_tbf, CTR_IMMEDIATE_ASSIGN_DL_TBF); -CREATE_COUNT_INLINE(channel_request_description, CTR_CHANNEL_REQUEST_DESCRIPTION); -CREATE_COUNT_INLINE(pkt_ul_assignment, CTR_PKT_UL_ASSIGNMENT); -CREATE_COUNT_INLINE(pkt_access_reject, CTR_PKT_ACCESS_REJ); -CREATE_COUNT_INLINE(pkt_dl_assignemnt, CTR_PKT_DL_ASSIGNMENT); -CREATE_COUNT_INLINE(rlc_rcvd_control, CTR_RLC_RECV_CONTROL); -CREATE_COUNT_INLINE(pua_poll_timedout, CTR_PUA_POLL_TIMEDOUT); -CREATE_COUNT_INLINE(pua_poll_failed, CTR_PUA_POLL_FAILED); -CREATE_COUNT_INLINE(pda_poll_timedout, CTR_PDA_POLL_TIMEDOUT); -CREATE_COUNT_INLINE(pda_poll_failed, CTR_PDA_POLL_FAILED); -CREATE_COUNT_INLINE(pkt_ul_ack_nack_poll_timedout, CTR_PUAN_POLL_TIMEDOUT); -CREATE_COUNT_INLINE(pkt_ul_ack_nack_poll_failed, CTR_PUAN_POLL_FAILED); -CREATE_COUNT_INLINE(pkt_dl_ack_nack_poll_timedout, CTR_PDAN_POLL_TIMEDOUT); -CREATE_COUNT_INLINE(pkt_dl_ack_nack_poll_failed, CTR_PDAN_POLL_FAILED); -CREATE_COUNT_INLINE(gprs_dl_cs1, CTR_GPRS_DL_CS1); -CREATE_COUNT_INLINE(gprs_dl_cs2, CTR_GPRS_DL_CS2); -CREATE_COUNT_INLINE(gprs_dl_cs3, CTR_GPRS_DL_CS3); -CREATE_COUNT_INLINE(gprs_dl_cs4, CTR_GPRS_DL_CS4); -CREATE_COUNT_INLINE(egprs_dl_mcs1, CTR_EGPRS_DL_MCS1); -CREATE_COUNT_INLINE(egprs_dl_mcs2, CTR_EGPRS_DL_MCS2); -CREATE_COUNT_INLINE(egprs_dl_mcs3, CTR_EGPRS_DL_MCS3); -CREATE_COUNT_INLINE(egprs_dl_mcs4, CTR_EGPRS_DL_MCS4); -CREATE_COUNT_INLINE(egprs_dl_mcs5, CTR_EGPRS_DL_MCS5); -CREATE_COUNT_INLINE(egprs_dl_mcs6, CTR_EGPRS_DL_MCS6); -CREATE_COUNT_INLINE(egprs_dl_mcs7, CTR_EGPRS_DL_MCS7); -CREATE_COUNT_INLINE(egprs_dl_mcs8, CTR_EGPRS_DL_MCS8); -CREATE_COUNT_INLINE(egprs_dl_mcs9, CTR_EGPRS_DL_MCS9); -CREATE_COUNT_INLINE(gprs_ul_cs1, CTR_GPRS_UL_CS1); -CREATE_COUNT_INLINE(gprs_ul_cs2, CTR_GPRS_UL_CS2); -CREATE_COUNT_INLINE(gprs_ul_cs3, CTR_GPRS_UL_CS3); -CREATE_COUNT_INLINE(gprs_ul_cs4, CTR_GPRS_UL_CS4); -CREATE_COUNT_INLINE(egprs_ul_mcs1, CTR_EGPRS_UL_MCS1); -CREATE_COUNT_INLINE(egprs_ul_mcs2, CTR_EGPRS_UL_MCS2); -CREATE_COUNT_INLINE(egprs_ul_mcs3, CTR_EGPRS_UL_MCS3); -CREATE_COUNT_INLINE(egprs_ul_mcs4, CTR_EGPRS_UL_MCS4); -CREATE_COUNT_INLINE(egprs_ul_mcs5, CTR_EGPRS_UL_MCS5); -CREATE_COUNT_INLINE(egprs_ul_mcs6, CTR_EGPRS_UL_MCS6); -CREATE_COUNT_INLINE(egprs_ul_mcs7, CTR_EGPRS_UL_MCS7); -CREATE_COUNT_INLINE(egprs_ul_mcs8, CTR_EGPRS_UL_MCS8); -CREATE_COUNT_INLINE(egprs_ul_mcs9, CTR_EGPRS_UL_MCS9); - -#undef CREATE_COUNT_INLINE #define CREATE_STAT_INLINE(func_name, func_name_get, stat_name) \ inline void BTS::func_name(int32_t val) {\ diff --git a/src/gprs_rlcmac_sched.cpp b/src/gprs_rlcmac_sched.cpp index fe6f1595..6a534687 100644 --- a/src/gprs_rlcmac_sched.cpp +++ b/src/gprs_rlcmac_sched.cpp @@ -357,18 +357,18 @@ static inline void tap_n_acc(const struct msgb *msg, const struct gprs_rlcmac_bt switch(cat) { case PCU_GSMTAP_C_DL_CTRL: - bts->bts->rlc_sent_control(); + bts->bts->do_rate_ctr_inc(CTR_RLC_SENT_CONTROL); bts->bts->send_gsmtap(PCU_GSMTAP_C_DL_CTRL, false, trx, ts, GSMTAP_CHANNEL_PACCH, fn, msg->data, msg->len); break; case PCU_GSMTAP_C_DL_DATA_GPRS: - bts->bts->rlc_sent(); + bts->bts->do_rate_ctr_inc(CTR_RLC_SENT); /* FIXME: distinguish between GPRS and EGPRS */ bts->bts->send_gsmtap(PCU_GSMTAP_C_DL_DATA_GPRS, false, trx, ts, GSMTAP_CHANNEL_PDTCH, fn, msg->data, msg->len); break; case PCU_GSMTAP_C_DL_DUMMY: - bts->bts->rlc_sent_dummy(); + bts->bts->do_rate_ctr_inc(CTR_RLC_SENT_DUMMY); bts->bts->send_gsmtap(PCU_GSMTAP_C_DL_DUMMY, false, trx, ts, GSMTAP_CHANNEL_PACCH, fn, msg->data, msg->len); break; diff --git a/src/gprs_rlcmac_ts_alloc.cpp b/src/gprs_rlcmac_ts_alloc.cpp index cf3f9a91..c4fbbadd 100644 --- a/src/gprs_rlcmac_ts_alloc.cpp +++ b/src/gprs_rlcmac_ts_alloc.cpp @@ -423,7 +423,7 @@ int alloc_algorithm_a(struct gprs_rlcmac_bts *bts, GprsMs *ms_, struct gprs_rlcm ms_->set_reserved_slots(trx, 1 << ts, 1 << ts); tbf_->upgrade_to_multislot = 0; - bts->bts->tbf_alloc_algo_a(); + bts->bts->do_rate_ctr_inc(CTR_TBF_ALLOC_ALGO_A); return 0; } @@ -950,7 +950,7 @@ int alloc_algorithm_b(struct gprs_rlcmac_bts *bts, GprsMs *ms_, struct gprs_rlcm else assign_ul_tbf_slots(as_ul_tbf(tbf_), trx, ul_slots, tfi, usf); - bts->bts->tbf_alloc_algo_b(); + bts->bts->do_rate_ctr_inc(CTR_TBF_ALLOC_ALGO_B); return 0; } diff --git a/src/llc.cpp b/src/llc.cpp index 8ef7a532..e2d01c29 100644 --- a/src/llc.cpp +++ b/src/llc.cpp @@ -128,7 +128,7 @@ void gprs_llc_queue::clear(BTS *bts) while ((msg = msgb_dequeue(&m_queue))) { if (bts) - bts->llc_dropped_frame(); + bts->do_rate_ctr_inc(CTR_LLC_FRAME_DROPPED); msgb_free(msg); } diff --git a/src/pdch.cpp b/src/pdch.cpp index 88d5d31a..202f642f 100644 --- a/src/pdch.cpp +++ b/src/pdch.cpp @@ -115,7 +115,7 @@ static void get_meas(struct pcu_l1_meas *meas, static inline void sched_ul_ass_or_rej(BTS *bts, gprs_rlcmac_bts *bts_data, struct gprs_rlcmac_dl_tbf *tbf) { - bts->channel_request_description(); + bts->do_rate_ctr_inc(CTR_CHANNEL_REQUEST_DESCRIPTION); /* This call will register the new TBF with the MS on success */ gprs_rlcmac_ul_tbf *ul_tbf = tbf_alloc_ul(bts_data, tbf->ms(), tbf->trx->trx_no, tbf->tlli()); @@ -715,7 +715,7 @@ int gprs_rlcmac_pdch::rcv_control_block(const uint8_t *data, uint8_t data_len, } LOGP(DRLCMAC, LOGL_DEBUG, "------------------------- RX : Uplink Control Block -------------------------\n"); - bts()->rlc_rcvd_control(); + bts()->do_rate_ctr_inc(CTR_RLC_RECV_CONTROL); switch (ul_control_block->u.MESSAGE_TYPE) { case MT_PACKET_CONTROL_ACK: rcv_control_ack(&ul_control_block->u.Packet_Control_Acknowledgement, fn); @@ -736,7 +736,7 @@ int gprs_rlcmac_pdch::rcv_control_block(const uint8_t *data, uint8_t data_len, /* ignoring it. change the SI to not force sending these? */ break; default: - bts()->decode_error(); + bts()->do_rate_ctr_inc(CTR_DECODE_ERRORS); LOGP(DRLCMAC, LOGL_NOTICE, "RX: [PCU <- BTS] unknown control block(%d) received\n", ul_control_block->u.MESSAGE_TYPE); @@ -753,7 +753,7 @@ int gprs_rlcmac_pdch::rcv_block(uint8_t *data, uint8_t len, uint32_t fn, { GprsCodingScheme cs = GprsCodingScheme::getBySizeUL(len); if (!cs) { - bts()->decode_error(); + bts()->do_rate_ctr_inc(CTR_DECODE_ERRORS); LOGP(DRLCMACUL, LOGL_ERROR, "Dropping data block with invalid" "length: %d)\n", len); return -EINVAL; @@ -770,7 +770,7 @@ int gprs_rlcmac_pdch::rcv_block(uint8_t *data, uint8_t len, uint32_t fn, if (mcs_is_edge(cs)) return rcv_data_block(data, len, fn, meas, cs); - bts()->decode_error(); + bts()->do_rate_ctr_inc(CTR_DECODE_ERRORS); LOGP(DRLCMACUL, LOGL_ERROR, "Unsupported coding scheme %s\n", mcs_name(cs)); return -EINVAL; @@ -809,7 +809,7 @@ int gprs_rlcmac_pdch::rcv_data_block(uint8_t *data, uint8_t data_len, uint32_t f LOGP(DRLCMACUL, LOGL_ERROR, "Got %s RLC block but header parsing has failed\n", mcs_name(cs)); - bts()->decode_error(); + bts()->do_rate_ctr_inc(CTR_DECODE_ERRORS); return rc; } diff --git a/src/rlc.cpp b/src/rlc.cpp index c6d43304..c44d27e7 100644 --- a/src/rlc.cpp +++ b/src/rlc.cpp @@ -159,7 +159,7 @@ void gprs_rlc_dl_window::update(BTS *bts, const struct bitvec *rbb, } else { LOGP(DRLCMACDL, LOGL_DEBUG, "- got NACK for BSN=%d\n", bsn); m_v_b.mark_nacked(bsn); - bts->rlc_nacked(); + bts->do_rate_ctr_inc(CTR_RLC_NACKED); *lost += 1; } } @@ -183,7 +183,7 @@ void gprs_rlc_dl_window::update(BTS *bts, char *show_rbb, uint16_t ssn, } else { LOGP(DRLCMACDL, LOGL_DEBUG, "- got NACK for BSN=%d\n", bsn); m_v_b.mark_nacked(bsn); - bts->rlc_nacked(); + bts->do_rate_ctr_inc(CTR_RLC_NACKED); *lost += 1; } } diff --git a/src/sba.cpp b/src/sba.cpp index 32735e8c..cc58405a 100644 --- a/src/sba.cpp +++ b/src/sba.cpp @@ -86,7 +86,7 @@ int SBAController::alloc( sba->ta = ta; llist_add(&sba->list, &m_sbas); - m_bts.sba_allocated(); + m_bts.do_rate_ctr_inc(CTR_SBA_ALLOCATED); *_trx = trx; *_ts = ts; @@ -132,14 +132,14 @@ int SBAController::timeout(struct gprs_rlcmac_sba *sba) LOGP(DRLCMAC, LOGL_NOTICE, "Poll timeout for SBA (TRX=%u, TS=%u, FN=%u, TA=%u)\n", sba->trx_no, sba->ts_no, sba->fn, sba->ta); - m_bts.sba_timedout(); + m_bts.do_rate_ctr_inc(CTR_SBA_TIMEDOUT); free_sba(sba); return 0; } void SBAController::free_sba(gprs_rlcmac_sba *sba) { - m_bts.sba_freed(); + m_bts.do_rate_ctr_inc(CTR_SBA_FREED); llist_del(&sba->list); talloc_free(sba); } diff --git a/src/tbf.cpp b/src/tbf.cpp index 2693223c..ccf257dc 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -456,9 +456,9 @@ void tbf_free(struct gprs_rlcmac_tbf *tbf) /* update counters */ if (tbf->direction == GPRS_RLCMAC_UL_TBF) { gprs_rlcmac_ul_tbf *ul_tbf = as_ul_tbf(tbf); - tbf->bts->tbf_ul_freed(); + tbf->bts->do_rate_ctr_inc(CTR_TBF_UL_FREED); if (tbf->state_is(GPRS_RLCMAC_FLOW)) - tbf->bts->tbf_ul_aborted(); + tbf->bts->do_rate_ctr_inc(CTR_TBF_UL_ABORTED); rate_ctr_group_free(ul_tbf->m_ul_egprs_ctrs); rate_ctr_group_free(ul_tbf->m_ul_gprs_ctrs); } else { @@ -468,9 +468,9 @@ void tbf_free(struct gprs_rlcmac_tbf *tbf) } else { rate_ctr_group_free(dl_tbf->m_dl_gprs_ctrs); } - tbf->bts->tbf_dl_freed(); + tbf->bts->do_rate_ctr_inc(CTR_TBF_DL_FREED); if (tbf->state_is(GPRS_RLCMAC_FLOW)) - tbf->bts->tbf_dl_aborted(); + tbf->bts->do_rate_ctr_inc(CTR_TBF_DL_ABORTED); } /* Give final measurement report */ @@ -821,11 +821,11 @@ void gprs_rlcmac_tbf::poll_timeout() LOGPTBF(this, LOGL_NOTICE, "Timeout for polling PACKET CONTROL ACK for PACKET UPLINK ACK\n"); rlcmac_diag(); } - bts->rlc_ack_timedout(); - bts->pkt_ul_ack_nack_poll_timedout(); + bts->do_rate_ctr_inc(CTR_RLC_ACK_TIMEDOUT); + bts->do_rate_ctr_inc(CTR_PUAN_POLL_TIMEDOUT); if (state_is(GPRS_RLCMAC_FINISHED)) { if (ul_tbf->n_inc(N3103)) { - bts->pkt_ul_ack_nack_poll_failed(); + bts->do_rate_ctr_inc(CTR_PUAN_POLL_FAILED); TBF_SET_STATE(ul_tbf, GPRS_RLCMAC_RELEASING); T_START(ul_tbf, T3169, 3169, "MAX N3103 reached", false); return; @@ -842,13 +842,13 @@ void gprs_rlcmac_tbf::poll_timeout() state_flags |= (1 << GPRS_RLCMAC_FLAG_TO_UL_ASS); } ul_ass_state = GPRS_RLCMAC_UL_ASS_NONE; - bts->rlc_ass_timedout(); - bts->pua_poll_timedout(); + bts->do_rate_ctr_inc(CTR_RLC_ASS_TIMEDOUT); + bts->do_rate_ctr_inc(CTR_PUA_POLL_TIMEDOUT); if (n_inc(N3105)) { TBF_SET_STATE(this, GPRS_RLCMAC_RELEASING); T_START(this, T3195, 3195, "MAX N3105 reached", true); - bts->rlc_ass_failed(); - bts->pua_poll_failed(); + bts->do_rate_ctr_inc(CTR_RLC_ASS_FAILED); + bts->do_rate_ctr_inc(CTR_PUA_POLL_FAILED); return; } /* reschedule UL assignment */ @@ -861,13 +861,13 @@ void gprs_rlcmac_tbf::poll_timeout() state_flags |= (1 << GPRS_RLCMAC_FLAG_TO_DL_ASS); } dl_ass_state = GPRS_RLCMAC_DL_ASS_NONE; - bts->rlc_ass_timedout(); - bts->pda_poll_timedout(); + bts->do_rate_ctr_inc(CTR_RLC_ASS_TIMEDOUT); + bts->do_rate_ctr_inc(CTR_PDA_POLL_TIMEDOUT); if (n_inc(N3105)) { TBF_SET_STATE(this, GPRS_RLCMAC_RELEASING); T_START(this, T3195, 3195, "MAX N3105 reached", true); - bts->rlc_ass_failed(); - bts->pda_poll_failed(); + bts->do_rate_ctr_inc(CTR_RLC_ASS_FAILED); + bts->do_rate_ctr_inc(CTR_PDA_POLL_FAILED); return; } /* reschedule DL assignment */ @@ -883,17 +883,17 @@ void gprs_rlcmac_tbf::poll_timeout() } if (dl_tbf->state_is(GPRS_RLCMAC_RELEASING)) - bts->rlc_rel_timedout(); + bts->do_rate_ctr_inc(CTR_RLC_REL_TIMEDOUT); else { - bts->rlc_ack_timedout(); - bts->pkt_dl_ack_nack_poll_timedout(); + bts->do_rate_ctr_inc(CTR_RLC_ACK_TIMEDOUT); + bts->do_rate_ctr_inc(CTR_PDAN_POLL_TIMEDOUT); } if (dl_tbf->n_inc(N3105)) { TBF_SET_STATE(dl_tbf, GPRS_RLCMAC_RELEASING); T_START(dl_tbf, T3195, 3195, "MAX N3105 reached", true); - bts->pkt_dl_ack_nack_poll_failed(); - bts->rlc_ack_failed(); + bts->do_rate_ctr_inc(CTR_PDAN_POLL_FAILED); + bts->do_rate_ctr_inc(CTR_RLC_ACK_FAILED); return; } /* resend IMM.ASS on CCCH on timeout */ @@ -984,7 +984,7 @@ struct gprs_rlcmac_ul_tbf *tbf_alloc_ul_tbf(struct gprs_rlcmac_bts *bts, GprsMs if (ms->egprs_ms_class() == 0 && bts->egprs_enabled) { LOGP(DTBF, LOGL_NOTICE, "Not accepting non-EGPRS phone in EGPRS-only mode\n"); - bts->bts->tbf_failed_egprs_only(); + bts->bts->do_rate_ctr_inc(CTR_TBF_FAILED_EGPRS_ONLY); return NULL; } @@ -1026,7 +1026,7 @@ struct gprs_rlcmac_ul_tbf *tbf_alloc_ul_tbf(struct gprs_rlcmac_bts *bts, GprsMs } llist_add(&tbf->list(), &bts->bts->ul_tbfs()); - tbf->bts->tbf_ul_created(); + tbf->bts->do_rate_ctr_inc(CTR_TBF_UL_ALLOCATED); return tbf; } @@ -1057,7 +1057,7 @@ struct gprs_rlcmac_dl_tbf *tbf_alloc_dl_tbf(struct gprs_rlcmac_bts *bts, GprsMs if (ms->egprs_ms_class() == 0 && bts->egprs_enabled) { if (ms->ms_class() > 0) { LOGP(DTBF, LOGL_NOTICE, "Not accepting non-EGPRS phone in EGPRS-only mode\n"); - bts->bts->tbf_failed_egprs_only(); + bts->bts->do_rate_ctr_inc(CTR_TBF_FAILED_EGPRS_ONLY); return NULL; } ms->set_egprs_ms_class(1); @@ -1109,7 +1109,7 @@ struct gprs_rlcmac_dl_tbf *tbf_alloc_dl_tbf(struct gprs_rlcmac_bts *bts, GprsMs } llist_add(&tbf->list(), &bts->bts->dl_tbfs()); - tbf->bts->tbf_dl_created(); + tbf->bts->do_rate_ctr_inc(CTR_TBF_DL_ALLOCATED); tbf->m_last_dl_poll_fn = -1; tbf->m_last_dl_drained_fn = -1; @@ -1276,7 +1276,7 @@ struct msgb *gprs_rlcmac_tbf::create_dl_ass(uint32_t fn, uint8_t ts) goto free_ret; } LOGP(DTBF, LOGL_DEBUG, "------------------------- TX : Packet Downlink Assignment -------------------------\n"); - bts->pkt_dl_assignemnt(); + bts->do_rate_ctr_inc(CTR_PKT_DL_ASSIGNMENT); bitvec_pack(ass_vec, msgb_put(msg, 23)); if (poll_ass_dl) { @@ -1315,7 +1315,7 @@ struct msgb *gprs_rlcmac_tbf::create_packet_access_reject() Encoding::write_packet_access_reject( packet_access_rej, tlli()); - bts->pkt_access_reject(); + bts->do_rate_ctr_inc(CTR_PKT_ACCESS_REJ); bitvec_pack(packet_access_rej, msgb_put(msg, 23)); @@ -1382,7 +1382,7 @@ struct msgb *gprs_rlcmac_tbf::create_ul_ass(uint32_t fn, uint8_t ts) goto free_ret; } LOGP(DTBF, LOGL_DEBUG, "------------------------- TX : Packet Uplink Assignment -------------------------\n"); - bts->pkt_ul_assignment(); + bts->do_rate_ctr_inc(CTR_PKT_UL_ASSIGNMENT); set_polling(new_poll_fn, ts, GPRS_RLCMAC_POLL_UL_ASS); @@ -1422,7 +1422,7 @@ int gprs_rlcmac_tbf::establish_dl_tbf_on_pacch() { struct gprs_rlcmac_dl_tbf *new_tbf = NULL; - bts->tbf_reused(); + bts->do_rate_ctr_inc(CTR_TBF_REUSED); new_tbf = tbf_alloc_dl_tbf(bts->bts_data(), ms(), this->trx->trx_no, false); @@ -1577,7 +1577,7 @@ struct gprs_rlcmac_ul_tbf *handle_tbf_reject(struct gprs_rlcmac_bts *bts, ms->set_tlli(tlli); llist_add(&ul_tbf->list(), &bts->bts->ul_tbfs()); - ul_tbf->bts->tbf_ul_created(); + ul_tbf->bts->do_rate_ctr_inc(CTR_TBF_UL_ALLOCATED); TBF_SET_ASS_ON(ul_tbf, GPRS_RLCMAC_FLAG_PACCH, false); ul_tbf->set_ms(ms); diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp index 591f4608..5197717d 100644 --- a/src/tbf_dl.cpp +++ b/src/tbf_dl.cpp @@ -313,12 +313,12 @@ struct msgb *gprs_rlcmac_dl_tbf::llc_dequeue(bssgp_bvc_ctx *bctx) break; } - bts->llc_timedout_frame(); + bts->do_rate_ctr_inc(CTR_LLC_FRAME_TIMEDOUT); drop_frame: frames++; octets += msg->len; msgb_free(msg); - bts->llc_dropped_frame(); + bts->do_rate_ctr_inc(CTR_LLC_FRAME_DROPPED); continue; } @@ -424,7 +424,7 @@ int gprs_rlcmac_dl_tbf::take_next_bsn(uint32_t fn, LOGPTBFDL(this, LOGL_DEBUG, "Resending BSN %d\n", bsn); /* re-send block with negative aknowlegement */ m_window.m_v_b.mark_unacked(bsn); - bts->rlc_resent(); + bts->do_rate_ctr_inc(CTR_RLC_RESENT); } else if (state_is(GPRS_RLCMAC_FINISHED)) { /* If the TBF is in finished, we already sent all packages at least once. * If any packages could have been sent (because of unacked) it should have @@ -432,7 +432,7 @@ int gprs_rlcmac_dl_tbf::take_next_bsn(uint32_t fn, LOGPTBFDL(this, LOGL_DEBUG, "Restarting at BSN %d, because all blocks have been transmitted.\n", m_window.v_a()); - bts->rlc_restarted(); + bts->do_rate_ctr_inc(CTR_RLC_RESTARTED); if (restart_bsn_cycle()) return take_next_bsn(fn, previous_bsn, may_combine); } else if (dl_window_stalled()) { @@ -441,7 +441,7 @@ int gprs_rlcmac_dl_tbf::take_next_bsn(uint32_t fn, LOGPTBFDL(this, LOGL_NOTICE, "Restarting at BSN %d, because the window is stalled.\n", m_window.v_a()); - bts->rlc_stalled(); + bts->do_rate_ctr_inc(CTR_RLC_STALLED); if (restart_bsn_cycle()) return take_next_bsn(fn, previous_bsn, may_combine); } else if (have_data()) { @@ -459,7 +459,7 @@ int gprs_rlcmac_dl_tbf::take_next_bsn(uint32_t fn, LOGPTBFDL(this, LOGL_DEBUG, "Restarting at BSN %d, because all blocks have been transmitted (FLOW).\n", m_window.v_a()); - bts->rlc_restarted(); + bts->do_rate_ctr_inc(CTR_RLC_RESTARTED); if (restart_bsn_cycle()) return take_next_bsn(fn, previous_bsn, may_combine); } else { @@ -476,8 +476,8 @@ int gprs_rlcmac_dl_tbf::take_next_bsn(uint32_t fn, LOGPTBFDL(this, LOGL_DEBUG, "Nothing else to send, Re-transmit final block!\n"); bsn = m_window.v_s_mod(-1); - bts->rlc_final_block_resent(); - bts->rlc_resent(); + bts->do_rate_ctr_inc(CTR_RLC_FINAL_BLOCK_RESENT); + bts->do_rate_ctr_inc(CTR_RLC_RESENT); } *may_combine = num_data_blocks(m_rlc.block(bsn)->cs_current_trans.headerTypeData()) > 1; @@ -556,7 +556,7 @@ void gprs_rlcmac_dl_tbf::schedule_next_frame() LOGPTBFDL(this, LOGL_DEBUG, "Dequeue next LLC (len=%d)\n", msg->len); m_llc.put_frame(msg->data, msg->len); - bts->llc_frame_sched(); + bts->do_rate_ctr_inc(CTR_LLC_FRAME_SCHED); msgb_free(msg); m_last_dl_drained_fn = -1; } @@ -1360,15 +1360,15 @@ enum egprs_rlcmac_dl_spb gprs_rlcmac_dl_tbf::get_egprs_dl_spb(const int bsn) */ if (block_status_dl == EGPRS_RESEG_FIRST_SEG_SENT) { /* statistics */ - bts->spb_downlink_second_segment(); + bts->do_rate_ctr_inc(CTR_SPB_DL_SECOND_SEGMENT); return EGPRS_RLCMAC_DL_SEC_SEG; } else if ((ht_cs_init == HEADER_EGPRS_DATA_TYPE_1) || (ht_cs_init == HEADER_EGPRS_DATA_TYPE_2)) { - bts->spb_downlink_first_segment(); + bts->do_rate_ctr_inc(CTR_SPB_DL_FIRST_SEGMENT); return EGPRS_RLCMAC_DL_FIRST_SEG; } else if ((cs_init == MCS4) && (cs_current_trans == MCS1)) { - bts->spb_downlink_first_segment(); + bts->do_rate_ctr_inc(CTR_SPB_DL_FIRST_SEGMENT); return EGPRS_RLCMAC_DL_FIRST_SEG; } } @@ -1390,55 +1390,55 @@ void gprs_rlcmac_dl_tbf::update_coding_scheme_counter_dl(enum CodingScheme cs) { switch (cs) { case CS1: - bts->gprs_dl_cs1(); + bts->do_rate_ctr_inc(CTR_GPRS_DL_CS1); rate_ctr_inc(&m_dl_gprs_ctrs->ctr[TBF_CTR_GPRS_DL_CS1]); break; case CS2: - bts->gprs_dl_cs2(); + bts->do_rate_ctr_inc(CTR_GPRS_DL_CS2); rate_ctr_inc(&m_dl_gprs_ctrs->ctr[TBF_CTR_GPRS_DL_CS2]); break; case CS3: - bts->gprs_dl_cs3(); + bts->do_rate_ctr_inc(CTR_GPRS_DL_CS3); rate_ctr_inc(&m_dl_gprs_ctrs->ctr[TBF_CTR_GPRS_DL_CS3]); break; case CS4: - bts->gprs_dl_cs4(); + bts->do_rate_ctr_inc(CTR_GPRS_DL_CS4); rate_ctr_inc(&m_dl_gprs_ctrs->ctr[TBF_CTR_GPRS_DL_CS4]); break; case MCS1: - bts->egprs_dl_mcs1(); + bts->do_rate_ctr_inc(CTR_EGPRS_DL_MCS1); rate_ctr_inc(&m_dl_egprs_ctrs->ctr[TBF_CTR_EGPRS_DL_MCS1]); break; case MCS2: - bts->egprs_dl_mcs2(); + bts->do_rate_ctr_inc(CTR_EGPRS_DL_MCS2); rate_ctr_inc(&m_dl_egprs_ctrs->ctr[TBF_CTR_EGPRS_DL_MCS2]); break; case MCS3: - bts->egprs_dl_mcs3(); + bts->do_rate_ctr_inc(CTR_EGPRS_DL_MCS3); rate_ctr_inc(&m_dl_egprs_ctrs->ctr[TBF_CTR_EGPRS_DL_MCS3]); break; case MCS4: - bts->egprs_dl_mcs4(); + bts->do_rate_ctr_inc(CTR_EGPRS_DL_MCS4); rate_ctr_inc(&m_dl_egprs_ctrs->ctr[TBF_CTR_EGPRS_DL_MCS4]); break; case MCS5: - bts->egprs_dl_mcs5(); + bts->do_rate_ctr_inc(CTR_EGPRS_DL_MCS5); rate_ctr_inc(&m_dl_egprs_ctrs->ctr[TBF_CTR_EGPRS_DL_MCS5]); break; case MCS6: - bts->egprs_dl_mcs6(); + bts->do_rate_ctr_inc(CTR_EGPRS_DL_MCS6); rate_ctr_inc(&m_dl_egprs_ctrs->ctr[TBF_CTR_EGPRS_DL_MCS6]); break; case MCS7: - bts->egprs_dl_mcs7(); + bts->do_rate_ctr_inc(CTR_EGPRS_DL_MCS7); rate_ctr_inc(&m_dl_egprs_ctrs->ctr[TBF_CTR_EGPRS_DL_MCS7]); break; case MCS8: - bts->egprs_dl_mcs8(); + bts->do_rate_ctr_inc(CTR_EGPRS_DL_MCS8); rate_ctr_inc(&m_dl_egprs_ctrs->ctr[TBF_CTR_EGPRS_DL_MCS8]); break; case MCS9: - bts->egprs_dl_mcs9(); + bts->do_rate_ctr_inc(CTR_EGPRS_DL_MCS9); rate_ctr_inc(&m_dl_egprs_ctrs->ctr[TBF_CTR_EGPRS_DL_MCS9]); break; default: diff --git a/src/tbf_ul.cpp b/src/tbf_ul.cpp index 020285e4..90cbf8df 100644 --- a/src/tbf_ul.cpp +++ b/src/tbf_ul.cpp @@ -288,7 +288,7 @@ int gprs_rlcmac_ul_tbf::rcv_data_block_acknowledged( rdbi, rlc->cs, rlc_data, NULL, 0, &new_tlli); if (num_chunks < 0) { - bts->decode_error(); + bts->do_rate_ctr_inc(CTR_DECODE_ERRORS); LOGPTBFUL(this, LOGL_NOTICE, "Failed to decode TLLI of %s UL DATA TFI=%d.\n", mcs_name(rlc->cs), rlc->tfi); @@ -428,7 +428,7 @@ egprs_rlc_ul_reseg_bsn_state gprs_rlcmac_ul_tbf::handle_egprs_ul_second_seg( union split_block_status *spb_status = &block->spb_status; uint8_t *rlc_data = &block->block[0]; - bts->spb_uplink_second_segment(); + bts->do_rate_ctr_inc(CTR_SPB_UL_SECOND_SEGMENT); if (spb_status->block_status_ul & EGPRS_RESEG_FIRST_SEG_RXD) { @@ -461,7 +461,7 @@ egprs_rlc_ul_reseg_bsn_state gprs_rlcmac_ul_tbf::handle_egprs_ul_first_seg( uint8_t *rlc_data = &block->block[0]; union split_block_status *spb_status = &block->spb_status; - bts->spb_uplink_first_segment(); + bts->do_rate_ctr_inc(CTR_SPB_UL_FIRST_SEGMENT); if (spb_status->block_status_ul & EGPRS_RESEG_SECOND_SEG_RXD) { LOGPTBFUL(this, LOGL_DEBUG, @@ -541,55 +541,55 @@ void gprs_rlcmac_ul_tbf::update_coding_scheme_counter_ul(enum CodingScheme cs) { switch (cs) { case CS1: - bts->gprs_ul_cs1(); + bts->do_rate_ctr_inc(CTR_GPRS_UL_CS1); rate_ctr_inc(&m_ul_gprs_ctrs->ctr[TBF_CTR_GPRS_UL_CS1]); break; case CS2: - bts->gprs_ul_cs2(); + bts->do_rate_ctr_inc(CTR_GPRS_UL_CS2); rate_ctr_inc(&m_ul_gprs_ctrs->ctr[TBF_CTR_GPRS_UL_CS2]); break; case CS3: - bts->gprs_ul_cs3(); + bts->do_rate_ctr_inc(CTR_GPRS_UL_CS3); rate_ctr_inc(&m_ul_gprs_ctrs->ctr[TBF_CTR_GPRS_UL_CS3]); break; case CS4: - bts->gprs_ul_cs4(); + bts->do_rate_ctr_inc(CTR_GPRS_UL_CS4); rate_ctr_inc(&m_ul_gprs_ctrs->ctr[TBF_CTR_GPRS_UL_CS4]); break; case MCS1: - bts->egprs_ul_mcs1(); + bts->do_rate_ctr_inc(CTR_EGPRS_UL_MCS1); rate_ctr_inc(&m_ul_egprs_ctrs->ctr[TBF_CTR_EGPRS_UL_MCS1]); break; case MCS2: - bts->egprs_ul_mcs2(); + bts->do_rate_ctr_inc(CTR_EGPRS_UL_MCS2); rate_ctr_inc(&m_ul_egprs_ctrs->ctr[TBF_CTR_EGPRS_UL_MCS2]); break; case MCS3: - bts->egprs_ul_mcs3(); + bts->do_rate_ctr_inc(CTR_EGPRS_UL_MCS3); rate_ctr_inc(&m_ul_egprs_ctrs->ctr[TBF_CTR_EGPRS_UL_MCS3]); break; case MCS4: - bts->egprs_ul_mcs4(); + bts->do_rate_ctr_inc(CTR_EGPRS_UL_MCS4); rate_ctr_inc(&m_ul_egprs_ctrs->ctr[TBF_CTR_EGPRS_UL_MCS4]); break; case MCS5: - bts->egprs_ul_mcs5(); + bts->do_rate_ctr_inc(CTR_EGPRS_UL_MCS5); rate_ctr_inc(&m_ul_egprs_ctrs->ctr[TBF_CTR_EGPRS_UL_MCS5]); break; case MCS6: - bts->egprs_ul_mcs6(); + bts->do_rate_ctr_inc(CTR_EGPRS_UL_MCS6); rate_ctr_inc(&m_ul_egprs_ctrs->ctr[TBF_CTR_EGPRS_UL_MCS6]); break; case MCS7: - bts->egprs_ul_mcs7(); + bts->do_rate_ctr_inc(CTR_EGPRS_UL_MCS7); rate_ctr_inc(&m_ul_egprs_ctrs->ctr[TBF_CTR_EGPRS_UL_MCS7]); break; case MCS8: - bts->egprs_ul_mcs8(); + bts->do_rate_ctr_inc(CTR_EGPRS_UL_MCS8); rate_ctr_inc(&m_ul_egprs_ctrs->ctr[TBF_CTR_EGPRS_UL_MCS8]); break; case MCS9: - bts->egprs_ul_mcs9(); + bts->do_rate_ctr_inc(CTR_EGPRS_UL_MCS9); rate_ctr_inc(&m_ul_egprs_ctrs->ctr[TBF_CTR_EGPRS_UL_MCS9]); break; default: |