diff --git a/NEWS b/NEWS
index 9eeb493..9a11142 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,23 @@
+
+Overview of changes in libqmi 1.8.0
+----------------------------------------
+
+This version comes with one small API break:
+* Enum value QMI_SERVICE_RMTFS is not 0x14, but 14. I doubt anyone has been hit
+  by this issue, anyway.
+
+Additional changes include:
+* Support for sharing the QMI port through multiple processes with the new
+  'qmi-proxy' infrastructure.
+* api: added new known service ID enumeration values
+* wds: added "Get Profile List" request/response
+* wds: added "Get Profile Settings" request/response
+* wds: added "Get Default Settings" request/response
+* cli: add --wds-get-profile-list
+* cli: add --wds-get-default-settings
+* man: added qmi-network manpage, autogenerated from --help-all
+
+
 Overview of changes in libqmi 1.6.0
 ----------------------------------------
 
diff --git a/configure.ac b/configure.ac
index 343126d..e000561 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3,7 +3,7 @@
 
 dnl The QMI version number
 m4_define([qmi_major_version], [1])
-m4_define([qmi_minor_version], [7])
+m4_define([qmi_minor_version], [9])
 m4_define([qmi_micro_version], [0])
 m4_define([qmi_version],
           [qmi_major_version.qmi_minor_version.qmi_micro_version])
@@ -16,9 +16,9 @@
 dnl            with old code), increment a.
 dnl        If the interface has changed in an incompatible way (that is,
 dnl            functions have changed or been removed), then zero a.
-m4_define([qmi_glib_lt_current],  [1])
+m4_define([qmi_glib_lt_current],  [2])
 m4_define([qmi_glib_lt_revision], [0])
-m4_define([qmi_glib_lt_age],      [0])
+m4_define([qmi_glib_lt_age],      [1])
 
 
 AC_INIT([libqmi], [qmi_version], [libqmi-devel@lists.freedesktop.org])
diff --git a/docs/reference/libqmi-glib/libqmi-glib-common.sections b/docs/reference/libqmi-glib/libqmi-glib-common.sections
index b6d6d09..a5c54ed 100644
--- a/docs/reference/libqmi-glib/libqmi-glib-common.sections
+++ b/docs/reference/libqmi-glib/libqmi-glib-common.sections
@@ -44,6 +44,9 @@
 QMI_DEVICE_FILE
 QMI_DEVICE_SIGNAL_INDICATION
 QmiDevice
+QmiDeviceOpenFlags
+QmiDeviceReleaseClientFlags
+QmiDeviceServiceVersionInfo
 qmi_device_new
 qmi_device_new_finish
 qmi_device_get_file
@@ -51,22 +54,21 @@
 qmi_device_get_path
 qmi_device_get_path_display
 qmi_device_is_open
-QmiDeviceOpenFlags
 qmi_device_open
 qmi_device_open_finish
 qmi_device_close
 qmi_device_allocate_client
 qmi_device_allocate_client_finish
-QmiDeviceReleaseClientFlags
 qmi_device_release_client
 qmi_device_release_client_finish
 qmi_device_set_instance_id
 qmi_device_set_instance_id_finish
 qmi_device_command
 qmi_device_command_finish
-QmiDeviceServiceVersionInfo
 qmi_device_get_service_version_info
 qmi_device_get_service_version_info_finish
+qmi_device_open_flags_build_string_from_mask
+qmi_device_release_client_flags_build_string_from_mask
 <SUBSECTION Standard>
 QmiDeviceClass
 QMI_DEVICE
@@ -75,8 +77,15 @@
 QMI_IS_DEVICE
 QMI_IS_DEVICE_CLASS
 QMI_TYPE_DEVICE
+QMI_TYPE_DEVICE_OPEN_FLAGS
+QMI_TYPE_DEVICE_RELEASE_CLIENT_FLAGS
 QmiDevicePrivate
 qmi_device_get_type
+qmi_device_open_flags_get_type
+qmi_device_release_client_flags_get_type
+<SUBSECTION Private>
+qmi_device_open_flags_get_string
+qmi_device_release_client_flags_get_string
 </SECTION>
 
 <SECTION>
diff --git a/src/libqmi-glib/generated/Makefile.am b/src/libqmi-glib/generated/Makefile.am
index 72a2dab..13a8827 100644
--- a/src/libqmi-glib/generated/Makefile.am
+++ b/src/libqmi-glib/generated/Makefile.am
@@ -73,10 +73,11 @@
 	$(top_srcdir)/src/libqmi-glib/qmi-enums-pds.h \
 	$(top_srcdir)/src/libqmi-glib/qmi-enums-pbm.h \
 	$(top_srcdir)/src/libqmi-glib/qmi-enums-uim.h \
-	$(top_srcdir)/src/libqmi-glib/qmi-enums-oma.h
+	$(top_srcdir)/src/libqmi-glib/qmi-enums-oma.h \
+	$(top_srcdir)/src/libqmi-glib/qmi-device.h
 qmi-enum-types.h:  $(ENUMS) $(top_srcdir)/build-aux/templates/qmi-enum-types-template.h
 	$(AM_V_GEN) $(GLIB_MKENUMS) \
