diff options
author | Jacob Erlbeck <jerlbeck@sysmocom.de> | 2016-02-01 19:53:09 +0100 |
---|---|---|
committer | Jacob Erlbeck <jerlbeck@sysmocom.de> | 2016-02-02 17:06:39 +0100 |
commit | 0af43497702754d9ea8ebcb7aea979d12209fa71 (patch) | |
tree | 53372e37923f1b2afa3ddf0d21827737ce36b48f | |
parent | e87b3e4cf1cc2f5a29976a1c38c7d26a1d64babd (diff) |
FIXUP pacch slots function
Ticket: OW#????
Sponsored-by: On-Waves ehf
-rw-r--r-- | src/gprs_ms.cpp | 9 | ||||
-rw-r--r-- | src/pcu_vty_functions.cpp | 2 |
2 files changed, 7 insertions, 4 deletions
diff --git a/src/gprs_ms.cpp b/src/gprs_ms.cpp index 9c8b62a6..f522586b 100644 --- a/src/gprs_ms.cpp +++ b/src/gprs_ms.cpp @@ -767,13 +767,16 @@ uint8_t GprsMs::current_pacch_slots() const { uint8_t slots = 0; - if (!m_dl_tbf && !m_ul_tbf) + bool is_dl_active = m_dl_tbf && m_dl_tbf->is_tfi_assigned(); + bool is_ul_active = m_ul_tbf && m_ul_tbf->is_tfi_assigned(); + + if (!is_dl_active && !is_ul_active) return 0; /* see TS 44.060, 8.1.1.2.2 */ - if (m_dl_tbf && !m_ul_tbf) + if (is_dl_active && !is_ul_active) slots = m_dl_tbf->dl_slots(); - else if (!m_dl_tbf && m_ul_tbf) + else if (!is_dl_active && is_ul_active) slots = m_ul_tbf->ul_slots(); else slots = m_ul_tbf->ul_slots() & m_dl_tbf->dl_slots(); diff --git a/src/pcu_vty_functions.cpp b/src/pcu_vty_functions.cpp index 9ce78808..93270d18 100644 --- a/src/pcu_vty_functions.cpp +++ b/src/pcu_vty_functions.cpp @@ -133,7 +133,7 @@ static int show_ms(struct vty *vty, GprsMs *ms) vty_out(vty, " PACCH: "); slots = ms->current_pacch_slots(); for (int i = 0; i < 8; i++) - if (slots && (1 << i)) + if (slots & (1 << i)) vty_out(vty, "%d ", i); vty_out(vty, "%s", VTY_NEWLINE); vty_out(vty, " LLC queue length: %d%s", ms->llc_queue()->size(), |