SRP

Este módulo inclui funções que controlam o comportamento do cliente SRP.

Resumo

Este módulo inclui funções do protocolo de registro de serviço.

Esse módulo inclui funções para buffers de cliente SRP e pool de serviços.

As funções neste módulo só estão disponíveis quando o recurso OPENTHREAD_CONFIG_SRP_CLIENT_BUFFERS_ENABLE está ativado.

Enumerações

otSrpClientItemState{
  OT_SRP_CLIENT_ITEM_STATE_TO_ADD,
  OT_SRP_CLIENT_ITEM_STATE_ADDING,
  OT_SRP_CLIENT_ITEM_STATE_TO_REFRESH,
  OT_SRP_CLIENT_ITEM_STATE_REFRESHING,
  OT_SRP_CLIENT_ITEM_STATE_TO_REMOVE,
  OT_SRP_CLIENT_ITEM_STATE_REMOVING,
  OT_SRP_CLIENT_ITEM_STATE_REGISTERED,
  OT_SRP_CLIENT_ITEM_STATE_REMOVED
}
enum
Especifica um estado do item de cliente SRP (informações do serviço ou do host).
otSrpServerAddressMode{
  OT_SRP_SERVER_ADDRESS_MODE_UNICAST = 0,
  OT_SRP_SERVER_ADDRESS_MODE_ANYCAST = 1
}
enum
Representa o modo de endereço usado pelo servidor SRP.
otSrpServerState{
  OT_SRP_SERVER_STATE_DISABLED = 0,
  OT_SRP_SERVER_STATE_RUNNING = 1,
  OT_SRP_SERVER_STATE_STOPPED = 2
}
enum
Representa o estado do servidor SRP.

Typedefs

