nl:: Weave:: Profiles:: WeaveTunnel:: WeaveTunnelAgent
摘要
构造函数和析构函数 |
|
---|---|
WeaveTunnelAgent(void)
|
公共类型 |
|
---|---|
AgentState{
|
枚举 隧道代理与服务的连接状态。 |
AgentState
|
typedef 隧道代理与服务的连接状态。 |
OnServiceTunnelReconnectNotifyFunct)(TunnelType tunType, const char *reconnectHost, const uint16_t reconnectPort, void *appCtxt)
|
typedefvoid(*
从 Service 收到隧道重新连接时,指向较高层设置的处理程序的函数指针。 |
OnServiceTunnelStatusNotifyFunct)(WeaveTunnelConnectionMgr::TunnelConnNotifyReasons reason, WEAVE_ERROR err, void *appCtxt)
|
typedefvoid(*
指向处理程序的函数指针,由较高层设置,用于对与连接到 Service 的隧道相关的各种通知执行操作。 |
PlatformNetworkOnlineCheck)(TunnelType tunType, void *appCtxt)
|
typedefvoid(*
指向应用提供的处理程序的函数指针,用于执行网络级在线检查。 |
WeaveTunnelFlags{
|
枚举 Weave Tunnel 标志位。 |
WeaveTunnelFlags
|
typedef Weave Tunnel 标志位。 |
公共属性 |
|
---|---|
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)
|
初始化隧道代理。
|
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
关闭与 Service 的 Tunnel 连接。
|
StopServiceTunnel(WEAVE_ERROR err)
|
void
关闭与 Service 的 Tunnel 连接。
|
公共静态函数 |
|
---|---|
RecvdFromShortcutUDPTunnel(WeaveMessageLayer *msgLayer, PacketBuffer *message)
|
void
处理程序,用于通过边界网关和移动设备之间的快捷方式 UDP 隧道接收隧道式 IPv6 数据包,并在从隧道标头内解封原始 IPv6 数据包后转发到隧道端点接口。
|
RecvdFromTunnelEndPoint(TunEndPoint *tunEP, PacketBuffer *message)
|
void
用于处理来自 Tunnel EndPoint 接口的 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)
从 Service 收到隧道重新连接时,指向较高层设置的处理程序的函数指针。
具体说明 | |||||||||
---|---|---|---|---|---|---|---|---|---|
参数 |
|
OnServiceTunnelStatusNotifyFunct
void(* OnServiceTunnelStatusNotifyFunct)(WeaveTunnelConnectionMgr::TunnelConnNotifyReasons reason, WEAVE_ERROR err, void *appCtxt)
指向处理程序的函数指针,由较高层设置,用于对与连接到 Service 的隧道相关的各种通知执行操作。
具体说明 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
PlatformNetworkOnlineCheck
void(* PlatformNetworkOnlineCheck)(TunnelType tunType, void *appCtxt)
指向应用提供的处理程序的函数指针,用于执行网络级在线检查。
具体说明 | |||||
---|---|---|---|---|---|
参数 |
|
WeaveTunnelFlags
WeaveTunnelFlags
Weave Tunnel 标志位。
属性 | |
---|---|
kTunnelFlag_BackupEnabled
|
在启用备用隧道时设置。 |
kTunnelFlag_BackupRestricted
|
在备用隧道限制路由时进行设置。 |
kTunnelFlag_PrimaryEnabled
|
在主隧道启用时设置。 |
kTunnelFlag_PrimaryRestricted
|
当主隧道限制路由时进行设置。 |
WeaveTunnelFlags
enum nl::Weave::Profiles::WeaveTunnel::WeaveTunnelAgent::WeaveTunnelFlags WeaveTunnelFlags
Weave Tunnel 标志位。
公共属性
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 )
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 )
当网络在线检查工具的结果可用时,平台调用的回调。
具体说明 | |||||
---|---|---|---|---|---|
参数 |
|
ResetPrimaryReconnectBackoff
WEAVE_ERROR ResetPrimaryReconnectBackoff( bool reconnectImmediately )
重置主隧道的重新连接时间。
具体说明 | |||
---|---|---|---|
参数 |
|
SetAuthMode
void SetAuthMode( const WeaveAuthMode authMode )
为隧道设置 WeaveAuthMode。
具体说明 | |||
---|---|---|---|
参数 |
|
SetDestination
void SetDestination( const uint64_t nodeId, const IPAddress ipAddr, const uint16_t servicePort )
设置隧道的目标 nodeId、IPAddress 和端口。
设置隧道的目标 nodeId 和 IPAddress。
具体说明 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
SetTunnelingDeviceRole
void SetTunnelingDeviceRole( const Role role )
为隧道设置隧道设备角色(BorderGateway、 StandaloneDevice、MobileDevice)。
为隧道设置隧道设备角色(BorderGateway 与独立)。
具体说明 | |||
---|---|---|---|
参数 |
|
关停
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 的 Tunnel 连接。
StopServiceTunnel
void StopServiceTunnel( WEAVE_ERROR err )
关闭与 Service 的 Tunnel 连接。
具体说明 | |||
---|---|---|---|
参数 |
|
WeaveTunnelAgent
WeaveTunnelAgent( void )
公共静态函数
RecvdFromShortcutUDPTunnel
void RecvdFromShortcutUDPTunnel( WeaveMessageLayer *msgLayer, PacketBuffer *message )
处理程序,用于通过边界网关和移动设备之间的快捷方式 UDP 隧道接收隧道式 IPv6 数据包,并在从隧道标头内解封原始 IPv6 数据包后转发到隧道端点接口。
用于在隧道标头内解封原始 IPv6 数据包后,接收来自服务 TCP 连接的隧道式 IPv6 数据包并转发到隧道 EndPoint 接口的处理程序。
具体说明 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
RecvdFromTunnelEndPoint
void RecvdFromTunnelEndPoint( TunEndPoint *tunEP, PacketBuffer *message )
用于处理来自 Tunnel EndPoint 接口的 IPv6 数据包并转发的处理程序,包含在隧道标头内封装 IPv6 数据包后通过服务 TCP 连接传送到服务,或通过快捷方式隧道传送到移动客户端。
用于处理来自 Tunnel EndPoint 接口的 IPv6 数据包并转发的处理程序,这些数据包会在隧道标头内封装 IPv6 数据包后通过服务 TCP 连接传送到服务,或通过本地隧道传送到移动客户端。
如果服务连接尚未建立,则消息会排队等待,直到连接建立为止。对于连接到移动客户端设备的隧道,系统会引用下一个跃点相邻表。
如果服务连接尚未建立,则消息会排队等待,直到连接建立为止。对于连接到移动客户端设备的隧道,系统会引用下一个跃点相邻表。
具体说明 | |||||
---|---|---|---|---|---|
参数 |
|