diff options
author | Holger Hans Peter Freyther <zecke@selfish.org> | 2009-11-18 19:30:24 +0100 |
---|---|---|
committer | Holger Hans Peter Freyther <zecke@selfish.org> | 2009-11-19 09:40:03 +0100 |
commit | 25b1e25dd400dda565c59a05c9abcbf08c162080 (patch) | |
tree | 60e568861ce4b84ddef15a51e09baab6bc695a24 /openbsc/src/gsm_04_08_utils.c | |
parent | 231163d3658d0c48d3e3dec786735244e66b8b7e (diff) |
[gsm48] Send the IPA CRCX after the chan modify ack
Change the CRCX after the channel has been modified.
Diffstat (limited to 'openbsc/src/gsm_04_08_utils.c')
-rw-r--r-- | openbsc/src/gsm_04_08_utils.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/openbsc/src/gsm_04_08_utils.c b/openbsc/src/gsm_04_08_utils.c index b8fe43069..1a0af3735 100644 --- a/openbsc/src/gsm_04_08_utils.c +++ b/openbsc/src/gsm_04_08_utils.c @@ -599,16 +599,12 @@ int gsm48_lchan_modify(struct gsm_lchan *lchan, u_int8_t lchan_mode, if (rc < 0) return rc; - /* FIXME: we not only need to do this after mode modify, but - * also after channel activation */ - if (is_ipaccess_bts(lchan->ts->trx->bts) && lchan_mode != GSM48_CMODE_SIGN) - rc = rsl_ipacc_crcx(lchan); - return rc; } int gsm48_rx_rr_modif_ack(struct msgb *msg) { + int rc; struct gsm48_hdr *gh = msgb_l3(msg); struct gsm48_chan_mode_modify *mod = (struct gsm48_chan_mode_modify *) gh->data; @@ -641,5 +637,11 @@ int gsm48_rx_rr_modif_ack(struct msgb *msg) /* We've successfully modified the MS side of the channel, * now go on to modify the BTS side of the channel */ - return rsl_chan_mode_modify_req(msg->lchan); + rc = rsl_chan_mode_modify_req(msg->lchan); + + /* FIXME: we not only need to do this after mode modify, but + * also after channel activation */ + if (is_ipaccess_bts(msg->lchan->ts->trx->bts) && mod->mode != GSM48_CMODE_SIGN) + rsl_ipacc_crcx(msg->lchan); + return rc; } |