summary refs log tree commit diff
path: root/libnm
diff options
context:
space:
mode:
Diffstat (limited to 'libnm')
-rw-r--r--libnm/libnm.ver86
-rw-r--r--libnm/meson.build8
-rw-r--r--libnm/nm-dbus-helpers.h2
-rw-r--r--libnm/nm-device.c66
-rw-r--r--libnm/nm-device.h8
-rw-r--r--libnm/nm-manager.c2
-rw-r--r--libnm/nm-property-docs.xml4
-rw-r--r--libnm/nm-secret-agent-old.c3
-rw-r--r--libnm/nm-settings-docs.xml4
-rw-r--r--libnm/nm-settings-ifcfg-rh-docs.xml4
-rw-r--r--libnm/nm-vpn-service-plugin.c2
-rw-r--r--libnm/tests/meson.build4
12 files changed, 163 insertions, 30 deletions
diff --git a/libnm/libnm.ver b/libnm/libnm.ver
index ece9686e..8100f3b6 100644
--- a/libnm/libnm.ver
+++ b/libnm/libnm.ver
@@ -1518,3 +1518,89 @@ global:
 	nm_wireguard_peer_set_public_key;
 	nm_wireguard_peer_unref;
 } libnm_1_14_0;
+
+libnm_1_18_0 {
+global:
+	nm_bridge_vlan_cmp;
+	nm_bridge_vlan_from_str;
+	nm_bridge_vlan_get_type;
+	nm_bridge_vlan_get_vid_range;
+	nm_bridge_vlan_is_pvid;
+	nm_bridge_vlan_is_sealed;
+	nm_bridge_vlan_is_untagged;
+	nm_bridge_vlan_new;
+	nm_bridge_vlan_new_clone;
+	nm_bridge_vlan_ref;
+	nm_bridge_vlan_seal;
+	nm_bridge_vlan_set_pvid;
+	nm_bridge_vlan_set_untagged;
+	nm_bridge_vlan_to_str;
+	nm_bridge_vlan_unref;
+	nm_ip_routing_rule_as_string_flags_get_type;
+	nm_ip_routing_rule_cmp;
+	nm_ip_routing_rule_from_string;
+	nm_ip_routing_rule_get_action;
+	nm_ip_routing_rule_get_addr_family;
+	nm_ip_routing_rule_get_destination_port_end;
+	nm_ip_routing_rule_get_destination_port_start;
+	nm_ip_routing_rule_get_from;
+	nm_ip_routing_rule_get_from_len;
+	nm_ip_routing_rule_get_fwmark;
+	nm_ip_routing_rule_get_fwmask;
+	nm_ip_routing_rule_get_iifname;
+	nm_ip_routing_rule_get_invert;
+	nm_ip_routing_rule_get_ipproto;
+	nm_ip_routing_rule_get_oifname;
+	nm_ip_routing_rule_get_priority;
+	nm_ip_routing_rule_get_source_port_end;
+	nm_ip_routing_rule_get_source_port_start;
+	nm_ip_routing_rule_get_table;
+	nm_ip_routing_rule_get_to;
+	nm_ip_routing_rule_get_to_len;
+	nm_ip_routing_rule_get_tos;
+	nm_ip_routing_rule_get_type;
+	nm_ip_routing_rule_is_sealed;
+	nm_ip_routing_rule_new;
+	nm_ip_routing_rule_new_clone;
+	nm_ip_routing_rule_ref;
+	nm_ip_routing_rule_seal;
+	nm_ip_routing_rule_set_action;
+	nm_ip_routing_rule_set_destination_port;
+	nm_ip_routing_rule_set_from;
+	nm_ip_routing_rule_set_fwmark;
+	nm_ip_routing_rule_set_iifname;
+	nm_ip_routing_rule_set_invert;
+	nm_ip_routing_rule_set_ipproto;
+	nm_ip_routing_rule_set_oifname;
+	nm_ip_routing_rule_set_priority;
+	nm_ip_routing_rule_set_source_port;
+	nm_ip_routing_rule_set_table;
+	nm_ip_routing_rule_set_to;
+	nm_ip_routing_rule_set_tos;
+	nm_ip_routing_rule_to_string;
+	nm_ip_routing_rule_unref;
+	nm_ip_routing_rule_validate;
+	nm_lldp_neighbor_get_attr_value;
+	nm_setting_bridge_add_vlan;
+	nm_setting_bridge_clear_vlans;
+	nm_setting_bridge_get_num_vlans;
+	nm_setting_bridge_get_vlan;
+	nm_setting_bridge_get_vlan_default_pvid;
+	nm_setting_bridge_get_vlan_filtering;
+	nm_setting_bridge_port_add_vlan;
+	nm_setting_bridge_port_clear_vlans;
+	nm_setting_bridge_port_get_num_vlans;
+	nm_setting_bridge_port_get_vlan;
+	nm_setting_bridge_port_remove_vlan;
+	nm_setting_bridge_port_remove_vlan_by_vid;
+	nm_setting_bridge_remove_vlan;
+	nm_setting_bridge_remove_vlan_by_vid;
+	nm_setting_ip_config_add_routing_rule;
+	nm_setting_ip_config_clear_routing_rules;
+	nm_setting_ip_config_get_num_routing_rules;
+	nm_setting_ip_config_get_routing_rule;
+	nm_setting_ip_config_remove_routing_rule;
+	nm_tc_qdisc_get_attribute;
+	nm_tc_qdisc_get_attribute_names;
+	nm_tc_qdisc_set_attribute;
+} libnm_1_16_0;
diff --git a/libnm/meson.build b/libnm/meson.build
index 558a587b..4b3df97f 100644
--- a/libnm/meson.build
+++ b/libnm/meson.build
@@ -9,8 +9,8 @@ libnm_utils_sources = files('nm-libnm-utils.c')
 
 deps = [
   libnmdbus_dep,
-  shared_nm_utils_base_dep,
-  nm_core_dep,
+  shared_nm_glib_aux_dep,
+  libnm_core_dep,
 ]
 
 if have_fake_typelibs
@@ -158,8 +158,8 @@ libnm = shared_library(
   dependencies: [
     dl_dep,
     libudev_dep,
-    shared_nm_utils_base_dep,
-    nm_core_dep,
+    shared_nm_glib_aux_dep,
+    libnm_core_dep,
     uuid_dep,
     libnm_systemd_shared_no_logging_dep,
   ],
diff --git a/libnm/nm-dbus-helpers.h b/libnm/nm-dbus-helpers.h
index 0f2cabe8..eb5394f0 100644
--- a/libnm/nm-dbus-helpers.h
+++ b/libnm/nm-dbus-helpers.h
@@ -25,7 +25,7 @@
 #error Cannot use this header.
 #endif
 
-#include "nm-dbus-compat.h"
+#include "nm-std-aux/nm-dbus-compat.h"
 
 GBusType _nm_dbus_bus_type (void);
 
diff --git a/libnm/nm-device.c b/libnm/nm-device.c
index 5965cb3b..aba4e5c4 100644
--- a/libnm/nm-device.c
+++ b/libnm/nm-device.c
@@ -40,7 +40,7 @@
 #include "nm-dbus-helpers.h"
 #include "nm-device-tun.h"
 #include "nm-setting-connection.h"
-#include "shared/nm-utils/nm-udev-utils.h"
+#include "nm-udev-aux/nm-udev-utils.h"
 
 #include "introspection/org.freedesktop.NetworkManager.Device.h"
 
@@ -2649,6 +2649,18 @@ nm_device_get_setting_type (NMDevice *device)
 	return NM_DEVICE_GET_CLASS (device)->get_setting_type (device);
 }
 
