diff options
author | Jacob Erlbeck <jerlbeck@sysmocom.de> | 2015-06-19 10:59:58 +0200 |
---|---|---|
committer | Jacob Erlbeck <jerlbeck@sysmocom.de> | 2015-06-29 11:43:17 +0200 |
commit | cb1b494c896243a92a1969bb4c0ee4baddad2423 (patch) | |
tree | b47823e288af93eb03e942a38aa65bcae1fe51bb /src/gprs_ms_storage.cpp | |
parent | 6d86628e5b6d81afae4ca1f24201ee90bfab1c2a (diff) |
tbf: Add BTS::ms_alloc method
Currently the code that creates the MS objects with tbf.cpp is
duplicated.
This commit moves the corresponding code into a new method. Since
there is no TLLI available there, the GprsMsStorage::create_ms method
has been refactored into two variants: one with TLLI/direction and
one without.
Sponsored-by: On-Waves ehf
Diffstat (limited to 'src/gprs_ms_storage.cpp')
-rw-r--r-- | src/gprs_ms_storage.cpp | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/gprs_ms_storage.cpp b/src/gprs_ms_storage.cpp index 1f124a5d..515ed753 100644 --- a/src/gprs_ms_storage.cpp +++ b/src/gprs_ms_storage.cpp @@ -80,6 +80,18 @@ GprsMs *GprsMsStorage::get_ms(uint32_t tlli, uint32_t old_tlli, const char *imsi return NULL; } +GprsMs *GprsMsStorage::create_ms() +{ + GprsMs *ms; + + ms = new GprsMs(m_bts, 0); + + ms->set_callback(this); + llist_add(&ms->list(), &m_list); + + return ms; +} + GprsMs *GprsMsStorage::create_ms(uint32_t tlli, enum gprs_rlcmac_tbf_direction dir) { GprsMs *ms = get_ms(tlli); @@ -87,15 +99,12 @@ GprsMs *GprsMsStorage::create_ms(uint32_t tlli, enum gprs_rlcmac_tbf_direction d if (ms) return ms; - ms = new GprsMs(m_bts, 0); + ms = create_ms(); if (dir == GPRS_RLCMAC_UL_TBF) ms->set_tlli(tlli); else ms->confirm_tlli(tlli); - ms->set_callback(this); - llist_add(&ms->list(), &m_list); - return ms; } |