Đối với các thiết bị chạy Android 13 trở lên, Android hỗ trợ tiêu chuẩn Wi-Fi 7 (IEEE 802.11be). Trang này mô tả các tính năng Wi-Fi 7 của Android, bao gồm cả hoạt động cơ bản và hoạt động đa liên kết (MLO).
Các tính năng cơ bản của Wi-Fi 7
Phần này mô tả các tính năng cơ bản của Wi-Fi 7 có trong Android 13 trở lên.
Hỗ trợ Wi-Fi 7 trên thiết bị
Khung Android bao gồm API WifiManager#isWifiStandardSupported(int standard)
. Các ứng dụng có thể gọi API này bằng đối số ScanResults.WIFI_STANDARD_11BE
để kiểm tra xem thiết bị có hỗ trợ Wi-Fi 7 hay không.
Khi API này được gọi, mô-đun Wi-Fi sẽ kiểm tra xem lớp phủ cấu hình config_wifi11beSupportOverride
có được dùng làm chế độ ghi đè hay không và thực hiện những việc sau:
- Nếu lớp phủ được đặt thành
true
, thì thiết bị được giả định là hỗ trợ Wi-Fi 7 bất kể phản hồi từ nl80211. Lớp này chỉ hữu ích cho những nhà sản xuất thiết bị không có trình điều khiển hỗ trợ Wi-Fi 7. - Nếu lớp phủ được đặt thành
false
(giá trị mặc định), mô-đun Wi-Fi sẽ sử dụng thông tin từ nl80211. Mô-đun Wi-Fi yêu cầu thông tin từ wificond, lệnh này sẽ gọi lệnh nl80211NL80211_CMD_GET_WIPHY
. Nếu thuộc tínhNL80211_BAND_IFTYPE_ATTR_EHT_CAP_PHY
nằm trong phản hồi của trình điều khiển, thì thiết bị được giả định là có hỗ trợ Wi-Fi 7.
Hỗ trợ Wi-Fi 7 cho AP đã quét
Khung Android có API int ScanResult#getWifiStandard()
. Các ứng dụng có thể gọi API này để kiểm tra xem điểm truy cập (AP) đã quét có hỗ trợ Wi-Fi 7 hay không. Nếu AP hỗ trợ Wi-Fi 7, API sẽ trả về ScanResults.WIFI_STANDARD_11BE
.
Thiết bị không bắt buộc phải hỗ trợ Wi-Fi 7 để các ứng dụng sử dụng API này.
Khi API này được gọi, mô-đun Wi-Fi sẽ kiểm tra xem EHT Capability IE
có nằm trong kết quả được trả về của quá trình quét kết nối hay không. Nếu EHT Capability IE
nằm trong kết quả quét, thì AP được quét sẽ hỗ trợ Wi-Fi 7.
Lớp WifiTracker
AOSP sẽ hiển thị thông tin hỗ trợ này trong giao diện người dùng khi chạy ở chế độ chi tiết.
Chế độ kết nối STA
Khung Android bao gồm API int WifiInfo#getWifiStandard()
. Các ứng dụng có thể gọi API này để kiểm tra xem chế độ kết nối trạm (STA) hiện tại có phải là Wi-Fi 7 hay không. Chế độ kết nối STA là Wi-Fi 7 khi cả thiết bị và AP được kết nối đều hỗ trợ Wi-Fi 7. Nếu chế độ kết nối là Wi-Fi 7, API sẽ trả về ScanResults.WIFI_STANDARD_11BE
.
Khi getWifiStandard
được gọi, mô-đun Wi-Fi sẽ xác định chế độ bằng cách gọi API HAL ISupplicantStaIface#getConnectionCapabilities()
. Việc triển khai API HAL này trong lớp AIDL wpa_supplicant
sẽ kiểm tra xem EHT Capability IE
có ở cả AssocReq
và AssocRsp
hay không trong quá trình thiết lập kết nối.
Lựa chọn mạng
Trong Android 13, quá trình chọn mạng sử dụng một số tham số để xác định AP nào cần kết nối. Một trong các tham số là thông lượng ước tính của AP, được ước tính bằng khối ThroughputPredictor
. Khối ThroughputPredictor
sử dụng các tham số PHY của cả thiết bị và AP được quét.
Trong Android 13, ThroughputPredictor
sử dụng các chức năng AP sau đây trong quá trình tính toán:
- Hỗ trợ Wi-Fi 7 (802.11be)
- Hỗ trợ băng thông kênh 320 MHz
Việc đưa các chức năng này vào logic ThroughputPredictor
sẽ làm tăng cơ hội chọn AP có khả năng Wi-Fi 7 khi thiết bị có thể sử dụng các tính năng này.
Phạm vi dựa trên RTT Wi-Fi
Android cung cấp chế độ hỗ trợ API cho phần mở đầu EHT và băng thông kênh 320 MHz cho Wi-Fi RTT. Điều này cho phép hỗ trợ các chức năng liên quan đến Wi-Fi 7 trong phạm vi RTT bất cứ khi nào chip hỗ trợ.
HAL API
Các API HAL sau đây hỗ trợ các chức năng Wi-Fi 7 để đo khoảng cách dựa trên RTT:
EHT
: Hằng số trongenum RttPreamble
vàenum WifiRatePreamble
WIDTH_320
: Hằng số trongenum WifiChannelWidthInMhz
BW_320MHz
: Hằng số trongenum RttBw
API
Các ứng dụng có thể sử dụng những API sau để đo khoảng cách dựa trên RTT Wi-Fi 7:
ScanResult#PREAMBLE_EHT
ResponderConfig#PREAMBLE_EHT
(SystemApi)
Soft AP
Android hỗ trợ Wi-Fi 7 trong Soft AP và cung cấp các tính năng sau.
Bắt đầu Soft AP
Android hỗ trợ khởi động AP mềm ở chế độ Wi-Fi 7.
Điều này được điều chỉnh theo cấu hình lớp phủ config_wifiSoftapIeee80211beSupported
.
Mô-đun Wi-Fi sử dụng lớp phủ config_wifiSoftapIeee80211beSupported
để đặt giá trị boolean HwModeParams#enable80211BE
trong lệnh gọi API IHostApd#addAccessPoint()
. Trong lớp AIDL hostapd, giá trị này được dùng để đặt các tham số hostapd.conf
.
HAL API
Giá trị boolean enable80211BE
trong HwModeParams
trong HAL hostapd hỗ trợ việc khởi động AP mềm ở chế độ Wi-Fi 7.
Báo cáo thông tin về điểm truy cập ảo
Android có hỗ trợ API để đưa thông tin về Wi-Fi 7 và băng thông kênh 320 MHz vào thông tin về Điểm truy cập ảo được báo cáo.
HAL API
Hằng số WIFI_STANDARD_11BE
trong giao diện AIDL Generation.aidl
trong hostapd HAL, được dùng trong ApInfo
được báo cáo trong lệnh gọi lại IHostapdCallback#onApInstanceInfoChanged()
, hỗ trợ báo cáo thông tin về Điểm truy cập mềm.
API
Các ứng dụng có thể sử dụng các phương thức sau (API hệ thống) trong SoftApInfo
để báo cáo thông tin về Soft AP.
SoftApInfo#getWifiStandard()
: Trả vềScanResults.WIFI_STANDARD_11BE
nếu Soft AP được khởi động ở chế độ Wi-Fi 7.SoftApInfo#getBandwidth()
: Trả vềSoftApInfo#CHANNEL_WIDTH_320MHZ
nếu sử dụng băng thông kênh 320 MHz.
Các tính năng của Wi-Fi 7 MLO
Hoạt động đa liên kết (MLO) là tính năng chính trong quy cách Wi-Fi 7 (802.11be). MLO là một tính năng bắt buộc đối với các thiết bị có nhiều đường liên kết (MLD) chạy ở chế độ Wi-Fi 7, cho dù là đồng thời hay không đồng thời.
Hình 1. Sơ đồ MLO.
Như trong Hình 1, cả AP-MLD và STA-MLD đều có nhiều phiên bản AP hoặc STA đang chạy trên mỗi đường liên kết. Mỗi đường liên kết có một địa chỉ MAC AP hoặc STA riêng. AP hoặc STA cũng có địa chỉ MAC MLD để xác định thiết bị.
Biểu thị đường liên kết MLO
Lớp android.net.wifi.MloLink
biểu thị đường liên kết MLO. Lớp này bao gồm các tham số sau:
int getLinkId()
: Mã nhận dạng đường liên kết như được AP MLD quảng cáo.MacAddress getApMacAddress()
: Địa chỉ MAC của điểm truy cập. BSSID của phiên bản AP cho đường liên kết đó.MacAddress getStaMacAddress()
: Địa chỉ MAC STA. Địa chỉ MAC được chỉ định cục bộ cho phiên bản STA trên đường liên kết.int getChannel()
: Liên kết kênh. Số kênh của đường liên kết.int getBand()
: Vòng tay liên kết. Dải tần của đường liên kết.int getState()
: Trạng thái liên kết. Có thể ở một trong những trạng thái sau:MLO_LINK_STATE_INVALID
: Không hợp lệ. Được dùng cho các trường hợp khởi chạy và lỗi.MLO_LINK_STATE_UNASSOCIATED
: Chưa liên kết. Đường liên kết này không được liên kết với một AP.MLO_LINK_STATE_IDLE
: Không hoạt động. Đường liên kết được liên kết nhưng không hoạt động (không có giá trị nhận dạng lưu lượng truy cập (TID) nào được liên kết với đường liên kết).MLO_LINK_STATE_ACTIVE
: Đang hoạt động. Đường liên kết được liên kết và đang hoạt động (ít nhất một TID được liên kết với đường liên kết). Một đường liên kết đang hoạt động có thể ở chế độ tiết kiệm pin vì khung không giám sát trạng thái nguồn của đường liên kết.
Thông tin về MLO của AP Wi-Fi 7 đã quét
Các ứng dụng có thể nhận được các tham số MLO cho một MLD AP Wi-Fi 7 khi mô-đun Wi-Fi nhận được một đối tượng ScanResult
từ AP-MLD. WifiTracker
AOSP sẽ hiển thị các tham số MLO khi chạy ở chế độ chi tiết.
Mô-đun Wi-Fi thu thập thông tin MLO bằng cách thực hiện những việc sau:
- Phân tích cú pháp phần tử thông tin (IE) có nhiều đường liên kết có trong phản hồi của đèn hiệu hoặc phản hồi của thiết bị dò tìm để đọc địa chỉ MAC MLD của AP và mã nhận dạng đường liên kết hiện tại.
- Phân tích IE báo cáo về các thiết bị lân cận bị giảm (RNR) có trong phản hồi của đèn hiệu hoặc phản hồi thăm dò để đọc danh sách thông tin về các đường liên kết được liên kết.
API
Để nhận thông tin MLO của AP được quét, các ứng dụng có thể sử dụng những API sau:
ScanResult#BSSID
: Địa chỉ MAC của phiên bản AP (đối với đường liên kết mà kết quả quét được nhận)MacAddress ScanResult#getApMldMacAddress()
: Trả về địa chỉ MAC MLD của AP.int ScanResult#getApMloLinkId()
: Trả về mã liên kết cho đường liên kết mà ScanResult nhận được.List<MloLink> ScanResult#getAffiliatedMloLinks()
: Trả về danh sách các đối tượngMloLink
cho tất cả các đường liên kết được AP-MLD quảng cáo, bao gồm cả đường liên kết mà ScanResult nhận được.
Thông tin về MLO của AP Wi-Fi 7 đã kết nối
Khi một thiết bị kết nối với AP-MLD Wi-Fi 7, khung sẽ thu thập các tham số MLO của kết nối từ đối tượng WifiInfo
. Đối tượng WifiTracker
AOSP sẽ hiển thị thông tin này khi chạy ở chế độ chi tiết.
Khi thiết bị kết nối với AP-MLD, mô-đun Wi-Fi sẽ sao chép thông tin MLO từ đối tượng ScanResult
nhận được từ AP. Sau đó, mô-đun này sẽ gọi API HAL ISupplicantStaIface#getConnectionMloLinksInfo()
để đọc địa chỉ MAC của từng đường liên kết cho cả AP và STA, đồng thời cập nhật trạng thái của các đường liên kết được liên kết.
API
Để lấy thông tin kết nối MLO, các ứng dụng có thể sử dụng những API sau:
WifiInfo#getBSSID()
: Trả về địa chỉ MAC của phiên bản AP (cho đường liên kết mà thiết bị được liên kết).MacAddress WifiInfo#getApMldMacAddress()
: Trả về địa chỉ MAC MLD của AP.int WifiInfo#getApMloLinkId()
: Trả về mã nhận dạng đường liên kết cho đường liên kết mà STA đã liên kết với AP.List<MloLink> WifiInfo#getAffiliatedMloLinks()
: Trả về danh sách các đối tượngMloLink
cho tất cả các đường liên kết được AP-MLD quảng cáo, bao gồm cả đường liên kết được liên kết. Bạn có thể truy vấn cả địa chỉ MAC AP và STA trên mỗi đối tượngMloLink
.
Quét AP-MLD
Phần mềm của nhà cung cấp cung cấp cho khung Wi-Fi kết quả quét cho từng phản hồi của beacon hoặc probe mà phần mềm nhận được. Điều này có nghĩa là khung Wi-Fi:
- Có thể nhận được nhiều đối tượng
ScanResults
từ cùng một AP-MLD (vì AP có thể có nhiều đường liên kết phát tín hiệu). - Chỉ có thể nhận được một phần kết quả quét cho các đường liên kết AP của AP-MLD vì một số tín hiệu liên kết này có thể không được phần mềm nhận.
Phần mềm của nhà cung cấp chỉ báo cáo kết quả quét nhận được qua sóng và không được tạo (tổng hợp nhân tạo) kết quả quét dựa trên các đường liên kết được quảng cáo của AP-MLD.
Phần mềm của nhà cung cấp phải bao gồm biến thể cơ bản có nhiều đường liên kết và các IE RNR nhận được từ các thực thể AP trong kết quả quét được báo cáo. Nếu thiếu thông tin chi tiết về AP liên kết trong kết quả quét, thì phần mềm của nhà cung cấp có thể gửi các yêu cầu thăm dò đa liên kết (khung yêu cầu thăm dò bao gồm một phần tử đa liên kết Yêu cầu thăm dò) để đưa tập hợp đầy đủ hoặc một phần các chức năng, tham số và phần tử hoạt động của AP có AP-MLD được nhắm đến trong khung phản hồi.
Phần mềm của nhà cung cấp có thể kích hoạt tính năng thăm dò ML (sử dụng ML IE biến thể yêu cầu thăm dò trong khung yêu cầu thăm dò) nếu cần.
Liên kết mạng AP-MLD
Khi một thiết bị tham gia mạng AP-MLD, phần mềm của nhà cung cấp sẽ dùng đường liên kết AP đã chọn (đường liên kết được liên kết) để báo hiệu. Phần mềm của nhà cung cấp có thể liên kết với tất cả hoặc một số đường liên kết mà thiết bị hỗ trợ.
Sau khi liên kết thành công, trình điều khiển sẽ báo cáo ISupplicantStaIfaceCallback#onStateChanged()
bằng BSSID của một đường liên kết cho AP-MLD. Sau đó, trình điều khiển sẽ chọn một đường liên kết của AP-MLD, miễn là kết quả quét được báo cáo cho khung hình cho đường liên kết đó.
Tính điểm mạng
Đối với các thiết bị chạy Android 14 trở lên, Android Wi-Fi Network Selection (Lựa chọn mạng Wi-Fi trên Android) hỗ trợ Wi-Fi 7 MLO. Điều này có nghĩa là Android sẽ chọn mạng Wi-Fi tốt nhất cho thiết bị dựa trên số lượng đường liên kết có sẵn cho MLO.
Để hỗ trợ MLO, thuật toán chọn mạng sử dụng các chức năng MLO sau đây từ chip Wi-Fi:
- Số lượng đường liên kết tối đa đến STR
- Số lượng đường liên kết tối đa để liên kết
- Kết hợp đồng thời các dải tần
Hình 2. Lựa chọn mạng MLO.
Số lượng đường liên kết tối đa đến STR
Truyền và nhận đồng thời (STR) là một sơ đồ tranh chấp phương tiện Wi-Fi cho hoạt động đa liên kết. Việc cách ly tín hiệu giữa các đường liên kết khác nhau là đủ để các đường liên kết có thể hoạt động độc lập và có khả năng truyền và nhận đồng thời trong các đường liên kết khác nhau. STR khác với STA một liên kết (SL) cũ và STA hai băng tần đồng thời (DBDC) cũ. Các STA liên kết với STA MLD dùng chung số sê-ri (SN) của bộ truyền và không gian chung để truyền dữ liệu được phân bổ cho các đường liên kết khác nhau nếu nhiều đường liên kết truyền có cùng danh mục truy cập (AC).
Số lượng tối đa các đường liên kết STR được sử dụng có thể khác với số lượng tối đa các đài phát mà chip hỗ trợ. Trong ví dụ ở Hình 2, số lượng đường liên kết STR tối đa là 2.
Các giao diện AIDL HAL sau đây hỗ trợ số lượng đường liên kết STR tối đa và số lượng đường liên kết liên kết tối đa:
hardware/interfaces/wifi/aidl/android/hardware/wifi/IWifiChip.aidl
hardware/interfaces/wifi/aidl/android/hardware/wifi/WifiChipCapabilities.aidl
Số lượng đường liên kết tối đa để liên kết
Nhiều đường liên kết có thể hoạt động trên một đài phát bằng cách sử dụng sơ đồ tranh chấp, Enhanced Multi-Link Single Radio (eMLSR). Thiết bị có nhiều đường liên kết sử dụng eMLSR trên một tập hợp các đường liên kết nếu có thể nhận một số khung điều khiển cơ bản và thực hiện đánh giá kênh rõ ràng (CCA) đồng thời trên tập hợp các đường liên kết. Tuy nhiên, MLD chỉ truyền hoặc nhận dữ liệu trên một đường liên kết (đường liên kết được chọn linh hoạt trong mỗi khoảng thời gian cơ hội truyền (TXOP)) tại một thời điểm.
Trạm MLD có thể tối đa hoá số lượng đường liên kết kết hợp để có độ tin cậy cao hơn, thông lượng cao hơn và độ trễ thấp hơn (so với trạm cũ có một đường liên kết) bằng cách hoạt động đồng thời ở chế độ STR và eMLSR nếu được chip hỗ trợ. Trong Hình 2, số lượng tối đa của đường liên kết liên kết là 3.
Các giao diện AIDL HAL sau đây hỗ trợ khả năng số lượng đường liên kết liên kết tối đa:
hardware/interfaces/wifi/aidl/android/hardware/wifi/IWifiChip.aidl
hardware/interfaces/wifi/aidl/android/hardware/wifi/WifiChipCapabilities.aidl
Kết hợp đồng thời các dải tần
Khung này truy vấn chip để lấy các tổ hợp đài được phép (thông qua giao diện IWifiChip.aidl
AIDL) có thể hoạt động đồng thời. Từ thông tin này, khung sẽ suy ra các tổ hợp băng tần đồng thời có thể. Sau đây là danh sách ví dụ về các tổ hợp băng tần đồng thời (GHz):
- 2.4
- 5
- 6
- 2,4 x 5
- 2,4 x 6
- 5 x 6
Giao diện AIDL HAL sau đây hỗ trợ các tổ hợp đài phát đồng thời:
hardware/interfaces/wifi/aidl/android/hardware/wifi/IWifiChip.aidl
Lựa chọn mạng
Trong quá trình chọn mạng (MLO), danh sách đề xuất được nhóm theo các thành viên có cùng địa chỉ MAC MLD. Điểm thông lượng tối đa dự đoán cho nhiều đường liên kết được tính cho mỗi nhóm, dựa trên số lượng đường liên kết STR tối đa và các tổ hợp băng tần đồng thời mà chip hỗ trợ. Nếu thiết bị có thể kết nối nhiều liên kết và chip hỗ trợ STR, thì điểm thông lượng dự đoán sẽ được thay thế bằng điểm thông lượng dự đoán nhiều liên kết. Điều này giúp tăng cường các đề xuất MLO trong quá trình chọn mạng.
Khi tham gia mạng AP-MLD, khung sẽ thực hiện lựa chọn SSID dựa trên thông tin nhận được trong đối tượng ScanResults
do phần mềm của nhà cung cấp báo cáo. Sau khi khung chọn SSID, phần mềm của nhà cung cấp chịu trách nhiệm chọn BSSID cho AP (hoặc đường liên kết AP) phù hợp nhất để dùng cho việc liên kết.
Xử lý địa chỉ MAC STA của thiết bị
Phần này mô tả cách xử lý địa chỉ MAC STA của thiết bị (địa chỉ MAC MLD và địa chỉ MAC STA trên mỗi đường liên kết).
Địa chỉ MAC MLD
Khung Wi-Fi quản lý địa chỉ MAC MLD của thiết bị. Địa chỉ MAC MLD được xử lý theo cách tương tự như cách thiết bị không phải MLD xử lý địa chỉ MAC của chính thiết bị đó.
Địa chỉ MAC có thể là địa chỉ MAC ngẫu nhiên hoặc địa chỉ MAC được cung cấp phần cứng dựa trên lựa chọn của người dùng. Địa chỉ MAC MLD được khung thiết lập bằng cách sử dụng API HAL IWifiStaIface#setMacAddress()
.
Địa chỉ MAC STA cho mỗi đường liên kết
Phần mềm của nhà cung cấp quản lý địa chỉ MAC STA của thực thể (cho mỗi đường liên kết). Khi một thiết bị liên kết với một AP, phần mềm của nhà cung cấp sẽ chỉ định một địa chỉ MAC phiên bản cho mỗi đường liên kết được liên kết.
Phần mềm của nhà cung cấp sẽ chỉ định địa chỉ MAC cho mỗi đường liên kết dựa trên thuật toán của phần mềm. Thuật toán phải có thể lặp lại và là một hàm của những yếu tố sau:
- Địa chỉ MAC STA-MLD do khung Wi-Fi đặt.
- Mã liên kết (nhận được từ AP)
Điều này có nghĩa là nếu khung sử dụng lại cùng một địa chỉ MAC MLD, thì nhà cung cấp phải sử dụng lại cùng một địa chỉ MAC được liên kết cho mỗi phiên bản và ngược lại. Điều này đảm bảo rằng khi địa chỉ STA-MLD do khung tạo là cố định cho một SSID, thì địa chỉ MAC trên mỗi STA cũng là cố định.
Sau đây là một ví dụ về thuật toán gán địa chỉ MAC STA cho mỗi đường liên kết (các nhà cung cấp có thể triển khai bất kỳ thuật toán nào đáp ứng các tiêu chí của thuật toán):
- Octet 0: Đảm bảo bạn đã đặt bit được quản lý cục bộ
- Octet 1-4: Giống như địa chỉ MAC STA-MLD
- Octet 5: Per-STA = (STA-MLD + link ID + 1) MOD (256)
Xử lý nhiều đường liên kết
Firmware của nhà cung cấp có thể thực hiện việc chuyển đổi đường liên kết và quản lý trạng thái tiết kiệm năng lượng của các đường liên kết để kích hoạt hoặc huỷ kích hoạt mà không cần có dữ liệu đầu vào từ khung Wi-Fi.
Khung Wi-Fi không mong đợi một thông báo khi trạng thái liên kết thay đổi.
Quản lý trạng thái tiết kiệm điện
Trạng thái tiết kiệm pin được bật theo mặc định trên khung Wi-Fi. Ở trạng thái tiết kiệm pin, phần sụn của nhà cung cấp sẽ quản lý trạng thái tiết kiệm pin của từng đường liên kết dựa trên các mẫu lưu lượng truy cập và quyết định kích hoạt hoặc huỷ kích hoạt đường liên kết.
Tuy nhiên, khung Wi-Fi có thể buộc trạng thái tiết kiệm pin bị tắt bằng cách gọi API HAL ISupplicantStaIface::setPowerSave(false)
. Nếu trạng thái tiết kiệm pin bị khung vô hiệu hoá, thì chương trình cơ sở của nhà cung cấp phải duy trì ít nhất một đường liên kết đang hoạt động (đã tắt chế độ tiết kiệm pin). Ở trạng thái này, việc triển khai chương trình cơ sở sẽ quyết định đường liên kết nào được đặt.
Đường dẫn dữ liệu
Điều này mô tả việc triển khai chương trình cơ sở của nhà cung cấp để xử lý lưu lượng truy cập tải lên và tải xuống.
Lưu lượng truy cập đường lên
Phần mềm cố định định tuyến lưu lượng truy cập đường lên đến một (hoặc nhiều) đường liên kết dựa trên việc triển khai nội bộ. Firmware của nhà cung cấp quyết định thời điểm thực hiện cân bằng tải, sao chép hoặc tổng hợp lưu lượng truy cập dựa trên các mẫu lưu lượng truy cập. Bạn nên sao chép lưu lượng truy cập của chương trình cơ sở đến nhiều đường liên kết trong những trường hợp sau:
- Khi chế độ độ trễ thấp được thiết lập thông qua API HAL
IWifiChip#setLatencyMode()
. - Khi có lưu lượng truy cập với mức độ ưu tiên của người dùng là 6 và 7.
Lưu lượng truy cập đường xuống
Phần mềm phải thay thế địa chỉ MAC (đích) cho mỗi STA của tiêu đề MAC bằng địa chỉ MAC MLD-STA và địa chỉ MAC (nguồn) cho mỗi AP của tiêu đề MAC bằng địa chỉ MAC MLD-AP. Phần mềm phải thực hiện việc thay thế địa chỉ MAC này trước khi truyền qua bộ lọc APF vì các lệnh bộ lọc APF có bộ lọc dựa trên địa chỉ MAC MLD. Có một bộ lọc APF duy nhất cho tất cả các đường liên kết của một AP-MLD.
Đồng thời
Các trường hợp đồng thời, trong đó một đài được dùng cho một giao diện mới, phải có mức độ ưu tiên cao hơn việc dành riêng nhiều đài cho các đường liên kết của cùng một giao diện. Các trường hợp đồng thời cũng phải được ưu tiên hơn MLO, bất kể trường hợp nào xuất hiện trước. Việc sử dụng nhiều đường liên kết cho một giao diện duy nhất là có tính cơ hội, nghĩa là bạn chỉ sử dụng nhiều đường liên kết khi:
- Bạn phải sử dụng MLO dựa trên quyết định của chương trình cơ sở về việc cân bằng tải, tổng hợp hoặc sao chép.
- MLO đang hoạt động, tức là một giao diện khác không yêu cầu đài.
Ánh xạ TID với đường liên kết
Đối với các thiết bị chạy Android 14 trở lên, khi AP Wi-Fi 7 thông báo về việc tạm thời vô hiệu hoá một trong các đường liên kết thông qua một phần tử ánh xạ TID sang đường liên kết được truyền trong các khung phản hồi của đèn hiệu, phản hồi thăm dò và phản hồi liên kết, trạm Wi-Fi 7 sẽ tiếp tục kết nối với AP bằng các đường liên kết còn lại đã được thiết lập mà không cần thực hiện một mối liên kết khác.
Đối với các thiết bị chạy Android 13 trở xuống, khung Wi-Fi không hỗ trợ việc nhận thông báo khi trạng thái liên kết thay đổi do việc liên kết TID, ngay cả khi liên kết được liên kết không được liên kết với một TID.
HAL AIDL
Ứng dụng Wi-Fi thông báo cho khung Wi-Fi về các thay đổi trong hoạt động liên kết TID thông qua các giao diện AIDL sau:
hardware/interfaces/wifi/supplicant/aidl/android/hardware/wifi/supplicant/ISupplicantStaIfaceCallback.aidl
hardware/interfaces/wifi/supplicant/aidl/android/hardware/wifi/supplicant/ISupplicantStaIface.aidl
hardware/interfaces/wifi/supplicant/aidl/android/hardware/wifi/supplicant/MloLinksInfo.aidl
API
Các ứng dụng có thể nhận thông tin về những thay đổi trong mối liên kết giữa TID bằng cách sử dụng các API sau:
ConnectivityManager.NetworkCallback.onCapabilitiesChanged()
: Lệnh gọi lại mạng do khung kích hoạt khi có thay đổi về mối liên kết giữa TID.WifiInfo#getAssociatedMloLinks()
: Trả về các đường liên kết MLO được liên kết.MloLink#getState()
: Trả về trạng thái của đường liên kết,MLO_LINK_STATE_ACTIVE
hoặcMLO_LINK_STATE_IDLE
.
Khả năng thương lượng việc lập bản đồ TID sang đường liên kết
Đối với các thiết bị chạy Android 14 trở lên, bạn có thể dùng các API sau để nhận được khả năng thương lượng bản đồ liên kết đến TID cho trạm và AP.
Khả năng của chip
Các giao diện sau đây hỗ trợ khả năng của chip để thương lượng việc liên kết TID.
AIDL HAL
Giao diện AIDL để thương lượng việc ánh xạ TID với đường liên kết nằm trong FeatureSetMask
trong hardware/interfaces/wifi/aidl/android/hardware/wifi/IWifiChip.aidl
. Khả năng T2LM_NEGOTIATION = 1 << 8
cho biết chip này hỗ trợ tính năng ánh xạ TID với đường liên kết.
API
WifiManager.isTidToLinkMappingNegotiationSupported()
: Trả về chip hỗ trợ quá trình thương lượng ánh xạ TID sang đường liên kết.
Chức năng AP
Các giao diện sau đây hỗ trợ chức năng AP để thương lượng việc liên kết TID.
AIDL HAL
Khung này truy vấn chức năng AP từ ứng dụng yêu cầu cùng với chức năng kết nối hiện tại.
apTidToLinkMapNegotiationSupported
: Kiểm tra xem AP có hỗ trợ khả năng thương lượng bản đồ TID-to-link hay không.
API
WifiInfo.isApTidToLinkMappingNegotiationSupported()
: Trả về việc AP có hỗ trợ đàm phán ánh xạ TID sang đường liên kết hay không.
Số liệu thống kê về lớp liên kết
Số liệu thống kê về lớp liên kết bao gồm các thông tin cụ thể về đường liên kết Wi-Fi, chẳng hạn như RSSI, nhiều bộ đếm gói TX và RX, cũng như số liệu thống kê về đài. Khung Wi-Fi định kỳ thăm dò số liệu thống kê lớp liên kết và RSSI để chọn mạng tốt nhất hoặc đánh giá chất lượng của mạng đã kết nối. Đối với các thiết bị chạy Android 14 trở lên, số liệu thống kê về lớp liên kết bao gồm cả tính năng hỗ trợ nhiều đường liên kết. Để hỗ trợ Wi-Fi 7, Android hỗ trợ MLO trong cả số liệu thống kê lớp liên kết và quá trình thăm dò tín hiệu.
Số liệu thống kê cụ thể về đường liên kết có trong các giao diện AIDL lớp liên kết sau:
hardware/interfaces/wifi/aidl/android/hardware/wifi/StaLinkLayerIfaceStats.aidl
hardware/interfaces/wifi/aidl/android/hardware/wifi/StaLinkLayerLinkStats.aidl
API hệ thống android.net.wifi.WifiManager#addOnWifiUsabilityStatsListener()
sẽ lắng nghe mọi số liệu thống kê về lớp liên kết. Khung này định kỳ gọi API này để cập nhật số liệu thống kê về khả năng sử dụng Wi-Fi.
Các API dành riêng cho đường liên kết sau đây có trong android.net.wifi.WifiUsabilityStatsEntry
.
int getRssi(int linkId)
int getLinkState(int linkId)
int getRadioId(int linkId)
int getTxLinkSpeedMbps(int linkId)
long getTotalTxSuccess(int linkId)
long getTotalTxRetries(int linkId)
long getTotalTxBad(int linkId)
long getTotalRxSuccess(int linkId)
long getTotalBeaconRx(int linkId)
int getRxLinkSpeedMbps(int linkId)
int getTimeSliceDutyCycleInPercent(int linkId)
ContentionTimeStats getContentionTimeStats(int linkId, @WmeAccessCategory int ac)
List<RateStats> getRateStats(int linkId)
Để truy vấn mã nhận dạng đường liên kết có sẵn, các ứng dụng có thể gọi phương thức android.net.wifi.WifiUsabilityStatsEntry#getLinkIds()
.
Các API trong android.net.wifi.WifiUsabilityStatsEntry
cho một đường liên kết (không phải MLO) sẽ trả về số liệu thống kê tổng hợp cho các kết nối MLO. Sau đây là tiêu chí tổng hợp:
Các số liệu thống kê về gói được tổng hợp sau đây sử dụng tổng số liệu thống kê cho mỗi đường liên kết:
public long getTotalTxSuccess() public long getTotalTxRetries() public long getTotalTxBad() public long getTotalRxSuccess() public int getRxLinkSpeedMbps()
Các số liệu thống kê sau đây sử dụng dữ liệu từ đường liên kết có RSSI cao nhất:
public int getRssi() public int getLinkSpeedMbps() public long getTotalBeaconRx() public int getTimeSliceDutyCycleInPercent() public ContentionTimeStats getContentionTimeStats(@WmeAccessCategory int ac) public List<RateStats> getRateStats()
Số liệu thống kê về lớp liên kết trong Android 13
Đối với các thiết bị chạy Android 13, số liệu thống kê về lớp liên kết không tính đến việc sử dụng nhiều liên kết cho một giao diện duy nhất. Để hỗ trợ MLO, phần mềm của nhà cung cấp phải áp dụng logic tổng hợp sau đây khi báo cáo LinkLayerStats
thông qua HAL API IWifi# getLinkLayerStats_1_6()
. Đường liên kết tốt nhất là đường liên kết có RSSI cao nhất.
StaLinkLayerStats.iface.beaconRx
: Báo cáo số lượng beacon cho đường liên kết tốt nhất được dùng cho giao diện.StaLinkLayerStats.iface.avgRssiMgmt
: Báo cáoavgRssiMgmt
cho đường liên kết tốt nhất được dùng cho giao diện.StaLinkLayerStats.iface.wmeXxPktStats
(Xx = Vo, Vi, Be,Bk): Báo cáo số liệu thống kê tổng hợp về gói (tổng số) trên các đường liên kết của giao diện.StaLinkLayerStats.iface.wmeXxContentionTimeStats
(Xx = Vo, Vi, Be,Bk): Báo cáo số liệu thống kê về thời gian tranh chấp cho đường liên kết tốt nhất được dùng trên giao diện (số liệu thống kê về thời gian tranh chấp thấp nhất).
Định cấu hình lại đường liên kết MLO
Khi một trong các đường liên kết của điểm truy cập Wi-Fi 7 được sử dụng lại, AP có thể thông báo việc xoá đường liên kết thông qua việc định cấu hình lại đường liên kết MLO. Các trạm có thể duy trì kết nối liền mạch với AP mà không cần liên kết lại trên các đường liên kết còn lại.
Giao diện AIDL onMloLinksInfoChanged
nằm trong trình bổ trợ Wi-Fi tại ISupplicantStaIfaceCallback.aidl
, hỗ trợ việc định cấu hình lại đường liên kết (AP xoá đường liên kết).
Khi khung Wi-Fi xử lý việc xoá một đường liên kết, trạng thái của đường liên kết sẽ được đặt thành MLO_LINK_STATE_UNASSOCIATED
.
Sau đó, khung này sẽ kích hoạt ConnectivityManager.NetworkCallback#onCapabilitiesChanged()
cho một thay đổi về trạng thái liên kết.
Phương thức WifiInfo#getAffiliatedMloLinks
trả về các đường liên kết MLO được liên kết. Phương thức MloLink#getState
trả về trạng thái của đường liên kết. Nếu mối liên kết bị xoá, trạng thái mối liên kết được trả về là MLO_LINK_STATE_UNASSOCIATED
.
Chiến lược Chip MLO
MLO cho phép các thiết bị gửi và nhận dữ liệu trên nhiều đường liên kết Wi-Fi cùng một lúc. Điều này có thể cải thiện hiệu suất cho những ứng dụng có các yêu cầu cụ thể như độ trễ thấp, băng thông cao và mức tiêu thụ điện năng thấp. Nhà cung cấp chip có thể phát triển các thuật toán về cách sử dụng các đường liên kết hiện có.
Các ứng dụng có đặc quyền có thể sửa đổi những thuật toán này bằng phương thức setMloMode
trong Wifimanager
và đặt các chế độ sau:
MLO_MODE_DEFAULT = 0
MLO_MODE_LOW_LATENCY = 1
MLO_MODE_HIGH_THROUGHPUT = 2
MLO_MODE_LOW_POWER = 3
Khung này sử dụng setMloMode
trong giao diện AIDL IWifiChip
để đặt chế độ MLO.