Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

An opportunity to learn> OpenBTS GPRS Troubleshooting ... #34

Open
jarodcs opened this issue Mar 13, 2018 · 7 comments
Open

An opportunity to learn> OpenBTS GPRS Troubleshooting ... #34

jarodcs opened this issue Mar 13, 2018 · 7 comments

Comments

@jarodcs
Copy link

jarodcs commented Mar 13, 2018

Hello people!

Please little bit of your help here. The following enumerated log corresponds to the attempt of a smartphone working only on 2G attempting to connect to the GPRS network established by OpenBTS, I think it corresponds to a TWO-PHASE ACCESS PROCEDURE on CCCH (described here) :

  1. MAC.cpp:1020:makeReservationInt: GPRS1,401111:makeReservation restype=ForRACH afterBSN=401113,fn=1738156 mttype=0 rd->mRSSI=-21 rd->mTimingError=0

  2. MAC.cpp:1056:makeReservationInt: GPRS1,401111: reservation result: bsn=401113 bsn.FN()=1738156 rrbp=0

  3. MAC.cpp:1386:makeSingleBlockImmediateAssign: GPRS1,401111:serviceRACH at gBSNNext=401111 with reservation at RBN=401113=1738156 frames.

  4. MAC.cpp:1407:makeSingleBlockImmediateAssign: GPRS1,401111:GPRS serviceRACH sending L3ImmediateAssignment:RR Immediate Assignment PageMode=(0) DedicatedModeOrTBF=(TMA=0 Downlink=0 DMOrTBF=1) ChannelDescription=(typeAndOffset=TCH/F TN=2 TSC=2 ARFCN=512) RequestReference=(RA=0x79 T=40833 T1'=30 T2=13 T3=33) TimingAdvance=0 Single Block Packet Uplink Assignment mAlpha=10 mGamma=31 TBFStartFrame=1738156=(T=40876 T1p=30 T3=25 T2=4)

  5. MAC.cpp:2089:advanceBSNNext: GPRS1,401119:Reservation unanswered ForRACH ttype=0 TBF(null ptr) bsn=401113 fn=1738156res=( bsn=401113 ForRACH)

I think these GPRS Debug messages corresponds to this procedure:

MS ---------------------------------- BTS
----------- RACH --------------------->
<----------- IMM ASS ------------------
---- PCKT CONTROL ACK ------> <<<< FAIL TO ARRIVE AT OPENBTS !!!!
........................................................

What I ask from you here is to correct me on the assumptions that I am doing so I can get a guide to understand this no connection problem. My cellphone rarely connects to GPRS from OpenBTS and when it does it losses the GPRS connection after some time ... I think if I get to understand this and also with the support of GPRS Fundamentals (for example: here) it would be a good source for people that is hopping to get into how things work in GSM/GPRS. So my assumptions are as follows:

**BEFORE 1) and 2): **
At some previous point (maybe at BSN = 400945 or less), OpenBTS received a RACH message (RACH Procedure) from some cellphone. Now, the network has to answer with an Immediate Assignment to deliver Radio Resources to that cellphone, then ...

At 1) and 2):
The function called makeReservationInt from layer MAC (process taking place at BSN = 400946) performs a RRBP (Relative Reserved Block Period) reservation on a future BSN>=400949 (what is exactly BSN??) to expect and receive the Packet Control Acknowledgement (PCA) message from cellphone. I think it indicates at 1) that RACH message was received at frame number 1737445 and that establishment cause was LUR (Location Update Request, mttype=0) and that RSSI = -21dBm and zero timing error. At 2) it indicates that successfully reserved the BSN = 400949 to receive cellphone's PCA.

