I have a real time application which requires ultra low latency (<50 ms in one way).
In order to achieve this, I need to know buffer occupancy on EC25 so I can adjust sender rate to avoid long latency.
Is there an API to get buffer occupancy available?
What is the TX buffer size on EC-25 module?
Hello FC_Jeng thanks for your question
EC25 tx buffer is 10K, we do not have a command to query the size of the remaining buffer area, and neither the send nor receive buffer can be queried using AT commands. Because this is limited by the network, it is impossible to monitor the size of the remaining buffer in real time, thank you.
I don't understand why buffer occupancy info is limited to network. Your FW should have visibility of how many bytes (or packets) are still in the sending buffer. Can you explain this in more details?
Is there a way to make tx buffer size smaller through SW configuration so our application will not send too many packets to data modem to avoid large latency in case we don’t have a visibility of buffer occupancy?
Our application is a UDP application using linux standard TCP/UDP APIs (like sendto) and it will change its sending rate according to data modem actual transmission rate to avoid packets stuck in the modem buffer and hence reducing latency.
Do you have an update of my 2 questions:
1)Why is tx buffer occupancy not visible?
2)Can tx buffer size make smaller than 10K?
Answer1: The data sending process is dynamic and is affected by the network delay, so it is impossible to monitor the space occupied by the buffer in real time.
Answer2: The tx buffer size can be modified, but this involves code modification, which needs to be customized on the main baseline, and the development cost is high. We need to evaluate whether it is necessary.
What are the test results with our module? What is the specific delay time? If you think the delay is high, can you describe the specific business process, whether the data from the application layer to the module has a high delay or whether the data is sent to the network has a high delay.
Generally speaking, when the cache is full, the write function will block the execution of the project code and wait for free space.
Our EC25 has supported qmi library and mbim library.
Since your modem module supports libqmi, can you run the following command and measure how much time it takes to get response? My application needs to query packet-statistics every 5 milli src.
qmicli -d /dev/cdc-wdm0 --device-open-proxy --wds-get-packet-statistics