Jam की पहचान करें

GitHub पर सोर्स देखें

किसी भी OpenThread नोड पर सिग्नल जैमिंग की पहचान करने का तरीका कॉन्फ़िगर करने के लिए, Jam की पहचान करने की सुविधा चालू करें.

यह सुविधा उन डिवाइस सर्टिफ़िकेशन के लिए फ़ायदेमंद है जिनके लिए, किसी खास चैनल पर सिग्नल जैमिंग की पहचान करना ज़रूरी होता है. इसे हर तरह के सर्टिफ़िकेशन की ज़रूरतों को पूरा करने के लिए कॉन्फ़िगर किया जा सकता है.

यह सुविधा कैसे काम करती है

Jam की पहचान करने वाली सुविधा, तय समय के दौरान किसी नोड के आरएसएसआई (सिग्नल सिग्नल इंडिकेटर) को मॉनिटर करती है. इससे, यह तय होता है कि चैनल जाम हुआ है या नहीं.

Jam का पता लगाने की सुविधा चालू होने पर:

  1. Jam की पहचान करने की स्थिति false पर सेट है.
  2. नोड हर दूसरे सेकंड में आरएसएसआई के कई सैंपल सैंपल दिखाता है.
  3. अगर उस एक सेकंड के अंतराल पर आरएसएसआई, हर नमूने के लिए कॉन्फ़िगर किए गए आरएसएसआई थ्रेशोल्ड से ऊपर बना रहता है, तो एक सेकंड का अंतराल जाम माना जाता है.
  4. अगर एक सेकंड के अंतराल के लिए, Jam फ़ाइलों की कुल संख्या जाम है और यह कॉन्फ़िगर की गई व्यस्त अवधि सेकंड की कुल संख्या से ज़्यादा या बराबर है, तो उस समय के Jam का पता लगाने की स्थिति true पर सेट है.
  5. अगर एक सेकंड के अंतराल के लिए, Jam फ़ाइलों की कुल संख्या जाम है. यह संख्या, कॉन्फ़िगर किए गए बीज़ पीरियड सेकंड की कुल संख्या से कम होती है. यह संख्या, कॉन्फ़िगर की गई पहचान वाली विंडो सेकंड में किसी भी समय शामिल होती है. इस दौरान, उस दौरान इस तरह की गड़बड़ी का पता लगाने की सुविधा को false पर सेट किया जाता है.

इतिहास बिटमैप

OpenThread API और wpantund प्रॉपर्टी में, पिछले 63 सेकंड का बिटमैप, डेटा वापस पाने के लिए उपलब्ध होता है. यह बिट मैप बताता है कि क्या आरएसएसआई ने पिछले 63 सेकंड में, हर बार आरएसएसआई को कॉन्फ़िगर किए गए थ्रेशोल्ड को पार किया था.

उदाहरण के लिए, आपको यह बिट मैप मिल सकता है:

0xC248068C416E7FF0

जब भी आरएसएसआई पिछले 63 सेकंड में कॉन्फ़िगर की गई आरएसएसआई सीमा से ऊपर चला जाता है, तो वह बाइनरी में बदल जाता है:

11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000

अगर पहचान विंडो को 16 सेकंड पर सेट किया जाता है और व्यस्त अवधि 8 सेकंड पर सेट होती है, तो Jam की पहचान 51 सेकंड में true हो जाती है. यह पहली स्थिति है जब आरएसएसआई की सीमा पिछले 16 सेकंड में कम से कम आठ सेकंड में बढ़ाई गई हो. इस उदाहरण में, Jam की पहचान करने वाला स्टेट अगले 13 सेकंड तक true बना रहेगा.

11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000
                                      [00001 01101110 011] = 8 in 16

अगर -45 dBm को आरएसएसआई थ्रेशोल्ड कॉन्फ़िगर किया गया था, तो यह बिट मैप इस ग्राफ़ से दिखाया जा सकता है:

OT Jam पहचान

चालू करने का तरीका

यह सुविधा डिफ़ॉल्ट रूप से बंद रहती है.

इसके हिसाब से

Jam की पहचान करने की सुविधा चालू करने के लिए, OpenOpen थ्रेड बनानेopenthread/src/core/config/openthread-core-default-config.h से पहले, openthread/src/core/config/openthread-core-default-config.h फ़ाइल में OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE को 1 के तौर पर तय करें:

#ifndef OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
#define OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE 1
#endif

विकल्प के हिसाब से

इसके अलावा, OpenThread बनाते समय, -DOT_JAM_DETECTION=ON बिल्ड विकल्प का इस्तेमाल करें:

./script/build -DOT_JAM_DETECTION=ON

पैरामीटर

Jam की पहचान करने वाले पैरामीटर, सिर्फ़ OpenThread API, Spinel प्रोटोकॉल या wpanctlwpantund नेटवर्क लाइन को-प्रोसेसर (एनसीपी) मैनेजमेंट के लिए, कमांड लाइन टूल के ज़रिए कॉन्फ़िगर किए जा सकते हैं. डिफ़ॉल्ट मान तब लागू किए जाते हैं, जब सुविधा को बाद के कॉन्फ़िगरेशन के बिना चालू किया जाता है.

