Potential bug entering PMS while searching network

I discovered weird modem behavior when testing my application with a weak or undetectable signal. Mine testing was as follows:

  • modem connected to the network
  • communication with the server started
  • signal was shielded during communication

On most attempts modem transitioned to the limited service sleep and again connected to the network after unshielding.

Log:

[      334.604][D] LTE: RSRP=-120dBm (1), RSRQ=-16.5dB (0)
[      335.617][D] LTE: RSRP=-123dBm (0), RSRQ=-19dB (0)
[      336.646][D] LTE: RSRP=-131dBm (0), RSRQ=-19.5dB (0)
[      336.942][D] LTE: SNR=-9dB (0)
[      337.455][D] LTE: RSRP=-136dBm (0), RSRQ=-19.5dB (0)
[      337.456][D] LTE: SNR=-12dB (0)
[      343.855][D] LTE: SNR=-22dB (0)
[      374.461][D] UDP: sending 133B
[      374.472][D] UDP: sendto() successful
[      376.181][D] LTE: RRC=IDLE
[      377.457][D] LTE: RSRP=255dBm (0), RSRQ=255dB (0)
[      377.458][D] LTE: SNR=127dB (0)
[      377.458][D] LTE: Status=CEREG_SEARCHING, TAC=0002, Cell=00000002, reject=2, T3324=00000000, T3412=00000000
[      377.461][D] LTE: Band=0
[      388.282][D] LTE: Status=CEREG_UNKNOWN, TAC=0004, Cell=00000004, reject=4, T3324=00000000, T3412=00000000
[      388.290][D] LTE: Band=0
[      404.058][D] LTE: Sleep entered, type=LIMITED_SERVICE, time=11599
[      415.157][D] LTE: Sleep entered, type=LIMITED_SERVICE, time=500
[      415.682][D] LTE: Sleep exited
[      434.459][E] ND-IoT: Timeout on COM receive
[      455.411][D] LTE: Sleep entered, type=LIMITED_SERVICE, time=16699
[      471.610][D] LTE: Sleep entered, type=LIMITED_SERVICE, time=500
[      472.135][D] LTE: Sleep exited
[      511.934][D] LTE: Sleep entered, type=LIMITED_SERVICE, time=22399
[      533.834][D] LTE: Sleep entered, type=LIMITED_SERVICE, time=500
[      534.359][D] LTE: Sleep exited
[      534.739][D] LTE: RSRP=-112dBm (1), RSRQ=-11.5dB (2)
[      534.741][D] LTE: SNR=3dB (2)
[      534.741][D] LTE: Status=CEREG_REGISTERED_ROAMING, TAC=FDE8, Cell=044EB3AC, reject=0, T3324=00011111, T3412=01011000
[      534.744][D] LTE: Band=20
[      534.748][I] LTE: Connected (took 157s)
[      534.751][D] UDP: using socket 0
[      534.752][D] UDP: sending 5B
[      534.753][D] UDP: sendto() successful
[      535.561][D] LTE: RRC=CONNECTED
[      537.086][D] UDP: received 3B
[      537.087][D] ND-IoT: RTT=2.337s

But in one attempt the modem entered limited service sleep and then transitioned to the PSM, while it wasn't connected. This is problematic, because the application knows, that there is no service, so it will not try to send data (and wakeup the modem), so I guess, that the modem would wakeup with TAU, which was in my case 24h. I would think, that the modem should go to the PSM only when it is connected to the network?

Log:

