NL::编织::简介::编织隧道::编织隧道连接管理器
#include <src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.h>
该类封装了所有 Weave 隧道连接状态以及相关的管理逻辑和功能。
概括
此类的一个实例将用于管理每个接口上的隧道,通过这些接口可以存在通往服务的 Weave 隧道。
构造函数和析构函数 | |
---|---|
WeaveTunnelConnectionMgr (void) |
公共类型 | |
---|---|
ConnectPolicyCallback )(void *const appState, ReconnectParam &reconnectParam, uint32_t &delayMsec) | 类型定义void(* 回调以获取在下一个隧道重新连接之前等待的时间间隔。 |
TunnelConnNotifyReasons { | 枚举 |
TunnelConnNotifyReasons | 类型定义 |
TunnelConnectionState { | 枚举 |
TunnelConnectionState | 类型定义 |
公共属性 | |
---|---|
mServiceConnDelayPolicyCallback |
公共职能 | |
---|---|
Init ( WeaveTunnelAgent *tunAgent, TunnelType tunType, SrcInterfaceType srcIntfType, const char *connIntfName) | |
ServiceTunnelClose ( WEAVE_ERROR err) | void 关闭服务隧道。 |
SetInterfaceName (const char *intfName) | void 为隧道连接设置 InterfaceName。 |
SetInterfaceType (const SrcInterfaceType srcIntfType) | void 为隧道连接设置 SrcInterfaceType。 |
Shutdown (void) | void |
StopAndReconnectTunnelConn ( ReconnectParam & reconnParam) | void 停止服务隧道连接并再次尝试重新连接。 |
TryConnectingNow (void) | 尝试建立与服务的连接。 |
公共静态函数 | |
---|---|
DefaultReconnectPolicyCallback (void *const appstate, ReconnectParam & reconnectParam, uint32_t & delayMsec) | void 用于获取下次连接到服务的默认策略实现。 |
HandleServiceConnectionClosed ( WeaveConnection *con, WEAVE_ERROR conErr) | void 服务 TCP 连接关闭时调用的处理程序。 |
HandleServiceConnectionComplete ( WeaveConnection *con, WEAVE_ERROR conErr) | void 服务 TCP 连接完成时调用的处理程序。 |
RecvdFromService ( WeaveConnection *con, const WeaveMessageInfo *msgInfo, PacketBuffer *message) | void 处理程序从服务 TCP 连接接收隧道 IPv6 数据包,并在从隧道标头内部解封装原始 IPv6 数据包后转发到隧道端点接口。 |
ServiceMgrStatusHandler (void *appState, WEAVE_ERROR err, StatusReport *report) | void 如果服务管理器未能建立到服务的 TCP 连接,则调用处理程序。 |
公共类型
连接策略回调
void(* ConnectPolicyCallback)(void *const appState, ReconnectParam &reconnectParam, uint32_t &delayMsec)
回调以获取在下一个隧道重新连接之前等待的时间间隔。
细节 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
TunnelConnNotifyReasons
TunnelConnNotifyReasons
TunnelConnNotifyReasons
enum nl::Weave::Profiles::WeaveTunnel::WeaveTunnelConnectionMgr::TunnelConnNotifyReasons TunnelConnNotifyReasons
隧道连接状态
TunnelConnectionState
隧道连接状态
enum nl::Weave::Profiles::WeaveTunnel::WeaveTunnelConnectionMgr::TunnelConnectionState TunnelConnectionState
公共属性
mServiceConnDelayPolicyCallback
ConnectPolicyCallback mServiceConnDelayPolicyCallback
公共职能
在里面
WEAVE_ERROR Init( WeaveTunnelAgent *tunAgent, TunnelType tunType, SrcInterfaceType srcIntfType, const char *connIntfName )
设置接口名称
void SetInterfaceName( const char *intfName )
为隧道连接设置 InterfaceName。
细节 | |||
---|---|---|---|
参数 |
|
设置接口类型
void SetInterfaceType( const SrcInterfaceType srcIntfType )
为隧道连接设置 SrcInterfaceType。
细节 | |||
---|---|---|---|
参数 |
|
StopAndReconnectTunnelConn
void StopAndReconnectTunnelConn( ReconnectParam & reconnParam )
停止服务隧道连接并再次尝试重新连接。
细节 | |||
---|---|---|---|
参数 |
|
编织隧道连接管理器
WeaveTunnelConnectionMgr( void )
公共静态函数
DefaultReconnectPolicyCallback
void DefaultReconnectPolicyCallback( void *const appstate, ReconnectParam & reconnectParam, uint32_t & delayMsec )
用于获取下次连接到服务的默认策略实现。
此策略在递增的窗口上选择一个随机时隙(具有毫秒分辨率),遵循高达 WEAVE_CONFIG_TUNNELING_RECONNECT_MAX_FIBONACCI_INDEX 的斐波那契数列。
细节 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
处理服务连接关闭
void HandleServiceConnectionClosed( WeaveConnection *con, WEAVE_ERROR conErr )
服务 TCP 连接关闭时调用的处理程序。
如果 mServiceConKeepAlive 设置为 true,设备将尝试重新建立与服务的连接。
随后,设备会尝试重新建立与服务的连接。
细节 | |||||
---|---|---|---|---|---|
参数 |
|
处理服务连接完成
void HandleServiceConnectionComplete( WeaveConnection *con, WEAVE_ERROR conErr )
服务 TCP 连接完成时调用的处理程序。
设备继续从该功能向服务发起隧道控制命令。
设备继续从该功能向服务发起隧道控制命令。
细节 | |||||
---|---|---|---|---|---|
参数 |
|
从服务接收
void RecvdFromService( WeaveConnection *con, const WeaveMessageInfo *msgInfo, PacketBuffer *message )
处理程序从服务 TCP 连接接收隧道 IPv6 数据包,并在从隧道标头内部解封装原始 IPv6 数据包后转发到隧道端点接口。
细节 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
ServiceMgrStatusHandler
void ServiceMgrStatusHandler( void *appState, WEAVE_ERROR err, StatusReport *report )
如果服务管理器未能建立到服务的 TCP 连接,则调用处理程序。