SRP

Questo modulo include funzioni che controllano il comportamento del client SRP.

Riepilogo

Questo modulo include le funzioni del protocollo di registrazione dei servizi.

Questo modulo include funzioni per i buffer client SRP e il pool di servizi.

Le funzioni in questo modulo sono disponibili solo quando è abilitata la funzione OPENTHREAD_CONFIG_SRP_CLIENT_BUFFERS_ENABLE.

Enumerazioni

otSrpClientItemState{
  OT_SRP_CLIENT_ITEM_STATE_TO_ADD,
  OT_SRP_CLIENT_ITEM_STATE_ADDING,
  OT_SRP_CLIENT_ITEM_STATE_TO_REFRESH,
  OT_SRP_CLIENT_ITEM_STATE_REFRESHING,
  OT_SRP_CLIENT_ITEM_STATE_TO_REMOVE,
  OT_SRP_CLIENT_ITEM_STATE_REMOVING,
  OT_SRP_CLIENT_ITEM_STATE_REGISTERED,
  OT_SRP_CLIENT_ITEM_STATE_REMOVED
}
enum
Specifica lo stato di un elemento client SRP (informazioni su servizio o host).
otSrpServerAddressMode{
  OT_SRP_SERVER_ADDRESS_MODE_UNICAST = 0,
  OT_SRP_SERVER_ADDRESS_MODE_ANYCAST = 1
}
enum
Rappresenta la modalità indirizzo utilizzata dal server SRP.
otSrpServerState{
  OT_SRP_SERVER_STATE_DISABLED = 0,
  OT_SRP_SERVER_STATE_RUNNING = 1,
  OT_SRP_SERVER_STATE_STOPPED = 2
}
enum
Rappresenta lo stato del server SRP.

Typedef

