Fibocom L830-EB sometimes fails to obtain an IP address with mbim
I try to find the cause of a random failure to obtain an IP address from my broadband provider, after several successful nmcli connect up and down:
--------------------------------
Hardware | manufacturer: FIBOCOM
| model: L830-EB-00
| firmware revision: 18300.1002.00.01.01.25
| h/w revision: L830-EB v1.0.1
| supported: gsm-umts, lte
| current: gsm-umts, lte
| equipment id: <xxxxxxxxxxxxxx>
--------------------------------
System | device: /sys/devices/pci0000:00/0000:00:14.0/usb1/1-6
| physdev: /sys/devices/pci0000:00/0000:00:14.0/usb1/1-6
| drivers: cdc_acm, cdc_mbim
| plugin: fibocom
| primary port: cdc-wdm0
| ports: cdc-wdm0 (mbim), ttyACM0 (at), wwp0s20f0u6 (net)
--------------------------------
When it works as expected, the 'basic-connect' reply to the activate command received from the modem is (with IpType = 'ipv4'
):
[26 Mar 2024, 21:25:16] [Debug] [/dev/cdc-wdm0] received message (translated)...
>>>>>> Header:
>>>>>> length = 84
>>>>>> type = command-done (0x80000003)
>>>>>> transaction = 188
>>>>>> Fragment header:
>>>>>> total = 1
>>>>>> current = 0
>>>>>> Contents:
>>>>>> status error = 'None' (0x00000000)
>>>>>> service = 'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)
>>>>>> cid = 'connect' (0x0000000c)
>>>>>> Fields:
>>>>>> SessionId = '0'
>>>>>> ActivationState = 'activated'
>>>>>> VoiceCallState = 'none'
>>>>>> IpType = 'ipv4'
>>>>>> ContextType = '7e5e2a7e-4e6f-7272-736b-656e7e5e2a7e'
>>>>>> NwError = '0'
And when it fails, without apparent reason, the reply from the same command is:
[26 Mar 2024, 21:25:47] [Debug] [/dev/cdc-wdm0] received message (translated)...
>>>>>> Header:
>>>>>> length = 84
>>>>>> type = command-done (0x80000003)
>>>>>> transaction = 195
>>>>>> Fragment header:
>>>>>> total = 1
>>>>>> current = 0
>>>>>> Contents:
>>>>>> status error = 'None' (0x00000000)
>>>>>> service = 'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)
>>>>>> cid = 'connect' (0x0000000c)
>>>>>> Fields:
>>>>>> SessionId = '0'
>>>>>> ActivationState = 'activated'
>>>>>> VoiceCallState = 'none'
>>>>>> IpType = 'default'
>>>>>> ContextType = '7e5e2a7e-4e6f-7272-736b-656e7e5e2a7e'
>>>>>> NwError = '0'
And the following reply to the query ip-configuration returns no IP available:
[26 Mar 2024, 21:25:47] [Debug] [/dev/cdc-wdm0] received message (translated)...
>>>>>> Header:
>>>>>> length = 108
>>>>>> type = command-done (0x80000003)
>>>>>> transaction = 197
>>>>>> Fragment header:
>>>>>> total = 1
>>>>>> current = 0
>>>>>> Contents:
>>>>>> status error = 'None' (0x00000000)
>>>>>> service = 'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)
>>>>>> cid = 'ip-configuration' (0x0000000f)
>>>>>> Fields:
>>>>>> SessionId = '0'
>>>>>> IPv4ConfigurationAvailable = 'none'
>>>>>> IPv6ConfigurationAvailable = 'none'
>>>>>> IPv4AddressCount = '0'
>>>>>> IPv4Address = '{
>>>>>> }'
>>>>>> IPv6AddressCount = '0'
>>>>>> IPv6Address = '{
>>>>>> }'
>>>>>> IPv4Gateway = ''
>>>>>> IPv6Gateway = ''
>>>>>> IPv4DnsServerCount = '0'
>>>>>> IPv4DnsServer = ''
>>>>>> IPv6DnsServerCount = '0'
>>>>>> IPv6DnsServer = ''
>>>>>> IPv4Mtu = '0'
>>>>>> IPv6Mtu = '0'
Any further attempt to reconnect fails with the same error. A modem reset allows me to recover from this situation. Alternately a suspend/wakeup of the laptop also works, and doing a 'rmmod cdc_mbim ; modprobe cdc_mbim' works as well.
The funny thing is that I could not reproduce the bug, by directly using mbimcli --connect/mbimcli --disconnect commands. It also works with mmcli --simple-connect/--simple-disconnects commands. The bug seems to be triggered only when connecting with NetworkManager (because only NM setups the IP routes, and generates IP traffic through the interface maybe?)