otSrpClientAutoStartCallback)(const otSockAddr *aServerSockAddr, void *aContext) typedef
void(*
O tipo de ponteiro define o callback usado pelo cliente SRP para notificar o usuário quando ele é iniciado ou interrompido automaticamente.
otSrpClientBuffersServiceEntry typedef
Representa uma entrada do pool de serviços de clientes SRP.
otSrpClientCallback)(otError aError, const otSrpClientHostInfo *aHostInfo, const otSrpClientService *aServices, const otSrpClientService *aRemovedServices, void *aContext) typedef
void(*
O tipo de ponteiro define o callback usado pelo cliente SRP para notificar o usuário sobre mudanças/eventos/erros.
otSrpClientHostInfo typedef
Representa uma informação de host do cliente SRP.
otSrpClientService typedef
Representa um serviço do cliente SRP.
otSrpServerAddressMode typedef
Representa o modo de endereço usado pelo servidor SRP.
otSrpServerHost typedef
Esse tipo opaco representa um host de serviço SRP.
otSrpServerLeaseConfig typedef
Inclui as configurações LEASE e KEY-LEASE do servidor SRP.
otSrpServerLeaseInfo typedef
Inclui informações de locação do servidor SRP de um host/serviço.
otSrpServerResponseCounters typedef
Inclui as estatísticas de respostas do servidor SRP.
otSrpServerService typedef
Esse tipo opaco representa um serviço SRP.
otSrpServerServiceUpdateHandler)(otSrpServerServiceUpdateId aId, const otSrpServerHost *aHost, uint32_t aTimeout, void *aContext) typedef
void(*
Lida com as atualizações do serviço SRP.
otSrpServerServiceUpdateId typedef
uint32_t
O ID de uma transação de atualização do serviço SRP no servidor SRP.
otSrpServerTtlConfig typedef
Inclui configurações de TTL do servidor SRP.

Funções

otSrpClientAddService(otInstance *aInstance, otSrpClientService *aService)
Adiciona um serviço a ser registrado no servidor.
otSrpClientBuffersAllocateService(otInstance *aInstance)
Aloca uma nova entrada de serviço do pool.
otSrpClientBuffersFreeAllServices(otInstance *aInstance)
void
Libera todas as entradas de serviço alocadas anteriormente.
otSrpClientBuffersFreeService(otInstance *aInstance, otSrpClientBuffersServiceEntry *aService)
void
Libera uma entrada de serviço alocada anteriormente.
otSrpClientBuffersGetHostAddressesArray(otInstance *aInstance, uint8_t *aArrayLength)
Recebe a matriz de entradas de endereço IPv6 para usar como lista de endereços de host do cliente SRP.
otSrpClientBuffersGetHostNameString(otInstance *aInstance, uint16_t *aSize)
char *
Extrai o buffer de string a ser usado para o nome do host do cliente SRP.
otSrpClientBuffersGetServiceEntryInstanceNameString(otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize)
char *
Recebe o buffer de string do nome da instância de serviço de uma entrada de serviço.
otSrpClientBuffersGetServiceEntryServiceNameString(otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize)
char *
Recebe o buffer de string para o nome do serviço de uma entrada de serviço.
otSrpClientBuffersGetServiceEntryTxtBuffer(otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize)
uint8_t *
Extrai o buffer do registro TXT de uma entrada de serviço.
otSrpClientBuffersGetSubTypeLabelsArray(otSrpClientBuffersServiceEntry *aEntry, uint16_t *aArrayLength)
const char **
Recebe a matriz dos rótulos de subtipo de serviço da entrada de serviço.
otSrpClientClearHostAndServices(otInstance *aInstance)
void
Limpa todas as informações do host e todos os serviços.
otSrpClientClearService(otInstance *aInstance, otSrpClientService *aService)
Limpa um serviço e o remove imediatamente da lista.
otSrpClientDisableAutoStartMode(otInstance *aInstance)
void
Desativa o modo de início automático.
otSrpClientEnableAutoHostAddress(otInstance *aInstance)
Ativa o modo automático de endereço do host.
otSrpClientEnableAutoStartMode(otInstance *aInstance, otSrpClientAutoStartCallback aCallback, void *aContext)
void
Ativa o modo de início automático.
otSrpClientGetDomainName(otInstance *aInstance)
const char *
Extrai o nome de domínio que está sendo usado pelo cliente SRP.
otSrpClientGetHostInfo(otInstance *aInstance)
Recebe as informações do host.
otSrpClientGetKeyLeaseInterval(otInstance *aInstance)
uint32_t
Recebe o intervalo de alocação de chave padrão usado nas solicitações de atualização de SRP.
otSrpClientGetLeaseInterval(otInstance *aInstance)
uint32_t
Recebe o intervalo de alocação padrão usado nas solicitações de atualização de SRP.
otSrpClientGetServerAddress(otInstance *aInstance)
const otSockAddr *
Extrai o endereço do soquete (endereço IPv6 e número da porta) do servidor SRP que está sendo usado pelo cliente SRP.
otSrpClientGetServices(otInstance *aInstance)
Recebe a lista de serviços que estão sendo gerenciados pelo cliente.
otSrpClientGetTtl(otInstance *aInstance)
uint32_t
Recebe o valor de TTL em cada registro incluído nas solicitações de atualização de SRP.
otSrpClientIsAutoStartModeEnabled(otInstance *aInstance)
bool
Indica o estado atual do modo de início automático (ativado ou desativado).
otSrpClientIsRunning(otInstance *aInstance)
bool
Indica se o cliente SRP está em execução ou não.
otSrpClientIsServiceKeyRecordEnabled(otInstance *aInstance)
bool
Indica se o modo "inclusão de registro de chave de serviço" está ativado ou desativado.
otSrpClientItemStateToString(otSrpClientItemState aItemState)
const char *
Converte um otSrpClientItemState em uma string.
otSrpClientRemoveHostAndServices(otInstance *aInstance, bool aRemoveKeyLease, bool aSendUnregToServer)
Inicia o processo de remoção das informações do host e de todos os serviços.
otSrpClientRemoveService(otInstance *aInstance, otSrpClientService *aService)
Solicita o cancelamento do registro de um serviço com o servidor.
otSrpClientSetCallback(otInstance *aInstance, otSrpClientCallback aCallback, void *aContext)
void
Define o callback para notificar o autor da chamada sobre eventos/mudanças do cliente SRP.
otSrpClientSetDomainName(otInstance *aInstance, const char *aName)
Define o nome de domínio a ser usado pelo cliente SRP.
otSrpClientSetHostAddresses(otInstance *aInstance, const otIp6Address *aIp6Addresses, uint8_t aNumAddresses)
Define/atualiza a lista de endereços IPv6 do host.
otSrpClientSetHostName(otInstance *aInstance, const char *aName)
Define o rótulo do nome do host.
otSrpClientSetKeyLeaseInterval(otInstance *aInstance, uint32_t aInterval)
void
Define o intervalo de alocação de chave padrão usado nas solicitações de atualização de SRP.
otSrpClientSetLeaseInterval(otInstance *aInstance, uint32_t aInterval)
void
Define o intervalo de alocação padrão usado nas solicitações de atualização de SRP.
otSrpClientSetServiceKeyRecordEnabled(otInstance *aInstance, bool aEnabled)
void
Ativa/desativa o modo de "inclusão de registro da chave de serviço".
otSrpClientSetTtl(otInstance *aInstance, uint32_t aTtl)
void
Define o valor de TTL em cada registro incluído nas solicitações de atualização de SRP.
otSrpClientStart(otInstance *aInstance, const otSockAddr *aServerSockAddr)
Inicia a operação do cliente SRP.
otSrpClientStop(otInstance *aInstance)
void
Interrompe a operação do cliente SRP.
otSrpServerGetAddressMode(otInstance *aInstance)
Retorna o modo de endereço usado pelo servidor SRP.
otSrpServerGetAnycastModeSequenceNumber(otInstance *aInstance)
uint8_t
Retorna o número de sequência usado com o modo de endereço anycast.
otSrpServerGetDomain(otInstance *aInstance)
const char *
Retorna o domínio autorizado ao servidor SRP.
otSrpServerGetLeaseConfig(otInstance *aInstance, otSrpServerLeaseConfig *aLeaseConfig)
void
Retorna as configurações LEASE e KEY-LEASE do servidor SRP.
otSrpServerGetNextHost(otInstance *aInstance, const otSrpServerHost *aHost)
const otSrpServerHost *
Retorna o próximo host registrado no servidor SRP.
otSrpServerGetPort(otInstance *aInstance)
uint16_t
Retorna a porta em que o servidor SRP está detectando.
otSrpServerGetResponseCounters(otInstance *aInstance)
Retorna os contadores de resposta do servidor SRP.
otSrpServerGetState(otInstance *aInstance)
Retorna o estado do servidor SRP.
otSrpServerGetTtlConfig(otInstance *aInstance, otSrpServerTtlConfig *aTtlConfig)
void
Retorna a configuração de TTL do servidor SRP.
otSrpServerHandleServiceUpdateResult(otInstance *aInstance, otSrpServerServiceUpdateId aId, otError aError)
void
Informa o resultado do processamento de uma atualização de SRP para o servidor SRP.
otSrpServerHostGetAddresses(const otSrpServerHost *aHost, uint8_t *aAddressesNum)
const otIp6Address *
Retorna os endereços de determinado host.
otSrpServerHostGetFullName(const otSrpServerHost *aHost)
const char *
Retorna o nome completo do host.
otSrpServerHostGetLeaseInfo(const otSrpServerHost *aHost, otSrpServerLeaseInfo *aLeaseInfo)
void
Retorna as informações LEASE e KEY-LEASE de um determinado host.
otSrpServerHostGetNextService(const otSrpServerHost *aHost, const otSrpServerService *aService)
Retorna o próximo serviço do host especificado.
otSrpServerHostIsDeleted(const otSrpServerHost *aHost)
bool
Informa se o host do serviço SRP foi excluído.
otSrpServerHostMatchesFullName(const otSrpServerHost *aHost, const char *aFullName)
bool
Indica se o host corresponde a um determinado nome de host.
otSrpServerIsAutoEnableMode(otInstance *aInstance)
bool
Indica se o modo de ativação automática está ativado ou desativado.
otSrpServerParseSubTypeServiceName(const char *aSubTypeServiceName, char *aLabel, uint8_t aLabelSize)
Analisa o nome de serviço de um subtipo (nome completo) e extrai o rótulo do subtipo.
otSrpServerServiceGetHost(const otSrpServerService *aService)
const otSrpServerHost *
Retorna o host em que a instância de serviço reside.
otSrpServerServiceGetInstanceLabel(const otSrpServerService *aService)
const char *
Retorna o rótulo da instância de serviço (primeiro rótulo no nome da instância) do serviço.
otSrpServerServiceGetInstanceName(const otSrpServerService *aService)
const char *
Retorna o nome completo da instância de serviço do serviço.
otSrpServerServiceGetLeaseInfo(const otSrpServerService *aService, otSrpServerLeaseInfo *aLeaseInfo)
void
Retorna as informações LEASE e KEY-LEASE de um determinado serviço.
otSrpServerServiceGetNumberOfSubTypes(const otSrpServerService *aService)
uint16_t
Extrai o número de subtipos do serviço.
otSrpServerServiceGetPort(const otSrpServerService *aService)
uint16_t
Retorna a porta da instância de serviço.
otSrpServerServiceGetPriority(const otSrpServerService *aService)
uint16_t
Retorna a prioridade da instância de serviço.
otSrpServerServiceGetServiceName(const otSrpServerService *aService)
const char *
Retorna o nome completo do serviço.
otSrpServerServiceGetSubTypeServiceNameAt(const otSrpServerService *aService, uint16_t aIndex)
const char *
Extrai o nome do serviço do subtipo (nome completo) do serviço em um determinado índice.
otSrpServerServiceGetTtl(const otSrpServerService *aService)
uint32_t
Retorna o TTL da instância de serviço.
otSrpServerServiceGetTxtData(const otSrpServerService *aService, uint16_t *aDataLength)
const uint8_t *
Retorna os dados do registro TXT da instância de serviço.
otSrpServerServiceGetWeight(const otSrpServerService *aService)
uint16_t
Retorna o peso da instância de serviço.
otSrpServerServiceHasSubTypeServiceName(const otSrpServerService *aService, const char *aSubTypeServiceName)
bool
Indica se o serviço tem um determinado subtipo.
otSrpServerServiceIsDeleted(const otSrpServerService *aService)
bool
Indica se o serviço SRP foi excluído ou não.
otSrpServerServiceMatchesInstanceName(const otSrpServerService *aService, const char *aInstanceName)
bool
Indica se esse serviço corresponde a um determinado nome de instância de serviço.
otSrpServerServiceMatchesServiceName(const otSrpServerService *aService, const char *aServiceName)
bool
Indica se esse serviço corresponde a um determinado nome de serviço.
otSrpServerSetAddressMode(otInstance *aInstance, otSrpServerAddressMode aMode)
Define o modo de endereço a ser usado pelo servidor SRP.
otSrpServerSetAnycastModeSequenceNumber(otInstance *aInstance, uint8_t aSequenceNumber)
Define o número de sequência usado com o modo de endereço anycast.
otSrpServerSetAutoEnableMode(otInstance *aInstance, bool aEnabled)
void
Ativa/desativa o modo de ativação automática no servidor SRP.
otSrpServerSetDomain(otInstance *aInstance, const char *aDomain)
Define o domínio no servidor SRP.
otSrpServerSetEnabled(otInstance *aInstance, bool aEnabled)
void
Ativa/desativa o servidor SRP.
otSrpServerSetLeaseConfig(otInstance *aInstance, const otSrpServerLeaseConfig *aLeaseConfig)
Define as configurações LEASE e KEY-LEASE do servidor SRP.
otSrpServerSetServiceUpdateHandler(otInstance *aInstance, otSrpServerServiceUpdateHandler aServiceHandler, void *aContext)
void
Define o gerenciador de atualizações do serviço SRP no servidor SRP.
otSrpServerSetTtlConfig(otInstance *aInstance, const otSrpServerTtlConfig *aTtlConfig)
Define a configuração de TTL do servidor SRP.

Estruturas

otSrpClientBuffersServiceEntry

Representa uma entrada do pool de serviços de clientes SRP.

otSrpClientHostInfo

Representa uma informação de host do cliente SRP.

otSrpClientService

Representa um serviço do cliente SRP.

otSrpServerLeaseConfig

Inclui as configurações LEASE e KEY-LEASE do servidor SRP.

otSrpServerLeaseInfo

Inclui informações de locação do servidor SRP de um host/serviço.

otSrpServerResponseCounters

Inclui as estatísticas de respostas do servidor SRP.

otSrpServerTtlConfig

Inclui configurações de TTL do servidor SRP.

Enumerações

otSrpClientItemState

 otSrpClientItemState

Especifica um estado do item de cliente SRP (informações do serviço ou do host).

Propriedades
OT_SRP_CLIENT_ITEM_STATE_ADDING

O item está sendo adicionado/registrado.

OT_SRP_CLIENT_ITEM_STATE_REFRESHING

O item está sendo atualizado.

OT_SRP_CLIENT_ITEM_STATE_REGISTERED

O item está registrado no servidor.

OT_SRP_CLIENT_ITEM_STATE_REMOVED

O item foi removido.

OT_SRP_CLIENT_ITEM_STATE_REMOVING

O item está sendo removido.

OT_SRP_CLIENT_ITEM_STATE_TO_ADD

Item a ser adicionado/registrado.

OT_SRP_CLIENT_ITEM_STATE_TO_REFRESH

Item a ser atualizado (registre-se novamente para renovar a locação).

OT_SRP_CLIENT_ITEM_STATE_TO_REMOVE

Item a ser removido.

otSrpServerAddressMode

 otSrpServerAddressMode

Representa o modo de endereço usado pelo servidor SRP.

O modo de endereço especifica como o endereço e o número da porta são determinados pelo servidor SRP e como essas informações são publicadas nos dados da rede Thread.

Propriedades
OT_SRP_SERVER_ADDRESS_MODE_ANYCAST

Modo de endereço Anycast.

OT_SRP_SERVER_ADDRESS_MODE_UNICAST

Modo de endereço unicast.

otSrpServerState

 otSrpServerState

Representa o estado do servidor SRP.

Propriedades
OT_SRP_SERVER_STATE_DISABLED

O servidor SRP está desativado.

OT_SRP_SERVER_STATE_RUNNING

O servidor SRP está ativado e em execução.

OT_SRP_SERVER_STATE_STOPPED

O servidor SRP está ativado, mas foi interrompido.

Typedefs

otSrpClientAutoStartCallback

void(* otSrpClientAutoStartCallback)(const otSockAddr *aServerSockAddr, void *aContext)

O tipo de ponteiro define o callback usado pelo cliente SRP para notificar o usuário quando ele é iniciado ou interrompido automaticamente.

Usado apenas quando o recurso de início automático OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE está ativado.

Esse callback é invocado quando o modo de início automático está ativado e o cliente SRP é iniciado ou interrompido automaticamente.

Detalhes
Parâmetros
[in] aServerSockAddr
Um ponteiro não NULL indica que o servidor SRP foi iniciado e o ponteiro fornecerá o endereço de soquete do servidor selecionado. Um ponteiro NULL indica que o servidor SRP foi interrompido.
[in] aContext
Um ponteiro para um contexto arbitrário (fornecido quando o callback foi registrado).

otSrpClientBuffersServiceEntry

struct otSrpClientBuffersServiceEntry otSrpClientBuffersServiceEntry

Representa uma entrada do pool de serviços de clientes SRP.

otSrpClientCallback

void(* otSrpClientCallback)(otError aError, const otSrpClientHostInfo *aHostInfo, const otSrpClientService *aServices, const otSrpClientService *aRemovedServices, void *aContext)

O tipo de ponteiro define o callback usado pelo cliente SRP para notificar o usuário sobre mudanças/eventos/erros.

Esse callback é invocado quando uma atualização é registrada (ou seja, adição/remoção de informações do host e/ou alguns serviços) com o servidor SRP ou quando há uma falha ou erro (por exemplo, o servidor rejeita uma solicitação de atualização, o cliente expira aguardando uma resposta etc.).

No caso de um novo registro de uma atualização, o parâmetro aError será OT_ERROR_NONE, e as informações do host e a lista completa de serviços serão fornecidas como parâmetros de entrada ao callback. Cada informação e serviço do host rastreia o próprio estado na variável de membro mState correspondente da estrutura de dados relacionada (o estado que indica se o serviço/informações do host está registrado ou foi removido ou ainda está sendo adicionado/removido etc.).

A lista de serviços removidos é transmitida como a própria lista vinculada aRemovedServices no callback. Quando o callback é invocado, o cliente SRP (implementação do OpenThread) termina as instâncias de serviço removidas listadas em aRemovedServices e não as rastreia/armazena mais (ou seja, se chamarmos otSrpClientGetServices() no callback, os serviços removidos não estarão presentes na lista retornada). Fornecer uma lista separada de serviços removidos no callback ajuda a indicar ao usuário quais itens agora foram removidos e permite que o usuário reivindique/reutilize as instâncias.

Se o servidor rejeitar uma solicitação de atualização de SRP, o código de resposta DNS (RFC 2136) será mapeado para os seguintes erros:

  • (0) NOERROR Sucesso (sem condição de erro) -> OT_ERROR_NONE
  • (1) O servidor FORMERR não pode interpretar devido a um erro de formato -> OT_ERROR_PARSE
  • (2) O servidor SERVFAIL encontrou uma falha interna -> OT_ERROR_FAILED
  • (3) Nome NXDOMAIN que deveria existir, não existe -> OT_ERROR_NOT_FOUND
  • (4) O Servidor NOTIMP não aceita o tipo de consulta (OpCode) -> OT_ERROR_NOT_IMPLEMENTED
  • (5) Servidor RECUSADO recusado por motivos de política/segurança -> OT_ERROR_SECURITY
  • (6) YXDOMAIN Um nome que não deveria existir, existe -> OT_ERROR_DUPLICATED
  • (7) YXRRSET Algum RRset que não deveria existir, existe -> OT_ERROR_DUPLICATED
  • (8) NXRRSET Algum RRset que deveria existir, não existe -> OT_ERROR_NOT_FOUND
  • (9) O serviço NOTAUTH não é autoritativo para a zona -> OT_ERROR_SECURITY
  • (10) NOTZONE Um nome não está na zona -> OT_ERROR_PARSE
  • (20) BADNAME Nome incorreto -> OT_ERROR_PARSE
  • (21) BADALG Algoritmo inválido -> OT_ERROR_SECURITY
  • (22) BADTRUN Truncamento incorreto -> OT_ERROR_PARSE
  • Outros códigos de resposta -> OT_ERROR_FAILED

Os seguintes erros também são possíveis:

  • OT_ERROR_RESPONSE_TIMEOUT : tempo limite excedido aguardando a resposta do servidor (o cliente continuaria tentando novamente).
  • OT_ERROR_INVALID_ARGS : a estrutura do serviço fornecida é inválida (por exemplo, nome de serviço ou otDnsTxtEntry inválido).
  • OT_ERROR_NO_BUFS : buffer insuficiente para preparar ou enviar a mensagem de atualização.

Em caso de falha, o cliente continua a operação, ou seja, prepara e (re)transmite a mensagem de atualização do SRP para o servidor, após algum intervalo de espera. O intervalo de espera da nova tentativa começa com o valor mínimo e é aumentado pelo fator de crescimento a cada falha até o valor máximo. Consulte o parâmetro de configuração OPENTHREAD_CONFIG_SRP_CLIENT_MIN_RETRY_WAIT_INTERVAL e os relacionados para mais detalhes.

Detalhes
Parâmetros
[in] aError
O erro (veja acima).
[in] aHostInfo
Um ponteiro para hospedar informações.
[in] aServices
O cabeçalho da lista vinculada que contém todos os serviços (exceto os removidos). NULL se a lista estiver vazia.
[in] aRemovedServices
Cabeçalho da lista vinculada que contém todos os serviços removidos. NULL se a lista estiver vazia.
[in] aContext
Um ponteiro para um contexto arbitrário (fornecido quando o callback foi registrado).

otSrpClientHostInfo

struct otSrpClientHostInfo otSrpClientHostInfo

Representa uma informação de host do cliente SRP.

otSrpClientService

struct otSrpClientService otSrpClientService

Representa um serviço do cliente SRP.

Os valores nessa estrutura, incluindo os buffers de string dos nomes e as entradas de registro TXT, PRECISAM persistir e permanecer constantes após uma instância dessa estrutura ser transmitida de otSrpClientAddService() ou otSrpClientRemoveService() para o OpenThread.

Os campos mState, mData e mNext são usados/gerenciados apenas pelo OT Core. O valor delas é ignorado quando uma instância de otSrpClientService é transmitida em otSrpClientAddService(), otSrpClientRemoveService() ou outras funções. O autor da chamada não precisa definir esses campos.

Os campos mLease e mKeyLease especificam os intervalos desejados de locação e de chave para este serviço. O valor zero indica que o intervalo não é especificado e, em seguida, os intervalos padrão de lease ou de chave de otSrpClientGetLeaseInterval() e otSrpClientGetKeyLeaseInterval() são usados para esse serviço. Se o intervalo de alocação de chave (definido explicitamente ou determinado pelo padrão) for menor que o intervalo de alocação de um serviço, o cliente SRP também reutilizará o valor do intervalo de alocação de chave. Por exemplo, se no serviço mLease for explicitamente definido como 2 dias e mKeyLease for definido como zero, e a locação de chave padrão for definida como 1 dia, ao registrar esse serviço, a alocação de chave solicitada também será definida como 2 dias.

otSrpServerAddressMode

enum otSrpServerAddressMode otSrpServerAddressMode

Representa o modo de endereço usado pelo servidor SRP.

O modo de endereço especifica como o endereço e o número da porta são determinados pelo servidor SRP e como essas informações são publicadas nos dados da rede Thread.

otSrpServerHost

struct otSrpServerHost otSrpServerHost

Esse tipo opaco representa um host de serviço SRP.

otSrpServerLeaseConfig

struct otSrpServerLeaseConfig otSrpServerLeaseConfig

Inclui as configurações LEASE e KEY-LEASE do servidor SRP.

otSrpServerLeaseInfo

struct otSrpServerLeaseInfo otSrpServerLeaseInfo

Inclui informações de locação do servidor SRP de um host/serviço.

otSrpServerResponseCounters

struct otSrpServerResponseCounters otSrpServerResponseCounters

Inclui as estatísticas de respostas do servidor SRP.

otSrpServerService

struct otSrpServerService otSrpServerService

Esse tipo opaco representa um serviço SRP.

otSrpServerServiceUpdateHandler

void(* otSrpServerServiceUpdateHandler)(otSrpServerServiceUpdateId aId, const otSrpServerHost *aHost, uint32_t aTimeout, void *aContext)

Lida com as atualizações do serviço SRP.

É chamado pelo servidor SRP para notificar que um host SRP e possivelmente serviços SRP estão sendo atualizados. É importante que as atualizações de SRP não sejam confirmadas até que o gerenciador retorne o resultado chamando otSrpServerHandleServiceUpdateResult ou atinja o tempo limite após aTimeout.

Um observador de serviço SRP sempre deve chamar otSrpServerHandleServiceUpdateResult com o código de erro OT_ERROR_NONE imediatamente depois de receber os eventos de atualização.

Um gerenciador mais genérico pode realizar validações no host/serviços do SRP e rejeitar as atualizações do SRP se alguma validação falhar. Por exemplo, um proxy de publicidade deve anunciar (ou remover) o host e os serviços em um link compatível com multicast e retornar um código de erro específico se ocorrer alguma falha.

Detalhes
Parâmetros
[in] aId
O ID da transação de atualização do serviço. Esse ID precisa ser retornado com otSrpServerHandleServiceUpdateResult.
[in] aHost
Um ponteiro para o objeto otSrpServerHost que contém as atualizações de SRP. O manipulador deve publicar/cancelar a publicação do host e cada serviço aponta para esse host com as regras abaixo:
  1. Se o host não for excluído (indicado por otSrpServerHostIsDeleted), ele precisará ser publicado ou atualizado com o mDNS. Caso contrário, a publicação do host será cancelada (remova os RRs AAAA).
  2. A publicação de cada serviço aponta para este host se for necessário cancelar a publicação do host. Caso contrário, o gerenciador precisa publicar ou atualizar o serviço quando ele não for excluído (indicado por otSrpServerServiceIsDeleted) e cancelar a publicação quando for excluído.
[in] aTimeout
O tempo máximo em milissegundos para o manipulador processar o evento de serviço.
[in] aContext
Um ponteiro para o contexto específico do aplicativo.
Consulte também:
otSrpServerSetServiceUpdateHandler
otSrpServerHandleServiceUpdateResult

otSrpServerServiceUpdateId

uint32_t otSrpServerServiceUpdateId

O ID de uma transação de atualização do serviço SRP no servidor SRP.

otSrpServerTtlConfig

struct otSrpServerTtlConfig otSrpServerTtlConfig

Inclui configurações de TTL do servidor SRP.

Funções

otSrpClientAddService

otError otSrpClientAddService(
  otInstance *aInstance,
  otSrpClientService *aService
)

Adiciona um serviço a ser registrado no servidor.

Após uma chamada para essa função, otSrpClientCallback será chamado para informar o status da adição/registro do serviço com o servidor SRP.

A instância do otSrpClientService apontada por aService PRECISA permanecer e permanecer inalterada após retornar dessa função (com OT_ERROR_NONE). O OpenThread salvará o ponteiro na instância de serviço.

A instância otSrpClientService não é mais rastreada pelo OpenThread e só pode ser recuperada quando

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância do OpenThread.
[in] aService
Um ponteiro para uma instância otSrpClientService a ser adicionada.
Valores de retorno
OT_ERROR_NONE
A adição do serviço foi iniciada. O otSrpClientCallback vai ser chamado para informar o status.
OT_ERROR_ALREADY
Um serviço com os mesmos nomes de serviço e instância já está na lista.
OT_ERROR_INVALID_ARGS
A estrutura do serviço é inválida (por exemplo, nome de serviço incorreto ou otDnsTxtEntry).

otSrpClientBuffersAllocateService

otSrpClientBuffersServiceEntry * otSrpClientBuffersAllocateService(
  otInstance *aInstance
)

Aloca uma nova entrada de serviço do pool.

A instância de entrada de serviço retornada será inicializada da seguinte maneira:

  • mService.mName vai apontar para um buffer de string alocado que pode ser recuperado usando a função otSrpClientBuffersGetServiceEntryServiceNameString().
  • mService.mInstanceName vai apontar para um buffer de string alocado que pode ser recuperado usando a função otSrpClientBuffersGetServiceEntryInstanceNameString().
  • mService.mSubTypeLabels aponta para uma matriz que é retornada de otSrpClientBuffersGetSubTypeLabelsArray().
  • O dispositivo mService.mTxtEntries vai apontar para mTxtEntry.
  • mService.mNumTxtEntries será definido como 1.
  • Outros campos mService (porta, prioridade, peso) estão definidos como zero.
  • mTxtEntry.mKey é definido como NULL (o valor é tratado como já codificado).
  • mTxtEntry.mValue vai apontar para um buffer alocado, que pode ser recuperado usando a função otSrpClientBuffersGetServiceEntryTxtBuffer().
  • mTxtEntry.mValueLength está definido como zero.
  • Todos os buffers e matrizes de string/dados relacionados são zerados.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância do OpenThread.
Retorna
Um ponteiro para a entrada de serviço recém-alocada ou NULL caso não haja mais entradas disponíveis no pool.

otSrpClientBuffersFreeAllServices

void otSrpClientBuffersFreeAllServices(
  otInstance *aInstance
)

Libera todas as entradas de serviço alocadas anteriormente.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância do OpenThread.

otSrpClientBuffersFreeService

void otSrpClientBuffersFreeService(
  otInstance *aInstance,
  otSrpClientBuffersServiceEntry *aService
)

Libera uma entrada de serviço alocada anteriormente.

O aService PRECISA ser alocado anteriormente com otSrpClientBuffersAllocateService(), mas ainda não liberado. Caso contrário, o comportamento dessa função será indefinido.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância do OpenThread.
[in] aService
Um ponteiro para a entrada de serviço livre (NÃO DEVE ser NULL).

otSrpClientBuffersGetHostAddressesArray

otIp6Address * otSrpClientBuffersGetHostAddressesArray(
  otInstance *aInstance,
  uint8_t *aArrayLength
)

Recebe a matriz de entradas de endereço IPv6 para usar como lista de endereços de host do cliente SRP.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância do OpenThread.
[out] aArrayLength
Ponteiro para uma variável para retornar o tamanho da matriz, ou seja, o número de entradas de endereços IPv6 na matriz (NÃO DEVE ser NULL).
Retorna
Um ponteiro para uma matriz de entradas otIp6Address (o número de entradas é retornado em aArrayLength).

otSrpClientBuffersGetHostNameString

char * otSrpClientBuffersGetHostNameString(
  otInstance *aInstance,
  uint16_t *aSize
)

Extrai o buffer de string a ser usado para o nome do host do cliente SRP.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância do OpenThread.
[out] aSize
Ponteiro para uma variável para retornar o tamanho (número de bytes) do buffer da string (NÃO DEVE ser NULL).
Retorna
Um ponteiro para o buffer de caracteres a ser usado para o nome do host do cliente SRP.

otSrpClientBuffersGetServiceEntryInstanceNameString

char * otSrpClientBuffersGetServiceEntryInstanceNameString(
  otSrpClientBuffersServiceEntry *aEntry,
  uint16_t *aSize
)

Recebe o buffer de string do nome da instância de serviço de uma entrada de serviço.

Detalhes
Parâmetros
[in] aEntry
Um ponteiro para uma entrada de serviço alocada anteriormente (NÃO DEVE ser NULL).
[out] aSize
Um ponteiro para uma variável para retornar o tamanho (número de bytes) do buffer de string (NÃO DEVE ser NULL).
Retorna
Um ponteiro para o buffer de string.

otSrpClientBuffersGetServiceEntryServiceNameString

char * otSrpClientBuffersGetServiceEntryServiceNameString(
  otSrpClientBuffersServiceEntry *aEntry,
  uint16_t *aSize
)

Recebe o buffer de string para o nome do serviço de uma entrada de serviço.

Detalhes
Parâmetros
[in] aEntry
Um ponteiro para uma entrada de serviço alocada anteriormente (NÃO DEVE ser NULL).
[out] aSize
Um ponteiro para uma variável para retornar o tamanho (número de bytes) do buffer de string (NÃO DEVE ser NULL).
Retorna
Um ponteiro para o buffer de string.

otSrpClientBuffersGetServiceEntryTxtBuffer

uint8_t * otSrpClientBuffersGetServiceEntryTxtBuffer(
  otSrpClientBuffersServiceEntry *aEntry,
  uint16_t *aSize
)

Extrai o buffer do registro TXT de uma entrada de serviço.

Detalhes
Parâmetros
[in] aEntry
Um ponteiro para uma entrada de serviço alocada anteriormente (NÃO DEVE ser NULL).
[out] aSize
Um ponteiro para uma variável para retornar o tamanho (número de bytes) do buffer (NÃO DEVE ser NULL).
Retorna
Um ponteiro para o buffer.

otSrpClientBuffersGetSubTypeLabelsArray

const char ** otSrpClientBuffersGetSubTypeLabelsArray(
  otSrpClientBuffersServiceEntry *aEntry,
  uint16_t *aArrayLength
)

Recebe a matriz dos rótulos de subtipo de serviço da entrada de serviço.

Detalhes
Parâmetros
[in] aEntry
Um ponteiro para uma entrada de serviço alocada anteriormente (NÃO DEVE ser NULL).
[out] aArrayLength
Um ponteiro para uma variável para retornar o tamanho da matriz (NÃO DEVE ser NULL).
Retorna
Um ponteiro para a matriz.

otSrpClientClearHostAndServices

void otSrpClientClearHostAndServices(
  otInstance *aInstance
)

Limpa todas as informações do host e todos os serviços.

Ao contrário de otSrpClientRemoveHostAndServices(), que envia uma mensagem de atualização ao servidor para remover todas as informações, essa função apaga todas as informações imediatamente, sem qualquer interação com o servidor.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância do OpenThread.

otSrpClientClearService

otError otSrpClientClearService(
  otInstance *aInstance,
  otSrpClientService *aService
)

Limpa um serviço e o remove imediatamente da lista.

Ao contrário de otSrpClientRemoveService(), que envia uma mensagem de atualização ao servidor para remover o serviço, essa função limpa o serviço da lista de serviços do cliente sem nenhuma interação com o servidor. Em uma chamada para essa função, o otSrpClientCallback NÃO será chamado, e a entrada aService poderá ser reivindicada e reutilizada pelo autor da chamada imediatamente.

Pode ser usado com uma chamada subsequente para otSrpClientAddService() (possivelmente reutilizando a mesma entrada aService com os mesmos nomes de serviço e instância) para atualizar alguns dos parâmetros em um serviço existente.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância do OpenThread.
[in] aService
Um ponteiro para uma instância otSrpClientService a ser excluída.
Valores de retorno
OT_ERROR_NONE
O aService foi excluído. Ela pode ser recuperada e reutilizada imediatamente.
OT_ERROR_NOT_FOUND
Não foi possível encontrar o serviço na lista.

otSrpClientDisableAutoStartMode

void otSrpClientDisableAutoStartMode(
  otInstance *aInstance
)

Desativa o modo de início automático.

Esta opção só fica disponível quando o recurso de início automático OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE está ativado.

Desativar o modo de início automático não vai interromper o cliente se ele já estiver em execução, mas o cliente para de monitorar os dados da rede Thread para verificar se o servidor SRP selecionado ainda está presente nele.

Observe que uma chamada para otSrpClientStop() também desativará o modo de início automático.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância do OpenThread.

otSrpClientEnableAutoHostAddress

otError otSrpClientEnableAutoHostAddress(
  otInstance *aInstance
)

Ativa o modo automático de endereço do host.

Quando ativados, os endereços IPv6 do host são definidos automaticamente pelo cliente SRP usando todos os endereços unicast preferidos no Thread netif, excluindo todos os endereços link-local e mesh-local. Se não houver um endereço preferencial, o endereço EID da rede mesh local será adicionado. O cliente SRP será registrado de novo automaticamente quando/se os endereços no Thread netif forem atualizados (novos endereços forem adicionados ou endereços existentes forem removidos ou marcados como não preferidos).

O modo de endereço do host automático pode ser ativado antes do início ou durante a operação do cliente SRP, exceto quando as informações do host estão sendo removidas (o cliente está ocupado lidando com uma solicitação de remoção de uma chamada para otSrpClientRemoveHostAndServices() e as informações do host ainda estão nos estados STATE_TO_REMOVE ou STATE_REMOVING).

Depois que o modo de endereço do host automático for ativado, ele poderá ser desativado com uma chamada para otSrpClientSetHostAddresses(), que define explicitamente os endereços do host.

Detalhes
Valores de retorno
OT_ERROR_NONE
O modo de endereço do host automático foi ativado.
OT_ERROR_INVALID_STATE
O host está sendo removido e, portanto, não é possível ativar o modo de endereço do host automático.

otSrpClientEnableAutoStartMode

void otSrpClientEnableAutoStartMode(
  otInstance *aInstance,
  otSrpClientAutoStartCallback aCallback,
  void *aContext
)

Ativa o modo de início automático.

Esta opção só fica disponível quando o recurso de início automático OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE está ativado.

A opção de configuração OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_DEFAULT_MODE especifica o modo de início automático padrão, isto é, se está ativado ou desativado no início da pilha OT.

Quando o início automático está ativado, o cliente SRP monitora os dados da rede Thread para descobrir servidores SRP e selecionar o servidor preferido. Ele também inicia e interrompe o cliente automaticamente quando um servidor SRP é detectado.

Há três categorias de entradas de dados de rede que indicam a presença de servidor SRP. Eles são preferidos na seguinte ordem:

1) Entradas unicast preferenciais em que o endereço do servidor está incluído nos dados do serviço. Se houver várias opções, aquela com o endereço IPv6 numericamente menor é a preferência.

