<!DOCTYPE html>
<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>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). <br>
    </p>
    <p>When the modem is inserted via USB, the kernel enumerates some
      serial ports(ttyUSB0 -> ttyUSB7) and a network interface
      (enp0s20f0u1)<br>
    </p>
    <p>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</p>
    <p>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). <br>
    </p>
    <p><br>
    </p>
    <p>This same process is essentially performed by my plugin and yet
      no IP address get assigned to the ethernet adapter exposed by the
      modem.</p>
    <p>Why could this be happening ?</p>
    <p>My plugin, specifically the bearer interface implements the
      folloiwing:<br>
    </p>
    <div
style="color: #000000;background-color: #ffffff;font-family: 'Fira Code', 'Droid Sans Mono', 'monospace', monospace;font-weight: 450;font-size: 12px;line-height: 16px;white-space: pre;"><div><span
    style="color: #000000;">    broadband_bearer_class->dial_3gpp = dial_3gpp;</span></div><div><span
    style="color: #000000;">    broadband_bearer_class->dial_3gpp_finish = dial_3gpp_finish;</span></div><div><span
    style="color: #000000;">    broadband_bearer_class->disconnect_3gpp = disconnect_3gpp;</span></div><div><span
    style="color: #000000;">    broadband_bearer_class->disconnect_3gpp_finish = disconnect_3gpp_finish;</span></div><div><span
    style="color: #000000;">    broadband_bearer_class->get_ip_config_3gpp = get_ip_config_3gpp;</span></div><div><span
    style="color: #000000;">    broadband_bearer_class->get_ip_config_3gpp_finish = get_ip_config_3gpp_finish;</span></div><div><span
    style="color: #000000;">
</span></div><div><span style="color: #000000;">Regards
</span></div></div>
    <p><br>
    </p>
    <p><br>
    </p>
    <p><br>
    </p>
    <p><br>
    </p>
  </body>
</html>