nl:: Weave:: 暖色调
此命名空间包含 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)
|
此 WARM API 用于获取在 Init 期间提供给 Warm 的 FabricState 对象。
|
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 Action 调用结果的静态函数。
|
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 来公布线程接口的状态更改。
|
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:: |
这是 WaterCore 的内部类。 |
结构体 |
|
---|---|
nl:: |
|
nl:: |
命名空间 |
|
---|---|
nl:: |
枚举
操作类型
ActionType
属性 | |
---|---|
kActionTypeHostRouteThread
|
添加 | 移除主机 IP 堆栈上线程接口的 IP 路由。 |
kActionTypeLegacy6LoWPANHostAddress
|
添加 | 移除主机 IP 堆栈上旧版 6LowPAN 接口的 IP 地址。 |
kActionTypeLegacy6LoWPANThreadAddress
|
添加 | 移除线程模块 IP 堆栈上旧版 6LowPAN 接口的 IP 地址。 |
kActionTypeMax
|
请勿超出;已预留用于标记最大可用位数。 |
kActionTypeThreadAdvertisement
|
开始 | 停止线程模块中的路由通告。 |
kActionTypeThreadHostAddress
|
添加 | 移除主机 IP 堆栈上线程接口的 IP 地址。 |
kActionTypeThreadRoute
|
添加 | 移除线程模块的 IP 路由以支持边界路由支持。 |
kActionTypeThreadRoutePriority
|
更改线程模块中线程路由的路由优先级。 |
kActionTypeThreadThreadAddress
|
添加 | 移除线程模块 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
|
线程接口。 |
kInterfaceTypeTunnel
|
隧道接口。 |
kInterfaceTypeWiFi
|
Wi-Fi 接口。 |
平台操作执行
PlatformActionExecution
属性 | |
---|---|
kPlatformActionExecutionContinue
|
继续执行操作。 |
kPlatformActionExecutionSuspendForAsynchOpCompletion
|
用于让异步操作完成执行的挂起操作执行。 |
平台结果
PlatformResult
可能的平台 API 返回值的枚举。
属性 | |
---|---|
kPlatformResultFailure
|
API 执行失败。 |
kPlatformResultInProgress
|
操作正在进行中,并将异步完成。 |
kPlatformResultSuccess
|
API 已成功完成。 |
路线优先级
RoutePriority
一个枚举可能的路由优先级,以使一个路由的优先级高于另一个路由。
系统功能类型
SystemFeatureType
属性 | |
---|---|
kSystemFeatureTypeBorderRoutingEnabled
|
该系统采用边界路由功能 | 未启用。 |
kSystemFeatureTypeCellularConnected
|
系统的移动网络接口为 | IS 未连接。 |
kSystemFeatureTypeIsFabricMember
|
System 的 Weave 模块是 | 不是结构的成员。 |
kSystemFeatureTypeMax
|
请勿超出;已预留用于标记最大可用位数。 |
kSystemFeatureTypeThreadConnected
|
系统的线程接口为 | IS 未连接。 |
kSystemFeatureTypeThreadRoutingEnabled
|
系统的线程路由功能为 | IS 未启用。 |
kSystemFeatureTypeTunnelInterfaceEnabled
|
系统隧道接口为 | IS 未启用。 |
kSystemFeatureTypeTunnelState
|
系统隧道服务处于“IS | IS”状态。 |
kSystemFeatureTypeWiFiConnected
|
系统的 Wi-Fi 接口为 | 未连接。 |
类型定义符
操作函数
PlatformResult(* ActionFunction)(ActionType inAction, bool inActivate, const uint64_t &inGlobalId, const uint64_t &inInterfaceId)
标志类型
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 )
此 WARM API 用于获取在 Init 期间提供给 Warm 的 FabricState 对象。
详细信息 | |||||
---|---|---|---|---|---|
参数 |
|
||||
返回值 |
|
GetSystemFeatureState
bool GetSystemFeatureState( SystemFeatureType inSystemFeature )
获取系统功能的当前状态的静态函数。
详细信息 | |||
---|---|---|---|
参数 |
|
||
返回值 |
如果启用了系统功能,则为 true;否则为 false。
|
盖图拉
WEAVE_ERROR GetULA( InterfaceType inInterfaceType, Inet::IPAddress & outAddress )
用于获取指定接口类型的 ULA 的 WARM API。
详细信息 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
||||||
返回值 |
|
Init
WEAVE_ERROR Init( WeaveFabricState & inFabricState )
用于执行一次性模块初始化的 WARM API。
详细信息 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
||||||
返回值 |
|
||||||
返回值 |
成功时为 WEAVE_NO_ERROR,否则为错误代码。
|
调用操作
void InvokeActions( void )
由专用任务调用的 WARM API,用于执行各种平台 API 操作。
用于表示执行必要操作(将符合当前系统状态)的入口点。例如,如果线程堆栈从已停用状态转换为已启用状态,则此函数会进行必要的平台调用以分配线程主机地址等。此函数应仅由平台代码调用,以响应对 RequestInvokeActions 的 Warm 调用。调用 InvokeActions 将会导致对 nl::Warm::Platform API 的一次或多次调用。因此,开发者应正确实现 RequestInvokeActions 和 InvokeActions() 的调用方。例如,RequestInvokeActions 可能适合将任务发布到任务(例如调用 InvokeActions() 的任务)。相反,如果系统是单线程的,则可以实现 RequestInvokeActions 来直接调用 InvokeActions()。
旧版 HostAddressAction
PlatformResult LegacyHostAddressAction( ActionType inAction, bool inActivate, const uint64_t & inGlobalId, const uint64_t & inInterfaceId )
一种 Action 方法。
设置旧版接口的主机地址。
详细信息 | |||||||||
---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||
返回值 |
转发来自 Platform::HostAddress() 的结果。
|
旧版线程地址操作
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 Action 调用结果的静态函数。
此模块可发出通过平台专用 API 执行操作的请求。需要使用该 API 才能报告该操作请求的 kPlatformResultSuccess|kPlatformResultFailure|kPlatformResultInProgress 结果。此函数将记录该结果,并在结果正在进行时返回 true,后续操作应延迟。
详细信息 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
||||||
返回值 |
true,表示平台 API 会以异步方式处理请求;否则为 false。
|
报告操作完成
void ReportActionComplete( PlatformResult inResult )
调用 WARM API 以宣布上一个异步平台 API 调用完成。
假设平台操作 API 可能需要执行异步操作。如果为 true,则平台 API 将返回 kPlatformResultInProgress。在这种情况下,系统将暂停新的地址和路由操作,直到系统调用 ReportActionComplete 以宣布操作完成。
详细信息 | |||
---|---|---|---|
参数 |
|
设置当前操作状态
void SetCurrentActionState( ActionType inAction, bool inValue )
用于设置指定操作当前状态的静态函数。
详细信息 | |||||
---|---|---|---|---|---|
参数 |
|
设置系统功能状态
bool SetSystemFeatureState( SystemFeatureType inSystemFeature, bool inValue )
用于设置系统功能当前状态的静态函数。
详细信息 | |||||
---|---|---|---|---|---|
参数 |
|
||||
返回值 |
如果系统功能已更改,则为 true,否则为 false。
|
应执行 Action
bool ShouldPerformAction( ActionType inAction, FlagsType inNecessarySystemFeatureState, bool & outActivate )
用于确定是否应执行指定操作的静态函数。
此函数会检查系统功能状态标志的条件,并确定是应该启用还是禁用指定的操作。函数随后会检查操作的当前状态,如果操作未设置为系统功能的状态所需的值,则该函数会在 outActivate 中返回 true 以及所需的操作状态
详细信息 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
||||||
返回值 |
如果操作当前未处于所需状态,则为 true,否则为 false。
|
SystemFeatureStateChangeHandler
void SystemFeatureStateChangeHandler( SystemFeatureType inSystemFeatureType, bool inState )
一个静态函数,用于设置系统功能状态,并通知平台事件状态已更改。
由 EventStateChange API 调用,以执行必要的回应操作。
详细信息 | |||||
---|---|---|---|---|---|
参数 |
|
采取行动
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 来公布线程接口的状态更改。
详细信息 | |||
---|---|---|---|
参数 |
|
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 以公布线程路由功能的状态变更。
详细信息 | |||
---|---|---|---|
参数 |
|
线程线程地址操作
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() 的结果。
|
隧道地址操作
PlatformResult TunnelHostAddressAction( ActionType inAction, bool inActivate, const uint64_t & inGlobalId, const uint64_t & inInterfaceId )
一种 Action 方法。
设置隧道接口的 HostAddress。
详细信息 | |||||||||
---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||
返回值 |
转发来自 Platform::HostAddress() 的结果。
|
隧道主机路线操作
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 以更新隧道服务的优先级。
详细信息 | |||
---|---|---|---|
参数 |
|
隧道服务状态更改
void TunnelServiceStateChange( InterfaceState inState, nl::Weave::Profiles::WeaveTunnel::Platform::TunnelAvailabilityMode inAvailability )
调用 WARM API 来公布 Weave Tunnel 接口的状态变更。
详细信息 | |||||
---|---|---|---|---|---|
参数 |
|
Wi-Fi 主机地址操作
PlatformResult WiFiHostAddressAction( ActionType inAction, bool inActivate, const uint64_t & inGlobalId, const uint64_t & inInterfaceId )
一种 Action 方法。
设置 Wi-Fi 接口的主机地址。
详细信息 | |||||||||
---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||
返回值 |
转发来自 Platform::HostAddress() 的结果。
|
Wi-Fi 接口状态更改
void WiFiInterfaceStateChange( InterfaceState inState )
调用 WARM API 以公布 Wi-Fi 接口的状态变更。
详细信息 | |||
---|---|---|---|
参数 |
|