Question about 3gpp-profile-manager to select proper PDP context ID

embedded (VIVAVIS AG) embedded at vivavis.com
Fri Feb 11 18:14:37 UTC 2022


Hi,

I'm struggling to connect to a private Vodafone APN using MM and NM.

Modem Telit LE910-EU1 (MBIM)
ModemManager 1.18.6
libmbim 1.18.4
libqmi 1.30.2
NetworkManager 1.22.10

My problem is, that the bearer gets connected, but not assigned an IP address.
To make it work, I was told to use PDP context ID 3 instead of 1 for this private APN.

When searching the internet, I've found this older thread about selecting a CID.
https://lists.freedesktop.org/archives/modemmanager-devel/2021-February/008420.html

With MR 179 merged, this feature should be available now.
Unfortunately, the documentation about 3gpp-profile-management is a little bit
poor and mmcli --help-3gpp-profile-manager leaves me with some questions.

Is the 3gpp-profile-manager 'profile-id' corresponding with the PDP context ID (CID)
which can be set by AT+CGDCONT?

>From the merge request discussion, I've noticed, that one cannot specify a specific
profile-id when creating a new profile.
Do I have to create empty profiles until getting to the profile ID to use?

For instance:

root at dev:~# mmcli -m 0 --3gpp-profile-manager-set=""  
  ---------------------------
  3GPP profile manager | set: profile-id: 1
                       |          apn-type: default
root at dev:~# mmcli -m 0 --3gpp-profile-manager-set=""
  ---------------------------
  3GPP profile manager | set: profile-id: 2
                       |          apn-type: default
root at dev:~# mmcli -m 0 --3gpp-profile-manager-set="apn=apn.vodafone.de,ip-type=ipv4,allowed-auth=pap,user=abc,password=def"
error: couldn't set profile: 'GDBus.Error:org.freedesktop.libmbim.Error.Core.InvalidMessage: Couldn't validate update of profile '3': cannot read string data (6 bytes) (274 < 278)'

I wonder, what are the correct options to be passed to 3gpp-profile-manager-set?
My first assumption is to use the same options as for create-bearer.

After deleting all profiles, I can use the same settings
for profile 1 and 2 with success, but for profile 3 it fails.

root at dev:~# mmcli -m 0 --3gpp-profile-manager-delete=3
successfully deleted the profile
root at dev:~# mmcli -m 0 --3gpp-profile-manager-delete=2
successfully deleted the profile
root at dev:~# mmcli -m 0 --3gpp-profile-manager-delete=1
successfully deleted the profile
root at dev:~# mmcli -m 0 --3gpp-profile-manager-set="apn=apn.vodafone.de,ip-type=ipv4,allowed-auth=pap,user=abc,password=def"
  ---------------------------
  3GPP profile manager | set: profile-id: 1
                       |          apn: apn.vodafone.de
                       |          allowed-auth: pap
                       |          user: abc
                       |          password: d
                       |          apn-type: default

Why are the last two characters of the given password "def" not shown?
I've tried with password='def' (in single quotes), but that doesn't help.

root at dev:~# mmcli -m 0 --3gpp-profile-manager-set="apn=apn.vodafone.de,ip-type=ipv4,allowed-auth=pap,user=abc,password=def"
  ---------------------------
  3GPP profile manager | set: profile-id: 2
                       |          apn: apn.vodafone.de
                       |          allowed-auth: pap
                       |          user: abc
                       |          password: d
                       |          apn-type: default
root at dev:~# mmcli -m 0 --3gpp-profile-manager-set="apn=apn.vodafone.de,ip-type=ipv4,allowed-auth=pap,user=abc,password=def"
error: couldn't set profile: 'GDBus.Error:org.freedesktop.libmbim.Error.Core.InvalidMessage: Couldn't validate update of profile '3': cannot read string data (6 bytes) (358 < 362)'

Is this a bug?

I've found, that setting profile ID 3 only succeeds, if only "apn=apn.vodafone.de" is given.

