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

ملخّص

الدلالة والهياكل

WeaveTunnelAgent(void)

الأنواع العلنية

AgentState{
  kState_NotInitialized = 0,
  kState_Initialized_NoTunnel = 1,
  kState_PrimaryTunModeEstablished = 2,
  kState_BkupOnlyTunModeEstablished = 3,
  kState_PrimaryAndBkupTunModeEstablished = 4
}
تعداد
حالات وكيل النفق في ما يتعلق باتصالاته بالخدمة.
AgentState typedef
حالات وكيل النفق في ما يتعلق باتصالاته بالخدمة.
OnServiceTunnelReconnectNotifyFunct)(TunnelType tunType, const char *reconnectHost, const uint16_t reconnectPort, void *appCtxt) typedef
void(*
مؤشر الدالة إلى المعالج الذي تم ضبطه من خلال طبقة أعلى عند تلقّي عملية إعادة توصيل النفق من الخدمة.
OnServiceTunnelStatusNotifyFunct)(WeaveTunnelConnectionMgr::TunnelConnNotifyReasons reason, WEAVE_ERROR err, void *appCtxt) typedef
void(*
مؤشر الدالة إلى المعالج الذي تم ضبطه من خلال طبقة أعلى للتعامل مع الإشعارات المتنوعة المرتبطة بالنفق المؤدي إلى الخدمة.
PlatformNetworkOnlineCheck)(TunnelType tunType, void *appCtxt) typedef
void(*
تشير الدالة إلى معالج يوفّره التطبيق لإجراء فحص على مستوى الشبكة على الإنترنت.
WeaveTunnelFlags{
  kTunnelFlag_PrimaryEnabled = 0x01,
  kTunnelFlag_BackupEnabled = 0x02,
  kTunnelFlag_PrimaryRestricted = 0x04,
  kTunnelFlag_BackupRestricted = 0x08
}
تعداد
يتم دمج وحدات بت الخاصة بأعلام النفق.
WeaveTunnelFlags typedef
يتم دمج وحدات بت الخاصة بأعلام النفق.

السمات العامة

NetworkOnlineCheck
OnServiceTunReconnectNotify
OnServiceTunStatusNotify
مؤشر الدالة إلى المعالج الذي تم ضبطه من خلال طبقة أعلى للتعامل مع الإشعارات المتنوعة المرتبطة بالنفق المؤدي إلى الخدمة.
mServiceMgr
WeaveServiceManager *
مؤشر "مدير الخدمة" لاستخدامه للبحث عن الخدمة والاتصال بها

الدوال العامة

DisablePrimaryTunnel(void)
void
إيقاف النفق الأساسي.
EnablePrimaryTunnel(void)
void
تفعيل النفق الأساسي.
GetAgentStateName(const AgentState state)
const char *
احصل على اسم WeaveTunnelAgentState.
GetTimeMsec(void)
uint64_t
الحصول على وقت النظام بالمللي ثانية.
GetWeaveTunnelAgentState(void)
احصل على حالة TunnelAgent.
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
اضبط معرف الوجهة وعنوان IP والمنفذ للنفق.
SetTunnelingDeviceRole(const Role role)
void
اضبط دور جهاز النفق(BorderGateway أو StandaloneDevice أو MobileDevice) للنفق.
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 النفقية عبر نفق UDP للاختصار بين بوابة الحدود والجهاز الجوّال، ثم إعادة التوجيه إلى واجهة نقطة نهاية النفق بعد فك تشفير حزمة IPv6 الأولية من داخل رأس النفق.
RecvdFromTunnelEndPoint(TunEndPoint *tunEP, PacketBuffer *message)
void
معالِج استقبال حزم IPv6 من واجهة نفق نقطة النهاية والمضي قدمًا، إما إلى الخدمة عبر اتصال بروتوكول التحكم في الإرسال بعد تغليف حزمة IPv6 داخل رأس النفق أو إلى برنامج الجوال عبر نفق اختصار.

الأنواع العلنية

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
)

احصل على حالة TunnelAgent.

التفاصيل
المرتجعات
AgentState (الحالة) الحالية لـ WeaveTunnelAgent.

إنت

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

اضبط وكيل النفق.

يؤدي ذلك إلى إنشاء كائن نقطة نهاية te Tunnel وإعداد واجهة النفق وإعداد متغيرات الأعضاء وعمليات الاستدعاء وWeaveTunnelControl.

إنت

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

اضبط وكيل النفق.

يؤدي ذلك إلى إنشاء كائن نقطة نهاية te Tunnel وإعداد واجهة النفق وإعداد متغيرات الأعضاء وعمليات الاستدعاء وWeaveTunnelControl.

IsPrimaryTunnelEnabled

bool IsPrimaryTunnelEnabled(
  void
) const 

تحقَّق مما إذا كان النفق الأساسي مفعَّلاً.

التفاصيل
المرتجعات
true إذا تم تمكينه، أو غير ذلك false.

IsPrimaryTunnelRoutingRestricted

bool IsPrimaryTunnelRoutingRestricted(
  void
)

تحقق مما إذا كان النفق الأساسي خاضعًا لقيود التوجيه من قِبل الخدمة.

تحقَّق مما إذا كان النفق الأساسي خاضعًا لقيود التوجيه.

التفاصيل
المرتجعات
صحيح إذا تم إنشاء النفق الأساسي ولكن يخضع لقيود التوجيه من قِبل الخدمة.

