+#define MAC2STR(a) (a)[0], (a)[1], (a)[2], (a)[3], (a)[4], (a)[5]
+#define MACSTR "%02x:%02x:%02x:%02x:%02x:%02x"
+
+#define WIFI_KEYMGMT_NONE (1 << 0)
+#define WIFI_KEYMGMT_IEEE8021X (1 << 1)
+#define WIFI_KEYMGMT_WPA_NONE (1 << 2)
+#define WIFI_KEYMGMT_WPA_PSK (1 << 3)
+#define WIFI_KEYMGMT_WPA_PSK_256 (1 << 4)
+#define WIFI_KEYMGMT_WPA_FT_PSK (1 << 5)
+#define WIFI_KEYMGMT_WPA_FT_EAP (1 << 6)
+#define WIFI_KEYMGMT_WPA_EAP (1 << 7)
+#define WIFI_KEYMGMT_WPA_EAP_256 (1 << 8)
+#define WIFI_KEYMGMT_WPS (1 << 9)
+
+#define WIFI_PAIRWISE_NONE (1 << 0)
+#define WIFI_PAIRWISE_TKIP (1 << 1)
+#define WIFI_PAIRWISE_CCMP (1 << 2)
+
+typedef struct {
+ const char *str;
+ unsigned int val;
+} strval_s;
+
+static strval_s wifi_keymgmt[] = {
+ { "none", WIFI_KEYMGMT_NONE },
+ { "ieee8021x", WIFI_KEYMGMT_IEEE8021X },
+ { "wpa-none", WIFI_KEYMGMT_WPA_NONE },
+ { "wpa-psk", WIFI_KEYMGMT_WPA_PSK },
+ { "wpa-psk-sha256", WIFI_KEYMGMT_WPA_PSK_256 },
+ { "wpa-ft-psk", WIFI_KEYMGMT_WPA_FT_PSK },
+ { "wpa-ft-eap", WIFI_KEYMGMT_WPA_FT_EAP },
+ { "wpa-eap", WIFI_KEYMGMT_WPA_EAP },
+ { "wpa-eap-sha256", WIFI_KEYMGMT_WPA_EAP_256 },
+ { "wps", WIFI_KEYMGMT_WPS },
+ { }
+};
+
+static strval_s wifi_pairwise[] = {
+ { "none", WIFI_PAIRWISE_NONE },
+ { "tkip", WIFI_PAIRWISE_TKIP },
+ { "ccmp", WIFI_PAIRWISE_CCMP },
+ { }
+};
+