summary refs log tree commit diff
path: root/src/libnm-core-public/nm-setting-wireless.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/libnm-core-public/nm-setting-wireless.h')
-rw-r--r--src/libnm-core-public/nm-setting-wireless.h202
1 files changed, 202 insertions, 0 deletions
diff --git a/src/libnm-core-public/nm-setting-wireless.h b/src/libnm-core-public/nm-setting-wireless.h
new file mode 100644
index 00000000..0b45e2a3
--- /dev/null
+++ b/src/libnm-core-public/nm-setting-wireless.h
@@ -0,0 +1,202 @@
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+/*
+ * Copyright (C) 2007 - 2014 Red Hat, Inc.
+ * Copyright (C) 2007 - 2008 Novell, Inc.
+ */
+
+#ifndef __NM_SETTING_WIRELESS_H__
+#define __NM_SETTING_WIRELESS_H__
+
+#if !defined(__NETWORKMANAGER_H_INSIDE__) && !defined(NETWORKMANAGER_COMPILATION)
+    #error "Only <NetworkManager.h> can be included directly."
+#endif
+
+#include "nm-setting.h"
+#include "nm-setting-wireless-security.h"
+
+G_BEGIN_DECLS
+
+#define NM_TYPE_SETTING_WIRELESS (nm_setting_wireless_get_type())
+#define NM_SETTING_WIRELESS(obj) \
+    (G_TYPE_CHECK_INSTANCE_CAST((obj), NM_TYPE_SETTING_WIRELESS, NMSettingWireless))
+#define NM_SETTING_WIRELESS_CLASS(klass) \
+    (G_TYPE_CHECK_CLASS_CAST((klass), NM_TYPE_SETTING_WIRELESS, NMSettingWirelessClass))
+#define NM_IS_SETTING_WIRELESS(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NM_TYPE_SETTING_WIRELESS))
+#define NM_IS_SETTING_WIRELESS_CLASS(klass) \
+    (G_TYPE_CHECK_CLASS_TYPE((klass), NM_TYPE_SETTING_WIRELESS))
+#define NM_SETTING_WIRELESS_GET_CLASS(obj) \
+    (G_TYPE_INSTANCE_GET_CLASS((obj), NM_TYPE_SETTING_WIRELESS, NMSettingWirelessClass))
+
+#define NM_SETTING_WIRELESS_SETTING_NAME "802-11-wireless"
+
+/**
+ * NMSettingWirelessWakeOnWLan:
+ * @NM_SETTING_WIRELESS_WAKE_ON_WLAN_NONE: Wake-on-WLAN disabled
+ * @NM_SETTING_WIRELESS_WAKE_ON_WLAN_ANY: Wake on any activity
+ * @NM_SETTING_WIRELESS_WAKE_ON_WLAN_DISCONNECT: Wake on disconnect
+ * @NM_SETTING_WIRELESS_WAKE_ON_WLAN_MAGIC: Wake on magic packet
+ * @NM_SETTING_WIRELESS_WAKE_ON_WLAN_GTK_REKEY_FAILURE: Wake on GTK rekey failure
+ * @NM_SETTING_WIRELESS_WAKE_ON_WLAN_EAP_IDENTITY_REQUEST: Wake on EAP identity request
+ * @NM_SETTING_WIRELESS_WAKE_ON_WLAN_4WAY_HANDSHAKE: Wake on 4way handshake
+ * @NM_SETTING_WIRELESS_WAKE_ON_WLAN_RFKILL_RELEASE: Wake on rfkill release
+ * @NM_SETTING_WIRELESS_WAKE_ON_WLAN_ALL: Wake on all events. This does not
+ *   include the exclusive flags @NM_SETTING_WIRELESS_WAKE_ON_WLAN_DEFAULT or
+ *   @NM_SETTING_WIRELESS_WAKE_ON_WLAN_IGNORE.
+ * @NM_SETTING_WIRELESS_WAKE_ON_WLAN_DEFAULT: Use the default value
+ * @NM_SETTING_WIRELESS_WAKE_ON_WLAN_IGNORE: Don't change configured settings
+ * @NM_SETTING_WIRELESS_WAKE_ON_WLAN_EXCLUSIVE_FLAGS: Mask of flags that are
+ *   incompatible with other flags
+ *
+ * Options for #NMSettingWireless:wake-on-wlan. Note that not all options
+ * are supported by all devices.
+ *
+ * Since: 1.12
+ */
+/* clang-format off */
+typedef enum {                                                            /*< flags >*/
+    NM_SETTING_WIRELESS_WAKE_ON_WLAN_NONE                 = 0, /*< skip >*/
+    NM_SETTING_WIRELESS_WAKE_ON_WLAN_ANY                  = 0x2,
+    NM_SETTING_WIRELESS_WAKE_ON_WLAN_DISCONNECT           = 0x4,
+    NM_SETTING_WIRELESS_WAKE_ON_WLAN_MAGIC                = 0x8,
+    NM_SETTING_WIRELESS_WAKE_ON_WLAN_GTK_REKEY_FAILURE    = 0x10,
+    NM_SETTING_WIRELESS_WAKE_ON_WLAN_EAP_IDENTITY_REQUEST = 0x20,
+    NM_SETTING_WIRELESS_WAKE_ON_WLAN_4WAY_HANDSHAKE       = 0x40,
+    NM_SETTING_WIRELESS_WAKE_ON_WLAN_RFKILL_RELEASE       = 0x80,
+    NM_SETTING_WIRELESS_WAKE_ON_WLAN_TCP                  = 0x100,
+
+    NM_SETTING_WIRELESS_WAKE_ON_WLAN_ALL = 0x1FE,
+
+    NM_SETTING_WIRELESS_WAKE_ON_WLAN_DEFAULT = 0x1,
+    NM_SETTING_WIRELESS_WAKE_ON_WLAN_IGNORE  = 0x8000,
+
+    NM_SETTING_WIRELESS_WAKE_ON_WLAN_EXCLUSIVE_FLAGS = NM_SETTING_WIRELESS_WAKE_ON_WLAN_DEFAULT | NM_SETTING_WIRELESS_WAKE_ON_WLAN_IGNORE, /*< skip >*/
+} NMSettingWirelessWakeOnWLan;
+/* clang-format on */
+
+#define NM_SETTING_WIRELESS_SSID                      "ssid"
+#define NM_SETTING_WIRELESS_MODE                      "mode"
+#define NM_SETTING_WIRELESS_BAND                      "band"
+#define NM_SETTING_WIRELESS_CHANNEL                   "channel"
+#define NM_SETTING_WIRELESS_BSSID                     "bssid"
+#define NM_SETTING_WIRELESS_RATE                      "rate"
+#define NM_SETTING_WIRELESS_TX_POWER                  "tx-power"
+#define NM_SETTING_WIRELESS_MAC_ADDRESS               "mac-address"
+#define NM_SETTING_WIRELESS_CLONED_MAC_ADDRESS        "cloned-mac-address"
+#define NM_SETTING_WIRELESS_GENERATE_MAC_ADDRESS_MASK "generate-mac-address-mask"
+#define NM_SETTING_WIRELESS_MAC_ADDRESS_BLACKLIST     "mac-address-blacklist"
+#define NM_SETTING_WIRELESS_MTU                       "mtu"
+#define NM_SETTING_WIRELESS_SEEN_BSSIDS               "seen-bssids"
+#define NM_SETTING_WIRELESS_HIDDEN                    "hidden"
+#define NM_SETTING_WIRELESS_POWERSAVE                 "powersave"
+#define NM_SETTING_WIRELESS_MAC_ADDRESS_RANDOMIZATION "mac-address-randomization"
+#define NM_SETTING_WIRELESS_WAKE_ON_WLAN              "wake-on-wlan"
+#define NM_SETTING_WIRELESS_AP_ISOLATION              "ap-isolation"
+
+/**
+ * NM_SETTING_WIRELESS_MODE_ADHOC:
+ *
+ * Indicates Ad-Hoc mode where no access point is expected to be present.
+ */
+#define NM_SETTING_WIRELESS_MODE_ADHOC "adhoc"
+
+/**
+ * NM_SETTING_WIRELESS_MODE_AP:
+ *
+ * Indicates AP/master mode where the wireless device is started as an access
+ * point/hotspot.
+ */
+#define NM_SETTING_WIRELESS_MODE_AP "ap"
+
+/**
+ * NM_SETTING_WIRELESS_MODE_INFRA:
+ *
+ * Indicates infrastructure mode where an access point is expected to be present
+ * for this connection.
+ */
+#define NM_SETTING_WIRELESS_MODE_INFRA "infrastructure"
+
+/**
+ * NM_SETTING_WIRELESS_MODE_MESH:
+ *
+ * Indicates that the connection should create a mesh point.
+ *
+ * Since: 1.20
+ */
+#define NM_SETTING_WIRELESS_MODE_MESH "mesh"
+
+/**
+ * NMSettingWirelessPowersave:
+ * @NM_SETTING_WIRELESS_POWERSAVE_DEFAULT: use the default value
+ * @NM_SETTING_WIRELESS_POWERSAVE_IGNORE: don't touch existing setting
+ * @NM_SETTING_WIRELESS_POWERSAVE_DISABLE: disable powersave
+ * @NM_SETTING_WIRELESS_POWERSAVE_ENABLE: enable powersave
+ *
+ * These flags indicate whether wireless powersave must be enabled.
+ **/
+typedef enum {
+    NM_SETTING_WIRELESS_POWERSAVE_DEFAULT = 0,
+    NM_SETTING_WIRELESS_POWERSAVE_IGNORE  = 1,
+    NM_SETTING_WIRELESS_POWERSAVE_DISABLE = 2,
+    NM_SETTING_WIRELESS_POWERSAVE_ENABLE  = 3,
+    _NM_SETTING_WIRELESS_POWERSAVE_NUM,                                          /*< skip >*/
+    NM_SETTING_WIRELESS_POWERSAVE_LAST = _NM_SETTING_WIRELESS_POWERSAVE_NUM - 1, /*< skip >*/
+} NMSettingWirelessPowersave;
+
+typedef struct _NMSettingWirelessClass NMSettingWirelessClass;
+
+GType nm_setting_wireless_get_type(void);
+
+NMSetting *nm_setting_wireless_new(void);
+
+GBytes *    nm_setting_wireless_get_ssid(NMSettingWireless *setting);
+const char *nm_setting_wireless_get_mode(NMSettingWireless *setting);
+const char *nm_setting_wireless_get_band(NMSettingWireless *setting);
+guint32     nm_setting_wireless_get_channel(NMSettingWireless *setting);
+const char *nm_setting_wireless_get_bssid(NMSettingWireless *setting);
+guint32     nm_setting_wireless_get_rate(NMSettingWireless *setting);
+guint32     nm_setting_wireless_get_tx_power(NMSettingWireless *setting);
+const char *nm_setting_wireless_get_mac_address(NMSettingWireless *setting);
+const char *nm_setting_wireless_get_cloned_mac_address(NMSettingWireless *setting);
+
+NM_AVAILABLE_IN_1_4
+const char *nm_setting_wireless_get_generate_mac_address_mask(NMSettingWireless *setting);
+
+const char *const *nm_setting_wireless_get_mac_address_blacklist(NMSettingWireless *setting);
+guint32            nm_setting_wireless_get_num_mac_blacklist_items(NMSettingWireless *setting);
+const char *nm_setting_wireless_get_mac_blacklist_item(NMSettingWireless *setting, guint32 idx);
+gboolean    nm_setting_wireless_add_mac_blacklist_item(NMSettingWireless *setting, const char *mac);
+void        nm_setting_wireless_remove_mac_blacklist_item(NMSettingWireless *setting, guint32 idx);
+gboolean    nm_setting_wireless_remove_mac_blacklist_item_by_value(NMSettingWireless *setting,
+                                                                   const char *       mac);
+void        nm_setting_wireless_clear_mac_blacklist_items(NMSettingWireless *setting);
+
+guint32  nm_setting_wireless_get_mtu(NMSettingWireless *setting);
+gboolean nm_setting_wireless_get_hidden(NMSettingWireless *setting);
+NM_AVAILABLE_IN_1_2
+guint32 nm_setting_wireless_get_powersave(NMSettingWireless *setting);
+
+NM_AVAILABLE_IN_1_2
+NMSettingMacRandomization
+nm_setting_wireless_get_mac_address_randomization(NMSettingWireless *setting);
+
+gboolean nm_setting_wireless_add_seen_bssid(NMSettingWireless *setting, const char *bssid);
+
+guint32     nm_setting_wireless_get_num_seen_bssids(NMSettingWireless *setting);
+const char *nm_setting_wireless_get_seen_bssid(NMSettingWireless *setting, guint32 i);
+
+gboolean nm_setting_wireless_ap_security_compatible(NMSettingWireless *        s_wireless,
+                                                    NMSettingWirelessSecurity *s_wireless_sec,
+                                                    NM80211ApFlags             ap_flags,
+                                                    NM80211ApSecurityFlags     ap_wpa,
+                                                    NM80211ApSecurityFlags     ap_rsn,
+                                                    NM80211Mode                ap_mode);
+
+NM_AVAILABLE_IN_1_12
+NMSettingWirelessWakeOnWLan nm_setting_wireless_get_wake_on_wlan(NMSettingWireless *setting);
+
+NM_AVAILABLE_IN_1_28
+NMTernary nm_setting_wireless_get_ap_isolation(NMSettingWireless *setting);
+
+G_END_DECLS
+
+#endif /* __NM_SETTING_WIRELESS_H__ */