2) Entradas Anycast, cada uma com um número de sequência. Um número de sequência maior no sentido especificado pela lógica aritmética de número de série no RFC-1982 é considerado mais recente e, portanto, preferível. O maior número seq.usando aritmética de número de série terá preferência se for bem definido (ou seja, se o número de seq. for maior do que todos os outros números de seq). Se não for bem definido, será preferível o número da sequência numericamente maior.

3) Entradas unicast em que as informações de endereço do servidor estão incluídas nos dados do servidor. Se houver várias opções, aquela com o endereço IPv6 numericamente menor é a preferência.

Quando há uma alteração nas entradas de dados de rede, o cliente verifica se o servidor selecionado atualmente ainda está presente nos dados de rede e ainda é o preferencial. Caso contrário, o cliente alternará para o novo servidor preferido ou será interrompido se não houver nenhum.

Quando o cliente SRP for explicitamente iniciado por uma chamada bem-sucedida para otSrpClientStart(), o endereço do servidor SRP fornecido em otSrpClientStart() continuará a ser usado, independente do estado do modo de início automático e se o mesmo endereço do servidor SRP for descoberto ou não nos dados da rede Thread. Nesse caso, apenas uma chamada otSrpClientStop() explícita vai interromper o cliente.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância do OpenThread.
[in] aCallback
Um callback para notificar quando o cliente é iniciado/interrompido automaticamente. Pode ser NULL se não for necessário.
[in] aContext
Um contexto a ser transmitido ao invocar aCallback.

