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(*
קריאה חוזרת (callback) כדי לאחזר את מרווח הזמן שצריך להמתין לפני חיבור מחדש של המנהרה הבאה.
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
}
טיפוסים בני מנייה (enum)
TunnelConnNotifyReasons typedef
TunnelConnectionState{
  kState_NotConnected = 0,
  kState_Connecting = 1,
  kState_ConnectionEstablished = 2,
  kState_TunnelOpen = 3,
  kState_TunnelClosing = 4,
  kState_ReconnectRecvd = 5
}
טיפוסים בני מנייה (enum)
TunnelConnectionState typedef

מאפיינים ציבוריים

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
המטפל הופעל כשחיבור TCP של השירות הושלם.
RecvdFromService(WeaveConnection *con, const WeaveMessageInfo *msgInfo, PacketBuffer *message)
void
מטפל לקבלת חבילות IPv6 מנהרות מחיבור TCP של שירות והעברה לממשק EndPoint של המנהרה, לאחר ביטול המכסה של חבילת IPv6 הגולמית מתוך כותרת המנהרה.
ServiceMgrStatusHandler(void *appState, WEAVE_ERROR err, StatusReport *report)
void
המטפל הופעל אם מנהל השירות לא הצליח ליצור את חיבור ה-TCP לשירות.

סוגים ציבוריים

ConnectPolicyCallback

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

קריאה חוזרת (callback) כדי לאחזר את מרווח הזמן שצריך להמתין לפני חיבור מחדש של המנהרה הבאה.

פרטים
פרמטרים
[in] appState
מצביע על מצב האפליקציה שהוגדר במהלך האתחול של SubscriptionClient.
[in] reconnectParam
מבנה עם פרמטרים שמשפיעים על החישוב של ההשהיה בחיבור מחדש.
[out] delayMsec
משך הזמן באלפיות השנייה לפני ניסיון ההתחברות הבא.

TunnelConnNotifyReasons

 TunnelConnNotifyReasons
מאפיינים
kStatus_TunBackupConnError

משמש לציון שהניסיון לחבר מנהרת גיבוי נכשל או שניסיון חיבור קיים בוטל או נסגר על ידי עמית באופן מקומי.

kStatus_TunBackupLiveness

משמש לציון מידע לגבי גשושית הזרימה בזמן המנהרה במנהרת 'אריגת גיבוי'.

kStatus_TunBackupOnlyDown

משמש כדי לציין שנהרת הגיבוי מושבתת.

kStatus_TunBackupReconnectRcvd

משמשת לציון שהשירות ביקש חיבור מחדש למנהרת 'אריגת גיבוי'.

kStatus_TunBackupUp

כדי לציין שממנהרת 'אריגת גיבוי' מוכנה.

kStatus_TunDown

משמש כדי לציין שממנהרת Weave קרסה.

kStatus_TunFailoverToBackup

הנתונים משמשים כדי לציין שהמנהרה הראשית מושבתת ואירעה מעבר למנהרת הגיבוי.

kStatus_TunPrimaryAndBackupUp

משמש כדי לציין שגם המנהרה הראשית וגם מנהרת אריגת הגיבוי פועלות.

kStatus_TunPrimaryConnError

משמש לציון שהניסיון הראשי לחיבור המנהרה נכשל, או שניסיון קיים אחד בוטל או נסגר על ידי עמית מקומי.

kStatus_TunPrimaryLiveness

משמש לציון מידע על גשושית הזרימה בזמן המנהרה במנהרת Weave הראשית.

kStatus_TunPrimaryReconnectRcvd

משמשת לציון שהשירות ביקש חיבור מחדש למנהרת Weave הראשית.

kStatus_TunPrimaryUp

משמש כדי לציין שהערוץ הראשי של Weave מוכן.

TunnelConnNotifyReasons

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

TunnelConnectionState

 TunnelConnectionState
מאפיינים
kState_Connecting

משמש כדי לציין שהחיבור ל-Weave Tunnel הופעל.

kState_ConnectionEstablished

משמש כדי לציין שקיים חיבור של Weave Tunnel ומתבצעת החלפה של מידע על המסלול.

kState_NotConnected

משמש כדי לציין שמנהרת Weave לא מחוברת.

kState_ReconnectRecvd

משמש כדי לציין שהשירות רוצה ששער הגבול יתחבר מחדש לאחר חיפוש בספרייה.

kState_TunnelClosing

משמש כדי לציין שמנהרת Weave נסגרת והחיבור מתנתק.

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 מוגדר כ-True.

לאחר מכן, המכשיר ינסה ליצור מחדש את החיבור לשירות.

פרטים
פרמטרים
[in] con
מצביע אל האובייקט WeaveConnection.
[in] conErr
כל שגיאה ב-WeaveConnection או WEAVE_NO_ERROR.

HandleServiceConnectionComplete

void HandleServiceConnectionComplete(
  WeaveConnection *con,
  WEAVE_ERROR conErr
)

המטפל הופעל כשחיבור TCP של השירות הושלם.

המכשיר ממשיך ליזום פקודות של בקרת מנהרה לשירות מהפונקציה הזו.

המכשיר ממשיך ליזום פקודות של בקרת מנהרה לשירות מהפונקציה הזו.

פרטים
פרמטרים
[in] con
מצביע אל האובייקט WeaveConnection.
[in] conErr
כל שגיאה ב-WeaveConnection או WEAVE_NO_ERROR.

RecvdFromService

void RecvdFromService(
  WeaveConnection *con,
  const WeaveMessageInfo *msgInfo,
  PacketBuffer *message
)

מטפל לקבלת חבילות IPv6 מנהרות מחיבור TCP של שירות והעברה לממשק EndPoint של המנהרה, לאחר ביטול המכסה של חבילת IPv6 הגולמית מתוך כותרת המנהרה.

פרטים
פרמטרים
[in] con
מצביע אל האובייקט WeaveConnection.
[in] msgInfo
מצביע אל האובייקט WeaveMessageInfo.
[in] message
מצביע אל האובייקט PacketBuffer שמחזיק את חבילת ה-IPv6 המרובעת.

ServiceMgrStatusHandler

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

המטפל הופעל אם מנהל השירות לא הצליח ליצור את חיבור ה-TCP לשירות.