summary refs log tree commit diff
path: root/libnm-core/nm-setting-macsec.c
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2018-06-17 14:54:10 +0200
committerMichael Biebl <biebl@debian.org>2018-06-17 14:54:10 +0200
commit069cb5c3a525ebcc19cc2927964258acaca87b13 (patch)
tree66ac6b21a44d630c0fc281c0df327239d491226a /libnm-core/nm-setting-macsec.c
parent04bc9e1cd3544445d883ad29ea108c1645c8e7b7 (diff)
New upstream version 1.11.90 upstream/1.11.90
Diffstat (limited to 'libnm-core/nm-setting-macsec.c')
-rw-r--r--libnm-core/nm-setting-macsec.c40
1 files changed, 39 insertions, 1 deletions
diff --git a/libnm-core/nm-setting-macsec.c b/libnm-core/nm-setting-macsec.c
index 7a8a5a34..92ebafa6 100644
--- a/libnm-core/nm-setting-macsec.c
+++ b/libnm-core/nm-setting-macsec.c
@@ -49,7 +49,8 @@ NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_MACSEC)
 typedef struct {
 	char *parent;
 	NMSettingMacsecMode mode;
-	gboolean encrypt;
+	bool encrypt:1;
+	bool send_sci:1;
 	char *mka_cak;
 	NMSettingSecretFlags mka_cak_flags;
 	char *mka_ckn;
@@ -66,6 +67,7 @@ NM_GOBJECT_PROPERTIES_DEFINE_BASE (
 	PROP_MKA_CKN,
 	PROP_PORT,
 	PROP_VALIDATION,
+	PROP_SEND_SCI,
 );
 
 /**
@@ -204,6 +206,21 @@ nm_setting_macsec_get_validation (NMSettingMacsec *setting)
 	return NM_SETTING_MACSEC_GET_PRIVATE (setting)->validation;
 }
 
+/**
+ * nm_setting_macsec_get_send_sci:
+ * @setting: the #NMSettingMacsec
+ *
+ * Returns: the #NMSettingMacsec:send-sci property of the setting
+ *
+ * Since: 1.12
+ **/
+gboolean
+nm_setting_macsec_get_send_sci (NMSettingMacsec *setting)
+{
+	g_return_val_if_fail (NM_IS_SETTING_MACSEC (setting), TRUE);
+	return NM_SETTING_MACSEC_GET_PRIVATE (setting)->send_sci;
+}
+
 static GPtrArray *
 need_secrets (NMSetting *setting)
 {
@@ -390,6 +407,9 @@ set_property (GObject *object, guint prop_id,
 	case PROP_VALIDATION:
 		priv->validation = g_value_get_int (value);
 		break;
+	case PROP_SEND_SCI:
+		priv->send_sci = g_value_get_boolean (value);
+		break;
 	default:
 		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
 		break;
@@ -428,6 +448,9 @@ get_property (GObject *object, guint prop_id,
 	case PROP_VALIDATION:
 		g_value_set_int (value, priv->validation);
 		break;
+	case PROP_SEND_SCI:
+		g_value_set_boolean (value, priv->send_sci);
+		break;
 	default:
 		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
 		break;
@@ -588,5 +611,20 @@ nm_setting_macsec_class_init (NMSettingMacsecClass *setting_class)
 	                      NM_SETTING_PARAM_INFERRABLE |
 	                      G_PARAM_STATIC_STRINGS);
 
+	/**
+	 * NMSettingMacsec:send-sci:
+	 *
+	 * Specifies whether the SCI (Secure Channel Identifier) is included
+	 * in every packet.
+	 *
+	 * Since: 1.12
+	 **/
+	obj_properties[PROP_SEND_SCI] =
+	    g_param_spec_boolean (NM_SETTING_MACSEC_SEND_SCI, "", "",
+	                          TRUE,
+	                          G_PARAM_READWRITE |
+	                          G_PARAM_CONSTRUCT |
+	                          G_PARAM_STATIC_STRINGS);
+
 	g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
 }