nl::Weave::Profiles::WeaveTunnel::WeaveTunnelConnectionMgr

#include <src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.h>

यह क्लास, Weave टनल के कनेक्शन की सभी स्थितियों और उससे जुड़े मैनेजमेंट लॉजिक और फ़ंक्शन को इकट्ठा करती है.

खास जानकारी

इस क्लास के इंस्टेंस का इस्तेमाल, हर उस इंटरफ़ेस पर टनल को मैनेज करने के लिए किया जाएगा जिसके ज़रिए सेवा के लिए Weave टनल मौजूद रहेगा.

कंस्ट्रक्टर और डिस्ट्रक्टर

WeaveTunnelConnectionMgr(void)

सार्वजनिक टाइप

ConnectPolicyCallback)(void *const appState, ReconnectParam &reconnectParam, uint32_t &delayMsec) typedef
void(*
अगली टनल के फिर से कनेक्ट होने से पहले इंतज़ार करने के लिए, समय का अंतराल फ़ेच करने के लिए कॉलबैक.
TunnelConnNotifyReasons{
  kStatus_TunDown = 0,
  kStatus_TunPrimaryUp = 1,
  kStatus_TunPrimaryConnError = 2,
  kStatus_TunBackupConnError = 3,
  kStatus_TunFailoverToBackup = 4,
  kStatus_TunBackupOnlyDown = 5,
  kStatus_TunBackupUp = 6,
  kStatus_TunPrimaryAndBackupUp = 7,
  kStatus_TunPrimaryReconnectRcvd = 8,
  kStatus_TunBackupReconnectRcvd = 9,
  kStatus_TunPrimaryLiveness = 10,
  kStatus_TunBackupLiveness = 11
}
enum
TunnelConnNotifyReasons typedef
TunnelConnectionState{
  kState_NotConnected = 0,
  kState_Connecting = 1,
  kState_ConnectionEstablished = 2,
  kState_TunnelOpen = 3,
  kState_TunnelClosing = 4,
  kState_ReconnectRecvd = 5
}
enum
TunnelConnectionState typedef

सार्वजनिक एट्रिब्यूट

mServiceConnDelayPolicyCallback

सार्वजनिक फ़ंक्शन

Init(WeaveTunnelAgent *tunAgent, TunnelType tunType, SrcInterfaceType srcIntfType, const char *connIntfName)
WeaveTunnelConnectionMgr को शुरू करें.
ServiceTunnelClose(WEAVE_ERROR err)
void
सर्विस टनल बंद करें.
SetInterfaceName(const char *intfName)
void
टनल कनेक्शन के लिए InterfaceName सेट करें.
SetInterfaceType(const SrcInterfaceType srcIntfType)
void
टनल कनेक्शन के लिए, SrcInterfaceType सेट करें.
Shutdown(void)
void
WeaveTunnelConnectionMgr को बंद करें.
StopAndReconnectTunnelConn(ReconnectParam & reconnParam)
void
सर्विस टनल कनेक्शन बंद करें और फिर से कनेक्ट करने की कोशिश करें.
TryConnectingNow(void)
सेवा से कनेक्ट करने की कोशिश करें.

सार्वजनिक स्टैटिक फ़ंक्शन

DefaultReconnectPolicyCallback(void *const appstate, ReconnectParam & reconnectParam, uint32_t & delayMsec)
void
अगली बार सेवा से कनेक्ट करने के लिए, नीति को लागू करने का डिफ़ॉल्ट तरीका.
HandleServiceConnectionClosed(WeaveConnection *con, WEAVE_ERROR conErr)
void
सेवा टीसीपी कनेक्शन बंद होने पर, हैंडलर का इस्तेमाल किया गया.
HandleServiceConnectionComplete(WeaveConnection *con, WEAVE_ERROR conErr)
void
सेवा टीसीपी कनेक्शन पूरा होने पर हैंडलर शुरू किया गया.
RecvdFromService(WeaveConnection *con, const WeaveMessageInfo *msgInfo, PacketBuffer *message)
void
हैंडलर, सेवा टीसीपी कनेक्शन से टनल किए गए आईपीवी6 पैकेट पाने और टनल हेडर के अंदर से रॉ आईपीवी6 पैकेट हटाने के बाद, टनल एंडपॉइंट इंटरफ़ेस पर आगे भेजने की सुविधा देता है.
ServiceMgrStatusHandler(void *appState, WEAVE_ERROR err, StatusReport *report)
void
अगर सर्विस मैनेजर, सेवा के साथ टीसीपी कनेक्शन को स्थापित नहीं कर पाता है, तो हैंडलर को हैंडलर ट्रिगर किया गया.

सार्वजनिक टाइप

ConnectPolicyCallback

void(* ConnectPolicyCallback)(void *const appState, ReconnectParam &reconnectParam, uint32_t &delayMsec)

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

जानकारी
पैरामीटर
[in] appState
SubscriptionClient के शुरू होने के दौरान, ऐप्लिकेशन की स्थिति का पॉइंटर सेट किया गया.
[in] reconnectParam
उन पैरामीटर वाली स्ट्रक्चर जो प्रॉपर्टी को फिर से कनेक्ट करने में हुई देरी के कैलकुलेशन पर असर डालते हैं.
[out] delayMsec
फिर से कनेक्ट करने की अगली कोशिश से पहले इंतज़ार करने का समय, मिलीसेकंड में.

TunnelConnNotifyReasons

 TunnelConnNotifyReasons
प्रॉपर्टी
kStatus_TunBackupConnError

इसका इस्तेमाल यह बताने के लिए किया जाता है कि बैकअप टनल से कनेक्ट करने की कोशिश नाकाम रही या किसी मौजूदा टनल को स्थानीय तौर पर रद्द कर दिया गया या बंद कर दिया गया.

kStatus_TunBackupLiveness

इसका इस्तेमाल, बैकअप वीव टनल में टनल लाइवनेस की जांच के बारे में जानकारी देने के लिए किया जाता है.

kStatus_TunBackupOnlyDown

इसका इस्तेमाल, यह बताने के लिए किया जाता है कि बैकअप टनल काम नहीं कर रही है.

kStatus_TunBackupReconnectRcvd

इसका इस्तेमाल यह बताने के लिए किया जाता है कि सेवा ने बैकअप वीव टनल के लिए, फिर से कनेक्ट करने का अनुरोध किया है.

kStatus_TunBackupUp

इसका इस्तेमाल यह बताने के लिए किया जाता है कि बैकअप वीव टनल चालू है.

kStatus_TunDown

इसका इस्तेमाल यह बताने के लिए किया जाता है कि वीव सुरंग नीचे जा चुकी है.

kStatus_TunFailoverToBackup

इसका इस्तेमाल यह बताने के लिए किया जाता है कि मुख्य टनल काम नहीं कर रही है और बैकअप टनल पर स्विच कर दिया गया है.

kStatus_TunPrimaryAndBackupUp

इसका इस्तेमाल यह बताने के लिए किया जाता है कि प्राइमरी और बैकअप वीव टनल, दोनों चालू हैं.

kStatus_TunPrimaryConnError

इसका इस्तेमाल यह बताने के लिए किया जाता है कि मुख्य टनल से कनेक्ट करने की कोशिश फ़ेल हो गई है या किसी मौजूदा टनल को स्थानीय तौर पर रद्द कर दिया गया है या बंद कर दिया गया है.

kStatus_TunPrimaryLiveness

इसका इस्तेमाल, प्राइमरी वीव टनल पर टनल लाइवनेस की जांच के बारे में जानकारी देने के लिए किया जाता है.

kStatus_TunPrimaryReconnectRcvd

इसका इस्तेमाल यह बताने के लिए किया जाता है कि सेवा ने प्राइमरी वीव टनल के लिए, फिर से कनेक्ट करने का अनुरोध किया है.

kStatus_TunPrimaryUp

इसका इस्तेमाल यह बताने के लिए किया जाता है कि मुख्य वीव टनल ऊपर है.

TunnelConnNotifyReasons

enum nl::Weave::Profiles::WeaveTunnel::WeaveTunnelConnectionMgr::TunnelConnNotifyReasons TunnelConnNotifyReasons

TunnelConnectionState

 TunnelConnectionState
प्रॉपर्टी
kState_Connecting

इसका इस्तेमाल यह बताने के लिए किया जाता है कि वीव टनल कनेक्शन शुरू कर दिया गया है.

kState_ConnectionEstablished

इसका इस्तेमाल यह बताने के लिए किया जाता है कि वीव टनल कनेक्शन चालू है और रास्ते की जानकारी शेयर की जा रही है.

kState_NotConnected

इसका इस्तेमाल यह बताने के लिए किया जाता है कि वीव टनल कनेक्ट नहीं है.

kState_ReconnectRecvd

इसका इस्तेमाल यह बताने के लिए किया जाता है कि सेवा चाहती है कि डायरेक्ट्री लुकअप के बाद, बॉर्डर गेटवे को फिर से कनेक्ट किया जाए.

kState_TunnelClosing

इसका इस्तेमाल यह बताने के लिए किया जाता है कि वीव टनल बंद हो रही है और कनेक्शन को खत्म किया जा रहा है.

kState_TunnelOpen

इसका इस्तेमाल यह बताने के लिए किया जाता है कि वीव टनल खुली है और डेटा ट्रैफ़िक ट्रांज़िट के लिए तैयार है.

TunnelConnectionState

enum nl::Weave::Profiles::WeaveTunnel::WeaveTunnelConnectionMgr::TunnelConnectionState TunnelConnectionState

सार्वजनिक एट्रिब्यूट

mServiceConnDelayPolicyCallback

ConnectPolicyCallback mServiceConnDelayPolicyCallback

सार्वजनिक फ़ंक्शन

शुरू करें

WEAVE_ERROR Init(
  WeaveTunnelAgent *tunAgent,
  TunnelType tunType,
  SrcInterfaceType srcIntfType,
  const char *connIntfName
)

WeaveTunnelConnectionMgr को शुरू करें.

ServiceTunnelClose

void ServiceTunnelClose(
  WEAVE_ERROR err
)

सर्विस टनल बंद करें.

जानकारी
पैरामीटर
[in] err
कॉलर से एक WEAVE_ERROR मिला.

SetInterfaceName

void SetInterfaceName(
  const char *intfName
)

टनल कनेक्शन के लिए InterfaceName सेट करें.

जानकारी
पैरामीटर
[in] tunIntf
सर्विस टनल कनेक्शन सेट करने के लिए InterfaceName.

SetInterfaceType

void SetInterfaceType(
  const SrcInterfaceType srcIntfType
)

टनल कनेक्शन के लिए, SrcInterfaceType सेट करें.

जानकारी
पैरामीटर
[in] srcIntfType
सर्विस टनल कनेक्शन के लिए इंटरफ़ेस का नेटवर्क टेक्नोलॉजी टाइप.

बंद है

void Shutdown(
  void
)

WeaveTunnelConnectionMgr को बंद करें.

StopAndReconnectTunnelConn

void StopAndReconnectTunnelConn(
  ReconnectParam & reconnParam
)

सर्विस टनल कनेक्शन बंद करें और फिर से कनेक्ट करने की कोशिश करें.

जानकारी
पैरामीटर
[in] err
कॉलर से एक WEAVE_ERROR मिला.

TryConnectingNow

WEAVE_ERROR TryConnectingNow(
  void
)

सेवा से कनेक्ट करने की कोशिश करें.

ServiceManager का इस्तेमाल करके या सीधे तौर पर, सेवा से कनेक्ट करने की कोशिश करें.

WeaveTunnelConnectionMgr

 WeaveTunnelConnectionMgr(
  void
)

सार्वजनिक स्टैटिक फ़ंक्शन

DefaultReconnectPolicyCallback

void DefaultReconnectPolicyCallback(
  void *const appstate,
  ReconnectParam & reconnectParam,
  uint32_t & delayMsec
)

अगली बार सेवा से कनेक्ट करने के लिए, नीति को लागू करने का डिफ़ॉल्ट तरीका.

यह नीति, बढ़ती हुई विंडो पर रैंडम टाइमस्लॉट (मिलीसेकंड रिज़ॉल्यूशन के साथ) चुनता है और इसके बाद WEAVE_CONFIG_RATEING_RECONNECT_MAX_FIBONACCI_INDEX तक फ़ाइबोनाशी क्रम को लागू करता है.

जानकारी
पैरामीटर
[in] appState
SubscriptionClient के शुरू होने के दौरान, ऐप्लिकेशन की स्थिति का पॉइंटर सेट किया गया.
[in] reconnectParam
उन पैरामीटर वाली स्ट्रक्चर जो प्रॉपर्टी को फिर से कनेक्ट करने में हुई देरी के कैलकुलेशन पर असर डालते हैं.
[out] delayMsec
फिर से कनेक्ट करने की अगली कोशिश से पहले इंतज़ार करने का समय, मिलीसेकंड में.

HandleServiceConnectionClosed

void HandleServiceConnectionClosed(
  WeaveConnection *con,
  WEAVE_ERROR conErr
)

सेवा टीसीपी कनेक्शन बंद होने पर, हैंडलर का इस्तेमाल किया गया.

अगर mServiceConKeepAlive को 'सही है' पर सेट किया जाता है, तो डिवाइस, सेवा से दोबारा कनेक्ट करने की कोशिश करता है.

बाद में डिवाइस, सेवा के साथ फिर से कनेक्ट करने की कोशिश करता है.

जानकारी
पैरामीटर
[in] con
WeaveConnection ऑब्जेक्ट के लिए पॉइंटर.
[in] conErr
WeaveConnection या WEAVE_NO_ERROR में मौजूद कोई भी गड़बड़ी.

HandleServiceConnectionComplete

void HandleServiceConnectionComplete(
  WeaveConnection *con,
  WEAVE_ERROR conErr
)

सेवा टीसीपी कनेक्शन पूरा होने पर हैंडलर शुरू किया गया.

डिवाइस, इस फ़ंक्शन से सेवा को टनल कंट्रोल निर्देश देना शुरू करता है.

डिवाइस, इस फ़ंक्शन से सेवा को टनल कंट्रोल निर्देश देना शुरू करता है.

जानकारी
पैरामीटर
[in] con
WeaveConnection ऑब्जेक्ट के लिए पॉइंटर.
[in] conErr
WeaveConnection या WEAVE_NO_ERROR में मौजूद कोई भी गड़बड़ी.

RecvdFromService

void RecvdFromService(
  WeaveConnection *con,
  const WeaveMessageInfo *msgInfo,
  PacketBuffer *message
)

हैंडलर, सेवा टीसीपी कनेक्शन से टनल किए गए आईपीवी6 पैकेट पाने और टनल हेडर के अंदर से रॉ आईपीवी6 पैकेट हटाने के बाद, टनल एंडपॉइंट इंटरफ़ेस पर आगे भेजने की सुविधा देता है.

जानकारी
पैरामीटर
[in] con
WeaveConnection ऑब्जेक्ट के लिए पॉइंटर.
[in] msgInfo
WeaveMessageInfo ऑब्जेक्ट के लिए पॉइंटर.
[in] message
PinetBuffer ऑब्जेक्ट का पॉइंटर, जिसमें टनल वाला IPv6 पैकेट है.

ServiceMgrStatusHandler

void ServiceMgrStatusHandler(
  void *appState,
  WEAVE_ERROR err,
  StatusReport *report
)

अगर सर्विस मैनेजर, सेवा के साथ टीसीपी कनेक्शन को स्थापित नहीं कर पाता है, तो हैंडलर को हैंडलर ट्रिगर किया गया.