otSrpClientAutoStartCallback)(const otSockAddr *aServerSockAddr, void *aContext) typedef
void(*
Il tipo di puntatore definisce il callback utilizzato dal client SRP per notificare all'utente quando viene avviato automaticamente o arrestato.
otSrpClientBuffersServiceEntry typedef
Rappresenta una voce del pool di servizi client SRP.
otSrpClientCallback)(otError aError, const otSrpClientHostInfo *aHostInfo, const otSrpClientService *aServices, const otSrpClientService *aRemovedServices, void *aContext) typedef
void(*
Il tipo di puntatore definisce il callback utilizzato dal client SRP per notificare all'utente modifiche/eventi/errori.
otSrpClientHostInfo typedef
Rappresenta le informazioni relative all'host di un client SRP.
otSrpClientService typedef
Rappresenta un servizio client SRP.
otSrpServerAddressMode typedef
Rappresenta la modalità indirizzo utilizzata dal server SRP.
otSrpServerHost typedef
Questo tipo opaco rappresenta un host di servizio SRP.
otSrpServerLeaseConfig typedef
Include configurazioni LEASE del server SRP e KEY-LEASE.
otSrpServerLeaseInfo typedef
Include informazioni sul lease del server SRP di un host/servizio.
otSrpServerResponseCounters typedef
Include le statistiche delle risposte del server SRP.
otSrpServerService typedef
Questo tipo opaco rappresenta un servizio SRP.
otSrpServerServiceUpdateHandler)(otSrpServerServiceUpdateId aId, const otSrpServerHost *aHost, uint32_t aTimeout, void *aContext) typedef
void(*
Gestisce gli aggiornamenti del servizio SRP.
otSrpServerServiceUpdateId typedef
uint32_t
L'ID di una transazione di aggiornamento di un servizio SRP sul server SRP.
otSrpServerTtlConfig typedef
Include le configurazioni TTL del server SRP.

Funzioni

otSrpClientAddService(otInstance *aInstance, otSrpClientService *aService)
Aggiunge un servizio da registrare con il server.
otSrpClientBuffersAllocateService(otInstance *aInstance)
Alloca una nuova voce di servizio dal pool.
otSrpClientBuffersFreeAllServices(otInstance *aInstance)
void
Consente di liberare tutte le voci di servizio allocate in precedenza.
otSrpClientBuffersFreeService(otInstance *aInstance, otSrpClientBuffersServiceEntry *aService)
void
Libera una voce di servizio allocata in precedenza.
otSrpClientBuffersGetHostAddressesArray(otInstance *aInstance, uint8_t *aArrayLength)
Restituisce l'array di voci di indirizzi IPv6 da utilizzare come elenco di indirizzi dell'host del client SRP.
otSrpClientBuffersGetHostNameString(otInstance *aInstance, uint16_t *aSize)
char *
Restituisce il buffer di stringa da utilizzare per il nome host del client SRP.
otSrpClientBuffersGetServiceEntryInstanceNameString(otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize)
char *
Restituisce il buffer di stringhe per il nome dell'istanza di servizio da una voce di servizio.
otSrpClientBuffersGetServiceEntryServiceNameString(otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize)
char *
Restituisce il buffer di stringhe per il nome del servizio da una voce di servizio.
otSrpClientBuffersGetServiceEntryTxtBuffer(otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize)
uint8_t *
Restituisce il buffer per il record TXT da una voce di servizio.
otSrpClientBuffersGetSubTypeLabelsArray(otSrpClientBuffersServiceEntry *aEntry, uint16_t *aArrayLength)
const char **
Restituisce l'array per le etichette di sottotipo di servizio dalla voce di servizio.
otSrpClientClearHostAndServices(otInstance *aInstance)
void
Cancella tutte le informazioni sull'host e tutti i servizi.
otSrpClientClearService(otInstance *aInstance, otSrpClientService *aService)
Cancella un servizio, rimuovendolo immediatamente dall'elenco dei servizi client.
otSrpClientDisableAutoStartMode(otInstance *aInstance)
void
Disattiva la modalità di avvio automatico.
otSrpClientEnableAutoHostAddress(otInstance *aInstance)
Consente di attivare la modalità automatica degli indirizzi dell'host.
otSrpClientEnableAutoStartMode(otInstance *aInstance, otSrpClientAutoStartCallback aCallback, void *aContext)
void
Consente di attivare la modalità di avvio automatico.
otSrpClientGetDomainName(otInstance *aInstance)
const char *
Restituisce il nome di dominio utilizzato dal client SRP.
otSrpClientGetHostInfo(otInstance *aInstance)
Recupera le informazioni sull'host.
otSrpClientGetKeyLeaseInterval(otInstance *aInstance)
uint32_t
Restituisce l'intervallo di lease della chiave predefinito utilizzato nelle richieste di aggiornamento SRP.
otSrpClientGetLeaseInterval(otInstance *aInstance)
uint32_t
Restituisce l'intervallo di lease predefinito utilizzato nelle richieste di aggiornamento SRP.
otSrpClientGetServerAddress(otInstance *aInstance)
const otSockAddr *
Restituisce l'indirizzo del socket (indirizzo IPv6 e numero di porta) del server SRP utilizzato dal client SRP.
otSrpClientGetServices(otInstance *aInstance)
Restituisce l'elenco dei servizi gestiti dal client.
otSrpClientGetTtl(otInstance *aInstance)
uint32_t
Restituisce il valore TTL in ogni record incluso nelle richieste di aggiornamento SRP.
otSrpClientIsAutoStartModeEnabled(otInstance *aInstance)
bool
Indica lo stato corrente della modalità di avvio automatico (attivata o disattivata).
otSrpClientIsRunning(otInstance *aInstance)
bool
Indica se il client SRP è in esecuzione o meno.
otSrpClientIsServiceKeyRecordEnabled(otInstance *aInstance)
bool
Indica se la modalità "Inclusione del record della chiave di servizio" è attivata o disattivata.
otSrpClientItemStateToString(otSrpClientItemState aItemState)
const char *
Converte otSrpClientItemState in stringa.
otSrpClientRemoveHostAndServices(otInstance *aInstance, bool aRemoveKeyLease, bool aSendUnregToServer)
Avvia la procedura di rimozione delle informazioni dell'host e di tutti i servizi.
otSrpClientRemoveService(otInstance *aInstance, otSrpClientService *aService)
Richiede l'annullamento della registrazione di un servizio sul server.
otSrpClientSetCallback(otInstance *aInstance, otSrpClientCallback aCallback, void *aContext)
void
Imposta il callback per notificare al chiamante di eventi/modifiche dal client SRP.
otSrpClientSetDomainName(otInstance *aInstance, const char *aName)
Imposta il nome di dominio che deve essere utilizzato dal client SRP.
otSrpClientSetHostAddresses(otInstance *aInstance, const otIp6Address *aIp6Addresses, uint8_t aNumAddresses)
Imposta/aggiorna l'elenco degli indirizzi IPv6 dell'host.
otSrpClientSetHostName(otInstance *aInstance, const char *aName)
Imposta l'etichetta del nome host.
otSrpClientSetKeyLeaseInterval(otInstance *aInstance, uint32_t aInterval)
void
Consente di impostare l'intervallo di lease predefinito delle chiavi utilizzato nelle richieste di aggiornamento SRP.
otSrpClientSetLeaseInterval(otInstance *aInstance, uint32_t aInterval)
void
Imposta l'intervallo di lease predefinito utilizzato nelle richieste di aggiornamento SRP.
otSrpClientSetServiceKeyRecordEnabled(otInstance *aInstance, bool aEnabled)
void
Attiva/disattiva la modalità "Inclusione di record chiave di servizio".
otSrpClientSetTtl(otInstance *aInstance, uint32_t aTtl)
void
Imposta il valore TTL in ogni record incluso nelle richieste di aggiornamento SRP.
otSrpClientStart(otInstance *aInstance, const otSockAddr *aServerSockAddr)
Avvia l'operazione del client SRP.
otSrpClientStop(otInstance *aInstance)
void
Arresta l'operazione del client SRP.
otSrpServerGetAddressMode(otInstance *aInstance)
Restituisce la modalità indirizzo utilizzata dal server SRP.
otSrpServerGetAnycastModeSequenceNumber(otInstance *aInstance)
uint8_t
Restituisce il numero di sequenza utilizzato con la modalità indirizzo anycast.
otSrpServerGetDomain(otInstance *aInstance)
const char *
Restituisce il dominio autorizzato al server SRP.
otSrpServerGetLeaseConfig(otInstance *aInstance, otSrpServerLeaseConfig *aLeaseConfig)
void
Restituisce le configurazioni LEASE e KEY-LEASE del server SRP.
otSrpServerGetNextHost(otInstance *aInstance, const otSrpServerHost *aHost)
const otSrpServerHost *
Restituisce il successivo host registrato sul server SRP.
otSrpServerGetPort(otInstance *aInstance)
uint16_t
Restituisce la porta su cui il server SRP è in ascolto.
otSrpServerGetResponseCounters(otInstance *aInstance)
Restituisce i contatori di risposte del server SRP.
otSrpServerGetState(otInstance *aInstance)
Restituisce lo stato del server SRP.
otSrpServerGetTtlConfig(otInstance *aInstance, otSrpServerTtlConfig *aTtlConfig)
void
Restituisce la configurazione TTL del server SRP.
otSrpServerHandleServiceUpdateResult(otInstance *aInstance, otSrpServerServiceUpdateId aId, otError aError)
void
Indica il risultato dell'elaborazione di un aggiornamento SRP al server SRP.
otSrpServerHostGetAddresses(const otSrpServerHost *aHost, uint8_t *aAddressesNum)
const otIp6Address *
Restituisce gli indirizzi dell'host specificato.
otSrpServerHostGetFullName(const otSrpServerHost *aHost)
const char *
Restituisce il nome completo dell'host.
otSrpServerHostGetLeaseInfo(const otSrpServerHost *aHost, otSrpServerLeaseInfo *aLeaseInfo)
void
Restituisce le informazioni LEASE e KEY-LEASE di un host specifico.
otSrpServerHostGetNextService(const otSrpServerHost *aHost, const otSrpServerService *aService)
Restituisce il servizio successivo dell'host specificato.
otSrpServerHostIsDeleted(const otSrpServerHost *aHost)
bool
Indica se l'host del servizio SRP è stato eliminato.
otSrpServerHostMatchesFullName(const otSrpServerHost *aHost, const char *aFullName)
bool
Indica se l'host corrisponde a un determinato nome host.
otSrpServerIsAutoEnableMode(otInstance *aInstance)
bool
Indica se la modalità di attivazione automatica è attivata o disattivata.
otSrpServerParseSubTypeServiceName(const char *aSubTypeServiceName, char *aLabel, uint8_t aLabelSize)
Analizza il nome del servizio di un sottotipo (nome completo) ed estrae l'etichetta del sottotipo.
otSrpServerServiceGetHost(const otSrpServerService *aService)
const otSrpServerHost *
Restituisce l'host in cui risiede l'istanza di servizio.
otSrpServerServiceGetInstanceLabel(const otSrpServerService *aService)
const char *
Restituisce l'etichetta dell'istanza di servizio (la prima etichetta nel nome dell'istanza) del servizio.
otSrpServerServiceGetInstanceName(const otSrpServerService *aService)
const char *
Restituisce il nome completo dell'istanza di servizio del servizio.
otSrpServerServiceGetLeaseInfo(const otSrpServerService *aService, otSrpServerLeaseInfo *aLeaseInfo)
void
Restituisce le informazioni LEASE e KEY-LEASE di un determinato servizio.
otSrpServerServiceGetNumberOfSubTypes(const otSrpServerService *aService)
uint16_t
Restituisce il numero di sottotipi di servizio.
otSrpServerServiceGetPort(const otSrpServerService *aService)
uint16_t
Restituisce la porta dell'istanza di servizio.
otSrpServerServiceGetPriority(const otSrpServerService *aService)
uint16_t
Restituisce la priorità dell'istanza di servizio.
otSrpServerServiceGetServiceName(const otSrpServerService *aService)
const char *
Restituisce il nome completo del servizio.
otSrpServerServiceGetSubTypeServiceNameAt(const otSrpServerService *aService, uint16_t aIndex)
const char *
Restituisce il nome del sottotipo (nome completo) del servizio in un determinato indice.
otSrpServerServiceGetTtl(const otSrpServerService *aService)
uint32_t
Restituisce il TTL dell'istanza di servizio.
otSrpServerServiceGetTxtData(const otSrpServerService *aService, uint16_t *aDataLength)
const uint8_t *
Restituisce i dati del record TXT dell'istanza di servizio.
otSrpServerServiceGetWeight(const otSrpServerService *aService)
uint16_t
Restituisce il peso dell'istanza di servizio.
otSrpServerServiceHasSubTypeServiceName(const otSrpServerService *aService, const char *aSubTypeServiceName)
bool
Indica se il servizio ha un determinato sottotipo.
otSrpServerServiceIsDeleted(const otSrpServerService *aService)
bool
Indica se il servizio SRP è stato eliminato o meno.
otSrpServerServiceMatchesInstanceName(const otSrpServerService *aService, const char *aInstanceName)
bool
Indica se questo servizio corrisponde a un determinato nome di istanza di servizio.
otSrpServerServiceMatchesServiceName(const otSrpServerService *aService, const char *aServiceName)
bool
Indica se il servizio corrisponde a un determinato nome di servizio.
otSrpServerSetAddressMode(otInstance *aInstance, otSrpServerAddressMode aMode)
Imposta la modalità di indirizzo che il server SRP deve utilizzare.
otSrpServerSetAnycastModeSequenceNumber(otInstance *aInstance, uint8_t aSequenceNumber)
Imposta il numero di sequenza utilizzato con la modalità indirizzo anycast.
otSrpServerSetAutoEnableMode(otInstance *aInstance, bool aEnabled)
void
Attiva/disattiva la modalità di attivazione automatica sul server SRP.
otSrpServerSetDomain(otInstance *aInstance, const char *aDomain)
Imposta il dominio sul server SRP.
otSrpServerSetEnabled(otInstance *aInstance, bool aEnabled)
void
Attiva/disattiva il server SRP.
otSrpServerSetLeaseConfig(otInstance *aInstance, const otSrpServerLeaseConfig *aLeaseConfig)
Imposta le configurazioni LEASE e KEY-LEASE del server SRP.
otSrpServerSetServiceUpdateHandler(otInstance *aInstance, otSrpServerServiceUpdateHandler aServiceHandler, void *aContext)
void
Imposta il gestore degli aggiornamenti del servizio SRP sul server SRP.
otSrpServerSetTtlConfig(otInstance *aInstance, const otSrpServerTtlConfig *aTtlConfig)
Imposta la configurazione TTL del server SRP.

Strutture

otSrpClientBuffersServiceEntry

Rappresenta una voce del pool di servizi client SRP.

otSrpClientHostInfo

Rappresenta le informazioni relative all'host di un client SRP.

otSrpClientService

Rappresenta un servizio client SRP.

otSrpServerLeaseConfig

Include configurazioni LEASE del server SRP e KEY-LEASE.

otSrpServerLeaseInfo

Include informazioni sul lease del server SRP di un host/servizio.

otSrpServerResponseCounters

Include le statistiche delle risposte del server SRP.

otSrpServerTtlConfig

Include le configurazioni TTL del server SRP.

Enumerazioni

otSrpClientItemState

 otSrpClientItemState

Specifica lo stato di un elemento client SRP (informazioni su servizio o host).

Proprietà
OT_SRP_CLIENT_ITEM_STATE_ADDING

L'elemento è in fase di aggiunta/registrazione.

OT_SRP_CLIENT_ITEM_STATE_REFRESHING

L'elemento è in fase di aggiornamento.

OT_SRP_CLIENT_ITEM_STATE_REGISTERED

L'elemento è registrato sul server.

OT_SRP_CLIENT_ITEM_STATE_REMOVED

Elemento rimosso.

OT_SRP_CLIENT_ITEM_STATE_REMOVING

È in corso la rimozione dell'elemento.

OT_SRP_CLIENT_ITEM_STATE_TO_ADD

Elemento da aggiungere/registrare.

OT_SRP_CLIENT_ITEM_STATE_TO_REFRESH

Elemento da aggiornare (registra nuovamente per rinnovare l'affitto).

OT_SRP_CLIENT_ITEM_STATE_TO_REMOVE

Elemento da rimuovere.

otSrpServerAddressMode

 otSrpServerAddressMode

Rappresenta la modalità indirizzo utilizzata dal server SRP.

La modalità indirizzo specifica il modo in cui l'indirizzo e il numero di porta vengono determinati dal server SRP e come queste informazioni vengono pubblicate nei dati di rete Thread.

Proprietà
OT_SRP_SERVER_ADDRESS_MODE_ANYCAST

Modalità indirizzo Anycast.

OT_SRP_SERVER_ADDRESS_MODE_UNICAST

Modalità indirizzo Unicast.

otSrpServerState

 otSrpServerState

Rappresenta lo stato del server SRP.

Proprietà
OT_SRP_SERVER_STATE_DISABLED

Il server SRP è disattivato.

OT_SRP_SERVER_STATE_RUNNING

Il server SRP è attivo e in esecuzione.

OT_SRP_SERVER_STATE_STOPPED

Il server SRP è attivo ma arrestato.

Typedef

otSrpClientAutoStartCallback

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

Il tipo di puntatore definisce il callback utilizzato dal client SRP per notificare all'utente quando viene avviato automaticamente o arrestato.

Viene utilizzato solo quando la funzionalità di avvio automatico OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE è abilitata.

Questo callback viene attivato quando è attivata la modalità di avvio automatico e il client SRP viene avviato o arrestato automaticamente.

Dettagli
Parametri
[in] aServerSockAddr
Un puntatore non NULL indica che il server SRP è stato avviato e il puntatore fornisce l'indirizzo del socket del server selezionato. Un puntatore NULL indica che il server SRP è stato arrestato.
[in] aContext
Un puntatore a un contesto arbitrario (fornito al momento della registrazione del callback).

otSrpClientBuffersServiceEntry

struct otSrpClientBuffersServiceEntry otSrpClientBuffersServiceEntry

Rappresenta una voce del pool di servizi client SRP.

otSrpClientCallback

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

Il tipo di puntatore definisce il callback utilizzato dal client SRP per notificare all'utente modifiche/eventi/errori.

Questo callback viene richiamato in caso di riuscita della registrazione di un aggiornamento (ad es. aggiunta/rimozione di informazioni host e/o alcuni servizi) con il server SRP o in caso di errore o errore (ad esempio, il server rifiuta una richiesta di aggiornamento o si verifica un timeout del client in attesa di risposta e così via).

In caso di esito positivo della nuova registrazione di un aggiornamento, il parametro aError corrisponde a OT_ERROR_NONE e vengono fornite le informazioni sull'host e l'elenco completo dei servizi come parametri di input per il callback. Tieni presente che i servizi e le informazioni dell'host monitorano ciascuno il proprio stato nella variabile membro mState corrispondente della struttura dei dati correlata (lo stato che indica se le informazioni/servizio host sono registrati o rimossi, oppure vengono ancora aggiunti/rimossi e così via).

L'elenco dei servizi rimossi viene passato come elenco collegato aRemovedServices nel callback. Tieni presente che, quando viene richiamato il callback, il client SRP (implementazione OpenThread) esegue le istanze di servizio rimosse elencate in aRemovedServices e non le monitora/le memorizza più (ad esempio, se dal callback viene chiamato otSrpClientGetServices() i servizi rimossi non saranno presenti nell'elenco restituito). Fornire un elenco separato dei servizi rimossi nel callback aiuta a indicare all'utente quali elementi sono stati rimossi e consente all'utente di rivendicare/riutilizzare le istanze.

Se il server rifiuta una richiesta di aggiornamento SRP, il codice di risposta DNS (RFC 2136) viene mappato agli errori seguenti:

  • (0) NOERROR Riuscito (nessuna condizione di errore) -> OT_ERROR_NONE
  • (1) Il server FORMERR non è in grado di interpretare a causa di un errore di formato -> OT_ERROR_PARSE
  • (2) Il server SERVFAIL ha riscontrato un errore interno -> OT_ERROR_FAILED
  • (3) Nome NXDOMAIN che dovrebbe esistere, inesistente -> OT_ERROR_NOT_FOUND
  • (4) Il server NOTIMP non supporta il tipo di query (OpCode) -> OT_ERROR_NOT_IMPLEMENTED
  • (5) RIFIUTATO Server rifiutato per motivi di sicurezza/politica -> OT_ERROR_WARNING
  • (6) YXDOMAIN Un nome che non dovrebbe esistere esiste -> OT_ERROR_DUPLICATED
  • (7) YXRRSET Un RRset che non dovrebbe esistere esiste -> OT_ERROR_DUPLICATED
  • (8) NXRRSET Qualche RRset che dovrebbe esistere, non esiste -> OT_ERROR_NOT_FOUND
  • (9) Il servizio NOTAUTH non è autorevole per la zona -> OT_ERROR_LEFT
  • (10) NOTZONE Un nome non è nella zona -> OT_ERROR_PARSE
  • (20) BADNAME Nome errato -> OT_ERROR_PARSE
  • (21) BADALG Algoritmo non valido -> OT_ERROR_WARNING
  • (22) BADTRUN Troncamento errato -> OT_ERROR_PARSE
  • Altri codici di risposta -> OT_ERROR_FAILED

Si possono verificare anche i seguenti errori:

  • OT_ERROR_ANSWER_TIMEOUT : timeout di attesa della risposta del server (il client continua a riprovare).
  • OT_ERROR_INVALID_ARGS : la struttura di servizio specificata non è valida (ad esempio, nome di servizio non valido o otDnsTxtEntry).
  • OT_ERROR_NO_BUFS : buffer insufficiente per preparare o inviare il messaggio di aggiornamento.

Tieni presente che, in caso di errore, il client continua l'operazione, ovvero prepara e (ri)trasmette al server il messaggio di aggiornamento SRP dopo un certo intervallo di attesa. L'intervallo di attesa per i nuovi tentativi parte dal valore minimo ed è aumentato del fattore di crescita per ogni errore fino al valore massimo (per maggiori dettagli, consulta il parametro di configurazione OPENTHREAD_CONFIG_SRP_CLIENT_MIN_RETRY_WAIT_INTERVAL e quelli correlati).

Dettagli
Parametri
[in] aError
L'errore (vedi sopra).
[in] aHostInfo
Un puntatore alle informazioni sull'host.
[in] aServices
L'intestazione dell'elenco collegato contenente tutti i servizi (esclusi quelli rimossi). NULL se l'elenco è vuoto.
[in] aRemovedServices
L'intestazione dell'elenco collegato contenente tutti i servizi rimossi. NULL se l'elenco è vuoto.
[in] aContext
Un puntatore a un contesto arbitrario (fornito al momento della registrazione del callback).

otSrpClientHostInfo

struct otSrpClientHostInfo otSrpClientHostInfo

Rappresenta le informazioni relative all'host di un client SRP.

otSrpClientService

struct otSrpClientService otSrpClientService

Rappresenta un servizio client SRP.

I valori in questa struttura, inclusi i buffer delle stringhe per i nomi e le voci del record TXT, DEVONO rimanere costanti e rimanere costanti dopo che un'istanza di questa struttura viene passata a OpenThread da otSrpClientAddService() o otSrpClientRemoveService().

I campi mState, mData e mNext sono utilizzati/gestiti solo dal core OT. Il loro valore viene ignorato quando viene trasmessa un'istanza di otSrpClientService in otSrpClientAddService(), otSrpClientRemoveService() o altre funzioni. Il chiamante non deve impostare questi campi.

I campi mLease e mKeyLease specificano gli intervalli di lease e di lease delle chiavi desiderati per questo servizio. Il valore zero indica che l'intervallo non è specificato e che per questo servizio vengono utilizzati gli intervalli di lease predefiniti o di lease della chiave da otSrpClientGetLeaseInterval() e otSrpClientGetKeyLeaseInterval(). Se l'intervallo di lease della chiave (impostato esplicitamente o determinato dal valore predefinito) è più breve dell'intervallo di lease per un servizio, il client SRP riutilizzerà il valore dell'intervallo di lease anche per l'intervallo di lease della chiave. Ad esempio, se nel servizio mLease è impostato esplicitamente su 2 giorni e mKeyLease è impostato su zero e il lease della chiave predefinito è impostato su 1 giorno, quando si registra questo servizio, anche il lease della chiave richiesto per questo servizio è impostato su 2 giorni.

otSrpServerAddressMode

enum otSrpServerAddressMode otSrpServerAddressMode

Rappresenta la modalità indirizzo utilizzata dal server SRP.

La modalità indirizzo specifica il modo in cui l'indirizzo e il numero di porta vengono determinati dal server SRP e come queste informazioni vengono pubblicate nei dati di rete Thread.

otSrpServerHost

struct otSrpServerHost otSrpServerHost

Questo tipo opaco rappresenta un host di servizio SRP.

otSrpServerLeaseConfig

struct otSrpServerLeaseConfig otSrpServerLeaseConfig

Include configurazioni LEASE del server SRP e KEY-LEASE.

otSrpServerLeaseInfo

struct otSrpServerLeaseInfo otSrpServerLeaseInfo

Include informazioni sul lease del server SRP di un host/servizio.

otSrpServerResponseCounters

struct otSrpServerResponseCounters otSrpServerResponseCounters

Include le statistiche delle risposte del server SRP.

otSrpServerService

struct otSrpServerService otSrpServerService

Questo tipo opaco rappresenta un servizio SRP.

otSrpServerServiceUpdateHandler

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

Gestisce gli aggiornamenti del servizio SRP.

Viene chiamato dal server SRP per notificare che un host SRP ed eventualmente servizi SRP sono in fase di aggiornamento. È importante che gli aggiornamenti SRP non vengano commit fino a quando il gestore non restituisce il risultato chiamando otSrpServerHandleServiceUpdateResult o fino al timeout dopo il giorno aTimeout.

Un osservatore del servizio SRP deve sempre chiamare otSrpServerHandleServiceUpdateResult con il codice di errore OT_ERROR_NONE subito dopo aver ricevuto gli eventi di aggiornamento.

Un gestore più generico potrebbe eseguire convalide sull'host o sui servizi SRP e rifiutare gli aggiornamenti SRP in caso di errori di convalida. Ad esempio, un proxy pubblicitario deve pubblicizzare (o rimuovere) l'host e i servizi su un link compatibile con multicast e restituire un codice di errore specifico in caso di errore.

Dettagli
Parametri
[in] aId
L'ID transazione dell'aggiornamento del servizio. Questo ID deve essere restituito con otSrpServerHandleServiceUpdateResult.
[in] aHost
Un puntatore all'oggetto otSrpServerHost che contiene gli aggiornamenti SRP. Il gestore deve pubblicare/annullare la pubblicazione dell'host e ogni servizio rimanda a questo host con le regole seguenti:
  1. Se l'host non viene eliminato (indicato da otSrpServerHostIsDeleted), deve essere pubblicato o aggiornato con mDNS. In caso contrario, la pubblicazione dell'host dovrebbe essere annullata (rimuovere gli RR AAAA).
  2. La pubblicazione di ogni servizio che rimanda a questo host deve essere annullata se l'host non può essere pubblicato. In caso contrario, il gestore dovrebbe pubblicare o aggiornare il servizio quando non viene eliminato (indicato da otSrpServerServiceIsDeleted) e annullare la pubblicazione quando viene eliminato.
[in] aTimeout
Il tempo massimo in millisecondi impiegato dal gestore per elaborare l'evento del servizio.
[in] aContext
Un puntatore al contesto specifico dell'applicazione.
Vedi anche:
otSrpServerSetServiceUpdateHandler
otSrpServerHandleServiceUpdateResult

otSrpServerServiceUpdateId

uint32_t otSrpServerServiceUpdateId

L'ID di una transazione di aggiornamento di un servizio SRP sul server SRP.

otSrpServerTtlConfig

struct otSrpServerTtlConfig otSrpServerTtlConfig

Include le configurazioni TTL del server SRP.

Funzioni

otSrpClientAddService

otError otSrpClientAddService(
  otInstance *aInstance,
  otSrpClientService *aService
)

Aggiunge un servizio da registrare con il server.

Dopo una chiamata a questa funzione riuscita, otSrpClientCallback verrà chiamato per segnalare lo stato dell'aggiunta o della registrazione del servizio con il server SRP.

L'istanza otSrpClientService a cui punta aService DEVE rimanere invariata dopo il ritorno da questa funzione (con OT_ERROR_NONE). OpenThread salverà il puntatore nell'istanza di servizio.

L'istanza otSrpClientService non è più monitorata da OpenThread e può essere rivendicata solo quando

Dettagli
Parametri
[in] aInstance
Un puntatore all'istanza OpenThread.
[in] aService
Un puntatore a un'istanza otSrpClientService da aggiungere.
Valori restituiti
OT_ERROR_NONE
Aggiunta del servizio avviata correttamente. otSrpClientCallback verrà chiamato per segnalare lo stato.
OT_ERROR_ALREADY
Nell'elenco è già presente un servizio con gli stessi nomi di servizio e istanze.
OT_ERROR_INVALID_ARGS
La struttura del servizio non è valida (ad esempio, un nome di servizio non valido o otDnsTxtEntry).

otSrpClientBuffersAllocateService

otSrpClientBuffersServiceEntry * otSrpClientBuffersAllocateService(
  otInstance *aInstance
)

Alloca una nuova voce di servizio dal pool.

L'istanza di voce di servizio restituita verrà inizializzata come segue:

  • mService.mName punterà a un buffer di stringa allocato, che può essere recuperato utilizzando la funzione otSrpClientBuffersGetServiceEntryServiceNameString().
  • mService.mInstanceName punterà a un buffer di stringa allocato, che può essere recuperato utilizzando la funzione otSrpClientBuffersGetServiceEntryInstanceNameString().
  • mService.mSubTypeLabels rimanda a un array restituito da otSrpClientBuffersGetSubTypeLabelsArray().
  • mService.mTxtEntries indirizzerà a mTxtEntry.
  • mService.mNumTxtEntries verrà impostato su 1.
  • Altri campi mService (porta, priorità, peso) sono impostati su zero.
  • mTxtEntry.mKey è impostato su NULL (il valore viene considerato già codificato).
  • mTxtEntry.mValue punterà a un buffer allocato che può essere recuperato utilizzando la funzione otSrpClientBuffersGetServiceEntryTxtBuffer().
  • mTxtEntry.mValueLength è impostato su zero.
  • Tutti gli array e i buffer di dati/stringhe correlati vengono cancellati a zero.

Dettagli
Parametri
[in] aInstance
Un puntatore all'istanza OpenThread.
Restituisce
Un puntatore alla voce di servizio appena allocata o NULL se non è disponibile un'altra voce nel pool.

otSrpClientBuffersFreeAllServices

void otSrpClientBuffersFreeAllServices(
  otInstance *aInstance
)

Consente di liberare tutte le voci di servizio allocate in precedenza.

Dettagli
Parametri
[in] aInstance
Un puntatore all'istanza OpenThread.

otSrpClientBuffersFreeService

void otSrpClientBuffersFreeService(
  otInstance *aInstance,
  otSrpClientBuffersServiceEntry *aService
)

Libera una voce di servizio allocata in precedenza.

aService DEVE essere allocato in precedenza utilizzando otSrpClientBuffersAllocateService() e non deve essere ancora liberato. In caso contrario, il comportamento di questa funzione non è definito.

Dettagli
Parametri
[in] aInstance
Un puntatore all'istanza OpenThread.
[in] aService
Un puntatore alla voce del servizio senza costi (NON DEVE essere NULL).

otSrpClientBuffersGetHostAddressesArray

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

Restituisce l'array di voci di indirizzi IPv6 da utilizzare come elenco di indirizzi dell'host del client SRP.

Dettagli
Parametri
[in] aInstance
Un puntatore all'istanza OpenThread.
[out] aArrayLength
Puntatore a una variabile per restituire la lunghezza dell'array, ad esempio il numero di voci di indirizzi IPv6 nell'array (NON DEVE essere NULL).
Restituisce
Un puntatore a un array di otIp6Address voci (il numero di voci viene restituito in aArrayLength).

otSrpClientBuffersGetHostNameString

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

Restituisce il buffer di stringa da utilizzare per il nome host del client SRP.

Dettagli
Parametri
[in] aInstance
Un puntatore all'istanza OpenThread.
[out] aSize
Puntare a una variabile per restituire la dimensione (numero di byte) del buffer della stringa (NON DEVE essere NULL).
Restituisce
Un puntatore al buffer di caratteri da utilizzare per il nome host del client SRP.

otSrpClientBuffersGetServiceEntryInstanceNameString

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

Restituisce il buffer di stringhe per il nome dell'istanza di servizio da una voce di servizio.

Dettagli
Parametri
[in] aEntry
Un puntatore a una voce di servizio allocata in precedenza (NON DEVE essere NULL).
[out] aSize
Un puntatore a una variabile per restituire la dimensione (numero di byte) del buffer della stringa (NON DEVE essere NULL).
Restituisce
Un puntatore al buffer della stringa.

otSrpClientBuffersGetServiceEntryServiceNameString

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

Restituisce il buffer di stringhe per il nome del servizio da una voce di servizio.

Dettagli
Parametri
[in] aEntry
Un puntatore a una voce di servizio allocata in precedenza (NON DEVE essere NULL).
[out] aSize
Un puntatore a una variabile per restituire la dimensione (numero di byte) del buffer della stringa (NON DEVE essere NULL).
Restituisce
Un puntatore al buffer della stringa.

otSrpClientBuffersGetServiceEntryTxtBuffer

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

Restituisce il buffer per il record TXT da una voce di servizio.

Dettagli
Parametri
[in] aEntry
Un puntatore a una voce di servizio allocata in precedenza (NON DEVE essere NULL).
[out] aSize
Un puntatore a una variabile per restituire la dimensione (numero di byte) del buffer (NON DEVE essere NULL).
Restituisce
Un puntatore al buffer.

otSrpClientBuffersGetSubTypeLabelsArray

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

Restituisce l'array per le etichette di sottotipo di servizio dalla voce di servizio.

Dettagli
Parametri
[in] aEntry
Un puntatore a una voce di servizio allocata in precedenza (NON DEVE essere NULL).
[out] aArrayLength
Un puntatore a una variabile per restituire la lunghezza dell'array (NON DEVE essere NULL).
Restituisce
Un puntatore all'array.

otSrpClientClearHostAndServices

void otSrpClientClearHostAndServices(
  otInstance *aInstance
)

Cancella tutte le informazioni sull'host e tutti i servizi.

A differenza di otSrpClientRemoveHostAndServices(), che invia un messaggio di aggiornamento al server per rimuovere tutte le informazioni, questa funzione cancella tutte le informazioni immediatamente senza alcuna interazione con il server.

Dettagli
Parametri
[in] aInstance
Un puntatore all'istanza OpenThread.

otSrpClientClearService

otError otSrpClientClearService(
  otInstance *aInstance,
  otSrpClientService *aService
)

Cancella un servizio, rimuovendolo immediatamente dall'elenco dei servizi client.

A differenza di otSrpClientRemoveService(), che invia un messaggio di aggiornamento al server per rimuovere il servizio, questa funzione cancella il servizio dall'elenco dei servizi del client senza alcuna interazione con il server. Dopo una chiamata a questa funzione riuscita, il otSrpClientCallback NON verrà chiamato e la voce aService può essere subito recuperata e riutilizzata dal chiamante.

Può essere utilizzato insieme a una chiamata successiva a otSrpClientAddService() (riutilizzo potenziale della stessa voce aService con gli stessi nomi di servizio e istanze) per aggiornare alcuni dei parametri in un servizio esistente.

Dettagli
Parametri
[in] aInstance
Un puntatore all'istanza OpenThread.
[in] aService
Un puntatore a un'istanza otSrpClientService da eliminare.
Valori restituiti
OT_ERROR_NONE
Eliminazione di aService riuscita. Può essere recuperato e riutilizzato immediatamente.
OT_ERROR_NOT_FOUND
Impossibile trovare il servizio nell'elenco.

otSrpClientDisableAutoStartMode

void otSrpClientDisableAutoStartMode(
  otInstance *aInstance
)

Disattiva la modalità di avvio automatico.

Questa opzione è disponibile solo quando la funzionalità di avvio automatico OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE è abilitata.

La disabilitazione della modalità di avvio automatico non interromperà il client se è già in esecuzione, ma il client smette di monitorare i dati di rete Thread per verificare che il server SRP selezionato sia ancora presente al suo interno.

Tieni presente che una chiamata al numero otSrpClientStop() disattiverà anche la modalità di avvio automatico.

Dettagli
Parametri
[in] aInstance
Un puntatore all'istanza OpenThread.

otSrpClientEnableAutoHostAddress

otError otSrpClientEnableAutoHostAddress(
  otInstance *aInstance
)

Consente di attivare la modalità automatica degli indirizzi dell'host.

Se abilitato, gli indirizzi IPv6 host vengono impostati automaticamente dal client SRP utilizzando tutti gli indirizzi unicast preferiti sulla rete Thread, esclusi tutti gli indirizzi locali rispetto al collegamento e locali della rete mesh. Se non è presente un indirizzo preferito, viene aggiunto l'indirizzo EID locale mesh. Il client SRP eseguirà automaticamente una nuova registrazione quando e se gli indirizzi su Thread netif vengono aggiornati (vengono aggiunti nuovi indirizzi o quelli esistenti vengono rimossi o contrassegnati come non preferiti).

La modalità automatica dell'indirizzo dell'host può essere attivata prima dell'avvio o durante il funzionamento del client SRP, tranne quando le informazioni sull'host vengono rimosse (il client è occupato a gestire una richiesta di rimozione da una chiamata a otSrpClientRemoveHostAndServices() e le informazioni sull'host sono ancora in stato STATE_TO_REMOVE o STATE_REMOVING).

Una volta attivata la modalità automatica dell'indirizzo dell'host, è possibile disattivarla tramite una chiamata al numero otSrpClientSetHostAddresses(), che a sua volta imposta in modo esplicito gli indirizzi dell'host.

Dettagli
Valori restituiti
OT_ERROR_NONE
Attivazione della modalità automatica degli indirizzi dell'host attivata correttamente.
OT_ERROR_INVALID_STATE
È in corso la rimozione dell'host, pertanto non può attivare la modalità di indirizzo dell'host automatico.

otSrpClientEnableAutoStartMode

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

Consente di attivare la modalità di avvio automatico.

Questa opzione è disponibile solo quando la funzionalità di avvio automatico OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE è abilitata.

L'opzione di configurazione OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_DEFAULT_MODE specifica la modalità di avvio automatico predefinita (abilitata o disabilitata all'inizio dello stack OT).

Quando l'avvio automatico è abilitato, il client SRP monitora i dati di rete Thread per rilevare i server SRP e selezionare il server preferito, oltre ad avviare e arrestare automaticamente il client quando viene rilevato un server SRP.

Esistono tre categorie di voci di dati di rete che indicano la presenza di un server SRP. I preferiti sono nel seguente ordine:

1) Voci unicast preferite in cui l'indirizzo del server è incluso nei dati del servizio. Se ci sono più opzioni, è preferibile quella con l'indirizzo IPv6 numericamente più basso.

2) Voci Anycast con ciascuna un numero di sequenza. Un numero di sequenza più grande nel senso specificato dalla logica aritmetica del numero di serie in RFC-1982 è considerato più recente e quindi preferito. Il numero di sequenza più grande utilizzando l'aritmetica dei numeri di serie è preferibile se è ben definito (ad esempio, il numero di sequenza è maggiore di tutti gli altri numeri di sequenza). Se non è ben definito, si preferisce il numero di sequenza numericamente più grande.