otSrpClientGetDomainName

const char * otSrpClientGetDomainName(
  otInstance *aInstance
)

Extrai o nome de domínio que está sendo usado pelo cliente SRP.

A ativação do OPENTHREAD_CONFIG_SRP_CLIENT_DOMAIN_NAME_API_ENABLE é necessária.

Se o nome de domínio não for definido, "default.service.arpa" será usado.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância do OpenThread.
Retorna
A string do nome do domínio.

otSrpClientGetHostInfo

const otSrpClientHostInfo * otSrpClientGetHostInfo(
  otInstance *aInstance
)

Recebe as informações do host.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância do OpenThread.
Retorna
Um ponteiro para hospedar a estrutura de informações.

otSrpClientGetKeyLeaseInterval

uint32_t otSrpClientGetKeyLeaseInterval(
  otInstance *aInstance
)

Recebe o intervalo de alocação de chave padrão usado nas solicitações de atualização de SRP.

O intervalo padrão é usado apenas para instâncias otSrpClientService com mKeyLease definido como zero.

Essa é a duração da locação solicitada pelo cliente SRP. O servidor pode optar por aceitar um intervalo de alocação diferente.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância do OpenThread.
Retorna
O intervalo de alocação de chave (em segundos).

otSrpClientGetLeaseInterval

