diff options
author | Pau Espin Pedrol <pespin@sysmocom.de> | 2019-12-23 13:19:25 +0100 |
---|---|---|
committer | laforge <laforge@osmocom.org> | 2020-01-01 16:10:15 +0000 |
commit | fbfab297eec45b79adf40985380c91d70de0abe6 (patch) | |
tree | ff0f9a9f8539235a4f1db3af6d2952ffcb39fde6 | |
parent | db12f254ce466dc66411c5be43664d06e8dc673d (diff) |
Split identity_lv param into mi+mi_len
It's not really needed to have those together in some function calls,
and makes it more difficult to follow the code. Furthermore, new callers
not having content already aligned (len+value) will be using these
functions in forthcoming commits.
Change-Id: Ifb9d3997bfb74b35366c3d1bc51ce458f19abf16
-rw-r--r-- | src/bts.cpp | 7 | ||||
-rw-r--r-- | src/bts.h | 2 | ||||
-rw-r--r-- | src/pcu_l1_if.cpp | 4 | ||||
-rw-r--r-- | src/pdch.cpp | 5 | ||||
-rw-r--r-- | src/pdch.h | 2 |
5 files changed, 11 insertions, 9 deletions
diff --git a/src/bts.cpp b/src/bts.cpp index c8b63750..71a2f06d 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -38,6 +38,7 @@ extern "C" { #include <osmocom/core/stats.h> #include <osmocom/gsm/protocol/gsm_04_08.h> #include <osmocom/gsm/gsm_utils.h> + #include <osmocom/gsm/gsm48.h> #include <osmocom/core/gsmtap_util.h> #include <osmocom/core/application.h> #include <osmocom/core/bitvec.h> @@ -354,7 +355,7 @@ void BTS::set_current_block_frame_number(int fn, unsigned max_delay) m_pollController.expireTimedout(fn, max_delay); } -int BTS::add_paging(uint8_t chan_needed, uint8_t *identity_lv) +int BTS::add_paging(uint8_t chan_needed, const uint8_t *mi, uint8_t mi_len) { uint8_t l, trx, ts, any_tbf = 0; struct gprs_rlcmac_tbf *tbf; @@ -370,7 +371,7 @@ int BTS::add_paging(uint8_t chan_needed, uint8_t *identity_lv) LOGP(DRLCMAC, LOGL_INFO, "Add RR paging: chan-needed=%d MI=%s\n", - chan_needed, osmo_hexdump(identity_lv + 1, identity_lv[0])); + chan_needed, osmo_mi_name(mi, mi_len)); /* collect slots to page * Mark slots for every TBF, but only mark one of it. @@ -414,7 +415,7 @@ int BTS::add_paging(uint8_t chan_needed, uint8_t *identity_lv) for (ts = 0; ts < 8; ts++) { if ((slot_mask[trx] & (1 << ts))) { /* schedule */ - if (!m_bts.trx[trx].pdch[ts].add_paging(chan_needed, identity_lv)) + if (!m_bts.trx[trx].pdch[ts].add_paging(chan_needed, mi, mi_len)) return -ENOMEM; LOGP(DRLCMAC, LOGL_INFO, "Paging on PACCH of TRX=%d TS=%d\n", trx, ts); @@ -290,7 +290,7 @@ public: int current_frame_number() const; /** add paging to paging queue(s) */ - int add_paging(uint8_t chan_needed, uint8_t *identity_lv); + int add_paging(uint8_t chan_needed, const uint8_t *mi, uint8_t mi_len); gprs_rlcmac_dl_tbf *dl_tbf_by_poll_fn(uint32_t fn, uint8_t trx, uint8_t ts); gprs_rlcmac_ul_tbf *ul_tbf_by_poll_fn(uint32_t fn, uint8_t trx, uint8_t ts); diff --git a/src/pcu_l1_if.cpp b/src/pcu_l1_if.cpp index 98e697d8..bac0e56a 100644 --- a/src/pcu_l1_if.cpp +++ b/src/pcu_l1_if.cpp @@ -644,8 +644,8 @@ static int pcu_rx_pag_req(struct gsm_pcu_if_pag_req *pag_req) return -EINVAL; } - return BTS::main_bts()->add_paging(pag_req->chan_needed, - pag_req->identity_lv); + return BTS::main_bts()->add_paging(pag_req->chan_needed, &pag_req->identity_lv[1], + pag_req->identity_lv[0]); } static int pcu_rx_susp_req(struct gsm_pcu_if_susp_req *susp_req) diff --git a/src/pdch.cpp b/src/pdch.cpp index da221f48..e15af2c4 100644 --- a/src/pdch.cpp +++ b/src/pdch.cpp @@ -251,14 +251,15 @@ continue_next: return msg; } -bool gprs_rlcmac_pdch::add_paging(uint8_t chan_needed, uint8_t *identity_lv) +bool gprs_rlcmac_pdch::add_paging(uint8_t chan_needed, const uint8_t *mi, uint8_t mi_len) { struct gprs_rlcmac_paging *pag = talloc_zero(tall_pcu_ctx, struct gprs_rlcmac_paging); if (!pag) return false; pag->chan_needed = chan_needed; - memcpy(pag->identity_lv, identity_lv, identity_lv[0] + 1); + pag->identity_lv[0] = mi_len; + memcpy(&pag->identity_lv[1], mi, mi_len); llist_add(&pag->list, &paging_list); @@ -48,7 +48,7 @@ struct gprs_rlcmac_pdch { struct gprs_rlcmac_paging *dequeue_paging(); struct msgb *packet_paging_request(); - bool add_paging(uint8_t chan_needed, uint8_t *identity_lv); + bool add_paging(uint8_t chan_needed, const uint8_t *mi, uint8_t mi_len); void free_resources(); |