aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJacob Erlbeck <jerlbeck@sysmocom.de>2016-02-01 19:53:09 +0100
committerJacob Erlbeck <jerlbeck@sysmocom.de>2016-02-02 17:06:39 +0100
commit0af43497702754d9ea8ebcb7aea979d12209fa71 (patch)
tree53372e37923f1b2afa3ddf0d21827737ce36b48f
parente87b3e4cf1cc2f5a29976a1c38c7d26a1d64babd (diff)
FIXUP pacch slots function
Ticket: OW#???? Sponsored-by: On-Waves ehf
-rw-r--r--src/gprs_ms.cpp9
-rw-r--r--src/pcu_vty_functions.cpp2
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(),