Wi-Fi 7

Android 13 বা উচ্চতর সংস্করণে চলমান ডিভাইসগুলির জন্য, Android Wi-Fi 7 (IEEE 802.11be) স্ট্যান্ডার্ড সমর্থন করে। এই পৃষ্ঠাটি বেসলাইন এবং মাল্টি-লিঙ্ক অপারেশন (MLO) সহ Android Wi-Fi 7 বৈশিষ্ট্যগুলি বর্ণনা করে৷

বেসলাইন ওয়াই-ফাই 7 বৈশিষ্ট্য

এই বিভাগে বেসলাইন Wi-Fi 7 বৈশিষ্ট্যগুলি বর্ণনা করে যা Android 13 এবং উচ্চতর সংস্করণে অন্তর্ভুক্ত।

ডিভাইস Wi-Fi 7 সমর্থন

অ্যান্ড্রয়েড ফ্রেমওয়ার্কে WifiManager#isWifiStandardSupported(int standard) API অন্তর্ভুক্ত রয়েছে, যেটি অ্যাপগুলি ScanResults.WIFI_STANDARD_11BE যুক্তি দিয়ে কল করতে পারে, একটি ডিভাইস Wi-Fi 7 সমর্থন করে কিনা তা পরীক্ষা করতে।

যখন এই API কল করা হয়, তখন Wi-Fi মডিউল পরীক্ষা করে যে config_wifi11beSupportOverride কনফিগারেশন ওভারলে একটি ওভাররাইড হিসাবে ব্যবহৃত হয়েছে এবং নিম্নলিখিতগুলি করে:

  • ওভারলে true সেট করা থাকলে, nl80211 থেকে প্রতিক্রিয়া নির্বিশেষে ডিভাইসটি Wi-Fi 7 সমর্থন করবে বলে ধরে নেওয়া হয়। এই ওভাররাইডটি শুধুমাত্র সেই ডিভাইস নির্মাতাদের জন্য উপযোগী যাদের ড্রাইভার নেই যেগুলি Wi-Fi 7 সমর্থন করে।
  • ওভারলে false (ডিফল্ট মান) সেট করা থাকলে, Wi-Fi মডিউল nl80211 থেকে তথ্য ব্যবহার করে। Wi-Fi মডিউলটি wificond থেকে তথ্যের জন্য অনুরোধ করে, যা nl80211 কমান্ডকে কল করে NL80211_CMD_GET_WIPHYNL80211_BAND_IFTYPE_ATTR_EHT_CAP_PHY অ্যাট্রিবিউটটি ড্রাইভারের প্রতিক্রিয়ায় থাকলে, ডিভাইসটি Wi-Fi 7 সমর্থন করে বলে ধরে নেওয়া হয়।

স্ক্যান করা AP Wi-Fi 7 সমর্থন

অ্যান্ড্রয়েড ফ্রেমওয়ার্কের মধ্যে রয়েছে int ScanResult#getWifiStandard() API, যে অ্যাপগুলি স্ক্যান করা অ্যাক্সেস পয়েন্ট (AP) Wi-Fi 7 সমর্থন করে কিনা তা পরীক্ষা করতে কল করতে পারে। যদি AP Wi-FI 7 সমর্থন করে, তাহলে API ScanResults.WIFI_STANDARD_11BE প্রদান করে। অ্যাপগুলিকে এই API ব্যবহার করার জন্য ডিভাইসটিকে Wi-Fi 7 সমর্থন করার প্রয়োজন নেই৷

যখন এই API কল করা হয়, Wi-Fi মডিউল চেক করে যে EHT Capability IE কানেক্টিভিটি স্ক্যানের ফলাফলে আছে কিনা। EHT Capability IE স্ক্যানের ফলাফলে থাকলে, স্ক্যান করা AP Wi-Fi 7 সমর্থন করে। AOSP WifiTracker ক্লাস ভার্বোস মোডে চলাকালীন ব্যবহারকারী ইন্টারফেসে এই সমর্থন তথ্য প্রদর্শন করে।

STA সংযোগ মোড

অ্যান্ড্রয়েড ফ্রেমওয়ার্ক int WifiInfo#getWifiStandard() API অন্তর্ভুক্ত করে, যে অ্যাপগুলি বর্তমান স্টেশন (STA) সংযোগ মোড Wi-Fi 7 কিনা তা পরীক্ষা করতে কল করতে পারে। STA সংযোগ মোড হল Wi-Fi 7 যখন ডিভাইস এবং সংযুক্ত উভয়ই AP সমর্থন Wi-Fi 7। সংযোগ মোড Wi-Fi 7 হলে, API স্ক্যান ফলাফল প্রদান করে ScanResults.WIFI_STANDARD_11BE

যখন getWifiStandard কল করা হয়, Wi-Fi মডিউলটি ISupplicantStaIface#getConnectionCapabilities() HAL API কল করে মোড নির্ধারণ করে। wpa_supplicant AIDL স্তরে এই HAL API-এর বাস্তবায়ন সংযোগ সেটআপের সময় EHT Capability IE AssocReq এবং AssocRsp উভয়েই আছে কিনা তা পরীক্ষা করে।

নেটওয়ার্ক নির্বাচন

অ্যান্ড্রয়েড 13-এ, কোন AP-এর সাথে সংযোগ করতে হবে তা নির্ধারণ করতে নেটওয়ার্ক নির্বাচন বিভিন্ন পরামিতি ব্যবহার করে। প্যারামিটারগুলির মধ্যে একটি হল AP-এর আনুমানিক থ্রুপুট, যা ThroughputPredictor ব্লক ব্যবহার করে অনুমান করা হয়। ThroughputPredictor ব্লক ডিভাইস এবং স্ক্যান করা AP উভয়ের PHY প্যারামিটার ব্যবহার করে।

অ্যান্ড্রয়েড 13-এ, ThroughputPredictor তার গণনায় নিম্নলিখিত AP ক্ষমতাগুলি ব্যবহার করে:

  • Wi-Fi 7 এর সমর্থন (802.11be)
  • 320 MHz চ্যানেল প্রস্থের সমর্থন

