On a SIM7100A the PPPD connection fails (modem hangup) with nm-ppp-plugin, but a custom pppd script works

Aleksander Morgado aleksander at aleksander.es
Fri May 21 07:46:59 UTC 2021


Hey Simon,

>
> We are thinking of updating the mm-broadband-simtech.c plugin to set the initial bearer to "apn=" (so, empty) making the first context empty:
>   AT+CGDCONT=1,"IP","","0.0.0.0",0,0
> We can do this by updating the mm-broadband-simtech.c plugin:
> 1) by adding logic to have the command:
>      mmcli -m 0 --3gpp-set-initial-eps-bearer-settings="apn="
>    to get the desired state (so an extra step from the command line), or

We should really implement some generic implementation for this,
instead of doing it differently for every plugin out there. There are
not many differences in between what plugins should do to configure
with CGDCONT, the key thing that may be different is what cid to
select in each case (e.g. Cinterion plugin has some rules for this
based on the operator). As a default, though, when no custom rules are
needed, it probably makes sense to have some logic that defaults to
cid=1 (or maybe try first with cid=0 to see if that's supported), and
then it would be used by all plugins with AT commands.

If you're using MM git master and want a quick approach to solve this
problem, you can use the new profile management APIs with mmcli; e.g.:
$ mmcli -m 0 --disable
$ mmcli -m 0 --set-power-state-low
$ mmcli -m 0 --3gpp-profile-manager-set="profile-id=1,apn="
$ mmcli -m 0 --enable

This sequence above should be, in your specific case, the same as if
we did --3gpp-set-initial-eps-bearer-settings="apn=" once the logic is
implemented in the simtech or generic plugins.

> 1) we put this logic somewhere else in the plugin so we do not need this initial command at all, and the procedures will do it automatically for the simtech modem.

This solution would not be upstreamable though, if you can have a
patch doing that for yourself, that would be fine, but I'm not totally
sure whether the simcom device will automatically
unregister/reregister with the new initial EPS bearer settings if you
just run the +CGDCONT (which is why in the sequence above we put the
modem in low-power mode first). I guess you can test that yourselves.

>    Then the question then is: where or in what function in the plugin to do this?
>

If you decide to keep your own patch doing that in your MM build, you
can really place the method anywhere :) If you want to have some clean
place to add it, you could subclass setup_ports() in the simtech
plugin, which is the first method really run during initialization,
and do that there.

> What would be the best approach?

Ideally, as said above, a generic implementation for all AT modems,
that the simtech plugin (and all the others) would inherit from the
generic modem :)

-- 
Aleksander
https://aleksander.es


More information about the ModemManager-devel mailing list