diff options
author | Philipp Maier <pmaier@sysmocom.de> | 2016-12-02 19:04:34 +0100 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2017-05-25 14:04:08 +0200 |
commit | f8aeb2cccb767c8823e1c851efd8de86a226033e (patch) | |
tree | ce1e791393a0bbf7c66c7519d25f4dd40832c33a /openbsc/src/libbsc/abis_rsl.c | |
parent | f14cb3535cf469632b5da63f35b31aa79fd0c5c3 (diff) |
pcu_sock: Forward imm.ass PCU originated messages
The PCU sends imm.ass messages in response to a rach request. Those
messages need to be forwarded to RSL in order to get them send. This
commit introduces the required functionality for that
Change-Id: Ice099c4ed7008200ed179e581aba1899c6c29455
Diffstat (limited to 'openbsc/src/libbsc/abis_rsl.c')
-rw-r--r-- | openbsc/src/libbsc/abis_rsl.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/openbsc/src/libbsc/abis_rsl.c b/openbsc/src/libbsc/abis_rsl.c index 62c12a844..d750df449 100644 --- a/openbsc/src/libbsc/abis_rsl.c +++ b/openbsc/src/libbsc/abis_rsl.c @@ -1993,6 +1993,7 @@ static int abis_rsl_rx_cchan(struct msgb *msg) struct e1inp_sign_link *sign_link = msg->dst; struct abis_rsl_dchan_hdr *rslh = msgb_l2(msg); int rc = 0; + uint32_t tlli; msg->lchan = lchan_lookup(sign_link->trx, rslh->chan_nr, "Abis RSL rx CCHAN: "); @@ -2013,6 +2014,22 @@ static int abis_rsl_rx_cchan(struct msgb *msg) LOGP(DRSL, LOGL_NOTICE, "Unimplemented Abis RSL TRX message " "type 0x%02x\n", rslh->c.msg_type); break; + case 0x10: /* Ericsson specific: Immediate Assign Sent */ + /* FIXME: Replace the messy message parsing below + * with proper TV parser */ + LOGP(DRSL, LOGL_INFO, "IMM.ass sent\n"); + if(msg->len < 8) + LOGP(DRSL, LOGL_ERROR, "short IMM.ass sent message!\n"); + else if(msg->data[4] != 0xf1) + LOGP(DRSL, LOGL_ERROR, "unsupported IMM.ass message format! (please fix)\n"); + else { + tlli = msg->data[8]; + tlli |= msg->data[7] << 8; + tlli |= msg->data[6] << 16; + tlli |= msg->data[5] << 24; + pcu_tx_imm_ass_sent(sign_link->trx->bts, tlli); + } + break; default: LOGP(DRSL, LOGL_NOTICE, "Unknown Abis RSL TRX message type " "0x%02x\n", rslh->c.msg_type); |