ThroughputPredictor লজিক-এ এই ক্ষমতাগুলি অন্তর্ভুক্ত করা যখন ডিভাইসটি এই বৈশিষ্ট্যগুলি ব্যবহার করতে পারে তখন Wi-Fi 7 সক্ষম AP নির্বাচন করার সম্ভাবনা বাড়িয়ে দেয়৷

Wi-Fi RTT-ভিত্তিক রেঞ্জিং

Android EHT প্রস্তাবনার জন্য API সমর্থন এবং Wi-Fi RTT- এর জন্য 320 MHz চ্যানেল প্রস্থ প্রদান করে। এটি যখনই চিপ দ্বারা সমর্থিত হয় তখন এটি RTT রেঞ্জে Wi-Fi 7 সম্পর্কিত ক্ষমতাগুলির সমর্থন সক্ষম করে৷

HAL APIs

নিম্নলিখিত HAL APIগুলি RTT-ভিত্তিক রেঞ্জিংয়ের জন্য Wi-Fi 7 ক্ষমতা সমর্থন করে:

এপিআই

অ্যাপগুলি Wi-Fi 7 RTT-ভিত্তিক রেঞ্জের জন্য নিম্নলিখিত APIগুলি ব্যবহার করতে পারে:

নরম এপি

Android Soft AP-তে Wi-Fi 7 সমর্থন করে এবং নিম্নলিখিত বৈশিষ্ট্যগুলি প্রদান করে৷

সফট এপি শুরু করুন

Android Wi-Fi 7 মোডে Soft AP শুরু করা সমর্থন করে। এটি config_wifiSoftapIeee80211beSupported ওভারলে কনফিগারেশন দ্বারা পরিচালিত হয়।

Wi-Fi মডিউলটি IHostApd#addAccessPoint() API কলে বুলিয়ান HwModeParams#enable80211BE সেট করতে ওভারলে config_wifiSoftapIeee80211beSupported ব্যবহার করে। hostapd AIDL স্তরে, এই মানটি hostapd.conf প্যারামিটার সেট করতে ব্যবহৃত হয়।

HAL APIs

hostapd HAL-এর HwModeParamsenable80211BE বুলিয়ান Wi-Fi 7 মোডে Soft AP শুরু করা সমর্থন করে।

সফ্ট এপি তথ্য প্রতিবেদন করুন

রিপোর্ট করা সফ্ট এপি তথ্যে Wi-Fi 7 এবং 320 MHz চ্যানেল প্রস্থের তথ্য অন্তর্ভুক্ত করার জন্য Android এ API সমর্থন অন্তর্ভুক্ত করে।

HAL APIs

hostapd HAL-এর Generation.aidl AIDL ইন্টারফেসে WIFI_STANDARD_11BE ধ্রুবক, যা IHostapdCallback#onApInstanceInfoChanged() কলব্যাকে রিপোর্ট করা ApInfo তে ব্যবহৃত হয়, সফ্ট AP তথ্য রিপোর্ট করা সমর্থন করে।

এপিআই

SoftApInfo তে Soft AP তথ্য রিপোর্ট করতে অ্যাপগুলি নিম্নলিখিত পদ্ধতিগুলি (সিস্টেম API) ব্যবহার করতে পারে।

MLO Wi-Fi 7 বৈশিষ্ট্য

মাল্টি-লিংক অপারেশন (MLO) হল Wi-Fi 7 (802.11be) স্পেসিফিকেশনের প্রধান বৈশিষ্ট্য। ওয়াই-ফাই 7-এ চলমান মাল্টি-লিঙ্ক ডিভাইসের (এমএলডি) জন্য এমএলও একটি বাধ্যতামূলক বৈশিষ্ট্য, তা একযোগে বা অ-সামরিকভাবে।

MLO চিত্র

চিত্র 1. MLO ডায়াগ্রাম।

চিত্র 1-এ দেখানো হয়েছে, AP-MLD এবং STA-MLD উভয়েরই প্রতিটি লিঙ্কে একাধিক AP বা STA দৃষ্টান্ত রয়েছে। প্রতিটি লিঙ্কের একটি পৃথক AP বা STA MAC ঠিকানা রয়েছে৷ ডিভাইসটি সনাক্ত করার জন্য AP বা STA এর একটি MLD MAC ঠিকানাও রয়েছে৷

android.net.wifi.MloLink ক্লাসটি MLO লিঙ্কের প্রতিনিধিত্ব করে। এই শ্রেণীতে নিম্নলিখিত পরামিতিগুলি অন্তর্ভুক্ত রয়েছে:

  • int getLinkId() : AP MLD দ্বারা বিজ্ঞাপিত লিঙ্ক আইডি।
  • MacAddress getApMacAddress() : AP MAC ঠিকানা। সেই লিঙ্কের জন্য AP উদাহরণের BSSID।
  • MacAddress getStaMacAddress() : STA MAC ঠিকানা। লিঙ্কে STA উদাহরণের জন্য স্থানীয়ভাবে নির্ধারিত MAC ঠিকানা।
  • int getChannel() : লিঙ্ক চ্যানেল। লিঙ্কটির চ্যানেল নম্বর।
  • int getBand() : লিঙ্ক ব্যান্ড। লিঙ্ক এর ব্যান্ড.
  • int getState() : লিঙ্ক রাষ্ট্র. নিম্নলিখিত রাজ্যগুলির মধ্যে একটি হতে পারে:

    • MLO_LINK_STATE_INVALID : অবৈধ৷ আরম্ভ এবং ত্রুটি ক্ষেত্রে ব্যবহৃত.
    • MLO_LINK_STATE_UNASSOCIATED : অসংযুক্ত। লিঙ্কটি একটি AP এর সাথে যুক্ত নয়৷
    • MLO_LINK_STATE_IDLE : নিষ্ক্রিয়। লিঙ্কটি যুক্ত কিন্তু সক্রিয় নয় (কোন ট্রাফিক শনাক্তকারী (টিআইডি) লিঙ্কে ম্যাপ করা নেই)।
    • MLO_LINK_STATE_ACTIVE : সক্রিয়। লিঙ্কটি যুক্ত এবং সক্রিয় (অন্তত একটি টিআইডি লিঙ্কে ম্যাপ করা হয়েছে)। একটি সক্রিয় লিঙ্ক পাওয়ার সেভ মোডে থাকতে পারে কারণ ফ্রেমওয়ার্ক লিঙ্কটির পাওয়ার স্টেট নিরীক্ষণ করে না।