+/*****************************************************************************/
+
+static gboolean
+NM_IS_LLDP_NEIGHBOR (const NMLldpNeighbor *self)
+{
+	nm_assert (   !self
+	           || (   self->refcount > 0
+	               && self->attrs));
+	return    self
+	       && self->refcount > 0;
+}
+
 /**
  * nm_lldp_neighbor_new:
  *
@@ -2675,9 +2687,15 @@ static NMLldpNeighbor *
 nm_lldp_neighbor_dup (NMLldpNeighbor *neighbor)
 {
 	NMLldpNeighbor *copy;
+	GHashTableIter iter;
+	const char *key;
+	GVariant *value;
 
 	copy = nm_lldp_neighbor_new ();
-	copy->attrs = g_hash_table_ref (neighbor->attrs);
+
+	g_hash_table_iter_init (&iter, neighbor->attrs);
+	while (g_hash_table_iter_next (&iter, (gpointer *) &key, (gpointer *) &value))
+		g_hash_table_insert (copy->attrs, g_strdup (key), g_variant_ref (value));
 
 	return copy;
 }
@@ -2693,8 +2711,7 @@ nm_lldp_neighbor_dup (NMLldpNeighbor *neighbor)
 void
 nm_lldp_neighbor_ref (NMLldpNeighbor *neighbor)
 {
-	g_return_if_fail (neighbor);
-	g_return_if_fail (neighbor->refcount > 0);
+	g_return_if_fail (NM_IS_LLDP_NEIGHBOR (neighbor));
 
 	neighbor->refcount++;
 }
@@ -2711,11 +2728,9 @@ nm_lldp_neighbor_ref (NMLldpNeighbor *neighbor)
 void
 nm_lldp_neighbor_unref (NMLldpNeighbor *neighbor)
 {
-	g_return_if_fail (neighbor);
-	g_return_if_fail (neighbor->refcount > 0);
+	g_return_if_fail (NM_IS_LLDP_NEIGHBOR (neighbor));
 
 	if (--neighbor->refcount == 0) {
-		g_return_if_fail (neighbor->attrs);
 		g_hash_table_unref (neighbor->attrs);
 		g_free (neighbor);
 	}
@@ -2738,8 +2753,7 @@ nm_lldp_neighbor_get_attr_names (NMLldpNeighbor *neighbor)
 	const char *key;
 	GPtrArray *names;
 
-	g_return_val_if_fail (neighbor, NULL);
-	g_return_val_if_fail (neighbor->attrs, NULL);
+	g_return_val_if_fail (NM_IS_LLDP_NEIGHBOR (neighbor), NULL);
 
 	names = g_ptr_array_new ();
 
@@ -2765,12 +2779,12 @@ nm_lldp_neighbor_get_attr_names (NMLldpNeighbor *neighbor)
  * Since: 1.2
  **/
 gboolean