3) Voci Unicast in cui l'indirizzo del server è incluso nei dati del server. Se ci sono più opzioni, è preferibile quella con l'indirizzo IPv6 numericamente più basso.

Quando viene apportata una modifica alle voci Dati di rete, il client verifica che il server attualmente selezionato sia ancora presente nei dati di rete e che sia ancora quello preferito. In caso contrario, il client passerà al nuovo server preferito o si interromperà se non è presente.

Quando il client SRP viene avviato esplicitamente tramite una chiamata riuscita a otSrpClientStart(), l'indirizzo del server SRP specificato in otSrpClientStart() continuerà a essere utilizzato indipendentemente dallo stato della modalità di avvio automatico e dal fatto che lo stesso indirizzo del server SRP venga rilevato o meno nei dati di rete Thread. In questo caso, solo una chiamata esplicita a otSrpClientStop() interromperà il client.

Dettagli
Parametri
[in] aInstance
Un puntatore all'istanza OpenThread.
[in] aCallback
Un callback per notificare quando il client viene avviato/interrotto automaticamente. Può essere NULL se non necessario.
[in] aContext
Un contesto da trasmettere quando si chiama aCallback.

otSrpClientGetDomainName

const char * otSrpClientGetDomainName(
  otInstance *aInstance
)

Restituisce il nome di dominio utilizzato dal client SRP.

