nl::Weave::Profiles::WeaveTunnel::WeaveTunnelAgent

खास जानकारी

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

WeaveTunnelAgent(void)

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

AgentState{
  kState_NotInitialized = 0,
  kState_Initialized_NoTunnel = 1,
  kState_PrimaryTunModeEstablished = 2,
  kState_BkupOnlyTunModeEstablished = 3,
  kState_PrimaryAndBkupTunModeEstablished = 4
}
enum
सेवा से उसके कनेक्शन के संबंध में टनल एजेंट की स्थितियां.
AgentState टाइपडिफ़
सेवा से उसके कनेक्शन के संबंध में टनल एजेंट की स्थितियां.
OnServiceTunnelReconnectNotifyFunct)(TunnelType tunType, const char *reconnectHost, const uint16_t reconnectPort, void *appCtxt) टाइपडिफ़
void(*
सेवा से कोई टनल फिर से कनेक्ट करने पर, हैंडलर के लिए फ़ंक्शन पॉइंटर को एक बड़ी लेयर से सेट किया जाता है.
OnServiceTunnelStatusNotifyFunct)(WeaveTunnelConnectionMgr::TunnelConnNotifyReasons reason, WEAVE_ERROR err, void *appCtxt) टाइपडिफ़
void(*
सेवा की टनल से जुड़ी अलग-अलग सूचनाओं पर कार्रवाई करने के लिए, ऊपरी लेयर से सेट किया गया हैंडलर का फ़ंक्शन पॉइंटर.
PlatformNetworkOnlineCheck)(TunnelType tunType, void *appCtxt) टाइपडिफ़
void(*
नेटवर्क लेवल की ऑनलाइन जांच करने के लिए, ऐप्लिकेशन से मिले हैंडलर का फ़ंक्शन पॉइंटर.
WeaveTunnelFlags{
  kTunnelFlag_PrimaryEnabled = 0x01,
  kTunnelFlag_BackupEnabled = 0x02,
  kTunnelFlag_PrimaryRestricted = 0x04,
  kTunnelFlag_BackupRestricted = 0x08
}
enum
टनल फ़्लैग बिट वीव करें.
WeaveTunnelFlags टाइपडिफ़
टनल फ़्लैग बिट वीव करें.

सार्वजनिक विशेषताएं

NetworkOnlineCheck
OnServiceTunReconnectNotify
OnServiceTunStatusNotify
सेवा की टनल से जुड़ी अलग-अलग सूचनाओं पर कार्रवाई करने के लिए, ऊपरी लेयर से सेट किया गया हैंडलर का फ़ंक्शन पॉइंटर.
mServiceMgr
WeaveServiceManager *
सेवा को ढूंढने और उससे कनेक्ट करने के लिए इस्तेमाल करने के लिए सर्विस मैनेजर पॉइंटर.

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

DisablePrimaryTunnel(void)
void
प्राइमरी टनल बंद करें.
EnablePrimaryTunnel(void)
void
प्राइमरी टनल चालू करें.
GetAgentStateName(const AgentState state)
const char *
WeaveTunnelAgentState नाम पाएं.
GetTimeMsec(void)
uint64_t
मिलीसेकंड में सिस्टम का समय देखें.
GetWeaveTunnelAgentState(void)
टनल एजेंट स्टेटस पाएं.
Init(InetLayer *inet, WeaveExchangeManager *exchMgr, uint64_t dstNodeId, WeaveAuthMode authMode, WeaveServiceManager *svcMgr, const char *intfName, uint8_t role, void *appContext)
टनल एजेंट शुरू करें.
Init(InetLayer *inet, WeaveExchangeManager *exchMgr, uint64_t dstNodeId, IPAddress dstIPAddr, WeaveAuthMode authMode, const char *intfName, uint8_t role, void *appContext)
टनल एजेंट शुरू करें.
IsPrimaryTunnelEnabled(void) const
bool
देखें कि प्राइमरी टनल चालू है या नहीं.
IsPrimaryTunnelRoutingRestricted(void)
bool
देखें कि क्या मुख्य टनल, सेवा के रूटिंग से जुड़ी पाबंदियों के दायरे में आता है.
IsTunnelRoutingRestricted(void)
bool
देखें कि क्या टनल सेवा की ओर से रूटिंग प्रतिबंधों के अधीन है.
NetworkOnlineCheckResult(TunnelType tunType, bool isOnline)
void
नेटवर्क ऑनलाइन चेकर का नतीजा उपलब्ध होने पर, प्लैटफ़ॉर्म से कॉलबैक का अनुरोध किया जाता है.
ResetPrimaryReconnectBackoff(bool reconnectImmediately)
मुख्य टनल के लिए फिर से कनेक्ट करने का समय रीसेट करें.
SetAuthMode(const WeaveAuthMode authMode)
void
टनल के लिए WeaveAuthMode सेट करें.
SetDestination(const uint64_t nodeId, const IPAddress ipAddr, const uint16_t servicePort)
void
टनल के लिए डेस्टिनेशन nodeId, IPAddress, और पोर्ट सेट करें.
SetTunnelingDeviceRole(const Role role)
void
टनल के लिए टनलिंग डिवाइस भूमिका(बॉर्डरगेटवे, स्टैंडअलोन डिवाइस, मोबाइलडिवाइस) सेट करें.
Shutdown(void)
टनल एजेंट को बंद करें.
StartServiceTunnel(void)
सर्विस टनल शुरू करें.
StartServiceTunnel(uint64_t dstNodeId, IPAddress dstIPAddr, WeaveAuthMode authMode)
सर्विस टनल शुरू करें.
StopServiceTunnel(void)
void
सेवा से टनल कनेक्शन बंद करें.
StopServiceTunnel(WEAVE_ERROR err)
void
सेवा से टनल कनेक्शन बंद करें.

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

RecvdFromShortcutUDPTunnel(WeaveMessageLayer *msgLayer, PacketBuffer *message)
void
बॉर्डर गेटवे और मोबाइल डिवाइस के बीच शॉर्टकट यूडीपी टनल पर टनल किए गए IPv6 पैकेट पाने के लिए और टनल हेडर के अंदर से रॉ IPv6 पैकेट को डीकैप्सुलेट करने के बाद, टनल EndPoint इंटरफ़ेस पर फ़ॉरवर्ड करने के लिए हैंडलर.
RecvdFromTunnelEndPoint(TunEndPoint *tunEP, PacketBuffer *message)
void
टनल एंडपॉइंट इंटरफ़ेस से IPv6 पैकेट पाने और उसे फ़ॉरवर्ड करने के लिए हैंडलर. यह टनल हेडर के अंदर आईपीवी6 पैकेट को एन्क्रिप्ट (सुरक्षित) करने के बाद, सेवा टीसीपी कनेक्शन के ज़रिए सेवा पर या शॉर्टकट टनल पर मोबाइल क्लाइंट को भेजता है.

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

AgentState

 AgentState

सेवा से उसके कनेक्शन के संबंध में टनल एजेंट की स्थितियां.

प्रॉपर्टी
kState_BkupOnlyTunModeEstablished

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

kState_Initialized_NoTunnel

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

kState_NotInitialized

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

kState_PrimaryAndBkupTunModeEstablished

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

kState_PrimaryTunModeEstablished

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

AgentState

enum nl::Weave::Profiles::WeaveTunnel::WeaveTunnelAgent::AgentState AgentState

सेवा से उसके कनेक्शन के संबंध में टनल एजेंट की स्थितियां.

OnServiceTunnelReconnectNotifyFunct

void(* OnServiceTunnelReconnectNotifyFunct)(TunnelType tunType, const char *reconnectHost, const uint16_t reconnectPort, void *appCtxt)

सेवा से कोई टनल फिर से कनेक्ट करने पर, हैंडलर के लिए फ़ंक्शन पॉइंटर को एक बड़ी लेयर से सेट किया जाता है.

ब्यौरा
पैरामीटर
[in] tunType
टनल का टाइप, प्राइमरी या बैकअप.
[in] reconnectHost
फिर से कनेक्ट करने के लिए सेवा से मिला होस्टनेम.
[in] reconnectPort
फिर से कनेक्ट करने के लिए, सेवा से मिला डेस्टिनेशन पोर्ट.
[in] appCtxt
ऐप्लिकेशन कॉन्टेक्स्ट ऑब्जेक्ट का पॉइंटर

OnServiceTunnelStatusNotifyFunct

void(* OnServiceTunnelStatusNotifyFunct)(WeaveTunnelConnectionMgr::TunnelConnNotifyReasons reason, WEAVE_ERROR err, void *appCtxt)

सेवा की टनल से जुड़ी अलग-अलग सूचनाओं पर कार्रवाई करने के लिए, ऊपरी लेयर से सेट किया गया हैंडलर का फ़ंक्शन पॉइंटर.

ब्यौरा
पैरामीटर
[in] reason
आवेदन की स्थिति के बारे में सूचना देने की वजह.
[in] err
अगर कोई गड़बड़ी हुई है, तो वीव में कोई गड़बड़ी हुई
[in] appCtxt
ऐप्लिकेशन कॉन्टेक्स्ट ऑब्जेक्ट का पॉइंटर

PlatformNetworkOnlineCheck

void(* PlatformNetworkOnlineCheck)(TunnelType tunType, void *appCtxt)

नेटवर्क लेवल की ऑनलाइन जांच करने के लिए, ऐप्लिकेशन से मिले हैंडलर का फ़ंक्शन पॉइंटर.

ब्यौरा
पैरामीटर
[in] tunType
टनल का टाइप, प्राइमरी या बैकअप.
[in] appCtxt
ऐप्लिकेशन कॉन्टेक्स्ट ऑब्जेक्ट का पॉइंटर

WeaveTunnelFlags

 WeaveTunnelFlags

टनल फ़्लैग बिट वीव करें.

प्रॉपर्टी
kTunnelFlag_BackupEnabled

बैकअप टनल चालू होने पर सेट करें.

kTunnelFlag_BackupRestricted

यह सेट करें कि बैकअप टनल को रूट करने की अनुमति कब नहीं है.

kTunnelFlag_PrimaryEnabled

यह सेट करें कि प्राइमरी टनल चालू हो.

kTunnelFlag_PrimaryRestricted

यह सेट करें कि मुख्य टनल के रास्ते पर पाबंदी कब लगी.

WeaveTunnelFlags

enum nl::Weave::Profiles::WeaveTunnel::WeaveTunnelAgent::WeaveTunnelFlags WeaveTunnelFlags

टनल फ़्लैग बिट वीव करें.

सार्वजनिक विशेषताएं

NetworkOnlineCheck

PlatformNetworkOnlineCheck NetworkOnlineCheck

OnServiceTunReconnectNotify

OnServiceTunnelReconnectNotifyFunct OnServiceTunReconnectNotify

OnServiceTunStatusNotify

OnServiceTunnelStatusNotifyFunct OnServiceTunStatusNotify

सेवा की टनल से जुड़ी अलग-अलग सूचनाओं पर कार्रवाई करने के लिए, ऊपरी लेयर से सेट किया गया हैंडलर का फ़ंक्शन पॉइंटर.

mServiceMgr

WeaveServiceManager * mServiceMgr

सेवा को ढूंढने और उससे कनेक्ट करने के लिए इस्तेमाल करने के लिए सर्विस मैनेजर पॉइंटर.

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

DisablePrimaryTunnel

void DisablePrimaryTunnel(
  void
)

प्राइमरी टनल बंद करें.

प्राइमरी टनल बंद करें.

EnablePrimaryTunnel

void EnablePrimaryTunnel(
  void
)

प्राइमरी टनल चालू करें.

प्राइमरी टनल चालू करें.

GetAgentStateName

const char * GetAgentStateName(
  const AgentState state
)

WeaveTunnelAgentState नाम पाएं.

GetTimeMsec

uint64_t GetTimeMsec(
  void
)

मिलीसेकंड में सिस्टम का समय देखें.

अगर सिस्टम का समय उपलब्ध नहीं है, तो मिलीसेकंड में सिस्टम का समय या मोनोटोनिक समय डालें.

GetWeaveTunnelAgentState

AgentState GetWeaveTunnelAgentState(
  void
)

टनल एजेंट स्टेटस पाएं.

ब्यौरा
लौटाए जाने वाले प्रॉडक्ट
WeaveTunnelAgent की मौजूदा स्थिति AgentState.

Init

WEAVE_ERROR Init(
  InetLayer *inet,
  WeaveExchangeManager *exchMgr,
  uint64_t dstNodeId,
  WeaveAuthMode authMode,
  WeaveServiceManager *svcMgr,
  const char *intfName,
  uint8_t role,
  void *appContext
)

टनल एजेंट शुरू करें.

यह te टनल एंडपॉइंट ऑब्जेक्ट बनाता है, टनल का इंटरफ़ेस सेट अप करता है, मेंबर वैरिएबल, कॉलबैक, और WeaveTunnelControl को शुरू करता है.

Init

WEAVE_ERROR Init(
  InetLayer *inet,
  WeaveExchangeManager *exchMgr,
  uint64_t dstNodeId,
  IPAddress dstIPAddr,
  WeaveAuthMode authMode,
  const char *intfName,
  uint8_t role,
  void *appContext
)

टनल एजेंट शुरू करें.

यह te टनल एंडपॉइंट ऑब्जेक्ट बनाता है, टनल का इंटरफ़ेस सेट अप करता है, मेंबर वैरिएबल, कॉलबैक, और WeaveTunnelControl को शुरू करता है.

IsPrimaryTunnelEnabled

bool IsPrimaryTunnelEnabled(
  void
) const 

देखें कि प्राइमरी टनल चालू है या नहीं.

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

IsPrimaryTunnelRoutingRestricted

bool IsPrimaryTunnelRoutingRestricted(
  void
)

देखें कि क्या मुख्य टनल, सेवा के रूटिंग से जुड़ी पाबंदियों के दायरे में आता है.

देखें कि मुख्य टनल पर रूटिंग से जुड़ी पाबंदियां लागू हैं या नहीं.

ब्यौरा
लौटाए जाने वाले प्रॉडक्ट
अगर मुख्य टनल बनाया गया है, लेकिन सेवा के रूटिंग से जुड़े प्रतिबंध लागू होते हैं, तो 'सही'.

IsTunnelRoutingRestricted

bool IsTunnelRoutingRestricted(
  void
)

देखें कि क्या टनल सेवा की ओर से रूटिंग प्रतिबंधों के अधीन है.

देखें कि क्या टनल पर रूटिंग से जुड़ी पाबंदियां लागू हैं.

ब्यौरा
लौटाए जाने वाले प्रॉडक्ट
सही हो, अगर मुख्य या बैकअप टनल बनाया गया हो और दोनों में से कोई भी सेवा की रूटिंग से जुड़ी पाबंदियों के दायरे में हो.

NetworkOnlineCheckResult

void NetworkOnlineCheckResult(
  TunnelType tunType,
  bool isOnline
)

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

ब्यौरा
पैरामीटर
[in] tunType
उस इंटरफ़ेस से जुड़ा टनल टाइप जिस पर नेटवर्क कनेक्टिविटी की जांच की जाती है.
[in] isOnline
अगर नेटवर्क ऑनलाइन है, तो सही है. अगर ऐसा नहीं है, तो गलत है.

ResetPrimaryReconnectBackoff

WEAVE_ERROR ResetPrimaryReconnectBackoff(
  bool reconnectImmediately
)

मुख्य टनल के लिए फिर से कनेक्ट करने का समय रीसेट करें.

ब्यौरा
पैरामीटर
[in] reconnectImmediately
अगर तुरंत फिर से कनेक्ट करने की ज़रूरत हो, तो 'सही'. इसके अलावा, कॉन्फ़िगर किए गए फिर से कॉन्फ़िगर किए गए टाइम आउट का इस्तेमाल करके 'सही' चुनें.

SetAuthMode

void SetAuthMode(
  const WeaveAuthMode authMode
)

टनल के लिए WeaveAuthMode सेट करें.

ब्यौरा
पैरामीटर
[in] authMode
पीयर के साथ इस्तेमाल किया जाने वाला वीव ऑथेंटिकेशन मोड.

SetDestination

void SetDestination(
  const uint64_t nodeId,
  const IPAddress ipAddr,
  const uint16_t servicePort
)

टनल के लिए डेस्टिनेशन nodeId, IPAddress, और पोर्ट सेट करें.

टनल के लिए डेस्टिनेशन nodeId और IPAddress सेट करें.

ब्यौरा
पैरामीटर
[in] nodeId
डेस्टिनेशन नोड का नोड आईडी.
[in] ipAddr
डेस्टिनेशन नोड का आईपी पता.
[in] servicePort
डेस्टिनेशन नोड का पोर्ट.

SetTunnelingDeviceRole

void SetTunnelingDeviceRole(
  const Role role
)

टनल के लिए टनलिंग डिवाइस भूमिका(बॉर्डरगेटवे, स्टैंडअलोन डिवाइस, मोबाइलडिवाइस) सेट करें.

टनल के लिए टनलिंग डिवाइस की भूमिका(बॉर्डरगेटवे बनाम स्टैंडअलोन) सेट करें.

ब्यौरा
पैरामीटर
[in] role
यह भूमिका टनल एजेंट ने ली है; बॉर्डर गेटवे, स्टैंडअलोन या मोबाइल डिवाइस.

बंद करें

WEAVE_ERROR Shutdown(
  void
)

टनल एजेंट को बंद करें.

इससे सेवा का कनेक्शन टूट जाता है और टनल इंटरफ़ेस से जुड़े पतों और रास्तों को हटाने के बाद TunEndPoint इंटरफ़ेस बंद हो जाता है.

इससे सेवा का कनेक्शन टूट जाता है और टनल इंटरफ़ेस से जुड़े पतों और रास्तों को हटाने के बाद TunEndPoint इंटरफ़ेस बंद हो जाता है.

ब्यौरा
लौटाए जाने वाले प्रॉडक्ट
सफलता पर WEAVE_NO_ERROR, या संबंधित WEAVE_ERROR प्रकार.

StartServiceTunnel

WEAVE_ERROR StartServiceTunnel(
  void
)

सर्विस टनल शुरू करें.

यह टनल को चालू करता है और सेवा से कनेक्ट करने की कोशिश करता है.

यह सेवा से कनेक्ट करने की कोशिश करता है और टनल इंटरफ़ेस के लिए फ़ैब्रिक रूट भी सेट करता है.

ब्यौरा
लौटाए जाने वाले प्रॉडक्ट
सफलता पर WEAVE_NO_ERROR, या संबंधित WEAVE_ERROR प्रकार.

StartServiceTunnel

WEAVE_ERROR StartServiceTunnel(
  uint64_t dstNodeId,
  IPAddress dstIPAddr,
  WeaveAuthMode authMode
)

सर्विस टनल शुरू करें.

यह टनल को चालू करता है और सेवा से कनेक्ट करने की कोशिश करता है.

StopServiceTunnel

void StopServiceTunnel(
  void
)

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

StopServiceTunnel

void StopServiceTunnel(
  WEAVE_ERROR err
)

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

ब्यौरा
पैरामीटर
[in] err
अगर इस StopServiceTunnel अनुरोध का कोई खास वजह नहीं बताया गया है, तो WEAVE_NO_ERROR

WeaveTunnelAgent

 WeaveTunnelAgent(
  void
)

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

RecvdFromShortcutUDPTunnel

void RecvdFromShortcutUDPTunnel(
  WeaveMessageLayer *msgLayer,
  PacketBuffer *message
)

बॉर्डर गेटवे और मोबाइल डिवाइस के बीच शॉर्टकट यूडीपी टनल पर टनल किए गए IPv6 पैकेट पाने के लिए और टनल हेडर के अंदर से रॉ IPv6 पैकेट को डीकैप्सुलेट करने के बाद, टनल EndPoint इंटरफ़ेस पर फ़ॉरवर्ड करने के लिए हैंडलर.

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

ब्यौरा
पैरामीटर
[in] con
WeaveConnection ऑब्जेक्ट का पॉइंटर.
[in] msgInfo
WeaveMessageInfo ऑब्जेक्ट का पॉइंटर.
[in] message
टनल किए गए IPv6 पैकेट को पकड़े हुए PacketBuffer ऑब्जेक्ट का पॉइंटर.

RecvdFromTunnelEndPoint

void RecvdFromTunnelEndPoint(
  TunEndPoint *tunEP,
  PacketBuffer *message
)

टनल एंडपॉइंट इंटरफ़ेस से IPv6 पैकेट पाने और उसे फ़ॉरवर्ड करने के लिए हैंडलर. यह टनल हेडर के अंदर आईपीवी6 पैकेट को एन्क्रिप्ट (सुरक्षित) करने के बाद, सेवा टीसीपी कनेक्शन के ज़रिए सेवा पर या शॉर्टकट टनल पर मोबाइल क्लाइंट को भेजता है.

टनल एंडपॉइंट इंटरफ़ेस से IPv6 पैकेट पाने और उसे फ़ॉरवर्ड करने के लिए हैंडलर. यह टनल हेडर के अंदर आईपीवी6 पैकेट को एन्क्रिप्ट (सुरक्षित) करने के बाद, सेवा टीसीपी कनेक्शन के ज़रिए सेवा पर या किसी लोकल टनल के ऊपर मोबाइल क्लाइंट को भेजता है.

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

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

ब्यौरा
पैरामीटर
[in] tunEP
TunEndPoint ऑब्जेक्ट का पॉइंटर.
[in] message
PacketBuffer ऑब्जेक्ट की ओर कर्सर, जिसमें रॉ आईपीवी6 पैकेट है.