At 3) and 4)
It denotes the answer itself to the RACH message. The answer is called Immediate Assignment from OpenBTS to cellphone. The message is issued on Block Sequence Number = 400946 at Frame Number (FN) 1737445 (Here, which is the relationship between FN and BSN???). The Radio Resource Immediate Assignment message contains information of the Temporary Block Flow (TBF) that OpenBTS is reserving to "talk" with cellphone:

  • DedicatedModeOrTBF=(TMA=0 Downlink=0 DMOrTBF=1)
  • ChannelDescription=(typeAndOffset=TCH/F TN=2 TSC=2 ARFCN=512)
  • RequestReference=(RA=0x7a T=40104 T1'=30 T2=12 T3=18)
  • TimingAdvance=0
  • Single Block <<<< this leads me to think that it is a one phase access
  • Packet Uplink Assignment
  • mAlpha=10 mGamma=31
  • TBFStartFrame=1737445=(T=40165 T1p=30 T3=28 T2=21)

If the phone successfully receives this message then it will send a Packet Control ACK on BSN=400949 fn=1737445.

But at 5),
OpenBTS says that no answer from cellphone was received at BSN = 400949 fn = 1737445 and hence the TBF establishment was aborted. So, with no TBF, the cellphone does not continues with the following GPRS Attach Procedure, then no GMM protocol is activated, then no PDP Context is created and finally no GPRS data transfer is possible...

Questions:

  1. Correct my explanation PLEASE PLEASE PLEASE! so I can understand where I am.
  2. Is there any solution to this problem? Is my cellphone not answering the Immediate Assignments or Is my cellphone not receiving correctly the Immediate Assignment?
  3. At this poing, the phone is only registered on the network but now being able to access any service? or only GPRS services? What can I troubleshoot related with the power?

Thanks so much for your patience and help.

@daniel-starke
Copy link

You can try giving the mobile more time to answer the block assignment by increasing the +8 at MAC.cpp:1365 if you get stuck there. The BSN is the base station internal sequence number and directly mapped to the frame number.

@jarodcs
Copy link
Author

jarodcs commented Mar 13, 2018 via email

@daniel-starke
Copy link

Correct.
I was also using a VM running Ubuntu 16.04. GPRS worked for me, if the SIM card configuration matched the network configuration. I had issues at one point with those failing at the location update procedure after TBF allocation due to a mismatching configuration.
I only tried one cellphone at a time.

@jarodcs
Copy link
Author

jarodcs commented Mar 13, 2018

hello everyone. Well using the OpenBTS master version, I changed the "+8" on MAC.cpp:1365 for a "+9" and also for a "+10" and it just got worst ... if with +8 the cellphone attached to OpenBTS, with values =+9 or +10 it just attach and detach constantly ... so I decided to rollback to "+8".

After install the hole thin again, and re-set some configuration, now the cellphone sees the network and it presents as if it is attached to a GPRS network but no data packet flow is noticed.

The LOG:
Mar 13 17:41:36 researcher openbts: DEBUG 32732:674 2018-03-13T17:41:36.7 TBF.cpp:1003:mtFinishSuccess: GPRS1,42806:@@@ok TBF#48 mtMS= MS#1,TLLI=90560ac0 mtDir=RLCDir::Up#012#011 channels: down=( 0:2) up=( 0:2,usf=1)#12#011 mtState==TBFState::DataFinal mtAttached=1 mtTFI=16 mtTlli=0x90560ac0 17:41:36.7
Mar 13 17:41:36 researcher openbts: DEBUG 32732:674 2018-03-13T17:41:36.7 TBF.cpp:768:mtSetState: GPRS1,42806:watch:U48 36.7 MS#1 Fin

