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
}
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)
Service への接続を確立してみます。

静的パブリック関数

DefaultReconnectPolicyCallback(void *const appstate, ReconnectParam & reconnectParam, uint32_t & delayMsec)
void
Service に次回接続したときに取得するためのデフォルトのポリシー実装。
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
Service TCP 接続からトンネリングされた IPv6 パケットを受信し、トンネル ヘッダー内から未加工の IPv6 パケットのカプセル化を解除した後にトンネル エンドポイント インターフェースに転送するハンドラ。
ServiceMgrStatusHandler(void *appState, WEAVE_ERROR err, StatusReport *report)
void
Service Manager が Service への 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

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

kStatus_TunBackupOnlyDown

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

kStatus_TunBackupReconnectRcvd

サービスが Backup Weave トンネルの再接続を要求したことを示すために使用されます。

kStatus_TunBackupUp

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

kStatus_TunDown

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

kStatus_TunFailoverToBackup

プライマリ トンネルが停止し、バックアップ トンネルへの切り替えが行われたことを示すために使用されます。

kStatus_TunPrimaryAndBackupUp

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

kStatus_TunPrimaryConnError

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

kStatus_TunPrimaryLiveness

プライマリ Weave トンネルのトンネル Liveness プローブに関する情報を示すために使用されます。

kStatus_TunPrimaryReconnectRcvd

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

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

ディレクトリ検索後に境界ゲートウェイが再接続されることを Service が求めていることを示すために使用されます。

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
)

Service への接続を確立してみます。

ServiceManager を使用するか、直接、Service への接続を確立してみてください。

WeaveTunnelConnectionMgr

 WeaveTunnelConnectionMgr(
  void
)

静的パブリック関数

DefaultReconnectPolicyCallback

void DefaultReconnectPolicyCallback(
  void *const appstate,
  ReconnectParam & reconnectParam,
  uint32_t & delayMsec
)

Service に次回接続したときに取得するためのデフォルトのポリシー実装。

このポリシーは、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 に設定されている場合、デバイスはサービスへの接続を再確立しようとします。

その後、デバイスは Service への接続を再確立しようとします。

詳細
パラメータ
[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
)

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

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

ServiceMgrStatusHandler

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

Service Manager が Service への TCP 接続を確立できなかった場合に呼び出されるハンドラ。