Dear Tom and List,
I am in the process of updating the wiki for USRP radios, therefor I am recompiling everything Osmocom related with the latest master branches.
I managed to setup the system, the CS services are working just fine (only fullrate and SMS is tested yet), but the GPRS service seems to be not working. I am using my well tested setup on 1800MHz (ARFCN 885), with duplex filters.
On the Osmo-BTS end I get this message:
<0007> l1sap.c:957 RACH for packet access <0007> l1sap.c:957 RACH for packet access <0007> l1sap.c:957 RACH for packet access <0007> l1sap.c:957 RACH for packet access <0007> l1sap.c:957 RACH for packet access <0007> l1sap.c:957 RACH for packet access <0007> l1sap.c:957 RACH for packet access <0007> l1sap.c:957 RACH for packet access <0007> l1sap.c:957 RACH for packet access <0007> l1sap.c:957 RACH for packet access <0007> l1sap.c:957 RACH for packet access <0007> l1sap.c:957 RACH for packet access <0007> l1sap.c:957 RACH for packet access <0007> l1sap.c:957 RACH for packet access <0007> l1sap.c:957 RACH for packet access
Osmo-PCU in the same time shows the following (repeatedly):
Thu Sep 8 12:48:30 2016 DRLCMAC <0002> tbf.cpp:819 TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=WAIT ASSIGN) timer 3169 expired. Thu Sep 8 12:48:30 2016 DRLCMAC <0002> tbf.cpp:874 TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=WAIT ASSIGN) T3169 timeout during transsmission Thu Sep 8 12:48:30 2016 DRLCMAC <0002> tbf.cpp:893 - Assignment was on CCCH Thu Sep 8 12:48:30 2016 DRLCMAC <0002> tbf.cpp:899 - No uplink data received yet Thu Sep 8 12:48:30 2016 DRLCMAC <0002> tbf.cpp:879 TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=WAIT ASSIGN) will be freed due to timeout Thu Sep 8 12:48:30 2016 DRLCMAC <0002> tbf.cpp:334 TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=WAIT ASSIGN) free Thu Sep 8 12:48:30 2016 DRLCMAC <0002> bts.cpp:1501 PDCH(TS 6, TRX 0): Detaching TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=WAIT ASSIGN), 0 TBFs, USFs = 00, TFIs = 00000000. Thu Sep 8 12:48:30 2016 DRLCMAC <0002> gprs_ms.cpp:323 Detaching TBF from MS object, TLLI = 0x00000000, TBF = TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=WAIT ASSIGN) Thu Sep 8 12:48:30 2016 DRLCMAC <0002> gprs_ms.cpp:140 Destroying MS object, TLLI = 0x00000000 Thu Sep 8 12:48:30 2016 DRLCMAC <0002> tbf.cpp:355 ********** TBF ends here ********** Thu Sep 8 12:48:31 2016 DRLCMAC <0002> bts.cpp:486 MS requests UL TBF on RACH, so we provide one: Thu Sep 8 12:48:31 2016 DRLCMAC <0002> tbf.cpp:672 ********** TBF starts here ********** Thu Sep 8 12:48:31 2016 DRLCMAC <0002> tbf.cpp:674 Allocating UL TBF: MS_CLASS=0/0 Thu Sep 8 12:48:31 2016 DRLCMAC <0002> gprs_ms.cpp:114 Creating MS object, TLLI = 0x00000000 Thu Sep 8 12:48:31 2016 DRLCMAC <0002> bts.cpp:413 Searching for first unallocated TFI: TRX=0 Thu Sep 8 12:48:31 2016 DRLCMAC <0002> bts.cpp:423 Found TFI=0. Thu Sep 8 12:48:31 2016 DRLCMAC <0002> gprs_rlcmac_ts_alloc.cpp:525 Slot Allocation (Algorithm B) for unknown class (assuming 12) Thu Sep 8 12:48:31 2016 DRLCMAC <0002> gprs_rlcmac_ts_alloc.cpp:560 - Rx=4 Tx=4 Sum Rx+Tx=5 Tta=2 Ttb=1 Tra=2 Trb=1 Type=1 Thu Sep 8 12:48:31 2016 DRLCMAC <0002> gprs_rlcmac_ts_alloc.cpp:157 - Skipping TS 0, because not enabled Thu Sep 8 12:48:31 2016 DRLCMAC <0002> gprs_rlcmac_ts_alloc.cpp:157 - Skipping TS 1, because not enabled Thu Sep 8 12:48:31 2016 DRLCMAC <0002> gprs_rlcmac_ts_alloc.cpp:157 - Skipping TS 2, because not enabled Thu Sep 8 12:48:31 2016 DRLCMAC <0002> gprs_rlcmac_ts_alloc.cpp:157 - Skipping TS 3, because not enabled Thu Sep 8 12:48:31 2016 DRLCMAC <0002> gprs_rlcmac_ts_alloc.cpp:579 - Possible DL/UL slots: (TS=0)"....CCCC"(TS=7) Thu Sep 8 12:48:31 2016 DRLCMAC <0002> gprs_rlcmac_ts_alloc.cpp:940 - Selected UL slots: (TS=0)"......U."(TS=7), single Thu Sep 8 12:48:31 2016 DRLCMAC <0002> gprs_rlcmac_ts_alloc.cpp:966 Using single slot at TS 6 for UL Thu Sep 8 12:48:31 2016 DRLCMAC <0002> gprs_rlcmac_ts_alloc.cpp:990 - Reserved DL/UL slots: (TS=0)"......C."(TS=7) Thu Sep 8 12:48:31 2016 DRLCMAC <0002> gprs_rlcmac_ts_alloc.cpp:1017 - Assigning UL TS 6 Thu Sep 8 12:48:31 2016 DRLCMAC <0002> bts.cpp:1481 PDCH(TS 6, TRX 0): Attaching TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=NULL), 1 TBFs, USFs = 01, TFIs = 00000001. Thu Sep 8 12:48:31 2016 DRLCMAC <0002> tbf.cpp:385 - Setting Control TS 6 Thu Sep 8 12:48:31 2016 DRLCMAC <0002> gprs_ms.cpp:267 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=NULL) Thu Sep 8 12:48:31 2016 DRLCMAC <0002> tbf.cpp:625 Allocated TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=NULL): trx = 0, ul_slots = 40, dl_slots = 00 Thu Sep 8 12:48:31 2016 DRLCMAC <0002> bts.cpp:291 TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=NULL) changes state from NULL to FLOW Thu Sep 8 12:48:31 2016 DRLCMAC <0002> tbf.cpp:409 TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) starting timer 3169. Thu Sep 8 12:48:31 2016 DRLCMAC <0002> bts.cpp:530 TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) [UPLINK] START Thu Sep 8 12:48:31 2016 DRLCMAC <0002> bts.cpp:534 TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) RX: [PCU <- BTS] RACH qbit-ta=0 ra=0x78, Fn=1011875 (27,35,7) Thu Sep 8 12:48:31 2016 DRLCMAC <0002> bts.cpp:536 TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) TX: START Immediate Assignment Uplink (AGCH) Thu Sep 8 12:48:31 2016 DRLCMAC <0002> bts.cpp:549 - TRX=0 (885) TS=6 TA=0 TSC=7 TFI=0 USF=0 Thu Sep 8 12:48:31 2016 DRLCMAC <0002> bts.cpp:291 TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) changes state from FLOW to WAIT ASSIGN Thu Sep 8 12:48:33 2016 DBSSGP <0009> gprs_bssgp_pcu.cpp:792 Sending flow control info on BVCI 2 Thu Sep 8 12:48:33 2016 DBSSGP <0009> gprs_bssgp_pcu.cpp:705 Computed BVC leak rate = 10000, num_pdch = 4, cs = CS-4 Thu Sep 8 12:48:33 2016 DBSSGP <0009> gprs_bssgp_pcu.cpp:729 Computed MS default leak rate = 10000, ms_num_pdch = 4, cs = CS-4 Thu Sep 8 12:48:33 2016 DBSSGP <0009> gprs_bssgp_pcu.cpp:758 Sending FLOW CONTROL BVC, Bmax = 100000, R = 10000, Bmax_MS = 100000, R_MS = 10000, avg_dly = 0 Thu Sep 8 12:48:33 2016 DBSSGP <0009> gprs_bssgp_pcu.cpp:385 rx BVCI_PTP gprs_bssgp_rx_ptp Thu Sep 8 12:48:33 2016 DBSSGP <0009> gprs_bssgp_pcu.cpp:245 rx BSSGP_PDUT_FLOW_CONTROL_BVC_ACK Thu Sep 8 12:48:36 2016 DRLCMAC <0002> tbf.cpp:819 TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=WAIT ASSIGN) timer 3169 expired. Thu Sep 8 12:48:36 2016 DRLCMAC <0002> tbf.cpp:874 TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=WAIT ASSIGN) T3169 timeout during transsmission Thu Sep 8 12:48:36 2016 DRLCMAC <0002> tbf.cpp:893 - Assignment was on CCCH Thu Sep 8 12:48:36 2016 DRLCMAC <0002> tbf.cpp:899 - No uplink data received yet Thu Sep 8 12:48:36 2016 DRLCMAC <0002> tbf.cpp:879 TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=WAIT ASSIGN) will be freed due to timeout Thu Sep 8 12:48:36 2016 DRLCMAC <0002> tbf.cpp:334 TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=WAIT ASSIGN) free Thu Sep 8 12:48:36 2016 DRLCMAC <0002> bts.cpp:1501 PDCH(TS 6, TRX 0): Detaching TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=WAIT ASSIGN), 0 TBFs, USFs = 00, TFIs = 00000000. Thu Sep 8 12:48:36 2016 DRLCMAC <0002> gprs_ms.cpp:323 Detaching TBF from MS object, TLLI = 0x00000000, TBF = TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=WAIT ASSIGN) Thu Sep 8 12:48:36 2016 DRLCMAC <0002> gprs_ms.cpp:140 Destroying MS object, TLLI = 0x00000000 Thu Sep 8 12:48:36 2016 DRLCMAC <0002> tbf.cpp:355 ********** TBF ends here ********** Thu Sep 8 12:48:36 2016 DRLCMAC <0002> bts.cpp:486 MS requests UL TBF on RACH, so we provide one: Thu Sep 8 12:48:36 2016 DRLCMAC <0002> tbf.cpp:672 ********** TBF starts here ********** Thu Sep 8 12:48:36 2016 DRLCMAC <0002> tbf.cpp:674 Allocating UL TBF: MS_CLASS=0/0 Thu Sep 8 12:48:36 2016 DRLCMAC <0002> gprs_ms.cpp:114 Creating MS object, TLLI = 0x00000000 Thu Sep 8 12:48:36 2016 DRLCMAC <0002> bts.cpp:413 Searching for first unallocated TFI: TRX=0 Thu Sep 8 12:48:36 2016 DRLCMAC <0002> bts.cpp:423 Found TFI=0. Thu Sep 8 12:48:36 2016 DRLCMAC <0002> gprs_rlcmac_ts_alloc.cpp:525 Slot Allocation (Algorithm B) for unknown class (assuming 12) Thu Sep 8 12:48:36 2016 DRLCMAC <0002> gprs_rlcmac_ts_alloc.cpp:560 - Rx=4 Tx=4 Sum Rx+Tx=5 Tta=2 Ttb=1 Tra=2 Trb=1 Type=1 Thu Sep 8 12:48:36 2016 DRLCMAC <0002> gprs_rlcmac_ts_alloc.cpp:157 - Skipping TS 0, because not enabled Thu Sep 8 12:48:36 2016 DRLCMAC <0002> gprs_rlcmac_ts_alloc.cpp:157 - Skipping TS 1, because not enabled Thu Sep 8 12:48:36 2016 DRLCMAC <0002> gprs_rlcmac_ts_alloc.cpp:157 - Skipping TS 2, because not enabled Thu Sep 8 12:48:36 2016 DRLCMAC <0002> gprs_rlcmac_ts_alloc.cpp:157 - Skipping TS 3, because not enabled Thu Sep 8 12:48:36 2016 DRLCMAC <0002> gprs_rlcmac_ts_alloc.cpp:579 - Possible DL/UL slots: (TS=0)"....CCCC"(TS=7) Thu Sep 8 12:48:36 2016 DRLCMAC <0002> gprs_rlcmac_ts_alloc.cpp:940 - Selected UL slots: (TS=0)"......U."(TS=7), single Thu Sep 8 12:48:36 2016 DRLCMAC <0002> gprs_rlcmac_ts_alloc.cpp:966 Using single slot at TS 6 for UL Thu Sep 8 12:48:36 2016 DRLCMAC <0002> gprs_rlcmac_ts_alloc.cpp:990 - Reserved DL/UL slots: (TS=0)"......C."(TS=7) Thu Sep 8 12:48:36 2016 DRLCMAC <0002> gprs_rlcmac_ts_alloc.cpp:1017 - Assigning UL TS 6 Thu Sep 8 12:48:36 2016 DRLCMAC <0002> bts.cpp:1481 PDCH(TS 6, TRX 0): Attaching TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=NULL), 1 TBFs, USFs = 01, TFIs = 00000001. Thu Sep 8 12:48:36 2016 DRLCMAC <0002> tbf.cpp:385 - Setting Control TS 6 Thu Sep 8 12:48:36 2016 DRLCMAC <0002> gprs_ms.cpp:267 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=NULL) Thu Sep 8 12:48:36 2016 DRLCMAC <0002> tbf.cpp:625 Allocated TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=NULL): trx = 0, ul_slots = 40, dl_slots = 00 Thu Sep 8 12:48:36 2016 DRLCMAC <0002> bts.cpp:291 TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=NULL) changes state from NULL to FLOW Thu Sep 8 12:48:36 2016 DRLCMAC <0002> tbf.cpp:409 TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) starting timer 3169. Thu Sep 8 12:48:36 2016 DRLCMAC <0002> bts.cpp:530 TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) [UPLINK] START Thu Sep 8 12:48:36 2016 DRLCMAC <0002> bts.cpp:534 TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) RX: [PCU <- BTS] RACH qbit-ta=0 ra=0x79, Fn=1013049 (27,36,11) Thu Sep 8 12:48:36 2016 DRLCMAC <0002> bts.cpp:536 TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) TX: START Immediate Assignment Uplink (AGCH) Thu Sep 8 12:48:36 2016 DRLCMAC <0002> bts.cpp:549 - TRX=0 (885) TS=6 TA=0 TSC=7 TFI=0 USF=0 Thu Sep 8 12:48:36 2016 DRLCMAC <0002> bts.cpp:291 TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) changes state from FLOW to WAIT ASSIGN Thu Sep 8 12:48:41 2016 DRLCMAC <0002> tbf.cpp:819 TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=WAIT ASSIGN) timer 3169 expired. Thu Sep 8 12:48:41 2016 DRLCMAC <0002> tbf.cpp:874 TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=WAIT ASSIGN) T3169 timeout during transsmission
The SGSN and GGSN logs are empty.
The RX gain is on 5dB, the UHD version is 3.10.0-release. Only GPRS is allowed so far on 4 PDCHs.
Osmo-TRX is started with default set:
Config Settings Log Level............... NOTICE Device args............. TRX Base Port........... 5700 TRX Address............. 127.0.0.1 Channels................ 1 Tx Samples-per-Symbol... 4 Rx Samples-per-Symbol... 1 EDGE support............ Disabled Reference............... Internal C0 Filler Table......... Disabled Multi-Carrier........... Disabled Diversity............... Disabled Tuning offset........... 0 RSSI to dBm offset...... 0 Swap channels........... 0
The CS call and SMS are both working fine, the audio quality is quite good.
Can someone give me a hint where this goes wrong? From what I see the PRACH is failing to succeed.
Regards, Csaba
Hi Sipos,
this sounds like https://osmocom.org/issues/1756
You need to either revert f1a7b8fc6651f92a8b7f3f27b7ca05d07f4e44e0 in osmo-pcu or add this to your pcu config:
pcu two-phase-access
Normally, whether to use two phase access is decided on the fly, but this option enforces two-phase-access for every assignment -- and incidentally works around the unknown bug.
This issue has been sitting there for some time now, and though adding the WAIT_ASSIGN state makes sense, we've still not resolved the bug hidden within. https://gerrit.osmocom.org/218
~Neels
Hi Neels,
pcu two-phase-access
Thanks for this, it "solved" the problem, the PDP context is active now.
Will put a note on the wiki.
Regards, Csaba
----- Eredeti üzenet ----- Feladó: "Neels Hofmeyr" nhofmeyr@sysmocom.de Címzett: "Sipos Csaba" sipos.csaba@kvk.uni-obuda.hu Másolatot kap: "OpenBSC Mailing List" openbsc@lists.osmocom.org Elküldött üzenetek: Csütörtök, 2016. Szeptember 8. 13:44:49 Tárgy: Re: PRACH fails
Hi Sipos,
this sounds like https://osmocom.org/issues/1756
You need to either revert f1a7b8fc6651f92a8b7f3f27b7ca05d07f4e44e0 in osmo-pcu or add this to your pcu config:
pcu two-phase-access
Normally, whether to use two phase access is decided on the fly, but this option enforces two-phase-access for every assignment -- and incidentally works around the unknown bug.
This issue has been sitting there for some time now, and though adding the WAIT_ASSIGN state makes sense, we've still not resolved the bug hidden within. https://gerrit.osmocom.org/218
~Neels
Dear all,
not really important, but still two remarks:
* GPRS related questions should preferrably go to the osmocom-net-gprs list
* RACH for packet service is not equal PRACH. PRACH is a dedicated logical channel on the Um interface that _can_ be enabled (like PBCCH, PCCCH, ...) but whihc is neither supported by osmo-bts/osmo-pcu, nor used anywhere. The 3GPP removed the PBCCH/PCCCH and all related channels several years ago from the specs, as there was no operator known to use any of them. So new handsets no longer (have to) support those channels, which means it is utterly useless for a new implementation like the Osmocom one to bother to support them.
Regards, Harald
On Fri, Sep 09, 2016 at 09:14:32AM +0800, Harald Welte wrote:
- RACH for packet service is not equal PRACH. PRACH is a dedicated logical channel on the Um interface that _can_ be enabled (like PBCCH, PCCCH, ...) but whihc is neither supported by osmo-bts/osmo-pcu, nor used anywhere. The 3GPP removed the PBCCH/PCCCH and all related channels several years ago from the specs, as there was no operator known to use any of them. So new handsets no longer (have to) support those channels, which means it is utterly useless for a new implementation like the Osmocom one to bother to support them.
Ah, good to know. Is PTCCH also one of those? It sounds similar, but I guess not? https://osmocom.org/issues/1796
~Neels
On Fri, Sep 09, 2016 at 05:15:18AM +0200, Neels Hofmeyr wrote:
Is PTCCH also one of those? It sounds similar, but I guess not? https://osmocom.org/issues/1796
No. PTCCH is not part of the packet common cotrol channel (PCCCH).
PCCCH is the one that's obsoleted, and it consists of PRACH, PBCCH, PPCH, PNCH and PAGCH (similar to CCCH = RACH+BCCH+PCH+AGCH+NCH in circuit switched).
See Section 6.3.2 and 7 of TS 05.02.