Question regarding set_profile_index_3gpp/get_profile_index_3gpp

Martin Maurer martin.maurer at mmeacs.de
Mon Mar 3 09:34:35 UTC 2025


Hello,

with start_network I am using set_profile_index_3gpp (and just currently 
for testing get_profile_index_3gpp).

I am using Python code, it could be something Python related:

For setting some fields, I have e.g. this code:

NetworkParameters = Qmi.MessageWdsStartNetworkInput()

NetworkParameters.set_ip_family_preference(Qmi.WdsIpFamily(IpFamily))

NetworkParameters.set_apn(APN)
#  NetworkParameters.set_profile_index_3gpp(0)        // 0 ??? -> see below

which prepares a struct NetworkParameters to be used with start_network.

I assumed I just can use:

mytestindex = NetworkParameters.get_profile_index_3gpp()

but this gives me the following exception:

Exception in module_change_cb callback: qmi_core_error_quark: Field 
'Profile Index 3GPP' was not found in the message (5)

Mentioned field 'Profile Index 3GPP' looks curious, field name with 
spaces inside?

When looking at

https://lazka.github.io/pgi-docs/Qmi-1.0/classes/MessageWdsStartNetworkInput.html#Qmi.MessageWdsStartNetworkInput.get_profile_index_3gpp

it says:

value_profile_index_3gpp a placeholder for the output #guint8, or |None| 
<https://docs.python.org/3/library/constants.html#None> if not required.

What is this "None" for? When I call it, I want get it, otherwise I 
don't call it? Do I need to give something as input parameter?

https://lazka.github.io/pgi-docs/Qmi-1.0/classes/MessageWdsStartNetworkInput.html#Qmi.MessageWdsStartNetworkInput.set_profile_index_3gpp

tells me I can use value_profile_index_3gpp as input parameter.

When e.g. using

# qmicli -p -d /dev/cdc-wdm0 --wds-get-profile-list=3gpp
Profile list retrieved:
         [1] 3gpp -
                 APN: 'internet.telekom'
                 APN type: 'default'
                 PDP type: 'ipv4-or-ipv6'
                 PDP context number: '1'
                 Username: ''
                 Password: ''
                 Auth: 'none'
                 No roaming: 'no'
                 APN disabled: 'no'
#

I assume [1] corresponds to the above value_profile_index_3gpp. So 
minimum is 1, because list starts with [1]?

But I tried value 0 is also accepted, no exception. Is value 0 something 
special, not documented, perhaps not using something from profile list?

And when just using

NetworkParameters = Qmi.MessageWdsStartNetworkInput()

is then the value 0 the default value? Or 1? Or None? Undefined?

My aim would (still) be to give all parameters needed for a connection 
completely in/via NetworkParameters,

so set APN, PDP Type, ... in NetworkParameters and just use them. No 
side effects via profile list, which is perhaps updated by something else.

But e.g. the PDP context number cannot be set via libqmi? This is "cid"? 
I was told cid=1 is used for an "initial attach".

But how  to select if I want to use cid=1 or e.g. cid=2 or anything else.

And must my used parameters fit to the parameters used to build up 
cid=1? And when conflicting: Call Failed?

( error: couldn't start network: QMI protocol error (14): 'CallFailed' )

Creating a connection is such a fundamental action. I could not 
understand that it makes so much problem on my side...

I assume I am missing something important or using something which I 
shall not use or in a different way.

Many many thanks for all your help!

Best regards,

Martin



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/libqmi-devel/attachments/20250303/11cd6fe1/attachment.htm>


More information about the libqmi-devel mailing list