[       69.632][D] UDP: sending 133B
[       69.642][D] UDP: sendto() successful
[       70.731][D] UDP: received 3B
[       70.732][D] ND-IoT: RTT=1.102s
[       70.736][I] ND-IoT: End of communication (took 3s)
[       76.637][D] LTE: RSRP=-115dBm (1), RSRQ=-13.5dB (1)
[       77.037][D] LTE: RSRP=-118dBm (1), RSRQ=-16.5dB (0)
[       77.039][D] LTE: SNR=-1dB (1)
[       79.040][D] LTE: RSRP=-123dBm (0), RSRQ=-19.5dB (0)
[       79.041][D] LTE: SNR=-4dB (1)
[       79.440][D] LTE: RSRP=-128dBm (0), RSRQ=-19.5dB (0)
[       79.640][D] LTE: SNR=-7dB (1)
[       80.040][D] LTE: RSRP=-133dBm (0), RSRQ=-19.5dB (0)
[       80.041][D] LTE: SNR=-10dB (0)
[       80.640][D] LTE: SNR=-13dB (0)
[       81.240][D] LTE: SNR=-16dB (0)
[       81.264][D] LTE: RRC=IDLE
[       81.284][D] LTE: RSRP=255dBm (0), RSRQ=255dB (0)
[       81.285][D] LTE: SNR=127dB (0)
[       81.384][D] LTE: Status=CEREG_SEARCHING, TAC=0002, Cell=00000002, reject=2, T3324=00000000, T3412=00000000
[       81.386][D] LTE: Band=0
[       87.006][D] LTE: Status=CEREG_UNKNOWN, TAC=0004, Cell=00000004, reject=4, T3324=00000000, T3412=00000000
[       87.015][D] LTE: Band=0
[      102.751][D] LTE: Sleep entered, type=LIMITED_SERVICE, time=11599
[      113.850][D] LTE: Sleep entered, type=LIMITED_SERVICE, time=500
[      114.376][D] LTE: Sleep exited
[      143.285][D] LTE: Status=CEREG_SEARCHING, TAC=0002, Cell=00000002, reject=2, T3324=00000000, T3412=00000000
[      143.288][D] LTE: Band=0
[      154.570][D] LTE: Status=CEREG_UNKNOWN, TAC=0004, Cell=00000004, reject=4, T3324=00000000, T3412=00000000
[      154.578][D] LTE: Band=0
[      154.579][D] LTE: Sleep entered, type=LIMITED_SERVICE, time=16799
[      154.580][D] LTE: Sleep entered, type=PSM, time=863926697

Development setup:

  • NRF9160 SIBA B1A
  • mfw 1.3.7
  • ncs 2.9.1
Parents
  • I would think, that the modem should go to the PSM only when it is connected to the network?

    One point with cellular may be considered as very nasty:

    There are different situations, the device can't distinguish, because the effect at the device is the same.

    You may consider, that the device should continue to search for a network, because you assume it's there an the device will find it soon. But if the device doesn't find a network, staying idle will drain the battery.

    This is problematic, because the application knows, that there is no service, so it will not try to send data (and wakeup the modem), so I guess, that the modem would wakeup with TAU, which was in my case 24h.

    A cellular application must explicitly consider the network state in order to apply the right strategy for the device to search for networks. There is a "%PERIODICSEARCHCONF" which helps. In the past %PERIODICSEARCHCONF - relation to EMM reject cause my result was, that the device stuck in idle and drains the battery. Maybe that has changed.

Reply
  • I would think, that the modem should go to the PSM only when it is connected to the network?

    One point with cellular may be considered as very nasty:

    There are different situations, the device can't distinguish, because the effect at the device is the same.

    You may consider, that the device should continue to search for a network, because you assume it's there an the device will find it soon. But if the device doesn't find a network, staying idle will drain the battery.

    This is problematic, because the application knows, that there is no service, so it will not try to send data (and wakeup the modem), so I guess, that the modem would wakeup with TAU, which was in my case 24h.

    A cellular application must explicitly consider the network state in order to apply the right strategy for the device to search for networks. There is a "%PERIODICSEARCHCONF" which helps. In the past %PERIODICSEARCHCONF - relation to EMM reject cause my result was, that the device stuck in idle and drains the battery. Maybe that has changed.

Children
No Data
Related