forked from cellular-infrastructure/osmo-pcu
ms: Add back pointer to BTS
Since more functionality will be moved to the GprsMs class, a pointer to the current BTS object is added to allow access to configuration data and other methods. Sponsored-by: On-Waves ehf
This commit is contained in:
parent
befc760f86
commit
17214bb06d
|
@ -100,6 +100,7 @@ BTS::BTS()
|
|||
: m_cur_fn(0)
|
||||
, m_pollController(*this)
|
||||
, m_sba(*this)
|
||||
, m_ms_store(this)
|
||||
{
|
||||
memset(&m_bts, 0, sizeof(m_bts));
|
||||
INIT_LLIST_HEAD(&m_bts.ul_tbfs);
|
||||
|
|
|
@ -64,7 +64,8 @@ void GprsMs::timeout(void *priv_)
|
|||
}
|
||||
}
|
||||
|
||||
GprsMs::GprsMs(uint32_t tlli) :
|
||||
GprsMs::GprsMs(BTS *bts, uint32_t tlli) :
|
||||
m_bts(bts),
|
||||
m_cb(&gprs_default_cb),
|
||||
m_ul_tbf(NULL),
|
||||
m_dl_tbf(NULL),
|
||||
|
@ -101,7 +102,7 @@ GprsMs::~GprsMs()
|
|||
m_dl_tbf->set_ms(NULL);
|
||||
m_dl_tbf = NULL;
|
||||
}
|
||||
m_llc_queue.clear(NULL);
|
||||
m_llc_queue.clear(m_bts);
|
||||
}
|
||||
|
||||
void* GprsMs::operator new(size_t size)
|
||||
|
|
|
@ -34,6 +34,8 @@ extern "C" {
|
|||
#include <stdint.h>
|
||||
#include <stddef.h>
|
||||
|
||||
struct BTS;
|
||||
|
||||
class GprsMs {
|
||||
public:
|
||||
struct Callback {
|
||||
|
@ -50,7 +52,7 @@ public:
|
|||
GprsMs * const m_ms;
|
||||
};
|
||||
|
||||
GprsMs(uint32_t tlli);
|
||||
GprsMs(BTS *bts, uint32_t tlli);
|
||||
~GprsMs();
|
||||
|
||||
void set_callback(Callback *cb) {m_cb = cb;}
|
||||
|
@ -100,6 +102,7 @@ protected:
|
|||
void stop_timer();
|
||||
|
||||
private:
|
||||
BTS *m_bts;
|
||||
Callback * m_cb;
|
||||
gprs_rlcmac_ul_tbf *m_ul_tbf;
|
||||
gprs_rlcmac_dl_tbf *m_dl_tbf;
|
||||
|
|
|
@ -24,7 +24,8 @@
|
|||
#include "tbf.h"
|
||||
#include "gprs_debug.h"
|
||||
|
||||
GprsMsStorage::GprsMsStorage()
|
||||
GprsMsStorage::GprsMsStorage(BTS *bts) :
|
||||
m_bts(bts)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -86,7 +87,7 @@ GprsMs *GprsMsStorage::create_ms(uint32_t tlli, enum gprs_rlcmac_tbf_direction d
|
|||
if (ms)
|
||||
return ms;
|
||||
|
||||
ms = new GprsMs(0);
|
||||
ms = new GprsMs(m_bts, 0);
|
||||
|
||||
if (dir == GPRS_RLCMAC_UL_TBF)
|
||||
ms->set_tlli(tlli);
|
||||
|
|
|
@ -26,9 +26,11 @@
|
|||
#include <stdint.h>
|
||||
#include <stddef.h>
|
||||
|
||||
struct BTS;
|
||||
|
||||
class GprsMsStorage : public GprsMs::Callback {
|
||||
public:
|
||||
GprsMsStorage();
|
||||
GprsMsStorage(BTS *bts);
|
||||
~GprsMsStorage();
|
||||
|
||||
virtual void ms_idle(class GprsMs *);
|
||||
|
@ -38,5 +40,6 @@ public:
|
|||
GprsMs *create_ms(uint32_t tlli, enum gprs_rlcmac_tbf_direction dir);
|
||||
|
||||
private:
|
||||
BTS *m_bts;
|
||||
LListHead<GprsMs> m_list;
|
||||
};
|
||||
|
|
|
@ -50,7 +50,7 @@ static void test_ms_state()
|
|||
|
||||
printf("=== start %s ===\n", __func__);
|
||||
|
||||
ms = new GprsMs(tlli);
|
||||
ms = new GprsMs(NULL, tlli);
|
||||
OSMO_ASSERT(ms->is_idle());
|
||||
|
||||
dl_tbf = talloc_zero(tall_pcu_ctx, struct gprs_rlcmac_dl_tbf);
|
||||
|
@ -106,7 +106,7 @@ static void test_ms_callback()
|
|||
|
||||
printf("=== start %s ===\n", __func__);
|
||||
|
||||
ms = new GprsMs(tlli);
|
||||
ms = new GprsMs(NULL, tlli);
|
||||
ms->set_callback(&cb);
|
||||
|
||||
OSMO_ASSERT(ms->is_idle());
|
||||
|
@ -175,7 +175,7 @@ static void test_ms_replace_tbf()
|
|||
|
||||
printf("=== start %s ===\n", __func__);
|
||||
|
||||
ms = new GprsMs(tlli);
|
||||
ms = new GprsMs(NULL, tlli);
|
||||
ms->set_callback(&cb);
|
||||
|
||||
OSMO_ASSERT(ms->is_idle());
|
||||
|
@ -242,7 +242,7 @@ static void test_ms_change_tlli()
|
|||
|
||||
printf("=== start %s ===\n", __func__);
|
||||
|
||||
ms = new GprsMs(start_tlli);
|
||||
ms = new GprsMs(NULL, start_tlli);
|
||||
|
||||
OSMO_ASSERT(ms->is_idle());
|
||||
|
||||
|
@ -334,7 +334,7 @@ static void test_ms_storage()
|
|||
|
||||
gprs_rlcmac_ul_tbf *ul_tbf;
|
||||
GprsMs *ms, *ms_tmp;
|
||||
GprsMsStorage store;
|
||||
GprsMsStorage store(NULL);
|
||||
|
||||
printf("=== start %s ===\n", __func__);
|
||||
|
||||
|
@ -423,7 +423,7 @@ static void test_ms_timeout()
|
|||
|
||||
printf("=== start %s ===\n", __func__);
|
||||
|
||||
ms = new GprsMs(tlli);
|
||||
ms = new GprsMs(NULL, tlli);
|
||||
ms->set_callback(&cb);
|
||||
ms->set_timeout(1);
|
||||
|
||||
|
|
Loading…
Reference in New Issue