Project

General

Profile

Actions

Feature #1867

closed

implement dynamic timeslots for octphy

Added by neels over 7 years ago. Updated over 6 years ago.

Status:
Closed
Priority:
Low
Assignee:
Category:
-
Target version:
-
Start date:
12/02/2016
Due date:
% Done:

100%

Spec Reference:

Description

only bts_model_ts_disconnect() and bts_model_ts_connect() need to be implemented for
osmo-bts-octphy to enable both kinds of dynamic timeslots.

This would render all osmo-bts-* models capable of dynamic timeslots,
so far octphy is the last one that can't do dyn ts.


Files

osmo-bts.log osmo-bts.log 874 KB dexter, 07/31/2017 04:30 PM
Actions #1

Updated by laforge almost 7 years ago

  • Assignee changed from 118 to dexter
Actions #2

Updated by dexter over 6 years ago

  • Status changed from New to In Progress
Actions #3

Updated by dexter over 6 years ago

  • % Done changed from 0 to 20

I have it at the point where I can do experiments, but it is not working yet. Since there is no exact equivalent to GsmL1_PrimId_MphConnectReq and GsmL1_PrimId_MphDisconnectReq in octphy, I think we will have to build the functionality using cOCTVC1_GSM_MSG_TRX_DEACTIVATE_PHYSICAL_CHANNEL_CID and cOCTVC1_GSM_MSG_TRX_ACTIVATE_PHYSICAL_CHANNEL_CID.

Here are some of my notes:


API / bts_model.h
===================================
defines the following two API functions:
    int bts_model_ts_disconnect(struct gsm_bts_trx_ts *ts);
    int bts_model_ts_connect(struct gsm_bts_trx_ts *ts, enum gsm_phys_chan_config as_pchan);

Implementation can be found in:
          * octphy: l1_oml.c
          * sysmobts/litecell: oml.c
          * osmo-bts-trx: l1_if.c

Callgraph for sysmobts/litecell
===================================

bts_model_ts_connect(ts,pchan)
    -> ts_connect_as(ts,pchan.ts_connect_cb);
        * Gets callback ts_connect_cb()
        * Errors on GSM_PCHAN_TCH_F_PDCH or GSM_PCHAN_TCH_F_TCH_H_PDCH
        * Creates GsmL1_MphConnectReq_t (GsmL1_PrimId_MphConnectReq) primitive
        * Set flags in primitive:
            cr->u8Tn = ts->nr; (timeslot)
            cr->logChComb = pchan_to_logChComb[pchan]; (channel type)
        -> l1if_gsm_req_compl() 
            -> ts_connect_cb()
                -> cb_ts_connected(ts) (in common/rsl.c)

bts_model_ts_disconnect(ts)
    -> prim_init(msgb_l1prim(msg), ..., l1p_handle_for_ts(ts))
           * GsmL1_PrimId_MphDisconnectReq
           -> l1if_gsm_req_compl()
            ts_disconnect_cb()
                cb_ts_disconnected() (in common/rsl.c)

prim_init(prim, id, gl1, hlayer3)
    * set prim->id = id
    * switch (id) {
      ...
        case GsmL1_PrimId_MphConnectReq:
        prim->u.mphConnectReq.hLayer1 = gl1->hLayer1;
        prim->u.mphConnectReq.hLayer3 = hLayer3;
        break;
      ...    
        case GsmL1_PrimId_MphDisconnectReq:
        prim->u.mphDisconnectReq.hLayer1 = gl1->hLayer1;
        prim->u.mphDisconnectReq.hLayer3 = hLayer3;
        break;
      }
    * return &prim->u;

Callgraph for osmo-bts-trx
===================================
bts_model_ts_connect(ts,pchan)
    -> trx_set_ts_as_pchan(ts, pchan)
    -> cb_ts_connected(ts) (in common/rsl.c)
           -> trx_phy_instance(ts, pchan) (get phy_instance *pinst)
        -> trx_sched_set_pchan(l1s, tn, pchan)
        -> lchan_set_state(lchan, LCHAN_S_ACTIVE) (only relevant for CCCH)

Note: This looks very far off from octphy and sysmobts style. There is no
l1if_req_compl() or l1if_gsm_req_compl().

Functions to send primitives to phy
===================================

Octphy:
int l1if_req_compl(struct octphy_hdl *fl1h, struct msgb *msg, l1if_compl_cb *cb, void *data);

