нл:: Переплетение:: Теплый
Это пространство имен включает в себя интерфейсы для модуля адреса и маршрутизации Weave, портативного модуля для настройки IP-адресов и маршрутов Weave.
Краткое содержание
Определения типов | |
---|---|
ActionFunction )(ActionType inAction, bool inActivate, const uint64_t &inGlobalId, const uint64_t &inInterfaceId) | определение типа |
FlagsType | определение типаuint16_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) | API WARM для получения объекта FabricState, который был предоставлен Warm во время инициализации. |
GetSystemFeatureState ( SystemFeatureType inSystemFeature) | bool Статическая функция, которая получает текущее состояние функции системы. |
GetULA ( InterfaceType inInterfaceType, Inet::IPAddress & outAddress) | WARM API для получения ULA для указанного типа интерфейса. |
Init ( WeaveFabricState & inFabricState) | WARM API для однократной инициализации модуля. |
InvokeActions (void) | void WARM API, вызываемый специальной задачей для выполнения различных действий API платформы. |
LegacyHostAddressAction ( ActionType inAction, bool inActivate, const uint64_t & inGlobalId, const uint64_t & inInterfaceId) | Один из методов действия. |
LegacyThreadAddressAction ( ActionType inAction, bool inActivate, const uint64_t & inGlobalId, const uint64_t & inInterfaceId) | Один из методов действия. |
MakePrefix (const uint64_t & inGlobalID, const uint16_t subnetId, const uint8_t inPrefixLen, Inet::IPPrefix & outPrefix) | void Утилита для создания 48-битного префикса из globalID. |
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) | Один из методов действия. |
ThreadHostAddressAction ( ActionType inAction, bool inActivate, const uint64_t & inGlobalId, const uint64_t & inInterfaceId) | Один из методов действия. |
ThreadHostRouteAction ( ActionType inAction, bool inActivate, const uint64_t & inGlobalId, const uint64_t & inInterfaceId) | Один из методов действия. |
ThreadInterfaceStateChange ( InterfaceState inState) | void WARM API, вызываемый для объявления об изменении состояния интерфейса Thread. |
ThreadRoutePriorityAction ( ActionType inAction, bool inActivate, const uint64_t & inGlobalId, const uint64_t & inInterfaceId) | Один из методов действия. |
ThreadRoutingStateChange ( InterfaceState inState) | void WARM API, вызываемый для объявления об изменении состояния функции маршрутизации потоков. |
ThreadThreadAddressAction ( ActionType inAction, bool inActivate, const uint64_t & inGlobalId, const uint64_t & inInterfaceId) | Один из методов действия. |
ThreadThreadRouteAction ( ActionType inAction, bool inActivate, const uint64_t & inGlobalId, const uint64_t & inInterfaceId) | Один из методов действия. |
TunnelHostAddressAction ( ActionType inAction, bool inActivate, const uint64_t & inGlobalId, const uint64_t & inInterfaceId) | Один из методов действия. |
TunnelHostRouteAction ( ActionType inAction, bool inActivate, const uint64_t & inGlobalId, const uint64_t & inInterfaceId) | Один из методов действия. |
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) | Один из методов действия. |
WiFiInterfaceStateChange ( InterfaceState inState) | void WARM API, вызываемый для объявления об изменении состояния интерфейса WiFi. |
Классы | |
---|---|
nl:: Weave:: Warm:: WarmFabricStateDelegate | Это внутренний класс WarmCore. |
Структуры | |
---|---|
nl:: Weave:: Теплый:: ActionEntry | |
nl:: Weave:: Теплый:: ModuleState |
Пространства имен | |
---|---|
nl:: Плетение:: Теплый:: Платформа |
Перечисления
Тип действия
ActionType
Инитстате
InitState
Состояние интерфейса
InterfaceState
Перечисление возможных значений состояния интерфейса.
Тип интерфейса
InterfaceType
ПлатформаДействиеВыполнение
PlatformActionExecution
ПлатформаРезультат
PlatformResult
Приоритет маршрута
RoutePriority
Перечисление возможных приоритетов маршрутов, позволяющее одному маршруту иметь приоритет над другим.
ТипФункции системы
SystemFeatureType
Определения типов
ДействиеФункция
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
кВтiFiULAAddressPrefixLength
const uint8_t kWiFiULAAddressPrefixLength = 64
сфабрикстатеделегат
WarmFabricStateDelegate sFabricStateDelegate
штат
ModuleState sState
Функции
ГраницаМаршрутизаторStateChange
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 )
API WARM для получения объекта FabricState, который был предоставлен Warm во время инициализации.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
| ||||
Возвращаемые значения |
|
GetSystemFeatureState
bool GetSystemFeatureState( SystemFeatureType inSystemFeature )
Статическая функция, которая получает текущее состояние функции системы.
Подробности | |||
---|---|---|---|
Параметры |
| ||
Возврат | true, если системная функция включена, в противном случае — false. |
GetULA
WEAVE_ERROR GetULA( InterfaceType inInterfaceType, Inet::IPAddress & outAddress )
WARM API для получения ULA для указанного типа интерфейса.
Подробности | |||||||
---|---|---|---|---|---|---|---|
Параметры |
| ||||||
Возвращаемые значения |
|
Инициализировать
WEAVE_ERROR Init( WeaveFabricState & inFabricState )
WARM API для однократной инициализации модуля.
Подробности | |||||||
---|---|---|---|---|---|---|---|
Параметры |
| ||||||
Возвращаемые значения |
| ||||||
Возврат | WEAVE_NO_ERROR в случае успеха, в противном случае — код ошибки. |
ВызватьДействия
void InvokeActions( void )
WARM API, вызываемый специальной задачей для выполнения различных действий API платформы.
Это представляет собой точку входа для выполнения необходимых действий, которые будут соответствовать текущему состоянию системы. Если, например, стек потока перешел из отключенного состояния в включенное, то эта функция выполнит необходимые вызовы платформы для назначения адреса хоста потока и т. д. Эта функция должна вызываться кодом платформы только в ответ на теплый вызов RequestInvokeActions. Вызов InvokeActions приведет к одному или нескольким вызовам API nl::Warm::Platform . Поэтому разработчикам следует соответствующим образом реализовать RequestInvokeActions и вызывающую функцию InvokeActions() . Для RequestInvokeActions может быть целесообразным опубликовать событие в задаче, которая, например, вызовет InvokeActions() . И наоборот, если система однопоточная, то RequestInvokeActions можно реализовать для прямого вызова InvokeActions() .
LegacyHostAddressAction
PlatformResult LegacyHostAddressAction( ActionType inAction, bool inActivate, const uint64_t & inGlobalId, const uint64_t & inInterfaceId )
Один из методов действия.
Устанавливает адрес хоста для устаревшего интерфейса.
Подробности | |||||||||
---|---|---|---|---|---|---|---|---|---|
Параметры |
| ||||||||
Возврат | Пересылает результат из Platform::HostAddress(). |
LegacyThreadAddressAction
PlatformResult LegacyThreadAddressAction( ActionType inAction, bool inActivate, const uint64_t & inGlobalId, const uint64_t & inInterfaceId )
Один из методов действия.
Устанавливает адрес потока для устаревшего интерфейса 6LoWPAN.
Подробности | |||||||||
---|---|---|---|---|---|---|---|---|---|
Параметры |
| ||||||||
Возврат | Пересылает результат из Platform::ThreadAddress(). |
MakePrefix
void MakePrefix( const uint64_t & inGlobalID, const uint16_t subnetId, const uint8_t inPrefixLen, Inet::IPPrefix & outPrefix )
Утилита для создания 48-битного префикса из globalID.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
|
MapAvailabilityToPriority
RoutePriority MapAvailabilityToPriority( Profiles::WeaveTunnel::Platform::TunnelAvailabilityMode inAvailability )
Статическая функция, которая возвращает сопоставление TunnelAvailability и RoutePriority.
Подробности | |||
---|---|---|---|
Параметры |
| ||
Возврат | Сопоставленное приоритетное значение. |
ЗаписьПлатформаРезультат
PlatformActionExecution RecordPlatformResult( PlatformResult inResult, ActionType inAction, bool inActionState )
Статическая функция, записывающая результат вызова действия API платформы.
Этот модуль отправляет запросы на выполнение действий через API-интерфейсы конкретной платформы. API должны сообщать о результате kPlatformResultSuccess|kPlatformResultFailure|kPlatformResultInProgress этого запроса действия. Эта функция записывает этот результат и возвращает true, если результат находится в обработке и дальнейшие действия следует отложить.
Подробности | |||||||
---|---|---|---|---|---|---|---|
Параметры |
| ||||||
Возврат | true — API платформы асинхронно обрабатывает запрос, в противном случае — false. |
ОтчетДействиеЗавершить
void ReportActionComplete( PlatformResult inResult )
WARM API, вызываемый для объявления о завершении предыдущего вызова API асинхронной платформы.
Предполагается, что API действий платформы может потребоваться выполнение асинхронных операций. Если это правда, то API платформы вернет kPlatformResultInProgress. В этом случае новые действия по адресу и маршрутизации будут приостановлены до тех пор, пока система не вызовет ReportActionComplete, чтобы объявить о завершении операции.
Подробности | |||
---|---|---|---|
Параметры |
|
SetCurrentActionState
void SetCurrentActionState( ActionType inAction, bool inValue )
Статическая функция, которая устанавливает текущее состояние указанного действия.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
|
SetSystemFeatureState
bool SetSystemFeatureState( SystemFeatureType inSystemFeature, bool inValue )
Статическая функция, которая устанавливает текущее состояние системной функции.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
| ||||
Возврат | true, если системная функция была изменена, в противном случае — false. |
Должен выполнить действие
bool ShouldPerformAction( ActionType inAction, FlagsType inNecessarySystemFeatureState, bool & outActivate )
Статическая функция, определяющая, следует ли выполнять указанное действие.
Эта функция проверяет состояние флагов состояния функций системы и определяет, следует ли включить или отключить указанное действие. Затем функция проверяет текущее состояние действия, и если для действия не установлено значение, требуемое состоянием системной функции, функция возвращает true вместе с желаемым состоянием действия в outActivate.
Подробности | |||||||
---|---|---|---|---|---|---|---|
Параметры |
| ||||||
Возврат | true, если действие в данный момент не находится в желаемом состоянии, в противном случае — false. |
Обработчик SystemFeatureStateChangeHandler
void SystemFeatureStateChangeHandler( SystemFeatureType inSystemFeatureType, bool inState )
Статическая функция, которая устанавливает состояние системной функции и уведомляет платформу об изменении состояния события.
Вызывается API EventStateChange для выполнения необходимых операций реагирования.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
|
принять меры
void TakeActions( void )
Статическая функция, которая проверяет состояние каждого действия и при необходимости выполняет вызов API платформы для изменения состояния действия.
Эта функция использует MustPerformAction(), чтобы определить, нужно ли изменить/выполнить состояние действия. Если метод MustPerformAction() возвращает true, функция вызовет соответствующий API действия для выполнения действия и перевода его в желаемое состояние. Результат вызова API действия передается в RecordPlatformResult(), и если эта функция возвращает true, выполнение этой функции прекращается.
ThreadAdvertisementAction
PlatformResult ThreadAdvertisementAction( ActionType inAction, bool inActivate, const uint64_t & inGlobalId, const uint64_t & inInterfaceId )
Один из методов действия.
Устанавливает состояние объявления потока
Подробности | |||||||||
---|---|---|---|---|---|---|---|---|---|
Параметры |
| ||||||||
Возврат | Пересылает результат из Platform::ThreadAdvertisement(). |
ThreadHostAddressAction
PlatformResult ThreadHostAddressAction( ActionType inAction, bool inActivate, const uint64_t & inGlobalId, const uint64_t & inInterfaceId )
Один из методов действия.
Устанавливает адрес хоста для интерфейса потока.
Подробности | |||||||||
---|---|---|---|---|---|---|---|---|---|
Параметры |
| ||||||||
Возврат | Пересылает результат из Platform::HostAddress(). |
ThreadHostRouteAction
PlatformResult ThreadHostRouteAction( ActionType inAction, bool inActivate, const uint64_t & inGlobalId, const uint64_t & inInterfaceId )
Один из методов действия.
Устанавливает маршрут хоста для интерфейса потока.
Подробности | |||||||||
---|---|---|---|---|---|---|---|---|---|
Параметры |
| ||||||||
Возврат | Пересылает результат из 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 )
Один из методов действия.
Устанавливает приоритет маршрута потока на основе доступности туннеля.
Подробности | |||||||||
---|---|---|---|---|---|---|---|---|---|
Параметры |
| ||||||||
Возврат | Пересылает результат из Platform::ThreadRoutePriority(). |
ThreadRoutingStateChange
void ThreadRoutingStateChange( InterfaceState inState )
WARM API, вызываемый для объявления об изменении состояния функции маршрутизации потоков.
Подробности | |||
---|---|---|---|
Параметры |
|
ThreadThreadAddressAction
PlatformResult ThreadThreadAddressAction( ActionType inAction, bool inActivate, const uint64_t & inGlobalId, const uint64_t & inInterfaceId )
Один из методов действия.
Устанавливает адрес потока для интерфейса потока.
Подробности | |||||||||
---|---|---|---|---|---|---|---|---|---|
Параметры |
| ||||||||
Возврат | Пересылает результат из Platform::ThreadAddress(). |
ThreadThreadRouteAction
PlatformResult ThreadThreadRouteAction( ActionType inAction, bool inActivate, const uint64_t & inGlobalId, const uint64_t & inInterfaceId )
Один из методов действия.
Устанавливает маршрут потока для стека потоков.
Подробности | |||||||||
---|---|---|---|---|---|---|---|---|---|
Параметры |
| ||||||||
Возврат | Пересылает результат из Platform::ThreadRoute(). |
TunnelHostAddressAction
PlatformResult TunnelHostAddressAction( ActionType inAction, bool inActivate, const uint64_t & inGlobalId, const uint64_t & inInterfaceId )
Один из методов действия.
Устанавливает HostAddress для туннельного интерфейса.
Подробности | |||||||||
---|---|---|---|---|---|---|---|---|---|
Параметры |
| ||||||||
Возврат | Пересылает результат из Platform::HostAddress(). |
TunnelHostRouteAction
PlatformResult TunnelHostRouteAction( ActionType inAction, bool inActivate, const uint64_t & inGlobalId, const uint64_t & inInterfaceId )
Один из методов действия.
Устанавливает 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.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
|
WiFiHostAddressAction
PlatformResult WiFiHostAddressAction( ActionType inAction, bool inActivate, const uint64_t & inGlobalId, const uint64_t & inInterfaceId )
Один из методов действия.
Устанавливает адрес хоста для интерфейса Wi-Fi.
Подробности | |||||||||
---|---|---|---|---|---|---|---|---|---|
Параметры |
| ||||||||
Возврат | Пересылает результат из Platform::HostAddress(). |
Wi-FiInterfaceStateChange
void WiFiInterfaceStateChange( InterfaceState inState )
WARM API, вызываемый для объявления об изменении состояния интерфейса WiFi.
Подробности | |||
---|---|---|---|
Параметры |
|