I want to measure the attach time for NB-IoT with my Raspberry Pi Cellular IoT Kit (ME910C1-WW). I am interested in the time for packet transmission depending on signal strength and coverage extension. Depending on the condition, the delay should be significant. Could some recommend an appropriate procedure for this?
I’ve setup my module on a raspberry pi 4 with latest Raspberry OS (32 Bit, 2022-09-22, lite). I followed the procedure by the documentation. The module is created via USB, I’ve created accordingly a PPP device. NB-IoT is manually enabled via atcom:
I tried wireshark (as root) to capture from the PPP device to extract the attach time. However, it reads only IP traffic. For example, I cannot see NB IoT protocol traffic for session setup. I was successful to tweak the PPP device that it writes down also protocol traffic (record my-trace.pcap → /etc/ppp/options). But this reveals only PPP related protocol traffic, which might be not sufficient.
By there way are there also other ways to setup the module. All trials to use the PINs from Raspberry failed. Maybe it is also possible to use the wwan0 device.
Starting from a condition of RRC IDLE, in order to perform data traffic the module needs to send a “Service Request” and “RRC ReconnectionRequest” to the NW first send data traffic. After this, if the network replies, the module will be in RRC CONNECTED state, ready to send the data.
In case of bad network conditions, the problem could be that:
the “Service Request” and “RRC ReconnectionRequest” packets could be lost in the NW. The module needs to send them again and wait for a response. If it doesn’t arrive enter the expected time, the module retries to retransmit it. If the maximum number of retransmissions is done without success, the procedure fails.
From the 3GPP standard, the maximum number of retransmission of these messages is defined by N300 which can have a value from 0 to 7. It is decided by the NW.
The timer between two attempts is defined by T300 and can be set by the network equal to one of the following values: 400, 600, 800, 1000, 1200, 1400, 1600, 1800, 2000, 3000, 4000, 6000, 8000 ms
The data you want to send are partially/totally lost in the network. In function of the protocol used (e.g. TCP), of course, you will have retransmission of them;
Both cases 1 and 2 could extend the time required to send data. It’s not possible to quantify them a priori or find a straight relationship with the signal quality.