diff options
-rw-r--r-- | src/tbf.cpp | 21 | ||||
-rw-r--r-- | src/tbf.h | 5 | ||||
-rw-r--r-- | tests/tbf/TbfTest.err | 8 |
3 files changed, 22 insertions, 12 deletions
diff --git a/src/tbf.cpp b/src/tbf.cpp index 05b61404..6f4f15c7 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -827,14 +827,19 @@ int gprs_rlcmac_tbf::extract_tlli(const uint8_t *data, const size_t len) const char *tbf_name(gprs_rlcmac_tbf *tbf) { - static char buf[60]; - snprintf(buf, sizeof(buf), "TBF(TFI=%d TLLI=0x%08x DIR=%s STATE=%s)", - tbf->m_tfi, tbf->m_tlli, - tbf->direction == GPRS_RLCMAC_UL_TBF ? "UL" : "DL", - tbf->state_name() - ); - buf[sizeof(buf) - 1] = '\0'; - return buf; + return tbf->name(); +} + +const char *gprs_rlcmac_tbf::name() const +{ + snprintf(m_name_buf, sizeof(m_name_buf) - 1, + "TBF(TFI=%d TLLI=0x%08x DIR=%s STATE=%s)", + m_tfi, m_tlli, + direction == GPRS_RLCMAC_UL_TBF ? "UL" : "DL", + state_name() + ); + m_name_buf[sizeof(m_name_buf) - 1] = '\0'; + return m_name_buf; } void gprs_rlcmac_tbf::rotate_in_list() @@ -117,6 +117,8 @@ struct gprs_rlcmac_tbf { void set_state(enum gprs_rlcmac_tbf_state new_state); const char *state_name() const; + const char *name() const; + struct msgb *create_dl_ass(uint32_t fn); struct msgb *create_ul_ass(uint32_t fn); @@ -226,6 +228,9 @@ protected: int extract_tlli(const uint8_t *data, const size_t len); static const char *tbf_state_name[6]; + +private: + mutable char m_name_buf[60]; }; diff --git a/tests/tbf/TbfTest.err b/tests/tbf/TbfTest.err index ca522ecb..39d6807e 100644 --- a/tests/tbf/TbfTest.err +++ b/tests/tbf/TbfTest.err @@ -72,12 +72,12 @@ Slot Allocation (Algorithm A) for class 45 - Assign downlink TS=4 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=WAIT RELEASE) Trigger dowlink assignment on PACCH, because another LLC PDU has arrived in between Send dowlink assignment on PACCH, because TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=WAIT RELEASE) exists -TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=WAIT RELEASE) m_new_tbf is already assigned to TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=WAIT RELEASE), overwriting the old value with TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=WAIT RELEASE) +TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=WAIT RELEASE) m_new_tbf is already assigned to TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=WAIT RELEASE), overwriting the old value with TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL) TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=ASSIGN) starting timer 0. DL packet loss of IMSI= / TLLI=0x00000000: 0% TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=WAIT RELEASE) free -TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=WAIT RELEASE) New TBF TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=WAIT RELEASE) still exists, detaching +TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=WAIT RELEASE) New TBF TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=ASSIGN) still exists, detaching ********** TBF ends here ********** TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=ASSIGN) free TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=ASSIGN) stopping timer 0. @@ -139,12 +139,12 @@ Slot Allocation (Algorithm A) for class 45 - Assign downlink TS=4 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=WAIT RELEASE) Trigger dowlink assignment on PACCH, because another LLC PDU has arrived in between Send dowlink assignment on PACCH, because TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=WAIT RELEASE) exists -TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=WAIT RELEASE) m_new_tbf is already assigned to TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=WAIT RELEASE), overwriting the old value with TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=WAIT RELEASE) +TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=WAIT RELEASE) m_new_tbf is already assigned to TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=WAIT RELEASE), overwriting the old value with TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL) TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=ASSIGN) starting timer 0. TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=ASSIGN) free TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=ASSIGN) stopping timer 0. -TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=ASSIGN) Old TBF TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=ASSIGN) still exists, detaching +TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=ASSIGN) Old TBF TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=WAIT RELEASE) still exists, detaching ********** TBF ends here ********** DL packet loss of IMSI= / TLLI=0x00000000: 0% TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=WAIT RELEASE) free |