স্ক্যান করা Wi-Fi 7 AP MLO তথ্য

যখন Wi-Fi মডিউল AP-MLD থেকে একটি ScanResult অবজেক্ট পায় তখন অ্যাপগুলি Wi-Fi 7 AP MLD-এর MLO প্যারামিটার পেতে পারে। AOSP WifiTracker ভার্বোস মোডে চলাকালীন MLO প্যারামিটার প্রদর্শন করে।

Wi-Fi মডিউল নিম্নলিখিত কাজ করে MLO তথ্য সংগ্রহ করে:

  • AP MLD MAC ঠিকানা এবং বর্তমান লিঙ্ক আইডি পড়ার জন্য বীকন বা প্রোবের প্রতিক্রিয়াতে অন্তর্ভুক্ত মাল্টি-লিঙ্ক তথ্য উপাদান (IE) পার্স করে।
  • অধিভুক্ত লিঙ্কের তথ্যের তালিকা পড়ার জন্য বীকন বা প্রোবের প্রতিক্রিয়াতে অন্তর্ভুক্ত হ্রাসকৃত প্রতিবেশী প্রতিবেদন (RNR) IE বিশ্লেষণ করে।

এপিআই

স্ক্যান করা AP MLO তথ্য পেতে, অ্যাপগুলি নিম্নলিখিত APIগুলি ব্যবহার করতে পারে:

  • ScanResult#BSSID : AP ইন্সট্যান্স MAC ঠিকানা (যে লিঙ্কে স্ক্যানের ফলাফল পাওয়া গেছে তার জন্য)
  • MacAddress ScanResult#getApMldMacAddress() : AP এর MLD MAC ঠিকানা প্রদান করে।
  • int ScanResult#getApMloLinkId() : যে লিঙ্কে ScanResult গৃহীত হয়েছিল তার লিঙ্ক আইডি ফেরত দেয়।
  • List<MloLink> ScanResult#getAffiliatedMloLinks() : AP-MLD দ্বারা বিজ্ঞাপন দেওয়া সমস্ত লিঙ্কের জন্য MloLink অবজেক্টের একটি তালিকা প্রদান করে যে লিঙ্কটিতে ScanResult গৃহীত হয়েছিল।

সংযুক্ত Wi-Fi 7 AP MLO তথ্য

যখন একটি ডিভাইস Wi-Fi 7 AP-MLD এর সাথে সংযোগ করে, ফ্রেমওয়ার্ক WifiInfo অবজেক্ট থেকে সংযোগের MLO প্যারামিটার সংগ্রহ করে। AOSP WifiTracker অবজেক্ট ভার্বোস মোডে চলাকালীন এই তথ্য প্রদর্শন করে।

ডিভাইসটি যখন AP-MLD-এর সাথে সংযোগ করে, তখন Wi-Fi মডিউলটি AP থেকে প্রাপ্ত ScanResult বস্তু থেকে MLO তথ্য কপি করে। এরপর মডিউলটি ISupplicantStaIface#getConnectionMloLinksInfo() HAL API কে কল করে AP এবং STA উভয়ের জন্য প্রতিটি লিঙ্কের MAC ঠিকানা পড়তে এবং সংশ্লিষ্ট লিঙ্কগুলির অবস্থা আপডেট করতে।

এপিআই

MLO সংযোগ তথ্য পেতে, অ্যাপগুলি নিম্নলিখিত APIগুলি ব্যবহার করতে পারে:

  • WifiInfo#getBSSID() : AP ইন্সট্যান্স MAC অ্যাড্রেস ফেরত দেয় (যে লিঙ্কে ডিভাইসটি যুক্ত থাকে)।
  • MacAddress WifiInfo#getApMldMacAddress() : AP এর MLD MAC ঠিকানা প্রদান করে।
  • int WifiInfo#getApMloLinkId() : STA AP-এর সাথে যে লিঙ্কে যুক্ত হয়েছে তার লিঙ্ক আইডি ফেরত দেয়।
  • List<MloLink> WifiInfo#getAffiliatedMloLinks() : সংশ্লিষ্ট লিঙ্ক সহ AP-MLD দ্বারা বিজ্ঞাপিত সমস্ত লিঙ্কের জন্য MloLink অবজেক্টের একটি তালিকা প্রদান করে। প্রতিটি MloLink অবজেক্টে AP এবং STA MAC ঠিকানা উভয়ই জিজ্ঞাসা করা যেতে পারে।

AP-MLD স্ক্যানিং

বিক্রেতা সফ্টওয়্যার এটি প্রাপ্ত প্রতিটি বীকন বা অনুসন্ধানের প্রতিক্রিয়ার জন্য স্ক্যান ফলাফল সহ Wi-Fi ফ্রেমওয়ার্ক সরবরাহ করে। এর মানে হল Wi-Fi ফ্রেমওয়ার্ক:

  • একই AP-MLD থেকে একাধিক ScanResults অবজেক্ট পেতে পারে (কারণ AP-এর একাধিক বীকনিং লিঙ্ক থাকতে পারে)।
  • একটি AP-MLD-এর AP লিঙ্কগুলির জন্য স্ক্যান ফলাফলের শুধুমাত্র একটি আংশিক সেট পেতে পারে কারণ এই লিঙ্কের কিছু সংকেত ফার্মওয়্যার দ্বারা নাও পেতে পারে।

বিক্রেতা সফ্টওয়্যার শুধুমাত্র বাতাসে প্রাপ্ত ফলাফল স্ক্যান করে রিপোর্ট করে এবং AP-MLD দ্বারা বিজ্ঞাপন দেওয়া লিঙ্কের উপর ভিত্তি করে স্ক্যান ফলাফল তৈরি (কৃত্রিমভাবে সংশ্লেষিত) করা উচিত নয়।

