aboutsummaryrefslogtreecommitdiffstats
path: root/src/osmo-bsc/abis_rsl.c
diff options
context:
space:
mode:
authorNeels Hofmeyr <neels@hofmeyr.de>2020-05-29 03:53:59 +0200
committerNeels Hofmeyr <neels@hofmeyr.de>2020-06-16 14:56:57 +0200
commita87646cd8449a0658d1f6af681aa3773a587ca6b (patch)
tree4f41b6ee5085c54d65d009e8eb8ec683088f171d /src/osmo-bsc/abis_rsl.c
parent2c61245935ed997ad64a9a50a5b76e9a026e2a28 (diff)
use osmo_mobile_identity API everywhere
Diffstat (limited to 'src/osmo-bsc/abis_rsl.c')
-rw-r--r--src/osmo-bsc/abis_rsl.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/src/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c
index 705e75904..2fb1a22ef 100644
--- a/src/osmo-bsc/abis_rsl.c
+++ b/src/osmo-bsc/abis_rsl.c
@@ -664,18 +664,29 @@ int rsl_tx_rf_chan_release(struct gsm_lchan *lchan)
return abis_rsl_sendmsg(msg);
}
-int rsl_paging_cmd(struct gsm_bts *bts, uint8_t paging_group, uint8_t len,
- uint8_t *ms_ident, uint8_t chan_needed, bool is_gprs)
+int rsl_paging_cmd(struct gsm_bts *bts, uint8_t paging_group,
+ const struct osmo_mobile_identity *mi,
+ uint8_t chan_needed, bool is_gprs)
{
struct abis_rsl_dchan_hdr *dh;
struct msgb *msg = rsl_msgb_alloc();
+ uint8_t *l;
+ int rc;
dh = (struct abis_rsl_dchan_hdr *) msgb_put(msg, sizeof(*dh));
init_dchan_hdr(dh, RSL_MT_PAGING_CMD);
dh->chan_nr = RSL_CHAN_PCH_AGCH;
msgb_tv_put(msg, RSL_IE_PAGING_GROUP, paging_group);
- msgb_tlv_put(msg, RSL_IE_MS_IDENTITY, len-2, ms_ident+2);
+
+ l = msgb_tl_put(msg, RSL_IE_MS_IDENTITY);
+ rc = osmo_mobile_identity_encode_msgb(msg, mi, false);
+ if (rc < 0) {
+ msgb_free(msg);
+ return -EINVAL;
+ }
+ *l = rc;
+
msgb_tv_put(msg, RSL_IE_CHAN_NEEDED, chan_needed);
/* Ericsson wants to have this IE in case a paging message