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) تعريف الكتابة
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
}
تعداد
TunnelConnNotifyReasons تعريف الكتابة
TunnelConnectionState{
  kState_NotConnected = 0,
  kState_Connecting = 1,
  kState_ConnectionEstablished = 2,
  kState_TunnelOpen = 3,
  kState_TunnelClosing = 4,
  kState_ReconnectRecvd = 5
}
تعداد
TunnelConnectionState تعريف الكتابة

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

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
تم استدعاء المعالِج عند إغلاق اتصال TCP للخدمة.
HandleServiceConnectionComplete(WeaveConnection *con, WEAVE_ERROR conErr)
void
تم استدعاء المعالج عند اكتمال اتصال بروتوكول التحكم بالنقل عبر الخدمة.
RecvdFromService(WeaveConnection *con, const WeaveMessageInfo *msgInfo, PacketBuffer *message)
void
معالِج يستقبل حزم IPv6 النفقية من اتصال بروتوكول التحكم بالنقل (TCP) وتعيد توجيهها إلى واجهة Tunnel EndPoint بعد إلغاء تغليف حزمة IPv6 الأولية من داخل رأس النفق.
ServiceMgrStatusHandler(void *appState, WEAVE_ERROR err, StatusReport *report)
void
تم استدعاء المعالج إذا فشل مدير الخدمة في إنشاء اتصال TCP للخدمة.

الأنواع العامة

ConnectPolicyCallback

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

معاودة الاتصال لاسترجاع الفاصل الزمني للانتظار قبل إعادة الاتصال النفقي التالي.

التفاصيل
المعلمات
[in] appState
مؤشر حالة التطبيق الذي تم ضبطه أثناء إعداد SubscriptionClient.
[in] reconnectParam
يشير ذلك المصطلح إلى بنية تتضمّن مَعلَمات تؤثّر في حساب تأخير إعادة الربط.
[out] delayMsec
الوقت بالميللي ثانية للانتظار قبل محاولة إعادة الاتصال التالية.

TunnelConnNotifyReasons

 TunnelConnNotifyReasons
أماكن إقامة
kStatus_TunBackupConnError

يتم استخدامه للإشارة إلى تعذّر محاولة اتصال نفق احتياطي أو إلغاء محاولة حالية أو إغلاقها من قِبل النظير.

kStatus_TunBackupLiveness

يُستخدَم للإشارة إلى معلومات حول مسبار Tunnel Liveness على نفق Backup Weave.

kStatus_TunBackupOnlyDown

يُستخدَم للإشارة إلى تعطُّل النفق الاحتياطي.

kStatus_TunBackupReconnectRcvd

يتم استخدامه للإشارة إلى أن الخدمة قد طلبت إعادة الاتصال لنفق النسخ الاحتياطي.

kStatus_TunBackupUp

يستخدم للإشارة إلى أن نفق النسخ الاحتياطي المتجه لأعلى.

kStatus_TunDown

يستخدم للإشارة إلى أن نفق Weave قد توقف.

kStatus_TunFailoverToBackup

يُستخدَم للإشارة إلى توقّف النفق الأساسي وحدوث الانتقال إلى النفق الاحتياطي.

kStatus_TunPrimaryAndBackupUp

يستخدم للإشارة إلى أن كل من نفق الاتصال الأساسي والنسيج الاحتياطي نشط.

kStatus_TunPrimaryConnError

يتم استخدامه للإشارة إلى تعذّر محاولة اتصال نفق أساسي أو إلغاء محاولة حالية أو إغلاقها محليًا من قبل نظير.

kStatus_TunPrimaryLiveness

يُستخدَم للإشارة إلى معلومات حول مسبار Tunnel Liveness على نفق Primary Weave.

kStatus_TunPrimaryReconnectRcvd

يتم استخدامه للإشارة إلى أن الخدمة قد طلبت إعادة الاتصال لنفق الاتصال الأساسي.

kStatus_TunPrimaryUp

يستخدم للإشارة إلى أن نفق Weave الأساسي متجه للأعلى.

TunnelConnNotifyReasons

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

TunnelConnectionState

 TunnelConnectionState
أماكن إقامة
kState_Connecting

يُستخدَم للإشارة إلى بدء اتصال "نفق Weave".

kState_ConnectionEstablished

يُستخدَم للإشارة إلى إنشاء اتصال "نفق الشبكة" وتبادل معلومات المسار.

kState_NotConnected

يُستخدَم للإشارة إلى أن "نفق الشبكة" غير متصل.

kState_ReconnectRecvd

يُستخدَم للإشارة إلى أنّ الخدمة تريد أن يعيد مدخل الحدود الاتصال بعد البحث عن دليل.

kState_TunnelClosing

يُستخدَم للإشارة إلى إغلاق "نفق الشبكة" وانقطاع الاتصال.

kState_TunnelOpen

يُستخدم للإشارة إلى أن نفق Weave مفتوح وجاهز لنقل حركة مرور البيانات.

TunnelConnectionState

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

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

mServiceConnDelayPolicyCallback

ConnectPolicyCallback mServiceConnDelayPolicyCallback

وظائف عامة

Init

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_TUNNELING_RECONNECT_MAX_FIBONACCI_INDEX.

التفاصيل
المعلمات
[in] appState
مؤشر حالة التطبيق الذي تم ضبطه أثناء إعداد SubscriptionClient.
[in] reconnectParam
يشير ذلك المصطلح إلى بنية تتضمّن مَعلَمات تؤثّر في حساب تأخير إعادة الربط.
[out] delayMsec
الوقت بالميللي ثانية للانتظار قبل محاولة إعادة الاتصال التالية.

HandleServiceConnectionClosed

void HandleServiceConnectionClosed(
  WeaveConnection *con,
  WEAVE_ERROR conErr
)

تم استدعاء المعالِج عند إغلاق اتصال TCP للخدمة.

يحاول الجهاز إعادة إنشاء الاتصال بالخدمة في حال ضبط 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
)

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

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

ServiceMgrStatusHandler

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

تم استدعاء المعالج إذا فشل مدير الخدمة في إنشاء اتصال TCP للخدمة.