SysmoBTS:
int l1if_req_compl(struct femtol1_hdl *fl1h, struct msgb *msg, l1if_compl_cb *cb, void *cb_data);
int l1if_gsm_req_compl(struct femtol1_hdl *fl1h, struct msgb *msg, l1if_compl_cb *cb, void *cb_data);
(both can be used equally)

Console output for sysmobts
===================================

Switch TS-Type:
<0004> abis_rsl.c:865 (bts=0,trx=0,ts=2,ss=0) RF Channel Release
<0004> abis_rsl.c:2538 (bts=0,trx=0,ts=2,ss=0) IPAC_DLCX_IND 
<0004> abis_rsl.c:935 (bts=0,trx=0,ts=2,ss=0) RF CHANNEL RELEASE ACK
<0004> abis_rsl.c:1227 (bts=0,trx=0,ts=2,ss=0) state RELEASE REQUESTED -> NONE
<0004> abis_rsl.c:2441 (bts=0,trx=0,ts=2) IPAC PDCH ACT
<0004> abis_rsl.c:1626 (bts=0,trx=0,ts=2,ss=0) IPAC PDCH ACT ACK
<0004> abis_rsl.c:1848 BTS 0 CHAN RQD: reason: call re-establishment (ra=0x47, neci=0x01, chreq_reason=0x02)
<0000> chan_alloc.c:352 (bts=0,trx=0,ts=2,pchan=TCH/F_PDCH as PDCH) Allocating lchan=0 as TCH_F
<0004> abis_rsl.c:1918 (bts=0,trx=0,ts=2,ss=0) Activating ARFCN(866) SS(0) lctype TCH_F r=CALL ra=0x47 ta=0
<0004> abis_rsl.c:2441 (bts=0,trx=0,ts=2) IPAC PDCH DEACT
<0004> abis_rsl.c:1633 (bts=0,trx=0,ts=2,ss=0) IPAC PDCH DEACT ACK
<0004> abis_rsl.c:591 (bts=0,trx=0,ts=2,pchan=TCH/F_PDCH as TCH/F) Tx RSL Channel Activate with act_type=INITIAL
<0004> abis_rsl.c:1227 (bts=0,trx=0,ts=2,ss=0) state NONE -> ACTIVATION REQUESTED
<0004> abis_rsl.c:1599 (bts=0,trx=0,ts=2,ss=0) CHANNEL ACTIVATE ACK
<0004> abis_rsl.c:1227 (bts=0,trx=0,ts=2,ss=0) state ACTIVATION REQUESTED -> ACTIVE

Switch back to PDCH:
<0004> abis_rsl.c:773 (bts=0,trx=0,ts=2,ss=0) DEACTivate SACCH CMD
<0000> abis_rsl.c:2121 (bts=0,trx=0,ts=2,ss=0) SAPI=0 RELEASE INDICATION
<0004> abis_rsl.c:1727 (bts=0,trx=0,ts=2,ss=0) T3111 expired: releasing RF Channel
<0004> abis_rsl.c:865 (bts=0,trx=0,ts=2,ss=0) RF Channel Release
<0004> abis_rsl.c:2538 (bts=0,trx=0,ts=2,ss=0) IPAC_DLCX_IND 
<0004> abis_rsl.c:935 (bts=0,trx=0,ts=2,ss=0) RF CHANNEL RELEASE ACK
<0004> abis_rsl.c:1227 (bts=0,trx=0,ts=2,ss=0) state RELEASE REQUESTED -> NONE
<0004> abis_rsl.c:2441 (bts=0,trx=0,ts=2) IPAC PDCH ACT
<0004> abis_rsl.c:1626 (bts=0,trx=0,ts=2,ss=0) IPAC PDCH ACT ACK
<0000> abis_rsl.c:2121 (bts=0,trx=0,ts=3,ss=0) SAPI=0 RELEASE INDICATION
<0004> abis_rsl.c:1727 (bts=0,trx=0,ts=3,ss=0) T3111 expired: releasing RF Channel
<0004> abis_rsl.c:865 (bts=0,trx=0,ts=3,ss=0) RF Channel Release
<0004> abis_rsl.c:2538 (bts=0,trx=0,ts=3,ss=0) IPAC_DLCX_IND 
Actions #4

