nmcli: show bandwidth on wifi device output

Example output:

```
NAME:                                   AP[3]
SSID:                                   testX
SSID-HEX:                               4D4F5649535441525F504C55535F32453037
BSSID:                                  80:78:71:90:2E:15
MODE:                                   Infra
CHAN:                                   104
FREQ:                                   5520 MHz
RATE:                                   540 Mbit/s
BANDWIDTH:                              40 MHz
SIGNAL:                                 32
BARS:                                   ▂▄__
SECURITY:                               WPA2
WPA-FLAGS:                              (none)
RSN-FLAGS:                              pair_ccmp group_ccmp psk
DEVICE:                                 wlp0s20f3
ACTIVE:                                 yes
IN-USE:                                 *
DBUS-PATH:                              /org/freedesktop/NetworkManager/AccessPoint/3
```
This commit is contained in:
Fernando Fernandez Mancera 2023-07-26 17:00:31 +02:00
parent fe48a4b35c
commit 2115032869
4 changed files with 466 additions and 397 deletions

View file

@ -725,15 +725,16 @@ const NmcMetaGenericInfo *const nmc_fields_dev_wifi_list[] = {
NMC_META_GENERIC("CHAN"), /* 5 */
NMC_META_GENERIC("FREQ"), /* 6 */
NMC_META_GENERIC("RATE"), /* 7 */
NMC_META_GENERIC("SIGNAL"), /* 8 */
NMC_META_GENERIC("BARS"), /* 9 */
NMC_META_GENERIC("SECURITY"), /* 10 */
NMC_META_GENERIC("WPA-FLAGS"), /* 11 */
NMC_META_GENERIC("RSN-FLAGS"), /* 12 */
NMC_META_GENERIC("DEVICE"), /* 13 */
NMC_META_GENERIC("ACTIVE"), /* 14 */
NMC_META_GENERIC("IN-USE"), /* 15 */
NMC_META_GENERIC("DBUS-PATH"), /* 16 */
NMC_META_GENERIC("BANDWIDTH"), /* 8 */
NMC_META_GENERIC("SIGNAL"), /* 9 */
NMC_META_GENERIC("BARS"), /* 10 */
NMC_META_GENERIC("SECURITY"), /* 11 */
NMC_META_GENERIC("WPA-FLAGS"), /* 12 */
NMC_META_GENERIC("RSN-FLAGS"), /* 13 */
NMC_META_GENERIC("DEVICE"), /* 14 */
NMC_META_GENERIC("ACTIVE"), /* 15 */
NMC_META_GENERIC("IN-USE"), /* 16 */
NMC_META_GENERIC("DBUS-PATH"), /* 17 */
NULL,
};
#define NMC_FIELDS_DEV_WIFI_LIST_COMMON "IN-USE,BSSID,SSID,MODE,CHAN,RATE,SIGNAL,BARS,SECURITY"
@ -1305,7 +1306,9 @@ fill_output_access_point(NMAccessPoint *ap, const APInfo *info)
NmcOutputField *arr;
gboolean active;
NM80211ApSecurityFlags wpa_flags, rsn_flags;
guint32 freq, bitrate;
guint32 freq;
guint32 bitrate;
guint32 bandwidth;
guint8 strength;
GBytes *ssid;
const char *bssid;
@ -1315,6 +1318,7 @@ fill_output_access_point(NMAccessPoint *ap, const APInfo *info)
char *ssid_str = NULL;
char *ssid_hex_str = NULL;
char *bitrate_str;
char *bandwidth_str;
char *strength_str;
char *wpa_flags_str;
char *rsn_flags_str;
@ -1333,6 +1337,7 @@ fill_output_access_point(NMAccessPoint *ap, const APInfo *info)
freq = nm_access_point_get_frequency(ap);
mode = nm_access_point_get_mode(ap);
bitrate = nm_access_point_get_max_bitrate(ap);
bandwidth = nm_access_point_get_bandwidth(ap);
strength = MIN(nm_access_point_get_strength(ap), 100);
/* Convert to strings */
@ -1347,6 +1352,7 @@ fill_output_access_point(NMAccessPoint *ap, const APInfo *info)
channel_str = g_strdup_printf("%u", nm_utils_wifi_freq_to_channel(freq));
freq_str = g_strdup_printf(_("%u MHz"), freq);
bitrate_str = g_strdup_printf(_("%u Mbit/s"), bitrate / 1000);
bandwidth_str = g_strdup_printf(_("%u MHz"), bandwidth);
strength_str = nm_strdup_int(strength);
wpa_flags_str = ap_wpa_rsn_flags_to_string(wpa_flags, NM_META_ACCESSOR_GET_TYPE_PRETTY);
rsn_flags_str = ap_wpa_rsn_flags_to_string(rsn_flags, NM_META_ACCESSOR_GET_TYPE_PRETTY);
@ -1402,15 +1408,16 @@ fill_output_access_point(NMAccessPoint *ap, const APInfo *info)
set_val_str(arr, 5, channel_str);
set_val_str(arr, 6, freq_str);
set_val_str(arr, 7, bitrate_str);
set_val_str(arr, 8, strength_str);
set_val_strc(arr, 9, sig_bars);
set_val_str(arr, 10, g_string_free(security_str, FALSE));
set_val_str(arr, 11, wpa_flags_str);
set_val_str(arr, 12, rsn_flags_str);
set_val_strc(arr, 13, info->device);
set_val_strc(arr, 14, active ? _("yes") : _("no"));
set_val_strc(arr, 15, active ? "*" : " ");
set_val_strc(arr, 16, nm_object_get_path(NM_OBJECT(ap)));
set_val_str(arr, 8, bandwidth_str);
set_val_str(arr, 9, strength_str);
set_val_strc(arr, 10, sig_bars);
set_val_str(arr, 11, g_string_free(security_str, FALSE));
set_val_str(arr, 12, wpa_flags_str);
set_val_str(arr, 13, rsn_flags_str);
set_val_strc(arr, 14, info->device);
set_val_strc(arr, 15, active ? _("yes") : _("no"));
set_val_strc(arr, 16, active ? "*" : " ");
set_val_strc(arr, 17, nm_object_get_path(NM_OBJECT(ap)));
/* Set colors */
color = wifi_signal_to_color(strength);