इन पैरामीटर का इस्तेमाल करके, इस सुविधा को अपनी पसंद के मुताबिक बनाएं:

पैरामीटर
आरएसएसआई थ्रेशोल्ड
डिफ़ॉल्ट वैल्यू
0 डीबीएम
Description
चैनल के जाम होने पर विचार करने के लिए dBm में थ्रेशोल्ड आरएसआई लेवल बताता है.
पहचान स्क्रीन
डिफ़ॉल्ट वैल्यू
63 सेकंड
Description
यह विंडो, सेकंड में यह बताती है कि सिग्नल जैमिंग की जांच करनी है या नहीं. रेंज: 1 से 63.
व्यस्त समय
डिफ़ॉल्ट वैल्यू
63 सेकंड
Description
डिटेक्शन विंडो में कुल सेकंड की संख्या तय करता है. इस दौरान, आरएसएसआई, Jam की पहचान करने को ट्रिगर करने के लिए आरएसएसआई की सीमा से ज़्यादा होना चाहिए. पहचान विंडो से छोटी होनी चाहिए. रेंज: 1 से 63.

एपीआई

OpenThread

अपने OpenThread ऐप्लिकेशन में, Jam की पहचान करने की सुविधा मैनेज करने के लिए, Jam Detection API का इस्तेमाल करें. OpenThread एपीआई आपको ये सुविधाएं देता है:

  • सुविधा को चालू या बंद करें
  • Jam की पहचान करने की स्थिति देखें
  • सभी पैरामीटर मैनेज करें
  • Jam की पहचान करने के मौजूदा इतिहास का बिट मैप फिर से पाएं
  • Jam का पता चलने पर, कॉलबैक फ़ंक्शन रजिस्टर करें

स्पाइन

Spinel प्रोटोकॉल, होस्ट डिवाइस को एनसीपी के साथ सीधे बातचीत करने की सुविधा देता है. यह प्रोटोकॉलopenthread/src/lib/spinel/spinel.h में Jam की पहचान करने वाली प्रॉपर्टी दिखाता है जो नीचे दी गई सुविधाएं उपलब्ध कराती हैं:

  • सुविधा को चालू या बंद करें
  • Jam की पहचान करने की स्थिति देखें
  • सभी पैरामीटर मैनेज करें
  • Jam की पहचान करने के मौजूदा इतिहास का बिट मैप फिर से पाएं

सीएलआई

OpenThread

इस सुविधा से जुड़ा कोई OpenThread सीएलआई निर्देश नहीं है.

Wpantund

OpenThread एनसीपी कॉन्फ़िगरेशन के लिए, Jam की पहचान करने की सुविधा मैनेज करने के लिए, wpanctl सीएलआई का इस्तेमाल करें. एनसीपी रीसेट होने पर wpantund सभी Jam पहचान कॉन्फ़िगरेशन को बनाए रखता है.

wpanctl से इन wpantund प्रॉपर्टी का ऐक्सेस मिलता है:

प्रॉपर्टी
JamDetection:Status
फ़ॉर्मैट
बूलियन
Description
रीड ओनली. Jam की पहचान करने की स्थिति. इससे पता चलता है कि फ़िलहाल सिग्नल जाम का पता चला है या नहीं.
JamDetection:Enable
फ़ॉर्मैट
बूलियन
Description
Jam की पहचान करने की सुविधा चालू या बंद करें.
JamDetection:RssiThreshold
फ़ॉर्मैट
dBm
Description
यह dBm में थ्रेशोल्ड आरएसएसआई लेवल के बारे में बताता है, जिसके ऊपर चैनल को ब्लॉक करना है.
JamDetection:Window
फ़ॉर्मैट
सेकंड
Description
यह विंडो, सेकंड में यह बताती है कि सिग्नल जैमिंग की जांच करनी है या नहीं. रेंज: 1 से 63.
JamDetection:BusyPeriod
फ़ॉर्मैट
सेकंड
Description
यह JamDetection:Window में कुल सेकंड की संख्या बताता है, जिसमें Jam की पहचान करने के लिए आरएसएसआई को JamDetection:RssiThreshold से ज़्यादा होना चाहिए. JamDetection:Window से छोटी होनी चाहिए. रेंज: 1 से 63.
JamDetection:Debug:HistoryBitmap
फ़ॉर्मैट
64-बिट वैल्यू
Description
यह निगरानी और डीबग करने के मकसद से, Jam की पहचान की स्थिति के इतिहास के बारे में जानकारी देता है.

उदाहरण के लिए, किसी एनसीपी के लिए Jam की पहचान करने की स्थिति पाने के लिए:

sudo wpanctl getprop JamDetection:Status
JamDetection:Status = false

किसी NCP पर Jam की पहचान आरएसएसआई की सीमा को -45 dBm पर सेट करने के लिए:

sudo wpanctl setprop JamDetection:RssiThreshold -45
sudo wpanctl getprop JamDetection:RssiThreshold
JamDetection:RssiThreshold = -45

wpantund प्रॉपर्टी के बारे में ज़्यादा जानकारी पाने के लिए, wpantund GitHub का डेटा स्टोर करने की जगह देखें.