Mar 13 17:41:36 researcher openbts: DEBUG 32732:674 2018-03-13T17:41:36.7 MSInfo.cpp:227:msCleanUSFs: GPRS1,42807:CleanUSFs MS#1,TLLI=90560ac0 anyactiveuplinks=0 chcnt=1 freedusf=1
Mar 13 17:41:38 researcher transceiver: NOTICE 543:568 2018-03-13T17:41:38.4 Transceiver.cpp:192:pushRadioVector: dumping STALE burst in TRX->USRP interface
Mar 13 17:41:51 researcher openbts: DEBUG 32732:574 2018-03-13T17:41:51.8 MAC.cpp:1020:makeReservationInt: GPRS1,43562:makeReservation restype=ForRACH afterBSN=43564,fn=188777 mttype=0 rd->mRSSI=-10 rd->mTimingError=0
Mar 13 17:41:51 researcher openbts: DEBUG 32732:574 2018-03-13T17:41:51.8 MAC.cpp:1056:makeReservationInt: GPRS1,43562: reservation result: bsn=43564 bsn.FN()=188777 rrbp=0
Mar 13 17:41:51 researcher openbts: DEBUG 32732:574 2018-03-13T17:41:51.8 MAC.cpp:1386:makeSingleBlockImmediateAssign: GPRS1,43562:serviceRACH at gBSNNext=43562 with reservation at RBN=43564=188777 frames.
Mar 13 17:41:51 researcher openbts: DEBUG 32732:574 2018-03-13T17:41:51.8 MAC.cpp:1407:makeSingleBlockImmediateAssign: GPRS1,43562:GPRS serviceRACH sending L3ImmediateAssignment:RR Immediate Assignment PageMode=(0) DedicatedModeOrTBF=(TMA=0 Downlink=0 DMOrTBF=1) ChannelDescription=(typeAndOffset=TCH/F TN=2 TSC=2 ARFCN=512) RequestReference=(RA=0x78 T=18998 T1'=14 T2=18 T3=26) TimingAdvance=0 Single Block Packet Uplink Assignment mAlpha=10 mGamma=31 TBFStartFrame=188777=(T=19049 T1p=14 T3=26 T2=17)
Mar 13 17:41:51 researcher openbts: DEBUG 32732:674 2018-03-13T17:41:51.9 MAC.cpp:2089:advanceBSNNext: GPRS1,43570:Reservation unanswered ForRACH ttype=0 TBF(null ptr) bsn=43564 fn=188777res=( bsn=43564 ForRACH)

Mar 13 17:41:52 researcher openbts: DEBUG 32732:574 2018-03-13T17:41:52.9 MAC.cpp:1020:makeReservationInt: GPRS1,43621:makeReservation restype=ForRACH afterBSN=43623,fn=189033 mttype=0 rd->mRSSI=-10 rd->mTimingError=0
Mar 13 17:41:52 researcher openbts: DEBUG 32732:574 2018-03-13T17:41:52.9 MAC.cpp:1056:makeReservationInt: GPRS1,43621: reservation result: bsn=43623 bsn.FN()=189033 rrbp=0
Mar 13 17:41:52 researcher openbts: DEBUG 32732:574 2018-03-13T17:41:52.9 MAC.cpp:1386:makeSingleBlockImmediateAssign: GPRS1,43621:serviceRACH at gBSNNext=43621 with reservation at RBN=43623=189033 frames.
Mar 13 17:41:52 researcher openbts: DEBUG 32732:574 2018-03-13T17:41:52.9 MAC.cpp:1407:makeSingleBlockImmediateAssign: GPRS1,43621:GPRS serviceRACH sending L3ImmediateAssignment:RR Immediate Assignment PageMode=(0) DedicatedModeOrTBF=(TMA=0 Downlink=0 DMOrTBF=1) ChannelDescription=(typeAndOffset=TCH/F TN=2 TSC=2 ARFCN=512) RequestReference=(RA=0x78 T=19249 T1'=14 T2=9 T3=22) TimingAdvance=0 Single Block Packet Uplink Assignment mAlpha=10 mGamma=31 TBFStartFrame=189033=(T=19305 T1p=14 T3=27 T2=13)
Mar 13 17:41:53 researcher openbts: DEBUG 32732:674 2018-03-13T17:41:53.1 MAC.cpp:1760:processUplinkBlock: GPRS1,43627:-----> processUplinkBlock mac type=RLCControl ch:PDCH#512:2 AnsweringUsf=0 0 [0] 0 0

Mar 13 17:41:53 researcher openbts: DEBUG 32732:674 2018-03-13T17:41:53.1 MAC.cpp:1124:recvReservation: GPRS1,43627:recvReservationForRACH tbf=null bsn=43623 PDCH#512:2
Mar 13 17:41:53 researcher openbts: DEBUG 32732:674 2018-03-13T17:41:53.1 MAC.cpp:1791:processUplinkBlock: GPRS1,43627:processUplinkMessage:PacketResourceRequest
Mar 13 17:41:53 researcher openbts: DEBUG 32732:674 2018-03-13T17:41:53.1 MAC.cpp:1681:processResourceRequest: GPRS1,43627:processResourceRequest PacketResourceRequest: PayLoadType=RLCControl mCountDownValue=(0) mSI=(0) mR=(1) mMessageType=5 mAccessType=(3) TLLI=0x90560ac0 RACapability[0]=( mAccessTechnologyType=(3) mRFPowerCapability=(1) mESInd=(1) mVGCS=(0) mVBS=(0) mGPRSMultiSlotClass=(12) mGPRSExtendedDynamicAllocationCapability=(1)) mPeakThroughputClass=(9) mRadioPriority=(0) mRLCMode=(0) mLLCPDUType=(1) mRLCOctetCount=(42) mCValue=(34) mExtensionsPresent=0
Mar 13 17:41:53 researcher openbts: DEBUG 32732:674 2018-03-13T17:41:53.1 MAC.cpp:1671:processUplinkResourceRequest: GPRS1,43627:UplinkResourceRequest rmsg->mTLLI=0x90560ac0 MS#1,TLLI=90560ac0 TBF#49 rlcmode=0 count tbfs=
Mar 13 17:41:53 researcher openbts: DEBUG 32732:674 2018-03-13T17:41:53.1 MSInfo.cpp:109:getMultislotClass: GPRS1,43627: MS#1,TLLI=90560ac0 multislotclass=-1
Mar 13 17:41:53 researcher openbts: DEBUG 32732:674 2018-03-13T17:41:53.1 MSInfo.cpp:605:msAssignChannels: GPRS1,43627:Multislot mscap=1/1 max,down/up=1/1
Mar 13 17:41:53 researcher openbts: DEBUG 32732:674 2018-03-13T17:41:53.1 MSInfo.cpp:635:msAssignChannels: GPRS1,43627:watch:Channel Assign, max:down/up=1/1 ch down/up=1/1
Mar 13 17:41:53 researcher openbts: DEBUG 32732:674 2018-03-13T17:41:53.1 TBF.cpp:615:sendAssignment: GPRS1,43627: MS#1,TLLI=90560ac0 OnCCCH=0 RRMode=PacketIdle T3193=0 T3168=3000
Mar 13 17:41:53 researcher openbts: DEBUG 32732:674 2018-03-13T17:41:53.1 TBF.cpp:427:sendAssignmentPacch: GPRS1,43627:GPRS sendAssignment TBF#49 sending:PacketUplinkAssignment: PayLoadType=RLCControl mRRBP=(0) mSP=(0) mUSF=(0) mMessageType=10 mPageMode=0 TLLI=0x90560ac0 mChannelCodingCommand=3 mTLLIBlockChannelCoding=(0) mTimingAdvanceValue=(0) mAllocationType=(1) mExtendedDynamicAllocation=(0) mUSFGranularity=(0) mUplinkTFIAssignment=(17) mTBFStartingTimePresent=(0) mAlpha=(10) USF_TN2=1 Gamma=31
Mar 13 17:41:53 researcher openbts: DEBUG 32732:674 2018-03-13T17:41:53.1 MAC.cpp:1015:makeReservationInt: GPRS1,43627:makeReservation TBF#49 MS#1,TLLI=90560ac0 restype=ForRRBP afterBSN=-1,fn=0 mttype=1
Mar 13 17:41:53 researcher openbts: DEBUG 32732:674 2018-03-13T17:41:53.1 MAC.cpp:1056:makeReservationInt: GPRS1,43627: reservation result: bsn=43630 bsn.FN()=189063 rrbp=0
Mar 13 17:41:53 researcher openbts: DEBUG 32732:674 2018-03-13T17:41:53.2 MAC.cpp:1760:processUplinkBlock: GPRS1,43633:-----> processUplinkBlock mac type=RLCControl ch:PDCH#512:2 AnsweringUsf=0 0 [0] 0 0
Mar 13 17:41:53 researcher openbts: DEBUG 32732:674 2018-03-13T17:41:53.2 MAC.cpp:1114:recvReservation: GPRS1,43633:recvReservation ForRRBP ttype=1 TBF#49 MS#1,TLLI=90560ac0 bsn=43630 PDCH#512:2
Mar 13 17:41:53 researcher openbts: DEBUG 32732:674 2018-03-13T17:41:53.2 MAC.cpp:1791:processUplinkBlock: GPRS1,43633:processUplinkMessage:PacketControlAcknowledgement
Mar 13 17:41:53 researcher openbts: DEBUG 32732:674 2018-03-13T17:41:53.2 MAC.cpp:1740:processControlAcknowledgement: GPRS1,43633:processControlAck PacketControlAcknowledgement: PayLoadType=RLCControl mCountDownValue=(0) mSI=(0) mR=(1) mMessageType=1 TLLI=0x90560ac0 mCtrlAck=(3)
Mar 13 17:41:53 researcher openbts: DEBUG 32732:674 2018-03-13T17:41:53.2 TBF.cpp:760:mtSetState: GPRS1,43633:watch:U49 53.2 MS#1 Start bytes=42 down/up=1/1
Mar 13 17:41:53 researcher openbts: DEBUG 32732:674 2018-03-13T17:41:53.3 MAC.cpp:1760:processUplinkBlock: GPRS1,43637:-----> processUplinkBlock mac type=RLCData ch:PDCH#512:2 AnsweringUsf=0 0 [1] 1 1
Mar 13 17:41:53 researcher openbts: DEBUG 32732:674 2018-03-13T17:41:53.3 RLCEngine.cpp:683:engineRecvDataBlock: GPRS1,43637:watch:BU49 53.3 MS#1 tn=2 block=0 cc=3 final
Mar 13 17:41:53 researcher openbts: DEBUG 32732:674 2018-03-13T17:41:53.3 LLC.cpp:270:llcWriteLowSide: LLC:llcWriteLowSide sapi=1
Mar 13 17:41:53 researcher openbts: DEBUG 32732:674 2018-03-13T17:41:53.3 LLC.cpp:209:llcProcess: LLC:UI::llcProcess
Mar 13 17:41:53 researcher openbts: DEBUG 32732:674 2018-03-13T17:41:53.3 LLC.cpp:331:lleUplinkData: LLC:LlcEntityGmm lleUplinkData
Mar 13 17:41:53 researcher openbts: ERR 32732:674 2018-03-13T17:41:53.3 GPRSL3Messages.cpp:82:gmmParse: SGSN:Premature end of GPRS GMM message type 1 AttachRequest
Mar 13 17:41:53 researcher openbts: DEBUG 32732:674 2018-03-13T17:41:53.3 RLCEngine.cpp:762:engineUpAckNack: GPRS1,43637:watch:AU49 53.3 MS#1 SSN=1 state=3 keepalive=0 persist=0
Mar 13 17:41:53 researcher openbts: DEBUG 32732:674 2018-03-13T17:41:53.3 RLCEngine.cpp:585:engineService: GPRS1,43637: TBF#49 PacketUplinkAckNack: PayLoadType=RLCControl mRRBP=(0) mSP=(0) mUSF=(0) mMessageType=9 mPageMode=0 mUplinkTFI=(17) mChannelCodingCommand=3 mFinalAckIndication=(1) mSSN=(1) Bitmap=(0000000000000001) mTimingAdvanceValue=(0) mTBFEst=(1)
Mar 13 17:41:53 researcher openbts: DEBUG 32732:674 2018-03-13T17:41:53.3 MAC.cpp:1015:makeReservationInt: GPRS1,43637:makeReservation TBF#49 MS#1,TLLI=90560ac0 restype=ForRRBP afterBSN=-1,fn=0 mttype=4
Mar 13 17:41:53 researcher openbts: DEBUG 32732:674 2018-03-13T17:41:53.3 MAC.cpp:1056:makeReservationInt: GPRS1,43637: reservation result: bsn=43640 bsn.FN()=189106 rrbp=0
Mar 13 17:41:53 researcher openbts: DEBUG 32732:674 2018-03-13T17:41:53.3 MAC.cpp:1760:processUplinkBlock: GPRS1,43638:-----> processUplinkBlock mac type=RLCData ch:PDCH#512:2 AnsweringUsf=0 1 [1] 1 1
Mar 13 17:41:53 researcher openbts: DEBUG 32732:674 2018-03-13T17:41:53.3 RLCEngine.cpp:683:engineRecvDataBlock: GPRS1,43638:watch:BU49 53.3 MS#1 tn=2 block=0 cc=3 final dup
Mar 13 17:41:53 researcher openbts: DEBUG 32732:674 2018-03-13T17:41:53.3 MAC.cpp:1760:processUplinkBlock: GPRS1,43639:-----> processUplinkBlock mac type=RLCData ch:PDCH#512:2 AnsweringUsf=1 1 [1] 1 0
Mar 13 17:41:53 researcher openbts: DEBUG 32732:674 2018-03-13T17:41:53.3 RLCEngine.cpp:683:engineRecvDataBlock: GPRS1,43639:watch:BU49 53.3 MS#1 tn=2 block=0 cc=3 final dup
Mar 13 17:41:53 researcher openbts: DEBUG 32732:674 2018-03-13T17:41:53.3 MAC.cpp:1760:processUplinkBlock: GPRS1,43640:-----> processUplinkBlock mac type=RLCData ch:PDCH#512:2 AnsweringUsf=1 1 [1] 0 0
Mar 13 17:41:53 researcher openbts: DEBUG 32732:674 2018-03-13T17:41:53.3 RLCEngine.cpp:683:engineRecvDataBlock: GPRS1,43640:watch:BU49 53.3 MS#1 tn=2 block=0 cc=3 final dup
Mar 13 17:41:53 researcher openbts: DEBUG 32732:674 2018-03-13T17:41:53.4 MAC.cpp:1760:processUplinkBlock: GPRS1,43643:-----> processUplinkBlock mac type=RLCControl ch:PDCH#512:2 AnsweringUsf=0 0 [0] 0 0
Mar 13 17:41:53 researcher openbts: DEBUG 32732:674 2018-03-13T17:41:53.4 MAC.cpp:1114:recvReservation: GPRS1,43643:recvReservation ForRRBP ttype=4 TBF#49 MS#1,TLLI=90560ac0 bsn=43640 PDCH#512:2
Mar 13 17:41:53 researcher openbts: DEBUG 32732:674 2018-03-13T17:41:53.4 MAC.cpp:1791:processUplinkBlock: GPRS1,43643:processUplinkMessage:PacketControlAcknowledgement
Mar 13 17:41:53 researcher openbts: DEBUG 32732:674 2018-03-13T17:41:53.4 MAC.cpp:1740:processControlAcknowledgement: GPRS1,43643:processControlAck PacketControlAcknowledgement: PayLoadType=RLCControl mCountDownValue=(0) mSI=(0) mR=(1) mMessageType=1 TLLI=0x90560ac0 mCtrlAck=(3)
Mar 13 17:41:53 researcher openbts: DEBUG 32732:674 2018-03-13T17:41:53.4 TBF.cpp:1003:mtFinishSuccess: GPRS1,43643:@@@ok TBF#49 mtMS= MS#1,TLLI=90560ac0 mtDir=RLCDir::Up#012#011 channels: down=( 0:2) up=( 0:2,usf=1)#12#011 mtState==TBFState::DataFinal mtAttached=1 mtTFI=17 mtTlli=0x90560ac0 17:41:53.4
Mar 13 17:41:53 researcher openbts: DEBUG 32732:674 2018-03-13T17:41:53.4 TBF.cpp:768:mtSetState: GPRS1,43643:watch:U49 53.4 MS#1 Fin

A message that describes an ERROR on the below log is:

SGSN:Premature end of GPRS GMM message type 1 AttachRequest

I am about to quit ... somehow GPRS is not working for me ... any suggestions please?

@jarodcs
Copy link
Author

jarodcs commented Mar 30, 2018

Ok. I can conclude this: For some reason, GPRS feature from OpenBTS does not work well on some cellphones.

I was able to test a Lonet SIM808 module with OpenBTS GPRS. This module can connect to a GPRS network by the means of AT commands. These AT Commands you can send to the SIM808 through a serial monitor interface provided, for example, by an Arduino Mega 2560. More details here and here.

I can say that all TCP connection establishment attempt against the OpenBTS GPRS network was successful and pings to an external IP address were successful too, of course there are some lost packets but nothing of that much of importance to think that there is something wrong with the radio link. My next target is to build a script on the Arduino IDE to program the SIM808 to send pings for 24 hours to the OpenBTS GPRS network so we can determine some reliability of the solution. Any suggestion or comment on this will be greatly appreciated.

@Josejose12
Copy link

¡Hola gente!

Por favor, un poco de tu ayuda aquí. El siguiente registro enumerado corresponde al intento de un teléfono inteligente que funciona solo en 2G que intenta conectarse a la red GPRS establecida por OpenBTS, creo que corresponde a un PROCEDIMIENTO DE ACCESO DE DOS FASES en CCCH (descrito aquí ):

  1. MAC.cpp: 1020: makeReservationInt: GPRS1,401111: makeReservation restype = ForRACH afterBSN = 401113, fn = 1738156 mttype = 0 rd-> mRSSI = -21 rd-> mTimingError = 0
  2. MAC.cpp: 1056: makeReservationInt: GPRS1,401111: resultado de la reserva: bsn = 401113 bsn.FN () = 1738156 rrbp = 0
  3. MAC.cpp: 1386: makeSingleBlockImmediateAssign: GPRS1,401111: serviceRACH en gBSNNext = 401111 con reserva en RBN = 401113 = 1738156 tramas.
  4. MAC.cpp: 1407: makeSingleBlockImmediateAssign: GPRS1,401111: GPRS serviceRACH que envía L3ImmediateAssignment: RR Immediate Assignment PageMode = (0) DedicatedModeOrTBF = (TMA = 0 Downlink = 0 DMOrTBF = 1) ChannelDescription = (typeAndCff = TNT / C = 2 ARFCN = 512) RequestReference = (RA = 0x79 T = 40833 T1 '= 30 T2 = 13 T3 = 33) TimingAdvance = 0 Asignación de enlace ascendente de paquete de bloque único mAlpha = 10 mGamma = 31 TBFStartFrame = 1738156 = (T = 40876 T1p = 30 T3 = 25 T2 = 4)
  5. MAC.cpp: 2089: advanceBSNNext: GPRS1,401119: Reserva sin respuesta ForRACH ttype = 0 TBF (null ptr) bsn = 401113 fn = 1738156res = (bsn = 401113 ForRACH)

Creo que estos mensajes de depuración GPRS corresponden a este procedimiento:

MS ---------------------------------- BTS
----------- RACH - ------------------->
<----------- IMM ASS ---------------- -
---- ACK DE CONTROL DE PCKT ------> <<<< ¡¡¡NO PUEDE LLEGAR A OPENBTS !!!!
.................................................. ......

Lo que le pido aquí es que me corrija con las suposiciones que estoy haciendo para que pueda obtener una guía para entender este problema sin conexión. Mi teléfono celular rara vez se conecta a GPRS desde OpenBTS y cuando lo hace pierde la conexión GPRS después de un tiempo ... Creo que si llego a entender esto y también con el apoyo de Fundamentos de GPRS (por ejemplo: aquí ) sería un buen fuente para las personas que están tratando de entender cómo funcionan las cosas en GSM / GPRS. Entonces mis suposiciones son las siguientes:

** ANTES de 1) y 2): **
En algún punto anterior (tal vez en BSN = 400945 o menos), OpenBTS recibió un mensaje RACH (Procedimiento RACH) de algún teléfono celular. Ahora, la red tiene que responder con una asignación inmediata para entregar recursos de radio a ese teléfono celular, luego ...

En 1) y 2):
la función llamada makeReservationInt de la capa MAC (proceso que tiene lugar en BSN = 400946) realiza una reserva RRBP (período de bloque reservado relativo) en un futuro BSN> = 400949 ( ¿qué es exactamente BSN ?? ) para esperar y reciba el mensaje de Reconocimiento de control de paquetes (PCA) del teléfono celular. Creo que indica en 1) que se recibió un mensaje RACH en el número de trama 1737445 y que la causa del establecimiento fue LUR (Solicitud de actualización de ubicación, mttype = 0 ) y que RSSI = -21dBm y error de temporización cero. En 2) indica que reservó con éxito el BSN = 400949 para recibir el PCA del teléfono celular.

