nl ::織り::プロファイル:: WeaveTunnel :: WeaveTunnelAgent

概要

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

WeaveTunnelAgent (void)

パブリックタイプ

AgentState {
kState_NotInitialized = 0,
kState_Initialized_NoTunnel = 1,
kState_PrimaryTunModeEstablished = 2,
kState_BkupOnlyTunModeEstablished = 3,
kState_PrimaryAndBkupTunModeEstablished = 4
}
列挙型
サービスへの接続に関するトンネル エージェントの状態。
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(*
サービスへのトンネルに関連するさまざまな通知に基づいて動作する、上位層によって設定されたハンドラーへの関数ポインター。
PlatformNetworkOnlineCheck )(TunnelType tunType, void *appCtxt) typedef
void(*
ネットワークレベルのオンラインチェックを実行するためにアプリケーションによって提供されるハンドラーへの関数ポインター。
WeaveTunnelFlags {
kTunnelFlag_PrimaryEnabled = 0x01,
kTunnelFlag_BackupEnabled = 0x02,
kTunnelFlag_PrimaryRestricted = 0x04,
kTunnelFlag_BackupRestricted = 0x08
}
列挙型
トンネルフラグビットを織ります。
WeaveTunnelFlags typedef
トンネルフラグビットを織ります。

パブリック属性

NetworkOnlineCheck
OnServiceTunReconnectNotify
OnServiceTunStatusNotify
サービスへのトンネルに関連するさまざまな通知に基づいて動作する、上位層によって設定されたハンドラーへの関数ポインター。
mServiceMgr
WeaveServiceManager *
サービスを検索して接続するために使用するServiceManagerポインター。

公の行事

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
トンネルのトンネリングデバイスの役割(BorderGateway、StandaloneDevice、MobileDevice)を設定します。
Shutdown (void)
トンネルエージェントをシャットダウンします。
StartServiceTunnel (void)
サービストンネルを開始します。
StartServiceTunnel (uint64_t dstNodeId, IPAddress dstIPAddr, WeaveAuthMode authMode)
サービストンネルを開始します。
StopServiceTunnel (void)
void
サービスへのトンネル接続を閉じます。
StopServiceTunnel ( WEAVE_ERROR err)
void
サービスへのトンネル接続を閉じます。

パブリック静的関数

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

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

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
再接続するためにサービスによって提供されるホスト名。
[in] reconnectPort
再接続するためにサービスによって提供される宛先ポート。
[in] appCtxt
アプリケーションコンテキストオブジェクトへのポインタ

OnServiceTunnelStatusNotifyFunct

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

サービスへのトンネルに関連するさまざまな通知に基づいて動作する、上位層によって設定されたハンドラーへの関数ポインター。

詳細
パラメーター
[in] reason
アプリケーションへのステータス通知の理由。
[in] err
ウィーブエラーが発生した場合
[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

サービスへのトンネルに関連するさまざまな通知に基づいて動作する、上位層によって設定されたハンドラーへの関数ポインター。

mServiceMgrGenericName

WeaveServiceManager * mServiceMgr

サービスを検索して接続するために使用するServiceManagerポインター。

公の行事

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

初期化

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

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

これは、TEトンネルエンドポイント・オブジェクトを作成するトンネルインターフェースを設定し、メンバ変数、コールバックと初期化WeaveTunnelControlを

初期化

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

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

これは、TEトンネルエンドポイント・オブジェクトを作成するトンネルインターフェースを設定し、メンバ変数、コールバックと初期化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
ピアで使用される織り認証モード。

目的地を設定する

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
トンネルエージェントが引き受ける役割。ボーダーゲートウェイ、スタンドアロンまたはモバイルデバイス。

シャットダウン

WEAVE_ERROR Shutdown(
  void
)

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

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

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

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

StartServiceTunnel

WEAVE_ERROR StartServiceTunnel(
  void
)

サービストンネルを開始します。

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

これにより、サービスへの接続が確立され、トンネルインターフェイスへのファブリックルートが設定されます。

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

StartServiceTunnel

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

サービストンネルを開始します。

これにより、トンネルが有効になり、サービスへの接続の確立が試行されます。

StopServiceTunnel

void StopServiceTunnel(
  void
)

サービスへのトンネル接続を閉じます。

StopServiceTunnel

void StopServiceTunnel(
  WEAVE_ERROR err
)

サービスへのトンネル接続を閉じます。

詳細
パラメーター
[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パケットをカプセル化した後にサービスTCP接続を介してサービスに転送するか、ショートカットトンネルを介してモバイルクライアントに転送するハンドラー。

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

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

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

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