uint32_t otSrpClientGetLeaseInterval(
  otInstance *aInstance
)

Recebe o intervalo de alocação padrão usado nas solicitações de atualização de SRP.

O intervalo padrão é usado apenas para instâncias otSrpClientService com mLease definido como zero.

Essa é a duração da locação solicitada pelo cliente SRP. O servidor pode optar por aceitar um intervalo de alocação diferente.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância do OpenThread.
Retorna
O intervalo de alocação (em segundos).

otSrpClientGetServerAddress

const otSockAddr * otSrpClientGetServerAddress(
  otInstance *aInstance
)

Extrai o endereço do soquete (endereço IPv6 e número da porta) do servidor SRP que está sendo usado pelo cliente SRP.

Se o cliente não estiver em execução, o endereço não será especificado (todos zero) com número de porta zero.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância do OpenThread.
Retorna
Um ponteiro para o endereço de soquete do servidor SRP (sempre não NULL).

otSrpClientGetServices

const otSrpClientService * otSrpClientGetServices(
  otInstance *aInstance
)

Recebe a lista de serviços que estão sendo gerenciados pelo cliente.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância do OpenThread.
Retorna
Um ponteiro para o cabeçalho da lista vinculada de todos os serviços ou NULL se a lista estiver vazia.

otSrpClientGetTtl

uint32_t otSrpClientGetTtl(
  otInstance *aInstance
)

Recebe o valor de TTL em cada registro incluído nas solicitações de atualização de SRP.

Observe que esse é o TTL solicitado pelo cliente SRP. O servidor pode aceitar um TTL diferente.

Por padrão, o TTL será igual ao intervalo de alocação. Transmitir 0 ou um valor maior que o intervalo de alocação via otSrpClientSetTtl() também fará com que o TTL seja igual ao intervalo de alocação.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância do OpenThread.
Retorna
O TTL (em segundos).

otSrpClientIsAutoStartModeEnabled

bool otSrpClientIsAutoStartModeEnabled(
  otInstance *aInstance
)

Indica o estado atual do modo de início automático (ativado ou desativado).

Esta opção só fica disponível quando o recurso de início automático OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE está ativado.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância do OpenThread.
Retorna
TRUE se o modo de início automático estiver ativado; caso contrário, FALSE.

otSrpClientIsRunning

bool otSrpClientIsRunning(
  otInstance *aInstance
)

Indica se o cliente SRP está em execução ou não.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância do OpenThread.
Retorna
TRUE se o cliente SRP estiver em execução; caso contrário, FALSE.

otSrpClientIsServiceKeyRecordEnabled

bool otSrpClientIsServiceKeyRecordEnabled(
  otInstance *aInstance
)

Indica se o modo "inclusão de registro de chave de serviço" está ativado ou desativado.

Disponível quando a configuração OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE está ativada.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância do OpenThread.
Retorna
TRUE se o modo "inclusão de registro de chave de serviço" estiver ativado; caso contrário, será FALSE.

otSrpClientItemStateToString

const char * otSrpClientItemStateToString(
  otSrpClientItemState aItemState
)

Converte um otSrpClientItemState em uma string.

Detalhes
Parâmetros
[in] aItemState
Um estado do item.
Retorna
Uma representação de string de aItemState.

otSrpClientRemoveHostAndServices

otError otSrpClientRemoveHostAndServices(
  otInstance *aInstance,
  bool aRemoveKeyLease,
  bool aSendUnregToServer
)

Inicia o processo de remoção das informações do host e de todos os serviços.

Depois de retornar dessa função, otSrpClientCallback será chamado para informar o status da solicitação de remoção com o servidor SRP.

Se as informações do host forem removidas permanentemente do servidor, defina aRemoveKeyLease como true, o que remove a alocação de chave associada ao host no servidor. Caso contrário, o registro de alocação da chave é mantido como antes, o que garante que o servidor mantenha o nome do host reservado para quando o cliente puder fornecer e registrar os serviços novamente.

O aSendUnregToServer determina o comportamento quando as informações do host ainda não estão registradas no servidor. Se aSendUnregToServer for definido como false (que é o valor padrão/esperado), o cliente SRP vai remover imediatamente as informações e os serviços do host sem enviar uma mensagem de atualização para o servidor (não é necessário atualizar o servidor se nada estiver registrado com ele). Se aSendUnregToServer for definido como true, o cliente SRP vai enviar uma mensagem de atualização para o servidor. Se as informações do host estiverem registradas, o valor de aSendUnregToServer não importa, e o cliente SRP sempre vai enviar uma mensagem de atualização para o servidor solicitando a remoção de todas as informações.

Uma situação em que aSendUnregToServer pode ser útil é na redefinição/reinicialização do dispositivo. O autor da chamada pode querer remover todos os serviços registrados anteriormente no servidor. Nesse caso, o autor da chamada pode otSrpClientSetHostName() e depois solicitar otSrpClientRemoveHostAndServices() com aSendUnregToServer como true.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância do OpenThread.
[in] aRemoveKeyLease
É um booleano indicando se a concessão de chave de host também deve ser removida.
[in] aSendUnregToServer
Um booleano que indica se a atualização será enviada ao servidor quando as informações do host não estiverem registradas.
Valores de retorno
OT_ERROR_NONE
A remoção das informações e dos serviços do host foi iniciada. O otSrpClientCallback vai ser chamado para informar o status.
OT_ERROR_ALREADY
As informações do host já foram removidas.

otSrpClientRemoveService

otError otSrpClientRemoveService(
  otInstance *aInstance,
  otSrpClientService *aService
)

Solicita o cancelamento do registro de um serviço com o servidor.

Após uma chamada para essa função, otSrpClientCallback será chamado para informar o status da solicitação de remoção com o servidor SRP.

A instância otSrpClientService apontada por aService PRECISA permanecer e permanecer inalterada após retornar dessa função (com OT_ERROR_NONE). O OpenThread manterá a instância de serviço durante o processo de remoção. Somente depois que o otSrpClientCallback é chamado, indicando que a instância de serviço foi removida da lista de serviços do cliente SRP e pode ser liberada/reutilizada.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância do OpenThread.
[in] aService
Um ponteiro para uma instância otSrpClientService a ser removida.
Valores de retorno
OT_ERROR_NONE
A remoção do serviço foi iniciada. O otSrpClientCallback vai ser chamado para informar o status.
OT_ERROR_NOT_FOUND
Não foi possível encontrar o serviço na lista.