Richiede l'attivazione di OPENTHREAD_CONFIG_SRP_CLIENT_DOMAIN_NAME_API_ENABLE.

Se il nome di dominio non è impostato, verrà utilizzato "default.service.arpa".

Dettagli
Parametri
[in] aInstance
Un puntatore all'istanza OpenThread.
Restituisce
La stringa del nome di dominio.

otSrpClientGetHostInfo

const otSrpClientHostInfo * otSrpClientGetHostInfo(
  otInstance *aInstance
)

Recupera le informazioni sull'host.

Dettagli
Parametri
[in] aInstance
Un puntatore all'istanza OpenThread.
Restituisce
Un puntatore alla struttura delle informazioni dell'host.

otSrpClientGetKeyLeaseInterval

uint32_t otSrpClientGetKeyLeaseInterval(
  otInstance *aInstance
)

Restituisce l'intervallo di lease della chiave predefinito utilizzato nelle richieste di aggiornamento SRP.

L'intervallo predefinito viene utilizzato solo per le istanze otSrpClientService in cui il valore mKeyLease è impostato su zero.

Tieni presente che questa è la durata di lease richiesta dal client SRP. Il server potrebbe scegliere di accettare un intervallo di lease diverso.

Dettagli
Parametri
[in] aInstance
Un puntatore all'istanza OpenThread.
Restituisce
L'intervallo di lease chiave (in secondi).