-nm_lldp_neighbor_get_attr_string_value (NMLldpNeighbor *neighbor, char *name,
+nm_lldp_neighbor_get_attr_string_value (NMLldpNeighbor *neighbor, const char *name,
                                         const char **out_value)
 {
 	GVariant *variant;
 
-	g_return_val_if_fail (neighbor, FALSE);
+	g_return_val_if_fail (NM_IS_LLDP_NEIGHBOR (neighbor), FALSE);
 	g_return_val_if_fail (name && name[0], FALSE);
 
 	variant = g_hash_table_lookup (neighbor->attrs, name);
@@ -2795,12 +2809,12 @@ nm_lldp_neighbor_get_attr_string_value (NMLldpNeighbor *neighbor, char *name,
  * Since: 1.2
  **/
 gboolean
-nm_lldp_neighbor_get_attr_uint_value (NMLldpNeighbor *neighbor, char *name,
+nm_lldp_neighbor_get_attr_uint_value (NMLldpNeighbor *neighbor, const char *name,
                                       guint *out_value)
 {
 	GVariant *variant;
 
-	g_return_val_if_fail (neighbor, FALSE);
+	g_return_val_if_fail (NM_IS_LLDP_NEIGHBOR (neighbor), FALSE);
 	g_return_val_if_fail (name && name[0], FALSE);
 
 	variant = g_hash_table_lookup (neighbor->attrs, name);
@@ -2813,6 +2827,27 @@ nm_lldp_neighbor_get_attr_uint_value (NMLldpNeighbor *neighbor, char *name,
 }
 
 /**
+ * nm_lldp_neighbor_get_attr_value:
+ * @neighbor: the #NMLldpNeighbor
+ * @name: the attribute name
+ *
+ * Gets the value (as a GVariant) of attribute with name @name on @neighbor
+ *
+ * Returns: (transfer none): the value or %NULL if the attribute with @name was
+ * not found.
+ *
+ * Since: 1.18
+ **/
+GVariant *
+nm_lldp_neighbor_get_attr_value (NMLldpNeighbor *neighbor, const char *name)
+{
+	g_return_val_if_fail (NM_IS_LLDP_NEIGHBOR (neighbor), FALSE);
+	g_return_val_if_fail (name && name[0], FALSE);
+
+	return g_hash_table_lookup (neighbor->attrs, name);
+}
+
+/**
  * nm_lldp_neighbor_get_attr_type:
  * @neighbor: the #NMLldpNeighbor
  * @name: the attribute name
@@ -2824,11 +2859,11 @@ nm_lldp_neighbor_get_attr_uint_value (NMLldpNeighbor *neighbor, char *name,
  * Since: 1.2
  **/
 const GVariantType *
-nm_lldp_neighbor_get_attr_type (NMLldpNeighbor *neighbor, char *name)
+nm_lldp_neighbor_get_attr_type (NMLldpNeighbor *neighbor, const char *name)
 {
 	GVariant *variant;
 
-	g_return_val_if_fail (neighbor, NULL);
+	g_return_val_if_fail (NM_IS_LLDP_NEIGHBOR (neighbor), NULL);
 	g_return_val_if_fail (name && name[0], NULL);
 
 	variant = g_hash_table_lookup (neighbor->attrs, name);
@@ -2836,5 +2871,4 @@ nm_lldp_neighbor_get_attr_type (NMLldpNeighbor *neighbor, char *name)
 		return g_variant_get_type (variant);
 	else
 		return NULL;
-
 }
diff --git a/libnm/nm-device.h b/libnm/nm-device.h
index fcda93ab..62272297 100644
--- a/libnm/nm-device.h
+++ b/libnm/nm-device.h
@@ -227,13 +227,15 @@ void nm_lldp_neighbor_unref (NMLldpNeighbor *neighbor);
 NM_AVAILABLE_IN_1_2
 char **nm_lldp_neighbor_get_attr_names (NMLldpNeighbor *neighbor);
 NM_AVAILABLE_IN_1_2
-gboolean nm_lldp_neighbor_get_attr_string_value (NMLldpNeighbor *neighbor, char *name,
+gboolean nm_lldp_neighbor_get_attr_string_value (NMLldpNeighbor *neighbor, const char *name,
                                                  const char **out_value);
 NM_AVAILABLE_IN_1_2
-gboolean nm_lldp_neighbor_get_attr_uint_value (NMLldpNeighbor *neighbor, char *name,
+gboolean nm_lldp_neighbor_get_attr_uint_value (NMLldpNeighbor *neighbor, const char *name,
                                                guint *out_value);
 NM_AVAILABLE_IN_1_2
-const GVariantType *nm_lldp_neighbor_get_attr_type (NMLldpNeighbor *neighbor, char *name);
+const GVariantType *nm_lldp_neighbor_get_attr_type (NMLldpNeighbor *neighbor, const char *name);
+NM_AVAILABLE_IN_1_18
+GVariant *nm_lldp_neighbor_get_attr_value (NMLldpNeighbor *neighbor, const char *name);
 
 G_END_DECLS
 
diff --git a/libnm/nm-manager.c b/libnm/nm-manager.c
index 7a169863..509586e0 100644
--- a/libnm/nm-manager.c
+++ b/libnm/nm-manager.c
@@ -25,7 +25,7 @@
 
 #include "nm-utils.h"
 #include "nm-checkpoint.h"
-#include "nm-common-macros.h"
+#include "nm-libnm-core-intern/nm-common-macros.h"
 #include "nm-device-ethernet.h"
 #include "nm-device-wifi.h"
 #include "nm-core-internal.h"
diff --git a/libnm/nm-property-docs.xml b/libnm/nm-property-docs.xml
index 6344f784..f73ff6da 100644
--- a/libnm/nm-property-docs.xml
+++ b/libnm/nm-property-docs.xml
@@ -103,11 +103,15 @@
     <property name="multicast-snooping" name_upper="MULTICAST_SNOOPING" type="boolean" default="TRUE" description="Controls whether IGMP snooping is enabled for this bridge. Note that if snooping was automatically disabled due to hash collisions, the system may refuse to enable the feature until the collisions are resolved." />
     <property name="priority" name_upper="PRIORITY" type="uint32" default="32768" description="Sets the Spanning Tree Protocol (STP) priority for this bridge.  Lower values are &quot;better&quot;; the lowest priority bridge will be elected the root bridge." />
     <property name="stp" name_upper="STP" type="boolean" default="TRUE" description="Controls whether Spanning Tree Protocol (STP) is enabled for this bridge." />
+    <property name="vlan-default-pvid" name_upper="VLAN_DEFAULT_PVID" type="uint32" default="1" description="The default PVID for the ports of the bridge, that is the VLAN id assigned to incoming untagged frames." />
+    <property name="vlan-filtering" name_upper="VLAN_FILTERING" type="boolean" default="FALSE" description="Control whether VLAN filtering is enabled on the bridge." />
+    <property name="vlans" name_upper="VLANS" type="array of vardict" default="[]" description="Array of bridge VLAN objects. In addition to the VLANs specified here, the bridge will also have the default-pvid VLAN configured  by the bridge.vlan-default-pvid property. In nmcli the VLAN list can be specified with the following syntax: $vid [pvid] [untagged] [, $vid [pvid] [untagged]]... where $vid is either a single id between 1 and 4094 or a range, represented as a couple of ids separated by a dash." />
   </setting>
   <setting name="bridge-port" description="Bridge Port Settings" name_upper="BRIDGE_PORT" >
     <property name="hairpin-mode" name_upper="HAIRPIN_MODE" type="boolean" default="FALSE" description="Enables or disables &quot;hairpin mode&quot; for the port, which allows frames to be sent back out through the port the frame was received on." />
     <property name="path-cost" name_upper="PATH_COST" type="uint32" default="100" description="The Spanning Tree Protocol (STP) port cost for destinations via this port." />
     <property name="priority" name_upper="PRIORITY" type="uint32" default="32" description="The Spanning Tree Protocol (STP) priority of this bridge port." />
+    <property name="vlans" name_upper="VLANS" type="array of vardict" default="[]" description="Array of bridge VLAN objects. In addition to the VLANs specified here, the port will also have the default-pvid VLAN configured on the bridge by the bridge.vlan-default-pvid property. In nmcli the VLAN list can be specified with the following syntax: $vid [pvid] [untagged] [, $vid [pvid] [untagged]]... where $vid is either a single id between 1 and 4094 or a range, represented as a couple of ids separated by a dash." />
   </setting>
   <setting name="cdma" description="CDMA-based Mobile Broadband Settings" name_upper="CDMA" >
     <property name="mtu" name_upper="MTU" type="uint32" default="0" description="If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple frames." />
diff --git a/libnm/nm-secret-agent-old.c b/libnm/nm-secret-agent-old.c
index 56a88b00..40485ab6 100644
--- a/libnm/nm-secret-agent-old.c
+++ b/libnm/nm-secret-agent-old.c
@@ -892,8 +892,7 @@ nm_secret_agent_old_get_secrets (NMSecretAgentOld *self,
 	g_return_if_fail (NM_IS_SECRET_AGENT_OLD (self));
 	g_return_if_fail (NM_IS_CONNECTION (connection));
 	g_return_if_fail (nm_connection_get_path (connection));
-	g_return_if_fail (setting_name != NULL);
-	g_return_if_fail (strlen (setting_name) > 0);
+	g_return_if_fail (setting_name && setting_name[0]);
 	g_return_if_fail (!(flags & NM_SECRET_AGENT_GET_SECRETS_FLAG_ONLY_SYSTEM));
 	g_return_if_fail (!(flags & NM_SECRET_AGENT_GET_SECRETS_FLAG_NO_ERRORS));
 	g_return_if_fail (callback != NULL);
diff --git a/libnm/nm-settings-docs.xml b/libnm/nm-settings-docs.xml
index ee5f3641..0f1d8c97 100644
--- a/libnm/nm-settings-docs.xml
+++ b/libnm/nm-settings-docs.xml
@@ -105,11 +105,15 @@
     <property name="multicast-snooping" name_upper="MULTICAST_SNOOPING" type="boolean" default="TRUE" description="Controls whether IGMP snooping is enabled for this bridge. Note that if snooping was automatically disabled due to hash collisions, the system may refuse to enable the feature until the collisions are resolved." />
     <property name="priority" name_upper="PRIORITY" type="uint32" default="32768" description="Sets the Spanning Tree Protocol (STP) priority for this bridge.  Lower values are &quot;better&quot;; the lowest priority bridge will be elected the root bridge." />
     <property name="stp" name_upper="STP" type="boolean" default="TRUE" description="Controls whether Spanning Tree Protocol (STP) is enabled for this bridge." />
+    <property name="vlan-default-pvid" name_upper="VLAN_DEFAULT_PVID" type="uint32" default="1" description="The default PVID for the ports of the bridge, that is the VLAN id assigned to incoming untagged frames." />
+    <property name="vlan-filtering" name_upper="VLAN_FILTERING" type="boolean" default="FALSE" description="Control whether VLAN filtering is enabled on the bridge." />
+    <property name="vlans" name_upper="VLANS" type="array of vardict" default="[]" description="Array of bridge VLAN objects. In addition to the VLANs specified here, the bridge will also have the default-pvid VLAN configured  by the bridge.vlan-default-pvid property. In nmcli the VLAN list can be specified with the following syntax: $vid [pvid] [untagged] [, $vid [pvid] [untagged]]... where $vid is either a single id between 1 and 4094 or a range, represented as a couple of ids separated by a dash." />
   </setting>
   <setting name="bridge-port" description="Bridge Port Settings" name_upper="BRIDGE_PORT" >
     <property name="hairpin-mode" name_upper="HAIRPIN_MODE" type="boolean" default="FALSE" description="Enables or disables &quot;hairpin mode&quot; for the port, which allows frames to be sent back out through the port the frame was received on." />
     <property name="path-cost" name_upper="PATH_COST" type="uint32" default="100" description="The Spanning Tree Protocol (STP) port cost for destinations via this port." />
     <property name="priority" name_upper="PRIORITY" type="uint32" default="32" description="The Spanning Tree Protocol (STP) priority of this bridge port." />
+    <property name="vlans" name_upper="VLANS" type="array of vardict" default="[]" description="Array of bridge VLAN objects. In addition to the VLANs specified here, the port will also have the default-pvid VLAN configured on the bridge by the bridge.vlan-default-pvid property. In nmcli the VLAN list can be specified with the following syntax: $vid [pvid] [untagged] [, $vid [pvid] [untagged]]... where $vid is either a single id between 1 and 4094 or a range, represented as a couple of ids separated by a dash." />
   </setting>
   <setting name="cdma" description="CDMA-based Mobile Broadband Settings" name_upper="CDMA" >
     <property name="mtu" name_upper="MTU" type="uint32" default="0" description="If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple frames." />
diff --git a/libnm/nm-settings-ifcfg-rh-docs.xml b/libnm/nm-settings-ifcfg-rh-docs.xml
index cec2d527..ca5a8449 100644
--- a/libnm/nm-settings-ifcfg-rh-docs.xml
+++ b/libnm/nm-settings-ifcfg-rh-docs.xml
@@ -58,6 +58,7 @@ lookaside file, or it can be owned by a secret agent."/>
 <property name="priority" variable="BRIDGING_OPTS: priority=" format="" values="0 - 63" default="32" example="" description="STP priority."/>
 <property name="path-cost" variable="BRIDGING_OPTS: path_cost=" format="" values="1 - 65535" default="100" example="" description="STP cost."/>
 <property name="hairpin-mode" variable="BRIDGING_OPTS: hairpin_mode=" format="" values="" default="yes" example="" description="Hairpin mode of the bridge port."/>
+<property name="vlans" variable="BRIDGE_PORT_VLANS" format="" values="" default="" example="BRIDGE_PORT_VLANS=&quot;1 pvid untagged,20,300-400 untagged&quot;" description="List of VLANs on the bridge port"/>
 </setting>
 <setting name="bridge">
 <property name="mac-address" variable="BRIDGE_MACADDR(+)" format="" values="" default="" example="" description="MAC address of the bridge. Note that this requires a recent
@@ -70,6 +71,9 @@ BRIDGE_MACADDR for bridges is an NM extension."/>
 <property name="max-age" variable="BRIDGING_OPTS: max_age=" format="" values="6 - 40" default="20" example="" description="STP maximum message age."/>
 <property name="ageing-time" variable="BRIDGING_OPTS: ageing_time=" format="" values="0 - 1000000" default="300" example="" description="Ethernet MAC ageing time."/>
 <property name="multicast-snooping" variable="BRIDGING_OPTS: multicast_snooping=" format="" values="0 or 1" default="1" example="" description="IGMP snooping support."/>
+<property name="vlan-filtering" variable="BRIDGING_OPTS: vlan_filtering=" format="" values="0 or 1" default="0" example="" description="VLAN filtering support."/>
+<property name="vlan-default-pvid" variable="BRIDGING_OPTS: default_pvid=" format="" values="0 - 4094" default="1" example="" description="default VLAN PVID."/>
+<property name="vlans" variable="BRIDGE_VLANS" format="" values="" default="" example="BRIDGE_VLANS=&quot;1 pvid untagged,20,300-400 untagged&quot;" description="List of VLANs on the bridge"/>
 </setting>
 <setting name="cdma">
 </setting>
diff --git a/libnm/nm-vpn-service-plugin.c b/libnm/nm-vpn-service-plugin.c
index a2728342..abd02f18 100644
--- a/libnm/nm-vpn-service-plugin.c
+++ b/libnm/nm-vpn-service-plugin.c
@@ -26,7 +26,7 @@
 #include <signal.h>
 #include <stdlib.h>
 
-#include "nm-utils/nm-secret-utils.h"
+#include "nm-glib-aux/nm-secret-utils.h"
 #include "nm-enum-types.h"
 #include "nm-utils.h"
 #include "nm-connection.h"
diff --git a/libnm/tests/meson.build b/libnm/tests/meson.build
index d0a2dd30..d76b9f5f 100644
--- a/libnm/tests/meson.build
+++ b/libnm/tests/meson.build
@@ -19,7 +19,7 @@ foreach test_unit: test_units
     ],
     dependencies: [
       libnm_dep,
-      nm_core_dep,
+      libnm_core_dep,
       libnm_systemd_shared_no_logging_dep,
     ],
     c_args: cflags,
@@ -39,6 +39,6 @@ libnm_vpn_plugin_utils_test = static_library(
   'nm-vpn-plugin-utils-test',
   sources: shared_nm_utils_nm_vpn_plugin_utils_c + [libnm_enum[1]],
   include_directories: libnm_inc,
-  dependencies: nm_core_dep,
+  dependencies: libnm_core_dep,
   c_args: cflags,
 )