Correctly and efficiently determining 802.11 radio PHY type in ChromeOS

614 views
Skip to first unread message

Andrew Liebowitz

unread,
Jun 27, 2019, 12:40:40 AM6/27/19
to Chromium OS Development
Hi All,

TL;DR: What's the most time efficient method of determining wireless radio PHY type and channel bonding (if applicable) in ChromeOS?

I am working with a group that needs to certify new Chrome devices devices on 4 different types of wireless network scenarios. All scenarios involve testing basic ping tests with network activity (watching videos in other tabs), logging out/logging in, restarting, and going out of range/reconnecting. The scenarios also involve moving a far enough distance from the original access point that the device needs to 'hop' to a closer access point (changing the BSSID but on the same SSID).

What is needed is a time effective method of determining the radio type of the active connection. Currently, we are using the Crosh commands 'connectivity show devices' and 'connectivity show services', using this wikipedia link to 802.11 network standards ( https://en.wikipedia.org/wiki/Template:802.11_network_standards ), and extrapolating the wireless radio type used. In the cases of N and AC, we are also using this to determine if channel bonding is occurring.

This is fairly time consuming, and we were wondering if there is a more effective method of determining this. Perhaps there is a way to use the wifi.phymode bit of information provided by 'connectivity show services' to translate to a specific radio type. 

If there is no built in utility, is there any utility or dev command that can be used to simply output '802.11 n' and whether or not channel bonding is occurring?

Thank you!

Kan Yan

unread,
Jun 27, 2019, 12:58:14 AM6/27/19
to Andrew Liebowitz, Chromium OS Development
Will the output of "iw phy" and "iw dev" be useful for this case?


--
--
Chromium OS Developers mailing list: chromiu...@chromium.org
View archives, change email options, or unsubscribe:
https://groups.google.com/a/chromium.org/group/chromium-os-dev
---
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-os-d...@chromium.org.

Andrew Liebowitz

unread,
Jun 27, 2019, 1:49:01 AM6/27/19
to Kan Yan, Chromium OS Development
Hi Kan. Thank you for the response.

How am I running these two commands? I have an Acer C720 Peppy in front of me, I've got it booting in developer mode + extra debugging features.

Andrew Liebowitz
G Suite Deployment Specialist
ALieb...@google.com
+1.347.460.9589

Brian Norris

unread,
Jun 28, 2019, 7:28:59 PM6/28/19
to Andrew Liebowitz, Kan Yan, Chromium OS Development
If you really want a full Linux shell, see this ancient page, which is still more or less correct:


But you can also get much of this information even in verified mode via Crosh.

 * CTRL-ALT-TAB = crosh shell
 * run something like "network_diag --wifi --no-log", to get the output of stuff like
iw dev ... station dump
iw dev ... link
and more. Both station dump and link should give you info about the TX and RX bitrates recently used, although some WiFi drivers give better information dumps that others. An example report of a 802.11ac 40MHz channel:

[...]
iw wlan0 station dump
[...]
        rx bitrate: 240.0 MBit/s VHT-MCS 5 40MHz short GI VHT-NSS 2
[...]

I think you were asking about the active channel information, such as the above. The commands Kan Yan gave you mostly tell you the static properties of the device, whether or not they are actively in use. (Although, "iw dev" does lump in some channel information, like "channel 52 (5260 MHz), width: 40 MHz, center1: 5270 MHz".)

Andrew Liebowitz

unread,
Jun 28, 2019, 8:48:17 PM6/28/19
to Brian Norris, Kan Yan, Chromium OS Development
Hi Brian,

Thank you for the write up. 

Essentially, I'm currently trying to find a more time efficient method than using frequencies, channels, and throughput if it exists. So far I'm going off of "show connectivity services" and although network_diag shows more information, the process still involves sifting through information. This is because this process needs to be repeated dozens of times on multiple different wifi scenarios in several physical locations on multiple devices.

What I'm most curious about is, by any chance, does WiFi.PhyMode: 7, from show connectivity services, directly relate to 802.11ac? I'm not 100% sure, but, I think in the past PhyMode simply outputted the radio type. Perhaps WiFi.PhyMode: 3 means 802.11b?

Or, is there any package that can be added through developer mode that simply outputs "Radio type: 802.11 a/b/g/n/ac/etc" through portage?

Or, is there any Android app that can be added that displays this information?

Andrew Liebowitz
G Suite Deployment Specialist
alieb...@google.com
3474609589

Andrew Liebowitz

unread,
Jun 28, 2019, 9:01:00 PM6/28/19
to Brian Norris, Kan Yan, Chromium OS Development
I found this sheet that states:
  • WiFi.PhyMode: Chrome OS network usage metric. The channel type used for each successful WiFi connection. 802.11.a, b, g, n
That is obviously old, but I can only imagine they mapped a,b,g,n,ac to numbers somehow, something like this:
  • 802.11a -> 2
  • 802.11b -> 3
  • 802.11g -> 4
  • 802.11n -> 5 for 2.4GHz, 6 for 5GHz 
  • 802.11ac -> 7

Brian Norris

unread,
Jun 28, 2019, 9:07:30 PM6/28/19
to Andrew Liebowitz, Kan Yan, Chromium OS Development
Unfortunately, the documentation is wrong, and PhyMode is just a number. Those numbers are defined here. But be warned, those only tell you what the AP is advertising. It doesn't tell you what rate you're really connected at.

"g" "n" and "ac" is all somewhat fluid, as a given station may degrade its PHY / rate selections at pretty much any time, assuming the AP allows it. Frankly, I'm not sure if you can get both "easy" and "correct" answers, if you're looking for the answer to questions like "am I really connecting at 802.11ac (i.e., VHT) rates / bands?"

If you're looking for something more basic (like, does this device claim to support 802.11ac?), then you might have easier answers (e.g., run "iw phy" like Kan suggested). But then, you don't need to run it "in multiple locations" -- you only need to do that once.

Andrew Liebowitz

unread,
Jun 28, 2019, 9:44:35 PM6/28/19
to Brian Norris, Kan Yan, Chromium OS Development
Hi Brian,

Your response is incredibly helpful, thank you. 

What I am being faced with here is a physical certification process where the wireless adapter reporting capabilities in Chromebooks and ChromeOS are being compared to those available in Apple macOS and PCs running Windows. 

If the information being reported isn't as accurate as it can be, like as you say how an AP can essentially choose between "g", "n", and "ac" depending if the AP allows it/determines to switch based on some conditions, macOS and Windows, are, at least, offering some level of reporting is being done at a certain time. If one were to, for example, continually refresh the information available, while walking through a building with varying wall materials and distances, it would be discernible if the AP and the adapter can communicate at the highest possible speeds. Which is exactly why the multiple locations aspect of the physical certification process comes into play.

The questions I have here are as follows:

Based on what you've told me, are the numbers listed in WiFi.PhyMode a decent enough reflection of what's going on at a given moment in time and a given environment comparable to the information provided by macOS and Windows?
If used in conjunction with throughput, would an accurate depiction of what radio type is currently being connected at be formed with information about whether or not channel bonding?

What is PSB Half-width / PSB Quarter-width referring to? 

    kWiFiNetworkPhyModeHalf = 5,     // PSB Half-width
    kWiFiNetworkPhyModeQuarter = 6,  // PSB Quarter-width

I've attached screenshots of what is visible when viewing/running similar configurations/commands on macOS and Windows 10. On macOS, PHY mode is visible through other commands as well as in the network configuration drop down menu. On Windows this is available through a set of netsh commands and visible by hovering over the wireless network icon in the system icon tray and is reported as Radio Type. Perhaps both of these OSs are simply reporting what is available and advertised by the AP, however, this seems to be enough for the team.

I'm only showing these as a comparison of how the tools in these respective operating systems are reporting data and what is being expected by the team running the physical certification process.

2019-06-28 21_14_44-Wi-Fi question - aliebowitz@google.com - Google.com Mail.png
windows network info2.JPG
windows network info.JPG

Andrew Liebowitz
G Suite Deployment Specialist
ALieb...@google.com
+1.347.460.9589

Brian Norris

unread,
Jun 28, 2019, 9:57:16 PM6/28/19
to Andrew Liebowitz, Kan Yan, Chromium OS Development
I don't have a lot more time, but two things:

On Fri, Jun 28, 2019 at 6:44 PM Andrew Liebowitz <alieb...@google.com> wrote:
>
> Based on what you've told me, are the numbers listed in WiFi.PhyMode a decent enough reflection of what's going on at a given moment in time and a given environment comparable to the information provided by macOS and Windows?

Not at all. They are fixed values that are parsed from the AP beacon
advertisements. They don't say anything about what PHY mode is
actually being used.

Based on the rest of the descriptions you've given, I think you're
looking for something like this:

# iw wlan0 station dump
Station 04:bd:88:xx:yy:zz (on wlan0)
inactive time: 182 ms
rx bytes: 2259
rx packets: 20
tx bytes: 3723
tx packets: 30
tx retries: 0
tx failed: 0
beacon loss: 0
beacon rx: 90
rx drop misc: 0
signal: -58 [-66, -58] dBm
signal avg: -58 [-64, -58] dBm
beacon signal avg: -57 dBm
tx bitrate: 400.0 MBit/s VHT-MCS 9 40MHz short GI VHT-NSS 2
rx bitrate: 360.0 MBit/s VHT-MCS 8 40MHz short GI VHT-NSS 2
authorized: yes
authenticated: yes
associated: yes
preamble: long
WMM/WME: yes
MFP: no
TDLS peer: no
DTIM period: 1
beacon interval:100
short slot time:yes
connected time: 6 seconds

https://wireless.wiki.kernel.org/en/users/Documentation/iw#getting_station_statistics

You can run that from a bash shell.

(Some of that's also parsed into 'connectivity show Devices'.)

The only difference I see between what you're reading off other OS's
is that you have to know that:

VHT = 802.11ac
HT = 802.11n
etc.

Have a nice weekend,
Brian

Andrew Liebowitz

unread,
Jun 29, 2019, 4:39:57 PM6/29/19
to Brian Norris, Kan Yan, Chromium OS Development
Thank you for the further clarification Brian.

Below I have the output of 'connectivity show services' and 'connectivity show devices' on an Acer C720 on v74, it's connecting to two different wireless networks. Attached is a picture of iw wlan0 station dump, the top entry is ssid#1, the bottom entry is ssid#2. 

What do I use in this output to determine the radio mode currently being used? If I work off of the PhyMode indicator, SSID#1 is connected using 802.11n, SSID#2 is connected using 802.11ac, but I'm not sure how else to confirm that.

SSID#1
 
crosh> connectivity show services
/service/0
  AutoConnect: true
  CheckPortal: auto
  Connectable: true
  ConnectionId: -683235428
  Country:
  DNSAutoFallback: false
  Device: /device/wlan0
  EAP.AnonymousIdentity:
  EAP.CACertID:
  EAP.CertID:
  EAP.EAP:
  EAP.Identity:
  EAP.InnerEAP:
  EAP.KeyID:
  EAP.KeyMgmt: WPA-PSK
  EAP.PIN:
  EAP.SubjectMatch:
  EAP.TLSVersionMax:
  EAP.UseLoginPassword: false
  EAP.UseProactiveKeyCaching: false
  EAP.UseSystemCAs: true
  Error: no-failure
  ErrorDetails:
  GUID: 5e904a53-ffe2-4605-a7a3-a639151425b3
  IPConfig: /ipconfig/wlan0_3_dhcp
  IsActive: true
  LinkMonitorDisable: false
  ManagedCredentials: false
  Mode: managed
  Name: SSID#1
  PassphraseRequired: false
  PortalDetectionFailedPhase: DNS
  PortalDetectionFailedStatus: Timeout
  PreviousError:
  PreviousErrorSerialNumber: 0
  Priority: 0
  Profile: /profile/default
  ProxyConfig:
  SaveCredentials: true
  SavedIP.Address: 192.168.1.104
  SavedIP.ExcludedRoutes:
  SavedIP.Gateway: 192.168.1.1
  SavedIP.IncludedRoutes:
  SavedIP.Mtu: 0
  SavedIP.NameServers: 192.168.1.7,8.8.8.8
  SavedIP.PeerAddress:
  SavedIP.Prefixlen: 24
  SavedIP.SearchDomains: localdomain
  SavedIPConfig/0/Address: 192.168.1.104
  SavedIPConfig/2/Gateway: 192.168.1.1
  SavedIPConfig/4/Mtu: 0
  SavedIPConfig/5/NameServers/0: 192.168.1.7
  SavedIPConfig/5/NameServers/1: 8.8.8.8
  SavedIPConfig/6/PeerAddress:
  SavedIPConfig/7/Prefixlen: 24
  SavedIPConfig/8/SearchDomains/0: localdomain
  Security: rsn
  SecurityClass: psk
  State: online
  Strength: 56
  Tethering: NotDetected
  Type: wifi
  UIData: {"user_settings":{"GUID":"5e904a53-ffe2-4605-a7a3-a639151425b3","Name":"SSID#1","Type":"WiFi","WiFi":{"HexSSID":"53796D6D65747279","Passphrase":"FAKE_CREDENTIAL_VPaJDV9x","SSID":"SSID#1","Security":"WPA-PSK"}}}
  Visible: true
  WiFi.AuthMode:
  WiFi.BSSID: 46:d9:e7:7b:a3:2e
  WiFi.FTEnabled: true
  WiFi.Frequency: 2412
  WiFi.FrequencyList/0: 2412
  WiFi.HexSSID: 53796D6D65747279
  WiFi.HiddenSSID: false
  WiFi.PhyMode: 4
  WiFi.PreferredDevice:
  WiFi.ProtectedManagementFrameRequired: false
  WiFi.RoamThreshold: 0
  WiFi.VendorInformation/0/OUIList: 00-03-7f 00-15-6d

crosh> connectivity show devices
/device/wlan0
  Address: 485ab61ba8ad
  BgscanMethod: simple
  BgscanShortInterval: 64
  BgscanSignalThreshold: -72
  ForceWakeToScanTimer: false
  IPConfigs/0: /ipconfig/wlan0_3_dhcp
  Interface: wlan0
  LinkMonitorResponseTime: 8
  LinkStatistics/0/AverageReceiveSignalDbm: -33
  LinkStatistics/1/InactiveTimeMilliseconds: 45
  LinkStatistics/2/LastReceiveSignalDbm: -33
  LinkStatistics/3/PacketReceiveSuccesses: 295435
  LinkStatistics/4/PacketTransmitFailures: 61
  LinkStatistics/5/PacketTrasmitSuccesses: 132780
  LinkStatistics/6/ReceiveBitrate: 130.0 MBit/s MCS 15
  LinkStatistics/7/TransmitBitrate: 144.4 MBit/s MCS 15 short GI
  LinkStatistics/8/TransmitRetries: 91635
  MACAddressRandomizationEnabled: false
  MACAddressRandomizationSupported: false
  Name: wlan0
  NetDetectScanPeriodSeconds: 120
  Powered: true
  ReceiveByteCount: 853166455
  RoamThreshold: 18
  ScanInterval: 60
  Scanning: false
  SelectedService: /service/0
  TransmitByteCount: 26495827
  Type: wifi
  WakeOnWiFiFeaturesEnabled: not_supported
  WakeToScanPeriodSeconds: 900
  WiFi.SupportedFrequencies/0: 2412
  WiFi.SupportedFrequencies/1: 2417
  WiFi.SupportedFrequencies/2: 2422
  WiFi.SupportedFrequencies/3: 2427
  WiFi.SupportedFrequencies/4: 2432
  WiFi.SupportedFrequencies/5: 2437
  WiFi.SupportedFrequencies/6: 2442
  WiFi.SupportedFrequencies/7: 2447
  WiFi.SupportedFrequencies/8: 2452
  WiFi.SupportedFrequencies/9: 2457
  WiFi.SupportedFrequencies/10: 2462
  WiFi.SupportedFrequencies/11: 2467
  WiFi.SupportedFrequencies/12: 2472
  WiFi.SupportedFrequencies/13: 2484
  WiFi.SupportedFrequencies/14: 5180
  WiFi.SupportedFrequencies/15: 5200
  WiFi.SupportedFrequencies/16: 5220
  WiFi.SupportedFrequencies/17: 5240
  WiFi.SupportedFrequencies/18: 5260
  WiFi.SupportedFrequencies/19: 5280
  WiFi.SupportedFrequencies/20: 5300
  WiFi.SupportedFrequencies/21: 5320
  WiFi.SupportedFrequencies/22: 5500
  WiFi.SupportedFrequencies/23: 5520
  WiFi.SupportedFrequencies/24: 5540
  WiFi.SupportedFrequencies/25: 5560
  WiFi.SupportedFrequencies/26: 5580
  WiFi.SupportedFrequencies/27: 5600
  WiFi.SupportedFrequencies/28: 5620
  WiFi.SupportedFrequencies/29: 5640
  WiFi.SupportedFrequencies/30: 5660
  WiFi.SupportedFrequencies/31: 5680
  WiFi.SupportedFrequencies/32: 5700
  WiFi.SupportedFrequencies/33: 5745
  WiFi.SupportedFrequencies/34: 5765
  WiFi.SupportedFrequencies/35: 5785
  WiFi.SupportedFrequencies/36: 5805
  WiFi.SupportedFrequencies/37: 5825
 
SSID#2
 
crosh> connectivity show services
/service/192
  AutoConnect: true
  CheckPortal: auto
  Connectable: true
  ConnectionId: 189002533
  Country:
  DNSAutoFallback: false
  Device: /device/wlan0
  EAP.AnonymousIdentity:
  EAP.CACertID:
  EAP.CertID:
  EAP.EAP:
  EAP.Identity:
  EAP.InnerEAP:
  EAP.KeyID:
  EAP.KeyMgmt: WPA-PSK
  EAP.PIN:
  EAP.SubjectMatch:
  EAP.TLSVersionMax:
  EAP.UseLoginPassword: false
  EAP.UseProactiveKeyCaching: false
  EAP.UseSystemCAs: true
  Error: no-failure
  ErrorDetails:
  GUID: a2ca415a-2d93-49f8-85e0-c29135d7abfd
  IPConfig: /ipconfig/wlan0_4_dhcp
  IsActive: true
  LinkMonitorDisable: false
  ManagedCredentials: false
  Mode: managed
  Name: SSID#2
  PassphraseRequired: false
  PortalDetectionFailedPhase:
  PortalDetectionFailedStatus:
  PreviousError:
  PreviousErrorSerialNumber: 0
  Priority: 0
  Profile: /profile/chronos/shill
  ProxyConfig:
  SaveCredentials: true
  SavedIP.Address: 192.168.43.150
  SavedIP.ExcludedRoutes:
  SavedIP.Gateway: 192.168.43.213
  SavedIP.IncludedRoutes:
  SavedIP.Mtu: 0
  SavedIP.NameServers: 192.168.43.213
  SavedIP.PeerAddress:
  SavedIP.Prefixlen: 24
  SavedIP.SearchDomains:
  SavedIPConfig/0/Address: 192.168.43.150
  SavedIPConfig/2/Gateway: 192.168.43.213
  SavedIPConfig/4/Mtu: 0
  SavedIPConfig/5/NameServers/0: 192.168.43.213
  SavedIPConfig/6/PeerAddress:
  SavedIPConfig/7/Prefixlen: 24
  Security: rsn
  SecurityClass: psk
  State: online
  Strength: 56
  Tethering: Confirmed
  Type: wifi
  UIData: {"user_settings":{"GUID":"a2ca415a-2d93-49f8-85e0-c29135d7abfd","Name":"SSID#2","Type":"WiFi","WiFi":{"HexSSID":"416E64726F69644150","Passphrase":"FAKE_CREDENTIAL_VPaJDV9x","SSID":"SSID#2","Security":"WPA-PSK"}}}
  Visible: true
  WiFi.AuthMode:
  WiFi.BSSID: b4:f7:a1:bc:52:3a
  WiFi.FTEnabled: true
  WiFi.Frequency: 2452
  WiFi.FrequencyList/0: 2452
  WiFi.HexSSID: 416E64726F69644150
  WiFi.HiddenSSID: false
  WiFi.PhyMode: 7
  WiFi.PreferredDevice:
  WiFi.ProtectedManagementFrameRequired: false
  WiFi.RoamThreshold: 0

crosh> connectivity show devices
/device/wlan0
  Address: 485ab61ba8ad
  BgscanMethod: simple
  BgscanShortInterval: 64
  BgscanSignalThreshold: -72
  ForceWakeToScanTimer: false
  IPConfigs/0: /ipconfig/wlan0_4_dhcp
  IPConfigs/1: /ipconfig/wlan0_5_ip
  Interface: wlan0
  LinkMonitorResponseTime: 96
  LinkStatistics/0/AverageReceiveSignalDbm: -35
  LinkStatistics/1/InactiveTimeMilliseconds: 3225
  LinkStatistics/2/LastReceiveSignalDbm: -34
  LinkStatistics/3/PacketReceiveSuccesses: 4541
  LinkStatistics/4/PacketTransmitFailures: 2
  LinkStatistics/5/PacketTrasmitSuccesses: 297
  LinkStatistics/6/ReceiveBitrate: 144.4 MBit/s MCS 15 short GI
  LinkStatistics/7/TransmitBitrate: 1.0 MBit/s
  LinkStatistics/8/TransmitRetries: 65
  MACAddressRandomizationEnabled: false
  MACAddressRandomizationSupported: false
  Name: wlan0
  NetDetectScanPeriodSeconds: 120
  Powered: true
  ReceiveByteCount: 976930740
  RoamThreshold: 18
  ScanInterval: 60
  Scanning: false
  SelectedService: /service/192
  TransmitByteCount: 30514807
  Type: wifi
  WakeOnWiFiFeaturesEnabled: not_supported
  WakeToScanPeriodSeconds: 900
  WiFi.SupportedFrequencies/0: 2412
  WiFi.SupportedFrequencies/1: 2417
  WiFi.SupportedFrequencies/2: 2422
  WiFi.SupportedFrequencies/3: 2427
  WiFi.SupportedFrequencies/4: 2432
  WiFi.SupportedFrequencies/5: 2437
  WiFi.SupportedFrequencies/6: 2442
  WiFi.SupportedFrequencies/7: 2447
  WiFi.SupportedFrequencies/8: 2452
  WiFi.SupportedFrequencies/9: 2457
  WiFi.SupportedFrequencies/10: 2462
  WiFi.SupportedFrequencies/11: 2467
  WiFi.SupportedFrequencies/12: 2472
  WiFi.SupportedFrequencies/13: 2484
  WiFi.SupportedFrequencies/14: 5180
  WiFi.SupportedFrequencies/15: 5200
  WiFi.SupportedFrequencies/16: 5220
  WiFi.SupportedFrequencies/17: 5240
  WiFi.SupportedFrequencies/18: 5260
  WiFi.SupportedFrequencies/19: 5280
  WiFi.SupportedFrequencies/20: 5300
  WiFi.SupportedFrequencies/21: 5320
  WiFi.SupportedFrequencies/22: 5500
  WiFi.SupportedFrequencies/23: 5520
  WiFi.SupportedFrequencies/24: 5540
  WiFi.SupportedFrequencies/25: 5560
  WiFi.SupportedFrequencies/26: 5580
  WiFi.SupportedFrequencies/27: 5600
  WiFi.SupportedFrequencies/28: 5620
  WiFi.SupportedFrequencies/29: 5640
  WiFi.SupportedFrequencies/30: 5660
  WiFi.SupportedFrequencies/31: 5680
  WiFi.SupportedFrequencies/32: 5700
  WiFi.SupportedFrequencies/33: 5745
  WiFi.SupportedFrequencies/34: 5765
  WiFi.SupportedFrequencies/35: 5785
  WiFi.SupportedFrequencies/36: 5805
  WiFi.SupportedFrequencies/37: 5825

image.png

Andrew Liebowitz

unread,
Jul 1, 2019, 10:25:23 AM7/1/19
to Brian Norris, Kan Yan, Chromium OS Development
Is there any way to accurately tell from this information what radio type the current connection is connecting at from the point of view of the device?


Andrew Liebowitz
G Suite Deployment Specialist
ALieb...@google.com
+1.347.460.9589

Brian Norris

unread,
Jul 9, 2019, 2:00:17 PM7/9/19
to Andrew Liebowitz, Kan Yan, Chromium OS Development
As I already stated a few times:
connectivity show Services will show you theoretical information about the services. It's not "active connection" info.

From iw wlan0 station dump:
rx bitrate: 144.4 MBit/s MCS 15 short GI

"MCS" means "HT MCS" which means 802.11n
if you saw "VHT-MCS", that means 802.11ac
You can reference something like mcsindex.com if you want a more detailed translation.

Similar information shows up in connectivity show devices:
/device/wlan0
...

  LinkStatistics/6/ReceiveBitrate: 144.4 MBit/s MCS 15 short GI
  LinkStatistics/7/TransmitBitrate: 1.0 MBit/s

The transmit bitrate happens to showcase the fact that
(a) some frames get sent at lower rates and
(b) some drivers don't necessarily filter those out from stats (it's really most useful to report the most recent *data* frame rates, but not all drivers do that correctly)

I'm not sure I can help you more at this point.

Andrew Liebowitz

unread,
Jul 9, 2019, 2:49:42 PM7/9/19
to Brian Norris, Kan Yan, Chromium OS Development
True or false: There is no way to accurately see the active connections radio type and channel bonding status from a Chromebook itself, and while both 'connectivity show services' and 'iw wlan0 station dump' will show information about rx and tx bitrates that can be used to approximate what radio type is being used currently and/or if channel bonding is occurring, the only 100% accurate method to determining radio type and channel bonding is through, for example, a wireless controller.

Andrew Liebowitz
G Suite Deployment Specialist
ALieb...@google.com
+1.347.460.9589

Brian Norris

unread,
Jul 9, 2019, 5:33:39 PM7/9/19
to Andrew Liebowitz, Kan Yan, Chromium OS Development
False.

station dump is telling you exactly what you're asking for. MCS 15 = 802.11n. short GI (with no mention of 40MHz or 80Hz) means 20MHz band -- i.e., no channel bonding.

There may be some small variance in that, especially as this is a semi-instantaneous report -- so if channel conditions degrade, your rate/PHY selection may downgrade as well -- and drivers may or may not all reliably report this info (if not, we usually try to bug the vendor to improve this), but this is the right place to look.

Regards,
Brian

Andrew Liebowitz

unread,
Jul 9, 2019, 5:38:51 PM7/9/19
to Brian Norris, Kan Yan, Chromium OS Development
Thank you Brian, that is exactly what I am looking for. 

Andrew Liebowitz
G Suite Deployment Specialist
ALieb...@google.com
+1.347.460.9589

Kirtika Ruchandani

unread,
Jul 9, 2019, 5:42:05 PM7/9/19
to Andrew Liebowitz, Brian Norris, Kan Yan, Chromium OS Development
On Tue, Jul 9, 2019 at 2:38 PM 'Andrew Liebowitz' via Chromium OS Development <chromiu...@chromium.org> wrote:
Thank you Brian, that is exactly what I am looking for. 

Andrew Liebowitz
G Suite Deployment Specialist
ALieb...@google.com
+1.347.460.9589


On Tue, Jul 9, 2019 at 5:33 PM Brian Norris <brian...@chromium.org> wrote:
False.

station dump is telling you exactly what you're asking for. MCS 15 = 802.11n. short GI (with no mention of 40MHz or 80Hz) means 20MHz band -- i.e., no channel bonding.

There may be some small variance in that, especially as this is a semi-instantaneous report -- so if channel conditions degrade, your rate/PHY selection may downgrade as well -- and drivers may or may not all reliably report this info (if not, we usually try to bug the vendor to improve this), but this is the right place to look.

You can use mcsindex.com to decode from the rate reported in `iw ${interface} station dump` ($interface is usually wlan0, but sometimes not, like Marvell reports mlan0). 
http://mcsindex.com/ Note the color coding - yellow rates are 802.11n, blue is 802.11ac. 
a/b is a very tiny fraction of our client population, and g is easy enough to decode that you don't need a table. 


 
--

Andrew Liebowitz

unread,
Jul 9, 2019, 6:16:35 PM7/9/19
to Kirtika Ruchandani, Brian Norris, Kan Yan, Chromium OS Development
Thank you Kirtika. Your write up along with Brian's and Kan's will help me create a test for the enterprise I'm working with. 

Would you happen to know if "connectivity show devices" reports the same transmit and receive rates as "iw ${interface} station dump" ?

The only reason I ask is that the enterprise is testing several dozen scenarios and dozens of devices, therefore, not having to put each device in dev mode will save some amount of time extrapolated over N devices. 


Andrew Liebowitz
G Suite Deployment Specialist
ALieb...@google.com
+1.347.460.9589

Brian Norris

unread,
Jul 9, 2019, 6:38:43 PM7/9/19
to Andrew Liebowitz, Kirtika Ruchandani, Kan Yan, Chromium OS Development
They use the same source info (NL80211 station info). There's a chance that the exact format they use is a bit different, but at the moment, I think shill (i.e., the 'connectivity show' report) basically just imitated 'iw'.

You can try for yourself too. e.g.:

# connectivity show Devices | grep -i bitrate; iw wlan0 station dump | grep -i bitrate
  LinkStatistics/6/ReceiveBitrate: 400.0 MBit/s VHT-MCS 9 40MHz short GI VHT-NSS 2
  LinkStatistics/7/TransmitBitrate: 360.0 MBit/s VHT-MCS 8 40MHz short GI VHT-NSS 2
tx bitrate: 360.0 MBit/s VHT-MCS 8 40MHz short GI VHT-NSS 2
rx bitrate: 400.0 MBit/s VHT-MCS 9 40MHz short GI VHT-NSS 2
Reply all
Reply to author
Forward
This conversation is locked
You cannot reply and perform actions on locked conversations.
0 new messages