Hi,
Here's a little report on the SMS status:
First, the good news is that in practice everything works fine with the handsets I tested.
There are a few issues left to address but they don't seem to cause any operational troubles so far :
* In MO transfers, the channel should be closed after the reception of CP-ACK, _unless_ a CM SERVICE REQUEST was sent just before on the channel. Currently the channel is just not closed AFAICT and it times out some time afterwards.
* Double RF Channel Release : Here's the log of the end of a typical SMS transfer (MO in this case but MT has a similar problem) :
<0000> abis_rsl.c:1408 (bts=0,trx=0,ts=1) SAPI=3 DATA INDICATION <0007> gsm_04_11.c:918 trans_id=c RX SMS CP-ACK [ pause ] <0000> abis_rsl.c:1408 (bts=0,trx=0,ts=1) SAPI=0 RELEASE INDICATION <0004> abis_rsl.c:742 (bts=0,trx=0,ts=1) RF Channel Release CMD <0004> abis_rsl.c:1138 (bts=0,trx=0,ts=1) RF CHANNEL RELEASE ACK <0000> abis_rsl.c:1408 (bts=0,trx=0,ts=1) SAPI=3 RELEASE INDICATION <0004> abis_rsl.c:742 (bts=0,trx=0,ts=1) RF Channel Release CMD <0004> abis_rsl.c:1138 (bts=0,trx=0,ts=1) RF CHANNEL RELEASE ACK
As you see, when we receive a RELEASE INDICATION in abis_rsl_rx_rll, we call rsl_rf_chan_release directly. But we'll receive RELEASE INDICATION for both SAPI 0 & 3 and so we'll call it twice which is bad. I tried releasing channel _only_ if all SAPI are unused but the resulting effect was not what I expected :
<0000> abis_rsl.c:1418 (bts=0,trx=0,ts=1) SAPI=3 DATA INDICATION <0007> gsm_04_11.c:927 trans_id=b RX SMS CP-ACK [ pause ] <0000> abis_rsl.c:1418 (bts=0,trx=0,ts=1) SAPI=0 RELEASE INDICATION [ pause ] <0004> abis_rsl.c:1137 (bts=0,trx=0,ts=1) <0004> abis_rsl.c:967 CONNECTION FAIL: RELEASINGCAUSE=0x01(Radio Link Failure) <0004> abis_rsl.c:975 <0004> abis_rsl.c:742 (bts=0,trx=0,ts=1) RF Channel Release CMD <0004> abis_rsl.c:1148 (bts=0,trx=0,ts=1) RF CHANNEL RELEASE ACK <0013> gsm_subscriber_base.c:subscr 35414 usage decreased usage to: 0 <0000> abis_rsl.c:1418 (bts=0,trx=0,ts=1) SAPI=3 RELEASE INDICATION <0004> abis_rsl.c:742 (bts=0,trx=0,ts=1) RF Channel Release CMD <0004> abis_rsl.c:1148 (bts=0,trx=0,ts=1) RF CHANNEL RELEASE ACK
I need to read the spec and see what happens on a commercial network to understand better what should be done because I'm obviously missing something ...
Sylvain
On Thursday 24 December 2009 17:08:41 Sylvain Munaut wrote:
Hi,
Here's a little report on the SMS status:
- In MO transfers, the channel should be closed after the reception of
CP-ACK, _unless_ a CM SERVICE REQUEST was sent just before on the channel. Currently the channel is just not closed AFAICT and it times out some time afterwards.
This will be all better next year...
- Double RF Channel Release : Here's the log of the end of a typical SMS
transfer (MO in this case but MT has a similar problem) :
Interesting. Your approach seemed to be fine. The RF Channel Release contains the SAPI that was released. So we should release SAPI=0 and SAPI=3 when we get this command. The question is who should release SAPI=3 in the MT case (where OpenBSC will establish this)?
So we should only free the radio resource and set the chan mode to NONE if all SAPIs has been released.
I need to read the spec and see what happens on a commercial network to understand better what should be done because I'm obviously missing something ...
maybe I can help later this year. But in a real network the MSC is most likely to just say drop your radio resources and then all SAPIs will be deallocated and the channel will be closed.
regards holger