वाई-फ़ाई का लो-लेटेंसी मोड

Android 10 में, वाई-फ़ाई लॉक एपीआई को बढ़ाया गया है, ताकि कम समय में डेटा ट्रांसफ़र करने वाले ऐप्लिकेशन, वाई-फ़ाई को कम समय में डेटा ट्रांसफ़र करने वाले मोड पर कॉन्फ़िगर कर सकें. लो-लेटेंसी मोड तब शुरू होता है, जब ये सभी शर्तें पूरी होती हैं:

  • वाई-फ़ाई चालू हो और डिवाइस में इंटरनेट ऐक्सेस हो.
  • ऐप्लिकेशन ने वाई-फ़ाई लॉक बनाया है और उसे हासिल किया है. साथ ही, यह फ़ोरग्राउंड में चल रहा है.
  • स्क्रीन चालू हो.

डिवाइसों पर कम-लेटेंसी मोड की सुविधा देने के लिए, डिवाइस बनाने वाली कंपनियों को WLAN ड्राइवर और वेंडर HAL को अपडेट करना होगा. कम लेटेंसी वाले मोड में, पावर सेविंग (इसे IEEE 802.11 स्टैंडर्ड में डॉज़ स्टेट भी कहा जाता है) की सुविधा को फ़्रेमवर्क बंद कर देता है. ड्राइवर और फ़र्मवेयर लेयर में स्कैनिंग और रोमिंग पैरामीटर को ऑप्टिमाइज़ किया जा सकता है, ताकि वाई-फ़ाई की लेटेन्सी को और कम किया जा सके. ऑप्टिमाइज़ेशन की सटीक जानकारी, लागू करने के तरीके पर निर्भर करती है.

Android में हाई-परफ़ॉर्मेंस वाई-फ़ाई लॉक मोड (एपीआई लेवल 12 में पेश किया गया) होता है. यह मोड, कम लेटेंसी वाले मोड से अलग होता है.

लागू करना

वाई-फ़ाई के लो-लेटेंसी मोड की सुविधा के लिए, यहां दिए गए IWifiChip फ़ंक्शन लागू करें.

एआईडीएल एचएएल में:

  • int getFeatureSet()
  • void setLatencyMode(in LatencyMode mode)

एचआईडीएल एचएएल (1.3 या इसके बाद के वर्शन) में:

  • getCapabilities_1_3() generates (WifiStatus status, bitfield<ChipCapabilityMask> capabilities)
  • setLatencyMode(LatencyMode mode) generates (WifiStatus status)

रेफ़रंस के तौर पर लागू किए गए कोड को wifi_legacy_hal.cpp में देखा जा सकता है. इसमें ये फ़ंक्शन शामिल हैं:

  • wifi_error wifi_get_supported_feature_set(wifi_interface_handle iface, feature_set *set)
  • wifi_error wifi_set_latency_mode(wifi_interface_handle handle, wifi_latency_mode mode)

कम इंतज़ार के समय वाले मोड में, Android फ़्रेमवर्क में WifiLockManager की मदद से, बैटरी बचाने की सुविधा को साफ़ तौर पर बंद कर दिया जाता है. इसके लिए, WLAN ड्राइवर को NL80211 कमांड का इस्तेमाल करने की अनुमति होनी चाहिए, NL80211_CMD_SET_POWER_SAVE, ताकि पावर सेव मोड को चालू और बंद किया जा सके. वाई-फ़ाई की बैटरी बचाने की सुविधा बंद होने पर, वाई-फ़ाई सिस्टम को चालू रहना चाहिए. साथ ही, कम से कम समय में पैकेट भेजने या पाने के लिए तैयार रहना चाहिए.

इस सुविधा को बंद करना

कम समय में डेटा ट्रांसफ़र करने की सुविधा बंद करने के लिए, एआईडीएल एचएएल के लिए getFeatureSet() या एचआईडीएल एचएएल के लिए getCapabilities_1_3() के कोड को अपडेट करें, ताकि capabilities & SET_LATENCY_MODE = 0 हो जाए. यहां SET_LATENCY_MODE को IWifiChip एआईडीएल या एचआईडीएल डेफ़िनिशन में तय किया गया है. इस सुविधा के बंद होने पर, फ़्रेमवर्क सिर्फ़ तब बैटरी सेवर मोड बंद करता है, जब लो-लेटेंसी मोड चालू हो.