otSrpClientGetLeaseInterval

uint32_t otSrpClientGetLeaseInterval(
  otInstance *aInstance
)

Restituisce l'intervallo di lease predefinito utilizzato nelle richieste di aggiornamento SRP.

L'intervallo predefinito viene utilizzato solo per le istanze otSrpClientService in cui il valore mLease è impostato su zero.

Tieni presente che questa è la durata di lease richiesta dal client SRP. Il server potrebbe scegliere di accettare un intervallo di lease diverso.

Dettagli
Parametri
[in] aInstance
Un puntatore all'istanza OpenThread.
Restituisce
L'intervallo di lease (in secondi).

otSrpClientGetServerAddress

const otSockAddr * otSrpClientGetServerAddress(
  otInstance *aInstance
)

Restituisce l'indirizzo del socket (indirizzo IPv6 e numero di porta) del server SRP utilizzato dal client SRP.

Se il client non è in esecuzione, l'indirizzo non è specificato (nessuno) e il numero di porta è pari a zero.

Dettagli
Parametri
[in] aInstance
Un puntatore all'istanza OpenThread.
Restituisce
Un puntatore all'indirizzo socket del server SRP (sempre non NULL).

otSrpClientGetServices

const otSrpClientService * otSrpClientGetServices(
  otInstance *aInstance
)

Restituisce l'elenco dei servizi gestiti dal client.

Dettagli
Parametri
[in] aInstance
Un puntatore all'istanza OpenThread.
Restituisce
Un puntatore all'intestazione dell'elenco collegato di tutti i servizi o NULL se l'elenco è vuoto.

otSrpClientGetTtl

uint32_t otSrpClientGetTtl(
  otInstance *aInstance
)

Restituisce il valore TTL in ogni record incluso nelle richieste di aggiornamento SRP.

Tieni presente che si tratta del TTL richiesto dal client SRP. Il server potrebbe scegliere di accettare un TTL diverso.

Per impostazione predefinita, il TTL corrisponderà all'intervallo di lease. Se passi 0 o un valore superiore all'intervallo di lease tramite otSrpClientSetTtl(), il TTL corrisponderà anche all'intervallo di lease.

Dettagli
Parametri
[in] aInstance
Un puntatore all'istanza OpenThread.
Restituisce
Il TTL (in secondi).

otSrpClientIsAutoStartModeEnabled

bool otSrpClientIsAutoStartModeEnabled(
  otInstance *aInstance
)

Indica lo stato corrente della modalità di avvio automatico (attivata o disattivata).

Questa opzione è disponibile solo quando la funzionalità di avvio automatico OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE è abilitata.

Dettagli
Parametri
[in] aInstance
Un puntatore all'istanza OpenThread.
Restituisce
TRUE se la modalità di avvio automatico è abilitata, FALSE in caso contrario.

otSrpClientIsRunning

bool otSrpClientIsRunning(
  otInstance *aInstance
)

Indica se il client SRP è in esecuzione o meno.

Dettagli
Parametri
[in] aInstance
Un puntatore all'istanza OpenThread.
Restituisce
TRUE se il client SRP è in esecuzione, FALSE negli altri casi.

otSrpClientIsServiceKeyRecordEnabled

bool otSrpClientIsServiceKeyRecordEnabled(
  otInstance *aInstance
)

Indica se la modalità "Inclusione del record della chiave di servizio" è attivata o disattivata.

È disponibile quando la configurazione di OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE è abilitata.

Dettagli
Parametri
[in] aInstance
Un puntatore all'istanza OpenThread.
Restituisce
TRUE se la modalità "Inclusione del record chiave di servizio" è attivata, altrimenti FALSE.

otSrpClientItemStateToString

const char * otSrpClientItemStateToString(
  otSrpClientItemState aItemState
)

Converte otSrpClientItemState in stringa.

Dettagli
Parametri
[in] aItemState
Uno stato dell'elemento.
Restituisce
Una rappresentazione stringa di aItemState.

otSrpClientRemoveHostAndServices

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

Avvia la procedura di rimozione delle informazioni dell'host e di tutti i servizi.

Al ritorno da questa funzione, otSrpClientCallback verrà chiamato per segnalare lo stato della richiesta di rimozione con il server SRP.

Se le informazioni sull'host devono essere rimosse definitivamente dal server, è necessario impostare aRemoveKeyLease su true per rimuovere il lease della chiave associato all'host sul server. In caso contrario, il record di lease della chiave viene mantenuto come prima, assicurando così che il server conservi il nome host per quando il client sarà di nuovo in grado di fornire e registrare i propri servizi.

aSendUnregToServer determina il comportamento quando le informazioni sull'host non sono ancora registrate sul server. Se il criterio aSendUnregToServer viene impostato su false (valore predefinito/previsto), il client SRP rimuoverà immediatamente le informazioni e i servizi dell'host senza inviare al server un messaggio di aggiornamento (non è necessario aggiornare il server se non è ancora registrato alcun elemento). Se il criterio aSendUnregToServer viene impostato su true, il client SRP invia un messaggio di aggiornamento al server. Tieni presente che, se le informazioni sull'host sono registrate, il valore di aSendUnregToServer non è importante e il client SRP invierà sempre un messaggio di aggiornamento al server richiedendo la rimozione di tutte le informazioni.

Una situazione in cui aSendUnregToServer può essere utile è il ripristino o il riavvio del dispositivo. Il chiamante potrebbe voler rimuovere tutti i servizi registrati in precedenza con il server. In questo caso, il chiamante può otSrpClientSetHostName() e poi richiedere otSrpClientRemoveHostAndServices() con aSendUnregToServer come true.

Dettagli
Parametri
[in] aInstance
Un puntatore all'istanza OpenThread.
[in] aRemoveKeyLease
Un valore booleano che indica se anche il lease della chiave host deve essere rimosso.
[in] aSendUnregToServer
Un valore booleano che indica se inviare l'aggiornamento al server quando le informazioni sull'host non sono registrate.
Valori restituiti
OT_ERROR_NONE
La rimozione delle informazioni e dei servizi dell'host è stata avviata. otSrpClientCallback verrà chiamato per segnalare lo stato.
OT_ERROR_ALREADY
Le informazioni sull'organizzatore sono già state rimosse.

