Feature #1867
closedimplement dynamic timeslots for octphy
100%
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
Updated by dexter almost 7 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
Updated by dexter almost 7 years ago
- File osmo-bts.log osmo-bts.log added
- % Done changed from 20 to 70
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
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
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: