EM 9191 Max supported MTU

Hi All,

I am trying to test the max MTU supported by EM9191 and I see that the max MTU is controlled by two variables as per MBIM spec.

  • wMTU

  • wMaxSegmentSize

The values for the EM9191 are 1500 and 2048 respectively.

  • Any MTU config below 1500 works fine .

  • If MTU is configured above 2048 it gets errored as it exceeds wMaxsegmentSize

  • We cannot configure the MTU between 1500 to 2048, as any mtu in those ranges defaults to 1500. This is the result, as a min(new_mtu,wMTU) is taken.

I also checked for other sierra cards in MBIM mode and saw the same behaviour. Having few doubts,

  1. As per the MBIM v1 spec, wMaxSegmentSize should be at least 2048 . So higher cards can have higher value right ?

  2. In the spec , it states that wMTU “Operator preferred MTU for home network. wMTU applies to IP Data Streams.” . Here the Operator is the manufacturer or the ISP. I mean, if ISP give an MTU of 1600 then will wMTU change to 1600 ? I checked with ATT and Verizon sim, the isp provided MTU is less then 1500 but the wMTU statys at 1500.

Based my understanding, the MTU cap for EM9191 is 1500 only.

I think this depends on the network setting, some network needs to set below 1500.

I think by default, it is set to be 1500 and it can be changed by ifconfig

Hi Jyijyi

I had tried it

ifconfig wwan0
wwan0 Link encap:Ethernet HWaddr 6E:15:2C:28:27:2D
inet addr:25.0.88.37 Bcast:25.0.88.39 Mask:255.255.255.252
inet6 addr: fe80::6c15:2cff:fe28:272d/64 Scope:Link
UP BROADCAST RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:8085 errors:0 dropped:0 overruns:0 frame:0
TX packets:8885 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1455009 (1.3 MiB) TX bytes:844806 (825.0 KiB)

ifconfig wwan0 mtu 1600

ifconfig wwan0
wwan0 Link encap:Ethernet HWaddr 6E:15:2C:28:27:2D
inet addr:25.0.88.37 Bcast:25.0.88.39 Mask:255.255.255.252
inet6 addr: fe80::6c15:2cff:fe28:272d/64 Scope:Link
UP BROADCAST RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:8087 errors:0 dropped:0 overruns:0 frame:0
TX packets:8887 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1455166 (1.3 MiB) TX bytes:844931 (825.1 KiB)

Following is the logic in the kernel

if (new_mtu <= wSegmentSize) {
  dev->net->mtu = min(wMTU,new_mtu)
} else {
  error();
}

What is the mtu setting in your network?

We have different deployments, most of which lie between MTU 1350-1500. We have a few outliers, where we have seen ISP giving a max mtu of 1900.

Then from your code, you can only set it to 1500 for MBIM

Is that you must use MBIM?
Have you tried RMNET in AT!USBCOMP?
I remember MTU can be set for that interface.

I think only mbim is supported

AT!USBCOMP?
Config Index: 1
Config Type:  4 (USBIF-MBIM-V2)
Interface bitmask: 00001009 (diag,modem,mbim) 

OK


AT!USBCOMP=?
!USBCOMP: 
AT!USBCOMP=<Config Index>,<Config Type>,<Interface bitmask>
  <Config Index>      - configuration index to which the composition applies, should be 1

  <Config Type>       - 1:Generic              (Not supported),
                        2:USBIF MBIM           (Not supported),
                        3:RNDIS                (Not supported),
                        4:USBIF MBIM V2        (Supported),
                        5:USBIF RMNET          (Not supported),
                        6:USBIF MBIM_V2_CUSTOM (Supported)

  <Interface bitmask> - DIAG     - 0x00000001,
                        ADB      - 0x00000002,
                        MODEM    - 0x00000008,
                        MBIM     - 0x00001000,
                        RmNET    - 0x00000100,
  e.g.
  9  - diag,modem interfaces enabled
  1009 - diag,modem,mbim interfaces enabled

OK

how about using the following on latest FW such as 03.09.11.00?
AT!ENTERCND=“A710”
AT!USBCOMP=1,4,109

Unfortunately, we can pick the firmware that has been certified.

which FW are you using?
have you tried the following in your FW?
AT!ENTERCND=“A710”
AT!USBCOMP=1,4,109