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)
|
typedefvoid(*
次のトンネルに再接続するまでの待機時間を取得するコールバック。 |
TunnelConnNotifyReasons{
|
enum |
TunnelConnNotifyReasons
|
typedef |
TunnelConnectionState{
|
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)
次のトンネルに再接続するまでの待機時間を取得するコールバック。
詳細 | |||||||
---|---|---|---|---|---|---|---|
パラメータ |
|
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 )
サービス トンネルを閉じます。
詳細 | |||
---|---|---|---|
パラメータ |
|
SetInterfaceName
void SetInterfaceName( const char *intfName )
トンネル接続の InterfaceName を設定します。
詳細 | |||
---|---|---|---|
パラメータ |
|
SetInterfaceType
void SetInterfaceType( const SrcInterfaceType srcIntfType )
トンネル接続の SrcInterfaceType を設定します。
詳細 | |||
---|---|---|---|
パラメータ |
|
StopAndReconnectTunnelConn
void StopAndReconnectTunnelConn( ReconnectParam & reconnParam )
サービス トンネル接続を停止し、再接続を再試行します。
詳細 | |||
---|---|---|---|
パラメータ |
|
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 までのフィボナッチ数列に従って、時間枠が増加し、ランダムなタイムスロット(ミリ秒単位)を選択します。
詳細 | |||||||
---|---|---|---|---|---|---|---|
パラメータ |
|
HandleServiceConnectionClosed
void HandleServiceConnectionClosed( WeaveConnection *con, WEAVE_ERROR conErr )
サービス TCP 接続が閉じられたときに呼び出されるハンドラ。
mServiceConKeepAlive が true に設定されている場合、デバイスはサービスへの接続を再確立しようとします。
その後、デバイスは Service への接続を再確立しようとします。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
HandleServiceConnectionComplete
void HandleServiceConnectionComplete( WeaveConnection *con, WEAVE_ERROR conErr )
サービス TCP 接続の完了時に呼び出されるハンドラ。
デバイスはこの機能からサービスに対するトンネル制御コマンドを開始します。
デバイスはこの機能からサービスに対するトンネル制御コマンドを開始します。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
RecvdFromService
void RecvdFromService( WeaveConnection *con, const WeaveMessageInfo *msgInfo, PacketBuffer *message )
Service TCP 接続からトンネリングされた IPv6 パケットを受信し、トンネル ヘッダー内から未加工の IPv6 パケットのカプセル化を解除した後にトンネル エンドポイント インターフェースに転送するハンドラ。
詳細 | |||||||
---|---|---|---|---|---|---|---|
パラメータ |
|
ServiceMgrStatusHandler
void ServiceMgrStatusHandler( void *appState, WEAVE_ERROR err, StatusReport *report )
Service Manager が Service への TCP 接続を確立できなかった場合に呼び出されるハンドラ。