nl:: Weave:: Warm
此命名空间包含 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 操作调用结果的静态函数。
|
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:: |
这是 FloodlightCore 的内部类。 |
结构体 |
|
---|---|
nl:: |
|
nl:: |
命名空间 |
|
---|---|
nl:: |
枚举
ActionType
ActionType
属性 | |
---|---|
kActionTypeHostRouteThread
|
添加 | 移除主机 IP 栈上线程接口的 IP 路由。 |
kActionTypeLegacy6LoWPANHostAddress
|
添加 | 移除主机 IP 堆栈上旧版 6LowPAN 接口的 IP 地址。 |
kActionTypeLegacy6LoWPANThreadAddress
|
添加 | 移除 Thread 模块的 IP 堆栈上旧版 6LowPAN 接口的 IP 地址。 |
kActionTypeMax
|
DO NOT EXCEED;保留用于标记最大可用位。 |
kActionTypeThreadAdvertisement
|
Start | 停止由 Thread 模块发布的路由通告。 |
kActionTypeThreadHostAddress
|
Add | 移除主机 IP 堆栈上线程接口的 IP 地址。 |
kActionTypeThreadRoute
|
在 Thread 模块上添加 | 移除了 IP 路由,以支持边界路由。 |
kActionTypeThreadRoutePriority
|
更改线程模块中线程路由的路由优先级。 |
kActionTypeThreadThreadAddress
|
Add | 移除 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
|
线程接口。 |
kInterfaceTypeTunnel
|
Tunnel 界面。 |
kInterfaceTypeWiFi
|
Wi-Fi 接口。 |
PlatformActionExecution
PlatformActionExecution
属性 | |
---|---|
kPlatformActionExecutionContinue
|
继续执行。 |
kPlatformActionExecutionSuspendForAsynchOpCompletion
|
挂起操作执行,异步操作完成。 |
PlatformResult
PlatformResult
可能的平台 API 返回值的枚举。
属性 | |
---|---|
kPlatformResultFailure
|
API 执行失败。 |
kPlatformResultInProgress
|
操作正在进行中,将以异步方式完成。 |
kPlatformResultSuccess
|
API 已成功完成。 |
RoutePriority
RoutePriority
一个可能的路由优先级枚举,用于使一个路由可以优先于另一个路由。
SystemFeatureType
SystemFeatureType
属性 | |
---|---|
kSystemFeatureTypeBorderRoutingEnabled
|
系统的边界路由功能是 | 未启用。 |
kSystemFeatureTypeCellularConnected
|
系统的移动网络接口为 | 未连接。 |
kSystemFeatureTypeIsFabricMember
|
系统的 Weave 模块是 | 不是结构成员。 |
kSystemFeatureTypeMax
|
DO NOT EXCEED;保留用于标记最大可用位。 |
kSystemFeatureTypeThreadConnected
|
系统的线程接口为 | 未连接。 |
kSystemFeatureTypeThreadRoutingEnabled
|
系统的线程路由功能是否处于启用状态。 |
kSystemFeatureTypeTunnelInterfaceEnabled
|
系统的隧道界面“IS | IS”未启用。 |
kSystemFeatureTypeTunnelState
|
未建立系统的隧道服务。 |
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 )
一个静态函数,用于返回指定操作的当前状态。
具体说明 | |||
---|---|---|---|
参数 |
|
||
返回值 |
如果操作为 Set,则返回 true,否则返回 false。
|
GetFabricState
WEAVE_ERROR GetFabricState( const WeaveFabricState *& outFabricState )
一个 WARM API,用于获取在 Init 期间提供给 Warm 的 FabricState 对象。
具体说明 | |||||
---|---|---|---|---|---|
参数 |
|
||||
返回值 |
|
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 操作。
这表示要执行可满足当前系统状态的必要操作的入口点。例如,如果线程堆栈从“已停用”变为“已启用”,则此函数将进行必要的平台调用以分配线程主机地址等。平台代码应仅在响应对 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。如果发生这种情况,新地址和路由操作将被暂停,直到系统调用 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 )
用于确定是否应执行指定操作的静态函数。
此函数会检查系统功能状态标记的情况,并确定应启用还是停用指定的操作。然后,该函数会检查操作的当前状态,如果操作未设置为系统功能的 State 所需的值,则该函数会在 outActivate 中返回 true 以及所需的操作状态
具体说明 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
||||||
返回值 |
如果操作当前未处于期望状态,则返回 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 接口的状态更改。
具体说明 | |||
---|---|---|---|
参数 |
|