-		--fhead "#ifndef __LIBQMI_GLIB_ENUM_TYPES_H__\n#define __LIBQMI_GLIB_ENUM_TYPES_H__\n#include \"qmi-enums.h\"\n#include \"qmi-enums-wds.h\"\n#include \"qmi-enums-dms.h\"\n#include \"qmi-enums-nas.h\"\n#include \"qmi-enums-wms.h\"\n#include \"qmi-enums-pds.h\"\n#include \"qmi-enums-pbm.h\"\n#include \"qmi-enums-uim.h\"\n#include \"qmi-enums-oma.h\"\n" \
+		--fhead "#ifndef __LIBQMI_GLIB_ENUM_TYPES_H__\n#define __LIBQMI_GLIB_ENUM_TYPES_H__\n#include \"qmi-enums.h\"\n#include \"qmi-enums-wds.h\"\n#include \"qmi-enums-dms.h\"\n#include \"qmi-enums-nas.h\"\n#include \"qmi-enums-wms.h\"\n#include \"qmi-enums-pds.h\"\n#include \"qmi-enums-pbm.h\"\n#include \"qmi-enums-uim.h\"\n#include \"qmi-enums-oma.h\"\n#include \"qmi-device.h\"\n" \
 		--template $(top_srcdir)/build-aux/templates/qmi-enum-types-template.h \
 		--ftail "#endif /* __LIBQMI_GLIB_ENUM_TYPES_H__ */\n" \
 		$(ENUMS) > $@
diff --git a/src/libqmi-glib/qmi-device.c b/src/libqmi-glib/qmi-device.c
index a1352aa..f744971 100644
--- a/src/libqmi-glib/qmi-device.c
+++ b/src/libqmi-glib/qmi-device.c
@@ -1018,12 +1018,23 @@
     ReleaseClientContext *ctx;
     QmiService service;
     guint8 cid;
+    gchar *flags_str;
 
     g_return_if_fail (QMI_IS_DEVICE (self));
     g_return_if_fail (QMI_IS_CLIENT (client));
 
+    cid = qmi_client_get_cid (client);
+    service = (guint8)qmi_client_get_service (client);
+
     /* The CTL client should not have been created out of the QmiDevice */
-    g_assert (qmi_client_get_service (client) != QMI_SERVICE_CTL);
+    g_return_if_fail (service != QMI_SERVICE_CTL);
+
+    flags_str = qmi_device_release_client_flags_build_string_from_mask (flags);
+    g_debug ("[%s] Releasing '%s' client with flags '%s'...",
+             self->priv->path_display,
+             qmi_service_get_string (service),
+             flags_str);
+    g_free (flags_str);
 
     /* NOTE! The operation must not take a reference to self, or we won't be
      * able to use it implicitly from our dispose() */
@@ -1035,9 +1046,6 @@
                                              user_data,
                                              qmi_device_release_client);
 