root at dev:~# mmcli -m 0 --3gpp-profile-manager-delete=3
successfully deleted the profile
root at dev:~# mmcli -m 0 --3gpp-profile-manager-set="apn=apn.vodafone.de"
  ---------------------------
  3GPP profile manager | set: profile-id: 3
                       |          apn: apn.vodafone.de
                       |          apn-type: default


If I try to give a username, it fails.

root at dev:~# mmcli -m 0 --3gpp-profile-manager-delete=3
successfully deleted the profile
root at dev:~# mmcli -m 0 --3gpp-profile-manager-set="apn=apn.vodafone.de,user=abc"
error: couldn't set profile: 'GDBus.Error:org.freedesktop.libmbim.Error.Core.InvalidMessage: Couldn't validate update of profile '3': cannot read string data (6 bytes) (352 < 354)'

If I could manage to set profile-id 3 properly with the requested APN settings, do I have to create
the bearer pointing to the profile-id in this way?

mmcli -m 0 --create-bearer="profile-id=3"


root at dev:~# mmcli -m 0          
  --------------------------------
  General  |                 path: /org/freedesktop/ModemManager1/Modem/0
           |            device id: ***
  --------------------------------
  Hardware |         manufacturer: Telit
           |                model: FIH7160
           |    firmware revision: 20.00.413
           |         h/w revision: XMM7160_V1.2_HWID790_MBIM_NAND
           |            supported: gsm-umts, lte
           |              current: gsm-umts, lte
           |         equipment id: ***
  --------------------------------
  System   |               device: /sys/devices/platform/soc/2100000.bus/2184200.usb/ci_hdrc.1/usb1/1-1/1-1.2
           |              drivers: cdc_acm, cdc_mbim
           |               plugin: telit
           |         primary port: cdc-wdm0
           |                ports: cdc-wdm0 (mbim), ttyACM0 (at), ttyACM1 (ignored), 
           |                       ttyACM2 (ignored), ttyACM3 (at), ttyACM4 (ignored), ttyACM5 (ignored), 
           |                       wwan0 (net)
  --------------------------------
  Status   |       unlock retries: sim-pin2 (3)
           |                state: registered
           |          power state: on
           |          access tech: gprs, edge
           |       signal quality: 64% (recent)
  --------------------------------
  Modes    |            supported: allowed: 2g; preferred: none
           |                       allowed: 4g; preferred: none
           |                       allowed: 2g, 4g; preferred: none
           |              current: allowed: 2g; preferred: none
  --------------------------------
  Bands    |            supported: egsm, dcs, eutran-1, eutran-3, eutran-7, eutran-8, eutran-20
           |              current: egsm, dcs, eutran-1
  --------------------------------
  IP       |            supported: ipv4, ipv6, ipv4v6
  --------------------------------
  3GPP     |                 imei: ***
           |        enabled locks: sim, fixed-dialing
           |          operator id: 26202
           |        operator name: Vodafone.de
           |         registration: home
  --------------------------------
  3GPP EPS | ue mode of operation: csps-1
  --------------------------------
  SIM      |     primary sim path: /org/freedesktop/ModemManager1/SIM/0

root at dev:~# mmcli -m 0 -b 0
  ----------------------------------
  General            |         path: /org/freedesktop/ModemManager1/Bearer/0
                     |         type: default
  ----------------------------------
  Status             |    connected: yes
                     |    suspended: no
                     |  multiplexed: no
                     |    interface: wwan0
                     |   ip timeout: 20
  ----------------------------------
  Properties         |          apn: ***.vodafone.de
                     |      roaming: allowed
                     |      ip type: ipv4
                     | allowed-auth: pap
                     |         user: ***
                     |     password: ***
  ----------------------------------
  IPv4 configuration |       method: dhcp
                     |       prefix: 0
  ----------------------------------
  Statistics         |     attempts: 1


Because the wrong CID=1 is used, the bearer gets no valid IP configuration and defaults
to "dhcp", but this doesn't work.

Your help is very much appreciated. Thank you.

Carsten Stelling


More information about the ModemManager-devel mailing list