nl80211: fix phy/netdev index lookup
[project/iwinfo.git] / iwinfo_lua.c
index 58a5537b638634a21298eeb706c3e080741e8e6e..996f2911e2755c4c3279e08833fa55153bab72b9 100644 (file)
@@ -61,6 +61,15 @@ static char * iwinfo_crypto_print_ciphers(int ciphers)
        if (ciphers & IWINFO_CIPHER_CCMP)
                pos += sprintf(pos, "CCMP, ");
 
+       if (ciphers & IWINFO_CIPHER_CCMP256)
+               pos += sprintf(pos, "CCMP-256, ");
+
+       if (ciphers & IWINFO_CIPHER_GCMP)
+               pos += sprintf(pos, "GCMP, ");
+
+       if (ciphers & IWINFO_CIPHER_GCMP256)
+               pos += sprintf(pos, "GCMP-256, ");
+
        if (ciphers & IWINFO_CIPHER_WRAP)
                pos += sprintf(pos, "WRAP, ");
 
@@ -265,6 +274,9 @@ static void set_rateinfo(lua_State *L, struct iwinfo_rate_entry *r, bool rx)
        lua_pushboolean(L, r->is_vht);
        lua_setfield(L, -2, rx ? "rx_vht" : "tx_vht");
 
+       lua_pushboolean(L, r->is_he);
+       lua_setfield(L, -2, rx ? "rx_he" : "tx_he");
+
        lua_pushnumber(L, r->mhz);
        lua_setfield(L, -2, rx ? "rx_mhz" : "tx_mhz");
 
@@ -279,7 +291,7 @@ static void set_rateinfo(lua_State *L, struct iwinfo_rate_entry *r, bool rx)
                lua_pushboolean(L, r->is_short_gi);
                lua_setfield(L, -2, rx ? "rx_short_gi" : "tx_short_gi");
        }
-       else if (r->is_vht)
+       else if (r->is_vht || r->is_he)
        {
                lua_pushnumber(L, r->mcs);
                lua_setfield(L, -2, rx ? "rx_mcs" : "tx_mcs");
@@ -287,8 +299,18 @@ static void set_rateinfo(lua_State *L, struct iwinfo_rate_entry *r, bool rx)
                lua_pushnumber(L, r->nss);
                lua_setfield(L, -2, rx ? "rx_nss" : "tx_nss");
 
-               lua_pushboolean(L, r->is_short_gi);
-               lua_setfield(L, -2, rx ? "rx_short_gi" : "tx_short_gi");
+               if (r->is_he) {
+                       lua_pushnumber(L, r->he_gi);
+                       lua_setfield(L, -2, rx ? "rx_he_gi" : "tx_he_gi");
+
+                       lua_pushnumber(L, r->he_dcm);
+                       lua_setfield(L, -2, rx ? "rx_he_dcm" : "tx_he_dcm");
+               }
+
+               if (r->is_vht) {
+                       lua_pushboolean(L, r->is_short_gi);
+                       lua_setfield(L, -2, rx ? "rx_short_gi" : "tx_short_gi");
+               }
        }
 }
 
@@ -527,6 +549,9 @@ static int iwinfo_L_hwmodelist(lua_State *L, int (*func)(const char *, int *))
                lua_pushboolean(L, hwmodes & IWINFO_80211_AD);
                lua_setfield(L, -2, "ad");
 
+               lua_pushboolean(L, hwmodes & IWINFO_80211_AX);
+               lua_setfield(L, -2, "ax");
+
                return 1;
        }
 
@@ -751,6 +776,7 @@ LUA_WRAP_STRUCT_OP(nl80211,hardware_id)
 #endif
 
 /* Wext */
+#ifdef USE_WEXT
 LUA_WRAP_INT_OP(wext,channel)
 LUA_WRAP_INT_OP(wext,frequency)
 LUA_WRAP_INT_OP(wext,frequency_offset)
@@ -777,6 +803,7 @@ LUA_WRAP_STRUCT_OP(wext,htmodelist)
 LUA_WRAP_STRUCT_OP(wext,encryption)
 LUA_WRAP_STRUCT_OP(wext,mbssid_support)
 LUA_WRAP_STRUCT_OP(wext,hardware_id)
+#endif
 
 #ifdef USE_WL
 /* Broadcom table */
@@ -878,6 +905,7 @@ static const luaL_reg R_nl80211[] = {
 #endif
 
 /* Wext table */
+#ifdef USE_WEXT
 static const luaL_reg R_wext[] = {
        LUA_REG(wext,channel),
        LUA_REG(wext,frequency),
@@ -907,6 +935,7 @@ static const luaL_reg R_wext[] = {
        LUA_REG(wext,phyname),
        { NULL, NULL }
 };
+#endif
 
 /* Common */
 static const luaL_reg R_common[] = {
@@ -946,12 +975,14 @@ LUALIB_API int luaopen_iwinfo(lua_State *L) {
        lua_setfield(L, -2, "nl80211");
 #endif
 
+#ifdef USE_WEXT
        luaL_newmetatable(L, IWINFO_WEXT_META);
        luaL_register(L, NULL, R_common);
        luaL_register(L, NULL, R_wext);
        lua_pushvalue(L, -1);
        lua_setfield(L, -2, "__index");
        lua_setfield(L, -2, "wext");
+#endif
 
        return 1;
 }