PDP sessions rounding – over usage risk

Karel Krcmar
Posts: 1
Joined: Tue 20. Aug 2019 10:39:57

PDP sessions rounding – over usage risk

Post by Karel Krcmar » Tue 20. Aug 2019 16:25:44

As you might be aware of the rounding procedure in Vodafone Global network, by every session end the data amount is rounded to kB.

This is a huge problem if you choose small data tariff (e.g. 60kB/month) and your device is not using PSM correctly. Incorrect handling might guide to end and start of a PDP session by every data transfer!

Just imagine. Your device sends 20bytes and instead of going in sleep mode, it turns off the communication. After 1 hour, with another 20bytes, the total data consumption will be not 40B, but 2kB. Your data budget will be consumed within 60 hours, instead of 30 days!!!

Over usage data are very expensive! Please, double check your firmware design to avoid the unexpected surprise.

Some tips:
Check your PSM settings - AT+CPSMS
E.g. for Quectel BC66 – page 47 and further
https://sisoog.com/wp-content/uploads/2 ... l_V1.0.pdf

Sara N4/R4 – page 36 and further
https://www.u-blox.com/sites/default/fi ... 56%29.pdf

Telit NE866B1/ NL865B1 – page 12 and further
https://y1cj3stn5fbwhv73k0ipk1eg-wpengi ... -Rev3.pdf

Good practice for TAU would be about few hours more than time expected for next data transmission. Timer as short as possible… just about 10sec to save the energy (of course if your application needs longer time for downlink, just extend the timer…)

I was little bit confused with the values of TAU (T3412) and Timer (T3324). Logic bellow and examples helped me to understand how to set the values.
TAU:
Bits 5 to 1 represent the binary coded timer value
Bits 6 to 8 define the timer value unit as follows:
Bits 8 7 6
0 0 0 value is incremented in multiples of 10 minutes
0 0 1 value is incremented in multiples of 1 hour
0 1 0 value is incremented in multiples of 10 hours
0 1 1 value is incremented in multiples of 2 seconds
1 0 0 value is incremented in multiples of 30 seconds
1 0 1 value is incremented in multiples of 1 minute
1 1 0 value is incremented in multiples of 320 hours
1 1 1 value indicates that the timer is deactivated

For example: 01000010 -> 10 hours * 2 = 20hours

Timer (Requested_Active-Time):
Bits 5 to 1 represent the binary coded timer value.
Bits 6 to 8 defines the timer value unit for the GPRS timer as follows:
Bits 8 7 6
0 0 0 value is incremented in multiples of 2 seconds
0 0 1 value is incremented in multiples of 1 minute
0 1 0 value is incremented in multiples of decihours
1 1 1 value indicates that the timer is deactivated

For example: 00000101 -> 2 seconds * 5 = 10 seconds

I know, it´s for lamas, but this converter is quite useful tool for me ;)
https://www.binaryhexconverter.com/bina ... -converter