рекомендуемая розничная цена
Этот модуль включает функции, управляющие поведением клиента SRP.
Краткое содержание
Этот модуль включает в себя функции протокола регистрации услуг.
Этот модуль включает функции для клиентских буферов SRP и пула служб.
Функции в этом модуле доступны только в том случае, если включена функция OPENTHREAD_CONFIG_SRP_CLIENT_BUFFERS_ENABLE.
Перечисления | |
---|---|
otSrpClientItemState { | перечисление Указывает состояние элемента клиента SRP (информация о службе или хосте). |
otSrpServerAddressMode { | перечисление Представляет режим адреса, используемый сервером SRP. |
otSrpServerState { | перечисление Представляет состояние сервера SRP. |
Определения типов | |
---|---|
otSrpClientAutoStartCallback )(const otSockAddr *aServerSockAddr, void *aContext) | определение типаvoid(* Тип указателя определяет обратный вызов, используемый клиентом SRP для уведомления пользователя о его автоматическом запуске или остановке. |
otSrpClientBuffersServiceEntry | определение типа Представляет запись пула служб клиентов SRP. |
otSrpClientCallback )(otError aError, const otSrpClientHostInfo *aHostInfo, const otSrpClientService *aServices, const otSrpClientService *aRemovedServices, void *aContext) | определение типаvoid(* Тип указателя определяет обратный вызов, используемый клиентом SRP для уведомления пользователя об изменениях/событиях/ошибках. |
otSrpClientHostInfo | определение типаstruct otSrpClientHostInfo Представляет информацию об узле клиента SRP. |
otSrpClientService | определение типаstruct otSrpClientService Представляет клиентскую службу SRP. |
otSrpServerAddressMode | определение типа Представляет режим адреса, используемый сервером SRP. |
otSrpServerHost | определение типаstruct otSrpServerHost Этот непрозрачный тип представляет узел службы SRP. |
otSrpServerLeaseConfig | определение типаstruct otSrpServerLeaseConfig Включает конфигурации АРЕНДА сервера SRP и КЛЮЧ-АРЕНДА. |
otSrpServerLeaseInfo | определение типаstruct otSrpServerLeaseInfo Включает информацию об аренде сервера SRP хоста/службы. |
otSrpServerResponseCounters | определение типаstruct otSrpServerResponseCounters Включает статистику ответов сервера SRP. |
otSrpServerService | определение типаstruct otSrpServerService Этот непрозрачный тип представляет службу SRP. |
otSrpServerServiceUpdateHandler )(otSrpServerServiceUpdateId aId, const otSrpServerHost *aHost, uint32_t aTimeout, void *aContext) | определение типаvoid(* Обрабатывает обновления службы SRP. |
otSrpServerServiceUpdateId | определение типаuint32_t Идентификатор транзакции обновления службы SRP на сервере SRP. |
otSrpServerTtlConfig | определение типаstruct otSrpServerTtlConfig Включает конфигурации TTL сервера SRP. |
Функции | |
---|---|
otSrpClientAddService ( otInstance *aInstance, otSrpClientService *aService) | Добавляет службу для регистрации на сервере. |
otSrpClientBuffersAllocateService ( otInstance *aInstance) | Выделяет новую запись службы из пула. |
otSrpClientBuffersFreeAllServices ( otInstance *aInstance) | void Освобождает все ранее выделенные записи служб. |
otSrpClientBuffersFreeService ( otInstance *aInstance, otSrpClientBuffersServiceEntry *aService) | void Освобождает ранее выделенную запись службы. |
otSrpClientBuffersGetHostAddressesArray ( otInstance *aInstance, uint8_t *aArrayLength) | Получает массив записей адресов IPv6 для использования в качестве списка адресов узлов клиента SRP. |
otSrpClientBuffersGetHostNameString ( otInstance *aInstance, uint16_t *aSize) | char * Получает строковый буфер, который будет использоваться для имени хоста клиента SRP. |
otSrpClientBuffersGetServiceEntryInstanceNameString ( otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize) | char * Получает строковый буфер для имени экземпляра службы из записи службы. |
otSrpClientBuffersGetServiceEntryServiceNameString ( otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize) | char * Получает строковый буфер для имени службы из записи службы. |
otSrpClientBuffersGetServiceEntryTxtBuffer ( otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize) | uint8_t * Получает буфер для записи TXT из записи службы. |
otSrpClientBuffersGetSubTypeLabelsArray ( otSrpClientBuffersServiceEntry *aEntry, uint16_t *aArrayLength) | const char ** Получает массив меток подтипов служб из записи службы. |
otSrpClientClearHostAndServices ( otInstance *aInstance) | void Очищает всю информацию о хосте и всех службах. |
otSrpClientClearService ( otInstance *aInstance, otSrpClientService *aService) | Очищает службу, немедленно удаляя ее из списка клиентских служб. |
otSrpClientDisableAutoStartMode ( otInstance *aInstance) | void Отключает режим автозапуска. |
otSrpClientEnableAutoHostAddress ( otInstance *aInstance) | Включает режим автоматического адреса хоста. |
otSrpClientEnableAutoStartMode ( otInstance *aInstance, otSrpClientAutoStartCallback aCallback, void *aContext) | void Включает режим автозапуска. |
otSrpClientGetDomainName ( otInstance *aInstance) | const char * Получает имя домена, используемое клиентом SRP. |
otSrpClientGetHostInfo ( otInstance *aInstance) | const otSrpClientHostInfo * Получает информацию о хосте. |
otSrpClientGetKeyLeaseInterval ( otInstance *aInstance) | uint32_t Получает интервал аренды ключа по умолчанию, используемый в запросах на обновление SRP. |
otSrpClientGetLeaseInterval ( otInstance *aInstance) | uint32_t Получает интервал аренды по умолчанию, используемый в запросах на обновление SRP. |
otSrpClientGetServerAddress ( otInstance *aInstance) | const otSockAddr * Получает адрес сокета (адрес IPv6 и номер порта) сервера SRP, который используется клиентом SRP. |
otSrpClientGetServices ( otInstance *aInstance) | const otSrpClientService * Получает список служб, которыми управляет клиент. |
otSrpClientGetTtl ( otInstance *aInstance) | uint32_t Получает значение срока жизни в каждой записи, включенной в запросы на обновление SRP. |
otSrpClientIsAutoStartModeEnabled ( otInstance *aInstance) | bool Указывает текущее состояние режима автозапуска (включено или отключено). |
otSrpClientIsRunning ( otInstance *aInstance) | bool Указывает, запущен ли клиент SRP. |
otSrpClientIsServiceKeyRecordEnabled ( otInstance *aInstance) | bool Указывает, включен или отключен режим «включение записи сервисного ключа». |
otSrpClientItemStateToString ( otSrpClientItemState aItemState) | const char * Преобразует otSrpClientItemState в строку. |
otSrpClientRemoveHostAndServices ( otInstance *aInstance, bool aRemoveKeyLease, bool aSendUnregToServer) | Запускает процесс удаления информации о хосте и всех службах. |
otSrpClientRemoveService ( otInstance *aInstance, otSrpClientService *aService) | Запрашивает отмену регистрации службы на сервере. |
otSrpClientSetCallback ( otInstance *aInstance, otSrpClientCallback aCallback, void *aContext) | void Устанавливает обратный вызов для уведомления вызывающего абонента о событиях/изменениях от клиента SRP. |
otSrpClientSetDomainName ( otInstance *aInstance, const char *aName) | Устанавливает имя домена, которое будет использоваться клиентом SRP. |
otSrpClientSetHostAddresses ( otInstance *aInstance, const otIp6Address *aIp6Addresses, uint8_t aNumAddresses) | Устанавливает/обновляет список IPv6-адресов хостов. |
otSrpClientSetHostName ( otInstance *aInstance, const char *aName) | Устанавливает метку имени хоста. |
otSrpClientSetKeyLeaseInterval ( otInstance *aInstance, uint32_t aInterval) | void Устанавливает интервал аренды ключа по умолчанию, используемый в запросах на обновление SRP. |
otSrpClientSetLeaseInterval ( otInstance *aInstance, uint32_t aInterval) | void Устанавливает интервал аренды по умолчанию, используемый в запросах на обновление SRP. |
otSrpClientSetServiceKeyRecordEnabled ( otInstance *aInstance, bool aEnabled) | void Включает/отключает режим «включение записи сервисного ключа». |
otSrpClientSetTtl ( otInstance *aInstance, uint32_t aTtl) | void Устанавливает значение TTL для каждой записи, включенной в запросы на обновление SRP. |
otSrpClientStart ( otInstance *aInstance, const otSockAddr *aServerSockAddr) | Запускает работу клиента SRP. |
otSrpClientStop ( otInstance *aInstance) | void Останавливает работу клиента SRP. |
otSrpServerGetAddressMode ( otInstance *aInstance) | Возвращает режим адреса, используемый сервером SRP. |
otSrpServerGetAnycastModeSequenceNumber ( otInstance *aInstance) | uint8_t Возвращает порядковый номер, используемый в режиме произвольного адреса. |
otSrpServerGetDomain ( otInstance *aInstance) | const char * Возвращает домен, авторизованный для сервера SRP. |
otSrpServerGetLeaseConfig ( otInstance *aInstance, otSrpServerLeaseConfig *aLeaseConfig) | void Возвращает конфигурации LEASE и KEY-LEASE сервера SRP. |
otSrpServerGetNextHost ( otInstance *aInstance, const otSrpServerHost *aHost) | const otSrpServerHost * Возвращает следующий зарегистрированный хост на сервере SRP. |
otSrpServerGetPort ( otInstance *aInstance) | uint16_t Возвращает порт, который прослушивает сервер SRP. |
otSrpServerGetResponseCounters ( otInstance *aInstance) | const otSrpServerResponseCounters * Возвращает счетчики ответов сервера SRP. |
otSrpServerGetState ( otInstance *aInstance) | Возвращает состояние сервера SRP. |
otSrpServerGetTtlConfig ( otInstance *aInstance, otSrpServerTtlConfig *aTtlConfig) | void Возвращает конфигурацию TTL сервера SRP. |
otSrpServerHandleServiceUpdateResult ( otInstance *aInstance, otSrpServerServiceUpdateId aId, otError aError) | void Сообщает результат обработки обновления SRP на сервер SRP. |
otSrpServerHostGetAddresses (const otSrpServerHost *aHost, uint8_t *aAddressesNum) | const otIp6Address * Возвращает адреса данного хоста. |
otSrpServerHostGetFullName (const otSrpServerHost *aHost) | const char * Возвращает полное имя хоста. |
otSrpServerHostGetLeaseInfo (const otSrpServerHost *aHost, otSrpServerLeaseInfo *aLeaseInfo) | void Возвращает информацию LEASE и KEY-LEASE данного хоста. |
otSrpServerHostGetNextService (const otSrpServerHost *aHost, const otSrpServerService *aService) | const otSrpServerService * Возвращает следующую услугу данного хоста. |
otSrpServerHostIsDeleted (const otSrpServerHost *aHost) | bool Сообщает, был ли удален узел службы SRP. |
otSrpServerHostMatchesFullName (const otSrpServerHost *aHost, const char *aFullName) | bool Указывает, соответствует ли хост данному имени хоста. |
otSrpServerIsAutoEnableMode ( otInstance *aInstance) | bool Указывает, включен или отключен режим автоматического включения. |
otSrpServerParseSubTypeServiceName (const char *aSubTypeServiceName, char *aLabel, uint8_t aLabelSize) | Анализирует имя службы подтипа (полное имя) и извлекает метку подтипа. |
otSrpServerServiceGetHost (const otSrpServerService *aService) | const otSrpServerHost * Возвращает хост, на котором находится экземпляр службы. |
otSrpServerServiceGetInstanceLabel (const otSrpServerService *aService) | const char * Возвращает метку экземпляра службы (первая метка в имени экземпляра) службы. |
otSrpServerServiceGetInstanceName (const otSrpServerService *aService) | const char * Возвращает полное имя экземпляра службы. |
otSrpServerServiceGetLeaseInfo (const otSrpServerService *aService, otSrpServerLeaseInfo *aLeaseInfo) | void Возвращает информацию LEASE и KEY-LEASE для данной службы. |
otSrpServerServiceGetNumberOfSubTypes (const otSrpServerService *aService) | uint16_t Получает количество подтипов службы. |
otSrpServerServiceGetPort (const otSrpServerService *aService) | uint16_t Возвращает порт экземпляра службы. |
otSrpServerServiceGetPriority (const otSrpServerService *aService) | uint16_t Возвращает приоритет экземпляра службы. |
otSrpServerServiceGetServiceName (const otSrpServerService *aService) | const char * Возвращает полное имя службы. |
otSrpServerServiceGetSubTypeServiceNameAt (const otSrpServerService *aService, uint16_t aIndex) | const char * Получает имя службы подтипа (полное имя) службы по заданному индексу. |
otSrpServerServiceGetTtl (const otSrpServerService *aService) | uint32_t Возвращает TTL экземпляра службы. |
otSrpServerServiceGetTxtData (const otSrpServerService *aService, uint16_t *aDataLength) | const uint8_t * Возвращает данные записи TXT экземпляра службы. |
otSrpServerServiceGetWeight (const otSrpServerService *aService) | uint16_t Возвращает вес экземпляра службы. |
otSrpServerServiceHasSubTypeServiceName (const otSrpServerService *aService, const char *aSubTypeServiceName) | bool Указывает, имеет ли служба заданный подтип. |
otSrpServerServiceIsDeleted (const otSrpServerService *aService) | bool Указывает, была ли удалена служба SRP. |
otSrpServerServiceMatchesInstanceName (const otSrpServerService *aService, const char *aInstanceName) | bool Указывает, соответствует ли эта служба заданному имени экземпляра службы. |
otSrpServerServiceMatchesServiceName (const otSrpServerService *aService, const char *aServiceName) | bool Указывает, соответствует ли эта служба заданному имени службы. |
otSrpServerSetAddressMode ( otInstance *aInstance, otSrpServerAddressMode aMode) | Устанавливает режим адреса, который будет использоваться сервером SRP. |
otSrpServerSetAnycastModeSequenceNumber ( otInstance *aInstance, uint8_t aSequenceNumber) | Устанавливает порядковый номер, используемый в режиме произвольной адресации. |
otSrpServerSetAutoEnableMode ( otInstance *aInstance, bool aEnabled) | void Включает/отключает режим автоматического включения на сервере SRP. |
otSrpServerSetDomain ( otInstance *aInstance, const char *aDomain) | Устанавливает домен на сервере SRP. |
otSrpServerSetEnabled ( otInstance *aInstance, bool aEnabled) | void Включает/отключает сервер SRP. |
otSrpServerSetLeaseConfig ( otInstance *aInstance, const otSrpServerLeaseConfig *aLeaseConfig) | Устанавливает конфигурации LEASE и KEY-LEASE сервера SRP. |
otSrpServerSetServiceUpdateHandler ( otInstance *aInstance, otSrpServerServiceUpdateHandler aServiceHandler, void *aContext) | void Устанавливает обработчик обновлений службы SRP на сервере SRP. |
otSrpServerSetTtlConfig ( otInstance *aInstance, const otSrpServerTtlConfig *aTtlConfig) | Устанавливает конфигурацию TTL сервера SRP. |
Структуры | |
---|---|
отSrpClientBuffersServiceEntry | Представляет запись пула служб клиентов SRP. |
отСрпКлиентХостИнфо | Представляет информацию об узле клиента SRP. |
отСрпклиентсервице | Представляет клиентскую службу SRP. |
отСрпсерверлизеконфиг | Включает конфигурации АРЕНДА сервера SRP и КЛЮЧ-АРЕНДА. |
отSrpServerLeaseInfo | Включает информацию об аренде сервера SRP хоста/службы. |
otSrpServerResponseCounters | Включает статистику ответов сервера SRP. |
отСрпсерверттлконфиг | Включает конфигурации TTL сервера SRP. |
Перечисления
отСрпклиентитемстате
otSrpClientItemState
Указывает состояние элемента клиента SRP (информация о службе или хосте).
отСрпсервераддрессмоде
otSrpServerAddressMode
Представляет режим адреса, используемый сервером SRP.
Режим адреса определяет, как адрес и номер порта определяются сервером SRP и как эта информация публикуется в сетевых данных потока.
Характеристики | |
---|---|
OT_SRP_SERVER_ADDRESS_MODE_ANYCAST | Режим произвольного адреса. |
OT_SRP_SERVER_ADDRESS_MODE_UNICAST | Режим одноадресной рассылки. |
отсрпсерверстате
otSrpServerState
Определения типов
otSrpClientAutoStartCallback
void(* otSrpClientAutoStartCallback)(const otSockAddr *aServerSockAddr, void *aContext)
Тип указателя определяет обратный вызов, используемый клиентом SRP для уведомления пользователя о его автоматическом запуске или остановке.
Это используется только в том случае, если включена функция автозапуска OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE
.
Этот обратный вызов вызывается, когда включен режим автозапуска и клиент SRP автоматически запускается или останавливается.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
|
отSrpClientBuffersServiceEntry
struct otSrpClientBuffersServiceEntry otSrpClientBuffersServiceEntry
Представляет запись пула служб клиентов SRP.
otSrpClientCallback
void(* otSrpClientCallback)(otError aError, const otSrpClientHostInfo *aHostInfo, const otSrpClientService *aServices, const otSrpClientService *aRemovedServices, void *aContext)
Тип указателя определяет обратный вызов, используемый клиентом SRP для уведомления пользователя об изменениях/событиях/ошибках.
Этот обратный вызов вызывается при успешной регистрации обновления (т. е. добавлении/удалении информации о хосте и/или некоторых услугах) на сервере SRP, а также в случае сбоя или ошибки (например, сервер отклоняет обновление). запрос или время ожидания ответа клиента и т. д.).
В случае успешной перерегистрации обновления параметр aError
будет иметь значение OT_ERROR_NONE
, а информация о хосте и полный список служб предоставляются в качестве входных параметров обратного вызова. Обратите внимание, что информация о хосте и службах отслеживают свое собственное состояние в соответствующей переменной-члене mState
связанной структуры данных (состояние, указывающее, зарегистрирована или удалена информация о хосте или служба, или все еще добавляется/удаляется и т. д.).
Список удаленных служб передается как отдельный связанный список aRemovedServices
в обратном вызове. Обратите внимание, что при вызове обратного вызова клиент SRP (реализация OpenThread) обрабатывает удаленные экземпляры службы, перечисленные в aRemovedServices
, и больше не отслеживает/сохраняет их (т. е. если из обратного вызова мы вызываем otSrpClientGetServices()
удаленные службы не будут присутствует в возвращаемом списке). Предоставление отдельного списка удаленных сервисов в обратном вызове помогает указать пользователю, какие элементы теперь удалены, и позволяет пользователю повторно заявить/повторно использовать экземпляры.
Если сервер отклоняет запрос на обновление SRP, код ответа DNS (RFC 2136) сопоставляется со следующими ошибками:
- (0) NOERROR Успех (отсутствие ошибок) -> OT_ERROR_NONE
- (1) Сервер FORMERR не может интерпретировать из-за ошибки формата -> OT_ERROR_PARSE
- (2) На сервере SERVFAIL произошел внутренний сбой -> OT_ERROR_FAILED.
- (3) NXDOMAIN Имя, которое должно существовать, не существует -> OT_ERROR_NOT_FOUND
- (4) Сервер NOTIMP не поддерживает тип запроса (OpCode) -> OT_ERROR_NOT_IMPLEMENTED
- (5) ОТКАЗАН Сервер отклонен по соображениям политики/безопасности -> OT_ERROR_SECURITY
- (6) YXDOMAIN Некоторое имя, которого не должно быть, существует -> OT_ERROR_DUPLICATED
- (7) YXRRSET Некоторый набор RRset, который не должен существовать, существует -> OT_ERROR_DUPLICATED
- (8) NXRRSET Некоторый набор RRset, который должен существовать, не существует -> OT_ERROR_NOT_FOUND
- (9) Служба NOTAUTH не является авторитетной для зоны -> OT_ERROR_SECURITY
- (10) NOTZONE Имя отсутствует в зоне -> OT_ERROR_PARSE
- (20) BADNAME Неправильное имя -> OT_ERROR_PARSE
- (21) BADALG Неверный алгоритм -> OT_ERROR_SECURITY
- (22) BADTRUN Неверное усечение -> OT_ERROR_PARSE
- Другие коды ответа -> OT_ERROR_FAILED
Также возможны следующие ошибки:
- OT_ERROR_RESPONSE_TIMEOUT: истекло время ожидания ответа от сервера (клиент продолжит повторять попытки).
- OT_ERROR_INVALID_ARGS: предоставленная структура службы недействительна (например, неправильное имя службы или
otDnsTxtEntry
). - OT_ERROR_NO_BUFS: Недостаточно буфера для подготовки или отправки сообщения обновления.
Обратите внимание, что в случае какого-либо сбоя клиент продолжает операцию, т. е. он подготавливает и (повторно) передает сообщение обновления SRP на сервер после некоторого интервала ожидания. Интервал ожидания повторной попытки начинается с минимального значения и увеличивается на коэффициент роста при каждом сбое до максимального значения (более подробную информацию см. в параметре конфигурации OPENTHREAD_CONFIG_SRP_CLIENT_MIN_RETRY_WAIT_INTERVAL
и связанных с ним параметрах).
Подробности | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Параметры |
|
отСрпКлиентХостИнфо
struct otSrpClientHostInfo otSrpClientHostInfo
Представляет информацию об узле клиента SRP.
отСрпклиентсервице
struct otSrpClientService otSrpClientService
Представляет клиентскую службу SRP.
Значения в этой структуре, включая строковые буферы для имен и записей записей TXT, ДОЛЖНЫ сохраняться и оставаться постоянными после того, как экземпляр этой структуры передается OpenThread из otSrpClientAddService()
или otSrpClientRemoveService()
.
Поля mState
, mData
, mNext
используются/управляются только ядром OT. Их значение игнорируется, когда экземпляр otSrpClientService
передается в otSrpClientAddService()
или otSrpClientRemoveService()
или других функциях. Вызывающему абоненту не нужно задавать эти поля.
Поля mLease
и mKeyLease
указывают желаемые интервалы аренды и аренды ключей для этой службы. Нулевое значение указывает, что интервал не указан, а затем для этой службы используются интервалы аренды или аренды ключа по умолчанию из otSrpClientGetLeaseInterval()
и otSrpClientGetKeyLeaseInterval()
. Если интервал аренды ключа (заданный явно или определенный по умолчанию) короче интервала аренды для службы, клиент SRP также будет повторно использовать значение интервала аренды для интервала аренды ключа. Например, если в сервисе mLease
явно установлен на 2 дня, а mKeyLease
установлен на ноль, а срок аренды ключа по умолчанию установлен на 1 день, то при регистрации этого сервиса запрошенный срок аренды ключа для этого сервиса также устанавливается на 2 дня.
отСрпсервераддрессмоде
enum otSrpServerAddressMode otSrpServerAddressMode
Представляет режим адреса, используемый сервером SRP.
Режим адреса определяет, как адрес и номер порта определяются сервером SRP и как эта информация публикуется в сетевых данных потока.
otSrpServerHost
struct otSrpServerHost otSrpServerHost
Этот непрозрачный тип представляет узел службы SRP.
отСрпсерверлизеконфиг
struct otSrpServerLeaseConfig otSrpServerLeaseConfig
Включает конфигурации АРЕНДА сервера SRP и КЛЮЧ-АРЕНДА.
отSrpServerLeaseInfo
struct otSrpServerLeaseInfo otSrpServerLeaseInfo
Включает информацию об аренде сервера SRP хоста/службы.
otSrpServerResponseCounters
struct otSrpServerResponseCounters otSrpServerResponseCounters
Включает статистику ответов сервера SRP.
отСрпсерверсервице
struct otSrpServerService otSrpServerService
Этот непрозрачный тип представляет службу SRP.
отсрпсерверсервицеупдатехандлер
void(* otSrpServerServiceUpdateHandler)(otSrpServerServiceUpdateId aId, const otSrpServerHost *aHost, uint32_t aTimeout, void *aContext)
Обрабатывает обновления службы SRP.
Вызывается сервером SRP для уведомления об обновлении узла SRP и, возможно, служб SRP. Важно, чтобы обновления SRP не фиксировались до тех пор, пока обработчик не вернет результат путем вызова otSrpServerHandleServiceUpdateResult или не истечет время ожидания после aTimeout
.
Наблюдатель службы SRP всегда должен вызывать otSrpServerHandleServiceUpdateResult с кодом ошибки OT_ERROR_NONE сразу после получения событий обновления.
Более общий обработчик может выполнять проверки хоста/служб SRP и отклонять обновления SRP, если какая-либо проверка не удалась. Например, рекламный прокси-сервер должен рекламировать (или удалять) хост и службы по каналу с поддержкой многоадресной рассылки и возвращать конкретный код ошибки в случае возникновения какого-либо сбоя.
Подробности | |||||||||
---|---|---|---|---|---|---|---|---|---|
Параметры |
|
отсрпсерверсетсервицеупдатехандлер
отсрпсерверхандлесервицеупдатересулт
отсрпсерверсервицеупдатеид
uint32_t otSrpServerServiceUpdateId
Идентификатор транзакции обновления службы SRP на сервере SRP.
отСрпсерверттлконфиг
struct otSrpServerTtlConfig otSrpServerTtlConfig
Включает конфигурации TTL сервера SRP.
Функции
отСрпклиентаддсервице
otError otSrpClientAddService( otInstance *aInstance, otSrpClientService *aService )
Добавляет службу для регистрации на сервере.
После успешного вызова этой функции будет вызвана otSrpClientCallback
, чтобы сообщить о статусе добавления/регистрации службы на сервере SRP.
Экземпляр otSrpClientService
, на который указывает aService
, ДОЛЖЕН сохраняться и оставаться неизменным после возврата из этой функции (с OT_ERROR_NONE
). OpenThread сохранит указатель на экземпляр службы.
Экземпляр otSrpClientService
больше не отслеживается OpenThread и может быть возвращен только тогда, когда
- Он удаляется явно вызовом
otSrpClientRemoveService()
или удаляется вместе с другими службами вызовомotSrpClientRemoveHostAndServices() and only after the
вызова otSrpClientCallback`, указывающего, что служба была удалена. Или, - Вызов
otSrpClientClearHostAndServices()
, который немедленно удаляет хост и все связанные с ним службы.
Подробности | |||||||
---|---|---|---|---|---|---|---|
Параметры |
| ||||||
Возвращаемые значения |
|
otSrpClientBuffersAllocateService
otSrpClientBuffersServiceEntry * otSrpClientBuffersAllocateService( otInstance *aInstance )
Выделяет новую запись службы из пула.
Возвращенный экземпляр записи службы будет инициализирован следующим образом:
-
mService.mName
будет указывать на выделенный строковый буфер, который можно получить с помощью функцииotSrpClientBuffersGetServiceEntryServiceNameString()
. -
mService.mInstanceName
будет указывать на выделенный строковый буфер, который можно получить с помощью функцииotSrpClientBuffersGetServiceEntryInstanceNameString()
. -
mService.mSubTypeLabels
указывает на массив, возвращаемый функциейotSrpClientBuffersGetSubTypeLabelsArray()
. -
mService.mTxtEntries
будет указывать наmTxtEntry
. -
mService.mNumTxtEntries
будет установлен в единицу. - Остальные поля
mService
(порт, приоритет, вес) установлены на ноль. -
mTxtEntry.mKey
имеет значение NULL (значение считается уже закодированным). -
mTxtEntry.mValue
будет указывать на выделенный буфер, который можно получить с помощью функцииotSrpClientBuffersGetServiceEntryTxtBuffer()
. -
mTxtEntry.mValueLength
имеет нулевое значение. - Все связанные буферы данных/строок и массивы очищаются до нуля.
Подробности | |||
---|---|---|---|
Параметры |
| ||
Возврат | Указатель на вновь выделенную запись службы или NULL, если в пуле больше записей нет. |
otSrpClientBuffersFreeAllServices
void otSrpClientBuffersFreeAllServices( otInstance *aInstance )
Освобождает все ранее выделенные записи служб.
Подробности | |||
---|---|---|---|
Параметры |
|
otSrpClientBuffersFreeService
void otSrpClientBuffersFreeService( otInstance *aInstance, otSrpClientBuffersServiceEntry *aService )
Освобождает ранее выделенную запись службы.
aService
ДОЛЖНА быть предварительно выделена с помощью otSrpClientBuffersAllocateService()
и еще не освобождена. В противном случае поведение этой функции не определено.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
|
otSrpClientBuffersGetHostAddressesArray
otIp6Address * otSrpClientBuffersGetHostAddressesArray( otInstance *aInstance, uint8_t *aArrayLength )
Получает массив записей адресов IPv6 для использования в качестве списка адресов узлов клиента SRP.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
| ||||
Возврат | Указатель на массив записей otIp6Address (количество записей возвращается в aArrayLength ). |
otSrpClientBuffersGetHostNameString
char * otSrpClientBuffersGetHostNameString( otInstance *aInstance, uint16_t *aSize )
Получает строковый буфер, который будет использоваться для имени хоста клиента SRP.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
| ||||
Возврат | Указатель на символьный буфер, используемый для имени хоста клиента SRP. |
otSrpClientBuffersGetServiceEntryInstanceNameString
char * otSrpClientBuffersGetServiceEntryInstanceNameString( otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize )
Получает строковый буфер для имени экземпляра службы из записи службы.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
| ||||
Возврат | Указатель на строковый буфер. |
otSrpClientBuffersGetServiceEntryServiceNameString
char * otSrpClientBuffersGetServiceEntryServiceNameString( otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize )
Получает строковый буфер для имени службы из записи службы.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
| ||||
Возврат | Указатель на строковый буфер. |
otSrpClientBuffersGetServiceEntryTxtBuffer
uint8_t * otSrpClientBuffersGetServiceEntryTxtBuffer( otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize )
Получает буфер для записи TXT из записи службы.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
| ||||
Возврат | Указатель на буфер. |
otSrpClientBuffersGetSubTypeLabelsArray
const char ** otSrpClientBuffersGetSubTypeLabelsArray( otSrpClientBuffersServiceEntry *aEntry, uint16_t *aArrayLength )
Получает массив меток подтипов служб из записи службы.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
| ||||
Возврат | Указатель на массив. |
otSrpClientClearHostAndServices
void otSrpClientClearHostAndServices( otInstance *aInstance )
Очищает всю информацию о хосте и всех службах.
В отличие от otSrpClientRemoveHostAndServices()
, которая отправляет на сервер сообщение об обновлении для удаления всей информации, эта функция немедленно очищает всю информацию без какого-либо взаимодействия с сервером.
Подробности | |||
---|---|---|---|
Параметры |
|
отСрпклиентклиарсервице
otError otSrpClientClearService( otInstance *aInstance, otSrpClientService *aService )
Очищает службу, немедленно удаляя ее из списка клиентских служб.
В отличие от otSrpClientRemoveService()
, которая отправляет на сервер сообщение об обновлении для удаления службы, эта функция удаляет службу из списка служб клиента без какого-либо взаимодействия с сервером. При успешном вызове этой функции otSrpClientCallback
НЕ будет вызываться, а запись aService
может быть немедленно возвращена и повторно использована вызывающей стороной.
Может использоваться вместе с последующим вызовом otSrpClientAddService()
(потенциально повторно используя одну и ту же запись aService
с теми же именами службы и экземпляра) для обновления некоторых параметров в существующей службе.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
| ||||
Возвращаемые значения |
|
отСрпклиентдисаблеавтостартмоде
void otSrpClientDisableAutoStartMode( otInstance *aInstance )
Отключает режим автозапуска.
Это доступно только в том случае, если включена функция автозапуска OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE
.
Отключение режима автозапуска не остановит клиент, если он уже запущен, но клиент перестанет отслеживать данные сети потоков, чтобы убедиться, что выбранный сервер SRP все еще присутствует в них.
Обратите внимание, что вызов otSrpClientStop()
также отключит режим автозапуска.
Подробности | |||
---|---|---|---|
Параметры |
|
отСрпклиентенаблеавтохостаддресс
otError otSrpClientEnableAutoHostAddress( otInstance *aInstance )
Включает режим автоматического адреса хоста.
При включении IPv6-адреса узла автоматически устанавливаются клиентом SRP с использованием всех предпочтительных одноадресных адресов в потоке netif, за исключением всех локальных адресов канала и локальных адресов сети. Если предпочтительного адреса нет, то добавляется адрес Mesh Local EID. Клиент SRP автоматически перерегистрируется, когда/если адреса в потоке netif обновляются (добавляются новые адреса или существующие адреса удаляются или помечаются как непредпочтительные).
Режим автоматического адреса хоста можно включить перед запуском или во время работы клиента SRP, за исключением случаев, когда информация хоста удаляется (клиент занят обработкой запроса на удаление из вызова otSrpClientRemoveHostAndServices()
а информация хоста все еще находится в состояниях STATE_TO_REMOVE
или STATE_REMOVING
). ).
После включения режима автоматического адреса хоста его можно отключить с помощью вызова otSrpClientSetHostAddresses()
, который затем явно устанавливает адреса хостов.
Подробности | |||||
---|---|---|---|---|---|
Возвращаемые значения |
|
отСрпклиентенаблеавтостартмоде
void otSrpClientEnableAutoStartMode( otInstance *aInstance, otSrpClientAutoStartCallback aCallback, void *aContext )
Включает режим автозапуска.
Это доступно только в том случае, если включена функция автозапуска OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE
.
Параметр конфигурации OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_DEFAULT_MODE
определяет режим автозапуска по умолчанию (включен или отключен в начале стека OT).
Если автоматический запуск включен, клиент SRP будет отслеживать данные сети потоков, чтобы обнаружить серверы SRP и выбрать предпочтительный сервер, а также автоматически запускать и останавливать клиент при обнаружении сервера SRP.
Существует три категории записей сетевых данных, указывающих на наличие сервера SRP. Предпочтение отдается следующему порядку:
1) Предпочтительные одноадресные записи, в которых адрес сервера включен в служебные данные. Если существует несколько вариантов, предпочтительным является тот, у которого число IPv6-адреса меньше.
2) Записи Anycast, каждая из которых имеет порядковый номер. Больший порядковый номер в смысле, определенном логикой арифметики серийных номеров в RFC-1982, считается более новым и поэтому предпочтительным. Наибольший порядковый номер с использованием арифметики серийных номеров является предпочтительным, если он четко определен (т. е. порядковый номер больше, чем все остальные порядковые номера). Если он не определен четко, то предпочтительным является наибольший порядковый номер.
3) Записи одноадресной рассылки, в которых информация об адресе сервера включена в данные сервера. Если существует несколько вариантов, предпочтительным является тот, у которого число IPv6-адреса меньше.
При изменении записей сетевых данных клиент проверит, что текущий выбранный сервер все еще присутствует в сетевых данных и по-прежнему является предпочтительным. В противном случае клиент переключится на новый предпочтительный сервер или остановится, если его нет.
Когда клиент SRP запускается явным образом посредством успешного вызова otSrpClientStart()
, указанный адрес сервера SRP в otSrpClientStart()
будет продолжать использоваться независимо от состояния режима автозапуска и от того, обнаружен ли тот же адрес сервера SRP или нет. в данных сети потоков. В этом случае только явный вызов otSrpClientStop()
остановит клиент.
Подробности | |||||||
---|---|---|---|---|---|---|---|
Параметры |
|
отSrpClientGetDomainName
const char * otSrpClientGetDomainName( otInstance *aInstance )
Получает имя домена, используемое клиентом SRP.
Требуется, чтобы OPENTHREAD_CONFIG_SRP_CLIENT_DOMAIN_NAME_API_ENABLE
был включен.
Если имя домена не задано, будет использоваться «default.service.arpa».
Подробности | |||
---|---|---|---|
Параметры |
| ||
Возврат | Строка имени домена. |
отSrpClientGetHostInfo
const otSrpClientHostInfo * otSrpClientGetHostInfo( otInstance *aInstance )
Получает информацию о хосте.
Подробности | |||
---|---|---|---|
Параметры |
| ||
Возврат | Указатель на информационную структуру хоста. |
otSrpClientGetKeyLeaseInterval
uint32_t otSrpClientGetKeyLeaseInterval( otInstance *aInstance )
Получает интервал аренды ключа по умолчанию, используемый в запросах на обновление SRP.
Интервал по умолчанию используется только для экземпляров otSrpClientService
с mKeyLease
, установленным в ноль.
Обратите внимание, что это продолжительность аренды, запрошенная клиентом SRP. Сервер может выбрать другой интервал аренды.
Подробности | |||
---|---|---|---|
Параметры |
| ||
Возврат | Интервал аренды ключа (в секундах). |
отSrpClientGetLeaseInterval
uint32_t otSrpClientGetLeaseInterval( otInstance *aInstance )
Получает интервал аренды по умолчанию, используемый в запросах на обновление SRP.
Интервал по умолчанию используется только для экземпляров otSrpClientService
с нулевым значением mLease
.
Обратите внимание, что это продолжительность аренды, запрошенная клиентом SRP. Сервер может выбрать другой интервал аренды.
Подробности | |||
---|---|---|---|
Параметры |
| ||
Возврат | Интервал аренды (в секундах). |
отсрпклиентжетсервераддресс
const otSockAddr * otSrpClientGetServerAddress( otInstance *aInstance )
Получает адрес сокета (адрес IPv6 и номер порта) сервера SRP, который используется клиентом SRP.
Если клиент не запущен, адрес не указан (все нули) с нулевым номером порта.
Подробности | |||
---|---|---|---|
Параметры |
| ||
Возврат | Указатель на адрес сокета сервера SRP (всегда не равен NULL). |
отсрпклиентжетсервицес
const otSrpClientService * otSrpClientGetServices( otInstance *aInstance )
Получает список служб, которыми управляет клиент.
Подробности | |||
---|---|---|---|
Параметры |
| ||
Возврат | Указатель на заголовок связанного списка всех служб или NULL, если список пуст. |
отСрпклиентжетттл
uint32_t otSrpClientGetTtl( otInstance *aInstance )
Получает значение срока жизни в каждой записи, включенной в запросы на обновление SRP.
Обратите внимание, что это значение TTL, запрошенное клиентом SRP. Сервер может принять другой TTL.
По умолчанию TTL будет равен интервалу аренды. Передача 0 или значения, превышающего интервал аренды, через otSrpClientSetTtl()
также приведет к тому, что TTL станет равным интервалу аренды.
Подробности | |||
---|---|---|---|
Параметры |
| ||
Возврат | TTL (в секундах). |
отSrpClientIsAutoStartModeEnabled
bool otSrpClientIsAutoStartModeEnabled( otInstance *aInstance )
Указывает текущее состояние режима автозапуска (включено или отключено).
Это доступно только в том случае, если включена функция автозапуска OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE
.
Подробности | |||
---|---|---|---|
Параметры |
| ||
Возврат | TRUE, если включен режим автозапуска, в противном случае FALSE. |
отSrpClientIsRunning
bool otSrpClientIsRunning( otInstance *aInstance )
Указывает, запущен ли клиент SRP.
Подробности | |||
---|---|---|---|
Параметры |
| ||
Возврат | TRUE, если клиент SRP работает, в противном случае FALSE. |
отСрпклиентиссервицекейрекорденаблед
bool otSrpClientIsServiceKeyRecordEnabled( otInstance *aInstance )
Указывает, включен или отключен режим «включение записи сервисного ключа».
Доступно, если включена конфигурация OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE
.
Подробности | |||
---|---|---|---|
Параметры |
| ||
Возврат | TRUE, если включен режим включения записи сервисного ключа, в противном случае FALSE. |
отСрпклиентитемстатетостринг
const char * otSrpClientItemStateToString( otSrpClientItemState aItemState )
Преобразует otSrpClientItemState
в строку.
Подробности | |||
---|---|---|---|
Параметры |
| ||
Возврат | Строковое представление aItemState . |
otSrpClientRemoveHostAndServices
otError otSrpClientRemoveHostAndServices( otInstance *aInstance, bool aRemoveKeyLease, bool aSendUnregToServer )
Запускает процесс удаления информации о хосте и всех службах.
После возврата из этой функции будет вызван otSrpClientCallback
, чтобы сообщить о статусе запроса на удаление с сервера SRP.
Если информация о хосте должна быть окончательно удалена с сервера, для aRemoveKeyLease
должно быть установлено значение true
, что удаляет аренду ключа, связанную с хостом на сервере. В противном случае запись аренды ключа сохраняется, как и раньше, что гарантирует, что сервер сохранит имя хоста в резерве на тот случай, когда клиент снова сможет предоставить и зарегистрировать свои услуги.
aSendUnregToServer
определяет поведение, когда информация об хосте еще не зарегистрирована на сервере. Если aSendUnregToServer
установлено значение false
(это значение по умолчанию/ожидаемое значение), то клиент SRP немедленно удалит информацию о хосте и сервисах, не отправляя сообщение об обновлении на сервер (нет необходимости обновлять сервер, если на нем еще ничего не зарегистрировано). Если для параметра aSendUnregToServer
установлено значение true
, клиент SRP отправит на сервер сообщение об обновлении. Обратите внимание: если информация о хосте зарегистрирована, значение aSendUnregToServer
не имеет значения, и клиент SRP всегда будет отправлять на сервер сообщение обновления с запросом на удаление всей информации.
Одна из ситуаций, в которой aSendUnregToServer
может быть полезен, — это перезагрузка/перезагрузка устройства: вызывающая сторона может захотеть удалить любые ранее зарегистрированные на сервере службы. В этом случае вызывающая сторона может otSrpClientSetHostName()
, а затем запросить otSrpClientRemoveHostAndServices()
с aSendUnregToServer
как true
.
Подробности | |||||||
---|---|---|---|---|---|---|---|
Параметры |
| ||||||
Возвращаемые значения |
|
отСрпклиентремовесервице
otError otSrpClientRemoveService( otInstance *aInstance, otSrpClientService *aService )
Запрашивает отмену регистрации службы на сервере.
После успешного вызова этой функции будет вызвана otSrpClientCallback
, чтобы сообщить о статусе запроса на удаление с сервера SRP.
Экземпляр otSrpClientService
, на который указывает aService
, ДОЛЖЕН сохраняться и оставаться неизменным после возврата из этой функции (с OT_ERROR_NONE
). OpenThread сохранит экземпляр службы во время процесса удаления. Только после вызова otSrpClientCallback
, указывающего, что экземпляр службы удален из списка служб клиента SRP и может быть освобожден/повторно использован.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
| ||||
Возвращаемые значения |
|
otSrpClientSetCallback
void otSrpClientSetCallback( otInstance *aInstance, otSrpClientCallback aCallback, void *aContext )
Устанавливает обратный вызов для уведомления вызывающего абонента о событиях/изменениях от клиента SRP.
Клиент SRP позволяет зарегистрировать один обратный вызов. Таким образом, последовательные вызовы этой функции перезапишут любые ранее установленные функции обратного вызова.
Подробности | |||||||
---|---|---|---|---|---|---|---|
Параметры |
|
отСрпклиентсетдомаиннаме
otError otSrpClientSetDomainName( otInstance *aInstance, const char *aName )
Устанавливает имя домена, которое будет использоваться клиентом SRP.
Требуется, чтобы OPENTHREAD_CONFIG_SRP_CLIENT_DOMAIN_NAME_API_ENABLE
был включен.
Если не установлено, будет использоваться «default.service.arpa».
Буфер строки имени, на который указывает aName
ДОЛЖЕН сохраняться и оставаться неизменным после возврата из этой функции. OpenThread сохранит указатель на строку.
Доменное имя может быть установлено до запуска клиента или после запуска, но до того, как информация о хосте будет зарегистрирована на сервере (информация о хосте должна быть либо в STATE_TO_ADD
, либо STATE_TO_REMOVE
).
Подробности | |||||
---|---|---|---|---|---|
Параметры |
| ||||
Возвращаемые значения |
|
OTSRPCLIANTSETHOSTADDRESSES
otError otSrpClientSetHostAddresses( otInstance *aInstance, const otIp6Address *aIp6Addresses, uint8_t aNumAddresses )
Устанавливает/обновляет список адреса IPv6 хоста.
Адреса IPv6 хоста может быть установлено/изменено до запуска или во время работы клиента SRP (например, для добавления/удаления или изменения ранее зарегистрированного адреса хоста), за исключением случаев, когда информация об хосте удаляется (клиент занят обработкой запроса удаления из более раннего Позвоните в otSrpClientRemoveHostAndServices()
и информация об хосте по -прежнему находится в STATE_TO_REMOVE
или государственном или STATE_REMOVING
состояниях).
Адрес -массив Host IPv6, на который указывают aIp6Addresses
должны сохраняться и оставаться неизменными после возвращения с этой функции (с OT_ERROR_NONE
). Openthread сохранит указатель на массив.
После успешного вызова этой функции otSrpClientCallback
будет вызван для сообщений о состоянии регистрации адреса с помощью SRP -сервера.
Вызов этой функции отключает режим Auto Host Adder, если она была ранее включена из успешного вызова otSrpClientEnableAutoHostAddress()
.
Подробности | |||||||
---|---|---|---|---|---|---|---|
Параметры |
| ||||||
Возвращаемые значения |
|
otsrpclientsethostname
otError otSrpClientSetHostName( otInstance *aInstance, const char *aName )
Устанавливает метку имени хоста.
После успешного вызова этой функции otSrpClientCallback
будет вызван для сообщений о статусе регистрации информации об хосте с помощью SRP -сервера.
Строка имени, на которую указывает aName
, должно сохраняться и оставаться неизменным после возвращения из этой функции. Openthread будет держать указатель на строку.
Имя хоста может быть установлено до того, как клиент будет запущен или после начала, но до того, как информация о хосте будет зарегистрирована на сервере (информация об хосте должна быть в STATE_TO_ADD
или STATE_REMOVED
).
Подробности | |||||||
---|---|---|---|---|---|---|---|
Параметры |
| ||||||
Возвращаемые значения |
|
OTSRPClientSetKeyLeaseInterval
void otSrpClientSetKeyLeaseInterval( otInstance *aInstance, uint32_t aInterval )
Устанавливает интервал аренды ключей по умолчанию, используемый в запросах обновления SRP.
Интервал по умолчанию используется только для экземпляров otSrpClientService
, а mKeyLease
устанавливается на ноль.
Изменение интервала аренды не влияет на общепринятый интервал аренды уже зарегистрированных служб/хост-инфу. Это влияет только на любые будущие сообщения обновления SRP (то есть добавление новых сервисов и/или обновления существующих услуг).
Подробности | |||||
---|---|---|---|---|---|
Параметры |
|
OTSRPCLIANSETLEASEINTERVAL
void otSrpClientSetLeaseInterval( otInstance *aInstance, uint32_t aInterval )
Устанавливает интервал аренды по умолчанию, используемый в запросах обновления SRP.
Интервал по умолчанию используется только для экземпляров otSrpClientService
с mLease
, установленным на ноль.
Изменение интервала аренды не влияет на общепринятый интервал аренды уже зарегистрированных служб/хост-инфу. Это только влияет на любые будущие сообщения обновления SRP (то есть добавление новых сервисов и/или обновления существующих услуг).
Подробности | |||||
---|---|---|---|---|---|
Параметры |
|
OTSRPClientsServiceKeyRecordEnabled
void otSrpClientSetServiceKeyRecordEnabled( otInstance *aInstance, bool aEnabled )
Включает/отключает режим «включение записи сервисного ключа».
При включении клиент SRP будет включать запись ключей в инструкции по описанию службы в сообщениях обновления SRP, которые он отправляет.
Доступен при включении конфигурации OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE
.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
|
OTSRPClientSetttl
void otSrpClientSetTtl( otInstance *aInstance, uint32_t aTtl )
Устанавливает значение TTL в каждой записи, включенной в запросы обновления SRP.
Изменение TTL не влияет на TTL уже зарегистрированных услуг/host-info. Это влияет только на будущие сообщения обновления SRP (то есть добавление новых сервисов и/или обновления существующих услуг).
Подробности | |||||
---|---|---|---|---|---|
Параметры |
|
OTSRPClientStart
otError otSrpClientStart( otInstance *aInstance, const otSockAddr *aServerSockAddr )
Запускает операцию клиента SRP.
Клиент SRP подготовит и отправит сообщение «Обновление SRP» на сервер SRP после того, как все следующие условия будут выполнены:
- Клиент SRP начинается -
otSrpClientStart()
называется. - Имя хоста установлено - называется
otSrpClientSetHostName()
. - По крайней мере, один хост IPv6 -адрес установлен - называется
otSrpClientSetHostName()
. - По крайней мере, одна услуга добавлен - называется
otSrpClientAddService()
.
Не имеет значения, в каком порядке называются эти функции. Когда все условия будут выполнены, клиент SRP будет ждать короткой задержки, прежде чем подготовить сообщение «Обновление SRP» и отправить его на сервер. Эта задержка позволяет пользователю добавлять несколько сервисов и/или адресов IPv6 до отправки первого сообщения обновления SRP (обеспечивая отправку одного обновления SRP, содержащего всю информацию). Config OPENTHREAD_CONFIG_SRP_CLIENT_UPDATE_TX_DELAY
указывает интервал задержки.
Подробности | |||||||
---|---|---|---|---|---|---|---|
Параметры |
| ||||||
Возвращаемые значения |
|
OTSRPClientStop
void otSrpClientStop( otInstance *aInstance )
Останавливает операцию клиента SRP.
Останавливает любые дальнейшие взаимодействия с сервером SRP. Обратите внимание, что он не удаляет и не очищает информацию об хосте и/или список услуг. Он отмечает все услуги, которые будут добавлены/удалены снова после начала клиента (Re).
Подробности | |||
---|---|---|---|
Параметры |
|
otsrpservergetAddressMode
otSrpServerAddressMode otSrpServerGetAddressMode( otInstance *aInstance )
Возвращает адресный режим, используемый SRP -сервером.
Подробности | |||
---|---|---|---|
Параметры |
| ||
Возврат | Адресный режим сервера SRP. |
OTSRPERVERGENTANYCASTMODESEQUENCENCUMEMBERMEMBER
uint8_t otSrpServerGetAnycastModeSequenceNumber( otInstance *aInstance )
Возвращает номер последовательности, используемый в адресном режиме AnyCast.
Номер последовательности включен в запись «DNS/SRP Service Anduce Adder», опубликованная в сетевых данных.
Подробности | |||
---|---|---|---|
Параметры |
| ||
Возврат | Номер последовательности AnyCast. |
otrpservergetdomain
const char * otSrpServerGetDomain( otInstance *aInstance )
Возвращает домен, авторизованный на сервер SRP.
Если домен, если не установлен SetDomain, «default.service.arpa». будет возвращен. Тяжелая точка всегда добавляется, даже если домен устанавливается без нее.
Подробности | |||
---|---|---|---|
Параметры |
| ||
Возврат | Указатель на доменную строку с точки зрения. |
otsrpservergetLeaseConfig
void otSrpServerGetLeaseConfig( otInstance *aInstance, otSrpServerLeaseConfig *aLeaseConfig )
Возвращает SRP-сервер-аренды и конфигурации аренды ключей.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
|
otsrpservergetnexthost
const otSrpServerHost * otSrpServerGetNextHost( otInstance *aInstance, const otSrpServerHost *aHost )
Возвращает следующий зарегистрированный хост на сервере SRP.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
| ||||
Возврат | Указатель на зарегистрированный хост. Null, если больше хостов нельзя найти. |
otsrpservergetport
uint16_t otSrpServerGetPort( otInstance *aInstance )
Возвращает порт, сервер SRP прослушивает.
Подробности | |||
---|---|---|---|
Параметры |
| ||
Возврат | Порт сервера SRP. Возвращает 0, если сервер не работает. |
otsrpservergetresponsecounters
const otSrpServerResponseCounters * otSrpServerGetResponseCounters( otInstance *aInstance )
Возвращает счетчики ответа сервера SRP.
Подробности | |||
---|---|---|---|
Параметры |
| ||
Возврат | Указатель на счетчики ответа сервера SRP. |
otsrpservergetstate
otSrpServerState otSrpServerGetState( otInstance *aInstance )
Возвращает состояние сервера SRP.
Подробности | |||
---|---|---|---|
Параметры |
| ||
Возврат | Текущее состояние сервера SRP. |
otsrpservergettlconfig
void otSrpServerGetTtlConfig( otInstance *aInstance, otSrpServerTtlConfig *aTtlConfig )
Возвращает конфигурацию SRP -сервера TTL.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
|
otsrpserverhandleserviceupdateresult
void otSrpServerHandleServiceUpdateResult( otInstance *aInstance, otSrpServerServiceUpdateId aId, otError aError )
Сообщает результат обработки обновления SRP на сервер SRP.
Обработчик обновления службы должен вызвать эту функцию, чтобы вернуть результат его обработки обновления SRP.
Подробности | |||||||
---|---|---|---|---|---|---|---|
Параметры |
|
otsrpserverhostgetaddresses
const otIp6Address * otSrpServerHostGetAddresses( const otSrpServerHost *aHost, uint8_t *aAddressesNum )
Возвращает адреса данного хоста.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
| ||||
Возврат | Указатель на массив адреса IPv6. |
otsrpserverhostgetfullname
const char * otSrpServerHostGetFullName( const otSrpServerHost *aHost )
Возвращает полное имя хоста.
Подробности | |||
---|---|---|---|
Параметры |
| ||
Возврат | Указатель на строку имени хоста с нулевым именем. |
otsrpserverhostgetLeaseInfo
void otSrpServerHostGetLeaseInfo( const otSrpServerHost *aHost, otSrpServerLeaseInfo *aLeaseInfo )
Возвращает информацию об аренде и ключевой аренде данного хоста.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
|
otsrpserverhostgetnextservice
const otSrpServerService * otSrpServerHostGetNextService( const otSrpServerHost *aHost, const otSrpServerService *aService )
Возвращает следующий сервис данного хоста.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
| ||||
Возврат | Указатель на следующую службу или NULL, если больше нет услуг. |
otsrpserverhostisdeleted
bool otSrpServerHostIsDeleted( const otSrpServerHost *aHost )
Рассказывает, был ли удален сервисного хоста SRP.
Хост сервиса SRP может быть удален, но сохраняет свое название для будущего использования. В этом случае экземпляр хоста не удален с SRP -сервера/реестра.
Подробности | |||
---|---|---|---|
Параметры |
| ||
Возврат | Правда, если хост был удален, ложь, если нет. |
otsrpserverhostmatchesfullname
bool otSrpServerHostMatchesFullName( const otSrpServerHost *aHost, const char *aFullName )
Указывает, соответствует ли хост данное имя хоста.
Матчи имен DNS выполняются с использованием нечувствительного к случаю сравнения строк (то есть «ABC» и «ABC» считаются такими же).
Подробности | |||||
---|---|---|---|---|---|
Параметры |
| ||||
Возвращаемые значения |
|
otsrpserverisautoenablemode
bool otSrpServerIsAutoEnableMode( otInstance *aInstance )
Указывает, включен или отключен режим автоматического выбора.
Требуется OPENTHREAD_CONFIG_BORDER_ROUTING_ENABLE
функция.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
| ||||
Возвращаемые значения |
|
otsrpserverparsesubtypeserviceName
otError otSrpServerParseSubTypeServiceName( const char *aSubTypeServiceName, char *aLabel, uint8_t aLabelSize )
Подготовки имени службы подтипа (полное имя) и извлекает метку подтипа.
Полное имя обслуживания для службы подтипа следует "
Подробности | |||||||
---|---|---|---|---|---|---|---|
Параметры |
| ||||||
Возвращаемые значения |
|
otrpserverservicegethost
const otSrpServerHost * otSrpServerServiceGetHost( const otSrpServerService *aService )
Возвращает хост, на котором проживает экземпляр службы.
Подробности | |||
---|---|---|---|
Параметры |
| ||
Возврат | Указатель на экземпляр хоста. |
otsrpserverservicegetinstancelabel
const char * otSrpServerServiceGetInstanceLabel( const otSrpServerService *aService )
Возвращает метку экземпляра службы (первая метка в имени экземпляра) Сервиса.
Подробности | |||
---|---|---|---|
Параметры |
| ||
Возврат | Указатель на строку метки экземпляра службы с нулевым экземпляром .. |
otsrpserverservicegetinstancename
const char * otSrpServerServiceGetInstanceName( const otSrpServerService *aService )
Возвращает полное имя экземпляра службы Сервиса.
Подробности | |||
---|---|---|---|
Параметры |
| ||
Возврат | Указатель на строку названия экземпляра службы с нулевым находом. |
otsrpserverservicegetLeaseInfo
void otSrpServerServiceGetLeaseInfo( const otSrpServerService *aService, otSrpServerLeaseInfo *aLeaseInfo )
Возвращает информацию о аренде и ключевой аренде данной службы.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
|
OTSRPERVERVERSERVICEGETNUMBREFSUBTYPES
uint16_t otSrpServerServiceGetNumberOfSubTypes( const otSrpServerService *aService )
Получает количество подтипов службы.
Подробности | |||
---|---|---|---|
Параметры |
| ||
Возврат | Количество подтипов aService . |
OTSRPERVERVERSERVICEGETPORT
uint16_t otSrpServerServiceGetPort( const otSrpServerService *aService )
Возвращает порт экземпляра службы.
Подробности | |||
---|---|---|---|
Параметры |
| ||
Возврат | Порт сервиса. |
otsrpserverservicegetPriority
uint16_t otSrpServerServiceGetPriority( const otSrpServerService *aService )
Возвращает приоритет экземпляра службы.
Подробности | |||
---|---|---|---|
Параметры |
| ||
Возврат | Приоритет службы. |
OTSRPERVERVERSERVICEGETSERVICENAME
const char * otSrpServerServiceGetServiceName( const otSrpServerService *aService )
Возвращает полное название сервиса службы.
Подробности | |||
---|---|---|---|
Параметры |
| ||
Возврат | Указатель на строку имени службы с нулевым именем. |
otsrpserverservicegetsubtypeservicenameat
const char * otSrpServerServiceGetSubTypeServiceNameAt( const otSrpServerService *aService, uint16_t aIndex )
Получает имя службы подтипа (полное имя) Сервиса по данному индексу.
Полное имя обслуживания для службы подтипа следует "
Подробности | |||||
---|---|---|---|---|---|
Параметры |
| ||||
Возврат | Указатель на имя службы подтипа в aIndex или NULL , если в этом индексе нет подтипа. |
otsrpserverservicegetttl
uint32_t otSrpServerServiceGetTtl( const otSrpServerService *aService )
Возвращает TTL экземпляра службы.
Подробности | |||
---|---|---|---|
Параметры |
| ||
Возврат | TTL экземпляра службы .. |
otsrpserverservicegettxtdata
const uint8_t * otSrpServerServiceGetTxtData( const otSrpServerService *aService, uint16_t *aDataLength )
Возвращает данные записи TXT в экземпляре службы.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
| ||||
Возврат | Указатель на буфер, содержащий данные записи TXT (длина данных TXT возвращается в aDataLength ). |
otsrpserverservicegetgeweight
uint16_t otSrpServerServiceGetWeight( const otSrpServerService *aService )
Возвращает вес сервисного экземпляра.
Подробности | |||
---|---|---|---|
Параметры |
| ||
Возврат | Вес услуги. |
otsrpserverservicehassubtypeserviceName
bool otSrpServerServiceHasSubTypeServiceName( const otSrpServerService *aService, const char *aSubTypeServiceName )
Указывает, имеет ли услуга заданный подтип.
Матчи имен DNS выполняются с использованием нечувствительного к случаю сравнения строк (то есть «ABC» и «ABC» считаются такими же).
Подробности | |||||
---|---|---|---|---|---|
Параметры |
| ||||
Возвращаемые значения |
|
otrpserverserviceisdeleted
bool otSrpServerServiceIsDeleted( const otSrpServerService *aService )
Указывает, была ли удаленная служба SRP.
Служба SRP может быть удалена, но сохраняет свое название для будущих использования. В этом случае экземпляр службы не удален с сервера/реестра SRP. Гарантируется, что все услуги удалены, если хост удален.
Подробности | |||
---|---|---|---|
Параметры |
| ||
Возврат | Правда, если услуга была удалена, ложь, если нет. |
otsrpserverservicematchesinstanceName
bool otSrpServerServiceMatchesInstanceName( const otSrpServerService *aService, const char *aInstanceName )
Указывает, соответствует ли эта служба данное имя экземпляра службы.
Матчи имен DNS выполняются с использованием нечувствительного к случаю сравнения строк (то есть «ABC» и «ABC» считаются такими же).
Подробности | |||||
---|---|---|---|---|---|
Параметры |
| ||||
Возвращаемые значения |
|
otrpserverservicematchesserseviceName
bool otSrpServerServiceMatchesServiceName( const otSrpServerService *aService, const char *aServiceName )
Указывает, соответствует ли эта служба данное имя службы.
Матчи имен DNS выполняются с использованием нечувствительного к случаю сравнения строк (то есть «ABC» и «ABC» считаются такими же).
Подробности | |||||
---|---|---|---|---|---|
Параметры |
| ||||
Возвращаемые значения |
|
OTSRPERVERVERSETADDRESSMODE
otError otSrpServerSetAddressMode( otInstance *aInstance, otSrpServerAddressMode aMode )
Устанавливает адресный режим, который будет использоваться сервером SRP.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
| ||||
Возвращаемые значения |
|
OTSRPERVERVERSETANYCASTMODESEQUENCENCUMER
otError otSrpServerSetAnycastModeSequenceNumber( otInstance *aInstance, uint8_t aSequenceNumber )
Устанавливает номер последовательности, используемый в адресном режиме AnyCast.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
| ||||
Возвращаемые значения |
|
otsrpserversetautoenablemode
void otSrpServerSetAutoEnableMode( otInstance *aInstance, bool aEnabled )
Включает/отключает режим автоматического выбора на SRP-сервере.
Требуется OPENTHREAD_CONFIG_BORDER_ROUTING_ENABLE
функция.
Когда этот режим включен, менеджер пограничной маршрутизации управляет, если/когда включить или отключить сервер SRP. SRP SEAR является автоматической поддержкой, если/когда запускается пограничная маршрутизация, и это делается с начальным префиксом и конфигурациями маршрута (когда определяются префиксы OMR и он на него, рекламируются в рекламном сообщении излучаемого маршрутизатора на стороне инфраструктуры и опубликованы в ветке. Сетевые данные). Сервер SRP является автоматическим, если/когда BR остановлен (например, если интерфейс сети инфраструктуры снят или если BR будет отстранен).
Этот режим может быть отключен с помощью вызова otSrpServerSetAutoEnableMode()
с установленным aEnabled
для false
или если сервер SRP явно включен или отключен с помощью вызова otSrpServerSetEnabled()
. Отключение автоматического режима с использованием otSrpServerSetAutoEnableMode(false)
не будет изменять текущее состояние SRP SEAR (например, если он включен, он остается включенным).
Подробности | |||||
---|---|---|---|---|---|
Параметры |
|
otrpserversetdomain
otError otSrpServerSetDomain( otInstance *aInstance, const char *aDomain )
Устанавливает домен на сервере SRP.
Тяжелая точка будет добавлена в aDomain
, если ее еще нет. Следует вызвать только до того, как сервер SRP включен.
Подробности | |||||||||
---|---|---|---|---|---|---|---|---|---|
Параметры |
| ||||||||
Возвращаемые значения |
|
OTSRPERVERVERSENAKEND
void otSrpServerSetEnabled( otInstance *aInstance, bool aEnabled )
Включает/отключает сервер SRP.
На пограничном маршрутизаторе рекомендуется использовать otSrpServerSetAutoEnableMode()
.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
|
otsrpserversetLeaseConfig
otError otSrpServerSetLeaseConfig( otInstance *aInstance, const otSrpServerLeaseConfig *aLeaseConfig )
Устанавливает конфигурации аренды SRP-сервера и лизинга.
Когда у клиента требуется время аренды, предоставленное значение будет ограничено в диапазоне [Aminlease, Amaxlease]; и ненулевой ключ будет предоставлена в диапазоне [AminkeyLease, AmaxkeyLease]. Для нулевой аренды или времени аренды ключа будет предоставлен Zero.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
| ||||
Возвращаемые значения |
|
otsrpserversetserviceupdatehandler
void otSrpServerSetServiceUpdateHandler( otInstance *aInstance, otSrpServerServiceUpdateHandler aServiceHandler, void *aContext )
Устанавливает обработчик обновлений службы SRP на сервере SRP.
Подробности | |||||||
---|---|---|---|---|---|---|---|
Параметры |
|
otsrpserversetttlconfig
otError otSrpServerSetTtlConfig( otInstance *aInstance, const otSrpServerTtlConfig *aTtlConfig )
Устанавливает конфигурацию TTL SRP Server.
Предоставленный TTL всегда будет не больше интервала максимальной аренды, настроенной через otSrpServerSetLeaseConfig()
, независимо от минимальной и максимальной конфигурации TTL.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
| ||||
Возвращаемые значения |
|
Ресурсы
Справочные разделы API OpenThread взяты из исходного кода, доступного на GitHub . Для получения дополнительной информации или внесения вклада в нашу документацию обратитесь к Ресурсам .