Updated by dexter over 6 years ago

We now send the channel decactivation/activation commands:

cOCTVC1_GSM_MSG_TRX_DEACTIVATE_PHYSICAL_CHANNEL_CID on bts_model_ts_disconnect()
cOCTVC1_GSM_MSG_TRX_ACTIVATE_PHYSICAL_CHANNEL_CID on bts_model_ts_connect()

This seems to work fine. I also had problems with messed up pchan types in l1_if.c:bts_model_ts_connect(), which caused a lot of trouble. This is now fixed. Making voice calls looks stable. I do not experience any problems here. However. I have problems getting the GPRS traffic through. The phy complains that the logical channel is not actived.(cOCTVC1_GSM_RC_LOGICAL_CHANNEL_NOT_ACTIVATED)

--------------> handle_ph_readytosend_ind()
Mon Jul 31 18:23:08 2017 <0007> l1_if.c:955 Rx PH-RTS.ind 00/04/39 SAPI=PDTCH
Mon Jul 31 18:23:08 2017 <0007> l1sap.c:660 Rx PH-RTS.ind 000498/00/04/39/34 chan_nr=10 link_id=0
Mon Jul 31 18:23:08 2017 <0007> l1sap.c:1215 TX packet data 000498/00/04/39/34 is_ptcch=0 trx=0 ts=2 block_nr=7, arfcn=866, len=23
--------------> ph_data_req()
Mon Jul 31 18:23:08 2017 <0006> l1_if.c:273 l1if_req_compl(msg_len=512, cmd_id=cOCTVC1_GSM_MSG_TRX_REQUEST_LOGICAL_CHANNEL_DATA_CID, trans_id=124)
Mon Jul 31 18:23:08 2017 <0007> l1_if.c:1559 Rx LCHAN-DATA.resp (rc=cOCTVC1_GSM_RC_LOGICAL_CHANNEL_NOT_ACTIVATED(a0b0402))
Mon Jul 31 18:23:08 2017 <0007> l1_if.c:1563 LCHAN-DATA failed, rc=cOCTVC1_GSM_RC_LOGICAL_CHANNEL_NOT_ACTIVATED
Mon Jul 31 18:23:08 2017 <0006> l1_if.c:1297 rx_octvc1_resp(msg_id=0x010B0011, trans_id=124)
Mon Jul 31 18:23:08 2017 <0007> l1_if.c:1430 Rx NOTIF LCHAN-RTS.ind
--------------> handle_ph_readytosend_ind()
Mon Jul 31 18:23:08 2017 <0007> l1_if.c:955 Rx PH-RTS.ind 00/04/39 SAPI=PDTCH
Mon Jul 31 18:23:08 2017 <0007> l1sap.c:660 Rx PH-RTS.ind 000498/00/04/39/34 chan_nr=11 link_id=0
Mon Jul 31 18:23:08 2017 <0007> l1sap.c:1215 TX packet data 000498/00/04/39/34 is_ptcch=0 trx=0 ts=3 block_nr=7, arfcn=866, len=23
--------------> ph_data_req()
Mon Jul 31 18:23:08 2017 <0006> l1_if.c:273 l1if_req_compl(msg_len=512, cmd_id=cOCTVC1_GSM_MSG_TRX_REQUEST_LOGICAL_CHANNEL_DATA_CID, trans_id=125)
Mon Jul 31 18:23:08 2017 <0007> l1_if.c:1559 Rx LCHAN-DATA.resp (rc=cOCTVC1_GSM_RC_LOGICAL_CHANNEL_NOT_ACTIVATED(a0b0402))
Mon Jul 31 18:23:08 2017 <0007> l1_if.c:1563 LCHAN-DATA failed, rc=cOCTVC1_GSM_RC_LOGICAL_CHANNEL_NOT_ACTIVATED
Mon Jul 31 18:23:08 2017 <0006> l1_if.c:1297 rx_octvc1_resp(msg_id=0x010B0011, trans_id=125)
Mon Jul 31 18:23:08 2017 <0007> l1_if.c:1430 Rx NOTIF TIME.ind
Mon Jul 31 18:23:08 2017 <0007> l1sap.c:423 MPH_INFO time ind 495
Mon Jul 31 18:23:08 2017 <0007> l1_if.c:1430 Rx NOTIF TIME.ind
Mon Jul 31 18:23:08 2017 <0007> l1sap.c:423 MPH_INFO time ind 496
Mon Jul 31 18:23:08 2017 <0007> l1_if.c:1430 Rx NOTIF LCHAN-RTS.ind
--------------> handle_ph_readytosend_ind()
Mon Jul 31 18:23:08 2017 <0007> l1_if.c:955 Rx PH-RTS.ind 00/06/41 SAPI=SCH
Mon Jul 31 18:23:08 2017 <0006> l1_if.c:273 l1if_req_compl(msg_len=512, cmd_id=cOCTVC1_GSM_MSG_TRX_REQUEST_LOGICAL_CHANNEL_DATA_CID, trans_id=126)
Mon Jul 31 18:23:08 2017 <0007> l1_if.c:1559 Rx LCHAN-DATA.resp (rc=cOCTVC1_RC_OK(0))
Mon Jul 31 18:23:08 2017 <0006> l1_if.c:1297 rx_octvc1_resp(msg_id=0x010B0011, trans_id=126)
Mon Jul 31 18:23:08 2017 <0007> l1_if.c:1430 Rx NOTIF TIME.ind
Mon Jul 31 18:23:08 2017 <0007> l1sap.c:423 MPH_INFO time ind 497
Mon Jul 31 18:23:08 2017 <0007> l1_if.c:1430 Rx NOTIF TIME.ind
Mon Jul 31 18:23:08 2017 <0007> l1sap.c:423 MPH_INFO time ind 498
Mon Jul 31 18:23:08 2017 <0007> l1_if.c:1430 Rx NOTIF LCHAN-DATA.ind
Mon Jul 31 18:23:08 2017 <0007> l1sap.c:475 MPH_INFO meas ind chan_nr=0x0a
Mon Jul 31 18:23:08 2017 <0006> l1_if.c:1102 Rx PH-DATA.ind PDTCH:  data_len:0 
Mon Jul 31 18:23:08 2017 <0007> l1sap.c:958 Rx PH-DATA.ind 000494/00/00/35/30 chan_nr=10 link_id=0
Mon Jul 31 18:23:08 2017 <0007> l1_if.c:1430 Rx NOTIF LCHAN-RTS.ind

