Issue with 5G Slices and Bearer Connection Failure on Telit FN990 Modem
Robert Marko
robert.marko at sartura.hr
Thu Jan 16 09:46:29 UTC 2025
On Wed, Jan 15, 2025 at 9:10 PM Pradeep Gopanapalli
<pradeep.gopanapalli at broadcom.com> wrote:
>
> Hello Daniele,
>
> Following up on the previous discussion,
>
> I attempted to integrate these mux interfaces (e.g., qmapmux0.1) into netifd, but netifd is treating them as VLAN interfaces. Is there any configuration we can use to prevent these interfaces from being recognized as VLAN interfaces?
Pradeep,
You need to patch netifd-s check for VLAN interfaces to also check for
the qmapmux name as by default it will treat any interface with a dot
in the name as VLAN.
That is what I do.
Regards,
Robert
> Additionally, I encountered an issue with modemmanager.sh proto. It has a check for multiple bearers and fails the setup if more than one bearer is present. Is there any plan or design to support multiple bearers in the native ModemManager?
>
> Here’s the relevant part of the script:
>
> # We won't like it if there are more than one bearers, as that would mean the
> # user manually created them, and that's unsupported by this proto
> bearercount=$(modemmanager_get_field "${modemstatus}" "modem.generic.bearers.length")
> [ -n "${bearercount}" ] && [ "$bearercount" -eq 1 ] || {
> proto_notify_error "${interface}" INVALID_BEARER_LIST
> return 1
> }
>
> Any insights or guidance on how to handle this would be greatly appreciated.
>
>
> Thanks,
> Pradeep G
>
> On Mon, Jan 13, 2025 at 3:58 PM Pradeep Gopanapalli <pradeep.gopanapalli at broadcom.com> wrote:
>>
>> Hello Daniele,
>>
>> Right now I am using " --simple-connect" to create a bearer and it creates a netlink
>> "qmapmux*" interface and it triggers hotplug events.
>> Is there any way to create this interface without actually executing mmcli bearer connect command.
>> This will help to integrate the qmapmux interface into modemmanager hotplug scripts and netifd seamlessly
>>
>> >>
>> #mmcli -m any --simple-connect="multiplex=required,apn=<>"
>>
>> Thanks,
>> Pradeep G
>>
>> On Tue, Jan 7, 2025 at 5:35 AM Daniele Palmas <dnlplm at gmail.com> wrote:
>>>
>>> Hello Pradeep,
>>>
>>> Il giorno lun 6 gen 2025 alle ore 05:03 Pradeep Gopanapalli
>>> <pradeep.gopanapalli at broadcom.com> ha scritto:
>>> >
>>> > Hello Daniele,
>>> >
>>> > Thanks for the reply.
>>> > Yes I had to add a similar patch for modemmanager.common for the mux interface to work.
>>> > After following the steps given below I am able to dial into Multiplex interfaces.
>>> > Now I need to figure out how to integrate maintaining state machines of these interfaces into
>>> > our modem scripts.
>>> > Also does modemmanager allow combination of non-multiplex and multiplex interface at same time?
>>> >
>>>
>>> As far as I know this is not possible, since the qmap configuration
>>> affects the whole modem (see QMI_WDA_SET_DATA_FORMAT).
>>>
>>> Regards,
>>> Daniele
>>>
>>> > Here are steps followed for successful multiplex interface creation
>>> >
>>> > >>
>>> >
>>> > mmcli -m any --command='AT#DUALAPN=1'
>>> >
>>> > mmcli -m a --command='AT+WS46=36'
>>> >
>>> > mmcli -m any --set-current-bands=ngran-71
>>> >
>>> > mmcli -m any --set-allowed-modes=5g
>>> >
>>> >
>>> > <Delete any non multiplex bearers>
>>> > #mmcli -m any --simple-connect="multiplex=required,apn=<>"
>>> > #mmcli -m any --set-allowed-modes=5g
>>> > #mmcli -m any --simple-connect="multiplex=required,profile-id=3,ip-type=ipv4"
>>> >
>>> > Thanks,
>>> > Pradeep G
>>> > << Disconnect bearer related to non-multiplex>
>>> > On Fri, Jan 3, 2025 at 1:52 AM Daniele Palmas <dnlplm at gmail.com> wrote:
>>> >>
>>> >> Hello Pradeep,
>>> >>
>>> >> Il giorno ven 3 gen 2025 alle ore 02:37 Pradeep Gopanapalli
>>> >> <pradeep.gopanapalli at broadcom.com> ha scritto:
>>> >> >
>>> >> > Hello Dan,
>>> >> >
>>> >> > First of all Happy new year and thanks for the reply.
>>> >> > On further debugging it looks like we need a "rmnet" driver for Netlink creation as slice interfaces.
>>> >> > https://dri.freedesktop.org/docs/drm/networking/device_drivers/cellular/qualcomm/rmnet.html
>>> >> > However Native Opernwrt -23.05 didn't had this module as part of packages, so i had to compile it as a module
>>> >> > Kernel : 5.15.168
>>> >> >
>>> >> >
>>> >> > I followed these steps
>>> >> > -mmcli -m a --command='AT+WS46=36'
>>> >> > insmod rmnet.ko
>>> >> >
>>> >> > <Delete all non-mux bearers>
>>> >> >
>>> >> > mmcli -m any --simple-connect="multiplex=requested,profile-id=1,ip-type=ipv4v6"
>>> >> >
>>> >> >
>>> >> > And qmapmux0.0 creation failed with "imed out waiting for link port 'net/qmapmux0.0'"
>>> >> >
>>> >>
>>> >> looks like something similar to the issue describe at
>>> >> http://paldan.altervista.org/openwrt-modemmanager-and-a-multiplexing-issue/
>>> >>
>>> >> though the suspicious line is a bit different:
>>> >>
>>> >> hotplug: add network interface qmapmux0.0: event ignored: couldn't get
>>> >> physical device sysfs path
>>> >>
>>> >> Anyway, I fixed the issue reported above with
>>> >> https://github.com/openwrt/packages/pull/23551
>>> >>
>>> >> If that does not work for you it could be a starting point for further
>>> >> investigation.
>>> >>
>>> >> Regards,
>>> >> Daniele
>>> >>
>>> >> >
>>> >> > >>
>>> >> >
>>> >> > = 1#012<<<<<< value = 03#012<<<<<< translated = ipv4-or-ipv6#012<<<<<< TLV:#012<<<<<< type = "Profile Name" (0x10)#012<<<<<< length = 8#012<<<<<< value = 70:72:6F:66:69:6C:65:31#012<<<<<< translated = profile1#012
>>> >> > 2025-01-03T01:07:05.468 DEBUG daemon ModemManager[32225]: <dbg> [modem0/cdc-wdm0/qmi] multiplex support already available when setting up data format
>>> >> > 2025-01-03T01:07:05.468 DEBUG daemon ModemManager[32225]: <dbg> [modem0/cdc-wdm0/qmi] Creating RMNET link with flags: ingress-map-cksumv5, egress-map-cksumv5
>>> >> > 2025-01-03T01:07:05.486 DEBUG daemon ModemManager[32225]: <dbg> Using dynamic mux ID 1
>>> >> > 2025-01-03T01:07:05.489 NOTICE daemon ModemManager[32225]: <msg> [modem0/bearer2] net link qmapmux0.0 created (mux id 1)
>>> >> > 2025-01-03T01:07:05.489 DEBUG daemon ModemManager[32225]: <dbg> [modem0] waiting for port 'net/qmapmux0.0'...
>>> >> > 2025-01-03T01:07:05.492 INFO daemon linkd[7283]: create None(qmapmux0.0): state=->down, oper=->down, carrier=->1
>>> >> > 2025-01-03T01:06:47.253 WARNIN user kernel:[1451352.659164] ethtool: net: disabled offload features for qmapmux0.0
>>> >> > 2025-01-03T01:07:05.614 INFO daemon ModemManager[50632]: hotplug: add network interface qmapmux0.0: event ignored: couldn't get physical device sysfs path
>>> >> > 2025-01-03T01:07:07.991 WARNIN daemon ModemManager[32225]: <wrn> [modem0/bearer2] connection attempt #1 failed: Timed out waiting for link port 'net/qmapmux0.0'
>>> >> > 2025-01-03T01:07:07.991 NOTICE daemon ModemManager[32225]: <msg> [modem0] state changed (connecting -> registered)
>>> >> > 2025-01-03T01:07:07.992 NOTICE daemon ModemManager[32225]: <msg> [modem0/bearer2] connection #1 finished: duration 0s
>>> >> > 2025-01-03T01:07:07.992 WARNIN daemon ModemManager[32225]: <wrn> [modem0] couldn't connect bearer: Timed out waiting for link port 'net/qmapmux0.0'
>>> >> > 2025-01-03T01:07:07.997 INFO daemon linkd[7283]: change None(qmapmux0.0): state=down->down, oper=down->down, carrier=1->1
>>> >> > 2025-01-03T01:07:08.004 INFO daemon ModemManager[50807]: hotplug: remove network interface qmapmux0.0: event processed
>>> >> > 2025-01-03T01:07:08.015 DEBUG daemon ModemManager[32225]: <dbg> [base-manager] kernel event reported:
>>> >> > 2025-01-03T01:07:08.015 DEBUG daemon ModemManager[32225]: <dbg> [base-manager] action: remove
>>> >> > 2025-01-03T01:07:08.015 DEBUG daemon ModemManager[32225]: <dbg> [base-manager] subsystem: net
>>> >> > 2025-01-03T01:07:08.015 DEBUG daemon ModemManager[32225]: <dbg> [base-manager] name: qmapmux0.0
>>> >> > 2025-01-03T01:07:08.015 DEBUG daemon ModemManager[32225]: <dbg> [base-manager] uid: n/a
>>> >> >
>>> >> >
>>> >> > Thanks,
>>> >> >
>>> >> > Pradeep G
>>> >> >
>>> >> >
>>> >> >
>>> >> > On Tue, Dec 31, 2024 at 10:44 AM Dan Williams <dan at ioncontrol.co> wrote:
>>> >> >>
>>> >> >> On Sun, 2024-12-29 at 19:08 -0800, Pradeep Gopanapalli wrote:
>>> >> >> > Hello,
>>> >> >> > I am trying to establish multiple 5G multiplex slices on a Telit
>>> >> >> > FN990 modem running in QMI mode. These 5G slices represent multiple
>>> >> >> > PDNs managed by ModemManager (via mmcli).
>>> >> >> >
>>> >> >> > When using the "--test-multiplex-requested" option, the bearer setup
>>> >> >> > fails with the following Netlink error:
>>> >> >> > GDBus.Error:org.gtk.GDBus.UnmappedGError.Quark._g_2dio_2derror_2dquar
>>> >> >> > k.Code0: failed to create net link for device: failed to add link for
>>> >> >> > device: Could not allocate link: Failed to add link with mux id 1:
>>> >> >> > Netlink message with transaction 9 failed
>>> >> >>
>>> >> >> Unfortunately libqmi-glib doesn't print out the actual error we get
>>> >> >> from netlink, which I've fixed here:
>>> >> >>
>>> >> >> https://gitlab.freedesktop.org/mobile-broadband/libqmi/-/merge_requests/389
>>> >> >>
>>> >> >> would you be able to apply that patch locally and reproduce the issue,
>>> >> >> so that we can figure out the actual error code netlink is returning?
>>> >> >>
>>> >> >> Thanks,
>>> >> >> Dan
>>> >> >>
>>> >> >> >
>>> >> >> > Environment:
>>> >> >> > * Modem: Telit FN990A28 in QMI mode
>>> >> >> > * ModemManager: 1.22.0
>>> >> >> > * libqmi: 1.34.0-2
>>> >> >> > * libmbim: 1.30.0-2
>>> >> >> > * Kernel: 5.15.150
>>> >> >> > * OpenWrt: Based on 22.03 using netifd
>>> >> >> > Debug Logs During Bearer Connection:
>>> >> >> > (PFA message_modem_debug)
>>> >> >> > 2024-12-28T00:38:03.709 DEBUG daemon ModemManager[9676]:
>>> >> >> > [1735346283.709521] [modem0/bearer1] connecting...
>>> >> >> > 2024-12-28T00:38:03.709 NOTICE daemon ModemManager[9676]:
>>> >> >> > [1735346283.709796] [modem0] state changed (registered -> connecting)
>>> >> >> > 2024-12-28T00:38:03.709 DEBUG daemon ModemManager[9676]:
>>> >> >> > [1735346283.709904] [modem0/bearer1] launching connection with QMI
>>> >> >> > port (cdc-wdm0) and data port (wwan0) (multiplex requested)
>>> >> >> > 2024-12-28T00:38:03.709 DEBUG daemon ModemManager[9676]:
>>> >> >> > [1735346283.709916] [cdc-wdm0/qmi] bringing down data interface
>>> >> >> > 'wwan0'
>>> >> >> > 2024-12-28T00:38:03.710 DEBUG daemon ModemManager[9676]:
>>> >> >> > [1735346283.710309] [cdc-wdm0/qmi] resetting expected kernel data
>>> >> >> > format to 802.3 in data interface 'wwan0'
>>> >> >> > 2024-12-28T00:38:03.897 WARN daemon ModemManager[9676]:
>>> >> >> > [1735346283.897197] [modem0/bearer1] connection attempt #1 failed:
>>> >> >> > failed to create net link for device: failed to add link for device:
>>> >> >> > Could not allocate link: Failed to add link with mux id 1: Netlink
>>> >> >> > message with transaction 1 failed
>>> >> >> > 2024-12-28T00:38:03.898 NOTICE daemon netifd: CELL1 (19170): error:
>>> >> >> > couldn't connect the modem:
>>> >> >> > 'GDBus.Error:org.gtk.GDBus.UnmappedGError.Quark._g_2dio_2derror_2dqua
>>> >> >> > rk.Code0: failed to create net link for device: failed to add link
>>> >> >> > for device: Could not allocate link: Failed to add link with mux id
>>> >> >> > 1: Netlink message with transaction 1 failed'
>>> >> >> > Similar Issue Reported:
>>> >> >> > This issue has been reported in the following GitLab issue:
>>> >> >> > GitLab ModemManager Issue #533, but I have not seen a resolution for
>>> >> >> > it.
>>> >> >> > Reference Links:
>>> >> >> > * ModemManager Mailing List - March 2022
>>> >> >> > Any assistance or suggestions on resolving this issue would be
>>> >> >> > greatly appreciated.
>>> >> >> > Thanks,
>>> >> >> > Pradeep G
>>> >> >> >
>>> >> >> >
>>> >> >> > This electronic communication and the information and any files
>>> >> >> > transmitted with it, or attached to it, are confidential and are
>>> >> >> > intended solely for the use of the individual or entity to whom it is
>>> >> >> > addressed and may contain information that is confidential, legally
>>> >> >> > privileged, protected by privacy laws, or otherwise restricted from
>>> >> >> > disclosure to anyone else. If you are not the intended recipient or
>>> >> >> > the person responsible for delivering the e-mail to the intended
>>> >> >> > recipient, you are hereby notified that any use, copying,
>>> >> >> > distributing, dissemination, forwarding, printing, or copying of this
>>> >> >> > e-mail is strictly prohibited. If you received this e-mail in error,
>>> >> >> > please return the e-mail to the sender, delete it from your computer,
>>> >> >> > and destroy any printed copy of it.
>>> >> >>
>>> >> >
>>> >> > This electronic communication and the information and any files transmitted with it, or attached to it, are confidential and are intended solely for the use of the individual or entity to whom it is addressed and may contain information that is confidential, legally privileged, protected by privacy laws, or otherwise restricted from disclosure to anyone else. If you are not the intended recipient or the person responsible for delivering the e-mail to the intended recipient, you are hereby notified that any use, copying, distributing, dissemination, forwarding, printing, or copying of this e-mail is strictly prohibited. If you received this e-mail in error, please return the e-mail to the sender, delete it from your computer, and destroy any printed copy of it.
>>> >
>>> >
>>> > This electronic communication and the information and any files transmitted with it, or attached to it, are confidential and are intended solely for the use of the individual or entity to whom it is addressed and may contain information that is confidential, legally privileged, protected by privacy laws, or otherwise restricted from disclosure to anyone else. If you are not the intended recipient or the person responsible for delivering the e-mail to the intended recipient, you are hereby notified that any use, copying, distributing, dissemination, forwarding, printing, or copying of this e-mail is strictly prohibited. If you received this e-mail in error, please return the e-mail to the sender, delete it from your computer, and destroy any printed copy of it.
>
>
> This electronic communication and the information and any files transmitted with it, or attached to it, are confidential and are intended solely for the use of the individual or entity to whom it is addressed and may contain information that is confidential, legally privileged, protected by privacy laws, or otherwise restricted from disclosure to anyone else. If you are not the intended recipient or the person responsible for delivering the e-mail to the intended recipient, you are hereby notified that any use, copying, distributing, dissemination, forwarding, printing, or copying of this e-mail is strictly prohibited. If you received this e-mail in error, please return the e-mail to the sender, delete it from your computer, and destroy any printed copy of it.
--
Robert Marko
Staff Embedded Linux Engineer
Sartura d.d.
Lendavska ulica 16a
10000 Zagreb, Croatia
Email: robert.marko at sartura.hr
Web: www.sartura.hr
More information about the libqmi-devel
mailing list