বিক্রেতা সফ্টওয়্যারকে অবশ্যই রিপোর্ট করা স্ক্যান ফলাফলগুলিতে AP দৃষ্টান্ত থেকে প্রাপ্ত মৌলিক বৈকল্পিক মাল্টি-লিঙ্ক এবং RNR IE অন্তর্ভুক্ত করতে হবে। স্ক্যানের ফলাফলে অ্যাফিলিয়েটেড AP বিশদ অনুপস্থিত থাকলে, বিক্রেতা সফ্টওয়্যার সক্ষমতা, পরামিতি এবং অপারেশন উপাদানগুলির সম্পূর্ণ বা আংশিক সেট অন্তর্ভুক্ত করতে মাল্টি-লিঙ্ক প্রোব অনুরোধ পাঠাতে পারে (প্রোবের অনুরোধ ফ্রেম যাতে একটি প্রোব অনুরোধ মাল্টি-লিঙ্ক উপাদান অন্তর্ভুক্ত) রেসপন্স ফ্রেমে টার্গেটেড AP-MLD সহ AP-এর।

প্রয়োজনে বিক্রেতা সফ্টওয়্যার এমএল-প্রোবিং ট্রিগার করতে পারে (প্রোব রেক ফ্রেমে প্রোব রেক ভ্যারিয়েন্ট এমএল IE ব্যবহার করে)।

AP-MLD নেটওয়ার্ক অ্যাসোসিয়েশন

যখন একটি ডিভাইস একটি AP-MLD নেটওয়ার্কে যোগ দেয়, তখন বিক্রেতা সফ্টওয়্যার সিগন্যালিংয়ের জন্য নির্বাচিত AP লিঙ্ক (সংশ্লিষ্ট লিঙ্ক) ব্যবহার করে। বিক্রেতা সফ্টওয়্যারটি ডিভাইস দ্বারা সমর্থিত সমস্ত বা কিছু লিঙ্কের সাথে সংযুক্ত করতে পারে৷

সফল অ্যাসোসিয়েশনের পরে, ড্রাইভার AP-MLD-এর জন্য একটি লিঙ্কের BSSID-এর সাথে ISupplicantStaIfaceCallback#onStateChanged() রিপোর্ট করে। ড্রাইভার তারপরে AP-MLD-এর একটি লিঙ্ক নির্বাচন করে যদি স্ক্যানের ফলাফল সেই লিঙ্কের ফ্রেমওয়ার্কে রিপোর্ট করা হয়।

নেটওয়ার্ক স্কোরিং

অ্যান্ড্রয়েড 14 বা উচ্চতর সংস্করণে চলমান ডিভাইসগুলির জন্য, Android Wi-Fi নেটওয়ার্ক নির্বাচন Wi-Fi 7 MLO সমর্থন করে৷ এর মানে হল এমএলও-এর জন্য উপলব্ধ লিঙ্কগুলির সংখ্যার উপর ভিত্তি করে Android ডিভাইসের জন্য সেরা Wi-Fi নেটওয়ার্ক নির্বাচন করে৷

MLO সমর্থন করতে, নেটওয়ার্ক নির্বাচন অ্যালগরিদম Wi-Fi চিপ থেকে নিম্নলিখিত MLO ক্ষমতাগুলি ব্যবহার করে:

  • সর্বাধিক STR লিঙ্ক গণনা
  • সর্বাধিক অ্যাসোসিয়েশন লিঙ্ক গণনা
  • যুগপত ব্যান্ড সমন্বয়

Wi-Fi MLO নেটওয়ার্ক নির্বাচন

চিত্র 2. MLO নেটওয়ার্ক নির্বাচন।

একযোগে ট্রান্সমিট এবং রিসিভ (STR) হল মাল্টি-লিঙ্ক অপারেশনের জন্য একটি Wi-Fi মিডিয়াম কনটেন্টেশন স্কিম। বিভিন্ন লিঙ্কের মধ্যে সংকেত বিচ্ছিন্নতা যথেষ্ট যাতে লিঙ্কগুলি স্বাধীনভাবে কাজ করতে পারে এবং বিভিন্ন লিঙ্কে একযোগে প্রেরণ এবং গ্রহণ করতে সক্ষম। STR লিগ্যাসি একক লিঙ্ক (SL) STA এবং লিগ্যাসি ডুয়াল ব্যান্ড ডুয়াল কনকারেন্ট (DBDC) STA থেকে আলাদা। একটি STA MLD-এর সাথে সংযুক্ত STAগুলি একটি সাধারণ ট্রান্সমিটার সিকোয়েন্স নম্বর (SN) এবং ডেটা ট্রান্সমিশনের জন্য একটি সাধারণ স্থান ভাগ করে যা বিভিন্ন লিঙ্কে বরাদ্দ করা হয় যদি একাধিক লিঙ্ক ট্রান্সমিশনের একই অ্যাক্সেস ক্যাটাগরি (AC) থাকে।

ব্যবহার করা STR লিঙ্কের সর্বাধিক সংখ্যা চিপ দ্বারা সমর্থিত সর্বাধিক সংখ্যক রেডিও থেকে আলাদা হতে পারে। চিত্র 2-এর উদাহরণে, সর্বাধিক STR লিঙ্ক সংখ্যা 2।

নিম্নলিখিত AIDL HAL ইন্টারফেসগুলি সর্বাধিক STR লিঙ্ক গণনা এবং সর্বাধিক সংখ্যক অ্যাসোসিয়েশন লিঙ্ক গণনা ক্ষমতা সমর্থন করে:

একাধিক লিঙ্ক কনটেশন স্কিম, এনহ্যান্সড মাল্টি-লিঙ্ক সিঙ্গেল রেডিও (eMLSR) ব্যবহার করে একটি একক রেডিওতে কাজ করতে পারে। একটি মাল্টি-লিঙ্ক ডিভাইস লিঙ্কগুলির একটি সেটে eMLSR ব্যবহার করে যদি এটি নির্দিষ্ট মৌলিক নিয়ন্ত্রণ ফ্রেমগুলি গ্রহণ করতে পারে এবং লিঙ্কগুলির সেটে একই সাথে স্পষ্ট চ্যানেল মূল্যায়ন (CCA) সম্পাদন করতে পারে। যাইহোক, এমএলডি একবারে শুধুমাত্র একটি লিঙ্কে ডেটা প্রেরণ বা গ্রহণ করে (প্রতিটি ট্রান্সমিট সুযোগ (TXOP) সময়কালে গতিশীলভাবে নির্বাচিত লিঙ্ক)।

