किसी भी OpenThread नोड पर सिग्नल जैमिंग की पहचान करने का तरीका कॉन्फ़िगर करने के लिए, Jam की पहचान करने की सुविधा चालू करें.
यह सुविधा उन डिवाइस सर्टिफ़िकेशन के लिए फ़ायदेमंद है जिनके लिए, किसी खास चैनल पर सिग्नल जैमिंग की पहचान करना ज़रूरी होता है. इसे हर तरह के सर्टिफ़िकेशन की ज़रूरतों को पूरा करने के लिए कॉन्फ़िगर किया जा सकता है.
यह सुविधा कैसे काम करती है
Jam की पहचान करने वाली सुविधा, तय समय के दौरान किसी नोड के आरएसएसआई (सिग्नल सिग्नल इंडिकेटर) को मॉनिटर करती है. इससे, यह तय होता है कि चैनल जाम हुआ है या नहीं.
Jam का पता लगाने की सुविधा चालू होने पर:
- Jam की पहचान करने की स्थिति
false
पर सेट है. - नोड हर दूसरे सेकंड में आरएसएसआई के कई सैंपल सैंपल दिखाता है.
- अगर उस एक सेकंड के अंतराल पर आरएसएसआई, हर नमूने के लिए कॉन्फ़िगर किए गए आरएसएसआई थ्रेशोल्ड से ऊपर बना रहता है, तो एक सेकंड का अंतराल जाम माना जाता है.
- अगर एक सेकंड के अंतराल के लिए, Jam फ़ाइलों की कुल संख्या जाम है और यह कॉन्फ़िगर की गई व्यस्त अवधि सेकंड की कुल संख्या से ज़्यादा या बराबर है, तो उस समय के Jam का पता लगाने की स्थिति
true
पर सेट है. - अगर एक सेकंड के अंतराल के लिए, 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 को आरएसएसआई थ्रेशोल्ड कॉन्फ़िगर किया गया था, तो यह बिट मैप इस ग्राफ़ से दिखाया जा सकता है:

चालू करने का तरीका
यह सुविधा डिफ़ॉल्ट रूप से बंद रहती है.
इसके हिसाब से
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 प्रोटोकॉल या wpanctl
wpantund
नेटवर्क लाइन को-प्रोसेसर (एनसीपी) मैनेजमेंट के लिए, कमांड लाइन टूल के ज़रिए कॉन्फ़िगर किए जा सकते हैं. डिफ़ॉल्ट मान तब लागू किए जाते हैं, जब सुविधा को
बाद के कॉन्फ़िगरेशन के बिना चालू किया जाता है.
इन पैरामीटर का इस्तेमाल करके, इस सुविधा को अपनी पसंद के मुताबिक बनाएं:
पैरामीटर | |||||
---|---|---|---|---|---|
आरएसएसआई थ्रेशोल्ड |
|
||||
पहचान स्क्रीन |
|
||||
व्यस्त समय |
|
एपीआई
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 |
|
||||
JamDetection:Enable |
|
||||
JamDetection:RssiThreshold |
|
||||
JamDetection:Window |
|
||||
JamDetection:BusyPeriod |
|
||||
JamDetection:Debug:HistoryBitmap |
|
उदाहरण के लिए, किसी एनसीपी के लिए 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 का डेटा स्टोर करने की जगह देखें.