otSrpClientSetCallback

void otSrpClientSetCallback(
  otInstance *aInstance,
  otSrpClientCallback aCallback,
  void *aContext
)

Define o callback para notificar o autor da chamada sobre eventos/mudanças no cliente SRP.

O cliente SRP permite que um único callback seja registrado. Portanto, chamadas consecutivas para essa função vão substituir todas as funções de callback definidas anteriormente.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância do OpenThread.
[in] aCallback
O callback para notificar sobre eventos e mudanças. Pode ser NULL se não for necessário.
[in] aContext
Um contexto arbitrário usado com aCallback.

otSrpClientSetDomainName

otError otSrpClientSetDomainName(
  otInstance *aInstance,
  const char *aName
)

Define o nome de domínio a ser usado pelo cliente SRP.

A ativação do OPENTHREAD_CONFIG_SRP_CLIENT_DOMAIN_NAME_API_ENABLE é necessária.

Se não for definido, "default.service.arpa" será usado.

O buffer da string de nome apontado por aName PRECISA permanecer inalterado após retornar dessa função. O OpenThread manterá o ponteiro na string.

O nome de domínio pode ser definido antes que o cliente seja iniciado ou após o início, mas antes que as informações do host sejam registradas no servidor (as informações do host devem estar em STATE_TO_ADD ou STATE_TO_REMOVE).

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância do OpenThread.
[in] aName
Um ponteiro para a string do nome de domínio. Se NULL o define como "default.service.arpa" como padrão.
Valores de retorno
OT_ERROR_NONE
O marcador do nome do domínio foi definido.
OT_ERROR_INVALID_STATE
As informações do host já estão registradas no servidor.

otSrpClientSetHostAddresses

otError otSrpClientSetHostAddresses(
  otInstance *aInstance,
  const otIp6Address *aIp6Addresses,
  uint8_t aNumAddresses
)

Define/atualiza a lista de endereços IPv6 do host.

Os endereços IPv6 do host podem ser definidos/alterados antes do início ou durante a operação do cliente SRP (por exemplo, para adicionar/remover ou alterar um endereço de host registrado anteriormente), exceto quando as informações do host estão sendo removidas (o cliente está ocupado lidando com uma solicitação de remoção de uma chamada anterior para otSrpClientRemoveHostAndServices() e as informações do host ainda estão nos estados STATE_TO_REMOVE ou STATE_REMOVING).

A matriz de endereços IPv6 do host apontada por aIp6Addresses PRECISA permanecer inalterada após retornar dessa função (com OT_ERROR_NONE). O OpenThread salvará o ponteiro na matriz.

Após uma chamada para essa função, otSrpClientCallback será chamado para informar o status do registro do endereço no servidor SRP.

Chamar essa função desativa o modo automático de endereço do host se ele tiver sido ativado anteriormente por uma chamada bem-sucedida para otSrpClientEnableAutoHostAddress().

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância do OpenThread.
[in] aIp6Addresses
Um ponteiro para uma matriz que contém os endereços IPv6 do host.
[in] aNumAddresses
O número de endereços na matriz aIp6Addresses.
Valores de retorno
OT_ERROR_NONE
A alteração da lista de endereços IPv6 do host foi iniciada. O otSrpClientCallback vai ser chamado para informar o status do registro de endereços no servidor.
OT_ERROR_INVALID_ARGS
A lista de endereços é inválida (por exemplo, precisa conter pelo menos um endereço).
OT_ERROR_INVALID_STATE
O host está sendo removido e, portanto, não pode ser alterado.

otSrpClientSetHostName

otError otSrpClientSetHostName(
  otInstance *aInstance,
  const char *aName
)

Define o rótulo do nome do host.

Após uma chamada para essa função, otSrpClientCallback será chamado para informar o status do registro das informações do host com o servidor SRP.

O buffer da string de nome apontado por aName PRECISA permanecer inalterado após retornar dessa função. O OpenThread manterá o ponteiro na string.

O nome do host pode ser definido antes que o cliente seja iniciado ou após o início, mas antes que as informações do host sejam registradas com o servidor (as informações do host devem estar em STATE_TO_ADD ou STATE_REMOVED).

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância do OpenThread.
[in] aName
Um ponteiro para a string de rótulo do nome do host (NÃO DEVE ser NULL). O ponteiro para o buffer de string PRECISA persistir e permanecer válido e constante após o retorno dessa função.
Valores de retorno
OT_ERROR_NONE
O rótulo do nome do host foi definido.
OT_ERROR_INVALID_ARGS
O aName é NULL.
OT_ERROR_INVALID_STATE
O nome do host já está definido e registrado no servidor.

otSrpClientSetKeyLeaseInterval

void otSrpClientSetKeyLeaseInterval(
  otInstance *aInstance,
  uint32_t aInterval
)

Define o intervalo de alocação de chave padrão usado nas solicitações de atualização de SRP.

O intervalo padrão é usado apenas para instâncias otSrpClientService com mKeyLease definido como zero.

Alterar o intervalo de locação não afeta o intervalo de locação aceito de serviços/informações do host já registrados. Isso afeta apenas mensagens futuras de atualização de SRP, ou seja, adição de novos serviços e/ou atualizações de serviços existentes.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância do OpenThread.
[in] aInterval
O intervalo de alocação de chave (em segundos). Se for zero, o valor padrão especificado por OPENTHREAD_CONFIG_SRP_CLIENT_DEFAULT_KEY_LEASE será usado.

otSrpClientSetLeaseInterval

void otSrpClientSetLeaseInterval(
  otInstance *aInstance,
  uint32_t aInterval
)

Define o intervalo de alocação padrão usado nas solicitações de atualização de SRP.

O intervalo padrão é usado apenas para instâncias otSrpClientService com mLease definido como zero.

Alterar o intervalo de locação não afeta o intervalo de locação aceito de serviços/informações do host já registrados. Isso afeta apenas mensagens futuras de atualização de SRP, ou seja, adição de novos serviços ou atualizações dos serviços existentes.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância do OpenThread.
[in] aInterval
O intervalo de alocação (em segundos). Se for zero, o valor padrão especificado por OPENTHREAD_CONFIG_SRP_CLIENT_DEFAULT_LEASE será usado.

otSrpClientSetServiceKeyRecordEnabled

void otSrpClientSetServiceKeyRecordEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Ativa/desativa o modo de "inclusão de registro da chave de serviço".

Quando ativado, o cliente SRP incluirá o registro KEY nas Instruções de descrição do serviço nas mensagens de atualização de SRP que ele enviar.

Disponível quando a configuração OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE está ativada.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância do OpenThread.
[in] aEnabled
TRUE para ativar, FALSE para desativar o modo "Inclusão de registro de chave de serviço".

otSrpClientSetTtl

void otSrpClientSetTtl(
  otInstance *aInstance,
  uint32_t aTtl
)

Define o valor de TTL em cada registro incluído nas solicitações de atualização de SRP.

Alterar o TTL não afeta o TTL de serviços/host-info já registrados. Ela afeta apenas futuras mensagens de atualização de SRP (ou seja, adição de novos serviços e/ou atualizações de serviços existentes).

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância do OpenThread.
[in] aTtl
O TTL (em segundos). Se o valor for zero ou maior que o intervalo de alocação, o TTL será definido como o intervalo de alocação.

otSrpClientStart

otError otSrpClientStart(
  otInstance *aInstance,
  const otSockAddr *aServerSockAddr
)

Inicia a operação do cliente SRP.

O cliente SRP vai preparar e enviar a mensagem "Atualização de SRP" para o servidor SRP assim que todas as condições a seguir forem atendidas:

Não importa a ordem em que essas funções são chamadas. Quando todas as condições forem atendidas, o cliente SRP esperará por um pequeno atraso antes de preparar uma mensagem "Atualização de SRP" e enviá-la ao servidor. Esse atraso permite que o usuário adicione vários serviços e/ou endereços IPv6 antes que a primeira mensagem de atualização de SRP seja enviada. Isso garante que uma única atualização de SRP seja enviada com todas as informações. A configuração OPENTHREAD_CONFIG_SRP_CLIENT_UPDATE_TX_DELAY especifica o intervalo de atraso.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância do OpenThread.
[in] aServerSockAddr
O endereço do soquete (endereço IPv6 e número da porta) do servidor SRP.
Valores de retorno
OT_ERROR_NONE
A operação do cliente SRP foi iniciada ou já está em execução com o mesmo callback e endereço de soquete do servidor.
OT_ERROR_BUSY
O cliente SRP está ocupado em execução com um endereço de soquete diferente.
OT_ERROR_FAILED
Falha ao abrir/conectar o soquete UDP do cliente.

otSrpClientStop

void otSrpClientStop(
  otInstance *aInstance
)

Interrompe a operação do cliente SRP.

Interrompe outras interações com o servidor SRP. Isso não remove nem limpa as informações do host e/ou a lista de serviços. Ele marca todos os serviços a serem adicionados/removidos novamente após a reinicialização do cliente.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância do OpenThread.

otSrpServerGetAddressMode

otSrpServerAddressMode otSrpServerGetAddressMode(
  otInstance *aInstance
)

Retorna o modo de endereço usado pelo servidor SRP.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
Retorna
Modo de endereço do servidor SRP.

otSrpServerGetAnycastModeSequenceNumber

uint8_t otSrpServerGetAnycastModeSequenceNumber(
  otInstance *aInstance
)

Retorna o número de sequência usado com o modo de endereço anycast.

O número de sequência está incluído na entrada "Endereço Anycast do serviço DNS/SRP" publicada nos dados de rede.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
Retorna
O número da sequência anycast.

otSrpServerGetDomain

const char * otSrpServerGetDomain(
  otInstance *aInstance
)

Retorna o domínio autorizado ao servidor SRP.

Se o domínio não for definido por SetDomain, "default.service.arpa." será retornado. Um ponto no final é sempre anexado, mesmo que o domínio seja definido sem ele.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
Retorna
Um ponteiro para a string de domínio associada por ponto.

otSrpServerGetLeaseConfig

void otSrpServerGetLeaseConfig(
  otInstance *aInstance,
  otSrpServerLeaseConfig *aLeaseConfig
)

Retorna as configurações LEASE e KEY-LEASE do servidor SRP.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
[out] aLeaseConfig
Um ponteiro para uma instância otSrpServerLeaseConfig.

otSrpServerGetNextHost

const otSrpServerHost * otSrpServerGetNextHost(
  otInstance *aInstance,
  const otSrpServerHost *aHost
)

Retorna o próximo host registrado no servidor SRP.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
[in] aHost
Um ponteiro para o host atual. Use NULL para receber o primeiro host.
Retorna
Um ponteiro para o host registrado. NULL, se não for possível encontrar mais hosts.

otSrpServerGetPort

uint16_t otSrpServerGetPort(
  otInstance *aInstance
)

Retorna a porta em que o servidor SRP está detectando.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
Retorna
A porta do servidor SRP. Retorna 0 se o servidor não está em execução.

otSrpServerGetResponseCounters

const otSrpServerResponseCounters * otSrpServerGetResponseCounters(
  otInstance *aInstance
)

Retorna os contadores de resposta do servidor SRP.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
Retorna
Um ponteiro para os contadores de resposta do servidor SRP.

otSrpServerGetState

otSrpServerState otSrpServerGetState(
  otInstance *aInstance
)

Retorna o estado do servidor SRP.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
Retorna
O estado atual do servidor SRP.

otSrpServerGetTtlConfig

void otSrpServerGetTtlConfig(
  otInstance *aInstance,
  otSrpServerTtlConfig *aTtlConfig
)

Retorna a configuração de TTL do servidor SRP.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
[out] aTtlConfig
Um ponteiro para uma instância otSrpServerTtlConfig.

otSrpServerHandleServiceUpdateResult

void otSrpServerHandleServiceUpdateResult(
  otInstance *aInstance,
  otSrpServerServiceUpdateId aId,
  otError aError
)

Informa o resultado do processamento de uma atualização de SRP para o servidor SRP.

O manipulador de atualização de serviços precisa chamar essa função para retornar o resultado do processamento de uma atualização de SRP.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
[in] aId
O ID da transação de atualização do serviço. Precisa ser o mesmo ID informado pelo otSrpServerServiceUpdateHandler.
[in] aError
Um erro a ser retornado ao servidor SRP. Use OT_ERROR_DUPLICATED para representar conflitos de nome de DNS.

otSrpServerHostGetAddresses

const otIp6Address * otSrpServerHostGetAddresses(
  const otSrpServerHost *aHost,
  uint8_t *aAddressesNum
)

Retorna os endereços de determinado host.

Detalhes
Parâmetros
[in] aHost
Um ponteiro para o host do serviço SRP.
[out] aAddressesNum
Um ponteiro para onde devemos produzir o número de endereços.
Retorna
Um ponteiro para a matriz de endereços IPv6.

otSrpServerHostGetFullName

const char * otSrpServerHostGetFullName(
  const otSrpServerHost *aHost
)

Retorna o nome completo do host.

Detalhes
Parâmetros
[in] aHost
Um ponteiro para o host do serviço SRP.
Retorna
Um ponteiro para a string de nome de host com terminação nula.

otSrpServerHostGetLeaseInfo

void otSrpServerHostGetLeaseInfo(
  const otSrpServerHost *aHost,
  otSrpServerLeaseInfo *aLeaseInfo
)

Retorna as informações LEASE e KEY-LEASE de um determinado host.

Detalhes
Parâmetros
[in] aHost
Um ponteiro para o host do servidor SRP.
[out] aLeaseInfo
Um ponteiro para o local de saída das informações LEASE e KEY-LEASE.

otSrpServerHostGetNextService

const otSrpServerService * otSrpServerHostGetNextService(
  const otSrpServerHost *aHost,
  const otSrpServerService *aService
)

Retorna o próximo serviço do host especificado.

Detalhes
Parâmetros
[in] aHost
Um ponteiro para o host do serviço SRP.
[in] aService
Um ponteiro para a instância de serviço SRP atual. Use NULL para receber o primeiro serviço.
Retorna
Um ponteiro para o próximo serviço ou NULL se não houver mais serviços.

otSrpServerHostIsDeleted

bool otSrpServerHostIsDeleted(
  const otSrpServerHost *aHost
)

Informa se o host do serviço SRP foi excluído.

Um host de serviço SRP pode ser excluído, mas mantém seu nome para usos futuros. Nesse caso, a instância do host não é removida do servidor/registro do SRP.

Detalhes
Parâmetros
[in] aHost
Um ponteiro para o host do serviço SRP.
Retorna
TRUE se o host tiver sido excluído; caso contrário, FALSE.

otSrpServerHostMatchesFullName

bool otSrpServerHostMatchesFullName(
  const otSrpServerHost *aHost,
  const char *aFullName
)

Indica se o host corresponde a um determinado nome de host.

As correspondências de nome de DNS são realizadas usando uma comparação de string que não diferencia maiúsculas de minúsculas (por exemplo, "Abc" e "aBc" são considerados iguais).

Detalhes
Parâmetros
[in] aHost
Um ponteiro para o host do serviço SRP.
[in] aFullName
Um nome de host completo.
Valores de retorno
TRUE
Se o host corresponder ao nome do host.
FALSE
Se o host não corresponder ao nome do host.

otSrpServerIsAutoEnableMode

bool otSrpServerIsAutoEnableMode(
  otInstance *aInstance
)

Indica se o modo de ativação automática está ativado ou desativado.

Requer o recurso OPENTHREAD_CONFIG_BORDER_ROUTING_ENABLE.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
Valores de retorno
TRUE
O modo de ativação automática está ativado.
FALSE
O modo de ativação automática está desativado.

otSrpServerParseSubTypeServiceName

otError otSrpServerParseSubTypeServiceName(
  const char *aSubTypeServiceName,
  char *aLabel,
  uint8_t aLabelSize
)

Analisa o nome de serviço de um subtipo (nome completo) e extrai o rótulo do subtipo.

O nome completo de um serviço de subtipo segue "._sub...".

Detalhes
Parâmetros
[in] aSubTypeServiceName
Um nome de serviço de subtipo (nome completo).
[out] aLabel
Um ponteiro para um buffer para copiar o identificador de subtipo extraído.
[in] aLabelSize
Tamanho máximo do buffer aLabel.
Valores de retorno
OT_ERROR_NONE
O nome foi analisado, e aLabel foi atualizado.
OT_ERROR_NO_BUFS
O rótulo do subtipo não cabe no buffer aLabel. O número de caracteres do rótulo que pode caber são copiados em aLabel, garantindo que ele tenha o final nulo.
OT_ERROR_INVALID_ARGS
aSubTypeServiceName não é um formato de subtipo válido.

otSrpServerServiceGetHost

const otSrpServerHost * otSrpServerServiceGetHost(
  const otSrpServerService *aService
)

Retorna o host em que a instância de serviço reside.

Detalhes
Parâmetros
[in] aService
Um indicador para o serviço SRP.
Retorna
Um ponteiro para a instância do host.

otSrpServerServiceGetInstanceLabel

const char * otSrpServerServiceGetInstanceLabel(
  const otSrpServerService *aService
)

Retorna o rótulo da instância de serviço (primeiro rótulo no nome da instância) do serviço.

Detalhes
Parâmetros
[in] aService
Um indicador para o serviço SRP.
Retorna
Um ponteiro para a string de rótulo da instância de serviço com terminação nula.

otSrpServerServiceGetInstanceName

const char * otSrpServerServiceGetInstanceName(
  const otSrpServerService *aService
)

Retorna o nome completo da instância de serviço do serviço.

Detalhes
Parâmetros
[in] aService
Um indicador para o serviço SRP.
Retorna
Um ponteiro para a string de nome da instância de serviço com terminação nula.

otSrpServerServiceGetLeaseInfo

void otSrpServerServiceGetLeaseInfo(
  const otSrpServerService *aService,
  otSrpServerLeaseInfo *aLeaseInfo
)

Retorna as informações LEASE e KEY-LEASE de um determinado serviço.

Detalhes
Parâmetros
[in] aService
Um ponteiro para o serviço do servidor SRP.
[out] aLeaseInfo
Um ponteiro para o local de saída das informações LEASE e KEY-LEASE.

otSrpServerServiceGetNumberOfSubTypes

uint16_t otSrpServerServiceGetNumberOfSubTypes(
  const otSrpServerService *aService
)

Extrai o número de subtipos do serviço.

Detalhes
Parâmetros
[in] aService
Um indicador para o serviço SRP.
Retorna
O número de subtipos de aService.

otSrpServerServiceGetPort

uint16_t otSrpServerServiceGetPort(
  const otSrpServerService *aService
)

Retorna a porta da instância de serviço.

Detalhes
Parâmetros
[in] aService
Um indicador para o serviço SRP.
Retorna
A porta do serviço.

otSrpServerServiceGetPriority

uint16_t otSrpServerServiceGetPriority(
  const otSrpServerService *aService
)

Retorna a prioridade da instância de serviço.

Detalhes
Parâmetros
[in] aService
Um indicador para o serviço SRP.
Retorna
A prioridade do serviço.

otSrpServerServiceGetServiceName

const char * otSrpServerServiceGetServiceName(
  const otSrpServerService *aService
)

Retorna o nome completo do serviço.

Detalhes
Parâmetros
[in] aService
Um indicador para o serviço SRP.
Retorna
Um ponteiro para a string de nome de serviço terminada em nulo.

otSrpServerServiceGetSubTypeServiceNameAt

const char * otSrpServerServiceGetSubTypeServiceNameAt(
  const otSrpServerService *aService,
  uint16_t aIndex
)

Extrai o nome do serviço do subtipo (nome completo) do serviço em um determinado índice.

O nome completo de um serviço de subtipo segue "._sub...".

Detalhes
Parâmetros
[in] aService
Um indicador para o serviço SRP.
[in] aIndex
O índice a ser recebido.
Retorna
Um ponteiro para o nome do serviço de subtipo em aIndex ou NULL se não houver nenhum subtipo nesse índice.

otSrpServerServiceGetTtl

uint32_t otSrpServerServiceGetTtl(
  const otSrpServerService *aService
)

Retorna o TTL da instância de serviço.

Detalhes
Parâmetros
[in] aService
Um indicador para o serviço SRP.
Retorna
O TTL da instância de serviço.

otSrpServerServiceGetTxtData

const uint8_t * otSrpServerServiceGetTxtData(
  const otSrpServerService *aService,
  uint16_t *aDataLength
)

Retorna os dados do registro TXT da instância de serviço.

Detalhes
Parâmetros
[in] aService
Um indicador para o serviço SRP.
[out] aDataLength
Um ponteiro para retornar o comprimento de dados do registro TXT. NÃO PODE ser NULL.
Retorna
Um ponteiro para o buffer que contém os dados do registro TXT (o comprimento dos dados TXT é retornado em aDataLength).

otSrpServerServiceGetWeight

uint16_t otSrpServerServiceGetWeight(
  const otSrpServerService *aService
)

Retorna o peso da instância de serviço.

Detalhes
Parâmetros
[in] aService
Um indicador para o serviço SRP.
Retorna
O peso do serviço.

otSrpServerServiceHasSubTypeServiceName

bool otSrpServerServiceHasSubTypeServiceName(
  const otSrpServerService *aService,
  const char *aSubTypeServiceName
)

Indica se o serviço tem um determinado subtipo.

As correspondências de nome de DNS são realizadas usando uma comparação de string que não diferencia maiúsculas de minúsculas (por exemplo, "Abc" e "aBc" são considerados iguais).

Detalhes
Parâmetros
[in] aService
Um indicador para o serviço SRP.
[in] aSubTypeServiceName
O nome do serviço do subtipo (nome completo) a ser verificado.
Valores de retorno
TRUE
O serviço contém o subtipo aSubTypeServiceName.
FALSE
O serviço não contém o subtipo aSubTypeServiceName.

otSrpServerServiceIsDeleted

bool otSrpServerServiceIsDeleted(
  const otSrpServerService *aService
)

Indica se o serviço SRP foi excluído ou não.

Um serviço SRP pode ser excluído, mas mantém seu nome para usos futuros. Nesse caso, a instância de serviço não é removida do servidor/registro do SRP. É garantido que todos os serviços serão excluídos se o host for excluído.

Detalhes
Parâmetros
[in] aService
Um indicador para o serviço SRP.
Retorna
TRUE se o serviço tiver sido excluído; caso contrário, FALSE.

otSrpServerServiceMatchesInstanceName

bool otSrpServerServiceMatchesInstanceName(
  const otSrpServerService *aService,
  const char *aInstanceName
)

Indica se esse serviço corresponde a um determinado nome de instância de serviço.

As correspondências de nome de DNS são realizadas usando uma comparação de string que não diferencia maiúsculas de minúsculas (por exemplo, "Abc" e "aBc" são considerados iguais).

Detalhes
Parâmetros
[in] aService
Um indicador para o serviço SRP.
[in] aInstanceName
O nome da instância de serviço.
Valores de retorno
TRUE
Se o serviço corresponde ao nome da instância do serviço.
FALSE
Se o serviço não corresponder ao nome da instância do serviço.

otSrpServerServiceMatchesServiceName

bool otSrpServerServiceMatchesServiceName(
  const otSrpServerService *aService,
  const char *aServiceName
)

Indica se esse serviço corresponde a um determinado nome de serviço.

As correspondências de nome de DNS são realizadas usando uma comparação de string que não diferencia maiúsculas de minúsculas (por exemplo, "Abc" e "aBc" são considerados iguais).

Detalhes
Parâmetros
[in] aService
Um indicador para o serviço SRP.
[in] aServiceName
O nome do serviço.
Valores de retorno
TRUE
Se o serviço corresponder ao nome do serviço.
FALSE
Se o serviço não corresponder ao nome do serviço.

otSrpServerSetAddressMode

otError otSrpServerSetAddressMode(
  otInstance *aInstance,
  otSrpServerAddressMode aMode
)

Define o modo de endereço a ser usado pelo servidor SRP.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
[in] aMode
O modo de endereço a ser usado.
Valores de retorno
OT_ERROR_NONE
O modo de endereço foi definido.
OT_ERROR_INVALID_STATE
O servidor SRP está ativado e o modo de endereço não pode ser alterado.

otSrpServerSetAnycastModeSequenceNumber

otError otSrpServerSetAnycastModeSequenceNumber(
  otInstance *aInstance,
  uint8_t aSequenceNumber
)

Define o número de sequência usado com o modo de endereço anycast.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
[in] aSequenceNumber
O número de sequência a ser usado.
Valores de retorno
OT_ERROR_NONE
O modo de endereço foi definido.
OT_ERROR_INVALID_STATE
O servidor SRP está ativado, e o número de sequência não pode ser alterado.

otSrpServerSetAutoEnableMode

void otSrpServerSetAutoEnableMode(
  otInstance *aInstance,
  bool aEnabled
)

Ativa/desativa o modo de ativação automática no servidor SRP.

Requer o recurso OPENTHREAD_CONFIG_BORDER_ROUTING_ENABLE.

Quando esse modo está ativado, o gerenciador de roteamento de borda controla se/quando ativar ou desativar o servidor SRP. O servidor SRP é ativado automaticamente se/quando o roteamento de borda é iniciado e é feito com as configurações iniciais de prefixo e rota (quando os prefixos OMR e no link são determinados, anunciados na mensagem de divulgação de roteador emitida no lado da infraestrutura e publicados nos dados da rede do Thread). O servidor SRP será desativado automaticamente se/quando o BR for interrompido (por exemplo, se a interface da rede da infraestrutura for encerrada ou se o BR for desanexado).

Esse modo pode ser desativado por uma chamada otSrpServerSetAutoEnableMode() com aEnabled definido como false ou se o servidor SRP for explicitamente ativado ou desativado por uma chamada para a função otSrpServerSetEnabled(). Desativar o modo de ativação automática usando otSrpServerSetAutoEnableMode(false) não muda o estado atual do servidor SRP (por exemplo, se ele estiver ativado, ele vai permanecer ativado).

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
[in] aEnabled
Um booleano para ativar/desativar o modo de ativação automática.

otSrpServerSetDomain

otError otSrpServerSetDomain(
  otInstance *aInstance,
  const char *aDomain
)

Define o domínio no servidor SRP.

Um ponto final será anexado a aDomain se ele ainda não estiver lá. Só deve ser chamado antes da ativação do servidor SRP.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
[in] aDomain
O domínio que será definido. NÃO PODE ser NULL.
Valores de retorno
OT_ERROR_NONE
O domínio foi definido como aDomain.
OT_ERROR_INVALID_STATE
O servidor SRP já está ativado e não é possível alterar o domínio.
OT_ERROR_INVALID_ARGS
O argumento aDomain não é um nome de domínio DNS válido.
OT_ERROR_NO_BUFS
Não há memória para armazenar conteúdo de aDomain.

otSrpServerSetEnabled

void otSrpServerSetEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Ativa/desativa o servidor SRP.

Em um roteador de borda, é recomendável usar otSrpServerSetAutoEnableMode().

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
[in] aEnabled
Um booleano para ativar/desativar o servidor SRP.

otSrpServerSetLeaseConfig

otError otSrpServerSetLeaseConfig(
  otInstance *aInstance,
  const otSrpServerLeaseConfig *aLeaseConfig
)

Define as configurações LEASE e KEY-LEASE do servidor SRP.

Quando um tempo de LEASE diferente de zero é solicitado de um cliente, o valor concedido é limitado no intervalo [aMinLease, aMaxLease]. Já um valor de KEY-LEASE diferente de zero é concedido no intervalo [aMinKeyLease, aMaxKeyLease]. Para nenhum período de LEASE ou KEY-LEASE, zero será concedido.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
[in] aLeaseConfig
Um ponteiro para uma instância otSrpServerLeaseConfig.
Valores de retorno
OT_ERROR_NONE
Os intervalos LEASE e KEY-LEASE foram definidos.
OT_ERROR_INVALID_ARGS
O intervalo LEASE ou KEY-LEASE não é válido.

otSrpServerSetServiceUpdateHandler

void otSrpServerSetServiceUpdateHandler(
  otInstance *aInstance,
  otSrpServerServiceUpdateHandler aServiceHandler,
  void *aContext
)

Define o gerenciador de atualizações do serviço SRP no servidor SRP.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
[in] aServiceHandler
Um ponteiro para um gerenciador de serviço. Use NULL para remover o gerenciador.
[in] aContext
Um ponteiro para informações de contexto arbitrárias. Poderá ser NULL se não for usado.

otSrpServerSetTtlConfig

otError otSrpServerSetTtlConfig(
  otInstance *aInstance,
  const otSrpServerTtlConfig *aTtlConfig
)

Define a configuração de TTL do servidor SRP.

O TTL concedido sempre não será maior que o intervalo de alocação máximo configurado por otSrpServerSetLeaseConfig(), independentemente da configuração de TTL mínima e máxima.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
[in] aTtlConfig
Um ponteiro para uma instância otSrpServerTtlConfig.
Valores de retorno
OT_ERROR_NONE
A configuração de TTL foi definida.
OT_ERROR_INVALID_ARGS
A configuração de TTL não é válida.

Recursos

Os tópicos de Referência da API OpenThread são originados do código-fonte, disponível no GitHub. Para mais informações ou para contribuir com nossa documentação, consulte Recursos.