একটি MLD স্টেশন চিপ দ্বারা সমর্থিত হলে STR এবং eMLSR-এ একসাথে কাজ করার মাধ্যমে আরও ভাল নির্ভরযোগ্যতা, ভাল থ্রুপুট এবং নিম্ন লেটেন্সির জন্য অ্যাসোসিয়েশন লিঙ্কের সংখ্যা সর্বাধিক করতে পারে। চিত্র 2-এ, সর্বাধিক অ্যাসোসিয়েশন লিঙ্ক সংখ্যা 3।

নিম্নলিখিত AIDL HAL ইন্টারফেসগুলি সর্বাধিক অ্যাসোসিয়েশন লিঙ্ক গণনা ক্ষমতা সমর্থন করে:

যুগপত ব্যান্ড সমন্বয়

ফ্রেমওয়ার্ক অনুমোদিত রেডিও সংমিশ্রণ ( IWifiChip.aidl AIDL ইন্টারফেসের মাধ্যমে) পেতে চিপকে জিজ্ঞাসা করে যা একই সাথে কাজ করতে পারে। এই তথ্য থেকে, ফ্রেমওয়ার্ক সম্ভাব্য যুগপত ব্যান্ড সমন্বয় আহরণ করে। নিম্নলিখিত একযোগে ব্যান্ড সংমিশ্রণের একটি উদাহরণ তালিকা (GHz):

  • 2.4
  • 5
  • 6
  • 2.4 x 5
  • 2.4 x 6
  • 5 x 6

নিম্নলিখিত AIDL HAL ইন্টারফেসটি একযোগে রেডিও সংমিশ্রণ সমর্থন করে:

নেটওয়ার্ক নির্বাচন

নেটওয়ার্ক নির্বাচনের সময় (MLO), প্রার্থী তালিকা একই MLD MAC ঠিকানা সহ সদস্যদের দ্বারা গোষ্ঠীভুক্ত হয়। সর্বাধিক পূর্বাভাসিত মাল্টি-লিংক থ্রুপুট স্কোর প্রতিটি গ্রুপের জন্য গণনা করা হয়, সর্বাধিক STR লিঙ্ক গণনা এবং চিপ দ্বারা সমর্থিত যুগপত ব্যান্ড সমন্বয়ের উপর ভিত্তি করে। প্রার্থী যদি মাল্টি-লিংক সক্ষম হয় এবং চিপ STR সমর্থন করে, ভবিষ্যদ্বাণী করা থ্রুপুট স্কোর মাল্টি-লিঙ্ক পূর্বনির্ধারিত থ্রুপুট স্কোরের সাথে প্রতিস্থাপিত হয়। এটি নেটওয়ার্ক নির্বাচনের সময় MLO প্রার্থীদের একটি উত্সাহ দেয়।

একটি AP-MLD নেটওয়ার্কে যোগদান করার সময়, ফ্রেমওয়ার্ক ScanResults অবজেক্টে প্রাপ্ত তথ্যের উপর ভিত্তি করে SSID নির্বাচন সম্পাদন করে যেমনটি ভেন্ডর সফ্টওয়্যার দ্বারা রিপোর্ট করা হয়েছে। ফ্রেমওয়ার্ক দ্বারা SSID নির্বাচনের পরে, বিক্রেতা সফ্টওয়্যার অ্যাসোসিয়েশনের জন্য ব্যবহার করার জন্য সেরা AP (বা AP লিঙ্ক) এর জন্য BSSID নির্বাচন করার জন্য দায়ী৷

ডিভাইস STA MAC ঠিকানা হ্যান্ডলিং

এই বিভাগটি বর্ণনা করে যে কীভাবে ডিভাইস STA MAC ঠিকানাগুলি (MLD MAC ঠিকানা এবং প্রতি-লিঙ্ক STA MAC ঠিকানাগুলি) পরিচালনা করা হয়।

MLD MAC ঠিকানা

Wi-Fi ফ্রেমওয়ার্ক ডিভাইসের MLD MAC ঠিকানা পরিচালনা করে। MLD MAC ঠিকানাটি একইভাবে পরিচালনা করা হয় যেভাবে একটি নন-MLD ডিভাইস তার নিজস্ব MAC ঠিকানা পরিচালনা করে। MAC ঠিকানাটি ব্যবহারকারীর পছন্দের উপর ভিত্তি করে একটি এলোমেলো MAC ঠিকানা বা একটি হার্ডওয়্যার প্রভিশনড MAC ঠিকানা হতে পারে। MLD MAC ঠিকানাটি IWifiStaIface#setMacAddress() HAL API ব্যবহার করে ফ্রেমওয়ার্ক দ্বারা সেট করা হয়েছে।

বিক্রেতা সফ্টওয়্যার ইনস্ট্যান্স STA MAC ঠিকানাগুলি পরিচালনা করে (প্রতিটি লিঙ্কের জন্য)। যখন একটি ডিভাইস একটি AP এর সাথে যুক্ত হয়, তখন বিক্রেতা সফ্টওয়্যার প্রতিটি সংশ্লিষ্ট লিঙ্কের জন্য একটি উদাহরণ MAC ঠিকানা বরাদ্দ করে।

বিক্রেতা সফ্টওয়্যার তার অ্যালগরিদমের উপর ভিত্তি করে প্রতি-লিঙ্ক MAC ঠিকানা নির্ধারণ করে। অ্যালগরিদম অবশ্যই পুনরাবৃত্তিযোগ্য হতে হবে এবং নিম্নলিখিতগুলির একটি ফাংশন হতে হবে:

  • ওয়াই-ফাই ফ্রেমওয়ার্ক দ্বারা সেট করা STA-MLD MAC ঠিকানা।
  • লিঙ্ক আইডি (এপি থেকে প্রাপ্ত)

