diff options
author | Harald Welte <laforge@gnumonks.org> | 2009-08-10 09:51:40 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2009-08-10 09:51:40 +0200 |
commit | 67fa91bf427a3ef7a835561abc7f40b291ce843f (patch) | |
tree | 363687d1cc94e49ffe38ae3ae18257f806d3354a /openbsc/src/abis_rsl.c | |
parent | d5d1cef7c26a830c056b5f6b1611497252ec521f (diff) |
Add function to generate siemens-specific MRPCI RSL message
MRPCI (MS RF Power Indicator) informs the BTS about the power
capabilities of the MS.
Diffstat (limited to 'openbsc/src/abis_rsl.c')
-rw-r--r-- | openbsc/src/abis_rsl.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/openbsc/src/abis_rsl.c b/openbsc/src/abis_rsl.c index 33da2ecdb..1ef0b84c8 100644 --- a/openbsc/src/abis_rsl.c +++ b/openbsc/src/abis_rsl.c @@ -105,6 +105,7 @@ static const struct tlv_definition rsl_att_tlvdef = { [RSL_IE_RTD] = { TLV_TYPE_TV }, [RSL_IE_TFO_STATUS] = { TLV_TYPE_TV }, [RSL_IE_LLP_APDU] = { TLV_TYPE_TLV }, + [RSL_IE_SIEMENS_MRPCI] = { TLV_TYPE_TV }, [RSL_IE_IPAC_PROXY_UDP] = { TLV_TYPE_FIXED, 2 }, [RSL_IE_IPAC_BSCMPL_TOUT] = { TLV_TYPE_TV }, [RSL_IE_IPAC_REMOTE_IP] = { TLV_TYPE_FIXED, 4 }, @@ -743,6 +744,21 @@ int rsl_imm_assign_cmd(struct gsm_bts *bts, u_int8_t len, u_int8_t *val) return abis_rsl_sendmsg(msg); } +/* Send Siemens specific MS RF Power Capability Indication */ +int rsl_siemens_mrpci(struct gsm_lchan *lchan, u_int8_t mrpci) +{ + struct msgb *msg = rsl_msgb_alloc(); + struct abis_rsl_dchan_hdr *dh; + + dh = (struct abis_rsl_dchan_hdr *) msgb_put(msg, sizeof(*dh)); + init_dchan_hdr(dh, RSL_MT_SIEMENS_MRPCI); + dh->chan_nr = lchan2chan_nr(lchan); + msgb_tv_put(msg, RSL_IE_SIEMENS_MRPCI, mrpci); + + return abis_rsl_sendmsg(msg); +} + + /* Send "DATA REQUEST" message with given L3 Info payload */ /* Chapter 8.3.1 */ int rsl_data_request(struct msgb *msg, u_int8_t link_id) |