मेश डाइग्नोस्टिक्स

इस मॉड्यूल में मेश डाइग्नोस्टिक्स के लिए परिभाषाएं और फ़ंक्शन शामिल हैं.

खास जानकारी

मेश डाइग्नोस्टिक्स एपीआई के लिए, OPENTHREAD_CONFIG_MESH_DIAG_ENABLE और OPENTHREAD_FTD ज़रूरी हैं.

टाइपडीफ़

otMeshDiagChildEntry typedef
otMeshDiagQueryChildTable() से चाइल्ड एंट्री की जानकारी दिखाता है.
otMeshDiagChildInfo typedef
यह otMeshDiagDiscoverTopology() का इस्तेमाल करके, Thread मेश में खोजे गए किसी बच्चे की जानकारी दिखाता है.
otMeshDiagChildIp6AddrsCallback)(otError aError, uint16_t aChildRloc16, otMeshDiagIp6AddrIterator *aIp6AddrIterator, void *aContext) typedef
void(*
यह MTD चाइल्ड और IPv6 पतों की सूची के बारे में जानकारी देने के लिए, otMeshDiagQueryChildrenIp6Addrs() का इस्तेमाल किया जाने वाला कॉलबैक दिखाता है.
otMeshDiagChildIterator typedef
किसी राऊटर के बच्चों की सूची को फिर से दोहराने के लिए ओपेक इटरेटर.
otMeshDiagDiscoverCallback)(otError aError, otMeshDiagRouterInfo *aRouterInfo, void *aContext) typedef
void(*
पॉइंटर टाइप उस कॉलबैक को दिखाता है जिसका इस्तेमाल otMeshDiagDiscoverTopology(), खोजे गए राऊटर के बारे में जानकारी देने के लिए करता है.
otMeshDiagDiscoverConfig typedef
मेश टोपोलॉजी का पता लगाते समय इस्तेमाल किए गए कॉन्फ़िगरेशन के सेट के बारे में बताता है, जिससे पता चलता है कि किन आइटम को खोजना है.
otMeshDiagIp6AddrIterator typedef
किसी राऊटर के आईपीवी6 पते की सूची बदलने के लिए, ओपेक इटरेटर.
otMeshDiagQueryChildTableCallback)(otError aError, const otMeshDiagChildEntry *aChildEntry, void *aContext) typedef
void(*
यह उस कॉलबैक को दिखाता है जिसका इस्तेमाल otMeshDiagQueryChildTable(), चाइल्ड टेबल एंट्री के बारे में जानकारी देने के लिए करता है.
otMeshDiagQueryRouterNeighborTableCallback)(otError aError, const otMeshDiagRouterNeighborEntry *aNeighborEntry, void *aContext) typedef
void(*
यह उस कॉलबैक को दिखाता है जिसका इस्तेमाल otMeshDiagQueryRouterNeighborTable(), पड़ोसी के राऊटर टेबल की एंट्री के बारे में जानकारी देने के लिए करता है.
otMeshDiagRouterInfo typedef
यह Thread मेश में मौजूद उस राऊटर की जानकारी दिखाता है जिसे otMeshDiagDiscoverTopology() का इस्तेमाल करके खोजा गया था.
otMeshDiagRouterNeighborEntry typedef
यह डिवाइस, otMeshDiagQueryRouterNeighborTable() से राऊटर पड़ोसी की एंट्री की जानकारी दिखाता है.

फ़ंक्शन

otMeshDiagCancel(otInstance *aInstance)
void
किसी मौजूदा टोपोलॉजी खोज को न होने पर उसे रद्द करता है, नहीं तो कोई कार्रवाई नहीं करता.
otMeshDiagDiscoverTopology(otInstance *aInstance, const otMeshDiagDiscoverConfig *aConfig, otMeshDiagDiscoverCallback aCallback, void *aContext)
नेटवर्क टोपोलॉजी खोज शुरू करता है.
otMeshDiagGetNextChildInfo(otMeshDiagChildIterator *aIterator, otMeshDiagChildInfo *aChildInfo)
किसी राऊटर के खोजे गए चिल्ड्रेन के ज़रिए फिर से गतिविधि करता है.
otMeshDiagGetNextIp6Address(otMeshDiagIp6AddrIterator *aIterator, otIp6Address *aIp6Address)
यह किसी राऊटर या MTD चाइल्ड के खोजे गए IPv6 पतों के ज़रिए दोहराता है.
otMeshDiagQueryChildTable(otInstance *aInstance, uint16_t aRloc16, otMeshDiagQueryChildTableCallback aCallback, void *aContext)
दिए गए राऊटर के लिए चाइल्ड टेबल से जुड़ी क्वेरी शुरू करता है.
otMeshDiagQueryChildrenIp6Addrs(otInstance *aInstance, uint16_t aRloc16, otMeshDiagChildIp6AddrsCallback aCallback, void *aContext)
यह अनुमति मिलने पर, माता-पिता को क्वेरी भेजी जाती है, ताकि MTD चिल्ड्रेन के सभी आईपीवी6 पतों को वापस लाया जा सके.
otMeshDiagQueryRouterNeighborTable(otInstance *aInstance, uint16_t aRloc16, otMeshDiagQueryRouterNeighborTableCallback aCallback, void *aContext)
दिए गए राऊटर की राऊटर पड़ोसी टेबल के लिए क्वेरी शुरू करता है.

संरचना

otMeshDiagChildEntry

otMeshDiagQueryChildTable() से चाइल्ड एंट्री की जानकारी दिखाता है.

otMeshDiagChildInfo

यह otMeshDiagDiscoverTopology() का इस्तेमाल करके, Thread मेश में खोजे गए किसी बच्चे की जानकारी दिखाता है.

otMeshDiagDiscoverConfig

मेश टोपोलॉजी का पता लगाते समय इस्तेमाल किए गए कॉन्फ़िगरेशन के सेट के बारे में बताता है, जिससे पता चलता है कि किन आइटम को खोजना है.

otMeshDiagRouterInfo

यह Thread मेश में मौजूद उस राऊटर की जानकारी दिखाता है जिसे otMeshDiagDiscoverTopology() का इस्तेमाल करके खोजा गया था.

otMeshDiagRouterNeighborEntry

यह डिवाइस, otMeshDiagQueryRouterNeighborTable() से राऊटर पड़ोसी की एंट्री की जानकारी दिखाता है.

टाइपडीफ़

otMeshDiagChildEntry

struct otMeshDiagChildEntry otMeshDiagChildEntry

otMeshDiagQueryChildTable() से चाइल्ड एंट्री की जानकारी दिखाता है.

mSupportsErrRate से पता चलता है कि गड़बड़ी को ट्रैक करने की सुविधा काम करती है या नहीं. साथ ही, mFrameErrorRate और mMessageErrorRate की वैल्यू मान्य हैं. फ़्रेम की गड़बड़ी की दर, MAC लेयर पर फ़्रेम tx गड़बड़ियों (बच्चे की ओर) को ट्रैक करती है, जबकि IPv6 मैसेज हटाए जाने पर mMessageErrorRate, IPv6 मैसेज की गड़बड़ी की दर (MAC लेयर के ऊपर और MAC फिर से कोशिश करने के बाद) को ट्रैक करता है. उदाहरण के लिए, अगर मैसेज बड़ा है और उसके लिए 6LoWPAN फ़्रैगमेंटेशन की ज़रूरत है, तो मैसेज tx को तब फ़ेल माना जाएगा, जब उसका कोई फ़्रैगमेंट फ़्रेम tx काम नहीं कर रहा हो. उदाहरण के लिए, कभी भी हैक नहीं किया गया.

otMeshDiagChildInfo

struct otMeshDiagChildInfo otMeshDiagChildInfo

यह otMeshDiagDiscoverTopology() का इस्तेमाल करके, Thread मेश में खोजे गए किसी बच्चे की जानकारी दिखाता है.

otMeshDiagChildIp6AddrsCallback

void(* otMeshDiagChildIp6AddrsCallback)(otError aError, uint16_t aChildRloc16, otMeshDiagIp6AddrIterator *aIp6AddrIterator, void *aContext)

यह MTD चाइल्ड और IPv6 पतों की सूची के बारे में जानकारी देने के लिए, otMeshDiagQueryChildrenIp6Addrs() का इस्तेमाल किया जाने वाला कॉलबैक दिखाता है.

aError के OT_ERROR_PENDING होने पर, इससे पता चलता है कि यहां और भी बच्चे हैं और कॉलबैक फिर से शुरू किया जाएगा.

ब्यौरा
पैरामीटर
[in] aError
OT_ERROR_PENDING से पता चलता है कि टेबल में बच्चों की संख्या ज़्यादा है. OT_ERROR_NONE बताता है कि टेबल पूरी हो गई है. OT_ERROR_response_TIMEOUT जवाब के लिए इंतज़ार करने का समय खत्म हो गया.
[in] aChildRloc16
बच्चे का RLOC16. 0xfffe का इस्तेमाल OT_ERROR_RESPONSE_TIMEOUT को किया गया.
[in] aIp6AddrIterator
otMeshDiagGetNextIp6Address() का इस्तेमाल करके, aRloc वाले बच्चे के आईपीवी6 पतों को देखने के लिए एक पुनरावर्तक. OT_ERROR_RESPONSE_TIMEOUT पर NULL पर सेट करें.
[in] aContext
ऐप्लिकेशन-विशिष्ट संदर्भ.

otMeshDiagChildIterator

struct otMeshDiagChildIterator otMeshDiagChildIterator

किसी राऊटर के बच्चों की सूची को फिर से दोहराने के लिए ओपेक इटरेटर.

इस तरह के इंस्टेंस के पॉइंटर otMeshDiagRouterInfo में दिए गए हैं.

otMeshDiagDiscoverCallback

void(* otMeshDiagDiscoverCallback)(otError aError, otMeshDiagRouterInfo *aRouterInfo, void *aContext)

पॉइंटर टाइप उस कॉलबैक को दिखाता है जिसका इस्तेमाल otMeshDiagDiscoverTopology(), खोजे गए राऊटर के बारे में जानकारी देने के लिए करता है.

जब aError OT_ERROR_PENDING होता है, तो इससे पता चलता है कि खोज अभी पूरी नहीं हुई है. साथ ही, ज़्यादा राऊटर मिलेंगे और कॉलबैक फिर से शुरू किया जाएगा.

ब्यौरा
पैरामीटर
[in] aError
OT_ERROR_PENDING बताता है कि अभी और राऊटर खोजे जाने हैं. OT_ERROR_NONE बताता है कि यह आखिरी राऊटर है और मेश खोज की गई है. OT_ERROR_ERROR_TIMEOUT एक या ज़्यादा राऊटर से जवाब के इंतज़ार का समय खत्म हुआ.
[in] aRouterInfo
खोजी गई राऊटर की जानकारी (अगर aError OT_ERROR_password_TIMEOUT है, तो यह शून्य हो सकती है).
[in] aContext
ऐप्लिकेशन-विशिष्ट संदर्भ.

otMeshDiagDiscoverConfig

struct otMeshDiagDiscoverConfig otMeshDiagDiscoverConfig

मेश टोपोलॉजी का पता लगाते समय इस्तेमाल किए गए कॉन्फ़िगरेशन के सेट के बारे में बताता है, जिससे पता चलता है कि किन आइटम को खोजना है.

otMeshDiagIp6AddrIterator

struct otMeshDiagIp6AddrIterator otMeshDiagIp6AddrIterator

किसी राऊटर के आईपीवी6 पते की सूची बदलने के लिए, ओपेक इटरेटर.

इस तरह के इंस्टेंस के पॉइंटर otMeshDiagRouterInfo में दिए गए हैं.

otMeshDiagQueryChildTableCallback

void(* otMeshDiagQueryChildTableCallback)(otError aError, const otMeshDiagChildEntry *aChildEntry, void *aContext)

यह उस कॉलबैक को दिखाता है जिसका इस्तेमाल otMeshDiagQueryChildTable(), चाइल्ड टेबल एंट्री के बारे में जानकारी देने के लिए करता है.

aError के OT_ERROR_PENDING होने पर, इससे पता चलता है कि टेबल में अब भी ज़्यादा एंट्री हैं और कॉलबैक को फिर से शुरू किया जाएगा.

ब्यौरा
पैरामीटर
[in] aError
OT_ERROR_PENDING से पता चलता है कि टेबल में और एंट्री मौजूद हैं. OT_ERROR_NONE बताता है कि टेबल पूरी हो गई है. OT_ERROR_response_TIMEOUT जवाब के लिए इंतज़ार करने का समय खत्म हो गया.
[in] aChildEntry
चाइल्ड एंट्री (अगर aError OT_ERROR_ERROR_TIMEOUT या OT_ERROR_NONE पर है, तो यह शून्य हो सकती है).
[in] aContext
ऐप्लिकेशन-विशिष्ट संदर्भ.

otMeshDiagQueryRouterNeighborTableCallback

void(* otMeshDiagQueryRouterNeighborTableCallback)(otError aError, const otMeshDiagRouterNeighborEntry *aNeighborEntry, void *aContext)

यह उस कॉलबैक को दिखाता है जिसका इस्तेमाल otMeshDiagQueryRouterNeighborTable(), पड़ोसी के राऊटर टेबल की एंट्री के बारे में जानकारी देने के लिए करता है.

aError के OT_ERROR_PENDING होने पर, इससे पता चलता है कि टेबल में अब भी ज़्यादा एंट्री हैं और कॉलबैक को फिर से शुरू किया जाएगा.

ब्यौरा
पैरामीटर
[in] aError
OT_ERROR_PENDING से पता चलता है कि टेबल में और एंट्री मौजूद हैं. OT_ERROR_NONE बताता है कि टेबल पूरी हो गई है. OT_ERROR_response_TIMEOUT जवाब के लिए इंतज़ार करने का समय खत्म हो गया.
[in] aNeighborEntry
पड़ोसी एंट्री (अगर aError POST_TIMEOUT या NONE है, तो यह शून्य हो सकती है).
[in] aContext
ऐप्लिकेशन-विशिष्ट संदर्भ.

otMeshDiagRouterInfo

struct otMeshDiagRouterInfo otMeshDiagRouterInfo

यह Thread मेश में मौजूद उस राऊटर की जानकारी दिखाता है जिसे otMeshDiagDiscoverTopology() का इस्तेमाल करके खोजा गया था.

otMeshDiagRouterNeighborEntry

struct otMeshDiagRouterNeighborEntry otMeshDiagRouterNeighborEntry

यह डिवाइस, otMeshDiagQueryRouterNeighborTable() से राऊटर पड़ोसी की एंट्री की जानकारी दिखाता है.

mSupportsErrRate से पता चलता है कि गड़बड़ी को ट्रैक करने की सुविधा काम करती है या नहीं. साथ ही, mFrameErrorRate और mMessageErrorRate की वैल्यू मान्य हैं. फ़्रेम की गड़बड़ी की दर, MAC लेयर पर फ़्रेम tx गड़बड़ियों (बच्चे की ओर) को ट्रैक करती है, जबकि IPv6 मैसेज हटाए जाने पर mMessageErrorRate, IPv6 मैसेज की गड़बड़ी की दर (MAC लेयर के ऊपर और MAC फिर से कोशिश करने के बाद) को ट्रैक करता है. उदाहरण के लिए, अगर मैसेज बड़ा है और उसके लिए 6LoWPAN फ़्रैगमेंटेशन की ज़रूरत है, तो मैसेज tx को तब फ़ेल माना जाएगा, जब उसका कोई फ़्रैगमेंट फ़्रेम tx काम नहीं कर रहा हो. उदाहरण के लिए, कभी भी हैक नहीं किया गया.

फ़ंक्शन

otMeshDiagCancel

void otMeshDiagCancel(
  otInstance *aInstance
)

किसी मौजूदा टोपोलॉजी खोज को न होने पर उसे रद्द करता है, नहीं तो कोई कार्रवाई नहीं करता.

डिस्कवरी की जारी प्रोसेस रद्द होने पर, otMeshDiagDiscoverTopology() से मिले कॉलबैक को कॉल नहीं किया जाएगा.

otMeshDiagDiscoverTopology

otError otMeshDiagDiscoverTopology(
  otInstance *aInstance,
  const otMeshDiagDiscoverConfig *aConfig,
  otMeshDiagDiscoverCallback aCallback,
  void *aContext
)

नेटवर्क टोपोलॉजी खोज शुरू करता है.

ब्यौरा
पैरामीटर
[in] aInstance
OpenThread इंस्टेंस.
[in] aConfig
खोजने के लिए इस्तेमाल किया जाने वाला कॉन्फ़िगरेशन (उदाहरण, कौनसे आइटम खोजने हैं).
[in] aCallback
खोजे गए राऊटर की रिपोर्ट करने के लिए कॉलबैक.
[in] aContext
aCallback में पास करने के लिए कॉन्टेक्स्ट.
रिटर्न वैल्यू
OT_ERROR_NONE
नेटवर्क टोपोलॉजी खोज सफलतापूर्वक शुरू हो गई.
OT_ERROR_BUSY
खोज से जुड़ा पिछला अनुरोध अब भी जारी है.
OT_ERROR_INVALID_STATE
डिवाइस अटैच नहीं है.
OT_ERROR_NO_BUFS
डिस्कवरी मैसेज भेजने के लिए बफ़र तय नहीं किया जा सका.

otMeshDiagGetNextChildInfo

otError otMeshDiagGetNextChildInfo(
  otMeshDiagChildIterator *aIterator,
  otMeshDiagChildInfo *aChildInfo
)

किसी राऊटर के खोजे गए चिल्ड्रेन के ज़रिए फिर से गतिविधि करता है.

इस फ़ंक्शन को otMeshDiagDiscoverCallback() कॉलबैक से इस्तेमाल किया जाना चाहिए. साथ ही, कॉलबैक को इनपुट के तौर पर दिए गए aRouterInfo स्ट्रक्चर से mChildIterator का इस्तेमाल किया जाना चाहिए.

ब्यौरा
पैरामीटर
[in,out] aIterator
इस्तेमाल किया जाने वाला पता इटरेटर.
[out] aChildInfo
बच्चे की जानकारी (अगर कोई है) देने के लिए पॉइंटर.
रिटर्न वैल्यू
OT_ERROR_NONE
अगले बच्चे को वापस लाया गया. aChildInfo और aIterator अपडेट हो गई हैं.
OT_ERROR_NOT_FOUND
कोई और बच्चा नहीं है. सूची के अंत में पहुंच गए हैं.

otMeshDiagGetNextIp6Address

otError otMeshDiagGetNextIp6Address(
  otMeshDiagIp6AddrIterator *aIterator,
  otIp6Address *aIp6Address
)

यह किसी राऊटर या MTD चाइल्ड के खोजे गए IPv6 पतों के ज़रिए दोहराता है.

इस्तेमाल किया जाना चाहिए

  • otMeshDiagDiscoverCallback() कॉलबैक से और कॉलबैक को इनपुट के तौर पर दिए गए aRouterInfo स्ट्रक्चर से mIp6AddrIterator का इस्तेमाल करें या
  • दिए गए aIp6AddrIterator के साथ कॉलबैक otMeshDiagChildIp6AddrsCallback() से.

ब्यौरा
पैरामीटर
[in,out] aIterator
इस्तेमाल किया जाने वाला पता इटरेटर.
[out] aIp6Address
अगला IPv6 पता (अगर कोई हो) लौटाने के लिए पॉइंटर.
रिटर्न वैल्यू
OT_ERROR_NONE
अगला पता मिल गया है. aIp6Address और aIterator अपडेट हो गई हैं.
OT_ERROR_NOT_FOUND
और पता नहीं. सूची के अंत में पहुंच गए हैं.

otMeshDiagQueryChildTable

otError otMeshDiagQueryChildTable(
  otInstance *aInstance,
  uint16_t aRloc16,
  otMeshDiagQueryChildTableCallback aCallback,
  void *aContext
)

दिए गए राऊटर के लिए चाइल्ड टेबल से जुड़ी क्वेरी शुरू करता है.

ब्यौरा
पैरामीटर
[in] aInstance
OpenThread इंस्टेंस.
[in] aRloc16
क्वेरी करने के लिए राऊटर का RLOC16.
[in] aCallback
क्वेरी की गई चाइल्ड टेबल को रिपोर्ट करने के लिए कॉलबैक.
[in] aContext
aCallback में पास करने के लिए कॉन्टेक्स्ट.
रिटर्न वैल्यू
OT_ERROR_NONE
क्वेरी शुरू हो गई.
OT_ERROR_BUSY
पिछला खोज या क्वेरी अनुरोध अब भी जारी है.
OT_ERROR_INVALID_ARGS
aRloc16 एक मान्य राऊटर नहीं है. RLOC16
OT_ERROR_INVALID_STATE
डिवाइस अटैच नहीं है.
OT_ERROR_NO_BUFS
क्वेरी के मैसेज भेजने के लिए बफ़र तय नहीं किया जा सका.

otMeshDiagQueryChildrenIp6Addrs

otError otMeshDiagQueryChildrenIp6Addrs(
  otInstance *aInstance,
  uint16_t aRloc16,
  otMeshDiagChildIp6AddrsCallback aCallback,
  void *aContext
)

यह अनुमति मिलने पर, माता-पिता को क्वेरी भेजी जाती है, ताकि MTD चिल्ड्रेन के सभी आईपीवी6 पतों को वापस लाया जा सके.

ब्यौरा
पैरामीटर
[in] aInstance
OpenThread इंस्टेंस.
[in] aRloc16
क्वेरी करने के लिए माता-पिता का RLOC16.
[in] aCallback
क्वेरी की गई चाइल्ड IPv6 पता सूची के लिए कॉलबैक.
[in] aContext
aCallback में पास करने के लिए कॉन्टेक्स्ट.
रिटर्न वैल्यू
OT_ERROR_NONE
क्वेरी शुरू हो गई.
OT_ERROR_BUSY
पिछला खोज या क्वेरी अनुरोध अब भी जारी है.
OT_ERROR_INVALID_ARGS
aRloc16, एक मान्य RLOC16 नहीं है.
OT_ERROR_INVALID_STATE
डिवाइस अटैच नहीं है.
OT_ERROR_NO_BUFS
क्वेरी के मैसेज भेजने के लिए बफ़र तय नहीं किया जा सका.

otMeshDiagQueryRouterNeighborTable

otError otMeshDiagQueryRouterNeighborTable(
  otInstance *aInstance,
  uint16_t aRloc16,
  otMeshDiagQueryRouterNeighborTableCallback aCallback,
  void *aContext
)

दिए गए राऊटर की राऊटर पड़ोसी टेबल के लिए क्वेरी शुरू करता है.

ब्यौरा
पैरामीटर
[in] aInstance
OpenThread इंस्टेंस.
[in] aRloc16
क्वेरी करने के लिए राऊटर का RLOC16.
[in] aCallback
क्वेरी की गई टेबल को रिपोर्ट करने के लिए कॉलबैक.
[in] aContext
aCallback में पास करने के लिए कॉन्टेक्स्ट.
रिटर्न वैल्यू
OT_ERROR_NONE
क्वेरी शुरू हो गई.
OT_ERROR_BUSY
पिछला खोज या क्वेरी अनुरोध अब भी जारी है.
OT_ERROR_INVALID_ARGS
aRloc16 एक मान्य राऊटर नहीं है. RLOC16
OT_ERROR_INVALID_STATE
डिवाइस अटैच नहीं है.
OT_ERROR_NO_BUFS
क्वेरी के मैसेज भेजने के लिए बफ़र तय नहीं किया जा सका.

मैक्रो

OT_MESH_DIAG_VERSION_UNKNOWN

 OT_MESH_DIAG_VERSION_UNKNOWN 0xffff

इससे पता चलता है कि Thread का वर्शन उपलब्ध नहीं है.

mVersion प्रॉपर्टी के लिए otMeshDiagRouterInfo में इसका इस्तेमाल तब किया जाता है, जब डिवाइस का वर्शन उपलब्ध न हो. इससे पता चलता है कि डिवाइस पर 1.3.0 (वर्शन 4) या इससे पहले का वर्शन चल सकता है.

संसाधन

OpenThread API के रेफ़रंस के विषय, सोर्स कोड से मिलते हैं. यह सोर्स GitHub पर उपलब्ध है. ज़्यादा जानकारी या हमारे दस्तावेज़ में योगदान देने के लिए, संसाधन देखें.