nl:: Weave:: Warm
此命名空间包含 Weave 地址和路由模块的接口,Weave 地址和路由模块是用于配置 Weave IP 地址和路由的可移植模块。
摘要
类型定义符 |
|
---|---|
ActionFunction)(ActionType inAction, bool inActivate, const uint64_t &inGlobalId, const uint64_t &inInterfaceId)
|
typedef |
FlagsType
|
typedefuint16_t
|
变量 |
|
---|---|
kGlobalULAPrefixLength = 48
|
const uint8_t
|
kLegacy6LoWPANULAAddressPrefixLength = 64
|
const uint8_t
|
kThreadULAAddressPrefixLength = 64
|
const uint8_t
|
kTunnelAddressPrefixLength = 128
|
const uint8_t
|
kWiFiULAAddressPrefixLength = 64
|
const uint8_t
|
sFabricStateDelegate
|
|
sState
|
函数 |
|
---|---|
BorderRouterStateChange(InterfaceState inState)
|
void
调用 WARM API 来公布边界路由器功能的状态更改。
|
CellularInterfaceStateChange(InterfaceState inState)
|
void
调用 WARM API 来公布移动网络接口的状态更改。
|
FabricStateChange(InterfaceState inState)
|
void
调用的函数,用于公布 Weave Fabric 功能的状态变化。
|
GetCurrentActionState(ActionType inAction)
|
bool
一个静态函数,用于返回指定操作的当前状态。
|
GetFabricState(const WeaveFabricState *& outFabricState)
|
用于获取在 Init 期间提供给 Warm 的 FabricState 对象的 WARM API。
|
GetSystemFeatureState(SystemFeatureType inSystemFeature)
|
bool
用于获取系统功能当前状态的静态函数。
|
GetULA(InterfaceType inInterfaceType, Inet::IPAddress & outAddress)
|
用于获取指定接口类型的 ULA 的 WARM API。
|
Init(WeaveFabricState & inFabricState)
|
用于执行一次性模块初始化的 WARM API。
|
InvokeActions(void)
|
void
一种由专门任务调用的 WARM API,用于执行各种平台 API 操作。
|
LegacyHostAddressAction(ActionType inAction, bool inActivate, const uint64_t & inGlobalId, const uint64_t & inInterfaceId)
|
其中一个 Action 方法。
|
LegacyThreadAddressAction(ActionType inAction, bool inActivate, const uint64_t & inGlobalId, const uint64_t & inInterfaceId)
|
其中一个 Action 方法。
|
MakePrefix(const uint64_t & inGlobalID, const uint16_t subnetId, const uint8_t inPrefixLen, Inet::IPPrefix & outPrefix)
|
void
用于根据 globalID 构造 48 位前缀的实用程序。
|
MapAvailabilityToPriority(Profiles::WeaveTunnel::Platform::TunnelAvailabilityMode inAvailability)
|
一个静态函数,用于返回从 TunnelAvailability 到 RoutePriority 的映射。
|
RecordPlatformResult(PlatformResult inResult, ActionType inAction, bool inActionState)
|
一个静态函数,用于记录平台 API 操作调用的结果。
|
ReportActionComplete(PlatformResult inResult)
|
void
调用 WARM API 来宣布之前的异步平台 API 调用已完成。
|
SetCurrentActionState(ActionType inAction, bool inValue)
|
void
一个静态函数,用于设置指定操作的当前状态。
|
SetSystemFeatureState(SystemFeatureType inSystemFeature, bool inValue)
|
bool
用于设置系统功能当前状态的静态函数。
|
ShouldPerformAction(ActionType inAction, FlagsType inNecessarySystemFeatureState, bool & outActivate)
|
bool
一个静态函数,用于确定是否应执行指定操作。
|
SystemFeatureStateChangeHandler(SystemFeatureType inSystemFeatureType, bool inState)
|
void
一个静态函数,用于设置系统功能状态并通知平台事件状态已更改。
|
TakeActions(void)
|
void
一个静态函数,用于测试每个操作的状态,并根据需要发出平台 API 调用来更改操作状态。
|
ThreadAdvertisementAction(ActionType inAction, bool inActivate, const uint64_t & inGlobalId, const uint64_t & inInterfaceId)
|
其中一个 Action 方法。
|
ThreadHostAddressAction(ActionType inAction, bool inActivate, const uint64_t & inGlobalId, const uint64_t & inInterfaceId)
|
其中一个 Action 方法。
|
ThreadHostRouteAction(ActionType inAction, bool inActivate, const uint64_t & inGlobalId, const uint64_t & inInterfaceId)
|
其中一个 Action 方法。
|
ThreadInterfaceStateChange(InterfaceState inState)
|
void
调用 WARM API 来公布 Thread 接口的状态更改。
|
ThreadRoutePriorityAction(ActionType inAction, bool inActivate, const uint64_t & inGlobalId, const uint64_t & inInterfaceId)
|
其中一个 Action 方法。
|
ThreadRoutingStateChange(InterfaceState inState)
|
void
调用 WARM API 来公布线程路由功能的状态更改。
|
ThreadThreadAddressAction(ActionType inAction, bool inActivate, const uint64_t & inGlobalId, const uint64_t & inInterfaceId)
|
其中一个 Action 方法。
|
ThreadThreadRouteAction(ActionType inAction, bool inActivate, const uint64_t & inGlobalId, const uint64_t & inInterfaceId)
|
其中一个 Action 方法。
|
TunnelHostAddressAction(ActionType inAction, bool inActivate, const uint64_t & inGlobalId, const uint64_t & inInterfaceId)
|
其中一个 Action 方法。
|
TunnelHostRouteAction(ActionType inAction, bool inActivate, const uint64_t & inGlobalId, const uint64_t & inInterfaceId)
|
其中一个 Action 方法。
|
TunnelInterfaceStateChange(InterfaceState inState)
|
void
调用 WARM API 来公布 Weave Tunnel 接口的状态更改。
|
TunnelPriorityStateChange(nl::Weave::Profiles::WeaveTunnel::Platform::TunnelAvailabilityMode inAvailability)
|
void
调用以更新隧道服务优先级的 WARM API。
|
TunnelServiceStateChange(InterfaceState inState, nl::Weave::Profiles::WeaveTunnel::Platform::TunnelAvailabilityMode inAvailability)
|
void
调用 WARM API 来公布 Weave Tunnel 接口的状态更改。
|
WiFiHostAddressAction(ActionType inAction, bool inActivate, const uint64_t & inGlobalId, const uint64_t & inInterfaceId)
|
其中一个 Action 方法。
|
WiFiInterfaceStateChange(InterfaceState inState)
|
void
调用 WARM API 公布 Wi-Fi 接口的状态更改。
|
类 |
|
---|---|
nl:: |
这是 WalCore 的一个内部类。 |
结构体 |
|
---|---|
nl:: |
|
nl:: |
命名空间 |
|
---|---|
nl:: |
枚举
ActionType
ActionType
属性 | |
---|---|
kActionTypeHostRouteThread
|
添加 |移除主机 IP 栈上线程接口的 IP 路由。 |
kActionTypeLegacy6LoWPANHostAddress
|
添加 |从主机的 IP 栈中移除旧版 6LowPAN 接口的 IP 地址。 |
kActionTypeLegacy6LoWPANThreadAddress
|
添加 |移除线程模块的 IP 栈上旧版 6LowPAN 接口的 IP 地址。 |
kActionTypeMax
|
请勿超过;以标记最大可用位。 |
kActionTypeThreadAdvertisement
|
开始 |停止由 Thread 模块进行的路由通告。 |
kActionTypeThreadHostAddress
|
添加 |移除主机 IP 栈上线程接口的 IP 地址。 |
kActionTypeThreadRoute
|
添加 |移除了 Thread 模块上的 IP 路由,以实现边界路线支持。 |
kActionTypeThreadRoutePriority
|
更改线程模块上线程路由的路由优先级。 |
kActionTypeThreadThreadAddress
|
添加 |移除 Thread 模块的 IP 堆栈上的线程接口的 IP 地址。 |
kActionTypeTunnelHostAddress
|
添加 |移除主机 IP 栈上隧道接口的 IP 地址。 |
kActionTypeTunnelHostRoute
|
添加 |在主机的 IP 栈中移除隧道接口的 IP 路由。 |
kActionTypeTunnelServiceRoute
|
添加 |移除主机 IP 栈上服务子网的 64 位 IP 路由。 |
kActionTypeWiFiHostAddress
|
添加 |移除主机 IP 栈上 Wi-Fi 接口的 IP 地址。 |
InitState
InitState
属性 | |
---|---|
kInitStateNotInitialized
|
该值必须为 0,这样 mInitState 的初始值为 kInitStateNotInitialized。 |
InterfaceState
InterfaceState
可能的接口状态值的枚举。
InterfaceType
InterfaceType
可能的接口类型的枚举。
。属性 | |
---|---|
kInterfaceTypeCellular
|
移动网络接口。 |
kInterfaceTypeLegacy6LoWPAN
|
线程闹钟界面。 |
kInterfaceTypeThread
|
Thread 接口。 |
kInterfaceTypeTunnel
|
Tunnel 界面。 |
kInterfaceTypeWiFi
|
Wi-Fi 接口。 |
PlatformActionExecution
PlatformActionExecution
属性 | |
---|---|
kPlatformActionExecutionContinue
|
继续执行操作。 |
kPlatformActionExecutionSuspendForAsynchOpCompletion
|
挂起操作执行,以完成异步操作。 |
PlatformResult
PlatformResult
可能的平台 API 返回值的枚举。
属性 | |
---|---|
kPlatformResultFailure
|
API 执行失败。 |
kPlatformResultInProgress
|
操作正在进行中,并将异步完成。 |
kPlatformResultSuccess
|
API 已成功完成。 |
RoutePriority
RoutePriority
可能的路由优先级的枚举,以便使一个路由优先于另一个路由。
SystemFeatureType
SystemFeatureType
属性 | |
---|---|
kSystemFeatureTypeBorderRoutingEnabled
|
系统的边界路线功能是 |IS NOT 启用。 |
kSystemFeatureTypeCellularConnected
|
系统的移动网络接口是 |未连接。 |
kSystemFeatureTypeIsFabricMember
|
系统的 Weave 模块 IS |不是结构物的成员。 |
kSystemFeatureTypeMax
|
请勿超过;保留以标记最大可用位。 |
kSystemFeatureTypeThreadConnected
|
系统的线程接口是 |未连接。 |
kSystemFeatureTypeThreadRoutingEnabled
|
系统的线程路由功能是 |IS NOT 启用。 |
kSystemFeatureTypeTunnelInterfaceEnabled
|
系统的隧道接口 IS |IS NOT 启用。 |
kSystemFeatureTypeTunnelState
|
系统的隧道服务 IS |未建立。 |
kSystemFeatureTypeWiFiConnected
|
系统的 Wi-Fi 接口是 |未连接。 |
类型定义符
ActionFunction
PlatformResult(* ActionFunction)(ActionType inAction, bool inActivate, const uint64_t &inGlobalId, const uint64_t &inInterfaceId)
FlagsType
uint16_t FlagsType
变量
kGlobalULAPrefixLength
const uint8_t kGlobalULAPrefixLength = 48
kLegacy6LoWPANULAAddressPrefixLength
const uint8_t kLegacy6LoWPANULAAddressPrefixLength = 64
kThreadULAAddressPrefixLength
const uint8_t kThreadULAAddressPrefixLength = 64
kTunnelAddressPrefixLength
const uint8_t kTunnelAddressPrefixLength = 128
kWiFiULAAddressPrefixLength
const uint8_t kWiFiULAAddressPrefixLength = 64
sFabricStateDelegate
WarmFabricStateDelegate sFabricStateDelegate
sState
ModuleState sState
函数
BorderRouterStateChange
void BorderRouterStateChange( InterfaceState inState )
调用 WARM API 来公布边界路由器功能的状态更改。
详细信息 | |||
---|---|---|---|
参数 |
|
CellularInterfaceStateChange
void CellularInterfaceStateChange( InterfaceState inState )
调用 WARM API 来公布移动网络接口的状态更改。
详细信息 | |||
---|---|---|---|
参数 |
|
FabricStateChange
void FabricStateChange( InterfaceState inState )
调用的函数,用于公布 Weave Fabric 功能的状态变化。
详细信息 | |||
---|---|---|---|
参数 |
|
GetCurrentActionState
bool GetCurrentActionState( ActionType inAction )
一个静态函数,用于返回指定操作的当前状态。
详细信息 | |||
---|---|---|---|
参数 |
|
||
返回值 |
如果操作为“已设置”,则为 true,否则为 false。
|
GetFabricState
WEAVE_ERROR GetFabricState( const WeaveFabricState *& outFabricState )
用于获取在 Init 期间提供给 Warm 的 FabricState 对象的 WARM API。
详细信息 | |||||
---|---|---|---|---|---|
参数 |
|
||||
返回值 |
|
GetSystemFeatureState
bool GetSystemFeatureState( SystemFeatureType inSystemFeature )
用于获取系统功能当前状态的静态函数。
详细信息 | |||
---|---|---|---|
参数 |
|
||
返回值 |
如果启用了系统功能,则为 true,否则为 false。
|
GetULA
WEAVE_ERROR GetULA( InterfaceType inInterfaceType, Inet::IPAddress & outAddress )
用于获取指定接口类型的 ULA 的 WARM API。
详细信息 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
||||||
返回值 |
|
Init
WEAVE_ERROR Init( WeaveFabricState & inFabricState )
用于执行一次性模块初始化的 WARM API。
详细信息 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
||||||
返回值 |
|
||||||
返回值 |
成功时为 WEAVE_NO_ERROR,否则为错误代码。
|
InvokeActions
void InvokeActions( void )
一种由专门任务调用的 WARM API,用于执行各种平台 API 操作。
它表示执行所需操作以满足当前系统状态的入口点。例如,如果 Thread 堆栈从已停用转换为已启用,则此函数会进行必要的平台调用,以分配线程主机地址等。此函数仅应由平台代码调用,以响应对 RequestInvokeActions 的 Warm 调用。调用 InvokeActions 会导致对 nl::Warm::Platform API 进行一次或多次调用。因此,开发者应适当地实现 RequestInvokeActions 和 InvokeActions() 的调用方。RequestInvokeActions 向会调用 InvokeActions() 的任务发布事件可能较为合适。反之,如果系统是单线程的,则可以实现 RequestInvokeActions 以直接调用 InvokeActions()。
LegacyHostAddressAction
PlatformResult LegacyHostAddressAction( ActionType inAction, bool inActivate, const uint64_t & inGlobalId, const uint64_t & inInterfaceId )
其中一个 Action 方法。
设置旧版接口的主机地址。
详细信息 | |||||||||
---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||
返回值 |
转发来自 Platform::HostAddress() 的结果。
|
LegacyThreadAddressAction
PlatformResult LegacyThreadAddressAction( ActionType inAction, bool inActivate, const uint64_t & inGlobalId, const uint64_t & inInterfaceId )
其中一个 Action 方法。
设置旧版 6LoWPAN 接口的线程地址。
详细信息 | |||||||||
---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||
返回值 |
转发来自 Platform::ThreadAddress() 的结果。
|
MakePrefix
void MakePrefix( const uint64_t & inGlobalID, const uint16_t subnetId, const uint8_t inPrefixLen, Inet::IPPrefix & outPrefix )
用于根据 globalID 构造 48 位前缀的实用程序。
详细信息 | |||||
---|---|---|---|---|---|
参数 |
|
MapAvailabilityToPriority
RoutePriority MapAvailabilityToPriority( Profiles::WeaveTunnel::Platform::TunnelAvailabilityMode inAvailability )
一个静态函数,用于返回从 TunnelAvailability 到 RoutePriority 的映射。
详细信息 | |||
---|---|---|---|
参数 |
|
||
返回值 |
优先级映射值。
|
RecordPlatformResult
PlatformActionExecution RecordPlatformResult( PlatformResult inResult, ActionType inAction, bool inActionState )
一个静态函数,用于记录平台 API 操作调用的结果。
此模块通过平台专用 API 发出请求,以执行操作。此 API 必须报告该操作请求的 kPlatformResultSuccess|kPlatformResultFailure|kPlatformResultInProgress 结果。此函数会记录该结果,如果结果正在处理中,且应延迟后续操作,该函数会返回 true。
详细信息 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
||||||
返回值 |
true 表示平台 API 正在异步处理请求,否则为 false。
|
ReportActionComplete
void ReportActionComplete( PlatformResult inResult )
调用 WARM API 来宣布之前的异步平台 API 调用已完成。
假设平台操作 API 可能需要执行异步操作。如果为 true,平台 API 将返回 kPlatformResultInProgress。出现这种情况时,新的 Address 和 Routing Actions 将会暂停,直到系统调用 ReportActionComplete 来通告操作已完成。
详细信息 | |||
---|---|---|---|
参数 |
|
SetCurrentActionState
void SetCurrentActionState( ActionType inAction, bool inValue )
一个静态函数,用于设置指定操作的当前状态。
详细信息 | |||||
---|---|---|---|---|---|
参数 |
|
SetSystemFeatureState
bool SetSystemFeatureState( SystemFeatureType inSystemFeature, bool inValue )
用于设置系统功能当前状态的静态函数。
详细信息 | |||||
---|---|---|---|---|---|
参数 |
|
||||
返回值 |
如果系统功能发生了更改,则为 true,否则为 false。
|
ShouldPerformAction
bool ShouldPerformAction( ActionType inAction, FlagsType inNecessarySystemFeatureState, bool & outActivate )
一个静态函数,用于确定是否应执行指定操作。
此函数用于检查系统功能状态标志的条件,并确定应启用或停用指定的操作。然后,该函数会检查操作的当前状态,如果操作未设置为系统功能的状态所需的值,则该函数会返回 true 并在 outActivate 中返回期望的操作状态
详细信息 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
||||||
返回值 |
如果操作当前未处于期望状态,则为 true,否则为 false。
|
SystemFeatureStateChangeHandler
void SystemFeatureStateChangeHandler( SystemFeatureType inSystemFeatureType, bool inState )
一个静态函数,用于设置系统功能状态并通知平台事件状态已更改。
由 EventStateChange API 调用,以执行必要的回应操作。
详细信息 | |||||
---|---|---|---|---|---|
参数 |
|
TakeActions
void TakeActions( void )
一个静态函数,用于测试每个操作的状态,并根据需要发出平台 API 调用来更改操作状态。
此函数使用 ShouldPerformAction() 来确定是否需要更改/执行操作状态。如果 ShouldPerformAction() 返回 true,则该函数将调用相应的操作 API 来执行操作,以将其置于所需的状态。操作 API 调用的结果传递到 RecordPlatformResult() 中,如果该函数返回 true,则将终止此函数的执行。
ThreadAdvertisementAction
PlatformResult ThreadAdvertisementAction( ActionType inAction, bool inActivate, const uint64_t & inGlobalId, const uint64_t & inInterfaceId )
其中一个 Action 方法。
设置线程通告状态
详细信息 | |||||||||
---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||
返回值 |
转发来自 Platform::ThreadAdvertisement() 的结果。
|
ThreadHostAddressAction
PlatformResult ThreadHostAddressAction( ActionType inAction, bool inActivate, const uint64_t & inGlobalId, const uint64_t & inInterfaceId )
其中一个 Action 方法。
设置线程接口的主机地址。
详细信息 | |||||||||
---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||
返回值 |
转发来自 Platform::HostAddress() 的结果。
|
ThreadHostRouteAction
PlatformResult ThreadHostRouteAction( ActionType inAction, bool inActivate, const uint64_t & inGlobalId, const uint64_t & inInterfaceId )
其中一个 Action 方法。
为线程接口设置主机路由。
详细信息 | |||||||||
---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||
返回值 |
转发来自 Platform::HostRoute() 的结果。
|
ThreadInterfaceStateChange
void ThreadInterfaceStateChange( InterfaceState inState )
调用 WARM API 来公布 Thread 接口的状态更改。
详细信息 | |||
---|---|---|---|
参数 |
|
ThreadRoutePriorityAction
PlatformResult ThreadRoutePriorityAction( ActionType inAction, bool inActivate, const uint64_t & inGlobalId, const uint64_t & inInterfaceId )
其中一个 Action 方法。
根据隧道可用性设置线程路由优先级。
详细信息 | |||||||||
---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||
返回值 |
转发 Platform::ThreadRoutePriority() 的结果。
|
ThreadRoutingStateChange
void ThreadRoutingStateChange( InterfaceState inState )
调用 WARM API 来公布线程路由功能的状态更改。
详细信息 | |||
---|---|---|---|
参数 |
|
ThreadThreadAddressAction
PlatformResult ThreadThreadAddressAction( ActionType inAction, bool inActivate, const uint64_t & inGlobalId, const uint64_t & inInterfaceId )
其中一个 Action 方法。
设置线程接口的线程地址。
详细信息 | |||||||||
---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||
返回值 |
转发来自 Platform::ThreadAddress() 的结果。
|
ThreadThreadRouteAction
PlatformResult ThreadThreadRouteAction( ActionType inAction, bool inActivate, const uint64_t & inGlobalId, const uint64_t & inInterfaceId )
其中一个 Action 方法。
为线程堆栈设置线程路由。
详细信息 | |||||||||
---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||
返回值 |
转发来自 Platform::ThreadRoute() 的结果。
|
TunnelHostAddressAction
PlatformResult TunnelHostAddressAction( ActionType inAction, bool inActivate, const uint64_t & inGlobalId, const uint64_t & inInterfaceId )
其中一个 Action 方法。
设置隧道接口的 HostAddress。
详细信息 | |||||||||
---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||
返回值 |
转发来自 Platform::HostAddress() 的结果。
|
TunnelHostRouteAction
PlatformResult TunnelHostRouteAction( ActionType inAction, bool inActivate, const uint64_t & inGlobalId, const uint64_t & inInterfaceId )
其中一个 Action 方法。
设置隧道接口的 HostRoute。
详细信息 | |||||||||
---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||
返回值 |
转发来自 Platform::HostRoute() 的结果。
|
TunnelInterfaceStateChange
void TunnelInterfaceStateChange( InterfaceState inState )
调用 WARM API 来公布 Weave Tunnel 接口的状态更改。
详细信息 | |||
---|---|---|---|
参数 |
|
TunnelPriorityStateChange
void TunnelPriorityStateChange( nl::Weave::Profiles::WeaveTunnel::Platform::TunnelAvailabilityMode inAvailability )
调用以更新隧道服务优先级的 WARM API。
详细信息 | |||
---|---|---|---|
参数 |
|
TunnelServiceStateChange
void TunnelServiceStateChange( InterfaceState inState, nl::Weave::Profiles::WeaveTunnel::Platform::TunnelAvailabilityMode inAvailability )
调用 WARM API 来公布 Weave Tunnel 接口的状态更改。
详细信息 | |||||
---|---|---|---|---|---|
参数 |
|
WiFiHostAddressAction
PlatformResult WiFiHostAddressAction( ActionType inAction, bool inActivate, const uint64_t & inGlobalId, const uint64_t & inInterfaceId )
其中一个 Action 方法。
设置 Wi-Fi 接口的主机地址。
详细信息 | |||||||||
---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||
返回值 |
转发来自 Platform::HostAddress() 的结果。
|
WiFiInterfaceStateChange
void WiFiInterfaceStateChange( InterfaceState inState )
调用 WARM API 公布 Wi-Fi 接口的状态更改。
详细信息 | |||
---|---|---|---|
参数 |
|