Validation

यह जांच करने के लिए कि लो-लेटेंसी मोड चालू होने पर काम करता है या नहीं, यहां दिए गए ऑटोमेटेड टेस्ट और मैन्युअल पिंग लेटेंसी टेस्ट चलाएं.

अपने-आप होने वाली टेस्टिंग

Vendor Test Suite (VTS) और Compatibility Test Suite (CTS) के इन टेस्ट को चलाकर, ऑटोमेटेड टेस्टिंग करें:

मैन्युअल टेस्टिंग

जांच के लिए ज़रूरी उपकरण और एनवायरमेंट

मैन्युअल टेस्टिंग के लिए, यह सेटअप ज़रूरी है:

  • वाई-फ़ाई ऐक्सेस पॉइंट (एपी)
  • टेस्ट किए जाने वाले डिवाइस (डीयूटी) का फ़ोन और टेस्ट कंप्यूटर
    • DUT को वाई-फ़ाई के ज़रिए ऐक्सेस पॉइंट से कनेक्ट करना ज़रूरी है.
    • टेस्ट कंप्यूटर को वाई-फ़ाई या ईथरनेट के ज़रिए ऐक्सेस पॉइंट से कनेक्ट किया जाना चाहिए.
    • टेस्ट कंप्यूटर को यूएसबी के ज़रिए DUT से कनेक्ट किया जाना चाहिए.
  1. लो-लेटेंसी मोड चालू करें.

    adb root
    adb shell cmd wifi force-low-latency-mode enabled
    
  2. पक्का करें कि आपका कंप्यूटर, Android डीबग ब्रिज (ADB) के ज़रिए फ़ोन से कनेक्ट हो. ADB शेल से, गेटवे को तीन घंटे तक लगातार पिंग करें. हर पिंग के बीच एक सेकंड का अंतर रखें.

  3. जांच के आउटपुट को टेक्स्ट फ़ाइल में सेव करें. इसके बाद, पिंग लेटेन्सी की जांच के नतीजों का हिस्टोग्राम जनरेट करने के लिए, स्प्रेडशीट या Python स्क्रिप्ट का इस्तेमाल करें.

  4. इंतज़ार का समय कम करने वाले मोड को बंद करके, पहले से लेकर तीसरे चरण को दोहराएं.

    adb root
    adb shell cmd wifi force-low-latency-mode disabled
    
  5. टेस्ट के नतीजों की तुलना करके पुष्टि करें कि लो-लेटेंसी मोड चालू होने पर, पिंग के इंतज़ार के समय की औसत वैल्यू कम हो गई है.

  1. लो-लेटेंसी मोड चालू करें.

    adb root
    adb shell cmd wifi force-low-latency-mode enabled
    
  2. टेस्ट कंप्यूटर की कमांड लाइन से, फ़ोन के आईपी पते को एक सेकंड के अंतराल पर तीन घंटे तक लगातार पिंग करें.

  3. जांच के आउटपुट को किसी टेक्स्ट फ़ाइल में सेव करें. इसके बाद, पिंग लेटेन्सी की जांच के नतीजों का हिस्टोग्राम जनरेट करने के लिए, स्प्रेडशीट या Python स्क्रिप्ट का इस्तेमाल करें.

  4. इंतज़ार का समय कम करने वाले मोड को बंद करके, पहले से लेकर तीसरे चरण को दोहराएं.

    adb root
    adb shell cmd wifi force-low-latency-mode disabled
    
  5. टेस्ट के नतीजों की तुलना करके पुष्टि करें कि लो-लेटेंसी मोड चालू होने पर, पिंग के इंतज़ार के समय की औसत वैल्यू कम हो गई है.

अन्य टेस्ट

ऊपर बताई गई जांचों को अलग-अलग एनवायरमेंट में दोहराएं. उदाहरण के लिए, घर पर या ऑफ़िस में.