-    cid = qmi_client_get_cid (client);
-    service = (guint8)qmi_client_get_service (client);
-
     /* Do not try to release an already released client */
     if (cid == QMI_CID_NONE) {
         g_simple_async_result_set_error (ctx->result,
@@ -1969,6 +1977,7 @@
                  gpointer user_data)
 {
     DeviceOpenContext *ctx;
+    gchar *flags_str;
 
     /* Raw IP and 802.3 are mutually exclusive */
     g_return_if_fail (!((flags & QMI_DEVICE_OPEN_FLAGS_NET_802_3) &&
@@ -1984,6 +1993,12 @@
 
     g_return_if_fail (QMI_IS_DEVICE (self));
 
+    flags_str = qmi_device_open_flags_build_string_from_mask (flags);
+    g_debug ("[%s] Opening device with flags '%s'...",
+             self->priv->path_display,
+             flags_str);
+    g_free (flags_str);
+
     ctx = g_slice_new (DeviceOpenContext);
     ctx->self = g_object_ref (self);
     ctx->result = g_simple_async_result_new (G_OBJECT (self),
diff --git a/src/qmicli/qmicli-helpers.c b/src/qmicli/qmicli-helpers.c
index 10f654c..b57ac68 100644
--- a/src/qmicli/qmicli-helpers.c
+++ b/src/qmicli/qmicli-helpers.c
@@ -285,6 +285,68 @@
 }
 
 gboolean
+qmicli_read_net_open_flags_from_string (const gchar *str,
+                                        QmiDeviceOpenFlags *out)
+{
+    GType type;
+    GFlagsClass *flags_class;
+    GFlagsValue *flags_value;
+    gboolean success = TRUE, set = FALSE;
+    char **items, **iter;
+
+    type = qmi_device_open_flags_get_type ();
+    flags_class = G_FLAGS_CLASS (g_type_class_ref (type));
+
+    items = g_strsplit_set (str, "|", 0);
+    for (iter = items; iter && *iter && success; iter++) {
+        if (!*iter[0])
+            continue;
+
+        flags_value = g_flags_get_value_by_nick (flags_class, *iter);
+        if (flags_value) {
+            *out |= (QmiDeviceOpenFlags)flags_value->value;
+            set = TRUE;
+        } else {
+            g_printerr ("error: invalid net open flags value given: '%s'\n", *iter);
+            success = FALSE;
+        }
+    }
+
+    if (!set)
+        g_printerr ("error: invalid net open flags input given: '%s'\n", str);
+
+    if (items)
+        g_strfreev (items);
+
+    if (*out & QMI_DEVICE_OPEN_FLAGS_NET_802_3 &&
+        *out & QMI_DEVICE_OPEN_FLAGS_NET_RAW_IP) {
+        g_printerr ("error: cannot give both 802.3 and raw-IP options\n");
+        success = FALSE;
+    }
+
+    if (*out & QMI_DEVICE_OPEN_FLAGS_NET_QOS_HEADER &&
+        *out & QMI_DEVICE_OPEN_FLAGS_NET_NO_QOS_HEADER) {
+        g_printerr ("error: cannot request both QoS and no-QoS headers\n");
+        success = FALSE;
+    }
+
+    if ((*out & (QMI_DEVICE_OPEN_FLAGS_NET_802_3 | QMI_DEVICE_OPEN_FLAGS_NET_RAW_IP)) &&
+        !(*out & (QMI_DEVICE_OPEN_FLAGS_NET_QOS_HEADER | QMI_DEVICE_OPEN_FLAGS_NET_NO_QOS_HEADER))) {
+        g_printerr ("error: missing QoS or no-QoS header request\n");
+        success = FALSE;
+    }
+
+    if ((*out & (QMI_DEVICE_OPEN_FLAGS_NET_QOS_HEADER | QMI_DEVICE_OPEN_FLAGS_NET_NO_QOS_HEADER)) &&
+        !(*out & (QMI_DEVICE_OPEN_FLAGS_NET_802_3 | QMI_DEVICE_OPEN_FLAGS_NET_RAW_IP))) {
+        g_printerr ("error: missing link protocol (802.3 or raw IP)\n");
+        success = FALSE;
+    }
+
+    g_type_class_unref (flags_class);
+    return success && set;
+}
+
+gboolean
 qmicli_read_uint_from_string (const gchar *str,
                               guint *out)
 {
diff --git a/src/qmicli/qmicli-helpers.h b/src/qmicli/qmicli-helpers.h
index d33f442..22ff330 100644
--- a/src/qmicli/qmicli-helpers.h
+++ b/src/qmicli/qmicli-helpers.h
@@ -42,9 +42,10 @@
 gboolean qmicli_read_firmware_id_from_string    (const gchar *str,
                                                  QmiDmsFirmwareImageType *out_type,
                                                  guint *out_index);
-
 gboolean qmicli_read_radio_interface_from_string (const gchar *str,
                                                   QmiNasRadioInterface *out);
+gboolean qmicli_read_net_open_flags_from_string (const gchar *str,
+                                                 QmiDeviceOpenFlags *out);
 
 gboolean qmicli_read_non_empty_string           (const gchar *str,
                                                  const gchar *description,
diff --git a/src/qmicli/qmicli.c b/src/qmicli/qmicli.c
index dc63c41..949a4a0 100644
--- a/src/qmicli/qmicli.c
+++ b/src/qmicli/qmicli.c
@@ -32,6 +32,7 @@
 #include <libqmi-glib.h>
 
 #include "qmicli.h"
+#include "qmicli-helpers.h"
 
 #define PROGRAM_NAME    "qmicli"
 #define PROGRAM_VERSION PACKAGE_VERSION
@@ -50,6 +51,7 @@
 static gchar *device_set_instance_id_str;
 static gboolean device_open_version_info_flag;
 static gboolean device_open_sync_flag;
+static gchar *device_open_net_str;
 static gboolean device_open_proxy_flag;
 static gchar *client_cid_str;
 static gboolean client_no_release_cid_flag;
@@ -82,6 +84,10 @@
       "Request to use the 'qmi-proxy' proxy",
       NULL
     },
+    { "device-open-net", 0, 0, G_OPTION_ARG_STRING, &device_open_net_str,
+      "Open device with specific link protocol and QoS flags",
+      "[net-802-3|net-raw-ip|net-qos-header|net-no-qos-header]"
+    },
     { "client-cid", 0, 0, G_OPTION_ARG_STRING, &client_cid_str,
       "Use the given CID, don't allocate a new one",
       "[CID]"
@@ -481,6 +487,9 @@
         open_flags |= QMI_DEVICE_OPEN_FLAGS_SYNC;
     if (device_open_proxy_flag)
         open_flags |= QMI_DEVICE_OPEN_FLAGS_PROXY;
+    if (device_open_net_str)
+        if (!qmicli_read_net_open_flags_from_string (device_open_net_str, &open_flags))
+            exit (EXIT_FAILURE);
 
     /* Open the device */
     qmi_device_open (device,
