nl::Weave::Profiles::WeaveTunnel::WeaveTunnelControl

摘要

构造函数和析构函数

WeaveTunnelControl(void)

公共类型

TunnelStatusRcvdFunct)(uint8_t tType, StatusReport &tunStatus) typedef
void(*
指向由更高层设置的处理程序的函数指针,以便在收到 StatusReport 消息以响应发送的隧道控制消息时执行操作。

公共属性

OnTunStatusRcvd
mCtrlResponseTimeout
uint16_t
控制消息的响应的超时时间(以秒为单位)。
mShortcutTunnelAdvInterval
uint16_t
定期快捷方式隧道通告的时间间隔(以秒为单位)。

公共函数

Close(void)
通过关闭所有待处理的广告交易平台上下文并重置成员来关闭 WeaveTunnelControl
DisableShortcutTunneling(void)
void
停用从边界网关或移动客户端发送广告的快捷方式隧道,以及监听来自快捷方式隧道对等方的广告。
EnableShortcutTunneling(void)
void
通过从边界网关或移动客户端发送广告并监听快捷方式隧道对应方的广告,启用快捷方式隧道。
Init(WeaveTunnelAgent *tunAgent, TunnelStatusRcvdFunct statusRcvd)
初始化 WeaveTunnelControl 以设置相关成员,例如 Weave Tunnel Agent 和回调。
IsPeerInShortcutTunnelCache(uint64_t peerId)
bool
验证对等方是否存在于隧道快捷方式缓存中,以便在本地发送。
Reconnect(WeaveTunnelConnectionMgr *conMgr)
重新连接对等节点。
SendBorderRouterAdvertise(void)
发送边界路由器通告消息,通告其网络结构 ID。
SendMessageOverTunnelShortcut(uint64_t peerId, WeaveMessageInfo *msgHdr, PacketBuffer *msg)
通过隧道快捷方式发送消息。
SendMobileClientAdvertise(void)
向移动客户端发送通告消息,通告其节点 ID。
SendTunnelClose(WeaveTunnelConnectionMgr *conMgr)
使用一组隧道路由向对等节点发送隧道关闭控制消息。
SendTunnelOpen(WeaveTunnelConnectionMgr *conMgr, WeaveTunnelRoute *tunRoute)
使用一组隧道路由向对等节点发送隧道开放控制消息。
SendTunnelRouteUpdate(WeaveTunnelConnectionMgr *conMgr, WeaveTunnelRoute *tunRoute)
使用一组隧道路由向对等节点发送“隧道路由更新”控制消息。

公共静态函数

HandleShortcutTunnelAdvertiseMessage(ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload)
void
WeaveMessageLayer 注册的函数,用于监听 Shortcut 隧道广告并更新缓存。

公共类型

TunnelStatusRcvdFunct

void(* TunnelStatusRcvdFunct)(uint8_t tType, StatusReport &tunStatus)

指向由更高层设置的处理程序的函数指针,以便在收到 StatusReport 消息以响应发送的隧道控制消息时执行操作。

详细信息
参数
[in] tType
隧道类型,即“主要”或“备用”。
[in] tunStatus
对隧道控件 StatusReport 消息的引用。

公共属性

OnTunStatusRcvd

TunnelStatusRcvdFunct OnTunStatusRcvd

mCtrlResponseTimeout

uint16_t mCtrlResponseTimeout

控制消息的响应的超时时间(以秒为单位)。

mShortcutTunnelAdvInterval

uint16_t mShortcutTunnelAdvInterval

定期快捷方式隧道通告的时间间隔(以秒为单位)。

公共函数

关闭

WEAVE_ERROR Close(
  void
)

通过关闭所有待处理的广告交易平台上下文并重置成员来关闭 WeaveTunnelControl

详细信息
返回值
WEAVE_NO_ERROR。

DisableShortcutTunneling

void DisableShortcutTunneling(
  void
)

停用从边界网关或移动客户端发送广告的快捷方式隧道,以及监听来自快捷方式隧道对等方的广告。

EnableShortcutTunneling

void EnableShortcutTunneling(
  void
)

通过从边界网关或移动客户端发送广告并监听快捷方式隧道对应方的广告,启用快捷方式隧道。

Init

WEAVE_ERROR Init(
  WeaveTunnelAgent *tunAgent,
  TunnelStatusRcvdFunct statusRcvd
)

初始化 WeaveTunnelControl 以设置相关成员,例如 Weave Tunnel Agent 和回调。

详细信息
参数
[in] tunAgent
指向 WeaveTunnelAgent 对象的指针。
[in] statusRcvd
指向 StatusRcvd 处理程序回调的指针。
返回值
WEAVE_NO_ERROR

IsPeerInShortcutTunnelCache

bool IsPeerInShortcutTunnelCache(
  uint64_t peerId
)

验证对等方是否存在于隧道快捷方式缓存中,以便在本地发送。

重新连接

WEAVE_ERROR Reconnect(
  WeaveTunnelConnectionMgr *conMgr
)

重新连接对等节点。

SendBorderRouterAdvertise

WEAVE_ERROR SendBorderRouterAdvertise(
  void
)

发送边界路由器通告消息,通告其网络结构 ID。

SendMessageOverTunnelShortcut

WEAVE_ERROR SendMessageOverTunnelShortcut(
  uint64_t peerId,
  WeaveMessageInfo *msgHdr,
  PacketBuffer *msg
)

通过隧道快捷方式发送消息。

SendMobileClientAdvertise

WEAVE_ERROR SendMobileClientAdvertise(
  void
)

向移动客户端发送通告消息,通告其节点 ID。

SendTunnelClose

WEAVE_ERROR SendTunnelClose(
  WeaveTunnelConnectionMgr *conMgr
)

使用一组隧道路由向对等节点发送隧道关闭控制消息。

向对等节点发送隧道关闭控制消息。

详细信息
参数
[in] conMgr
指向 WeaveTunnelConnectionMgr 对象的指针。
返回值
WEAVE_ERROR WEAVE_NO_ERROR 表示成功,否则表示出现错误。

SendTunnelOpen

WEAVE_ERROR SendTunnelOpen(
  WeaveTunnelConnectionMgr *conMgr,
  WeaveTunnelRoute *tunRoute
)

使用一组隧道路由向对等节点发送隧道开放控制消息。

详细信息
参数
[in] conMgr
指向 WeaveTunnelConnectionMgr 对象的指针。
[in] tunRoutes
要添加到路由表的前缀路由的列表。
返回值
WEAVE_ERROR WEAVE_NO_ERROR 表示成功,否则表示出现错误。

SendTunnelRouteUpdate

WEAVE_ERROR SendTunnelRouteUpdate(
  WeaveTunnelConnectionMgr *conMgr,
  WeaveTunnelRoute *tunRoute
)

使用一组隧道路由向对等节点发送“隧道路由更新”控制消息。

详细信息
参数
[in] conMgr
指向 WeaveTunnelConnectionMgr 对象的指针。
[in] tunRoutes
要添加到路由表的前缀路由的列表。
返回值
WEAVE_ERROR WEAVE_NO_ERROR 表示成功,否则表示出现错误。

WeaveTunnelControl

 WeaveTunnelControl(
  void
)

公共静态函数

HandleShortcutTunnelAdvertiseMessage

void HandleShortcutTunnelAdvertiseMessage(
  ExchangeContext *ec,
  const IPPacketInfo *pktInfo,
  const WeaveMessageInfo *msgInfo,
  uint32_t profileId,
  uint8_t msgType,
  PacketBuffer *payload
)

WeaveMessageLayer 注册的函数,用于监听 Shortcut 隧道广告并更新缓存。