OsmoBTS and T200 handling / libosmocore lapdm

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/OpenBSC@lists.osmocom.org/.

Harald Welte laforge at gnumonks.org
Mon Jan 25 20:17:04 UTC 2016


Hi all,

T200 is the LAPDm re-transmission timer, after which the sender assumes
a L2 frame transmitted was lost and starts with recovery.

Until recently, OsmoBTS ignored the T200 values that the BSC specified
via OML, always falling back to the (relatively long) T200 values that
exist in libosmocore (1s for the main channel, 2s for the associated
channel).

As you know, OsmoBTS is used in production in this configuration and we
never recevied any associated bug reports.

Recently, in e9f12acbeb5a369282719f8e0deecc88034a5488 I started to use
the T200 values as communicated from the BSC via OML.  This is what
proprietary BTSs like the BS-11, nanoBTS etc. (supposedly) have been
using all the time anyway, so I thought of it as a bug fix.

However, as it turns out, it breaks our LAPDm implementation in many
ways.  The LAPDm performance gets that bad that you cannot even transmit
a single SMS anymore, and even LU only occasionally work anymore.

You can see the erroneous behavior in the attached PCAP file showing
OsmoBTS-generated GSMTAP and RSL.  Also attached are log file outputs of
LAPDm logging for mo-sms and mt-sms.  In them you can find troubling
lines like 'S frame response with F=1 error' which should never
happen...

I suspect two issues related to this:

1) Our lapdm.c code uses regular osmo_timer_* functions to determine
   once T200 expires, rather than a GSM frame number time-base.

   This wouldn't be a problem in a synchronous real-time environemnt.
   However, in OsmoBTS (as in OsmocomBB), there is a relatively long and
   queue / delay between the point where a frame is pulled out of the
   bottom end of LAPDm and actual transmission on the radio interface.
   However, LAPDm T200 starts ticking from the point the frame was
   pulled out, rather than from the point transmission started.

   In order to change this, I suggest that we either change LAPDm timers
   to work on frame numbers passed up from L1 via every L1SAP primitive
   (comparing RTS.ind for downlink vs. DATA.ind for uplink),  or simply
   keeping a per-PHY/per-TRX measurement of that 'round trip time
   between the actual radio and the L2'.  We can then compensate for
   this by adding it to T200.

   I briefly tried this here, where one given hardware indicated about
   56ms round-trip-time (13 frames difference between RTS.ind and
   DATA.ind).  However, it didn't help.  Even compensating by 120ms was
   not sufficient.  This needs to be revisited.

2) I think libosmogsm LAPDm implementation is actually buggy,
   specifically in situations where T200 expires.  We don't see that
   often, as the 1s/2s is so long that in reality it rarely happens.
   Once the T200 value is reduced, the probability of running into T200
   expiration increases, and so does the probability of seeing related
   problems.

   Our existing lapdm unit tests don't seem to cover timing related
   behavior, so that definitely is something tha appears to need
   improvement.

Any help on those issues is appreciated.

Meanwhile, I decided to revert back to the libosmogsm T200 defaults by
the means of commit 3ca59512d2f4eb1f87699e8fada67f33674918b4

Regards,
	Harald

-- 
- Harald Welte <laforge at gnumonks.org>           http://laforge.gnumonks.org/
============================================================================
"Privacy in residential applications is a desirable marketing option."
                                                  (ETSI EN 300 175-7 Ch. A6)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 20160125-osmobts-t200-gsmtap-rsl.pcap
