nl ::織り::プロファイル:: 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
トンネル接続の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
サービスTCP接続からトンネル化されたIPv6パケットを受信し、トンネルヘッダー内から生のIPv6パケットをカプセル化解除した後、トンネルエンドポイントインターフェイスに転送するハンドラー。
ServiceMgrStatusHandler (void *appState, WEAVE_ERROR err, StatusReport *report)
void
ServiceManagerがサービスへの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

BackupWeaveトンネルのTunnelLivenessプローブに関する情報を示すために使用されます。

kStatus_TunBackupOnlyDown

バックアップトンネルがダウンしていることを示すために使用されます。

kStatus_TunBackupReconnectRcvd

サービスがバックアップウィーブトンネルの再接続を要求したことを示すために使用されます。

kStatus_TunBackupUp

BackupWeaveトンネルが稼働していることを示すために使用されます。

kStatus_TunDown

ウィーブトンネルがダウンしたことを示すために使用されます。

kStatus_TunFailoverToBackup

プライマリトンネルがダウンしていて、バックアップトンネルへのスイッチオーバーが発生したことを示すために使用されます。

kStatus_TunPrimaryAndBackupUp

プライマリウィーブトンネルとバックアップウィーブトンネルの両方が稼働していることを示すために使用されます。

kStatus_TunPrimaryConnError

プライマリトンネル接続の試行が失敗したか、既存のトンネル接続の試行がローカルで中止されたか、ピアによって閉じられたことを示すために使用されます。

kStatus_TunPrimaryLiveness

PrimaryWeaveトンネルのTunnelLivenessプローブに関する情報を示すために使用されます。

kStatus_TunPrimaryReconnectRcvd

サービスがプライマリ ウィーブ トンネルの再接続を要求したことを示すために使用されます。

kStatus_TunPrimaryUp

プライマリWeaveトンネルが稼働していることを示すために使用されます。

TunnelConnNotifyReasons

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

TunnelConnectionState

 TunnelConnectionState
プロパティ
kState_Connecting

ウィーブトンネル接続が開始されたことを示すために使用されます。

kState_ConnectionEstablished

ウィーブトンネル接続が確立され、ルート情報が交換されていることを示すために使用されます。

kState_NotConnected

ウィーブトンネルが接続されていないことを示すために使用されます。

kState_ReconnectRecvd

サービスが、ディレクトリ ルックアップ後にボーダー ゲートウェイに再接続することを望むことを示すために使用されます。

kState_TunnelClosing

ウィーブトンネルが閉じており、接続が切断されていることを示すために使用されます。

kState_TunnelOpen

ウィーブトンネルが開いていて、データトラフィック転送の準備ができていることを示すために使用されます。

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
)

シャットダウン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
)

サービスTCP接続からトンネル化されたIPv6パケットを受信し、トンネルヘッダー内から生のIPv6パケットをカプセル化解除した後、トンネルエンドポイントインターフェイスに転送するハンドラー。

詳細
パラメーター
[in] con
ポインタWeaveConnectionのオブジェクト。
[in] msgInfo
ポインタWeaveMessageInfoのオブジェクト。
[in] message
トンネリングされたIPv6パケットを保持するPacketBufferオブジェクトへのポインタ。

ServiceMgrStatusHandler

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

ServiceManagerがサービスへのTCP接続の確立に失敗した場合に呼び出されるハンドラー。