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(*
サービスからトンネル再接続を受信したときに上位レイヤによって設定されたハンドラへの関数ポインタ。
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
織りトンネルのフラグビット。
WeaveTunnelFlags typedef
織りトンネルのフラグビット。

パブリック属性

NetworkOnlineCheck
OnServiceTunReconnectNotify
OnServiceTunStatusNotify
Service へのトンネルに関連するさまざまな通知を処理するために上位レイヤによって設定されたハンドラへの関数ポインタ。
mServiceMgr
WeaveServiceManager *
Service の検索と接続に使用する Service Manager のポインタ。

パブリック関数

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)
トンネル エージェントを初期化します。
Init(InetLayer *inet, WeaveExchangeManager *exchMgr, uint64_t dstNodeId, IPAddress dstIPAddr, WeaveAuthMode authMode, const char *intfName, uint8_t role, void *appContext)
トンネル エージェントを初期化します。
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
Tunnel の Tunneling デバイスのロール(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 パケットをカプセル化した後にサービス TCP 接続経由でサービスに転送するハンドラ、またはショートカット トンネルを介してモバイル クライアントに転送するハンドラ。

パブリック タイプ

AgentState

 AgentState

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

プロパティ
kState_BkupOnlyTunModeEstablished

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

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)

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

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

織りトンネルのフラグビット。

プロパティ
kTunnelFlag_BackupEnabled

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

kTunnelFlag_BackupRestricted

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

kTunnelFlag_PrimaryEnabled

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

kTunnelFlag_PrimaryRestricted

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

WeaveTunnelFlags

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

織りトンネルのフラグビット。

パブリック属性

NetworkOnlineCheck

PlatformNetworkOnlineCheck NetworkOnlineCheck

OnServiceTunReconnectNotify

OnServiceTunnelReconnectNotifyFunct OnServiceTunReconnectNotify

OnServiceTunStatusNotify

OnServiceTunnelStatusNotifyFunct OnServiceTunStatusNotify

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

mServiceMgr

WeaveServiceManager * mServiceMgr

Service の検索と接続に使用する Service Manager のポインタ。

パブリック関数

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
)

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

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

init

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

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

これにより、トンネル エンドポイント オブジェクトが作成され、トンネル インターフェースが設定され、メンバー変数、コールバック、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
)

Tunnel の Tunneling デバイスのロール(BorderGateway、StandaloneDevice、MobileDevice)を設定します。

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

詳細
パラメータ
[in] role
トンネル エージェントが想定するロール(ボーダー ゲートウェイ、スタンドアロン、モバイル デバイス)。

シャットダウン

WEAVE_ERROR Shutdown(
  void
)

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

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

これにより、サービスへの接続が破棄され、トンネル インターフェースに関連付けられたアドレスとルートを削除した後に 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
WEAVE_NO_ERROR は、この StopServiceTunnel リクエストの具体的な理由がない場合は、エラーの原因が渡されます。

WeaveTunnelAgent

 WeaveTunnelAgent(
  void
)

静的パブリック関数

RecvdFromShortcutUDPTunnel

void RecvdFromShortcutUDPTunnel(
  WeaveMessageLayer *msgLayer,
  PacketBuffer *message
)

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

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

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

RecvdFromTunnelEndPoint

void RecvdFromTunnelEndPoint(
  TunEndPoint *tunEP,
  PacketBuffer *message
)

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

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

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

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

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