Help in establishing multiple simultaneous APNs

Riff Rafferty rafferty8933 at gmail.com
Thu Mar 3 20:49:08 UTC 2022


 I need some help in establishing simultaneous interfaces to multiple APNs.

I have an Ubuntu 20.04 system with a single cellular modem attached via USB
in an IoT application. My problem is that I need to drive traffic through
two different APNs when registered to the same cellular network. Each APN
serves a different purpose -- different services with different billing are
to occur on each.

I've tried multiple ways to do this. While I can get connected with two
APNs, I can only get an interface name for one of the connections. I need a
separate interface name for each so that I can place the respective flow of
traffic through the appropriate interface and onto the correct APN. My
application needs both to be available simultaneously. Going back and forth
between building up and tearing down each of them is not an acceptable
solution.

I tried three different things and none have brought happiness:

(1) Using mmcli in debug mode with a set of AT commands for each APN: using
the sequence AT+GDCONT, AT+XGAUTH, and AT+CGACT with parameters relevant
for the first APN and then again with the sequence AT+GDCONT, AT+XGAUTH,
and AT+CGACT for the second APN. This is successful, and I obtain assigned
IP addresses for each APN. However, neither of the APNs are assigned to an
interface and I don't know how to funnel traffic to each.

(2) I have used the bearer features of mmcli. I have run "mmcli -m
<modem-number> --create-bearer=<key-value pairs>" two times, each with the
proper key-value pairs for the respective APNs. When I later run "mmcli -m
<modem_number>", I see both bearers. I then run "mmcli -m <modem-number>
--bearer <bearer-number> --connect". This works the first time for the
first APN/bearer, and I have an interface assigned. But I get the following
error when next running " mmcli -m <modem-number> --bearer <bearer-number>
--connect" for the second APN/bearer:
error: couldn't connect the bearer: 'GDBusError:
org.freedesktop.ModemManager1.Error.Core.NotFound: No valid data port to
launch connection'

(3) I've put multiple connection keyfiles in the
/etc/NetworkManager/system-connections directory. I run "nmcli con reload"
and then "nmcli --wait 120 con up id <name_of_first_connection>". This
works as I get connected to the first APN, get assigned an IP address, and
get an interface association (wwan0). However, when I run "nmcli --wait 120
con up id <name_of_second_connection>", this works, but it displaces the
first connection, so I am only left with the second connection on interface
wwan0. The first connection is no longer available.

My Ubuntu 20.04 system has mmcli 1.16.6 and nmcli 1.22.10. I could also
install mbimcli 1.24.8, although it is not currently part of the system
image.

Ideas on how to accomplish what I am after?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/modemmanager-devel/attachments/20220303/a6c0ab68/attachment.htm>


More information about the ModemManager-devel mailing list