View file

@ -444,40 +444,40 @@ AP[2]: :90\:B1\:5F\:9E\:E0\:E3:wlan0-ap-1:Infrastruktura:1:54Mb/s:44:** :WPA
AP[3]: :61\:66\:D2\:E7\:44\:A2:wlan0-ap-2:Infrastruktura:1:54Mb/s:34:** :WPA1 WPA2
<<<
size: 1972
size: 2049
location: src/tests/client/test-client.py:test_002()/19
cmd: $NMCLI -f ALL d wifi
lang: C
returncode: 0
stdout: 1840 bytes
stdout: 1917 bytes
>>>
NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE 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 1 2412 MHz 54 Mbit/s 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 1 2412 MHz 54 Mbit/s 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 1 2412 MHz 54 Mbit/s 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 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 1 2412 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 1 2412 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 1 2412 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 FREQ RATE 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 2412 MHz 54 Mbit/s 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 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 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 FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE BANDWIDTH SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
<<<
size: 2040
size: 2125
location: src/tests/client/test-client.py:test_002()/20
cmd: $NMCLI -f ALL d wifi
lang: pl_PL.UTF-8
returncode: 0
stdout: 1898 bytes
stdout: 1983 bytes
>>>
NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE 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 1 2412MHz 54Mb/s 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 1 2412MHz 54Mb/s 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 1 2412MHz 54Mb/s 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 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 1 2412MHz 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 1 2412MHz 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 1 2412MHz 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 FREQ RATE 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 2412MHz 54Mb/s 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 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 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 FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE BANDWIDTH SIGNAL BARS 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

@ -1210,6 +1210,7 @@ PRP_WIFI_AP_MODE = "Mode"
PRP_WIFI_AP_MAX_BITRATE = "MaxBitrate"
PRP_WIFI_AP_STRENGTH = "Strength"
PRP_WIFI_AP_LAST_SEEN = "LastSeen"
PRP_WIFI_AP_BANDWIDTH = "Bandwidth"
class WifiAp(ExportedObj):
@ -1268,6 +1269,7 @@ class WifiAp(ExportedObj):
PRP_WIFI_AP_MAX_BITRATE: dbus.UInt32(54000),
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),
}
self.dbus_interface_add(IFACE_WIFI_AP, props)