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
}
تعداد
TunnelConnNotifyReasons typedef
TunnelConnectionState{
  kState_NotConnected = 0,
  kState_Connecting = 1,
  kState_ConnectionEstablished = 2,
  kState_TunnelOpen = 3,
  kState_TunnelClosing = 4,
  kState_ReconnectRecvd = 5
}
تعداد
TunnelConnectionState typedef

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

mServiceConnDelayPolicyCallback

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

Init(WeaveTunnelAgent *tunAgent, TunnelType tunType, SrcInterfaceType srcIntfType, const char *connIntfName)
ServiceTunnelClose(WEAVE_ERROR err)
void
إغلاق نفق الخدمة
SetInterfaceName(const char *intfName)
void
قم بتعيين واجهة المستخدم لاتصال النفق.
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
معالج لاستقبال حزم IPv6 النفقية من اتصال TCP للخدمة وإعادة التوجيه إلى واجهة Tunnel EndPoint بعد إنهاء حزمة IPv6 الأولية من داخل رأس النفق.
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

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

kStatus_TunBackupOnlyDown

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

kStatus_TunBackupReconnectRcvd

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

kStatus_TunBackupUp

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

kStatus_TunDown

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

kStatus_TunFailoverToBackup

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

kStatus_TunPrimaryAndBackupUp

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

kStatus_TunPrimaryConnError

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

kStatus_TunPrimaryLiveness

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

kStatus_TunPrimaryReconnectRcvd

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

kStatus_TunPrimaryUp

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

TunnelConnNotifyReasons

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

TunnelConnectionState

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

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

kState_ConnectionEstablished

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

kState_NotConnected

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

kState_ReconnectRecvd

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

kState_TunnelClosing

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

kState_TunnelOpen

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

TunnelConnectionState

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

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

mServiceConnDelayPolicyCallback

ConnectPolicyCallback mServiceConnDelayPolicyCallback

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

إنت

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

ServiceTunnelClose

void ServiceTunnelClose(
  WEAVE_ERROR err
)

إغلاق نفق الخدمة

التفاصيل
المَعلمات
[in] err
تم تمرير WEAVE_ERROR من المتصل.

SetInterfaceName

void SetInterfaceName(
  const char *intfName
)

قم بتعيين واجهة المستخدم لاتصال النفق.

التفاصيل
المَعلمات
[in] tunIntf
اسم الواجهة لإعداد اتصال نفق الخدمة.

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
)

تم استدعاء المعالج عند إغلاق اتصال بروتوكول التحكم في الإرسال.

يحاول الجهاز إعادة الاتصال بالخدمة في حال ضبط mServiceConKeepAlive على true.

ويحاول الجهاز بعد ذلك إعادة الاتصال بالخدمة.

التفاصيل
المَعلمات
[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
)

تم استدعاء المعالج إذا تعذّر على مدير الخدمة تأسيس اتصال بروتوكول التحكم بالنقل بالخدمة.