eclipse-kura / kura

Eclipse Kura™ is a versatile framework to supercharge your edge devices, streamlining the process of configuring your gateway, connecting sensors, and IoT devices to seamlessly collect, process, and send data to the cloud.
https://eclipse.dev/kura/
Eclipse Public License 2.0
498 stars 305 forks source link

feat(nm): Modem APN as an optional parameter #5350

Closed pierantoniomerlino closed 2 weeks ago

pierantoniomerlino commented 2 weeks ago

This PR converts the APN parameter in the Cellular tab an optional property. In this way, ModemManager will manage automatically this value. If an APN is set, this will be passed to ModemManager.

Related Issue: This PR fixes/closes N/A

Description of the solution adopted: In the nm bundle the property is optional. The web2 bundle is updated accordingly.

Manual Tests: Setup a device with cellular connection. In the Cellular tab leave empty the APN field and check that the connection succeed.

Any side note on the changes made: I noticed the following behavior:

  1. Setup a connection without an APN value
  2. The connection succeed
  3. Set the APN property to a wrong one and connect
  4. The connection succeed, since ModemManager uses the previous value as fallback.

This behavior is not present if the interface is disabled before setting the wrong APN. This has to be documented.

This PR has to be backported to Kura 5.6.0

mattdibi commented 2 weeks ago

Tested working on RPi4 running NetworkManager 1.42.4 and ModemManager 1.20.4 connected to a Huawei USB modem.

  --------------------------------
  General  |                 path: /org/freedesktop/ModemManager1/Modem/0
           |            device id: 490da13ee2b7b2bb6a70dfd5e3feb8e57fdb54e1
  --------------------------------
  Hardware |         manufacturer: huawei
           |                model: MS2372h-607
           |    firmware revision: 21.328.02.01.00
           |            supported: gsm-umts
           |              current: gsm-umts
           |         equipment id: 867023030034619
  --------------------------------
  System   |               device: /sys/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.1
           |              drivers: huawei_cdc_ncm, option
           |               plugin: huawei
           |         primary port: ttyUSB2
           |                ports: ttyUSB0 (at), ttyUSB2 (at), wwan0 (net)
  --------------------------------
  Status   |       unlock retries: sim-pin (3), sim-puk (10), sim-pin2 (3), sim-puk2 (10)
           |                state: connected
           |          power state: on
           |          access tech: lte
           |       signal quality: 54% (recent)
  --------------------------------
  Modes    |            supported: allowed: 2g; preferred: none
           |                       allowed: 3g; preferred: none
           |                       allowed: 4g; preferred: none
           |                       allowed: 2g, 3g, 4g; preferred: none
           |              current: allowed: 2g, 3g, 4g; preferred: none
  --------------------------------
  IP       |            supported: ipv4, ipv6, ipv4v6
  --------------------------------
  3GPP     |                 imei: 867023030034619
           |          operator id: 22210
           |        operator name: vodafone IT
           |         registration: home
           | packet service state: attached
  --------------------------------
  3GPP EPS | ue mode of operation: csps-2
  --------------------------------
  SIM      |     primary sim path: /org/freedesktop/ModemManager1/SIM/0
  --------------------------------
  Bearer   |                paths: /org/freedesktop/ModemManager1/Bearer/0

Working as expected: it connects successfully without specifying the APN.


I performed a test with a non-existent APN. The behaviour is slightly different than the one reported.

Steps:

The NetworkManager connection becomes "connecting (prepare)" until it fails and disconnects.

image

image

For me this is a non-blocker. It depends on the NM/MM version and Modem combo. We already documented (see #5352) the correct way to set things up therefore we should be covered.

mattdibi commented 2 weeks ago

Tested working on Dy1014 with the following modem:

root@dy-10-14:/home/guest# mmcli -m 1
  -----------------------------------
  General  |                    path: /org/freedesktop/ModemManager1/Modem/1
           |               device id: ac5aea45aa7ec9c0be91769635681ef5d741d44b
  -----------------------------------
  Hardware |            manufacturer: QUALCOMM INCORPORATED
           |                   model: QUECTEL Mobile Broadband Module
           |       firmware revision: EM05GFAR07A07M1G
           |          carrier config: VF_Italy_VoLTE
           | carrier config revision: 0501F43A
           |            h/w revision: 10000
           |               supported: gsm-umts, lte
           |                 current: gsm-umts, lte
           |            equipment id: 869283050354077
  -----------------------------------
  System   |                  device: /sys/devices/platform/soc@0/32f10108.usb/38200000.usb/xhci-hcd.2.auto/usb3/3-1/3-1.3
           |                 drivers: qmi_wwan, option
           |                  plugin: quectel
           |            primary port: cdc-wdm0
           |                   ports: cdc-wdm0 (qmi), ttyUSB0 (qcdm), ttyUSB2 (at), ttyUSB3 (at), 
           |                          wwan0 (net)
  -----------------------------------
  Status   |                    lock: sim-pin2
           |          unlock retries: sim-pin (3), sim-puk (10), sim-pin2 (3), sim-puk2 (10)
           |                   state: connected
           |             power state: on
           |             access tech: lte
           |          signal quality: 67% (cached)
  -----------------------------------
  Modes    |               supported: allowed: 3g; preferred: none
           |                          allowed: 4g; preferred: none
           |                          allowed: 3g, 4g; preferred: 4g
           |                          allowed: 3g, 4g; preferred: 3g
           |                 current: allowed: 3g, 4g; preferred: 4g
  -----------------------------------
  Bands    |               supported: utran-1, utran-4, utran-6, utran-5, utran-8, utran-2, 
           |                          eutran-1, eutran-2, eutran-3, eutran-4, eutran-5, eutran-7, eutran-8, 
           |                          eutran-12, eutran-13, eutran-14, eutran-18, eutran-19, eutran-20, 
           |                          eutran-25, eutran-26, eutran-28, eutran-38, eutran-39, eutran-40, 
           |                          eutran-41, eutran-66, eutran-71, utran-19
           |                 current: utran-1, utran-4, utran-6, utran-5, utran-8, utran-2, 
           |                          eutran-1, eutran-2, eutran-3, eutran-4, eutran-5, eutran-7, eutran-8, 
           |                          eutran-12, eutran-13, eutran-14, eutran-18, eutran-19, eutran-20, 
           |                          eutran-25, eutran-26, eutran-28, eutran-38, eutran-39, eutran-40, 
           |                          eutran-41, eutran-66, eutran-71, utran-19
  -----------------------------------
  IP       |               supported: ipv4, ipv6, ipv4v6
  -----------------------------------
  3GPP     |                    imei: 869283050354077
           |           enabled locks: fixed-dialing
           |             operator id: 22210
           |           operator name: vodafone IT
           |            registration: home
  -----------------------------------
  3GPP EPS |    ue mode of operation: csps-2
           |     initial bearer path: /org/freedesktop/ModemManager1/Bearer/0
           |      initial bearer apn: web.omnitel.it
           |  initial bearer ip type: ipv4v6
  -----------------------------------
  SIM      |        primary sim path: /org/freedesktop/ModemManager1/SIM/0
           |          sim slot paths: slot 1: /org/freedesktop/ModemManager1/SIM/0 (active)
           |                          slot 2: none
  -----------------------------------
  Bearer   |                   paths: /org/freedesktop/ModemManager1/Bearer/1

I performed a test with a non-existent APN. The behaviour is different again.

Steps:

The NetworkManager connection disconnects immediately and stays disconnected.