otSrpClientRemoveService

otError otSrpClientRemoveService(
  otInstance *aInstance,
  otSrpClientService *aService
)

Richiede l'annullamento della registrazione di un servizio sul server.

Dopo una chiamata a questa funzione riuscita, otSrpClientCallback verrà chiamato per segnalare lo stato della richiesta di rimozione con il server SRP.

L'istanza otSrpClientService a cui punta aService DEVE rimanere invariata dopo il ritorno da questa funzione (con OT_ERROR_NONE). OpenThread manterrà l'istanza di servizio durante il processo di rimozione. Solo dopo aver chiamato otSrpClientCallback, a indicare che l'istanza di servizio è stata rimossa dall'elenco dei servizi client SRP e può essere liberata/riutilizzata.

Dettagli
Parametri
[in] aInstance
Un puntatore all'istanza OpenThread.
[in] aService
Un puntatore a un'istanza otSrpClientService da rimuovere.
Valori restituiti
OT_ERROR_NONE
La rimozione del servizio è stata avviata. otSrpClientCallback verrà chiamato per segnalare lo stato.
OT_ERROR_NOT_FOUND
Impossibile trovare il servizio nell'elenco.

otSrpClientSetCallback

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

Imposta il callback per notificare al chiamante di eventi/modifiche dal client SRP.

Il client SRP consente la registrazione di un singolo callback. Di conseguenza, le chiamate consecutive a questa funzione sovrascriveranno tutte le funzioni di callback impostate in precedenza.

Dettagli
Parametri
[in] aInstance
Un puntatore all'istanza OpenThread.
[in] aCallback
Il callback per notificare eventi e modifiche. Può essere NULL se non necessario.
[in] aContext
Un contesto arbitrario utilizzato con aCallback.

otSrpClientSetDomainName

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

Imposta il nome di dominio che deve essere utilizzato dal client SRP.

Richiede l'attivazione di OPENTHREAD_CONFIG_SRP_CLIENT_DOMAIN_NAME_API_ENABLE.

Se non è impostato, verrà utilizzato "default.service.arpa".

Il buffer della stringa nome a cui punta aName DEVE rimanere e rimanere invariato dopo il ritorno da questa funzione. OpenThread manterrà il puntatore sulla stringa.

Il nome di dominio può essere impostato prima dell'avvio del client o dopo l'avvio, ma prima che le informazioni sull'host siano registrate con il server (le informazioni sull'host devono essere in STATE_TO_ADD o STATE_TO_REMOVE).

Dettagli
Parametri
[in] aInstance
Un puntatore all'istanza OpenThread.
[in] aName
Un puntatore alla stringa del nome di dominio. Se NULL lo imposta sul valore predefinito "default.service.arpa".
Valori restituiti
OT_ERROR_NONE
L'etichetta del nome di dominio è stata impostata.
OT_ERROR_INVALID_STATE
Le informazioni sull'host sono già registrate sul server.

otSrpClientSetHostAddresses

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

Imposta/aggiorna l'elenco degli indirizzi IPv6 dell'host.

Gli indirizzi IPv6 host possono essere impostati/modificati prima dell'avvio o durante il funzionamento del client SRP (ad esempio per aggiungere/rimuovere o modificare un indirizzo host registrato in precedenza), tranne quando le informazioni sull'host vengono rimosse (il client è occupato a gestire una richiesta di rimozione da una chiamata precedente a otSrpClientRemoveHostAndServices() e le informazioni sull'host sono ancora in stato STATE_TO_REMOVE o STATE_REMOVING).

L'array di indirizzi IPv6 dell'host a cui punta aIp6Addresses DEVE rimanere e rimanere invariato dopo il ritorno da questa funzione (con OT_ERROR_NONE). OpenThread salverà il puntatore nell'array.

Dopo una chiamata a questa funzione riuscita, otSrpClientCallback verrà chiamato per segnalare lo stato della registrazione dell'indirizzo con il server SRP.

La chiamata di questa funzione disattiva la modalità di indirizzo automatico dell'host, se era stata precedentemente attivata dopo una chiamata a otSrpClientEnableAutoHostAddress() riuscita.

Dettagli
Parametri
[in] aInstance
Un puntatore all'istanza OpenThread.
[in] aIp6Addresses
Un puntatore a un array contenente gli indirizzi IPv6 dell'host.
[in] aNumAddresses
Il numero di indirizzi nell'array aIp6Addresses.
Valori restituiti
OT_ERROR_NONE
La modifica dell'elenco di indirizzi IPv6 dell'host è stata avviata. otSrpClientCallback verrà chiamato per segnalare lo stato della registrazione degli indirizzi con il server.
OT_ERROR_INVALID_ARGS
L'elenco di indirizzi non è valido (ad esempio, deve contenere almeno un indirizzo).
OT_ERROR_INVALID_STATE
È in corso la rimozione dell'host, pertanto non può modificarne l'indirizzo.

otSrpClientSetHostName

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

Imposta l'etichetta del nome host.

Dopo una chiamata a questa funzione riuscita, otSrpClientCallback verrà chiamato per segnalare lo stato della registrazione delle informazioni sull'host con il server SRP.

Il buffer della stringa nome a cui punta aName DEVE rimanere e rimanere invariato dopo il ritorno da questa funzione. OpenThread manterrà il puntatore sulla stringa.

Il nome host può essere impostato prima dell'avvio del client o dopo l'avvio, ma prima che le informazioni sull'host siano registrate con il server (le informazioni sull'host devono essere in STATE_TO_ADD o STATE_REMOVED).

Dettagli
Parametri
[in] aInstance
Un puntatore all'istanza OpenThread.
[in] aName
Un puntatore alla stringa dell'etichetta del nome host (NON DEVE essere NULL). Il puntatore al buffer stringa DEVE rimanere valido e costante dopo essere stato restituito da questa funzione.
Valori restituiti
OT_ERROR_NONE
L'etichetta del nome host è stata impostata.
OT_ERROR_INVALID_ARGS
Il valore aName è NULL.
OT_ERROR_INVALID_STATE
Il nome host è già impostato e registrato nel server.

otSrpClientSetKeyLeaseInterval

void otSrpClientSetKeyLeaseInterval(
  otInstance *aInstance,
  uint32_t aInterval
)

Consente di impostare l'intervallo di lease predefinito delle chiavi utilizzato nelle richieste di aggiornamento SRP.

L'intervallo predefinito viene utilizzato solo per le istanze otSrpClientService in cui il valore mKeyLease è impostato su zero.