IsTunnelRoutingRestricted

bool IsTunnelRoutingRestricted(
  void
)

تحقق مما إذا كان النفق خاضعًا لقيود التوجيه من قِبل الخدمة.

تحقق مما إذا كان النفق خاضعًا لقيود التوجيه.

التفاصيل
المرتجعات
صحيح إذا تم إنشاء النفق الأساسي أو النفقي الاحتياطي، ويخضع أي منهما لقيود التوجيه من قِبل الخدمة.

NetworkOnlineCheckResult

void NetworkOnlineCheckResult(
  TunnelType tunType,
  bool isOnline
)

يستدعي النظام الأساسي معاودة الاتصال عند توفُّر نتيجة أداة فحص الشبكة على الإنترنت.

التفاصيل
المَعلمات
[in] tunType
نوع النفق المقابل للواجهة التي يتم من خلالها إجراء فحص اتصال الشبكة.
[in] isOnline
صحيح إذا كانت الشبكة متصلة بالإنترنت، أو false في الحالات الأخرى.

ResetPrimaryReconnectBackoff

WEAVE_ERROR ResetPrimaryReconnectBackoff(
  bool reconnectImmediately
)

أعِد ضبط وقت "إعادة الاتصال" للنفق الأساسي.

التفاصيل
المَعلمات
[in] reconnectImmediately
صحيح إذا لزم الأمر لإعادة الاتصال فورًا، وإلا باستخدام مهلة إعادة الاتصال التي تم إعدادها.

SetAuthMode

void SetAuthMode(
  const WeaveAuthMode authMode
)

اضبط WeaveAuthMode للنفق.

التفاصيل
المَعلمات
[in] authMode
وضع مصادقة Weave المُستخدَم مع التطبيقات المشابهة.

SetDestination

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

اضبط معرف الوجهة وعنوان IP والمنفذ للنفق.

اضبط معرف الوجهة وعنوان IP للنفق.

التفاصيل
المَعلمات
[in] nodeId
معرِّف العُقدة للعقدة الوجهة.
[in] ipAddr
عنوان IP للعقدة الوجهة.
[in] servicePort
منفذ عقدة الوجهة.

SetTunnelingDeviceRole

void SetTunnelingDeviceRole(
  const Role role
)

اضبط دور جهاز النفق(BorderGateway أو StandaloneDevice أو MobileDevice) للنفق.

اضبط دور جهاز النفق(BorderGateway في مقابل المستقل) للنفق.

التفاصيل
المَعلمات
[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
WEAVE_NO_ERROR في حال عدم وجود سبب محدد لطلب StopServiceTunnel هذا، وإلا سيتم نقل سبب الخطأ.

WeaveTunnelAgent

 WeaveTunnelAgent(
  void
)

الدوال الثابتة العامة

RecvdFromShortcutUDPTunnel

void RecvdFromShortcutUDPTunnel(
  WeaveMessageLayer *msgLayer,
  PacketBuffer *message
)

معالج لاستقبال حزم IPv6 النفقية عبر نفق UDP للاختصار بين بوابة الحدود والجهاز الجوّال، ثم إعادة التوجيه إلى واجهة نقطة نهاية النفق بعد فك تشفير حزمة IPv6 الأولية من داخل رأس النفق.

معالج لاستقبال حزم IPv6 النفقية من اتصال TCP للخدمة وإعادة التوجيه إلى واجهة Tunnel EndPoint بعد إنهاء حزمة IPv6 الأولية من داخل رأس النفق.

التفاصيل
المَعلمات
[in] con
مؤشر إلى الكائن WeaveConnection
[in] msgInfo
مؤشر للكائن WeaveMessageInfo
[in] message
مؤشر يشير إلى كائن PacketBuffer الذي يحتفظ بحزمة IPv6 النفقية.

RecvdFromTunnelEndPoint

void RecvdFromTunnelEndPoint(
  TunEndPoint *tunEP,
  PacketBuffer *message
)

معالِج استقبال حزم IPv6 من واجهة نفق نقطة النهاية والمضي قدمًا، إما إلى الخدمة عبر اتصال بروتوكول التحكم في الإرسال بعد تغليف حزمة IPv6 داخل رأس النفق أو إلى برنامج الجوال عبر نفق اختصار.

معالِج استقبال حزم IPv6 من واجهة Tunnel EndPoint (نقطة نهاية النفق) للأمام، إما إلى الخدمة عبر اتصال TCP بعد تغليف حزمة IPv6 داخل رأس النفق أو إلى عميل Mobile عبر نفق محلي.

إذا لم يتم الانتهاء من اتصال الخدمة بعد، سيتم وضع الرسالة في قائمة الانتظار حتى يتم إعداد الاتصال. بالنسبة إلى الاتصال النفقي على جهاز عميل الجوّال، تتم الإشارة إلى جدول الجوارب التالي.

إذا لم يتم الانتهاء من اتصال الخدمة بعد، سيتم وضع الرسالة في قائمة الانتظار حتى يتم إعداد الاتصال. بالنسبة إلى الاتصال النفقي على جهاز عميل الجوّال، تتم الإشارة إلى جدول الجوارب التالي.

التفاصيل
المَعلمات
[in] tunEP
مؤشر يشير إلى الكائن TunEndPoint.
[in] message
يشير هذا المصطلح إلى مؤشر لكائن PacketBuffer الذي يحمل حزمة IPv6 الأولية.