nl:: Weave:: Profiles:: WeaveTunnel:: WeaveTunnelAgent
摘要
构造函数和析构函数 |
|
---|---|
WeaveTunnelAgent(void)
|
公共类型 |
|
---|---|
AgentState{
|
枚举 隧道代理与本服务的关联的状态。 |
AgentState
|
typedef 隧道代理与本服务的关联的状态。 |
OnServiceTunnelReconnectNotifyFunct)(TunnelType tunType, const char *reconnectHost, const uint16_t reconnectPort, void *appCtxt)
|
typedefvoid(*
从 Service 收到 Tunnel Reconnect 时,指向由更高层设置的处理程序的函数指针。 |
OnServiceTunnelStatusNotifyFunct)(WeaveTunnelConnectionMgr::TunnelConnNotifyReasons reason, WEAVE_ERROR err, void *appCtxt)
|
typedefvoid(*
指向由更高层设置的处理程序的函数指针,用于处理与连接到 Service 的隧道相关的各种通知。 |
PlatformNetworkOnlineCheck)(TunnelType tunType, void *appCtxt)
|
typedefvoid(*
指向应用提供的用于执行网络级在线检查的处理程序的函数指针。 |
WeaveTunnelFlags{
|
枚举 编织隧道旗帜。 |
WeaveTunnelFlags
|
typedef 编织隧道旗帜。 |
公共属性 |
|
---|---|
NetworkOnlineCheck
|
|
OnServiceTunReconnectNotify
|
|
OnServiceTunStatusNotify
|
指向由更高层设置的处理程序的函数指针,用于处理与服务隧道相关的各种通知。
|
mServiceMgr
|
WeaveServiceManager *
用于查找和连接到服务的服务管理器指针。
|
公共函数 |
|
---|---|
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 的隧道连接。
|
StopServiceTunnel(WEAVE_ERROR err)
|
void
关闭与 Service 的隧道连接。
|
公共静态函数 |
|
---|---|
RecvdFromShortcutUDPTunnel(WeaveMessageLayer *msgLayer, PacketBuffer *message)
|
void
处理程序在从隧道标头内部解封装原始 IPv6 数据包后,通过边界网关和移动设备之间的快捷方式 UDP 隧道接收隧道式 IPv6 数据包,并转发到隧道端点接口。
|
RecvdFromTunnelEndPoint(TunEndPoint *tunEP, PacketBuffer *message)
|
void
处理程序从隧道端点接收 IPv6 数据包并转发,然后通过服务 TCP 连接将 IPv6 数据包封装在隧道标头内并转发到服务,或者通过快捷方式隧道转发到移动客户端。
|
公共类型
AgentState
AgentState
隧道代理与本服务的关联的状态。
属性 | |
---|---|
kState_BkupOnlyTunModeEstablished
|
用于表示已建立连接到 Service 的备份隧道。 |
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 收到 Tunnel Reconnect 时,指向由更高层设置的处理程序的函数指针。
详细信息 | |||||||||
---|---|---|---|---|---|---|---|---|---|
参数 |
|
OnServiceTunnelStatusNotifyFunct
void(* OnServiceTunnelStatusNotifyFunct)(WeaveTunnelConnectionMgr::TunnelConnNotifyReasons reason, WEAVE_ERROR err, void *appCtxt)
指向由更高层设置的处理程序的函数指针,用于处理与服务隧道相关的各种通知。
详细信息 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
PlatformNetworkOnlineCheck
void(* PlatformNetworkOnlineCheck)(TunnelType tunType, void *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
用于查找和连接到服务的服务管理器指针。
公共函数
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 与 Standalone)。
详细信息 | |||
---|---|---|---|
参数 |
|
关停
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 的隧道连接。
StopServiceTunnel
void StopServiceTunnel( WEAVE_ERROR err )
关闭与 Service 的隧道连接。
详细信息 | |||
---|---|---|---|
参数 |
|
WeaveTunnelAgent
WeaveTunnelAgent( void )
公共静态函数
RecvdFromShortcutUDPTunnel
void RecvdFromShortcutUDPTunnel( WeaveMessageLayer *msgLayer, PacketBuffer *message )
处理程序在从隧道标头内部解封装原始 IPv6 数据包后,通过边界网关和移动设备之间的快捷方式 UDP 隧道接收隧道式 IPv6 数据包,并转发到隧道端点接口。
处理程序从服务 TCP 连接接收隧道式 IPv6 数据包,并在从隧道标头内部解封装原始 IPv6 数据包后转发到隧道 EndPoint 接口。
详细信息 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
RecvdFromTunnelEndPoint
void RecvdFromTunnelEndPoint( TunEndPoint *tunEP, PacketBuffer *message )
处理程序从隧道端点接收 IPv6 数据包并转发,然后通过服务 TCP 连接将 IPv6 数据包封装在隧道标头内并转发到服务,或者通过快捷方式隧道转发到移动客户端。
处理程序从隧道端点接收 IPv6 数据包并转发,然后通过服务 TCP 连接将 IPv6 数据包封装在隧道标头内并转发到服务,或者通过本地隧道转发到移动客户端。
如果 Service 连接尚未建立,消息会排入队列,直到连接建立。对于连接到移动客户端设备的隧道,会引用下一个跃点邻居表。
如果 Service 连接尚未建立,消息会排入队列,直到连接建立。对于连接到移动客户端设备的隧道,会引用下一个跃点相邻表。
详细信息 | |||||
---|---|---|---|---|---|
参数 |
|