nl:: Weave:: Profiles:: WeaveTunnel:: WeaveTunnelConnectionMgr
#include <src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.h>
このクラスは、すべての Weave トンネルの接続状態と、関連する管理ロジックおよび関数をカプセル化します。
概要
このクラスのインスタンスは、Service への 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
Service トンネルを閉じます。
|
SetInterfaceName(const char *intfName)
|
void
Tunnel 接続の 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
Service TCP 接続が閉じたときに呼び出されるハンドラ。
|
HandleServiceConnectionComplete(WeaveConnection *con, WEAVE_ERROR conErr)
|
void
Service TCP 接続が完了したときに呼び出されるハンドラ。
|
RecvdFromService(WeaveConnection *con, const WeaveMessageInfo *msgInfo, PacketBuffer *message)
|
void
トンネル ヘッダー内から生の IPv6 パケットをカプセル化解除した後、サービス TCP 接続からトンネリングされた 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
|
バックアップ Weave トンネルのトンネルライブネス プローブに関する情報を示すために使用されます。 |
kStatus_TunBackupOnlyDown
|
バックアップ トンネルがダウンしていることを示すために使用されます。 |
kStatus_TunBackupReconnectRcvd
|
サービスがバックアップ Weave トンネルの再接続をリクエストしたことを示すために使用されます。 |
kStatus_TunBackupUp
|
バックアップ Weave トンネルが稼働していることを示すために使用されます。 |
kStatus_TunDown
|
Weave トンネルのダウンを示すために使用します。 |
kStatus_TunFailoverToBackup
|
プライマリ トンネルが停止し、バックアップ トンネルへの切り替えが行われたことを示すために使用されます。 |
kStatus_TunPrimaryAndBackupUp
|
プライマリとバックアップの両方の Weave トンネルが稼働していることを示すために使用されます。 |
kStatus_TunPrimaryConnError
|
プライマリ トンネルの接続の試行が失敗したか、既存のトンネルがピアによってローカルで中止または閉じられたことを示すために使用されます。 |
kStatus_TunPrimaryLiveness
|
プライマリ Weave トンネルのトンネルライブネス プローブに関する情報を示すために使用されます。 |
kStatus_TunPrimaryReconnectRcvd
|
Service がプライマリ Weave トンネルの再接続をリクエストしたことを示すために使用されます。 |
kStatus_TunPrimaryUp
|
プライマリ Weave トンネルが稼働していることを示すために使用されます。 |
TunnelConnNotifyReasons
enum nl::Weave::Profiles::WeaveTunnel::WeaveTunnelConnectionMgr::TunnelConnNotifyReasons TunnelConnNotifyReasons
TunnelConnectionState
TunnelConnectionState
プロパティ | |
---|---|
kState_Connecting
|
Weave トンネル接続が開始したことを示すために使用されます。 |
kState_ConnectionEstablished
|
Weave トンネル接続が確立され、ルート情報が交換されていることを示すために使用されます。 |
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 )
Service トンネルを閉じます。
詳細 | |||
---|---|---|---|
パラメータ |
|
SetInterfaceName
void SetInterfaceName( const char *intfName )
Tunnel 接続の 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 )
Service TCP 接続が閉じたときに呼び出されるハンドラ。
mServiceConKeepAlive が true に設定されている場合、デバイスは Service への接続の再確立を試みます。
その後、デバイスは Service への接続の再確立を試みます。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
HandleServiceConnectionComplete
void HandleServiceConnectionComplete( WeaveConnection *con, WEAVE_ERROR conErr )
Service TCP 接続が完了したときに呼び出されるハンドラ。
デバイスはこの関数からサービスに対してトンネル制御コマンドを開始します。
デバイスはこの関数からサービスに対してトンネル制御コマンドを開始します。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
RecvdFromService
void RecvdFromService( WeaveConnection *con, const WeaveMessageInfo *msgInfo, PacketBuffer *message )
トンネル ヘッダー内から生の IPv6 パケットをカプセル化解除した後、サービス TCP 接続からトンネリングされた IPv6 パケットを受信し、トンネル エンドポイント インターフェースに転送するハンドラ。
詳細 | |||||||
---|---|---|---|---|---|---|---|
パラメータ |
|
ServiceMgrStatusHandler
void ServiceMgrStatusHandler( void *appState, WEAVE_ERROR err, StatusReport *report )
Service Manager が Service への TCP 接続を確立できなかった場合に呼び出されるハンドラ。