PTCCH and PTTCH activation seems to look good to me:

Mon Jul 31 18:23:08 2017 <0009> pcu_sock.c:858 PCU socket connected to external PCU
Mon Jul 31 18:23:08 2017 <0001> oml.c:76 Reporting FAILURE to BSC: 0.2.919-9530
Mon Jul 31 18:23:08 2017 <0007> l1sap.c:1291 activating channel chan_nr=0x0a trx=0
Mon Jul 31 18:23:08 2017 <0006> lchan.c:31 (bts=0,trx=0,ts=2,ss=0) state NONE -> ACTIVATION REQUESTED
Mon Jul 31 18:23:08 2017 <0006> l1_oml.c:1064 lchan_act called
=====================//////////////> mph_send_activate_req()
Mon Jul 31 18:23:08 2017 <0006> l1_oml.c:250 (bts=0,trx=0,ts=2,ss=0): lchan2lch_par tch_mode=0x00
Mon Jul 31 18:23:08 2017 <0006> l1_oml.c:456 (bts=0,trx=0,ts=2,ss=0) MPH-ACTIVATE.req (PDTCH TX_BTS_MS(DL))
Mon Jul 31 18:23:08 2017 <0006> l1_if.c:273 l1if_req_compl(msg_len=40, cmd_id=cOCTVC1_GSM_MSG_TRX_ACTIVATE_LOGICAL_CHANNEL_CID, trans_id=109)
Mon Jul 31 18:23:08 2017 <0007> l1sap.c:1291 activating channel chan_nr=0x0b trx=0
Mon Jul 31 18:23:08 2017 <0006> lchan.c:31 (bts=0,trx=0,ts=3,ss=0) state NONE -> ACTIVATION REQUESTED
Mon Jul 31 18:23:08 2017 <0006> l1_oml.c:1064 lchan_act called
=====================//////////////> mph_send_activate_req()
Mon Jul 31 18:23:08 2017 <0006> l1_oml.c:250 (bts=0,trx=0,ts=3,ss=0): lchan2lch_par tch_mode=0x00
Mon Jul 31 18:23:08 2017 <0006> l1_oml.c:456 (bts=0,trx=0,ts=3,ss=0) MPH-ACTIVATE.req (PDTCH TX_BTS_MS(DL))
Mon Jul 31 18:23:08 2017 <0006> l1_if.c:273 l1if_req_compl(msg_len=40, cmd_id=cOCTVC1_GSM_MSG_TRX_ACTIVATE_LOGICAL_CHANNEL_CID, trans_id=110)
Mon Jul 31 18:23:08 2017 <0007> l1_if.c:1559 Rx LCHAN-ACT.resp (rc=cOCTVC1_RC_OK(0))
Mon Jul 31 18:23:08 2017 <0006> l1_if.c:1297 rx_octvc1_resp(msg_id=0x010B000B, trans_id=109)
=====================//////////////> lchan_act_compl_cb()
Mon Jul 31 18:23:08 2017 <0006> l1_oml.c:387 (bts=0,trx=0,ts=2,ss=0) MPH-ACTIVATE.conf (PDTCH TX_BTS_MS(DL))
=====================//////////////> mph_send_activate_req()
Mon Jul 31 18:23:08 2017 <0006> l1_oml.c:250 (bts=0,trx=0,ts=2,ss=0): lchan2lch_par tch_mode=0x00
Mon Jul 31 18:23:08 2017 <0006> l1_oml.c:456 (bts=0,trx=0,ts=2,ss=0) MPH-ACTIVATE.req (PDTCH RX_BTS_MS(UL))
Mon Jul 31 18:23:08 2017 <0006> l1_if.c:273 l1if_req_compl(msg_len=40, cmd_id=cOCTVC1_GSM_MSG_TRX_ACTIVATE_LOGICAL_CHANNEL_CID, trans_id=111)
Mon Jul 31 18:23:08 2017 <0007> l1_if.c:1559 Rx LCHAN-ACT.resp (rc=cOCTVC1_RC_OK(0))
Mon Jul 31 18:23:08 2017 <0006> l1_if.c:1297 rx_octvc1_resp(msg_id=0x010B000B, trans_id=110)
=====================//////////////> lchan_act_compl_cb()
Mon Jul 31 18:23:08 2017 <0006> l1_oml.c:387 (bts=0,trx=0,ts=3,ss=0) MPH-ACTIVATE.conf (PDTCH TX_BTS_MS(DL))
=====================//////////////> mph_send_activate_req()
Mon Jul 31 18:23:08 2017 <0006> l1_oml.c:250 (bts=0,trx=0,ts=3,ss=0): lchan2lch_par tch_mode=0x00
Mon Jul 31 18:23:08 2017 <0006> l1_oml.c:456 (bts=0,trx=0,ts=3,ss=0) MPH-ACTIVATE.req (PDTCH RX_BTS_MS(UL))
Mon Jul 31 18:23:08 2017 <0006> l1_if.c:273 l1if_req_compl(msg_len=40, cmd_id=cOCTVC1_GSM_MSG_TRX_ACTIVATE_LOGICAL_CHANNEL_CID, trans_id=112)
Mon Jul 31 18:23:08 2017 <0007> l1_if.c:1559 Rx LCHAN-ACT.resp (rc=cOCTVC1_RC_OK(0))
Mon Jul 31 18:23:08 2017 <0006> l1_if.c:1297 rx_octvc1_resp(msg_id=0x010B000B, trans_id=111)
=====================//////////////> lchan_act_compl_cb()
Mon Jul 31 18:23:08 2017 <0006> l1_oml.c:387 (bts=0,trx=0,ts=2,ss=0) MPH-ACTIVATE.conf (PDTCH RX_BTS_MS(UL))
=====================//////////////> mph_send_activate_req()
Mon Jul 31 18:23:08 2017 <0006> l1_oml.c:250 (bts=0,trx=0,ts=2,ss=0): lchan2lch_par tch_mode=0x00
Mon Jul 31 18:23:08 2017 <0006> l1_oml.c:456 (bts=0,trx=0,ts=2,ss=0) MPH-ACTIVATE.req (PTCCH TX_BTS_MS(DL))
Mon Jul 31 18:23:08 2017 <0006> l1_if.c:273 l1if_req_compl(msg_len=40, cmd_id=cOCTVC1_GSM_MSG_TRX_ACTIVATE_LOGICAL_CHANNEL_CID, trans_id=113)
Mon Jul 31 18:23:08 2017 <0007> l1_if.c:1559 Rx LCHAN-ACT.resp (rc=cOCTVC1_RC_OK(0))
Mon Jul 31 18:23:08 2017 <0006> l1_if.c:1297 rx_octvc1_resp(msg_id=0x010B000B, trans_id=112)
=====================//////////////> lchan_act_compl_cb()
Mon Jul 31 18:23:08 2017 <0006> l1_oml.c:387 (bts=0,trx=0,ts=3,ss=0) MPH-ACTIVATE.conf (PDTCH RX_BTS_MS(UL))
=====================//////////////> mph_send_activate_req()
Mon Jul 31 18:23:08 2017 <0006> l1_oml.c:250 (bts=0,trx=0,ts=3,ss=0): lchan2lch_par tch_mode=0x00
Mon Jul 31 18:23:08 2017 <0006> l1_oml.c:456 (bts=0,trx=0,ts=3,ss=0) MPH-ACTIVATE.req (PTCCH TX_BTS_MS(DL))
Mon Jul 31 18:23:08 2017 <0006> l1_if.c:273 l1if_req_compl(msg_len=40, cmd_id=cOCTVC1_GSM_MSG_TRX_ACTIVATE_LOGICAL_CHANNEL_CID, trans_id=114)
Mon Jul 31 18:23:08 2017 <0007> l1_if.c:1559 Rx LCHAN-ACT.resp (rc=cOCTVC1_RC_OK(0))
Mon Jul 31 18:23:08 2017 <0006> l1_if.c:1297 rx_octvc1_resp(msg_id=0x010B000B, trans_id=113)
=====================//////////////> lchan_act_compl_cb()
Mon Jul 31 18:23:08 2017 <0006> l1_oml.c:387 (bts=0,trx=0,ts=2,ss=0) MPH-ACTIVATE.conf (PTCCH TX_BTS_MS(DL))
=====================//////////////> mph_send_activate_req()
Mon Jul 31 18:23:08 2017 <0006> l1_oml.c:250 (bts=0,trx=0,ts=2,ss=0): lchan2lch_par tch_mode=0x00
Mon Jul 31 18:23:08 2017 <0006> l1_oml.c:456 (bts=0,trx=0,ts=2,ss=0) MPH-ACTIVATE.req (PTCCH RX_BTS_MS(UL))
Mon Jul 31 18:23:08 2017 <0006> l1_if.c:273 l1if_req_compl(msg_len=40, cmd_id=cOCTVC1_GSM_MSG_TRX_ACTIVATE_LOGICAL_CHANNEL_CID, trans_id=115)
Mon Jul 31 18:23:08 2017 <0007> l1_if.c:1559 Rx LCHAN-ACT.resp (rc=cOCTVC1_RC_OK(0))
Mon Jul 31 18:23:08 2017 <0006> l1_if.c:1297 rx_octvc1_resp(msg_id=0x010B000B, trans_id=114)
=====================//////////////> lchan_act_compl_cb()
Mon Jul 31 18:23:08 2017 <0006> l1_oml.c:387 (bts=0,trx=0,ts=3,ss=0) MPH-ACTIVATE.conf (PTCCH TX_BTS_MS(DL))
=====================//////////////> mph_send_activate_req()
Mon Jul 31 18:23:08 2017 <0006> l1_oml.c:250 (bts=0,trx=0,ts=3,ss=0): lchan2lch_par tch_mode=0x00
Mon Jul 31 18:23:08 2017 <0006> l1_oml.c:456 (bts=0,trx=0,ts=3,ss=0) MPH-ACTIVATE.req (PTCCH RX_BTS_MS(UL))
Mon Jul 31 18:23:08 2017 <0006> l1_if.c:273 l1if_req_compl(msg_len=40, cmd_id=cOCTVC1_GSM_MSG_TRX_ACTIVATE_LOGICAL_CHANNEL_CID, trans_id=116)
Mon Jul 31 18:23:08 2017 <0007> l1_if.c:1430 Rx NOTIF TIME.ind
Mon Jul 31 18:23:08 2017 <0007> l1sap.c:423 MPH_INFO time ind 480
Mon Jul 31 18:23:08 2017 <0007> l1_if.c:1559 Rx LCHAN-ACT.resp (rc=cOCTVC1_RC_OK(0))
Mon Jul 31 18:23:08 2017 <0006> l1_if.c:1297 rx_octvc1_resp(msg_id=0x010B000B, trans_id=115)
=====================//////////////> lchan_act_compl_cb()
Mon Jul 31 18:23:08 2017 <0006> l1_oml.c:387 (bts=0,trx=0,ts=2,ss=0) MPH-ACTIVATE.conf (PTCCH RX_BTS_MS(UL))
Mon Jul 31 18:23:08 2017 <0006> lchan.c:31 (bts=0,trx=0,ts=2,ss=0) state ACTIVATION REQUESTED -> ACTIVE
Mon Jul 31 18:23:08 2017 <0007> l1sap.c:540 activate confirm chan_nr=0x0a trx=0
Mon Jul 31 18:23:08 2017 <0000> rsl.c:660 (bts=0,trx=0,ts=2,ss=0) not sending CHAN ACT ACK
Mon Jul 31 18:23:08 2017 <0006> l1_oml.c:863 (bts=0,trx=0,ts=2,ss=0) End of queue encountered. Now empty? 1
Mon Jul 31 18:23:08 2017 <0007> l1_if.c:1559 Rx LCHAN-ACT.resp (rc=cOCTVC1_RC_OK(0))
Mon Jul 31 18:23:08 2017 <0006> l1_if.c:1297 rx_octvc1_resp(msg_id=0x010B000B, trans_id=116)
=====================//////////////> lchan_act_compl_cb()
Mon Jul 31 18:23:08 2017 <0006> l1_oml.c:387 (bts=0,trx=0,ts=3,ss=0) MPH-ACTIVATE.conf (PTCCH RX_BTS_MS(UL))
Mon Jul 31 18:23:08 2017 <0006> lchan.c:31 (bts=0,trx=0,ts=3,ss=0) state ACTIVATION REQUESTED -> ACTIVE
Mon Jul 31 18:23:08 2017 <0007> l1sap.c:540 activate confirm chan_nr=0x0b trx=0
Mon Jul 31 18:23:08 2017 <0000> rsl.c:660 (bts=0,trx=0,ts=3,ss=0) not sending CHAN ACT ACK
Mon Jul 31 18:23:08 2017 <0006> l1_oml.c:863 (bts=0,trx=0,ts=3,ss=0) End of queue encountered. Now empty? 1
Mon Jul 31 18:23:08 2017 <0007> l1_if.c:1430 Rx NOTIF TIME.ind
Mon Jul 31 18:23:08 2017 <0007> l1sap.c:423 MPH_INFO time ind 481
Mon Jul 31 18:23:08 2017 <0007> l1_if.c:1430 Rx NOTIF LCHAN-RTS.ind