La modifica dell'intervallo di lease non influisce sull'intervallo di lease accettato di servizi/informazioni-host già registrati, ma riguarda solo eventuali messaggi di aggiornamento SRP futuri (ad esempio, l'aggiunta di nuovi servizi e/o aggiornamenti di servizi esistenti).

Dettagli
Parametri
[in] aInstance
Un puntatore all'istanza OpenThread.
[in] aInterval
L'intervallo di lease chiave (in secondi). Se il valore è zero, viene utilizzato il valore predefinito specificato da OPENTHREAD_CONFIG_SRP_CLIENT_DEFAULT_KEY_LEASE.

otSrpClientSetLeaseInterval

void otSrpClientSetLeaseInterval(
  otInstance *aInstance,
  uint32_t aInterval
)

Imposta l'intervallo di lease predefinito utilizzato nelle richieste di aggiornamento SRP.

L'intervallo predefinito viene utilizzato solo per le istanze otSrpClientService in cui il valore mLease è impostato su zero.

La modifica dell'intervallo di lease non influisce sull'intervallo di lease accettato di servizi/informazioni-host già registrati, ma solo su eventuali messaggi di aggiornamento SRP futuri (ad esempio, l'aggiunta di nuovi servizi e/o aggiornamenti dei servizi esistenti).

Dettagli
Parametri
[in] aInstance
Un puntatore all'istanza OpenThread.
[in] aInterval
L'intervallo di lease (in secondi). Se il valore è zero, viene utilizzato il valore predefinito specificato da OPENTHREAD_CONFIG_SRP_CLIENT_DEFAULT_LEASE.

otSrpClientSetServiceKeyRecordEnabled

void otSrpClientSetServiceKeyRecordEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Attiva/disattiva la modalità "Inclusione di record chiave di servizio".

Se abilitato, il client SRP includerà il record KEY nelle istruzioni di descrizione del servizio nei messaggi di aggiornamento SRP che invia.

È disponibile quando la configurazione di OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE è abilitata.

Dettagli
Parametri
[in] aInstance
Un puntatore all'istanza OpenThread.
[in] aEnabled
TRUE per abilitarla, FALSE per disabilitare la modalità "inclusione del record chiave di servizio".

otSrpClientSetTtl

void otSrpClientSetTtl(
  otInstance *aInstance,
  uint32_t aTtl
)

Imposta il valore TTL in ogni record incluso nelle richieste di aggiornamento SRP.

La modifica del TTL non influisce sul TTL dei servizi/host-info già registrati, ma solo dei messaggi di aggiornamento SRP futuri (ovvero l'aggiunta di nuovi servizi e/o gli aggiornamenti dei servizi esistenti).

Dettagli
Parametri
[in] aInstance
Un puntatore all'istanza OpenThread.
[in] aTtl
Il TTL (in secondi). Se il valore è zero o maggiore dell'intervallo di lease, il TTL viene impostato sull'intervallo di lease.

otSrpClientStart

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

Avvia l'operazione del client SRP.

Il client SRP preparerà e invierà il messaggio "Aggiornamento SRP" al server SRP una volta soddisfatte tutte le seguenti condizioni:

Non è importante l'ordine in cui queste funzioni vengono chiamate. Quando tutte le condizioni sono soddisfatte, il client SRP attende un breve ritardo prima di preparare un messaggio "Aggiornamento SRP" e di inviarlo al server. Questo ritardo consente all'utente di aggiungere più servizi e/o indirizzi IPv6 prima che venga inviato il primo messaggio di aggiornamento SRP (Assicurandosi che venga inviato un singolo aggiornamento SRP contenente tutte le informazioni). La configurazione OPENTHREAD_CONFIG_SRP_CLIENT_UPDATE_TX_DELAY specifica l'intervallo di ritardo.

Dettagli
Parametri
[in] aInstance
Un puntatore all'istanza OpenThread.
[in] aServerSockAddr
L'indirizzo socket (indirizzo IPv6 e numero di porta) del server SRP.
Valori restituiti
OT_ERROR_NONE
L'operazione del client SRP è stata avviata correttamente oppure è già in esecuzione con lo stesso indirizzo socket e callback del server.
OT_ERROR_BUSY
Il client SRP è in esecuzione con un indirizzo socket diverso.
OT_ERROR_FAILED
Impossibile aprire/collegare il socket UDP del client.

otSrpClientStop

void otSrpClientStop(
  otInstance *aInstance
)

Arresta l'operazione del client SRP.

Arresta ogni ulteriore interazione con il server SRP. Tieni presente che non vengono rimosse né cancellate le informazioni sull'host e/o l'elenco dei servizi. Contrassegna tutti i servizi da aggiungere/rimuovere di nuovo una volta che il client viene (ri)avviato.

Dettagli
Parametri
[in] aInstance
Un puntatore all'istanza OpenThread.

otSrpServerGetAddressMode

otSrpServerAddressMode otSrpServerGetAddressMode(
  otInstance *aInstance
)

Restituisce la modalità indirizzo utilizzata dal server SRP.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
Restituisce
La modalità di indirizzo del server SRP.

otSrpServerGetAnycastModeSequenceNumber

uint8_t otSrpServerGetAnycastModeSequenceNumber(
  otInstance *aInstance
)

Restituisce il numero di sequenza utilizzato con la modalità indirizzo anycast.

Il numero di sequenza è incluso nella voce "Indirizzo Anycast del servizio DNS/SRP" pubblicata nei dati di rete.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
Restituisce
Il numero di sequenza anycast.

otSrpServerGetDomain

const char * otSrpServerGetDomain(
  otInstance *aInstance
)

Restituisce il dominio autorizzato al server SRP.

Se il dominio non è impostato da SetDomain, verrà restituito "default.service.arpa.". Viene sempre aggiunto un punto finale anche se il dominio viene impostato senza.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
Restituisce
Un puntatore alla stringa di dominio unito ai punti.

otSrpServerGetLeaseConfig

void otSrpServerGetLeaseConfig(
  otInstance *aInstance,
  otSrpServerLeaseConfig *aLeaseConfig
)

Restituisce le configurazioni LEASE e KEY-LEASE del server SRP.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[out] aLeaseConfig
Un puntatore a un'istanza otSrpServerLeaseConfig.

otSrpServerGetNextHost

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

Restituisce il successivo host registrato sul server SRP.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aHost
Un puntatore all'host corrente; utilizza NULL per ottenere il primo host.
Restituisce
Un puntatore all'host registrato. NULL, se non sono stati trovati altri host.

otSrpServerGetPort

uint16_t otSrpServerGetPort(
  otInstance *aInstance
)

Restituisce la porta su cui il server SRP è in ascolto.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
Restituisce
La porta del server SRP. Restituisce 0 se il server non è in esecuzione.

otSrpServerGetResponseCounters

const otSrpServerResponseCounters * otSrpServerGetResponseCounters(
  otInstance *aInstance
)

Restituisce i contatori di risposte del server SRP.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
Restituisce
Un puntatore ai contatori di risposte del server SRP.

otSrpServerGetState

otSrpServerState otSrpServerGetState(
  otInstance *aInstance
)

Restituisce lo stato del server SRP.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
Restituisce
Lo stato attuale del server SRP.

otSrpServerGetTtlConfig

void otSrpServerGetTtlConfig(
  otInstance *aInstance,
  otSrpServerTtlConfig *aTtlConfig
)

Restituisce la configurazione TTL del server SRP.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[out] aTtlConfig
Un puntatore a un'istanza otSrpServerTtlConfig.

otSrpServerHandleServiceUpdateResult

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

Indica il risultato dell'elaborazione di un aggiornamento SRP al server SRP.

Il gestore degli aggiornamenti dei servizi deve chiamare questa funzione per restituire il risultato dell'elaborazione di un aggiornamento SRP.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aId
L'ID transazione dell'aggiornamento del servizio. Deve essere lo stesso ID fornito tramite otSrpServerServiceUpdateHandler.
[in] aError
Un errore da restituire al server SRP. Utilizza OT_ERROR_DUPLICATED per rappresentare i conflitti di nomi DNS.

otSrpServerHostGetAddresses

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

Restituisce gli indirizzi dell'host specificato.

Dettagli
Parametri
[in] aHost
Un puntatore all'host del servizio SRP.
[out] aAddressesNum
Un puntatore al quale deve essere generato il numero di indirizzi.
Restituisce
Un puntatore all'array di indirizzi IPv6.

otSrpServerHostGetFullName

const char * otSrpServerHostGetFullName(
  const otSrpServerHost *aHost
)

Restituisce il nome completo dell'host.

Dettagli
Parametri
[in] aHost
Un puntatore all'host del servizio SRP.
Restituisce
Un puntatore alla stringa del nome host con terminazione null.

otSrpServerHostGetLeaseInfo

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

Restituisce le informazioni LEASE e KEY-LEASE di un host specifico.

Dettagli
Parametri
[in] aHost
Un puntatore all'host del server SRP.
[out] aLeaseInfo
Un puntatore a dove generare le informazioni LEASE e KEY-LEASE.

otSrpServerHostGetNextService

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

Restituisce il servizio successivo dell'host specificato.

Dettagli
Parametri
[in] aHost
Un puntatore all'host del servizio SRP.
[in] aService
Un puntatore all'istanza di servizio SRP attuale. Utilizza NULL per ottenere il primo servizio.
Restituisce
Un puntatore al servizio successivo o NULL se non ci sono altri servizi.

otSrpServerHostIsDeleted

bool otSrpServerHostIsDeleted(
  const otSrpServerHost *aHost
)

Indica se l'host del servizio SRP è stato eliminato.

L'host di un servizio SRP può essere eliminato, ma conserva il suo nome per usi futuri. In questo caso, l'istanza host non viene rimossa dal server/registry SRP.

Dettagli
Parametri
[in] aHost
Un puntatore all'host del servizio SRP.
Restituisce
TRUE se l'host è stato eliminato, FALSE in caso contrario.

otSrpServerHostMatchesFullName

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

Indica se l'host corrisponde a un determinato nome host.

Le corrispondenze dei nomi DNS vengono eseguite utilizzando un confronto di stringhe senza distinzione tra maiuscole e minuscole (ad es. "Abc" e "aBc" sono considerati uguali).

Dettagli
Parametri
[in] aHost
Un puntatore all'host del servizio SRP.
[in] aFullName
Un nome host completo.
Valori restituiti
TRUE
Se l'host corrisponde al nome dell'host.
FALSE
Se l'host non corrisponde al nome dell'host.

otSrpServerIsAutoEnableMode

bool otSrpServerIsAutoEnableMode(
  otInstance *aInstance
)

Indica se la modalità di attivazione automatica è attivata o disattivata.

Richiede la funzionalità OPENTHREAD_CONFIG_BORDER_ROUTING_ENABLE.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
Valori restituiti
TRUE
La modalità di attivazione automatica è attivata.
FALSE
La modalità di attivazione automatica è disattivata.

otSrpServerParseSubTypeServiceName

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

Analizza il nome del servizio di un sottotipo (nome completo) ed estrae l'etichetta del sottotipo.

Il nome completo di un servizio di sottotipo segue "._sub...".

Dettagli
Parametri
[in] aSubTypeServiceName
Un sottotipo di nome del servizio (nome completo).
[out] aLabel
Un puntatore a un buffer per copiare l'etichetta di sottotipo estratta.
[in] aLabelSize
Dimensione massima del buffer aLabel.
Valori restituiti
OT_ERROR_NONE
Il nome è stato analizzato correttamente e aLabel è stato aggiornato.
OT_ERROR_NO_BUFS
Non è stato possibile inserire l'etichetta di sottotipo nel buffer aLabel (il numero di caratteri dell'etichetta che è possibile includere vengono copiati in aLabel assicurando che sia terminata con null).
OT_ERROR_INVALID_ARGS
aSubTypeServiceName non è un formato di sottotipo valido.

otSrpServerServiceGetHost

const otSrpServerHost * otSrpServerServiceGetHost(
  const otSrpServerService *aService
)

Restituisce l'host in cui risiede l'istanza di servizio.

Dettagli
Parametri
[in] aService
Un puntatore al servizio SRP.
Restituisce
Un puntatore all'istanza host.

otSrpServerServiceGetInstanceLabel

const char * otSrpServerServiceGetInstanceLabel(
  const otSrpServerService *aService
)

Restituisce l'etichetta dell'istanza di servizio (la prima etichetta nel nome dell'istanza) del servizio.

Dettagli
Parametri
[in] aService
Un puntatore al servizio SRP.
Restituisce
Puntatore alla stringa di etichetta dell'istanza di servizio con terminazione null.

otSrpServerServiceGetInstanceName

const char * otSrpServerServiceGetInstanceName(
  const otSrpServerService *aService
)

Restituisce il nome completo dell'istanza di servizio del servizio.

Dettagli
Parametri
[in] aService
Un puntatore al servizio SRP.
Restituisce
Un puntatore alla stringa del nome dell'istanza di servizio con terminazione null.

otSrpServerServiceGetLeaseInfo

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

Restituisce le informazioni LEASE e KEY-LEASE di un determinato servizio.

Dettagli
Parametri
[in] aService
Un puntatore al servizio server SRP.
[out] aLeaseInfo
Un puntatore a dove generare le informazioni LEASE e KEY-LEASE.

otSrpServerServiceGetNumberOfSubTypes

uint16_t otSrpServerServiceGetNumberOfSubTypes(
  const otSrpServerService *aService
)

Restituisce il numero di sottotipi di servizio.

Dettagli
Parametri
[in] aService
Un puntatore al servizio SRP.
Restituisce
Il numero di sottotipi di aService.

otSrpServerServiceGetPort

uint16_t otSrpServerServiceGetPort(
  const otSrpServerService *aService
)

Restituisce la porta dell'istanza di servizio.

Dettagli
Parametri
[in] aService
Un puntatore al servizio SRP.
Restituisce
La porta del servizio.

otSrpServerServiceGetPriority

uint16_t otSrpServerServiceGetPriority(
  const otSrpServerService *aService
)

Restituisce la priorità dell'istanza di servizio.

Dettagli
Parametri
[in] aService
Un puntatore al servizio SRP.
Restituisce
La priorità del servizio.

otSrpServerServiceGetServiceName

const char * otSrpServerServiceGetServiceName(
  const otSrpServerService *aService
)

Restituisce il nome completo del servizio.

Dettagli
Parametri
[in] aService
Un puntatore al servizio SRP.
Restituisce
Un puntatore alla stringa del nome del servizio con terminazione null.

otSrpServerServiceGetSubTypeServiceNameAt

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

Restituisce il nome del sottotipo (nome completo) del servizio in un determinato indice.

Il nome completo di un servizio di sottotipo segue "._sub...".

Dettagli
Parametri
[in] aService
Un puntatore al servizio SRP.
[in] aIndex
L'indice da ottenere.
Restituisce
Un puntatore per il nome del servizio di sottotipo in aIndex oppure NULL se non è presente alcun sottotipo in questo indice.

otSrpServerServiceGetTtl

uint32_t otSrpServerServiceGetTtl(
  const otSrpServerService *aService
)

Restituisce il TTL dell'istanza di servizio.

Dettagli
Parametri
[in] aService
Un puntatore al servizio SRP.
Restituisce
Il TTL dell'istanza di servizio.

otSrpServerServiceGetTxtData

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

Restituisce i dati del record TXT dell'istanza di servizio.

Dettagli
Parametri
[in] aService
Un puntatore al servizio SRP.
[out] aDataLength
Un puntatore per restituire la lunghezza dei dati del record TXT. NON DEVE essere NULL.
Restituisce
Un puntatore al buffer contenente i dati del record TXT (la lunghezza dei dati TXT viene restituita in aDataLength).

otSrpServerServiceGetWeight

uint16_t otSrpServerServiceGetWeight(
  const otSrpServerService *aService
)

Restituisce il peso dell'istanza di servizio.

Dettagli
Parametri
[in] aService
Un puntatore al servizio SRP.
Restituisce
Il peso del servizio.

otSrpServerServiceHasSubTypeServiceName

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

Indica se il servizio ha un determinato sottotipo.

Le corrispondenze dei nomi DNS vengono eseguite utilizzando un confronto di stringhe senza distinzione tra maiuscole e minuscole (ad es. "Abc" e "aBc" sono considerati uguali).

Dettagli
Parametri
[in] aService
Un puntatore al servizio SRP.
[in] aSubTypeServiceName
Il sottotipo del nome del servizio (nome completo) da verificare.
Valori restituiti
TRUE
Il servizio contiene il sottotipo aSubTypeServiceName.
FALSE
Il servizio non contiene il sottotipo aSubTypeServiceName.

otSrpServerServiceIsDeleted

bool otSrpServerServiceIsDeleted(
  const otSrpServerService *aService
)

Indica se il servizio SRP è stato eliminato o meno.

Un servizio SRP può essere eliminato, ma conserva il suo nome per usi futuri. In questo caso, l'istanza di servizio non viene rimossa dal server/registro SRP. Se l'host viene eliminato, tutti i servizi vengono eliminati.

Dettagli
Parametri
[in] aService
Un puntatore al servizio SRP.
Restituisce
TRUE se il servizio è stato eliminato, FALSE in caso contrario.

otSrpServerServiceMatchesInstanceName

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

Indica se questo servizio corrisponde a un determinato nome di istanza di servizio.

Le corrispondenze dei nomi DNS vengono eseguite utilizzando un confronto di stringhe senza distinzione tra maiuscole e minuscole (ad es. "Abc" e "aBc" sono considerati uguali).

Dettagli
Parametri
[in] aService
Un puntatore al servizio SRP.
[in] aInstanceName
Il nome dell'istanza di servizio.
Valori restituiti
TRUE
Se il servizio corrisponde al nome dell'istanza di servizio.
FALSE
Se il servizio non corrisponde al nome dell'istanza di servizio.

otSrpServerServiceMatchesServiceName

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

Indica se il servizio corrisponde a un determinato nome di servizio.

Le corrispondenze dei nomi DNS vengono eseguite utilizzando un confronto di stringhe senza distinzione tra maiuscole e minuscole (ad es. "Abc" e "aBc" sono considerati uguali).

Dettagli
Parametri
[in] aService
Un puntatore al servizio SRP.
[in] aServiceName
Il nome del servizio.
Valori restituiti
TRUE
Se il servizio corrisponde al nome del servizio.
FALSE
Se il servizio non corrisponde al nome del servizio.

otSrpServerSetAddressMode

otError otSrpServerSetAddressMode(
  otInstance *aInstance,
  otSrpServerAddressMode aMode
)

Imposta la modalità di indirizzo che il server SRP deve utilizzare.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aMode
La modalità indirizzo da utilizzare.
Valori restituiti
OT_ERROR_NONE
Modalità indirizzo impostata.
OT_ERROR_INVALID_STATE
Il server SRP è abilitato e la modalità indirizzo non può essere modificata.

otSrpServerSetAnycastModeSequenceNumber

otError otSrpServerSetAnycastModeSequenceNumber(
  otInstance *aInstance,
  uint8_t aSequenceNumber
)

Imposta il numero di sequenza utilizzato con la modalità indirizzo anycast.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aSequenceNumber
Il numero di sequenza da utilizzare.
Valori restituiti
OT_ERROR_NONE
Modalità indirizzo impostata.
OT_ERROR_INVALID_STATE
Il server SRP è attivo e il numero di sequenza non può essere modificato.

otSrpServerSetAutoEnableMode

void otSrpServerSetAutoEnableMode(
  otInstance *aInstance,
  bool aEnabled
)

Attiva/disattiva la modalità di attivazione automatica sul server SRP.

Richiede la funzionalità OPENTHREAD_CONFIG_BORDER_ROUTING_ENABLE.

Quando questa modalità è attivata, il gestore dell'instradamento delle frontiere stabilisce se/quando attivare o disattivare il server SRP. Il server SRP viene attivato automaticamente se/quando viene avviato il routing confine e viene eseguito con le configurazioni di prefisso e di route iniziali (quando vengono determinati i prefissi OMR e al link, pubblicizzati nel messaggio di annuncio del router emesso sul lato infrastruttura e pubblicato nei dati di rete Thread). Il server SRP viene disattivato automaticamente se/quando BR viene arrestato (ad esempio se l'interfaccia di rete dell'infrastruttura viene disattivata o se BR viene scollegato.

Questa modalità può essere disattivata tramite una chiamata otSrpServerSetAutoEnableMode() con aEnabled impostato su false o se il server SRP viene attivato o disattivato esplicitamente tramite una chiamata alla funzione otSrpServerSetEnabled(). La disattivazione della modalità di attivazione automatica utilizzando otSrpServerSetAutoEnableMode(false) non modificherà lo stato corrente del server SRP (ad esempio, se viene attivata, rimane attiva).

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aEnabled
Un valore booleano per attivare/disattivare la modalità di attivazione automatica.

otSrpServerSetDomain

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

Imposta il dominio sul server SRP.

Un punto finale verrà aggiunto a aDomain se non è già presente. Deve essere chiamato solo prima dell'attivazione del server SRP.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aDomain
Il dominio da impostare. NON DEVE essere NULL.
Valori restituiti
OT_ERROR_NONE
Impostazione del dominio su aDomain riuscita.
OT_ERROR_INVALID_STATE
Il server SRP è già abilitato e il dominio non può essere modificato.
OT_ERROR_INVALID_ARGS
L'argomento aDomain non è un nome di dominio DNS valido.
OT_ERROR_NO_BUFS
Non c'è nessun ricordo in cui archiviare i contenuti di aDomain.

otSrpServerSetEnabled

void otSrpServerSetEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Attiva/disattiva il server SRP.

Sui router di confine si consiglia di utilizzare otSrpServerSetAutoEnableMode().

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aEnabled
Un valore booleano per attivare/disattivare il server SRP.

otSrpServerSetLeaseConfig

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

Imposta le configurazioni LEASE e KEY-LEASE del server SRP.

Quando a un client viene richiesto un tempo LEASE diverso da zero, il valore concesso sarà limitato nell'intervallo [aMinLease, aMaxLease] e un valore KEY-LEASE diverso da zero verrà concesso nell'intervallo [aMinKeyLease, aMaxKeyLease]. Per zero tempo di LEASE o KEY-LEASE, verrà concesso zero.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aLeaseConfig
Un puntatore a un'istanza otSrpServerLeaseConfig.
Valori restituiti
OT_ERROR_NONE
Gli intervalli LEASE e KEY-LEASE sono stati impostati correttamente.
OT_ERROR_INVALID_ARGS
L'intervallo LEASE o KEY-LEASE non è valido.

otSrpServerSetServiceUpdateHandler

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

Imposta il gestore degli aggiornamenti del servizio SRP sul server SRP.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aServiceHandler
Un puntatore a un gestore di servizi. Utilizza NULL per rimuovere il gestore.
[in] aContext
Un puntatore a informazioni di contesto arbitrarie. Può essere NULL se non utilizzato.

otSrpServerSetTtlConfig

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

Imposta la configurazione TTL del server SRP.

Il TTL concesso non sarà sempre superiore all'intervallo di lease massimo configurato tramite otSrpServerSetLeaseConfig(), indipendentemente dalla configurazione TTL minimo e massima.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aTtlConfig
Un puntatore a un'istanza otSrpServerTtlConfig.
Valori restituiti
OT_ERROR_NONE
Configurazione TTL impostata correttamente.
OT_ERROR_INVALID_ARGS
La configurazione TTL non è valida.

Risorse

Gli argomenti di riferimento dell'API OpenThread provengono dal codice sorgente, disponibile su GitHub. Per saperne di più o per contribuire alla nostra documentazione, consulta la sezione Risorse.