]> git.ipfire.org Git - people/ms/network.git/blobdiff - src/libnetwork/network/phy.h
wireless-ap: Automatically enable all supported ciphers
[people/ms/network.git] / src / libnetwork / network / phy.h
index b33aee5e24084752605f253f771199d1a5186160..bc6dafb4c30318be444627c62f0d44306fdecf17 100644 (file)
@@ -30,8 +30,27 @@ int network_phy_new(struct network_ctx*, struct network_phy** phy, const char* n
 struct network_phy* network_phy_ref(struct network_phy* phy);
 struct network_phy* network_phy_unref(struct network_phy* phy);
 
+enum network_phy_ciphers {
+       NETWORK_PHY_CIPHER_WEP40           = (1 <<  0),
+       NETWORK_PHY_CIPHER_TKIP            = (1 <<  1),
+       NETWORK_PHY_CIPHER_CCMP128         = (1 <<  2),
+       NETWORK_PHY_CIPHER_WEP104          = (1 <<  3),
+       NETWORK_PHY_CIPHER_CMAC128         = (1 <<  4),
+       NETWORK_PHY_CIPHER_GCMP128         = (1 <<  5),
+       NETWORK_PHY_CIPHER_GCMP256         = (1 <<  6),
+       NETWORK_PHY_CIPHER_CCMP256         = (1 <<  7),
+       NETWORK_PHY_CIPHER_GMAC128         = (1 <<  8),
+       NETWORK_PHY_CIPHER_GMAC256         = (1 <<  9),
+       NETWORK_PHY_CIPHER_CMAC256         = (1 << 10),
+       NETWORK_PHY_CIPHER_WPISMS4         = (1 << 11),
+};
+
+const char* network_phy_get_cipher_string(const enum network_phy_ciphers cipher);
+int network_phy_supports_cipher(struct network_phy* phy, const enum network_phy_ciphers cipher);
+char* network_phy_list_ciphers(struct network_phy* phy);
+
 enum network_phy_ht_caps {
-       NETWORK_PHY_HT_CAP_RX_LDCP         = (1 <<  0),
+       NETWORK_PHY_HT_CAP_RX_LDPC         = (1 <<  0),
        NETWORK_PHY_HT_CAP_HT40            = (1 <<  1),
        NETWORK_PHY_HT_CAP_SMPS_STATIC     = (1 <<  2),
        NETWORK_PHY_HT_CAP_SMPS_DYNAMIC    = (1 <<  3),
@@ -67,6 +86,7 @@ enum network_phy_vht_caps {
 };
 
 
+char* network_phy_list_channels(struct network_phy* phy);
 int network_phy_has_vht_capability(struct network_phy* phy, const enum network_phy_vht_caps cap);
 char* network_phy_list_vht_capabilities(struct network_phy* phy);
 int network_phy_has_ht_capability(struct network_phy* phy, const enum network_phy_ht_caps cap);
@@ -80,11 +100,14 @@ char* network_phy_list_ht_capabilities(struct network_phy* phy);
 struct nl_msg* network_phy_make_netlink_message(struct network_phy* phy,
        enum nl80211_commands cmd, int flags);
 
+#define foreach_cipher(cipher) \
+       for(enum network_phy_ciphers cipher = NETWORK_PHY_CIPHER_WEP40; cipher <= NETWORK_PHY_CIPHER_WPISMS4; cipher <<= 1)
+
 #define foreach_vht_cap(cap) \
        for(int cap = NETWORK_PHY_VHT_CAP_VHT160; cap <= NETWORK_PHY_VHT_CAP_TX_ANTENNA_PATTERN; cap <<= 1)
 
 #define foreach_ht_cap(cap) \
-       for(int cap = NETWORK_PHY_HT_CAP_RX_LDCP; cap != NETWORK_PHY_HT_CAP_LSIG_TXOP_PROT; cap <<= 1)
+       for(int cap = NETWORK_PHY_HT_CAP_RX_LDPC; cap <= NETWORK_PHY_HT_CAP_LSIG_TXOP_PROT; cap <<= 1)
 
 #endif