The current status is available in osmo-bts.git pmaier/octdynts

Actions #5

Updated by dexter over 6 years ago

  • % Done changed from 70 to 80

After analyzing some traces with octasics wireshark dissector plugins, it tured out that the return code "cOCTVC1_GSM_RC_LOGICAL_CHANNEL_NOT_ACTIVATED" was triggered by the PDTCH data coming from the PCU, even though the logical channels (PDTCH, PTCCH) were correctly activated beforehand. The reason was that the code tried to send the PDTCH data on the FACCH, which was of course not activated and so we got the CHANNEL NOT ACTIVATED returncode.

The issue is now fixed and the it seems to work now. It is possible to browse the web on one phone. As soon as two other phones are making a call, the browsing stops and can be continued when the call is over.

However, something still prevents it from working reliably. This is still subject to investigation. It looks like a timing problem during the initalization. Once it initalizes correctly, the tests works fine. If it does not initalize correctly. The PCU seems not to be able to transmit data through the PDCH.

The current status is available in osmo-bts.git pmaier/octdynts

Actions #6

Updated by dexter over 6 years ago

  • Status changed from In Progress to Resolved
  • % Done changed from 80 to 100

Tested the current master of osmo-bts and osmo-pcu, the mentioned reliability problem occurs there as well. Given that it is unlikely that the dynts patch is causing the problems. The patch is now up for review:

https://gerrit.osmocom.org/3527

Actions #7

Updated by dexter over 6 years ago

I think we are done here and we can close this now.

Actions #8

Updated by laforge over 6 years ago

  • Status changed from Resolved to Closed
Actions

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 48.8 MB)