nmcli: print the wifi generation of access points

This commit is contained in:
Beniamino Galvani 2025-11-29 17:51:51 +01:00
parent 5d3db07e40
commit a161359628
4 changed files with 488 additions and 405 deletions

View file

@ -726,25 +726,26 @@ const NmcMetaGenericInfo *const metagen_device_detail_wimax_properties[] = {
/*****************************************************************************/
const NmcMetaGenericInfo *const nmc_fields_dev_wifi_list[] = {
NMC_META_GENERIC("NAME"), /* 0 */
NMC_META_GENERIC("SSID"), /* 1 */
NMC_META_GENERIC("SSID-HEX"), /* 2 */
NMC_META_GENERIC("BSSID"), /* 3 */
NMC_META_GENERIC("MODE"), /* 4 */
NMC_META_GENERIC("CHAN"), /* 5 */
NMC_META_GENERIC("BAND"), /* 6 */
NMC_META_GENERIC("FREQ"), /* 7 */
NMC_META_GENERIC("RATE"), /* 8 */
NMC_META_GENERIC("BANDWIDTH"), /* 9 */
NMC_META_GENERIC("SIGNAL"), /* 10 */
NMC_META_GENERIC("BARS"), /* 11 */
NMC_META_GENERIC("SECURITY"), /* 12 */
NMC_META_GENERIC("WPA-FLAGS"), /* 13 */
NMC_META_GENERIC("RSN-FLAGS"), /* 14 */
NMC_META_GENERIC("DEVICE"), /* 15 */
NMC_META_GENERIC("ACTIVE"), /* 16 */
NMC_META_GENERIC("IN-USE"), /* 17 */
NMC_META_GENERIC("DBUS-PATH"), /* 18 */
NMC_META_GENERIC("NAME"), /* 0 */
NMC_META_GENERIC("SSID"), /* 1 */
NMC_META_GENERIC("SSID-HEX"), /* 2 */
NMC_META_GENERIC("BSSID"), /* 3 */
NMC_META_GENERIC("MODE"), /* 4 */
NMC_META_GENERIC("CHAN"), /* 5 */
NMC_META_GENERIC("BAND"), /* 6 */
NMC_META_GENERIC("FREQ"), /* 7 */
NMC_META_GENERIC("RATE"), /* 8 */
NMC_META_GENERIC("BANDWIDTH"), /* 9 */
NMC_META_GENERIC("SIGNAL"), /* 10 */
NMC_META_GENERIC("BARS"), /* 11 */
NMC_META_GENERIC("GENERATION"), /* 12 */
NMC_META_GENERIC("SECURITY"), /* 13 */
NMC_META_GENERIC("WPA-FLAGS"), /* 14 */
NMC_META_GENERIC("RSN-FLAGS"), /* 15 */
NMC_META_GENERIC("DEVICE"), /* 16 */
NMC_META_GENERIC("ACTIVE"), /* 17 */
NMC_META_GENERIC("IN-USE"), /* 18 */
NMC_META_GENERIC("DBUS-PATH"), /* 19 */
NULL,
};
#define NMC_FIELDS_DEV_WIFI_LIST_COMMON "IN-USE,BSSID,SSID,MODE,BAND,CHAN,RATE,SIGNAL,BARS,SECURITY"
@ -1337,6 +1338,7 @@ fill_output_access_point(NMAccessPoint *ap, const APInfo *info)
char *ap_name;
const char *sig_bars;
NMMetaColor color;
char *generation_str;
active = (info->active_ap == ap);
@ -1369,6 +1371,24 @@ fill_output_access_point(NMAccessPoint *ap, const APInfo *info)
rsn_flags_str = ap_wpa_rsn_flags_to_string(rsn_flags, NM_META_ACCESSOR_GET_TYPE_PRETTY);
sig_bars = nmc_wifi_strength_bars(strength);
switch (nm_access_point_get_wifi_generation(ap)) {
case NM_WIFI_GENERATION_WIFI_4:
generation_str = g_strdup("Wi-Fi 4");
break;
case NM_WIFI_GENERATION_WIFI_5:
generation_str = g_strdup("Wi-Fi 5");
break;
case NM_WIFI_GENERATION_WIFI_6:
generation_str = g_strdup("Wi-Fi 6");
break;
case NM_WIFI_GENERATION_WIFI_7:
generation_str = g_strdup("Wi-Fi 7");
break;
default:
generation_str = NULL;
break;
}
switch (nm_utils_wifi_freq_to_band(freq)) {
case NM_WIFI_BAND_2_4_GHZ:
band_str = _("2.4 GHz");
@ -1439,13 +1459,14 @@ fill_output_access_point(NMAccessPoint *ap, const APInfo *info)
set_val_str(arr, 9, bandwidth_str);
set_val_str(arr, 10, strength_str);
set_val_strc(arr, 11, sig_bars);
set_val_str(arr, 12, g_string_free(security_str, FALSE));
set_val_str(arr, 13, wpa_flags_str);
set_val_str(arr, 14, rsn_flags_str);
set_val_strc(arr, 15, info->device);
set_val_strc(arr, 16, active ? _("yes") : _("no"));
set_val_strc(arr, 17, active ? "*" : " ");
set_val_strc(arr, 18, nm_object_get_path(NM_OBJECT(ap)));
set_val_strc(arr, 12, generation_str);
set_val_str(arr, 13, g_string_free(security_str, FALSE));
set_val_str(arr, 14, wpa_flags_str);
set_val_str(arr, 15, rsn_flags_str);
set_val_strc(arr, 16, info->device);
set_val_strc(arr, 17, active ? _("yes") : _("no"));
set_val_strc(arr, 18, active ? "*" : " ");
set_val_strc(arr, 19, nm_object_get_path(NM_OBJECT(ap)));
/* Set colors */
color = wifi_signal_to_color(strength);
@ -1453,7 +1474,7 @@ fill_output_access_point(NMAccessPoint *ap, const APInfo *info)
color = NM_META_COLOR_WIFI_DEPRECATED;
set_val_color_all(arr, color);
if (active)
arr[15].color = NM_META_COLOR_CONNECTION_ACTIVATED;
arr[16].color = NM_META_COLOR_CONNECTION_ACTIVATED;
g_ptr_array_add(info->output_data, arr);
}

View file

@ -466,40 +466,40 @@ AP[2]: :90\:B1\:5F\:9E\:E0\:E3:wlan0-ap-1:Infrastruktura:2.4 GHz:6:54Mb/s:44:
AP[3]: :61\:66\:D2\:E7\:44\:A2:wlan0-ap-2:Infrastruktura:5 GHz:44:54Mb/s:34:** :WPA1 WPA2
<<<
size: 2109
size: 2193
location: src/tests/client/test-client.py:test_002()/19
cmd: $NMCLI -f ALL d wifi
lang: C
returncode: 0
stdout: 1977 bytes
stdout: 2061 bytes
>>>
NAME SSID SSID-HEX BSSID MODE CHAN BAND FREQ RATE BANDWIDTH SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
AP[1] wlan0-ap-3 776C616E302D61702D33 60:B3:25:25:E2:C8 Infra 129 6 GHz 6595 MHz 54 Mbit/s 40 MHz 55 ** WPA3 (none) pair_tkip pair_ccmp group_tkip group_ccmp sae wlan0 no /org/freedesktop/NetworkManager/AccessPoint/3
AP[2] wlan0-ap-1 776C616E302D61702D31 90:B1:5F:9E:E0:E3 Infra 6 2.4 GHz 2437 MHz 54 Mbit/s 40 MHz 44 ** WPA1 pair_tkip pair_ccmp group_tkip group_ccmp psk (none) wlan0 no /org/freedesktop/NetworkManager/AccessPoint/1
AP[3] wlan0-ap-2 776C616E302D61702D32 61:66:D2:E7:44:A2 Infra 44 5 GHz 5220 MHz 54 Mbit/s 40 MHz 34 ** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 no /org/freedesktop/NetworkManager/AccessPoint/2
NAME SSID SSID-HEX BSSID MODE CHAN BAND FREQ RATE BANDWIDTH SIGNAL BARS GENERATION SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
AP[1] wlan0-ap-3 776C616E302D61702D33 60:B3:25:25:E2:C8 Infra 129 6 GHz 6595 MHz 54 Mbit/s 40 MHz 55 ** Wi-Fi 5 WPA3 (none) pair_tkip pair_ccmp group_tkip group_ccmp sae wlan0 no /org/freedesktop/NetworkManager/AccessPoint/3
AP[2] wlan0-ap-1 776C616E302D61702D31 90:B1:5F:9E:E0:E3 Infra 6 2.4 GHz 2437 MHz 54 Mbit/s 40 MHz 44 ** Wi-Fi 4 WPA1 pair_tkip pair_ccmp group_tkip group_ccmp psk (none) wlan0 no /org/freedesktop/NetworkManager/AccessPoint/1
AP[3] wlan0-ap-2 776C616E302D61702D32 61:66:D2:E7:44:A2 Infra 44 5 GHz 5220 MHz 54 Mbit/s 40 MHz 34 ** Wi-Fi 5 WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 no /org/freedesktop/NetworkManager/AccessPoint/2
NAME SSID SSID-HEX BSSID MODE CHAN BAND FREQ RATE BANDWIDTH SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
AP[1] wlan1-ap-4 776C616E312D61702D34 EE:52:8B:49:A1:96 Infra 1 2.4 GHz 2412 MHz 54 Mbit/s 40 MHz 38 ** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan1 no /org/freedesktop/NetworkManager/AccessPoint/4
NAME SSID SSID-HEX BSSID MODE CHAN BAND FREQ RATE BANDWIDTH SIGNAL BARS GENERATION SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
AP[1] wlan1-ap-4 776C616E312D61702D34 EE:52:8B:49:A1:96 Infra 1 2.4 GHz 2412 MHz 54 Mbit/s 40 MHz 38 ** Wi-Fi 4 WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan1 no /org/freedesktop/NetworkManager/AccessPoint/4
NAME SSID SSID-HEX BSSID MODE CHAN BAND FREQ RATE BANDWIDTH SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
NAME SSID SSID-HEX BSSID MODE CHAN BAND FREQ RATE BANDWIDTH SIGNAL BARS GENERATION SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
<<<
size: 2185
size: 2269
location: src/tests/client/test-client.py:test_002()/20
cmd: $NMCLI -f ALL d wifi
lang: pl_PL.UTF-8
returncode: 0
stdout: 2043 bytes
stdout: 2127 bytes
>>>
NAME SSID SSID-HEX BSSID MODE CHAN BAND FREQ RATE BANDWIDTH SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
AP[1] wlan0-ap-3 776C616E302D61702D33 60:B3:25:25:E2:C8 Infrastruktura 129 6 GHz 6595MHz 54Mb/s 40MHz 55 ** WPA3 (brak) pair_tkip pair_ccmp group_tkip group_ccmp sae wlan0 nie /org/freedesktop/NetworkManager/AccessPoint/3
AP[2] wlan0-ap-1 776C616E302D61702D31 90:B1:5F:9E:E0:E3 Infrastruktura 6 2.4 GHz 2437MHz 54Mb/s 40MHz 44 ** WPA1 pair_tkip pair_ccmp group_tkip group_ccmp psk (brak) wlan0 nie /org/freedesktop/NetworkManager/AccessPoint/1
AP[3] wlan0-ap-2 776C616E302D61702D32 61:66:D2:E7:44:A2 Infrastruktura 44 5 GHz 5220MHz 54Mb/s 40MHz 34 ** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 nie /org/freedesktop/NetworkManager/AccessPoint/2
NAME SSID SSID-HEX BSSID MODE CHAN BAND FREQ RATE BANDWIDTH SIGNAL BARS GENERATION SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
AP[1] wlan0-ap-3 776C616E302D61702D33 60:B3:25:25:E2:C8 Infrastruktura 129 6 GHz 6595MHz 54Mb/s 40MHz 55 ** Wi-Fi 5 WPA3 (brak) pair_tkip pair_ccmp group_tkip group_ccmp sae wlan0 nie /org/freedesktop/NetworkManager/AccessPoint/3
AP[2] wlan0-ap-1 776C616E302D61702D31 90:B1:5F:9E:E0:E3 Infrastruktura 6 2.4 GHz 2437MHz 54Mb/s 40MHz 44 ** Wi-Fi 4 WPA1 pair_tkip pair_ccmp group_tkip group_ccmp psk (brak) wlan0 nie /org/freedesktop/NetworkManager/AccessPoint/1
AP[3] wlan0-ap-2 776C616E302D61702D32 61:66:D2:E7:44:A2 Infrastruktura 44 5 GHz 5220MHz 54Mb/s 40MHz 34 ** Wi-Fi 5 WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 nie /org/freedesktop/NetworkManager/AccessPoint/2
NAME SSID SSID-HEX BSSID MODE CHAN BAND FREQ RATE BANDWIDTH SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
AP[1] wlan1-ap-4 776C616E312D61702D34 EE:52:8B:49:A1:96 Infrastruktura 1 2.4 GHz 2412MHz 54Mb/s 40MHz 38 ** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan1 nie /org/freedesktop/NetworkManager/AccessPoint/4
NAME SSID SSID-HEX BSSID MODE CHAN BAND FREQ RATE BANDWIDTH SIGNAL BARS GENERATION SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
AP[1] wlan1-ap-4 776C616E312D61702D34 EE:52:8B:49:A1:96 Infrastruktura 1 2.4 GHz 2412MHz 54Mb/s 40MHz 38 ** Wi-Fi 4 WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan1 nie /org/freedesktop/NetworkManager/AccessPoint/4
NAME SSID SSID-HEX BSSID MODE CHAN BAND FREQ RATE BANDWIDTH SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
NAME SSID SSID-HEX BSSID MODE CHAN BAND FREQ RATE BANDWIDTH SIGNAL BARS GENERATION SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
<<<
size: 245

File diff suppressed because it is too large Load diff

View file

@ -1253,6 +1253,7 @@ PRP_WIFI_AP_MAX_BITRATE = "MaxBitrate"
PRP_WIFI_AP_STRENGTH = "Strength"
PRP_WIFI_AP_LAST_SEEN = "LastSeen"
PRP_WIFI_AP_BANDWIDTH = "Bandwidth"
PRP_WIFI_AP_WIFI_GENERATION = "WifiGeneration"
class WifiAp(ExportedObj):
@ -1310,6 +1311,7 @@ class WifiAp(ExportedObj):
PRP_WIFI_AP_STRENGTH: dbus.Byte(strength),
PRP_WIFI_AP_LAST_SEEN: dbus.Int32(NM.utils_get_timestamp_msec() / 1000),
PRP_WIFI_AP_BANDWIDTH: dbus.UInt32(40),
PRP_WIFI_AP_WIFI_GENERATION: dbus.UInt32(4) if freq < 5000 else dbus.UInt32(5)
}
self.dbus_interface_add(IFACE_WIFI_AP, props)