এর মানে হল যে যদি ফ্রেমওয়ার্ক একই MLD MAC ঠিকানা পুনরায় ব্যবহার করে, তাহলে বিক্রেতাকে অবশ্যই একই সংশ্লিষ্ট প্রতি-ইনস্ট্যান্স MAC ঠিকানাগুলি পুনরায় ব্যবহার করতে হবে এবং এর বিপরীতে। এটি গ্যারান্টি দেয় যে যখন ফ্রেমওয়ার্ক তৈরি করা STA-MLD ঠিকানা একটি SSID-এর জন্য স্থায়ী হয়, তখন প্রতি-STA MAC ঠিকানাগুলিও স্থায়ী হয়।

প্রতি-লিঙ্ক STA MAC অ্যাড্রেস অ্যাসাইনমেন্টের জন্য নিম্নলিখিত একটি উদাহরণ অ্যালগরিদম (বিক্রেতারা অ্যালগরিদমের মানদণ্ড পূরণ করে এমন কোনও অ্যালগরিদম প্রয়োগ করতে পারে):

  • অক্টেট 0: নিশ্চিত করুন যে স্থানীয়ভাবে পরিচালিত বিট সেট করা আছে
  • অক্টেট 1-4: STA-MLD MAC ঠিকানার মতো
  • অক্টেট 5: প্রতি-STA = (STA-MLD + লিঙ্ক আইডি + 1) MOD (256)

বিক্রেতা ফার্মওয়্যার লিঙ্ক স্যুইচিং করতে পারে এবং Wi-Fi ফ্রেমওয়ার্ক থেকে ইনপুট ছাড়াই সক্রিয়করণ বা নিষ্ক্রিয় করার জন্য লিঙ্কগুলির পাওয়ার সেভ স্টেট পরিচালনা করতে পারে।

যখন লিঙ্কের অবস্থা পরিবর্তন করা হয় তখন Wi-Fi ফ্রেমওয়ার্ক একটি বিজ্ঞপ্তি আশা করে না।

ক্ষমতা সংরক্ষণ রাষ্ট্র পরিচালনা

Wi-Fi ফ্রেমওয়ার্কে ডিফল্টরূপে পাওয়ার সেভ স্টেট সক্রিয় থাকে। পাওয়ার সেভ স্টেটে, ভেন্ডর ফার্মওয়্যার ট্র্যাফিক প্যাটার্ন এবং লিঙ্ক অ্যাক্টিভেশন বা নিষ্ক্রিয়করণের সিদ্ধান্তের উপর ভিত্তি করে পৃথক লিঙ্কগুলির পাওয়ার সেভ স্টেট পরিচালনা করে।

যাইহোক, ওয়াই-ফাই ফ্রেমওয়ার্ক ISupplicantStaIface::setPowerSave(false) HAL API কল করে পাওয়ার সেভ স্টেটকে অক্ষম করতে বাধ্য করতে পারে। ফ্রেমওয়ার্ক দ্বারা পাওয়ার সেভ স্টেট অক্ষম করা থাকলে, ভেন্ডর ফার্মওয়্যারকে অবশ্যই অন্তত একটি লিঙ্ক সক্রিয় রাখতে হবে (পাওয়ার সেভ অক্ষম)। এই অবস্থায়, ফার্মওয়্যার বাস্তবায়ন সিদ্ধান্ত নেয় কোন লিঙ্ক সেট করা হবে।

ডেটা পাথ

এটি আপলিংক এবং ডাউনলোড ট্রাফিক পরিচালনার জন্য বিক্রেতা ফার্মওয়্যার বাস্তবায়নের বর্ণনা করে।

ফার্মওয়্যার তার অভ্যন্তরীণ বাস্তবায়নের উপর ভিত্তি করে এক (বা একাধিক) লিঙ্কে ট্রাফিক আপলিঙ্ক করে। বিক্রেতা ফার্মওয়্যার ট্রাফিক প্যাটার্নের উপর ভিত্তি করে লোড ব্যালেন্সিং, ডুপ্লিকেশন বা ট্র্যাফিকের একত্রীকরণ কখন করতে হবে তা নির্ধারণ করে। আমরা নিম্নলিখিত ক্ষেত্রে একাধিক লিঙ্কে ফার্মওয়্যার ডুপ্লিকেট ট্রাফিকের সুপারিশ করি:

  • যখন IWifiChip#setLatencyMode() HAL API-এর মাধ্যমে লো-লেটেন্সি মোড সেট করা হয়।
  • যখন ব্যবহারকারীর অগ্রাধিকার 6 এবং 7 সহ ট্রাফিক থাকে।

ফার্মওয়্যারকে অবশ্যই MAC হেডারের (গন্তব্য) প্রতি-STA MAC ঠিকানাকে MLD-STA MAC দিয়ে প্রতিস্থাপন করতে হবে এবং MLD-AP MAC ঠিকানার সাথে MAC শিরোলেখের প্রতি-AP MAC ঠিকানার (উৎস) প্রতিস্থাপন করতে হবে। ফার্মওয়্যারকে অবশ্যই APF ফিল্টারের মধ্য দিয়ে যাওয়ার আগে এই MAC ঠিকানা প্রতিস্থাপন করতে হবে কারণ APF ফিল্টার কমান্ডগুলিতে MLD MAC ঠিকানাগুলির উপর ভিত্তি করে ফিল্টার রয়েছে৷ একটি AP-MLD-এর সমস্ত লিঙ্কের জন্য একটি একক APF ফিল্টার রয়েছে৷

সঙ্গতি

কনকারেন্সি পরিস্থিতি, যেখানে একটি রেডিও একটি নতুন ইন্টারফেসের জন্য ব্যবহার করা হয়, একই ইন্টারফেসের লিঙ্কগুলির জন্য একাধিক রেডিও উত্সর্গ করার চেয়ে অগ্রাধিকার থাকতে হবে৷ সামঞ্জস্যপূর্ণ পরিস্থিতিগুলিকেও অবশ্যই MLO-এর উপর অগ্রাধিকার দিতে হবে, তা যাই হোক না কেন আগে। একটি একক ইন্টারফেসের জন্য একাধিক লিঙ্ক ব্যবহার করা সুবিধাবাদী, যার অর্থ একাধিক লিঙ্ক শুধুমাত্র তখনই ব্যবহৃত হয় যখন:

  • লোড ব্যালেন্সিং, অ্যাগ্রিগেশন বা ডুপ্লিকেশনের জন্য ফার্মওয়্যারের সিদ্ধান্তের ভিত্তিতে MLO প্রয়োজন
  • MLO উপলব্ধ , মানে অন্য ইন্টারফেসের জন্য একটি রেডিওর প্রয়োজন নেই৷

