nl :: نسج:: مظهر:: نفق نسج :: WeaveTunnelConnectionMgr

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

تضم هذه الفئة جميع حالات اتصال Weave tunnel ومنطق الإدارة والوظائف المرتبطة بها.

ملخص

سيتم استخدام مثيل من هذه الفئة لإدارة النفق عبر كل واجهة من خلالها يوجد نفق 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
قم بتعيين InterfaceName لاتصال النفق.
SetInterfaceType (const SrcInterfaceType srcIntfType)
void
قم بتعيين SrcInterfaceType لاتصال النفق.
Shutdown (void)
void
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
تم استدعاء المعالج عند اكتمال اتصال Service TCP.
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
الوقت بالمللي ثانية للانتظار قبل محاولة إعادة الاتصال التالية.

TunnelConnNotify الأسباب

 TunnelConnNotifyReasons
الخصائص
kStatus_TunBackupConnError

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

kStatus_TunBackupLiveness

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

kStatus_TunBackupOnlyDown

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

kStatus_TunBackupReconnectRcvd

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

kStatus_TunBackupUp

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

kStatus_TunDown

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

kStatus_TunFailoverToBackup

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

kStatus_TunPrimaryAndBackupUp

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

kStatus_TunPrimaryConnError

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

kStatus_TunPrimaryLiveness

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

kStatus_TunPrimaryReconnectRcvd

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

kStatus_TunPrimaryUp

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

TunnelConnNotify الأسباب

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

TunnelConnectionState

 TunnelConnectionState
الخصائص
kState_Connecting

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

kState_ConnectionEstablished

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

kState_NotConnected

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

kState_ReconnectRecvd

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

kState_TunnelClosing

يستخدم للإشارة إلى أن Weave Tunnel قيد الإغلاق وأن الاتصال يتم قطعه.

kState_TunnelOpen

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

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
)

قم بتعيين InterfaceName لاتصال النفق.

تفاصيل
المعلمات
[in] tunIntf
InterfaceName لإعداد اتصال نفق الخدمة.

SetInterfaceType

void SetInterfaceType(
  const SrcInterfaceType srcIntfType
)

قم بتعيين SrcInterfaceType لاتصال النفق.

تفاصيل
المعلمات
[in] srcIntfType
نوع تقنية الشبكة للواجهة لاتصال نفق الخدمة.

اغلق

void Shutdown(
  void
)

StopAndReconnectTunnelConn

void StopAndReconnectTunnelConn(
  ReconnectParam & reconnParam
)

أوقف اتصال نفق الخدمة وحاول إعادة الاتصال مرة أخرى.

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

حاول الاتصال الآن

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
الوقت بالمللي ثانية للانتظار قبل محاولة إعادة الاتصال التالية.

HandServiceConnection مغلق

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
)

تم استدعاء المعالج عند اكتمال اتصال Service TCP.

يواصل الجهاز بدء أوامر التحكم في النفق إلى الخدمة من هذه الوظيفة.

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

تفاصيل
المعلمات
[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 النفقية.

الخدمة

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

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