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.
Este módulo inclui funções para buffers de cliente SRP e pool de serviço.
As funções neste módulo só estão disponíveis quando o recurso OPENThread_CONFIG_SRP_CLIENT_BUFFERS_ENABLE está ativado.
Enumerações |
|
---|---|
anonymous enum{
|
tipo enumerado |
anonymous enum{
|
tipo enumerado |
otSrpClientItemState{
|
tipo enumerado Essa enumeração especifica um estado de item do cliente SRP (informações de serviço ou host). |
otSrpServerAddressMode{
|
tipo enumerado Esta enumeração representa o modo de endereço usado pelo servidor SRP. |
otSrpServerState{
|
tipo enumerado Esta enumeração representa o estado do servidor SRP. |
Typedefs |
|
---|---|
otSrpClientAutoStartCallback)(const otSockAddr *aServerSockAddr, void *aContext)
|
typedefvoid(*
Esse tipo de ponteiro de função define o callback usado pelo cliente SRP para notificar o usuário quando ele for iniciado ou interrompido automaticamente. |
otSrpClientBuffersServiceEntry
|
typedef Este struct representa uma entrada de pool de serviços de clientes de SRP. |
otSrpClientCallback)(otError aError, const otSrpClientHostInfo *aHostInfo, const otSrpClientService *aServices, const otSrpClientService *aRemovedServices, void *aContext)
|
typedefvoid(*
Esse tipo de ponteiro de função define o callback usado pelo cliente SRP para notificar o usuário sobre mudanças/eventos/erros. |
otSrpClientHostInfo
|
typedefstruct otSrpClientHostInfo
Essa estrutura representa as informações do host de um cliente SRP. |
otSrpClientService
|
typedefstruct otSrpClientService
Essa estrutura representa um serviço ao cliente SRP. |
otSrpServerAddressMode
|
typedef Esta enumeração 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
Essa estrutura inclui as configurações de servidor SRP LEASE e KEY-LEASE. |
otSrpServerLeaseInfo
|
typedefstruct otSrpServerLeaseInfo
Essa estrutura inclui informações de locação de servidores SRP de um host/serviço. |
otSrpServerResponseCounters
|
typedefstruct otSrpServerResponseCounters
Essa estrutura inclui as estatísticas das respostas do servidor SRP. |
otSrpServerService
|
typedefstruct otSrpServerService
Esse tipo opaco representa um serviço de SRP. |
otSrpServerServiceFlags
|
typedefuint8_t
O tipo de sinalização de serviço para indicar quais serviços incluir ou excluir ao pesquisar (ou iterar) a lista de serviços de SRP. |
otSrpServerServiceUpdateHandler)(otSrpServerServiceUpdateId aId, const otSrpServerHost *aHost, uint32_t aTimeout, void *aContext)
|
typedefvoid(*
Essa função gerencia 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
Essa estrutura inclui as configurações de TTL do servidor SRP. |
Funções |
|
---|---|
otSrpClientAddService(otInstance *aInstance, otSrpClientService *aService)
|
Essa função adiciona um serviço para ser registrado no servidor.
|
otSrpClientBuffersAllocateService(otInstance *aInstance)
|
Essa função aloca uma nova entrada de serviço do pool.
|
otSrpClientBuffersFreeAllServices(otInstance *aInstance)
|
void
Essa função libera todas as entradas de serviço alocadas anteriormente.
|
otSrpClientBuffersFreeService(otInstance *aInstance, otSrpClientBuffersServiceEntry *aService)
|
void
Essa função libera uma entrada de serviço alocada anteriormente.
|
otSrpClientBuffersGetHostAddressesArray(otInstance *aInstance, uint8_t *aArrayLength)
|
Essa função recebe a matriz de entradas de endereço IPv6 a serem usadas como lista de endereços de host do cliente SRP.
|
otSrpClientBuffersGetHostNameString(otInstance *aInstance, uint16_t *aSize)
|
char *
Essa função recebe o buffer de string a ser usado para o nome do host do cliente SRP.
|
otSrpClientBuffersGetServiceEntryInstanceNameString(otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize)
|
char *
Essa função recebe o buffer de string do nome da instância de serviço em uma entrada de serviço.
|
otSrpClientBuffersGetServiceEntryServiceNameString(otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize)
|
char *
Essa função recebe o buffer de string do nome do serviço em uma entrada de serviço.
|
otSrpClientBuffersGetServiceEntryTxtBuffer(otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize)
|
uint8_t *
Essa função recebe o buffer para o registro TXT de uma entrada de serviço.
|
otSrpClientBuffersGetSubTypeLabelsArray(otSrpClientBuffersServiceEntry *aEntry, uint16_t *aArrayLength)
|
const char **
Essa função recebe a matriz de identificadores de subtipo de serviço na entrada de serviço.
|
otSrpClientClearHostAndServices(otInstance *aInstance)
|
void
Essa função limpa todas as informações do host e todos os serviços.
|
otSrpClientClearService(otInstance *aInstance, otSrpClientService *aService)
|
Essa função limpa um serviço, removendo-o imediatamente da lista de serviços do cliente.
|
otSrpClientDisableAutoStartMode(otInstance *aInstance)
|
void
Esta função desativa o modo de início automático.
|
otSrpClientEnableAutoHostAddress(otInstance *aInstance)
|
Esta função ativa o modo de endereço do host automático.
|
otSrpClientEnableAutoStartMode(otInstance *aInstance, otSrpClientAutoStartCallback aCallback, void *aContext)
|
void
Esta função ativa o modo de início automático.
|
otSrpClientGetDomainName(otInstance *aInstance)
|
const char *
Esta função recebe o nome de domínio usado pelo cliente SRP.
|
otSrpClientGetHostInfo(otInstance *aInstance)
|
const otSrpClientHostInfo *
Essa função recebe as informações do host.
|
otSrpClientGetKeyLeaseInterval(otInstance *aInstance)
|
uint32_t
Essa função recebe o intervalo de lease de chave padrão usado em solicitações de atualização de SRP.
|
otSrpClientGetLeaseInterval(otInstance *aInstance)
|
uint32_t
Essa função recebe o intervalo de locação padrão usado nas solicitações de atualização do SRP.
|
otSrpClientGetServerAddress(otInstance *aInstance)
|
const otSockAddr *
Essa função acessa 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 *
Essa função recebe a lista de serviços que estão sendo gerenciados pelo cliente.
|
otSrpClientGetTtl(otInstance *aInstance)
|
uint32_t
Essa função recebe o valor TTL em cada registro incluído nas solicitações de atualização do SRP.
|
otSrpClientIsAutoStartModeEnabled(otInstance *aInstance)
|
bool
Esta função indica o estado atual do modo de início automático (ativado ou desativado).
|
otSrpClientIsRunning(otInstance *aInstance)
|
bool
Esta função indica se o cliente SRP está em execução ou não.
|
otSrpClientIsServiceKeyRecordEnabled(otInstance *aInstance)
|
bool
Esse método indica se o modo de inclusão de registro de chave de serviço"está ativado ou desativado.
|
otSrpClientItemStateToString(otSrpClientItemState aItemState)
|
const char *
Essa função converte um
otSrpClientItemState em uma string. |
otSrpClientRemoveHostAndServices(otInstance *aInstance, bool aRemoveKeyLease, bool aSendUnregToServer)
|
Essa função inicia o processo de remoção das informações do host e de todos os serviços.
|
otSrpClientRemoveService(otInstance *aInstance, otSrpClientService *aService)
|
Esta função solicita um serviço para cancelar o registro com o servidor.
|
otSrpClientSetCallback(otInstance *aInstance, otSrpClientCallback aCallback, void *aContext)
|
void
Esta função define o callback para notificar o autor da chamada de eventos/alterações de clientes SRP.
|
otSrpClientSetDomainName(otInstance *aInstance, const char *aName)
|
Essa função define o nome de domínio que será usado pelo cliente SRP.
|
otSrpClientSetHostAddresses(otInstance *aInstance, const otIp6Address *aIp6Addresses, uint8_t aNumAddresses)
|
Esta função define/atualiza a lista de endereços IPv6 do host.
|
otSrpClientSetHostName(otInstance *aInstance, const char *aName)
|
Essa função define o rótulo do nome do host.
|
otSrpClientSetKeyLeaseInterval(otInstance *aInstance, uint32_t aInterval)
|
void
Essa função define o intervalo de lease de chave padrão usado em solicitações de atualização de SRP.
|
otSrpClientSetLeaseInterval(otInstance *aInstance, uint32_t aInterval)
|
void
Essa função define o intervalo de locação padrão usado nas solicitações de atualização do SRP.
|
otSrpClientSetServiceKeyRecordEnabled(otInstance *aInstance, bool aEnabled)
|
void
Esta função ativa/desativa o modo de inclusão de registro de chave de serviço".
|
otSrpClientSetTtl(otInstance *aInstance, uint32_t aTtl)
|
void
Essa função define o valor TTL em cada registro incluído nas solicitações de atualização do SRP.
|
otSrpClientStart(otInstance *aInstance, const otSockAddr *aServerSockAddr)
|
Essa função inicia a operação do cliente SRP.
|
otSrpClientStop(otInstance *aInstance)
|
void
Essa função interrompe a operação do cliente SRP.
|
otSrpServerGetAddressMode(otInstance *aInstance)
|
Essa função retorna o modo de endereço usado pelo servidor SRP.
|
otSrpServerGetAnycastModeSequenceNumber(otInstance *aInstance)
|
uint8_t
Essa função retorna o número de sequência usado com o modo de endereço Anycast.
|
otSrpServerGetDomain(otInstance *aInstance)
|
const char *
Essa função retorna o domínio autorizado ao servidor SRP.
|
otSrpServerGetLeaseConfig(otInstance *aInstance, otSrpServerLeaseConfig *aLeaseConfig)
|
void
Essa função retorna as configurações de servidor SRP LEASE e KEY-LEASE.
|
otSrpServerGetNextHost(otInstance *aInstance, const otSrpServerHost *aHost)
|
const otSrpServerHost *
Essa função retorna o próximo host registrado no servidor SRP.
|
otSrpServerGetPort(otInstance *aInstance)
|
uint16_t
Essa função retorna a porta que o servidor SRP está detectando.
|
otSrpServerGetResponseCounters(otInstance *aInstance)
|
const otSrpServerResponseCounters *
Essa função retorna os contadores de resposta do servidor SRP.
|
otSrpServerGetState(otInstance *aInstance)
|
Essa função retorna o estado do servidor SRP.
|
otSrpServerGetTtlConfig(otInstance *aInstance, otSrpServerTtlConfig *aTtlConfig)
|
void
Essa função retorna a configuração do TTL do servidor SRP.
|
otSrpServerHandleServiceUpdateResult(otInstance *aInstance, otSrpServerServiceUpdateId aId, otError aError)
|
void
Esta função informa o resultado do processamento de uma atualização de SRP para o servidor de SRP.
|
otSrpServerHostFindNextService(const otSrpServerHost *aHost, const otSrpServerService *aPrevService, otSrpServerServiceFlags aFlags, const char *aServiceName, const char *aInstanceName)
|
const otSrpServerService *
Essa função encontra o próximo serviço correspondente no host.
|
otSrpServerHostGetAddresses(const otSrpServerHost *aHost, uint8_t *aAddressesNum)
|
const otIp6Address *
Essa função retorna os endereços do host especificado.
|
otSrpServerHostGetFullName(const otSrpServerHost *aHost)
|
const char *
Essa função retorna o nome completo do host.
|
otSrpServerHostGetLeaseInfo(const otSrpServerHost *aHost, otSrpServerLeaseInfo *aLeaseInfo)
|
void
Essa função retorna as informações de LEASE e KEY-LEASE de um determinado host.
|
otSrpServerHostGetNextService(const otSrpServerHost *aHost, const otSrpServerService *aService)
|
const otSrpServerService *
Essa função retorna o próximo serviço (excluindo qualquer tipo de serviço) do host em questão.
|
otSrpServerHostIsDeleted(const otSrpServerHost *aHost)
|
bool
Essa função informa se o host de serviço SRP foi excluído.
|
otSrpServerIsAutoEnableMode(otInstance *aInstance)
|
bool
Esta função indica se o modo de ativação automática está ativado ou desativado.
|
otSrpServerServiceGetFullName(const otSrpServerService *aService)
|
const char *
Essa função retorna o nome completo da instância do serviço.
|
otSrpServerServiceGetHost(const otSrpServerService *aService)
|
const otSrpServerHost *
Essa função retorna o host em que a instância de serviço reside.
|
otSrpServerServiceGetInstanceName(const otSrpServerService *aService)
|
const char *
Essa função retorna o nome completo da instância do serviço.
|
otSrpServerServiceGetLeaseInfo(const otSrpServerService *aService, otSrpServerLeaseInfo *aLeaseInfo)
|
void
Essa função retorna as informações de LEASE e KEY-LEASE de um determinado serviço.
|
otSrpServerServiceGetPort(const otSrpServerService *aService)
|
uint16_t
Essa função retorna a porta da instância de serviço.
|
otSrpServerServiceGetPriority(const otSrpServerService *aService)
|
uint16_t
Essa função retorna a prioridade da instância de serviço.
|
otSrpServerServiceGetServiceName(const otSrpServerService *aService)
|
const char *
Essa função retorna o nome completo do serviço.
|
otSrpServerServiceGetServiceSubTypeLabel(const otSrpServerService *aService, char *aLabel, uint8_t aMaxSize)
|
Essa função recebe o rótulo do subtipo do nome do serviço.
|
otSrpServerServiceGetTtl(const otSrpServerService *aService)
|
uint32_t
Essa função retorna o TTL da instância de serviço.
|
otSrpServerServiceGetTxtData(const otSrpServerService *aService, uint16_t *aDataLength)
|
const uint8_t *
Essa função retorna os dados do registro TXT da instância de serviço.
|
otSrpServerServiceGetWeight(const otSrpServerService *aService)
|
uint16_t
Essa função retorna o peso da instância de serviço.
|
otSrpServerServiceIsDeleted(const otSrpServerService *aService)
|
bool
Esta função indica se o serviço SRP foi excluído ou não.
|
otSrpServerServiceIsSubType(const otSrpServerService *aService)
|
bool
Essa função indica se o serviço SRP é um subtipo.
|
otSrpServerSetAddressMode(otInstance *aInstance, otSrpServerAddressMode aMode)
|
Essa função define o modo de endereço a ser usado pelo servidor SRP.
|
otSrpServerSetAnycastModeSequenceNumber(otInstance *aInstance, uint8_t aSequenceNumber)
|
Essa função define o número de sequência usado com o modo de endereço Anycast.
|
otSrpServerSetAutoEnableMode(otInstance *aInstance, bool aEnabled)
|
void
Esta função ativa/desativa o modo de ativação automática no servidor SRP.
|
otSrpServerSetDomain(otInstance *aInstance, const char *aDomain)
|
Essa função define o domínio no servidor SRP.
|
otSrpServerSetEnabled(otInstance *aInstance, bool aEnabled)
|
void
Esta função ativa/desativa o servidor SRP.
|
otSrpServerSetLeaseConfig(otInstance *aInstance, const otSrpServerLeaseConfig *aLeaseConfig)
|
Esta função define as configurações de servidor SRP LEASE e KEY-LEASE.
|
otSrpServerSetServiceUpdateHandler(otInstance *aInstance, otSrpServerServiceUpdateHandler aServiceHandler, void *aContext)
|
void
Essa função define o gerenciador de atualizações do serviço SRP no servidor SRP.
|
otSrpServerSetTtlConfig(otInstance *aInstance, const otSrpServerTtlConfig *aTtlConfig)
|
Esta função define a configuração do TTL do servidor SRP.
|
Estruturas |
|
---|---|
otSrpClientBuffersServiceEntry |
Este struct representa uma entrada de pool de serviços de clientes de SRP. |
otSrpClientHostInfo |
Essa estrutura representa as informações do host de um cliente SRP. |
OtSrpClientService |
Essa estrutura representa um serviço ao cliente SRP. |
otSrpServerLeaseConfig |
Essa estrutura inclui as configurações de servidor SRP LEASE e KEY-LEASE. |
otSrpServerLeaseInfo |
Essa estrutura inclui informações de locação de servidores SRP de um host/serviço. |
otSrpServerResponseCounters |
Essa estrutura inclui as estatísticas das respostas do servidor SRP. |
otSrpServerTtlConfig. |
Essa estrutura inclui as configurações de TTL do servidor SRP. |
Enumerações
enumeração anônima
anonymous enum
Propriedades | |
---|---|
OT_SRP_SERVER_SERVICE_FLAG_ACTIVE
|
Incluir serviços ativos (não excluídos). |
OT_SRP_SERVER_SERVICE_FLAG_BASE_TYPE
|
Incluir serviços base (não um subtipo) |
OT_SRP_SERVER_SERVICE_FLAG_DELETED
|
Incluir serviços excluídos. |
OT_SRP_SERVER_SERVICE_FLAG_SUB_TYPE
|
Incluir serviços de subtipo. |
enumeração anônima
anonymous enum
Propriedades | |
---|---|
OT_SRP_SERVER_FLAGS_ANY_SERVICE
|
Essa constante define uma combinação de |
OT_SRP_SERVER_FLAGS_ANY_TYPE_ACTIVE_SERVICE
|
Essa constante define uma combinação de |
OT_SRP_SERVER_FLAGS_ANY_TYPE_DELETED_SERVICE
|
Essa constante define uma combinação de |
OT_SRP_SERVER_FLAGS_BASE_TYPE_SERVICE_ONLY
|
Essa constante define uma combinação de |
OT_SRP_SERVER_FLAGS_SUB_TYPE_SERVICE_ONLY
|
Essa constante define uma combinação de |
OtSrpClientItemState
otSrpClientItemState
Essa enumeração especifica um estado de item do cliente SRP (informações de serviço ou 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
|
Item 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. Faça o registro novamente para renovar o lease. |
OT_SRP_CLIENT_ITEM_STATE_TO_REMOVE
|
Item a ser removido. |
OtSrpServerAddressMode
otSrpServerAddressMode
Esta enumeração 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
Esta enumeração 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 interrompido. |
Typedefs
OtSrpClientAutoStartCallback
void(* otSrpClientAutoStartCallback)(const otSockAddr *aServerSockAddr, void *aContext)
Esse tipo de ponteiro de função define o callback usado pelo cliente SRP para notificar o usuário quando ele for iniciado ou interrompido automaticamente.
Isso é 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
Este struct representa uma entrada de pool de serviços de clientes de SRP.
OtSrpClientCallback
void(* otSrpClientCallback)(otError aError, const otSrpClientHostInfo *aHostInfo, const otSrpClientService *aServices, const otSrpClientService *aRemovedServices, void *aContext)
Esse tipo de ponteiro de função define o callback usado pelo cliente SRP para notificar o usuário sobre mudanças/eventos/erros.
Esse callback é invocado em uma inscrição bem-sucedida de uma atualização (por exemplo, adição/remoção de host-info e/ou de alguns serviços) com o servidor SRP, ou se há uma falha ou erro (por exemplo, o servidor rejeita uma solicitação de atualização ou o tempo limite do cliente espera por 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 fornecidos como parâmetros de entrada para o callback. Observe que as informações e serviços do host rastreiam 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 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) é feito com as instâncias de serviço removidas listadas em aRemovedServices
, e não é mais o rastreamento/o armazenamento. Ou seja, se do callback chamar otSrpClientGetServices()
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 foram removidos e permitir 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 de DNS (RFC 2136) será mapeado para os seguintes erros:
- (0) SEM ERROS (sem condição de erro) -> OT_ERROR_NONE
- (1) O servidor FORMERR não conseguiu 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 oferece suporte ao tipo de consulta (OpCode) -> OT_ERROR_NOT_IMPLEMENTED
- (5) REFUSED Servidor recusado por violação de políticas/segurança -> OT_ERROR_SECURITY
- (6) YXDOMAIN Um nome que não deveria existir, existe -> OT_ERROR_DUPLICATED
- (7) YXRRSET Parte do RRset que não deveria existir, existe -> OT_ERROR_DUPLICATED
- (8) NXRRSET Alguns RRset que deveriam existir, não existem -> OT_ERROR_NOT_FOUND
- (9) O serviço NOTAUTH não é autoritativo para a zona -> OT_ERROR_SECURITY
- (10) NOTZONE A nome A não está na zona -> OT_ERROR_PARSE
- (20) BADNAME Nome inválido -> OT_ERROR_PARSE
- (21) BADALG: algoritmo inválido -> OT_ERROR_SECURITY
- (22) BADTRUN truncada – g&g; OT_ERROR_PARSE
- Outros códigos de resposta -> OT_ERROR_FAILED
Os seguintes erros também são possíveis:
- OT_ERROR_RESPONSE_THRESHOLD : o tempo limite foi excedido para a resposta do servidor (o cliente continuaria tentando novamente);
- OT_ERROR_INVALID_ARGS : a estrutura de serviços fornecida é inválida (por exemplo, nome de serviço inválido ou
otDnsTxtEntry
). - 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 de 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 |
|
OtSrpClientHost
struct otSrpClientHostInfo otSrpClientHostInfo
Essa estrutura representa as informações do host de um cliente SRP.
Serviço de cliente otSrp
struct otSrpClientService otSrpClientService
Essa estrutura representa um serviço ao cliente SRP.
Os valores nessa estrutura, incluindo os buffers de string para os nomes e as entradas de registro TXT, PRECISAM persistir e permanecer constantes depois que uma instância dessa estrutura é transmitida para o OpenThread de otSrpClientAddService()
ou otSrpClientRemoveService()
.
Os campos mState
, mData
e mNext
são usados/gerenciados apenas pelo núcleo OT. O valor delas é ignorado quando uma instância da otSrpClientService
é transmitida na otSrpClientAddService()
, no otSrpClientRemoveService()
ou em outras funções. O autor da chamada não precisa definir esses campos.
Os campos mLease
e mKeyLease
especificam os intervalos de lease e de chave de chave desejados para este serviço. O valor zero indica que o intervalo não é especificado e, em seguida, os intervalos de lease ou de chave padrão de otSrpClientGetLeaseInterval()
e otSrpClientGetKeyLeaseInterval()
são usados para esse serviço. Se o intervalo de lease de chave (seja definido explicitamente ou determinado a partir do padrão) for menor que o intervalo de lease de um serviço, o cliente SRP também vai reutilizar o valor do intervalo de lease para o intervalo de lease de chave. Por exemplo, se no serviço mLease
for explicitamente definido como dois dias e mKeyLease
for definido como zero e o lease de chave padrão for definido como um dia, ao registrar este serviço, o lease de chave solicitado para o serviço também será definido como dois dias.
OtSrpServerAddressMode
enum otSrpServerAddressMode otSrpServerAddressMode
Esta enumeração 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.
Host do otSrpServer
struct otSrpServerHost otSrpServerHost
Esse tipo opaco representa um host de serviço SRP.
OtSrpServerLeaseConfig
struct otSrpServerLeaseConfig otSrpServerLeaseConfig
Essa estrutura inclui as configurações de servidor SRP LEASE e KEY-LEASE.
OtSrpServerLeaseInfo
struct otSrpServerLeaseInfo otSrpServerLeaseInfo
Essa estrutura inclui informações de locação de servidores SRP de um host/serviço.
OtSrpServerResponseCounters
struct otSrpServerResponseCounters otSrpServerResponseCounters
Essa estrutura inclui as estatísticas das respostas do servidor SRP.
Serviço OtSrpServer
struct otSrpServerService otSrpServerService
Esse tipo opaco representa um serviço de SRP.
OtSrpServerServiceFlags
uint8_t otSrpServerServiceFlags
O tipo de sinalização de serviço para indicar quais serviços incluir ou excluir ao pesquisar (ou iterar) a lista de serviços de SRP.
Isso é uma combinação de sinalizações de bits. As sinalizações de bits específicas são definidas na enumeração OT_SRP_SERVER_FLAG_*
.
OtSrpServerServiceUpdateHandler
void(* otSrpServerServiceUpdateHandler)(otSrpServerServiceUpdateId aId, const otSrpServerHost *aHost, uint32_t aTimeout, void *aContext)
Essa função gerencia as atualizações do serviço SRP.
Essa função é chamada 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 expira 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 houver falha na validação. Por exemplo, um proxy de publicidade precisa 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 qualquer 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
Essa estrutura inclui as configurações de TTL do servidor SRP.
Funções
Serviço OtSrpClientAdd
otError otSrpClientAddService( otInstance *aInstance, otSrpClientService *aService )
Essa função adiciona um serviço para ser registrado no servidor.
Após uma chamada bem-sucedida 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 de otSrpClientService
apontada por aService
PRECISA persistir 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
- Ela é removida explicitamente por uma chamada para
otSrpClientRemoveService()
ou removida com outros serviços por uma chamada paraotSrpClientRemoveHostAndServices() and only after the
otSrpClientCallback` que é chamada 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 |
|
OtSrpClientBuffersLocService
otSrpClientBuffersServiceEntry * otSrpClientBuffersAllocateService( otInstance *aInstance )
Essa função 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
aponta para um buffer de string alocado que pode ser recuperado usando a funçãootSrpClientBuffersGetServiceEntryServiceNameString()
.mService.mInstanceName
aponta para um buffer de string alocado que pode ser recuperado usando a funçãootSrpClientBuffersGetServiceEntryInstanceNameString()
.mService.mSubTypeLabels
aponta para uma matriz retornada deotSrpClientBuffersGetSubTypeLabelsArray()
.mService.mTxtEntries
aponta paramTxtEntry
.mService.mNumTxtEntries
será definido como um.- Outros campos
mService
(porta, prioridade, peso) são definidos como zero. mTxtEntry.mKey
é definido como NULL (o valor é tratado como já codificado).mTxtEntry.mValue
aponta para um buffer alocado que pode ser recuperado usando a funçãootSrpClientBuffersGetServiceEntryTxtBuffer()
.mTxtEntry.mValueLength
é definido como zero.- Todos os buffers e matrizes de dados/strings relacionados são apagados de zero.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
||
Retorna |
Um ponteiro para a entrada de serviço recém-alocada ou NULL, se não houver mais entradas disponíveis no pool.
|
OtSrpClientBuffersFreeAllServices
void otSrpClientBuffersFreeAllServices( otInstance *aInstance )
Essa função libera todas as entradas de serviço alocadas anteriormente.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
Serviço otSrpClientBuffersFree
void otSrpClientBuffersFreeService( otInstance *aInstance, otSrpClientBuffersServiceEntry *aService )
Essa função libera uma entrada de serviço alocada anteriormente.
O aService
PRECISA ser alocado usando otSrpClientBuffersAllocateService()
e ainda não foi liberado. Caso contrário, o comportamento dessa função será indefinido.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
OtSrpClientBuffersGetHostAddressesArray
otIp6Address * otSrpClientBuffersGetHostAddressesArray( otInstance *aInstance, uint8_t *aArrayLength )
Essa função recebe a matriz de entradas de endereço IPv6 a serem usadas 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 )
Essa função recebe o buffer de string a ser usado para o nome do host do cliente SRP.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
||||
Retorna |
Um ponteiro para usar o buffer de caracteres para usar no nome do host do cliente SRP.
|
OtSrpClientBuffersGetServiceEntryInstanceNameString
char * otSrpClientBuffersGetServiceEntryInstanceNameString( otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize )
Essa função recebe o buffer de string do nome da instância de serviço em uma entrada de serviço.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
||||
Retorna |
Um ponteiro para o buffer da string.
|
OtSrpClientBuffersGetServiceEntryServiceNameString
char * otSrpClientBuffersGetServiceEntryServiceNameString( otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize )
Essa função recebe o buffer de string do nome do serviço em uma entrada de serviço.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
||||
Retorna |
Um ponteiro para o buffer da string.
|
OtSrpClientBuffersGetServiceEntryTxtBuffer
uint8_t * otSrpClientBuffersGetServiceEntryTxtBuffer( otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize )
Essa função recebe o buffer para o registro TXT de uma entrada de serviço.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
||||
Retorna |
Um ponteiro para o buffer.
|
OtSrpClientBuffersGetSubTypeLabelArray
const char ** otSrpClientBuffersGetSubTypeLabelsArray( otSrpClientBuffersServiceEntry *aEntry, uint16_t *aArrayLength )
Essa função recebe a matriz de identificadores de subtipo de serviço na entrada de serviço.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
||||
Retorna |
Um ponteiro para a matriz.
|
OtSrpClientClearHostAndServices
void otSrpClientClearHostAndServices( otInstance *aInstance )
Essa função 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 limpa todas as informações imediatamente, sem qualquer interação com o servidor.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
Serviço otSrpClientClear
otError otSrpClientClearService( otInstance *aInstance, otSrpClientService *aService )
Essa função limpa um serviço, removendo-o imediatamente da lista de serviços do cliente.
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 qualquer interação com o servidor. Em uma chamada bem-sucedida para essa função, o otSrpClientCallback
NÃO será chamado, e a entrada aService
poderá ser recuperada e reutilizada imediatamente pelo autor da chamada.
Essa função pode ser usada 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 )
Esta função desativa o modo de início automático.
Disponível apenas quando o recurso de início automático OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE
estiver ativado.
Desativar o modo de início automático não interromperá o cliente se ele já estiver em execução, mas o cliente deixará 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 )
Esta função ativa o modo de endereço do host automático.
Quando ativado, os endereços IPv6 do host são definidos automaticamente pelo cliente SRP usando todos os endereços unicast na rede Thread, excluindo todos os endereços link-local e mesh-local. Se não houver um endereço válido, o EID local da malha será adicionado. O cliente SRP se registrará novamente quando/se os endereços no Thread netif forem atualizados (novos endereços são adicionados ou os atuais são removidos).
O modo de endereço do host automático pode ser ativado antes ou durante a operação do cliente SRP, exceto quando as informações do host são removidas (o cliente está ocupado processando 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 por uma chamada para otSrpClientSetHostAddresses()
, que definirá explicitamente os endereços do host.
Detalhes | |||||
---|---|---|---|---|---|
Valores de retorno |
|
OtSrpClientEnableAutoStartMode
void otSrpClientEnableAutoStartMode( otInstance *aInstance, otSrpClientAutoStartCallback aCallback, void *aContext )
Esta função ativa o modo de início automático.
Disponível apenas quando o recurso de início automático OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE
estiver 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 (se estará ativado ou desativado no início da pilha de OT).
Quando o início automático estiver ativado, o cliente SRP vai monitorar os dados da rede Thread para descobrir servidores SRP e selecionar o servidor preferido e iniciar e interromper automaticamente o cliente quando um servidor SRP for detectado.
Há três categorias de entradas de dados de rede que indicam a presença do servidor de SRP. Eles têm preferência na seguinte ordem:
1) Entradas unicast preferidas em que o endereço do servidor está incluído nos dados do serviço Se houver várias opções, a que tiver menor endereço IPv6 numericamente terá preferência.
2) Entradas Anycast que têm 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 sequencial usando a aritmética do número de série tem preferência se for bem definido (ou seja, o número da sequência é maior que todos os outros números da sequência). Se não estiver bem definido, é preferível usar o maior número numérico da sequência.
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, a que tiver menor endereço IPv6 numericamente terá preferência.
Quando houver uma alteração nas entradas de dados da rede, o cliente verificará se o servidor selecionado ainda está presente nos dados de rede e é o servidor preferencial. Caso contrário, o cliente vai mudar para o novo servidor preferido ou parar, se não houver nenhum.
Quando o cliente SRP é explicitamente iniciado por uma chamada bem-sucedida para otSrpClientStart()
, o endereço do servidor SRP em otSrpClientStart()
continuará sendo usado independentemente do estado do modo de início automático e se o mesmo endereço de servidor SRP for descoberto ou não nos dados da rede Thread. Nesse caso, apenas uma chamada otSrpClientStop()
explícita interromperá o cliente.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
OtSrpClientGetDomainName
const char * otSrpClientGetDomainName( otInstance *aInstance )
Esta função recebe o nome de domínio usado pelo cliente SRP.
Esta função requer a ativação de OPENTHREAD_CONFIG_SRP_CLIENT_DOMAIN_NAME_API_ENABLE
.
Se o nome de domínio não for definido, "default.service.arpa" será usado.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
||
Retorna |
String do nome do domínio.
|
OtSrpClientGetHostInfo
const otSrpClientHostInfo * otSrpClientGetHostInfo( otInstance *aInstance )
Essa função 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 )
Essa função recebe o intervalo de lease de chave padrão usado em solicitações de atualização de SRP.
O intervalo padrão é usado apenas para instâncias de otSrpClientService
com mKeyLease
definido como zero.
Observe que essa é a duração do lease solicitada pelo cliente SRP. O servidor pode escolher aceitar um intervalo de lease diferente.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
||
Retorna |
O intervalo de locação da chave (em segundos).
|
OtSrpClientGetLeaseInterval
uint32_t otSrpClientGetLeaseInterval( otInstance *aInstance )
Essa função recebe o intervalo de locação padrão usado nas solicitações de atualização do SRP.
O intervalo padrão é usado apenas para instâncias de otSrpClientService
com mLease
definido como zero.
Observe que essa é a duração do lease solicitada pelo cliente SRP. O servidor pode escolher aceitar um intervalo de lease diferente.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
||
Retorna |
O intervalo de locação (em segundos).
|
OtSrpClientGetServerAddress
const otSockAddr * otSrpClientGetServerAddress( otInstance *aInstance )
Essa função acessa 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 está em execução, o endereço não é especificado (todos zero) com um número de porta zero.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
||
Retorna |
Um ponteiro para o endereço de soquete do servidor SRP (sempre é NULL).
|
OtSrpClientGetServices
const otSrpClientService * otSrpClientGetServices( otInstance *aInstance )
Essa função 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 )
Essa função recebe o valor TTL em cada registro incluído nas solicitações de atualização do SRP.
Observe que esse é o TTL solicitado pelo cliente da SRP. O servidor pode escolher aceitar um TTL diferente.
Por padrão, o TTL é igual ao intervalo de locação. Transmitir 0 ou um valor maior que o intervalo de locação por otSrpClientSetTtl()
também fará com que o TTL seja igual ao intervalo de locação.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
||
Retorna |
TTL (em segundos).
|
OtSrpClientIsAutoStartModeEnabled
bool otSrpClientIsAutoStartModeEnabled( otInstance *aInstance )
Esta função indica o estado atual do modo de início automático (ativado ou desativado).
Disponível apenas quando o recurso de início automático OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE
estiver 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 )
Esta função indica se o cliente SRP está em execução ou não.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
||
Retorna |
Verdadeiro se o cliente SRP estiver em execução. Caso contrário, FALSO.
|
OtSrpClientIsServiceKeyRecordEnabled
bool otSrpClientIsServiceKeyRecordEnabled( otInstance *aInstance )
Esse método indica se o modo de inclusão de registro de chave de serviço"está ativado ou desativado.
Esta função estará disponível quando a configuração de OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE
estiver ativada.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
||
Retorna |
VERDADEIRO se o modo de inclusão de registro de chave de serviço" estiver ativado; caso contrário, FALSO.
|
OtSrpClientItemStateToString
const char * otSrpClientItemStateToString( otSrpClientItemState aItemState )
Essa função 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 )
Essa função 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, aRemoveKeyLease
deverá ser definido como true
, o que removerá o lease de chave associado ao host no servidor. Caso contrário, o registro do lease de 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
(o valor padrão/esperado), o cliente SRP vai remover imediatamente as informações e serviços do host sem enviar uma mensagem de atualização para o servidor (não é necessário atualizar o servidor se nada ainda estiver registrado com ele). Se aSendUnregToServer
estiver definido como true
, o cliente SRP enviará uma mensagem de atualização ao servidor. Se as informações do host forem registradas, o valor de aSendUnregToServer
não importa, e o cliente SRP sempre enviará uma mensagem de atualização ao servidor solicitando a remoção de todas as informações.
Uma situação em que aSendUnregToServer
pode ser útil é redefinir ou reiniciar o dispositivo. Talvez o autor da chamada queira remover todos os serviços registrados anteriormente com o servidor. Nesse caso, o autor da chamada pode otSrpClientSetHostName()
e, em seguida, solicitar otSrpClientRemoveHostAndServices()
com aSendUnregToServer
como true
.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||
Valores de retorno |
|
Serviço otSrpClientRemove
otError otSrpClientRemoveService( otInstance *aInstance, otSrpClientService *aService )
Esta função solicita um serviço para cancelar o registro com o servidor.
Após uma chamada bem-sucedida para esta função, otSrpClientCallback
será chamado para informar o status da solicitação de remoção com o servidor SRP.
A instância de otSrpClientService
apontada por aService
PRECISA persistir 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
for chamado, isso indica 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 )
Esta função define o callback para notificar o autor da chamada de eventos/alterações de clientes SRP.
O cliente SRP permite o registro de um único callback. Portanto, chamadas consecutivas para essa função substituirão todas as funções de callback definidas anteriormente.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
OtSrpClientSetDomainName
otError otSrpClientSetDomainName( otInstance *aInstance, const char *aName )
Essa função define o nome de domínio que será usado pelo cliente SRP.
Esta função requer a ativação de OPENTHREAD_CONFIG_SRP_CLIENT_DOMAIN_NAME_API_ENABLE
.
Se não for definido, "quoquo;default.service.arpa" será usado.
O buffer da string de nome apontado por aName
PRECISA persistir e permanecer inalterado após retornar dessa função. O OpenThread manterá o ponteiro para a string.
O nome de domínio pode ser definido antes ou depois do início do cliente, mas antes de as informações do host serem registradas no servidor (as informações do host precisam 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 )
Esta função 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 processando 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 persistir e permanecer inalterada após retornar desta função (com OT_ERROR_NONE
). O OpenThread salvará o ponteiro na matriz.
Após uma chamada bem-sucedida para esta 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 de uma chamada bem-sucedida para otSrpClientEnableAutoHostAddress()
.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||
Valores de retorno |
|
OtSrpClientSetHostName
otError otSrpClientSetHostName( otInstance *aInstance, const char *aName )
Essa função define o rótulo do nome do host.
Após uma chamada bem-sucedida para esta função, otSrpClientCallback
será chamado para informar o status do registro de informações do host com o servidor SRP.
O buffer da string de nome apontado por aName
PRECISA persistir e permanecer inalterado após retornar dessa função. O OpenThread manterá o ponteiro para a string.
O nome do host pode ser definido antes ou depois do início do cliente, mas antes de as informações do host serem registradas no servidor (as informações do host precisam estar em STATE_TO_ADD
ou STATE_REMOVED
).
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||
Valores de retorno |
|
OtSrpClientSetKeyLeaseInterval
void otSrpClientSetKeyLeaseInterval( otInstance *aInstance, uint32_t aInterval )
Essa função define o intervalo de lease de chave padrão usado em solicitações de atualização de SRP.
O intervalo padrão é usado apenas para instâncias de otSrpClientService
com mKeyLease
definido como zero.
Alterar o intervalo de lease não afeta o intervalo de lease aceito dos serviços/host-info já registrados. Ele afeta apenas mensagens de atualização de SRP futuras (por exemplo, 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 )
Essa função define o intervalo de locação padrão usado nas solicitações de atualização do SRP.
O intervalo padrão é usado apenas para instâncias de otSrpClientService
com mLease
definido como zero.
Mudar o intervalo de lease não afeta o intervalo de lease aceito dos serviços/host-info já registrados. Ele afeta apenas as mensagens de atualização futuras de SRP (por exemplo, adição de novos serviços e/ou atualizações dos serviços existentes).
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
OtSrpClientSetServiceKeyKeyRecordEnabled
void otSrpClientSetServiceKeyRecordEnabled( otInstance *aInstance, bool aEnabled )
Esta função ativa/desativa o modo de inclusão de registro de 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 envia.
Esta função estará disponível quando a configuração de OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE
estiver ativada.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
OtSrpClientSetTtl
void otSrpClientSetTtl( otInstance *aInstance, uint32_t aTtl )
Essa função define o valor TTL em cada registro incluído nas solicitações de atualização do SRP.
A alteração do TTL não afeta o TTL de serviços/host-info já registrados, mas afeta apenas mensagens de atualização de SRP futuras (ou seja, adição de novos serviços e/ou atualizações dos serviços existentes).
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
OtSrpClientStart
otError otSrpClientStart( otInstance *aInstance, const otSockAddr *aServerSockAddr )
Essa função inicia a operação do cliente SRP.
O cliente SRP vai preparar e enviar a mensagem "SRP Update" para o servidor SRP assim que todas as condições a seguir forem atendidas:
- O cliente SRP foi iniciado.
otSrpClientStart()
é chamado. - O nome do host está definido -
otSrpClientSetHostName()
foi chamado. - Pelo menos um endereço IPv6 do host está definido.
otSrpClientSetHostName()
é chamado. - Pelo menos um serviço é 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 aguardará um pequeno atraso antes de preparar uma mensagem de "SRP Update" e enviá-la ao servidor. Esse atraso permite que o usuário adicione vários serviços e/ou endereços IPv6 antes do envio da primeira mensagem de atualização de SRP (garantindo que uma única atualização de SRP seja enviada contendo 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 )
Essa função interrompe a operação do cliente SRP.
Essa função interrompe outras interações com o servidor SRP. Não remove ou apaga informações do host e/ou lista de serviços. Marca todos os serviços a serem adicionados/removidos quando o cliente é (re)iniciado.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
OtSrpServerGetAddressMode
otSrpServerAddressMode otSrpServerGetAddressMode( otInstance *aInstance )
Essa função retorna o modo de endereço usado pelo servidor SRP.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
||
Retorna |
O modo de endereço do servidor SRP.
|
OtSrpServerGetAnycastModeSequenceNumber
uint8_t otSrpServerGetAnycastModeSequenceNumber( otInstance *aInstance )
Essa função retorna o número de sequência usado com o modo de endereço Anycast.
O número sequencial está incluído na entrada "DNS/SRP de serviço Anycast" publicada nos dados da rede.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
||
Retorna |
O número da sequência Anycast.
|
OtSrpServerGetDomain
const char * otSrpServerGetDomain( otInstance *aInstance )
Essa função retorna o domínio autorizado ao servidor SRP.
Se o domínio não definido por SetDomain, "default.service.arpa." será retornado. Um ponto final é sempre anexado, mesmo que o domínio esteja definido sem ele.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
||
Retorna |
Um ponteiro para a string de domínio conjunto por pontos.
|
OtSrpServerGetLeaseConfig
void otSrpServerGetLeaseConfig( otInstance *aInstance, otSrpServerLeaseConfig *aLeaseConfig )
Essa função retorna as configurações de servidor SRP LEASE e KEY-LEASE.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
OtSrpServerGetNextHost
const otSrpServerHost * otSrpServerGetNextHost( otInstance *aInstance, const otSrpServerHost *aHost )
Essa função retorna o próximo host registrado no servidor SRP.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
||||
Retorna |
Um ponteiro para o host registrado. NULL, caso não seja possível encontrar mais hosts.
|
OtSrpServerGetPort
uint16_t otSrpServerGetPort( otInstance *aInstance )
Essa função retorna a porta que o servidor SRP está detectando.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
||
Retorna |
A porta do servidor SRP. Ele retornará 0 se o servidor não estiver em execução.
|
OtSrpServerGetResponseCounters
const otSrpServerResponseCounters * otSrpServerGetResponseCounters( otInstance *aInstance )
Essa função 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 )
Essa função retorna o estado do servidor SRP.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
||
Retorna |
O estado atual do servidor SRP.
|
OtSrpServerGetTtlConfig
void otSrpServerGetTtlConfig( otInstance *aInstance, otSrpServerTtlConfig *aTtlConfig )
Essa função retorna a configuração do TTL do servidor SRP.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
OtSrpServerHandleServiceUpdateResult
void otSrpServerHandleServiceUpdateResult( otInstance *aInstance, otSrpServerServiceUpdateId aId, otError aError )
Esta função informa o resultado do processamento de uma atualização de SRP para o servidor de SRP.
O gerenciador de atualizações de serviço precisa chamar essa função para retornar o resultado do processamento de uma atualização de SRP.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
Serviço OtSrpServerHostFindNext
const otSrpServerService * otSrpServerHostFindNextService( const otSrpServerHost *aHost, const otSrpServerService *aPrevService, otSrpServerServiceFlags aFlags, const char *aServiceName, const char *aInstanceName )
Essa função encontra o próximo serviço correspondente no host.
A combinação de sinalizações e nomes de serviços e instâncias permite iterar a lista completa de serviços e/ou um subconjunto deles que atendem a determinadas condições ou encontrar um serviço específico.
Para iterar todos os serviços de um host: service = otSrpServerHostFindNextService(host, service, OT_SRP_SERVER_FLAGS_ANY_SERVICE, NULL, NULL);
Para iterar somente em serviços base (excluir subtipos): service = otSrpServerHostFindNextService(host, service, OT_SRP_SERVER_FLAGS_BASE_TYPE_SERVICE_ONLY, NULL, NULL);
Para iterar os subtipos de um nome de instância específico instanceName
: service = otSrpServerHostFindNextService(host, service, OT_SRP_SERVER_FLAGS_SUB_TYPE_SERVICE_ONLY, NULL, instanceName);
Para encontrar um serviço específico com o nome do serviço serviceName
e o nome da instância de serviço instanceName
: service = otSrpServerHostFindNextService(host, NULL, OT_SRP_SERVER_FLAGS_ANY_SERVICE, serviceName, instanceName);
Para encontrar o serviço de tipo base com um determinado nome de instância de serviço instanceName
: service = otSrpServerHostFindNextService(host, NULL, OT_SRP_SERVER_FLAGS_BASE_TYPE_SERVICE_ONLY, NULL, instanceName);
Detalhes | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||||||
Retorna |
Um ponteiro para o próximo serviço correspondente ou NULL, se nenhum serviço correspondente for encontrado.
|
OtSrpServerHostGetAddresses
const otIp6Address * otSrpServerHostGetAddresses( const otSrpServerHost *aHost, uint8_t *aAddressesNum )
Essa função retorna os endereços do host especificado.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
||||
Retorna |
Um ponteiro para a matriz de endereços IPv6.
|
OtSrpServerHostGetFullName
const char * otSrpServerHostGetFullName( const otSrpServerHost *aHost )
Essa função 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 )
Essa função retorna as informações de LEASE e KEY-LEASE de um determinado host.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
OtSrpServerHostGetNextService
const otSrpServerService * otSrpServerHostGetNextService( const otSrpServerHost *aHost, const otSrpServerService *aService )
Essa função retorna o próximo serviço (excluindo qualquer tipo de serviço) do host em questão.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
||||
Retorna |
Um ponteiro para o próximo serviço ou NULL se não houver mais serviços.
|
OtSrpServerHostIsExcluído
bool otSrpServerHostIsDeleted( const otSrpServerHost *aHost )
Essa função informa se o host de serviço SRP foi excluído.
Um host de serviço SRP pode ser excluído, mas mantém o nome dele para usos futuros. Nesse caso, a instância do host não é removida do servidor/registro SRP.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
||
Retorna |
Verdadeiro se o host tiver sido excluído. Caso contrário, será FALSO.
|
OtSrpServerIsAutoEnableMode
bool otSrpServerIsAutoEnableMode( otInstance *aInstance )
Esta função indica se o modo de ativação automática está ativado ou desativado.
Esta função requer o recurso OPENTHREAD_CONFIG_BORDER_ROUTING_ENABLE
.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
||||
Valores de retorno |
|
OtSrpServerServiceGetFullName
const char * otSrpServerServiceGetFullName( const otSrpServerService *aService )
Essa função retorna o nome completo da instância do serviço.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
||
Retorna |
Um ponteiro para a string de nome da instância de serviço com terminação nula.
|
OtSrpServerServiceGetHost
const otSrpServerHost * otSrpServerServiceGetHost( const otSrpServerService *aService )
Essa função retorna o host em que a instância de serviço reside.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
||
Retorna |
Um ponteiro para a instância do host.
|
OtSrpServerServiceGetInstanceName
const char * otSrpServerServiceGetInstanceName( const otSrpServerService *aService )
Essa função retorna o nome completo da instância 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 )
Essa função retorna as informações de LEASE e KEY-LEASE de um determinado serviço.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
OtSrpServerServiceGetPort
uint16_t otSrpServerServiceGetPort( const otSrpServerService *aService )
Essa função 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 )
Essa função 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 )
Essa função retorna o nome completo do serviço.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
||
Retorna |
Um ponteiro para a string de nome de serviço terminada em nulo.
|
OtSrpServerServiceGetServiceSubTypeLabel
otError otSrpServerServiceGetServiceSubTypeLabel( const otSrpServerService *aService, char *aLabel, uint8_t aMaxSize )
Essa função recebe o rótulo do subtipo do nome do serviço.
Ela é usada quando o aService
é um subtipo, ou seja, otSrpServerServiceIsSubType()
para o serviço retorna TRUE. Se não for um subtipo, esta função retornará OT_ERROR_INVALID_ARGS
.
O nome completo de um subtipo de serviço segue "
para o buffer aLabel
.
O aLabel
garante que seja sempre terminado em nulo após retornar mesmo em caso de falha.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||
Valores de retorno |
|
OtSrpServerServiceGetTtl
uint32_t otSrpServerServiceGetTtl( const otSrpServerService *aService )
Essa função 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 )
Essa função 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 tamanho dos dados TXT é retornado em
aDataLength . |
OtSrpServerServiceGetWeight
uint16_t otSrpServerServiceGetWeight( const otSrpServerService *aService )
Essa função retorna o peso da instância de serviço.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
||
Retorna |
O peso do serviço.
|
OtSrpServerServiceIsExcluído
bool otSrpServerServiceIsDeleted( const otSrpServerService *aService )
Esta função indica se o serviço SRP foi excluído ou não.
Um serviço SRP pode ser excluído, mas mantém o nome para usos futuros. Nesse caso, a instância de serviço não é removida do servidor/registro SRP. Todos os serviços serão excluídos se o host for excluído.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
||
Retorna |
Verdadeiro se o serviço tiver sido excluído. Caso contrário, é FALSO.
|
OtSrpServerServiceIsSubType
bool otSrpServerServiceIsSubType( const otSrpServerService *aService )
Essa função indica se o serviço SRP é um subtipo.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
||
Retorna |
VERDADEIRO se o serviço for um subtipo, FALSO se não for.
|
OtSrpServerSetAddressMode
otError otSrpServerSetAddressMode( otInstance *aInstance, otSrpServerAddressMode aMode )
Essa função 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 )
Essa função 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 )
Esta função ativa/desativa o modo de ativação automática no servidor SRP.
Esta função requer o recurso OPENTHREAD_CONFIG_BORDER_ROUTING_ENABLE
.
Quando esse modo está ativado, o Border Routing Manager controla se/quando ativar ou desativar o servidor SRP. O servidor SRP é ativado automaticamente se/quando o roteamento de borda é iniciado e é feito com o prefixo inicial e as configurações de rota (quando os prefixos OMR e on-link são determinados, anunciados na mensagem de publicidade do roteador emitido no lado da infraestrutura e publicados nos dados da rede Thread). O servidor SRP será desativado automaticamente se/quando a BR for interrompida (por exemplo, se a interface de rede da infraestrutura for desativada ou se a BR for removida).
Esse modo pode ser desativado por uma chamada de otSrpServerSetAutoEnableMode()
com aEnabled
definido como false
ou se o servidor SRP estiver explicitamente ativado ou desativado por uma chamada para a função de otSrpServerSetEnabled()
. Desativar o modo de ativação automática usando otSrpServerSetAutoEnableMode(false)
não vai mudar o estado atual do servidor de SRP (por exemplo, se estiver ativado, ele permanecerá ativado).
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
OtSrpServerSetDomain
otError otSrpServerSetDomain( otInstance *aInstance, const char *aDomain )
Essa função define o domínio no servidor SRP.
Um ponto final será anexado a aDomain
se ainda não estiver lá. Esta função só deve ser chamada antes da ativação do servidor SRP.
Detalhes | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||||
Valores de retorno |
|
OtSrpServerSetEnabled
void otSrpServerSetEnabled( otInstance *aInstance, bool aEnabled )
Esta função 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 )
Esta função define as configurações de servidor SRP LEASE e KEY-LEASE.
Quando um tempo de LEASE diferente de zero é solicitado de um cliente, o valor concedido é limitado no intervalo [aMinLease, aMaxLease], e um KEY-LEASE diferente de zero é concedido no intervalo [aMinKeyLease, aMaxKeyLease]. Para os horários zero LEASE ou KEY-LEASE, nenhum valor será atribuído.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
||||
Valores de retorno |
|
OtSrpServerSetServiceUpdateHandler
void otSrpServerSetServiceUpdateHandler( otInstance *aInstance, otSrpServerServiceUpdateHandler aServiceHandler, void *aContext )
Essa função define o gerenciador de atualizações do serviço SRP no servidor SRP.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
OtSrpServerSetTtlConfig
otError otSrpServerSetTtlConfig( otInstance *aInstance, const otSrpServerTtlConfig *aTtlConfig )
Esta função define a configuração do TTL do servidor SRP.
O TTL concedido sempre será maior que o intervalo máximo de locação 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 provenientes do código-fonte, disponível no GitHub. Para saber mais ou contribuir com nossa documentação, consulte Recursos.