অ্যান্ড্রয়েড 14 বা উচ্চতর চলমান ডিভাইসগুলির জন্য, যখন Wi-Fi 7 AP বীকন, প্রোব প্রতিক্রিয়া এবং অ্যাসোসিয়েশন রেসপন্স ফ্রেমে প্রেরণ করা একটি TID-টু-লিঙ্ক ম্যাপিং উপাদানের মাধ্যমে একটি লিঙ্কের একটি অস্থায়ী অক্ষম ঘোষণা করে, তখন Wi-Fi 7 স্টেশন অন্য কোনো অ্যাসোসিয়েশন না করেই সেট আপ করা অবশিষ্ট লিঙ্কগুলি ব্যবহার করে AP-এর সাথে সংযোগ অব্যাহত রাখে।

অ্যান্ড্রয়েড 13 বা তার কম সংস্করণে চলমান ডিভাইসগুলির জন্য, ওয়াই-ফাই ফ্রেমওয়ার্ক টিআইডি-টু-লিঙ্ক ম্যাপিংয়ের কারণে যখন লিঙ্কের অবস্থা পরিবর্তিত হয় তখন বিজ্ঞপ্তিগুলি গ্রহণ করা সমর্থন করে না, এমনকি যদি সংশ্লিষ্ট লিঙ্কটি একটি TID-এর সাথে লিঙ্ক না থাকে।

Wi-Fi আবেদনকারী নিম্নলিখিত AIDL ইন্টারফেসের মাধ্যমে TID-টু-লিঙ্ক ম্যাপিং পরিবর্তনের Wi-Fi ফ্রেমওয়ার্ককে অবহিত করে:

অ্যাপগুলি নিম্নলিখিত APIগুলি ব্যবহার করে TID-টু-লিঙ্ক ম্যাপিং পরিবর্তন সম্পর্কে তথ্য পেতে পারে:

অ্যান্ড্রয়েড 14 বা উচ্চতর সংস্করণে চলমান ডিভাইসগুলির জন্য, স্টেশন এবং AP-এর জন্য TID-টু-লিঙ্ক মানচিত্র আলোচনার ক্ষমতা পেতে নিম্নলিখিত APIগুলি উপলব্ধ।

চিপ ক্ষমতা

নিম্নলিখিত ইন্টারফেস টিআইডি-টু-লিঙ্ক ম্যাপিং আলোচনার জন্য চিপ ক্ষমতা সমর্থন করে।

AIDL HAL

TID-টু-লিঙ্ক ম্যাপিং আলোচনার জন্য AIDL ইন্টারফেসটি hardware/interfaces/wifi/aidl/android/hardware/wifi/IWifiChip.aidl FeatureSetMask এ রয়েছে। T2LM_NEGOTIATION = 1 << 8 ক্ষমতা নির্দেশ করে যে চিপ টিআইডি-টু-লিঙ্ক ম্যাপিং সমর্থন করে। এপিআই

এপি ক্ষমতা

নিম্নলিখিত ইন্টারফেসগুলি টিআইডি-টু-লিঙ্ক ম্যাপিং আলোচনার জন্য AP ক্ষমতা সমর্থন করে।

AIDL HAL

ফ্রেমওয়ার্কটি বর্তমান সংযোগের ক্ষমতা সহ আবেদনকারীর কাছ থেকে AP ক্ষমতা সম্পর্কে প্রশ্ন করে।

  • apTidToLinkMapNegotiationSupported : একটি AP টিআইডি-টু-লিঙ্ক মানচিত্র আলোচনার ক্ষমতা সমর্থন করে কিনা তা পরীক্ষা করে।

এপিআই

লিঙ্ক স্তর পরিসংখ্যান Wi-Fi লিঙ্ক-নির্দিষ্ট বিবরণ যেমন RSSI, বিভিন্ন TX এবং RX প্যাকেট কাউন্টার, এবং রেডিও পরিসংখ্যান অন্তর্ভুক্ত। ওয়াই-ফাই ফ্রেমওয়ার্ক পর্যায়ক্রমে সেরা নেটওয়ার্ক নির্বাচন করতে বা সংযুক্ত নেটওয়ার্কের গুণমান মূল্যায়ন করতে লিঙ্ক স্তর পরিসংখ্যান এবং RSSI নির্বাচন করে। Android 14 বা উচ্চতর সংস্করণে চলমান ডিভাইসগুলির জন্য, লিঙ্ক স্তর পরিসংখ্যান মাল্টি-লিঙ্ক সমর্থন অন্তর্ভুক্ত করে। Wi-Fi 7 সমর্থন করতে, Android লিঙ্ক স্তর পরিসংখ্যান এবং সিগন্যাল পোলিং উভয় ক্ষেত্রে MLO সমর্থন করে।

লিঙ্ক-নির্দিষ্ট পরিসংখ্যান নিম্নলিখিত লিঙ্ক স্তর AIDL ইন্টারফেসে পাওয়া যায়:

android.net.wifi.WifiManager#addOnWifiUsabilityStatsListener() সিস্টেম API সমস্ত লিঙ্ক স্তর পরিসংখ্যান শোনে। ফ্রেমওয়ার্ক পর্যায়ক্রমে Wi-Fi ব্যবহারযোগ্যতার পরিসংখ্যান আপডেট করতে এই API-কে আহ্বান করে।

নিম্নলিখিত লিঙ্ক-নির্দিষ্ট APIগুলি 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)

উপলব্ধ লিঙ্ক আইডিগুলি জিজ্ঞাসা করতে, অ্যাপগুলি android.net.wifi.WifiUsabilityStatsEntry#getLinkIds() পদ্ধতিতে কল করতে পারে৷

