fibocom: Minimum PDP context ID

Sven Schwermer sven at svenschwermer.de
Thu Aug 4 17:56:48 UTC 2022


On 4/7/22 22:32, Aleksander Morgado wrote:
 > Hey,

Hi again,

I finally had a chance to investigate this a little further.

>> Which marks the bearer intermediately as not connected and the ECM
>> connection is torn down on the host.
> 
> Shouldn't we then change the connection check to use the RNDIS state
> query instead of +CGACT?

I was wondering about this, but I'm not sure. The documentation isn't 
clear about this. Perhaps it is the way to go, more on this later :)

>> Querying with +CGCONTRDP confirms
>> that the modem is actually only using CID=1.
> 
> It could be totally possible that you're seeing IP address reported in
> CID=1 due to the initial EPS bearer being active. But that doesn't
> explain why you don't see the CID=2 as active as well, if the
> connection succeeded (unless it was disconnected right away after a
> successful connection, which could also be possible)

I believe I found out why the modem behaves this way. When the initial 
bearer is set up using the same APN as the ECM bearer, the former is 
internally re-used. Image the following scenario: We configure cid=1 
with the empty APN which makes the SIM use some default which happens to 
match the APN used later on. When the modem is in registered state, we 
have the following situation:

+CGDCONT: 1,"IP","","10.80.129.7",0,0,0
+CGCONTRDP: 
1,5,"internet.gma.iot","10.80.129.7",,"193.181.245.57","193.181.245.58"

Then, when setting up the ECM connection, i.e. connecting using 
+GTRNDIS, leads to the following situations:

+CGDCONT: 1,"IP","","10.80.129.7",0,0,0
+CGDCONT: 2,"IP","internet.gma.iot","0.0.0.0",0,0,0
+CGCONTRDP: 
1,5,"internet.gma.iot","10.80.129.7",,"193.181.245.57","193.181.245.58"
+GTRNDIS: 1,2,"10.80.129.7","193.181.245.57","193.181.245.58"
+CGACT: 1,1
+CGACT: 2,0

However, when configuring different APN for initial and ECM bearer, this 
is the behavior after the +GTRNDIS connection:

+CGDCONT: 1,"IP","gemalto.ericsson.iot","10.118.26.77",0,0,0
+CGDCONT: 2,"IP","internet.gma.iot","10.80.196.82",0,0,0
+CGCONTRDP: 
1,5,"gemalto.ericsson.iot","10.118.26.77",,"193.181.245.57","193.181.245.58"
+CGCONTRDP: 
2,6,"internet.gma.iot","10.80.196.82",,"193.181.245.57","193.181.245.58"
+GTRNDIS: 1,2,"10.80.196.82","193.181.245.57","193.181.245.58"
+CGACT: 1,1
+CGACT: 2,1

I'm guessing we can deal with the first scenario by using +GTRNDIS? to 
monitor the connection instead of +CGACT? when using the Fibocom ECM 
bearer. Do you believe that would be sufficient or is it a problem that 
+CGDCONT? doesn't contain an IP for our ECM bearer context?

When hacking the initial EPS bearer setup into a connection manager 
(e.g. NetworkManager), should this be done before or after enabling the 
modem device?

In a previous response, you wrote:

 > load_initial_eps_bearer_settings() refers to loading the initial EPS
 > bearer settings as configured and stored in the modem

and

 > load_initial_eps_bearer() refers to loading the initial EPS bearer
 > settings currently agreed with the network.

However, when looking at the cinterion implementation, I can see that 
the former queries +CGCONTRDP while the latter queries +CGDCONT. Isn't 
that exactly opposite to what you said?

Thanks and best regards,
Sven


More information about the ModemManager-devel mailing list