Bearer 0 is the initial default bearer.

Bearer 1 is the connected bearer

Output from mmcli -b 1 is:

 ---------------------------------
 General            |        path: /org/freedesktop/ModemManager1/Bearer/1
                    |        type: default
 ---------------------------------
 Status             |   connected: yes
                    |   suspended: no
                    | multiplexed: no
                    |   interface: enp0s20f0u2
                    |  ip timeout: 20
                    |  profile id: 1
 ---------------------------------
 Properties         |         apn: internet
                    |     roaming: allowed
                    |     ip type: ipv4
 ---------------------------------
 IPv4 configuration |      method: dhcp
                    |      prefix: 0
 ---------------------------------
 Statistics         |  start date: 2024-02-13T12:08:31Z
                    |    attempts: 1

Please note ModemManager is not responsible for running the DHCP
client in the net interface, so if your plugin is reporting "dhcp" IP
method in the connected bearer settings (in your get_ip_config_3gpp()
method), then whoever is the network management layer on top of
ModemManager would be the one in charge of running DHCP client.
I have NetworkManager running. I was under the assumption that it would automatically run its dhcp client on the interface. It seems to do this when I manually issue AT+CGACT=1,1. Its only when running under ModemManager that nothing seems to happen, in fact I have tried to run dhclient enp0s20f0u2 and only then do i get an ip address.


On 2/13/24 14:00, Aleksander Morgado wrote:
Hey,

On Mon, Feb 12, 2024 at 9:37 AM Garfield Watkins
<garfield.watk...@gmail.com>  wrote:
I have created a plugin for an LTE modem. This modem exposes 1 AT command port 
(e.g. ttyUSB0) and one ethernet port via usb (cdc_ether).

When the modem is inserted via USB, the kernel enumerates some serial 
ports(ttyUSB0 -> ttyUSB7) and a network interface (enp0s20f0u1)

The modem establishes a default bearer on network registration and to establish 
a data network connection I need to create a pdp context (AT+CGDCONT) with an 
APN and thereafter activate it with AT+CGACT=1,1

The modem, which is configured in router mode responds by activating its 
internal dhcp server causing network managers dhcp client to work its magic and 
eventually configure the ethernet port with all the info it needs (gateways, 
dns servers, ip address etc).


This same process is essentially performed by my plugin and yet no IP address 
get assigned to the ethernet adapter exposed by the modem.

Why could this be happening ?

My plugin, specifically the bearer interface implements the folloiwing:

broadband_bearer_class->dial_3gpp = dial_3gpp;
broadband_bearer_class->dial_3gpp_finish = dial_3gpp_finish;
broadband_bearer_class->disconnect_3gpp = disconnect_3gpp;
broadband_bearer_class->disconnect_3gpp_finish = disconnect_3gpp_finish;
broadband_bearer_class->get_ip_config_3gpp = get_ip_config_3gpp;
broadband_bearer_class->get_ip_config_3gpp_finish = get_ip_config_3gpp_finish;
Please note ModemManager is not responsible for running the DHCP
client in the net interface, so if your plugin is reporting "dhcp" IP
method in the connected bearer settings (in your get_ip_config_3gpp()
method), then whoever is the network management layer on top of
ModemManager would be the one in charge of running DHCP client.

What's the output of "mmcli -b 0" (assuming 0 is the connected bearer
object) once you perform the modem connection?

Reply via email to