En 3) y 4)
denota la respuesta misma al mensaje RACH. La respuesta se llama asignación inmediata de OpenBTS al teléfono celular. El mensaje se emite en Número de secuencia de bloque = 400946 en Número de trama (FN) 1737445 (¿Cuál es la relación entre FN y BSN ??? ). El mensaje de asignación inmediata de recursos de radio contiene información del flujo de bloque temporal (TBF) que OpenBTS se reserva para "hablar" con el teléfono celular:

  • DedicatedModeOrTBF = (TMA = 0 Enlace descendente = 0 DMOrTBF = 1)
  • ChannelDescription = (typeAndOffset = TCH / F TN = 2 TSC = 2 ARFCN = 512)
  • RequestReference = (RA = 0x7a T = 40104 T1 '= 30 T2 = 12 T3 = 18)
  • TimingAdvance = 0
  • Bloque único <<<< esto me lleva a pensar que es un acceso de una fase
  • Asignación de enlace ascendente de paquetes
  • mAlpha = 10 mGamma = 31
  • TBFStartFrame = 1737445 = (T = 40165 T1p = 30 T3 = 28 T2 = 21)

Si el teléfono recibe este mensaje con éxito, enviará un ACK de control de paquetes en BSN = 400949 fn = 1737445.

Pero a las 5),
OpenBTS dice que no se recibió respuesta del teléfono celular en BSN = 400949 fn = 1737445 y, por lo tanto, el establecimiento de TBF fue abortado. Entonces, sin TBF, el teléfono celular no continúa con el siguiente Procedimiento de Conexión GPRS, luego no se activa el protocolo GMM, luego no se crea el Contexto PDP y finalmente no es posible la transferencia de datos GPRS ...

Preguntas:

  1. Corrija mi explicación ¡POR FAVOR POR FAVOR! para que pueda entender donde estoy.
  2. ¿Hay alguna solución a este problema? ¿Mi teléfono celular no responde a las asignaciones inmediatas o mi teléfono celular no recibe correctamente la asignación inmediata?
  3. En este momento, ¿el teléfono solo está registrado en la red pero ahora puede acceder a cualquier servicio? o solo servicios GPRS? ¿Qué puedo solucionar relacionado con el poder?

Muchas gracias por su paciencia y ayuda.

Can I use a € 5 gsm antenna to operate openbts?

@jarodcs
Copy link
Author

jarodcs commented Feb 3, 2020

Yes, u can, and make sure VSWR parameter is below 2 and measure it, not just see the technical spec, measure it. Bad antennas can damage the PA on your SDR device.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants