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{
|
enum Especifica um estado do item de cliente SRP (informações do serviço ou do host). |
otSrpServerAddressMode{
|
enum Representa o modo de endereço usado pelo servidor SRP. |
otSrpServerState{
|
enum Representa o estado do servidor SRP. |
Typedefs |
|
---|---|
otSrpClientAutoStartCallback)(const otSockAddr *aServerSockAddr, void *aContext)
|
typedefvoid(*
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)
|
typedefvoid(*
O tipo de ponteiro define o callback usado pelo cliente SRP para notificar o usuário sobre mudanças/eventos/erros. |
otSrpClientHostInfo
|
typedefstruct otSrpClientHostInfo
Representa uma informação de host do cliente SRP. |
otSrpClientService
|
typedefstruct otSrpClientService
Representa um serviço do cliente SRP. |
otSrpServerAddressMode
|
typedef Representa o modo de endereço usado pelo servidor SRP. |
otSrpServerHost
|
typedefstruct otSrpServerHost
Esse tipo opaco representa um host de serviço SRP. |
otSrpServerLeaseConfig
|
typedefstruct otSrpServerLeaseConfig
Inclui as configurações LEASE e KEY-LEASE do servidor SRP. |
otSrpServerLeaseInfo
|
typedefstruct otSrpServerLeaseInfo
Inclui informações de locação do servidor SRP de um host/serviço. |
otSrpServerResponseCounters
|
typedefstruct otSrpServerResponseCounters
Inclui as estatísticas de respostas do servidor SRP. |
otSrpServerService
|
typedefstruct otSrpServerService
Esse tipo opaco representa um serviço SRP. |
otSrpServerServiceUpdateHandler)(otSrpServerServiceUpdateId aId, const otSrpServerHost *aHost, uint32_t aTimeout, void *aContext)
|
typedefvoid(*
Lida com as atualizações do serviço SRP. |
otSrpServerServiceUpdateId
|
typedefuint32_t
O ID de uma transação de atualização do serviço SRP no servidor SRP. |
otSrpServerTtlConfig
|
typedefstruct otSrpServerTtlConfig
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)
|
const otSrpClientHostInfo *
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)
|
const otSrpClientService *
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)
|
const otSrpServerResponseCounters *
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)
|
const otSrpServerService *
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 |
|
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 |
|
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 |
|
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
- Ele é removido explicitamente por uma chamada para
otSrpClientRemoveService()
ou removido com outros serviços por uma chamada paraotSrpClientRemoveHostAndServices() and only after the
otSrpClientCallback", indicando que o serviço foi removido. Ou, - Uma chamada para
otSrpClientClearHostAndServices()
que remove o host e todos os serviços relacionados imediatamente.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||
Valores de retorno |
|
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çãootSrpClientBuffersGetServiceEntryServiceNameString()
.mService.mInstanceName
vai apontar para um buffer de string alocado que pode ser recuperado usando a funçãootSrpClientBuffersGetServiceEntryInstanceNameString()
.mService.mSubTypeLabels
aponta para uma matriz que é retornada deotSrpClientBuffersGetSubTypeLabelsArray()
.- O dispositivo
mService.mTxtEntries
vai apontar paramTxtEntry
. 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çãootSrpClientBuffersGetServiceEntryTxtBuffer()
.mTxtEntry.mValueLength
está definido como zero.- Todos os buffers e matrizes de string/dados relacionados são zerados.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
||
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 |
|
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 |
|
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 |
|
||||
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 |
|
||||
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 |
|
||||
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 |
|
||||
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 |
|
||||
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 |
|
||||
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 |
|
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 |
|
||||
Valores de retorno |
|
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 |
|
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 |
|
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 |
|
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 |
|
||
Retorna |
A string do nome do domínio.
|
otSrpClientGetHostInfo
const otSrpClientHostInfo * otSrpClientGetHostInfo( otInstance *aInstance )
Recebe as informações do host.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
||
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 |
|
||
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 |
|
||
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 |
|
||
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 |
|
||
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 |
|
||
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 |
|
||
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 |
|
||
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 |
|
||
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 |
|
||
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 |
|
||||||
Valores de retorno |
|
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 |
|
||||
Valores de retorno |
|
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 |
|
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 |
|
||||
Valores de retorno |
|
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 |
|
||||||
Valores de retorno |
|
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 |
|
||||||
Valores de retorno |
|
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 |
|
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 |
|
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 |
|
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 |
|
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:
- O cliente SRP é iniciado.
otSrpClientStart()
é chamado. - O nome do host está definido:
otSrpClientSetHostName()
é chamado. - Pelo menos um endereço IPv6 do host está definido:
otSrpClientSetHostName()
é chamado. - Pelo menos um serviço foi adicionado:
otSrpClientAddService()
é chamado.
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 |
|
||||||
Valores de retorno |
|
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 |
|
otSrpServerGetAddressMode
otSrpServerAddressMode otSrpServerGetAddressMode( otInstance *aInstance )
Retorna o modo de endereço usado pelo servidor SRP.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
||
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 |
|
||
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 |
|
||
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 |
|
otSrpServerGetNextHost
const otSrpServerHost * otSrpServerGetNextHost( otInstance *aInstance, const otSrpServerHost *aHost )
Retorna o próximo host registrado no servidor SRP.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
||||
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 |
|
||
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 |
|
||
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 |
|
||
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 |
|
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 |
|
otSrpServerHostGetAddresses
const otIp6Address * otSrpServerHostGetAddresses( const otSrpServerHost *aHost, uint8_t *aAddressesNum )
Retorna os endereços de determinado host.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
||||
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 |
|
||
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 |
|
otSrpServerHostGetNextService
const otSrpServerService * otSrpServerHostGetNextService( const otSrpServerHost *aHost, const otSrpServerService *aService )
Retorna o próximo serviço do host especificado.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
||||
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 |
|
||
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 |
|
||||
Valores de retorno |
|
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 |
|
||||
Valores de retorno |
|
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 "
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||
Valores de retorno |
|
otSrpServerServiceGetHost
const otSrpServerHost * otSrpServerServiceGetHost( const otSrpServerService *aService )
Retorna o host em que a instância de serviço reside.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
||
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 |
|
||
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 |
|
||
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 |
|
otSrpServerServiceGetNumberOfSubTypes
uint16_t otSrpServerServiceGetNumberOfSubTypes( const otSrpServerService *aService )
Extrai o número de subtipos do serviço.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
||
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 |
|
||
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 |
|
||
Retorna |
A prioridade do serviço.
|
otSrpServerServiceGetServiceName
const char * otSrpServerServiceGetServiceName( const otSrpServerService *aService )
Retorna o nome completo do serviço.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
||
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 "
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
||||
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 |
|
||
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 |
|
||||
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 |
|
||
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 |
|
||||
Valores de retorno |
|
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 |
|
||
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 |
|
||||
Valores de retorno |
|
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 |
|
||||
Valores de retorno |
|
otSrpServerSetAddressMode
otError otSrpServerSetAddressMode( otInstance *aInstance, otSrpServerAddressMode aMode )
Define o modo de endereço a ser usado pelo servidor SRP.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
||||
Valores de retorno |
|
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 |
|
||||
Valores de retorno |
|
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 |
|
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 |
|
||||||||
Valores de retorno |
|
otSrpServerSetEnabled
void otSrpServerSetEnabled( otInstance *aInstance, bool aEnabled )
Ativa/desativa o servidor SRP.
Em um roteador de borda, é recomendável usar otSrpServerSetAutoEnableMode()
.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
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 |
|
||||
Valores de retorno |
|
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 |
|
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 |
|
||||
Valores de retorno |
|
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.