Type: application/vnd.tcpdump.pcap
Size: 9597 bytes
Desc: not available
URL: <http://lists.osmocom.org/pipermail/openbsc/attachments/20160125/7a053485/attachment.bin>
-------------- next part --------------
<0010> lapd_core.c:2180 Message DL-DATA-REQUEST received in state LAPD_STATE_MF_EST
<0010> lapd_core.c:1756 writing message to send-queue: l3len: 2
<0010> lapd_core.c:1779 lapd_send_i() called from line 1762
<0010> lapd_core.c:1819 get message from send-queue
<0010> lapd_core.c:1831 msg-len 2 sent 0 left 2 N201 20 length 2 first byte 05
<0010> lapd_core.c:1840 send I frame V(S)=0
<0010> lapd_core.c:196 start T200
<0010> lapd_core.c:1802 k frames outstanding, not sending more (k=1 V(S)=1 V(A)=0)
<0010> lapdm.c:550 fmt=B
<0010> lapd_core.c:992 UI received
<0000> rsl.c:1734 (bts=0,trx=1,ts=0,ss=0) Handing RLL msg UNIT_DATA_IND from LAPDm to MEAS REP
<0010> lapd_core.c:545 Timeout T200 (0xb6a4a49c) state=7
<0010> lapd_core.c:227 new state LAPD_STATE_MF_EST -> LAPD_STATE_TIMER_RECOV
<0010> lapd_core.c:614 retransmit last frame V(S)=0
<0010> lapd_core.c:196 start T200
<0010> lapdm.c:561 fmt=B
<0010> lapd_core.c:1459 I received in state LAPD_STATE_TIMER_RECOV on SAPI(0)
<0010> lapd_core.c:1542 incrementing V(R) to 1
<0010> lapd_core.c:1551 message in single I frame
<0000> rsl.c:1741 (bts=0,trx=1,ts=0,ss=0) Fwd RLL msg DATA_IND from LAPDm to A-bis
<0010> lapd_core.c:1779 lapd_send_i() called from line 1609
<0010> lapd_core.c:1789 timer recovery, not sending
<0010> lapd_core.c:545 Timeout T200 (0xb6a4a49c) state=8
<0010> lapd_core.c:614 retransmit last frame V(S)=0
<0010> lapd_core.c:196 start T200
<0010> lapdm.c:561 fmt=B
<0010> lapd_core.c:1252 RR received in state LAPD_STATE_TIMER_RECOV
<0010> lapd_core.c:721 ack frame 0
<0010> lapd_core.c:1779 lapd_send_i() called from line 1290
<0010> lapd_core.c:1789 timer recovery, not sending
<0010> lapd_core.c:545 Timeout T200 (0xb6a4a49c) state=8
<0010> lapd_core.c:196 start T200
<0010> lapdm.c:550 fmt=B
<0010> lapd_core.c:992 UI received
<0000> rsl.c:1734 (bts=0,trx=1,ts=0,ss=0) Handing RLL msg UNIT_DATA_IND from LAPDm to MEAS REP
<0010> lapd_core.c:545 Timeout T200 (0xb6a4a49c) state=8
<0010> lapd_core.c:196 start T200
<0010> lapdm.c:561 fmt=B
<0010> lapd_core.c:1252 RR received in state LAPD_STATE_TIMER_RECOV
<0010> lapd_core.c:1281 RR response with F==1, and we are in timer recovery state, so we leave that state
<0010> lapd_core.c:212 stop T200
<0010> lapd_core.c:227 new state LAPD_STATE_TIMER_RECOV -> LAPD_STATE_MF_EST
<0010> lapd_core.c:1779 lapd_send_i() called from line 1290
<0010> lapd_core.c:1831 msg-len 2 sent 2 left 0 N201 20 length 0 first byte 05
<0010> lapdm.c:561 fmt=B
<0010> lapd_core.c:1232 S frame response with F=1 error
<0010> lapd_core.c:378 sending MDL-ERROR-IND cause 6
<0010> lapdm.c:386 sending MDL-ERROR-IND 6
<0000> rsl.c:1741 (bts=0,trx=1,ts=0,ss=0) Fwd RLL msg ERROR_IND from LAPDm to A-bis
<0010> lapd_core.c:1252 RR received in state LAPD_STATE_MF_EST
<0010> lapd_core.c:1779 lapd_send_i() called from line 1290
<0010> lapdm.c:550 fmt=B
<0010> lapd_core.c:992 UI received
<0000> rsl.c:1734 (bts=0,trx=1,ts=0,ss=0) Handing RLL msg UNIT_DATA_IND from LAPDm to MEAS REP
<0010> lapdm.c:561 fmt=B
<0010> lapd_core.c:1232 S frame response with F=1 error
<0010> lapd_core.c:378 sending MDL-ERROR-IND cause 6
<0010> lapdm.c:386 sending MDL-ERROR-IND 6
<0000> rsl.c:1741 (bts=0,trx=1,ts=0,ss=0) Fwd RLL msg ERROR_IND from LAPDm to A-bis
<0010> lapd_core.c:1252 RR received in state LAPD_STATE_MF_EST
<0010> lapd_core.c:1779 lapd_send_i() called from line 1290
<0010> lapdm.c:561 fmt=B
<0010> lapd_core.c:1232 S frame response with F=1 error
<0010> lapd_core.c:378 sending MDL-ERROR-IND cause 6
<0010> lapdm.c:386 sending MDL-ERROR-IND 6
<0000> rsl.c:1741 (bts=0,trx=1,ts=0,ss=0) Fwd RLL msg ERROR_IND from LAPDm to A-bis
<0010> lapd_core.c:1252 RR received in state LAPD_STATE_MF_EST
<0010> lapd_core.c:1779 lapd_send_i() called from line 1290
<0010> lapdm.c:550 fmt=B
<0010> lapd_core.c:992 UI received
<0000> rsl.c:1734 (bts=0,trx=1,ts=0,ss=0) Handing RLL msg UNIT_DATA_IND from LAPDm to MEAS REP
<0010> lapdm.c:561 fmt=B
<0010> lapd_core.c:789 SABM(E) received in state LAPD_STATE_IDLE
<0010> lapd_core.c:227 new state LAPD_STATE_IDLE -> LAPD_STATE_MF_EST
<0000> rsl.c:1741 (bts=0,trx=1,ts=0,ss=0) Fwd RLL msg EST_IND from LAPDm to A-bis
<0010> lapdm.c:561 fmt=B
<0010> lapd_core.c:1459 I received in state LAPD_STATE_MF_EST on SAPI(3)
<0010> lapd_core.c:1542 incrementing V(R) to 1
<0010> lapd_core.c:1560 message in multiple I frames (first message)
<0010> lapd_core.c:1583 message in multiple I frames (next message)
<0010> lapd_core.c:1779 lapd_send_i() called from line 1609
<0010> lapd_core.c:1618 we are not busy and have no pending data, send RR
<0010> lapdm.c:550 fmt=B
<0010> lapd_core.c:992 UI received
<0000> rsl.c:1734 (bts=0,trx=1,ts=0,ss=0) Handing RLL msg UNIT_DATA_IND from LAPDm to MEAS REP
<0010> lapdm.c:561 fmt=B
<0010> lapd_core.c:1459 I received in state LAPD_STATE_MF_EST on SAPI(3)
<0010> lapd_core.c:1542 incrementing V(R) to 2
<0010> lapd_core.c:1576 message in multiple I frames (last message)
<0000> rsl.c:1741 (bts=0,trx=1,ts=0,ss=0) Fwd RLL msg DATA_IND from LAPDm to A-bis
<0010> lapd_core.c:1779 lapd_send_i() called from line 1609
<0010> lapd_core.c:1618 we are not busy and have no pending data, send RR
<0010> lapd_core.c:2180 Message DL-DATA-REQUEST received in state LAPD_STATE_MF_EST
<0010> lapd_core.c:1756 writing message to send-queue: l3len: 2
<0010> lapd_core.c:1779 lapd_send_i() called from line 1762
<0010> lapd_core.c:1819 get message from send-queue
<0010> lapd_core.c:1831 msg-len 2 sent 0 left 2 N201 20 length 2 first byte 89
<0010> lapd_core.c:1840 send I frame V(S)=0
<0010> lapd_core.c:196 start T200
<0010> lapd_core.c:1802 k frames outstanding, not sending more (k=1 V(S)=1 V(A)=0)
<0010> lapd_core.c:2180 Message DL-DATA-REQUEST received in state LAPD_STATE_MF_EST
<0010> lapd_core.c:1756 writing message to send-queue: l3len: 5
<0010> lapd_core.c:1779 lapd_send_i() called from line 1762
<0010> lapd_core.c:1802 k frames outstanding, not sending more (k=1 V(S)=1 V(A)=0)
<0010> lapd_core.c:545 Timeout T200 (0xb6a4a590) state=7
<0010> lapd_core.c:227 new state LAPD_STATE_MF_EST -> LAPD_STATE_TIMER_RECOV
<0010> lapd_core.c:614 retransmit last frame V(S)=0
<0010> lapd_core.c:196 start T200
<0010> lapdm.c:561 fmt=B
<0010> lapd_core.c:992 UI received
<0010> lapd_core.c:1019 length=0 (discarding)
<0010> lapd_core.c:545 Timeout T200 (0xb6a4a590) state=8
<0010> lapd_core.c:614 retransmit last frame V(S)=0
<0010> lapd_core.c:196 start T200
<0010> lapdm.c:550 fmt=B
<0010> lapd_core.c:992 UI received
<0000> rsl.c:1734 (bts=0,trx=1,ts=0,ss=0) Handing RLL msg UNIT_DATA_IND from LAPDm to MEAS REP
<0010> lapdm.c:561 fmt=B
<0010> lapd_core.c:1252 RR received in state LAPD_STATE_TIMER_RECOV
<0010> lapd_core.c:721 ack frame 0
<0010> lapd_core.c:1779 lapd_send_i() called from line 1290
<0010> lapd_core.c:1789 timer recovery, not sending
<0010> lapd_core.c:545 Timeout T200 (0xb6a4a590) state=8
<0010> lapd_core.c:196 start T200
<0010> lapd_core.c:545 Timeout T200 (0xb6a4a590) state=8
<0010> lapd_core.c:196 start T200
<0010> lapdm.c:561 fmt=B
<0010> lapd_core.c:1252 RR received in state LAPD_STATE_TIMER_RECOV
<0010> lapd_core.c:1281 RR response with F==1, and we are in timer recovery state, so we leave that state
<0010> lapd_core.c:212 stop T200
<0010> lapd_core.c:227 new state LAPD_STATE_TIMER_RECOV -> LAPD_STATE_MF_EST
<0010> lapd_core.c:1779 lapd_send_i() called from line 1290
<0010> lapd_core.c:1831 msg-len 2 sent 2 left 0 N201 20 length 0 first byte 89
<0010> lapd_core.c:1819 get message from send-queue
<0010> lapd_core.c:1831 msg-len 5 sent 0 left 5 N201 20 length 5 first byte 89
<0010> lapd_core.c:1840 send I frame V(S)=1
<0010> lapd_core.c:196 start T200
<0010> lapd_core.c:1802 k frames outstanding, not sending more (k=1 V(S)=2 V(A)=1)
<0010> lapdm.c:550 fmt=B
<0010> lapd_core.c:992 UI received
<0000> rsl.c:1734 (bts=0,trx=1,ts=0,ss=0) Handing RLL msg UNIT_DATA_IND from LAPDm to MEAS REP
<0010> lapd_core.c:1252 RR received in state LAPD_STATE_TIMER_RECOV
<0010> lapd_core.c:1281 RR response with F==1, and we are in timer recovery state, so we leave that state
<0010> lapd_core.c:212 stop T200
<0010> lapd_core.c:227 new state LAPD_STATE_TIMER_RECOV -> LAPD_STATE_MF_EST
<0010> lapd_core.c:1779 lapd_send_i() called from line 1290
<0010> lapd_core.c:1873 resend I frame from tx buffer V(S)=1
<0010> lapd_core.c:196 start T200
<0010> lapd_core.c:1802 k frames outstanding, not sending more (k=1 V(S)=2 V(A)=1)
<0010> lapd_core.c:545 Timeout T200 (0xb6a4a590) state=7
<0010> lapd_core.c:227 new state LAPD_STATE_MF_EST -> LAPD_STATE_TIMER_RECOV
<0010> lapd_core.c:614 retransmit last frame V(S)=1
<0010> lapd_core.c:196 start T200
<0010> lapdm.c:561 fmt=B
<0010> lapd_core.c:1252 RR received in state LAPD_STATE_TIMER_RECOV
<0010> lapd_core.c:1281 RR response with F==1, and we are in timer recovery state, so we leave that state
<0010> lapd_core.c:212 stop T200
<0010> lapd_core.c:227 new state LAPD_STATE_TIMER_RECOV -> LAPD_STATE_MF_EST
<0010> lapd_core.c:1779 lapd_send_i() called from line 1290
<0010> lapd_core.c:1873 resend I frame from tx buffer V(S)=1
<0010> lapd_core.c:196 start T200
<0010> lapd_core.c:1802 k frames outstanding, not sending more (k=1 V(S)=2 V(A)=1)
<0010> lapdm.c:550 fmt=B
<0010> lapd_core.c:992 UI received
<0000> rsl.c:1734 (bts=0,trx=1,ts=0,ss=0) Handing RLL msg UNIT_DATA_IND from LAPDm to MEAS REP
<0010> lapd_core.c:545 Timeout T200 (0xb6a4a590) state=7
<0010> lapd_core.c:227 new state LAPD_STATE_MF_EST -> LAPD_STATE_TIMER_RECOV
<0010> lapd_core.c:614 retransmit last frame V(S)=1
<0010> lapd_core.c:196 start T200
<0010> lapdm.c:561 fmt=B
<0010> lapd_core.c:1252 RR received in state LAPD_STATE_TIMER_RECOV
<0010> lapd_core.c:1281 RR response with F==1, and we are in timer recovery state, so we leave that state
<0010> lapd_core.c:212 stop T200
<0010> lapd_core.c:227 new state LAPD_STATE_TIMER_RECOV -> LAPD_STATE_MF_EST
<0010> lapd_core.c:1779 lapd_send_i() called from line 1290
<0010> lapd_core.c:1873 resend I frame from tx buffer V(S)=1
<0010> lapd_core.c:196 start T200
<0010> lapd_core.c:1802 k frames outstanding, not sending more (k=1 V(S)=2 V(A)=1)
<0010> lapd_core.c:545 Timeout T200 (0xb6a4a590) state=7
<0010> lapd_core.c:227 new state LAPD_STATE_MF_EST -> LAPD_STATE_TIMER_RECOV
<0010> lapd_core.c:614 retransmit last frame V(S)=1
<0010> lapd_core.c:196 start T200
<0010> lapdm.c:561 fmt=B
<0010> lapd_core.c:1459 I received in state LAPD_STATE_TIMER_RECOV on SAPI(3)
<0010> lapd_core.c:1542 incrementing V(R) to 3
<0010> lapd_core.c:721 ack frame 1
<0010> lapd_core.c:1551 message in single I frame
<0000> rsl.c:1741 (bts=0,trx=1,ts=0,ss=0) Fwd RLL msg DATA_IND from LAPDm to A-bis
<0010> lapd_core.c:1779 lapd_send_i() called from line 1609
<0010> lapd_core.c:1789 timer recovery, not sending
<0010> lapd_core.c:2180 Message DL-RELEASE-REQUEST received in state LAPD_STATE_TIMER_RECOV
<0010> lapd_core.c:2021 perform local release
<0010> lapd_core.c:212 stop T200
<0010> lapd_core.c:227 new state LAPD_STATE_TIMER_RECOV -> LAPD_STATE_IDLE
<0000> rsl.c:1741 (bts=0,trx=1,ts=0,ss=0) Fwd RLL msg REL_CONF from LAPDm to A-bis
<0010> lapd_core.c:2180 Message DL-DATA-REQUEST received in state LAPD_STATE_MF_EST
<0010> lapd_core.c:1756 writing message to send-queue: l3len: 3
<0010> lapd_core.c:1779 lapd_send_i() called from line 1762
<0010> lapd_core.c:1819 get message from send-queue
<0010> lapd_core.c:1831 msg-len 3 sent 0 left 3 N201 20 length 3 first byte 06
<0010> lapd_core.c:1840 send I frame V(S)=1
<0010> lapd_core.c:196 start T200
<0010> lapd_core.c:1802 k frames outstanding, not sending more (k=1 V(S)=2 V(A)=1)
<0000> rsl.c:1822 (bts=0,trx=1,ts=0,ss=0) Rx RSL DEACTIVATE_SACCH
<0006> oml.c:1432 (bts=0,trx=1,ts=0,ss=0) MPH-DEACTIVATE.req (SACCH TxDL)
<0006> oml.c:1372 (bts=0,trx=1,ts=0,ss=0) MPH-DEACTIVATE.conf (SACCH TxDL)
<0006> oml.c:1432 (bts=0,trx=1,ts=0,ss=0) MPH-DEACTIVATE.req (SACCH RxUL)
<0006> oml.c:1372 (bts=0,trx=1,ts=0,ss=0) MPH-DEACTIVATE.conf (SACCH RxUL)
<0006> oml.c:660 (bts=0,trx=1,ts=0,ss=0) End of queue encountered. Now empty? 1
<0010> lapd_core.c:545 Timeout T200 (0xb6a4a49c) state=7
<0010> lapd_core.c:227 new state LAPD_STATE_MF_EST -> LAPD_STATE_TIMER_RECOV
<0010> lapd_core.c:614 retransmit last frame V(S)=1
<0010> lapd_core.c:196 start T200
<0010> lapdm.c:561 fmt=B
<0010> lapd_core.c:1032 DISC received in state LAPD_STATE_TIMER_RECOV
<0010> lapd_core.c:1076 DISC in est state
<0010> lapd_core.c:212 stop T200
<0010> lapd_core.c:227 new state LAPD_STATE_TIMER_RECOV -> LAPD_STATE_IDLE
<0000> rsl.c:1741 (bts=0,trx=1,ts=0,ss=0) Fwd RLL msg REL_IND from LAPDm to A-bis
<0000> rsl.c:1822 (bts=0,trx=1,ts=0,ss=0) Rx RSL RF_CHAN_REL
<0006> oml.c:1432 (bts=0,trx=1,ts=0,ss=0) MPH-DEACTIVATE.req (SDCCH RxUL)
<0006> oml.c:1372 (bts=0,trx=1,ts=0,ss=0) MPH-DEACTIVATE.conf (SDCCH RxUL)
<0006> oml.c:1432 (bts=0,trx=1,ts=0,ss=0) MPH-DEACTIVATE.req (SDCCH TxDL)
<0006> oml.c:1372 (bts=0,trx=1,ts=0,ss=0) MPH-DEACTIVATE.conf (SDCCH TxDL)
<0000> rsl.c:528 (bts=0,trx=1,ts=0,ss=0) Tx RF CHAN REL ACK
<0006> oml.c:660 (bts=0,trx=1,ts=0,ss=0) End of queue encountered. Now empty? 1
-------------- next part --------------
<0010> lapdm.c:561 fmt=B
<0010> lapd_core.c:789 SABM(E) received in state LAPD_STATE_IDLE
<0010> lapd_core.c:227 new state LAPD_STATE_IDLE -> LAPD_STATE_MF_EST
<0010> lapd_core.c:896 Store content res.
<0000> rsl.c:1741 (bts=0,trx=1,ts=0,ss=0) Fwd RLL msg EST_IND from LAPDm to A-bis
<0010> lapdm.c:1137 ((nil)) RLL Message 'EST_REQ' received. (sapi 3)
<0010> lapd_core.c:2180 Message DL-ESTABLISH-REQUEST received in state LAPD_STATE_IDLE
<0010> lapd_core.c:1694 perform normal establishm. (SABM)
<0010> lapd_core.c:227 new state LAPD_STATE_IDLE -> LAPD_STATE_SABM_SENT
<0010> lapd_core.c:196 start T200
<0010> lapdm.c:550 fmt=B
<0010> lapd_core.c:992 UI received
<0000> rsl.c:1734 (bts=0,trx=1,ts=0,ss=0) Handing RLL msg UNIT_DATA_IND from LAPDm to MEAS REP
<0010> lapd_core.c:545 Timeout T200 (0xb6a26590) state=5
<0010> lapd_core.c:196 start T200
<0010> lapdm.c:561 fmt=B
<0010> lapd_core.c:789 SABM(E) received in state LAPD_STATE_MF_EST
<0010> lapd_core.c:815 SABM command, multiple frame established state
<0010> lapd_core.c:545 Timeout T200 (0xb6a26590) state=5
<0010> lapd_core.c:196 start T200
<0010> lapdm.c:561 fmt=B
<0010> lapd_core.c:1459 I received in state LAPD_STATE_MF_EST on SAPI(0)
<0010> lapd_core.c:1542 incrementing V(R) to 1
<0010> lapd_core.c:1551 message in single I frame
<0000> rsl.c:1741 (bts=0,trx=1,ts=0,ss=0) Fwd RLL msg DATA_IND from LAPDm to A-bis
<0010> lapd_core.c:1779 lapd_send_i() called from line 1609
<0010> lapd_core.c:1618 we are not busy and have no pending data, send RR
<0010> lapd_core.c:545 Timeout T200 (0xb6a26590) state=5
<0010> lapd_core.c:196 start T200
<0005> paging.c:512 Removed paging record, queue_len=0
<0010> lapdm.c:550 fmt=B
<0010> lapd_core.c:992 UI received
<0000> rsl.c:1734 (bts=0,trx=1,ts=0,ss=0) Handing RLL msg UNIT_DATA_IND from LAPDm to MEAS REP
<0010> lapd_core.c:545 Timeout T200 (0xb6a26590) state=5
<0010> lapd_core.c:196 start T200
<0010> lapdm.c:561 fmt=B
<0010> lapd_core.c:1459 I received in state LAPD_STATE_MF_EST on SAPI(0)
<0010> lapd_core.c:1508 N(S) sequence error: N(S)=0, V(R)=1
<0010> lapd_core.c:1779 lapd_send_i() called from line 1534
<0010> lapd_core.c:545 Timeout T200 (0xb6a26590) state=5
<0010> lapd_core.c:196 start T200
<0010> lapdm.c:561 fmt=B
<0010> lapd_core.c:1459 I received in state LAPD_STATE_MF_EST on SAPI(0)
<0010> lapd_core.c:1508 N(S) sequence error: N(S)=0, V(R)=1
<0010> lapd_core.c:1779 lapd_send_i() called from line 1534
<0010> lapd_core.c:545 Timeout T200 (0xb6a26590) state=5
<0000> rsl.c:1741 (bts=0,trx=1,ts=0,ss=0) Fwd RLL msg REL_IND from LAPDm to A-bis
<0010> lapd_core.c:378 sending MDL-ERROR-IND cause 1
<0010> lapdm.c:386 sending MDL-ERROR-IND 1
<0000> rsl.c:1741 (bts=0,trx=1,ts=0,ss=0) Fwd RLL msg ERROR_IND from LAPDm to A-bis
<0010> lapd_core.c:227 new state LAPD_STATE_SABM_SENT -> LAPD_STATE_IDLE
<0000> rsl.c:1822 (bts=0,trx=1,ts=0,ss=0) Rx RSL DEACTIVATE_SACCH
<0006> oml.c:1432 (bts=0,trx=1,ts=0,ss=0) MPH-DEACTIVATE.req (SACCH TxDL)
<0010> lapd_core.c:2180 Message DL-RELEASE-REQUEST received in state LAPD_STATE_MF_EST
<0010> lapd_core.c:2021 perform local release
<0010> lapd_core.c:227 new state LAPD_STATE_MF_EST -> LAPD_STATE_IDLE


More information about the OpenBSC mailing list