Skip to content
Snippets Groups Projects
  1. Jul 13, 2021
  2. May 26, 2021
  3. May 22, 2021
  4. Apr 30, 2021
  5. Nov 14, 2020
    • Aleksander Morgado's avatar
      core,plugins: consolidate connection/disconnection timeout values · 5d150ed2
      Aleksander Morgado authored
      Each different plugin or protocol had a different connection attempt
      value. E.g. QMI and MBIM both used 60s max for the connection attempt,
      while the u-blox plugin had up to 180s for ECM based connection
      setups.
      
      This commit consolidates all plugins and protocols to use the same
      timeout values for commands that may take long to respond, e.g. a
      connection atempt under low signal quality conditions.
      
      A value of 180s for the connection attempt steps and 120s for a
      disconnection attempt step is considered. Note, though, that in some
      cases (like a IPv4v6 setup attempt using QMI) we may have more than
      one such long step, so this doesn't mean that a connection attempt
      will always take less than 180s.
      
      Users of the connection/disconnection APIs should be able to handle
      the case where the attempt times out in their side (e.g. with a lower
      DBus request timeout), and which would not mean the actual request
      they did really failed. E.g. a connection attempt with a DBus timeout
      of 30s may fail in the user with a timeout error, but the attempt
      would still go on for as much as the plugin/protocol needs.
      
      Fixes #270
      5d150ed2
  6. Jul 24, 2020
  7. Apr 08, 2020
  8. Jan 31, 2020
    • Aleksander Morgado's avatar
      option,hso: fix warnings with -Wsign-compare · 68f3eeea
      Aleksander Morgado authored
        option/mm-broadband-bearer-hso.c: In function ‘ip_config_ready’:
        option/mm-broadband-bearer-hso.c:128:21: error: comparison of integer expressions of different signedness: ‘gint’ {aka ‘int’} and ‘guint’ {aka ‘unsigned int’} [-Werror=sign-compare]
          128 |                 num != ctx->cid) {
              |                     ^~
      68f3eeea
  9. Dec 05, 2017
  10. Sep 20, 2017
  11. Mar 29, 2017
  12. Oct 12, 2016
    • Aleksander Morgado's avatar
      broadband-modem: implement default connection monitoring logic · 37bd6142
      Aleksander Morgado authored
      A default implementation to monitor the ongoing connection is provided in the
      generic MMBroadbandModem, based on AT+CGACT? to check whether the PDP context
      of the connection (identified by the cached cid) is active or not.
      
      This commit also disables the connection monitoring logic in those plugins that
      have custom connection methods.
      37bd6142
  13. Dec 02, 2015
  14. Jul 06, 2014
  15. Jun 13, 2014
  16. May 21, 2014
  17. May 20, 2014
  18. Feb 13, 2014
  19. Sep 23, 2013
    • Aleksander Morgado's avatar
      bearer: consolidate unsolicited connection status reports · d818d9fe
      Aleksander Morgado authored
      Originally developed by:
        Ben Chan <benchan@chromium.org>
      
      This patch replaces mm_bearer_report_disconnection() with a more generic
      mm_bearer_report_connection_status(), which allows reporting any
      connection status of a bearer. This further allows getting rid of those
      custom report_connection_status functions in plugic specific bearer
      subclasses.
      
      Note that while plugin-specific implementations can receive multiple
      'MMBearerConnectionStatus' values, the generic implementation is only allowed
      to receive DISCONNECTED. Plugins need to make sure that they process all the
      other status values, and only report DISCONNECTED to the parent when required.
      
      MBM:
        The MBM bearer implementation of report_connection_status() expects either
        CONNECTED or DISCONNECTED. If any of these is received and there is an ongoing
        connection attempt, the corresponding operation will be completed. If there is
        no connection attempt, we will just handle the DISCONNECTED state, calling the
        parent method to notify that the modem got network-disconnected.
      
      Icera:
        The Icera bearer implementation of report_connection_status() expects either
        CONNECTED, CONNECT FAILED or DISCONNECTED. If any of these is received and
        there is an ongoing connection or disconnection attempt, the corresponding
        operation will be completed. If there is no connection or disconnection
        attempt, we will just handle the CONNECT FAILED and DISCONNECTED states,
        calling the parent method (always with DISCONNECTED) to notify that the modem
        got network-disconnected.
      
      Option/HSO:
        The Option/HSO bearer implementation of report_connection_status() expects
        either CONNECTED, CONNECTION FAILED or DISCONNECTED. If any of these is
        received and there is an ongoing connection or disconnection attempt, the
        corresponding operation will be completed. If there is no connection or
        disconnection attempt, we will just handle the CONNECTION FAILED and
        DISCONNECTED states, calling the parent method (always with DISCONNECTED) to
        notify that the modem got network-disconnected.
      
      Huawei:
        The Huawei bearer implementation of report_connection_status() expects either
        CONNECTED or DISCONNECTED. These messages are not used to process pending
        connection or disconnection attempts; so if they are received while one of
        these is on-going, it will just be ignored. CONNECTED reports are also
        ignored, so we will just handle the DISCONNECTED state, calling the parent
        method to notify that the modem got network-disconnected.
      
      Altair-LTE:
        The Altair-LTE bearers will only report DISCONNECTED on network-disconnected
        cases. There is no custom report_connection_status().
      
      Novatel-LTE:
        The Novatel-LTE bearers will only report DISCONNECTED on network-disconnected
        cases. There is no custom report_connection_status().
      d818d9fe
  20. Jun 25, 2013
    • Dan Williams's avatar
      broadband-bearer-hso: IPv4 prefix is always /32 · 597401f8
      Dan Williams authored
      The modem doesn't give us a prefix in the OWANDATA response, but it's
      always /32.  This didn't get set previously because NetworkManager
      always just used /32 for the 'static' configuration, but NM isn't the
      only user of MM, and only MM knows for sure that the prefix should
      be /32.
      597401f8
  21. Feb 18, 2013
    • Aleksander Morgado's avatar
      bearer,3gpp: dial operation specifies which data port to use · b6402a4e
      Aleksander Morgado authored
      Instead of deciding in advance which data port to use, we let the dialling
      operation gather it. For the generic dialling logic, ATD-based, always an
      'AT' port will be used as data port, even if we grabbed a 'net' port. Those
      plugins that can work with 'net' ports will grab the specific 'net' port
      themselves.
      b6402a4e
  22. Jan 14, 2013
  23. Dec 12, 2012
  24. Nov 27, 2012
    • Aleksander Morgado's avatar
      icera,hso: don't disconnect() cancellable in the cancellation callback · e6052a4a
      Aleksander Morgado authored
      The logic gets completely stuck when this happens:
      
      Stack trace below:
      #0  0x77661424 in __kernel_vsyscall ()
      #1  0x77337c3c in pthread_cond_wait ()
      #2  0x773cebaa in g_cond_wait () from /usr/lib/libglib-2.0.so.0
      #3  0x774c03cc in g_cancellable_disconnect () from /usr/lib/libgio-2.0.so.0
      #4  0x76955d36 in connect_cancelled_cb (cancellable=0x78e055a0, self=0x78e0b590)
      #5  0x77460982 in g_cclosure_marshal_VOID__VOIDv () from /usr/lib/libgobject-2.0.so.0
      #6  0x7745ed8a in ?? () from /usr/lib/libgobject-2.0.so.0
      #7  0x77478435 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
      #8  0x77478eb3 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
      #9  0x774c01eb in g_cancellable_cancel () from /usr/lib/libgio-2.0.so.0
      #10 0x776a0eab in mm_bearer_disconnect (self=0x78e0b590, callback=0x776c5980 <disconnect_ready>,
      #11 0x776c57de in disconnect_next_bearer (ctx=0x78e12870) at mm-iface-modem-simple.c:898
      #12 0x776c58d2 in disconnect_auth_ready (self=0x78df3048, res=0x78e06210, ctx=0x78e12870)
      #13 0x774fed25 in g_simple_async_result_complete () from /usr/lib/libgio-2.0.so.0
      #14 0x776a8c4e in authorize_ready (authp=0x78db68d0, res=0x76801638, simple=0x78e06210)
      #15 0x774fed25 in g_simple_async_result_complete () from /usr/lib/libgio-2.0.so.0
      #16 0x774fee3e in ?? () from /usr/lib/libgio-2.0.so.0
      #17 0x7738a7a2 in ?? () from /usr/lib/libglib-2.0.so.0
      #18 0x7738ce83 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
      #19 0x7738d248 in ?? () from /usr/lib/libglib-2.0.so.0
      #20 0x7738d6eb in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
      #21 0x77696a7d in main (argc=2, argv=0x7fbb1f04) at main.c:158
      
      http://code.google.com/p/chromium-os/issues/detail?id=36448
      e6052a4a
  25. Oct 30, 2012
  26. Oct 07, 2012
  27. Oct 04, 2012
    • Aleksander Morgado's avatar
      libmm-glib: remove the `libmm-common.h' header · c250fa37
      Aleksander Morgado authored
      Both the ModemManager daemon and the mmcli will now include `libmm-glib.h' only.
      
      We also handle two new special `_LIBMM_INSIDE_MM' and `LIBMM_INSIDE_MMCLI'
      symbols, which if included before the `libmm-glib.h' library allow us to:
      
       * Don't include the libmm-glib high level API in the ModemManager daemon, as
         the object names would clash with those in the core.
      
       * Define some of the methods of helper objects to be included only if compiling
         ModemManager daemon or the mmcli.
      c250fa37
  28. Sep 14, 2012
  29. Aug 24, 2012
  30. Aug 23, 2012
  31. Aug 06, 2012
    • Aleksander Morgado's avatar
      hso: avoid highly unlikely use of already unref-ed bearer · 40730b11
      Aleksander Morgado authored
      In the connection sequence, we make sure that the Bearer object is valid by
      keeping a reference in the Dial3gppContext (actually, another one kept by the
      GSimpleAsyncResult as well). But we are considering here the case where the
      connection context is completed and freed by an unsolicited message handler
      before we get the reply to the AT command, so to properly ensure that the bearer
      object is still valid when we try to check if the context is in the priv struct,
      we need to keep an extra ref around.
      40730b11
    • Aleksander Morgado's avatar
      hso: avoid trying to use an already freed context · 63a45f80
      Aleksander Morgado authored
      In the connection sequence, we keep the context in the private info of the
      Bearer object, so that we can complete and free it when we receive OWANCALL
      unsolicited messages. Now, the reply of the OWANCALL itself may get processed
      as an unsolicited message, so effectively we're processing and finishing the
      connection/disconnection context *before* we process the reply of the AT
      command.
      
      This patch ensures that we do not try to re-use the connection context after it
      has been processed by the unsolicited messages handler.
      63a45f80
  32. Jul 19, 2012
  33. May 06, 2012
    • Aleksander Morgado's avatar
      bearer: simplify handling of the bearer configuration · caeeae27
      Aleksander Morgado authored
      The base MMBearer object will receive the MMBearerProperties configuration,
      which contains every generic and plugin-specific set up. Not every configuration
      parameter will be used by every implementation (e.g. not every bearer needs
      user/password).
      
      The Bearer object will expose every configuration parameter received in its
      `Properties' property in the interface, even if it's not really used.
      caeeae27
Loading