nl::Weave::Profiles::WeaveTunnel::WeaveTunnelAgent

概要

コンストラクタとデストラクタ

WeaveTunnelAgent(void)

公開タイプ

AgentState{
  kState_NotInitialized = 0,
  kState_Initialized_NoTunnel = 1,
  kState_PrimaryTunModeEstablished = 2,
  kState_BkupOnlyTunModeEstablished = 3,
  kState_PrimaryAndBkupTunModeEstablished = 4
}
enum
サービスへの接続に関連するトンネル エージェントの状態。
AgentState typedef
サービスへの接続に関連するトンネル エージェントの状態。
OnServiceTunnelReconnectNotifyFunct)(TunnelType tunType, const char *reconnectHost, const uint16_t reconnectPort, void *appCtxt) typedef
void(*
Service からトンネル再接続を受信したときに、上位レイヤによって設定されたハンドラへの関数ポインタ。
OnServiceTunnelStatusNotifyFunct)(WeaveTunnelConnectionMgr::TunnelConnNotifyReasons reason, WEAVE_ERROR err, void *appCtxt) typedef
void(*
Service へのトンネルに関連するさまざまな通知に応答するために、上位レイヤによって設定されたハンドラへの関数ポインタ。
PlatformNetworkOnlineCheck)(TunnelType tunType, void *appCtxt) typedef
void(*
ネットワーク レベルのオンライン チェックを実行するために、アプリケーションが提供するハンドラへの関数ポインタ。
WeaveTunnelFlags{
  kTunnelFlag_PrimaryEnabled = 0x01,
  kTunnelFlag_BackupEnabled = 0x02,
  kTunnelFlag_PrimaryRestricted = 0x04,
  kTunnelFlag_BackupRestricted = 0x08
}
enum
Weave トンネルのフラグビット。
WeaveTunnelFlags typedef
Weave トンネルのフラグビット。

パブリック属性

NetworkOnlineCheck
OnServiceTunReconnectNotify
OnServiceTunStatusNotify
Service へのトンネルに関連するさまざまな通知に応答するために、上位レイヤによって設定されたハンドラへの関数ポインタ。
mServiceMgr
WeaveServiceManager *
Service を検索して接続するために使用するサービス マネージャー ポインタ。

パブリック関数

DisablePrimaryTunnel(void)
void
プライマリ トンネルを無効にします。
EnablePrimaryTunnel(void)
void
プライマリ トンネルを有効にします。
GetAgentStateName(const AgentState state)
const char *
WeaveTunnelAgentState の名前を取得します。
GetTimeMsec(void)
uint64_t
システム時間をミリ秒単位で取得します。
GetWeaveTunnelAgentState(void)
TunnelAgent の状態を取得します。
Init(InetLayer *inet, WeaveExchangeManager *exchMgr, uint64_t dstNodeId, WeaveAuthMode authMode, WeaveServiceManager *svcMgr, const char *intfName, uint8_t role, void *appContext)
Tunnel エージェントを初期化します。
Init(InetLayer *inet, WeaveExchangeManager *exchMgr, uint64_t dstNodeId, IPAddress dstIPAddr, WeaveAuthMode authMode, const char *intfName, uint8_t role, void *appContext)
Tunnel エージェントを初期化します。
IsPrimaryTunnelEnabled(void) const
bool
プライマリ トンネルが有効になっているかどうかを確認します。
IsPrimaryTunnelRoutingRestricted(void)
bool
プライマリ トンネルがサービスによるルーティング制限の対象であるかどうかを確認します。
IsTunnelRoutingRestricted(void)
bool
トンネルがサービスによるルーティング制限の対象であるかどうかを確認します。
NetworkOnlineCheckResult(TunnelType tunType, bool isOnline)
void
ネットワーク オンライン チェッカーの結果が利用可能になったときにプラットフォームによって呼び出されるコールバック。
ResetPrimaryReconnectBackoff(bool reconnectImmediately)
プライマリ トンネルの再接続時間をリセットします。
SetAuthMode(const WeaveAuthMode authMode)
void
トンネルの WeaveAuthMode を設定します。
SetDestination(const uint64_t nodeId, const IPAddress ipAddr, const uint16_t servicePort)
void
トンネルの宛先 nodeId、IPAddress、ポートを設定します。
SetTunnelingDeviceRole(const Role role)
void
トンネルのトンネリング デバイス ロール(BorderGateway、StandaloneDevice、MobileDevice)を設定します。
Shutdown(void)
トンネル エージェントをシャットダウンします。
StartServiceTunnel(void)
サービス トンネルを起動します。
StartServiceTunnel(uint64_t dstNodeId, IPAddress dstIPAddr, WeaveAuthMode authMode)
サービス トンネルを起動します。
StopServiceTunnel(void)
void
Service へのトンネル接続を閉じます。
StopServiceTunnel(WEAVE_ERROR err)
void
Service へのトンネル接続を閉じます。

静的パブリック関数

RecvdFromShortcutUDPTunnel(WeaveMessageLayer *msgLayer, PacketBuffer *message)
void
ボーダー ゲートウェイとモバイル デバイス間のショートカット UDP トンネル経由でトンネリングされた IPv6 パケットを受信し、トンネル ヘッダー内から生の IPv6 パケットをカプセル化解除した後にトンネル エンドポイント インターフェースに転送するハンドラ。
RecvdFromTunnelEndPoint(TunEndPoint *tunEP, PacketBuffer *message)
void
トンネル エンドポイント インターフェースから IPv6 パケットを受信し、トンネル ヘッダー内に IPv6 パケットをカプセル化してから Service TCP 接続を介して Service に転送するハンドラ、またはショートカット トンネルを介して Mobile クライアントに転送するためのハンドラ。

公開タイプ

AgentState

 AgentState

サービスへの接続に関連するトンネル エージェントの状態。

プロパティ
kState_BkupOnlyTunModeEstablished

Service へのバックアップ トンネルが確立されたことを示すために使用されます。

kState_Initialized_NoTunnel

トンネル エージェントが初期化されているが、トンネルが確立されていないことを示すために使用されます。

kState_NotInitialized

トンネル エージェントが初期化されていないことを示すために使用されます。

kState_PrimaryAndBkupTunModeEstablished

プライマリ トンネルとバックアップ トンネルの両方が確立されたことを示すために使用されます。

kState_PrimaryTunModeEstablished

Service へのプライマリ トンネルが確立されたことを示すために使用されます。

AgentState

enum nl::Weave::Profiles::WeaveTunnel::WeaveTunnelAgent::AgentState AgentState

サービスへの接続に関連するトンネル エージェントの状態。

OnServiceTunnelReconnectNotifyFunct

void(* OnServiceTunnelReconnectNotifyFunct)(TunnelType tunType, const char *reconnectHost, const uint16_t reconnectPort, void *appCtxt)

Service からトンネル再接続を受信したときに、上位レイヤによって設定されたハンドラへの関数ポインタ。

詳細
パラメータ
[in] tunType
トンネルのタイプ(プライマリまたはバックアップ)。
[in] reconnectHost
再接続するために Service によって提供されるホスト名。
[in] reconnectPort
再接続するために Service によって提供される宛先ポート。
[in] appCtxt
アプリ コンテキスト オブジェクトへのポインタ

OnServiceTunnelStatusNotifyFunct

void(* OnServiceTunnelStatusNotifyFunct)(WeaveTunnelConnectionMgr::TunnelConnNotifyReasons reason, WEAVE_ERROR err, void *appCtxt)

Service へのトンネルに関連するさまざまな通知に応答するために、上位レイヤによって設定されたハンドラへの関数ポインタ。

詳細
パラメータ
[in] reason
アプリケーションへのステータス通知の理由。
[in] err
Weave エラーが発生しました(ある場合)
[in] appCtxt
アプリ コンテキスト オブジェクトへのポインタ

PlatformNetworkOnlineCheck

void(* PlatformNetworkOnlineCheck)(TunnelType tunType, void *appCtxt)

ネットワーク レベルのオンライン チェックを実行するために、アプリケーションが提供するハンドラへの関数ポインタ。

詳細
パラメータ
[in] tunType
トンネルのタイプ(プライマリまたはバックアップ)。
[in] appCtxt
アプリ コンテキスト オブジェクトへのポインタ

WeaveTunnelFlags

 WeaveTunnelFlags

Weave トンネルのフラグビット。

プロパティ
kTunnelFlag_BackupEnabled

バックアップ トンネルが有効な場合に設定されます。

kTunnelFlag_BackupRestricted

バックアップ トンネルのルーティングが制限されている場合に設定されます。

kTunnelFlag_PrimaryEnabled

プライマリ トンネルが有効な場合に設定されます。

kTunnelFlag_PrimaryRestricted

プライマリ トンネルのルーティングが制限されている場合に設定されます。

WeaveTunnelFlags

enum nl::Weave::Profiles::WeaveTunnel::WeaveTunnelAgent::WeaveTunnelFlags WeaveTunnelFlags

Weave トンネルのフラグビット。

パブリック属性

NetworkOnlineCheck

PlatformNetworkOnlineCheck NetworkOnlineCheck

OnServiceTunReconnectNotify

OnServiceTunnelReconnectNotifyFunct OnServiceTunReconnectNotify

OnServiceTunStatusNotify

OnServiceTunnelStatusNotifyFunct OnServiceTunStatusNotify

Service へのトンネルに関連するさまざまな通知に応答するために、上位レイヤによって設定されたハンドラへの関数ポインタ。

mServiceMgr

WeaveServiceManager * mServiceMgr

Service を検索して接続するために使用するサービス マネージャー ポインタ。

パブリック関数

DisablePrimaryTunnel

void DisablePrimaryTunnel(
  void
)

プライマリ トンネルを無効にします。

プライマリ トンネルを無効にします。

EnablePrimaryTunnel

void EnablePrimaryTunnel(
  void
)

プライマリ トンネルを有効にします。

プライマリ トンネルを有効にします。

GetAgentStateName

const char * GetAgentStateName(
  const AgentState state
)

WeaveTunnelAgentState の名前を取得します。

GetTimeMsec

uint64_t GetTimeMsec(
  void
)

システム時間をミリ秒単位で取得します。

システム時刻を取得します。システム時刻が利用できない場合は、モノトニック時刻をミリ秒単位で取得します。

で確認できます。

GetWeaveTunnelAgentState

AgentState GetWeaveTunnelAgentState(
  void
)

TunnelAgent の状態を取得します。

詳細
戻り値
AgentState: WeaveTunnelAgent の現在の状態。

init

WEAVE_ERROR Init(
  InetLayer *inet,
  WeaveExchangeManager *exchMgr,
  uint64_t dstNodeId,
  WeaveAuthMode authMode,
  WeaveServiceManager *svcMgr,
  const char *intfName,
  uint8_t role,
  void *appContext
)

Tunnel エージェントを初期化します。

これにより、Tunnel エンドポイント オブジェクトが作成され、トンネル インターフェースが設定され、メンバー変数、コールバック、WeaveTunnelControl が初期化されます。

init

WEAVE_ERROR Init(
  InetLayer *inet,
  WeaveExchangeManager *exchMgr,
  uint64_t dstNodeId,
  IPAddress dstIPAddr,
  WeaveAuthMode authMode,
  const char *intfName,
  uint8_t role,
  void *appContext
)

Tunnel エージェントを初期化します。

これにより、Tunnel エンドポイント オブジェクトが作成され、トンネル インターフェースが設定され、メンバー変数、コールバック、WeaveTunnelControl が初期化されます。

IsPrimaryTunnelEnabled

bool IsPrimaryTunnelEnabled(
  void
) const 

プライマリ トンネルが有効になっているかどうかを確認します。

詳細
戻り値
有効になっている場合は true、それ以外の場合は false です。

IsPrimaryTunnelRoutingRestricted

bool IsPrimaryTunnelRoutingRestricted(
  void
)

プライマリ トンネルがサービスによるルーティング制限の対象であるかどうかを確認します。

プライマリ トンネルがルーティング制限の対象であるかどうかを確認します。

詳細
戻り値
プライマリ トンネルが確立されていて、サービスによるルーティング制限の対象である場合は true。

IsTunnelRoutingRestricted

bool IsTunnelRoutingRestricted(
  void
)

トンネルがサービスによるルーティング制限の対象であるかどうかを確認します。

トンネルがルーティング制限の対象であるかどうかを確認します。

詳細
戻り値
プライマリ トンネルまたはバックアップ トンネルが確立され、いずれかにサービスによるルーティング制限が適用される場合は true を返します。

NetworkOnlineCheckResult

void NetworkOnlineCheckResult(
  TunnelType tunType,
  bool isOnline
)

ネットワーク オンライン チェッカーの結果が利用可能になったときにプラットフォームによって呼び出されるコールバック。

詳細
パラメータ
[in] tunType
ネットワーク接続チェックが実行されるインターフェースに対応するトンネルタイプ。
[in] isOnline
ネットワークがオンラインの場合は true、それ以外の場合は false。

ResetPrimaryReconnectBackoff

WEAVE_ERROR ResetPrimaryReconnectBackoff(
  bool reconnectImmediately
)

プライマリ トンネルの再接続時間をリセットします。

をご覧ください。

詳細
パラメータ
[in] reconnectImmediately
すぐに再接続する必要がある場合は true、それ以外の場合は構成された再接続タイムアウトを使用します。

SetAuthMode

void SetAuthMode(
  const WeaveAuthMode authMode
)

トンネルの WeaveAuthMode を設定します。

詳細
パラメータ
[in] authMode
ピアで使用される Weave 認証モード。

SetDestination

void SetDestination(
  const uint64_t nodeId,
  const IPAddress ipAddr,
  const uint16_t servicePort
)

トンネルの宛先 nodeId、IPAddress、ポートを設定します。

トンネルの宛先 nodeId と IPAddress を設定します。

詳細
パラメータ
[in] nodeId
宛先ノードのノード ID。
[in] ipAddr
宛先ノードの IP アドレス。
[in] servicePort
宛先ノードのポート。

SetTunnelingDeviceRole

void SetTunnelingDeviceRole(
  const Role role
)

トンネルのトンネリング デバイス ロール(BorderGateway、StandaloneDevice、MobileDevice)を設定します。

トンネルのトンネリング デバイスのロール(BorderGateway またはスタンドアロン)を設定します。

詳細
パラメータ
[in] role
トンネル エージェントが担うロールBorder Gateway(ボーダー ゲートウェイ)、スタンドアロン、モバイル デバイス

シャットダウン

WEAVE_ERROR Shutdown(
  void
)

トンネル エージェントをシャットダウンします。

これにより、Service への接続が破棄され、トンネル インターフェースに関連付けられたアドレスとルートを削除した後に、TunEndPoint インターフェースが終了します。

これにより、Service への接続が破棄され、トンネル インターフェースに関連付けられたアドレスとルートを削除した後に、TunEndPoint インターフェースが終了します。

詳細
戻り値
成功した場合は WEAVE_NO_ERROR、それ以外の場合は対応する WEAVE_ERROR タイプ。

StartServiceTunnel

WEAVE_ERROR StartServiceTunnel(
  void
)

サービス トンネルを起動します。

これにより、トンネルが有効になり、Service への接続を確立しようとします。

Service への接続を確立しようとし、トンネル インターフェースにファブリック ルートを設定します。

詳細
戻り値
成功した場合は WEAVE_NO_ERROR、それ以外の場合は対応する WEAVE_ERROR タイプ。

StartServiceTunnel

WEAVE_ERROR StartServiceTunnel(
  uint64_t dstNodeId,
  IPAddress dstIPAddr,
  WeaveAuthMode authMode
)

サービス トンネルを起動します。

これにより、トンネルが有効になり、Service への接続を確立しようとします。

StopServiceTunnel

void StopServiceTunnel(
  void
)

Service へのトンネル接続を閉じます。

StopServiceTunnel

void StopServiceTunnel(
  WEAVE_ERROR err
)

Service へのトンネル接続を閉じます。

詳細
パラメータ
[in] err
この StopServiceTunnel リクエストに特定の理由がない場合は WEAVE_NO_ERROR が返されます。それ以外の場合は、エラーの原因が渡されます。

WeaveTunnelAgent

 WeaveTunnelAgent(
  void
)

静的パブリック関数

RecvdFromShortcutUDPTunnel

void RecvdFromShortcutUDPTunnel(
  WeaveMessageLayer *msgLayer,
  PacketBuffer *message
)

ボーダー ゲートウェイとモバイル デバイス間のショートカット UDP トンネル経由でトンネリングされた IPv6 パケットを受信し、トンネル ヘッダー内から生の IPv6 パケットをカプセル化解除した後にトンネル エンドポイント インターフェースに転送するハンドラ。

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

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

RecvdFromTunnelEndPoint

void RecvdFromTunnelEndPoint(
  TunEndPoint *tunEP,
  PacketBuffer *message
)

トンネル エンドポイント インターフェースから IPv6 パケットを受信し、トンネル ヘッダー内に IPv6 パケットをカプセル化してから Service TCP 接続を介して Service に転送するハンドラ、またはショートカット トンネルを介して Mobile クライアントに転送するためのハンドラ。

トンネル エンドポイント インターフェースから IPv6 パケットを受信し、トンネル ヘッダー内に IPv6 パケットをカプセル化してから Service TCP 接続を介して Service に転送するハンドラ、またはローカル トンネル経由で Mobile クライアントに転送するハンドラ。

Service 接続がまだセットアップされていない場合、接続がセットアップされるまでメッセージはキューに追加されます。モバイル クライアント デバイスへのトンネリングでは、ネクストホップ ネイバー テーブルが参照されます。

Service 接続がまだセットアップされていない場合、接続がセットアップされるまでメッセージはキューに追加されます。モバイル クライアント デバイスへのトンネリングでは、ネクストホップ ネイバー テーブルが参照されます。

詳細
パラメータ
[in] tunEP
TunEndPoint オブジェクトへのポインタ。
[in] message
未加工の IPv6 パケットを保持する PacketBuffer オブジェクトへのポインタ。