android.net.wifi.WifiUsabilityStatsEntry এ APIs একক লিঙ্কের জন্য (MLO নয়) MLO সংযোগের জন্য সমষ্টিগত পরিসংখ্যান প্রদান করে। নিম্নলিখিত একত্রীকরণ মানদণ্ড:

  • নিম্নলিখিত একত্রিত প্যাকেট পরিসংখ্যান প্রতি-লিঙ্ক পরিসংখ্যানের সমষ্টি ব্যবহার করে:

    public long getTotalTxSuccess()
    public long getTotalTxRetries()
    public long getTotalTxBad()
    public long getTotalRxSuccess()
    public int getRxLinkSpeedMbps()
    
  • নিম্নলিখিত পরিসংখ্যানগুলি সর্বোচ্চ RSSI-এর সাথে লিঙ্ক থেকে ডেটা ব্যবহার করে:

    public int getRssi()
    public int getLinkSpeedMbps()
    public long getTotalBeaconRx()
    public int getTimeSliceDutyCycleInPercent()
    public ContentionTimeStats getContentionTimeStats(@WmeAccessCategory int ac)
    public List<RateStats> getRateStats()
    

Android 13 চলমান ডিভাইসগুলির জন্য, লিঙ্ক স্তর পরিসংখ্যান একটি একক ইন্টারফেসের জন্য একাধিক লিঙ্কের ব্যবহারকে বিবেচনায় নেয় না। MLO সমর্থন করার জন্য, IWifi# getLinkLayerStats_1_6() HAL API-এর মাধ্যমে LinkLayerStats রিপোর্ট করার সময় বিক্রেতা সফ্টওয়্যারকে নিম্নলিখিত সমষ্টিগত যুক্তি প্রয়োগ করতে হবে। সর্বোত্তম লিঙ্ক হল সর্বোচ্চ RSSI-এর সাথে লিঙ্ক।

  • StaLinkLayerStats.iface.beaconRx : ইন্টারফেসের জন্য ব্যবহৃত সেরা লিঙ্কের জন্য বীকন গণনা রিপোর্ট করুন।
  • StaLinkLayerStats.iface.avgRssiMgmt : ইন্টারফেসের জন্য ব্যবহৃত সেরা লিঙ্কের জন্য avgRssiMgmt রিপোর্ট করুন।
  • StaLinkLayerStats.iface.wmeXxPktStats (Xx = Vo, Vi, Be,Bk): ইন্টারফেসের লিঙ্কগুলির উপর একত্রিত প্যাকেট পরিসংখ্যান (মোট) রিপোর্ট করুন।
  • StaLinkLayerStats.iface.wmeXxContentionTimeStats (Xx = Vo, Vi, Be,Bk): ইন্টারফেসে ব্যবহৃত সর্বোত্তম লিঙ্কের জন্য বিরোধের সময় পরিসংখ্যানের প্রতিবেদন করুন (সর্বনিম্ন বিতর্ক সময়ের পরিসংখ্যান)।

যখন Wi-Fi 7 অ্যাক্সেস পয়েন্টের একটি লিঙ্ক পুনরায় ব্যবহার করা হয়, তখন AP MLO লিঙ্ক পুনঃকনফিগারেশনের মাধ্যমে লিঙ্কটি অপসারণের ঘোষণা করতে পারে। স্টেশনগুলি অবশিষ্ট লিঙ্কগুলিতে পুনর্মিলন ছাড়াই AP-এর সাথে নিরবচ্ছিন্ন সংযোগ বজায় রাখতে পারে।

ISupplicantStaIfaceCallback.aidl এ ওয়াই-ফাই আবেদনকারীতে অবস্থিত onMloLinksInfoChanged AIDL ইন্টারফেস, লিঙ্ক পুনঃকনফিগারেশন (লিংকের AP অপসারণ) সমর্থন করে।

যখন Wi-Fi ফ্রেমওয়ার্ক একটি লিঙ্ক সরানোর প্রক্রিয়া করে, তখন লিঙ্কের অবস্থা MLO_LINK_STATE_UNASSOCIATED এ সেট করা হয়। ফ্রেমওয়ার্ক তারপর ConnectivityManager.NetworkCallback#onCapabilitiesChanged() একটি লিঙ্ক স্টেট পরিবর্তনের জন্য ট্রিগার করে।

WifiInfo#getAffiliatedMloLinks পদ্ধতি অধিভুক্ত MLO লিঙ্ক ফেরত দেয়। MloLink#getState পদ্ধতি লিঙ্কের অবস্থা প্রদান করে। যদি লিঙ্কটি সরানো হয়, তাহলে ফিরে আসা লিঙ্কের অবস্থা হল MLO_LINK_STATE_UNASSOCIATED

চিপ MLO কৌশল

MLO ডিভাইসগুলিকে একই সময়ে একাধিক Wi-Fi লিঙ্কে ডেটা পাঠাতে এবং গ্রহণ করার অনুমতি দেয়, যা কম লেটেন্সি, উচ্চ ব্যান্ডউইথ এবং কম পাওয়ারের মতো নির্দিষ্ট প্রয়োজনীয়তা রয়েছে এমন অ্যাপগুলির কর্মক্ষমতা উন্নত করতে পারে। চিপ বিক্রেতারা উপলব্ধ লিঙ্কগুলি কীভাবে ব্যবহার করবেন সে সম্পর্কে অ্যালগরিদম বিকাশ করতে পারে।

সুবিধাপ্রাপ্ত অ্যাপগুলি WifimanagersetMloMode পদ্ধতি ব্যবহার করে এই অ্যালগরিদমগুলিকে সংশোধন করতে পারে এবং নিম্নলিখিত মোডগুলি সেট করতে পারে:

  • MLO_MODE_DEFAULT = 0
  • MLO_MODE_LOW_LATENCY = 1
  • MLO_MODE_HIGH_THROUGHPUT = 2
  • MLO_MODE_LOW_POWER = 3

ফ্রেমওয়ার্ক MLO মোড সেট করতে IWifiChip AIDL ইন্টারফেসে setMloMode ব্যবহার করে।