We are testing the qmi support on MC7430, when the MTU is configured below 1500 and when the data traffic is greater than interface MTU, the modem freezes after some time. I see that it could be an issue with mc7430 fragmentation handling. We had checked the behaviour on MBPL r20 with the connection -manager and the issue is seen. I had checked all the options mentioned in the freedesktop and Sierra forms(suggested to use gobinet, but it’s in EOL), nothing worked. The only way to recover is to restart the box. Any help will be greatly appreciated.
do you see this problem on Ubuntu PC?
FYI, no problem is found to run the connection manager sample on MC7430 with FW SWI9X30C_02.36.00.00 on Ubuntu 18 with kernel version 4.13.
I have done a iperf UDP test for over 50 minutes.
Thanks a lot for your quick response. We test it on ubuntu 18 with 4.15 kernal. We tested with 2.36 as well and we saw the issue. Although, on 2.33 it was seen very frequently, in 2.36 it took us about 40 min to reproduce the issue. Further, we tested in Gobinet it looks to be stabe.
Following are the steps we followed,
Preconfig
Client-side :
connect the MC7430 via qmicli or connection-manager
change the interface mtu of the wwan0 to 1100(tested with Carrier provided mtu, if MTU below 1500, the chance of hitting the issue is high )
make sure the default gateway is via wwan
ping to google is working
Server-side :
make the packet size 1450
iperf -s -u -l 1450
Steps to do after pre config:
Client-side:
iperf -u -c -b 10M
Client-side: Keep repeating command at step-1 about 10 minutes
Server-side: change the packet size to 1500
iperf -s -u -l 1500
Client-side: Keep repeating the command at step-1 about 5 more minutes
Client-side:
iperf -u -c -b 10M -l 1400
Client-side: Keep repeating command at step-5 about 10 minutes
Server-side: change the packet size to 1260
iperf -s -u -l 1260
Client-side: We kept repeating the command at step-5 until the issue is seen (it happens in about 10 minutes)
Please note:
In original testing, we lowered the MTU and connected a host behind the current device. After few min of browsing we hit the issue. Did traffic profiling and we tested with various traffic types. With above steps, we can see the issue consistently. We also observed that the throughput decreases with fragmentation and the ping delay increases gradually over time. We took sim7600 as a reference, we did the same testing for about a day and didnt find any degrade in the iperf throughput or the ping response.
I used the default MTU and did not make any change to it.
Also I used iperf to send UDP, no problem is found to run the following script on MC7430 with FW SWI9X30C_02.36.00.00 on Ubuntu 18 with kernel version 4.13.
while true; do
date
sudo iperf -u -c 116.66.221.43 -p 5050 -b 10M
done
Attached log2.txt is the log for this experiment. log2.txt (115.9 KB)
Is the default MTU 1500 ? In my test, setting the wwan interface mtu below 1500 is the main step. For example, the Airtel isp is giving the mtu as 1358. Can you try setting wwan interface mtu as 1100. I also observed that the chance of occurrence is high when fragmentation occurs on both TX and RX. So, can you increase the iperf udp payload length on both the server and client. I will try to get the logs with 2.36 firmware.
I tried this setting as well, but with this setting, I am seeing an issue on the RX side. When the packet size is greater than the interface MTU, then the overrun’s are increasing. The first few packets are making in(20-40) and later are dropped. It can be easily created with a simple client-server socket program, where the server always sends a packet greater than the interface MTU.
Modem struck issue is resolved. But, we have seen few service providers where the MTU published is less than 1500. So this solution of putting the modem in USB 2.0 will an issue for us . Unfortunately, we are not able to capture the packets in tcpdump. I am suspecting that the packet is dropped on the host but before the tcpdump hook.
OK, at least there is no more stuck issue when you lower the MTU to 1100.
So can you elaborate more on what is the issue now on setting the USB2.0 and MTU 1100?
I made a client-server program where they exchange packet of length 1450. When I freshly start the system, connect the modem and start the client, then the packet exchange works fine for few packets. Later, I see that all the packets of length 1450 are dropped on the receive side(RX). I also observed that, if packet size less than the mtu is received, they are not dropped. On the transmit side, irrespective of the packet size they are transmitted and received on the server.