Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

SRP

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

Riepilogo

Questo modulo include funzioni del protocollo di registrazione dei servizi.

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

Le funzioni in questo modulo sono disponibili solo quando la funzionalità OPENThread_CONFIG_SRP_CLIENT_BUFFERS_ENABLE è abilitata.

Enumerazioni

anonymous enum{
  OT_SRP_SERVER_SERVICE_FLAG_BASE_TYPE = 1 << 0,
  OT_SRP_SERVER_SERVICE_FLAG_SUB_TYPE = 1 << 1,
  OT_SRP_SERVER_SERVICE_FLAG_ACTIVE = 1 << 2,
  OT_SRP_SERVER_SERVICE_FLAG_DELETED = 1 << 3
}
enum
anonymous enum{
  OT_SRP_SERVER_FLAGS_ANY_SERVICE = (OT_SRP_SERVER_SERVICE_FLAG_BASE_TYPE | OT_SRP_SERVER_SERVICE_FLAG_SUB_TYPE | OT_SRP_SERVER_SERVICE_FLAG_ACTIVE | OT_SRP_SERVER_SERVICE_FLAG_DELETED),
  OT_SRP_SERVER_FLAGS_BASE_TYPE_SERVICE_ONLY = (OT_SRP_SERVER_SERVICE_FLAG_BASE_TYPE | OT_SRP_SERVER_SERVICE_FLAG_ACTIVE | OT_SRP_SERVER_SERVICE_FLAG_DELETED),
  OT_SRP_SERVER_FLAGS_SUB_TYPE_SERVICE_ONLY = (OT_SRP_SERVER_SERVICE_FLAG_SUB_TYPE | OT_SRP_SERVER_SERVICE_FLAG_ACTIVE | OT_SRP_SERVER_SERVICE_FLAG_DELETED),
  OT_SRP_SERVER_FLAGS_ANY_TYPE_ACTIVE_SERVICE = (OT_SRP_SERVER_SERVICE_FLAG_BASE_TYPE | OT_SRP_SERVER_SERVICE_FLAG_SUB_TYPE | OT_SRP_SERVER_SERVICE_FLAG_ACTIVE),
  OT_SRP_SERVER_FLAGS_ANY_TYPE_DELETED_SERVICE = (OT_SRP_SERVER_SERVICE_FLAG_BASE_TYPE | OT_SRP_SERVER_SERVICE_FLAG_SUB_TYPE | OT_SRP_SERVER_SERVICE_FLAG_ACTIVE)
}
enum
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
Questa enumerazione specifica lo stato di un elemento client SRP (informazioni sul servizio o sull'host).
otSrpServerAddressMode{
  OT_SRP_SERVER_ADDRESS_MODE_UNICAST = 0,
  OT_SRP_SERVER_ADDRESS_MODE_ANYCAST = 1
}
enum
Questa enumerazione rappresenta la modalità dell'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
Questa enumerazione rappresenta lo stato del server SRP.

Defin

otSrpClientAutoStartCallback)(const otSockAddr *aServerSockAddr, void *aContext) Typedef
void(*
Questo tipo di puntatore di funzione definisce il callback utilizzato dal client SRP per inviare una notifica all'utente quando viene avviato o arrestato automaticamente.
otSrpClientBuffersServiceEntry Typedef
Questa struttura rappresenta una voce del pool di servizi del client SRP.
otSrpClientCallback)(otError aError, const otSrpClientHostInfo *aHostInfo, const otSrpClientService *aServices, const otSrpClientService *aRemovedServices, void *aContext) Typedef
void(*
Questo tipo di puntatore della funzione definisce il callback utilizzato dal client SRP per avvisare l'utente di modifiche/eventi/errori.
otSrpClientHostInfo Typedef
Questa struttura rappresenta le informazioni di un host client SRP.
otSrpClientService Typedef
Questa struttura rappresenta un servizio client SRP.
otSrpServerAddressMode Typedef
Questa enumerazione rappresenta la modalità dell'indirizzo utilizzata dal server SRP.
otSrpServerHost Typedef
Questo tipo opaco rappresenta un host di servizio SRP.
otSrpServerLeaseConfig Typedef
Questa struttura include le configurazioni LEASE e server KEY-LEASE del server SRP.
otSrpServerLeaseInfo Typedef
Questa struttura include le informazioni di lease del server SRP di un host/servizio.
otSrpServerResponseCounters Typedef
Questa struttura include le statistiche delle risposte del server SRP.
otSrpServerService Typedef
Questo tipo opaco rappresenta un servizio SRP.
otSrpServerServiceFlags Typedef
uint8_t
Il tipo di flag di servizio che indica quali servizi includere o escludere durante la ricerca (o l'iterazione) nell'elenco dei servizi SRP.
otSrpServerServiceUpdateHandler)(otSrpServerServiceUpdateId aId, const otSrpServerHost *aHost, uint32_t aTimeout, void *aContext) Typedef
void(*
Questa funzione gestisce gli aggiornamenti del servizio SRP.
otSrpServerServiceUpdateId Typedef
uint32_t
L'ID di una transazione di aggiornamento del servizio SRP sul server SRP.
otSrpServerTtlConfig Typedef
Questa struttura include le configurazioni TTL del server SRP.

Functions

otSrpClientAddService(otInstance *aInstance, otSrpClientService *aService)
Questa funzione aggiunge un servizio da registrare nel server.
otSrpClientBuffersAllocateService(otInstance *aInstance)
Questa funzione alloca una nuova voce di servizio dal pool.
otSrpClientBuffersFreeAllServices(otInstance *aInstance)
void
Questa funzione libera tutte le voci di servizio assegnate in precedenza.
otSrpClientBuffersFreeService(otInstance *aInstance, otSrpClientBuffersServiceEntry *aService)
void
Questa funzione libera una voce di servizio allocata in precedenza.
otSrpClientBuffersGetHostAddressesArray(otInstance *aInstance, uint8_t *aArrayLength)
Questa funzione riceve l'array di voci IPv6 da utilizzare come elenco di indirizzi host client SRP.
otSrpClientBuffersGetHostNameString(otInstance *aInstance, uint16_t *aSize)
char *
Questa funzione recupera il buffer di stringa da utilizzare per il nome host del client SRP.
otSrpClientBuffersGetServiceEntryInstanceNameString(otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize)
char *
Questa funzione ottiene il buffer di stringa per il nome dell'istanza del servizio da una voce di servizio.
otSrpClientBuffersGetServiceEntryServiceNameString(otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize)
char *
Questa funzione recupera il buffer di stringa per il nome del servizio da una voce di servizio.
otSrpClientBuffersGetServiceEntryTxtBuffer(otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize)
uint8_t *
Questa funzione recupera il buffer per il record TXT da una voce di servizio.
otSrpClientBuffersGetSubTypeLabelsArray(otSrpClientBuffersServiceEntry *aEntry, uint16_t *aArrayLength)
const char **
Questa funzione recupera l'array per le etichette del sottotipo di servizio dalla voce del servizio.
otSrpClientClearHostAndServices(otInstance *aInstance)
void
Questa funzione cancella tutte le informazioni sull'host e tutti i servizi.
otSrpClientClearService(otInstance *aInstance, otSrpClientService *aService)
Questa funzione cancella un servizio, rimuovendolo immediatamente dall'elenco dei servizi client.
otSrpClientDisableAutoStartMode(otInstance *aInstance)
void
Questa funzione disattiva la modalità di avvio automatico.
otSrpClientEnableAutoHostAddress(otInstance *aInstance)
Questa funzione attiva la modalità indirizzo host automatico.
otSrpClientEnableAutoStartMode(otInstance *aInstance, otSrpClientAutoStartCallback aCallback, void *aContext)
void
Questa funzione attiva la modalità di avvio automatico.
otSrpClientGetDomainName(otInstance *aInstance)
const char *
Questa funzione ottiene il nome di dominio utilizzato dal client SRP.
otSrpClientGetHostInfo(otInstance *aInstance)
Questa funzione riceve le informazioni dell'host.
otSrpClientGetKeyLeaseInterval(otInstance *aInstance)
uint32_t
Questa funzione riceve l'intervallo di lease della chiave predefinito utilizzato nelle richieste di aggiornamento SRP.
otSrpClientGetLeaseInterval(otInstance *aInstance)
uint32_t
Questa funzione riceve l'intervallo di lease predefinito utilizzato nelle richieste di aggiornamento SRP.
otSrpClientGetServerAddress(otInstance *aInstance)
const otSockAddr *
Questa funzione recupera l'indirizzo socket (indirizzo IPv6 e numero di porta) del server SRP utilizzato dal client SRP.
otSrpClientGetServices(otInstance *aInstance)
Questa funzione ottiene l'elenco dei servizi gestiti dal client.
otSrpClientGetTtl(otInstance *aInstance)
uint32_t
Questa funzione riceve il valore TTL in ogni record incluso nelle richieste di aggiornamento SRP.
otSrpClientIsAutoStartModeEnabled(otInstance *aInstance)
bool
Questa funzione indica lo stato corrente della modalità di avvio automatico (attivata o disabilitata).
otSrpClientIsRunning(otInstance *aInstance)
bool
Questa funzione indica se il client SRP è in esecuzione o meno.
otSrpClientIsServiceKeyRecordEnabled(otInstance *aInstance)
bool
Questo metodo indica se la modalità "Inclusione dei record della chiave di servizio" è abilitata o disabilitata.
otSrpClientItemStateToString(otSrpClientItemState aItemState)
const char *
Questa funzione converte un otSrpClientItemState in una stringa.
otSrpClientRemoveHostAndServices(otInstance *aInstance, bool aRemoveKeyLease, bool aSendUnregToServer)
Questa funzione avvia il processo di rimozione delle informazioni host e di tutti i servizi.
otSrpClientRemoveService(otInstance *aInstance, otSrpClientService *aService)
Questa funzione richiede che un servizio venga annullato per la registrazione sul server.
otSrpClientSetCallback(otInstance *aInstance, otSrpClientCallback aCallback, void *aContext)
void
Questa funzione imposta il callback per inviare una notifica al chiamante per gli eventi o le modifiche dal client SRP.
otSrpClientSetDomainName(otInstance *aInstance, const char *aName)
Questa funzione imposta il nome di dominio che deve essere utilizzato dal client SRP.
otSrpClientSetHostAddresses(otInstance *aInstance, const otIp6Address *aIp6Addresses, uint8_t aNumAddresses)
Questa funzione imposta/aggiorna l'elenco degli indirizzi IPv6 dell'host.
otSrpClientSetHostName(otInstance *aInstance, const char *aName)
Questa funzione imposta l'etichetta del nome host.
otSrpClientSetKeyLeaseInterval(otInstance *aInstance, uint32_t aInterval)
void
Questa funzione imposta l'intervallo di lease della chiave predefinito utilizzato nelle richieste di aggiornamento SRP.
otSrpClientSetLeaseInterval(otInstance *aInstance, uint32_t aInterval)
void
Questa funzione imposta l'intervallo di lease predefinito utilizzato nelle richieste di aggiornamento SRP.
otSrpClientSetServiceKeyRecordEnabled(otInstance *aInstance, bool aEnabled)
void
Questa funzione abilita/disabilita "Modalità di inclusione del record dei tasti di servizio".
otSrpClientSetTtl(otInstance *aInstance, uint32_t aTtl)
void
Questa funzione imposta il valore TTL in ogni record incluso nelle richieste di aggiornamento SRP.
otSrpClientStart(otInstance *aInstance, const otSockAddr *aServerSockAddr)
Questa funzione avvia l'operazione client SRP.
otSrpClientStop(otInstance *aInstance)
void
Questa funzione interrompe l'operazione del client SRP.
otSrpServerGetAddressMode(otInstance *aInstance)
Questa funzione restituisce la modalità indirizzo utilizzata dal server SRP.
otSrpServerGetAnycastModeSequenceNumber(otInstance *aInstance)
uint8_t
Questa funzione restituisce il numero di sequenza utilizzato con la modalità indirizzo anycast.
otSrpServerGetDomain(otInstance *aInstance)
const char *
Questa funzione restituisce il dominio autorizzato al server SRP.
otSrpServerGetLeaseConfig(otInstance *aInstance, otSrpServerLeaseConfig *aLeaseConfig)
void
Questa funzione restituisce le configurazioni LEASE e KEY-LEASE del server SRP.
otSrpServerGetNextHost(otInstance *aInstance, const otSrpServerHost *aHost)
const otSrpServerHost *
Questa funzione restituisce l'host registrato successivo sul server SRP.
otSrpServerGetPort(otInstance *aInstance)
uint16_t
Questa funzione restituisce la porta che il server SRP sta ascoltando.
otSrpServerGetResponseCounters(otInstance *aInstance)
Questa funzione restituisce i contatori della risposta del server SRP.
otSrpServerGetState(otInstance *aInstance)
Questa funzione restituisce lo stato del server SRP.
otSrpServerGetTtlConfig(otInstance *aInstance, otSrpServerTtlConfig *aTtlConfig)
void
Questa funzione restituisce la configurazione TTL del server SRP.
otSrpServerHandleServiceUpdateResult(otInstance *aInstance, otSrpServerServiceUpdateId aId, otError aError)
void
Questa funzione segnala il risultato dell'elaborazione di un aggiornamento SRP nel server SRP.
otSrpServerHostFindNextService(const otSrpServerHost *aHost, const otSrpServerService *aPrevService, otSrpServerServiceFlags aFlags, const char *aServiceName, const char *aInstanceName)
Questa funzione trova il servizio successivo corrispondente nell'host.
otSrpServerHostGetAddresses(const otSrpServerHost *aHost, uint8_t *aAddressesNum)
const otIp6Address *
Questa funzione restituisce gli indirizzi di un determinato host.
otSrpServerHostGetFullName(const otSrpServerHost *aHost)
const char *
Questa funzione restituisce il nome completo dell'host.
otSrpServerHostGetLeaseInfo(const otSrpServerHost *aHost, otSrpServerLeaseInfo *aLeaseInfo)
void
Questa funzione restituisce le informazioni LEASE e KEY-LEASE relative a un determinato host.
otSrpServerHostGetNextService(const otSrpServerHost *aHost, const otSrpServerService *aService)
Questa funzione restituisce il servizio successivo (esclusi i servizi di sottotipo) di un determinato host.
otSrpServerHostIsDeleted(const otSrpServerHost *aHost)
bool
Questa funzione indica se l'host del servizio SRP è stato eliminato.
otSrpServerIsAutoEnableMode(otInstance *aInstance)
bool
Questa funzione indica se la modalità di attivazione automatica è attivata o disattivata.
otSrpServerServiceGetFullName(const otSrpServerService *aService)
const char *
Questa funzione restituisce il nome completo dell'istanza del servizio.
otSrpServerServiceGetHost(const otSrpServerService *aService)
const otSrpServerHost *
Questa funzione restituisce l'host su cui si trova l'istanza di servizio.
otSrpServerServiceGetInstanceName(const otSrpServerService *aService)
const char *
Questa funzione restituisce il nome completo dell'istanza del servizio.
otSrpServerServiceGetLeaseInfo(const otSrpServerService *aService, otSrpServerLeaseInfo *aLeaseInfo)
void
Questa funzione restituisce le informazioni LEASE e KEY-LEASE relative a un determinato servizio.
otSrpServerServiceGetPort(const otSrpServerService *aService)
uint16_t
Questa funzione restituisce la porta dell'istanza di servizio.
otSrpServerServiceGetPriority(const otSrpServerService *aService)
uint16_t
Questa funzione restituisce la priorità dell'istanza di servizio.
otSrpServerServiceGetServiceName(const otSrpServerService *aService)
const char *
Questa funzione restituisce il nome completo del servizio.
otSrpServerServiceGetServiceSubTypeLabel(const otSrpServerService *aService, char *aLabel, uint8_t aMaxSize)
Questa funzione riceve l'etichetta di sottotipo dal nome del servizio.
otSrpServerServiceGetTtl(const otSrpServerService *aService)
uint32_t
Questa funzione restituisce il TTL dell'istanza di servizio.
otSrpServerServiceGetTxtData(const otSrpServerService *aService, uint16_t *aDataLength)
const uint8_t *
Questa funzione restituisce i dati del record TXT dell'istanza del servizio.
otSrpServerServiceGetWeight(const otSrpServerService *aService)
uint16_t
Questa funzione restituisce la ponderazione dell'istanza di servizio.
otSrpServerServiceIsDeleted(const otSrpServerService *aService)
bool
Questa funzione indica se il servizio SRP è stato eliminato o meno.
otSrpServerServiceIsSubType(const otSrpServerService *aService)
bool
Questa funzione indica se il servizio SRP è o meno di sottotipo.
otSrpServerSetAddressMode(otInstance *aInstance, otSrpServerAddressMode aMode)
Questa funzione imposta la modalità indirizzo che deve essere utilizzata dal server SRP.
otSrpServerSetAnycastModeSequenceNumber(otInstance *aInstance, uint8_t aSequenceNumber)
Questa funzione imposta il numero di sequenza utilizzato con la modalità indirizzo anycast.
otSrpServerSetAutoEnableMode(otInstance *aInstance, bool aEnabled)
void
Questa funzione abilita/disabilita la modalità di abilitazione automatica sul server SRP.
otSrpServerSetDomain(otInstance *aInstance, const char *aDomain)
Questa funzione imposta il dominio sul server SRP.
otSrpServerSetEnabled(otInstance *aInstance, bool aEnabled)
void
Questa funzione abilita/disabilita il server SRP.
otSrpServerSetLeaseConfig(otInstance *aInstance, const otSrpServerLeaseConfig *aLeaseConfig)
Questa funzione imposta le configurazioni LEASE e KEY-LEASE del server SRP.
otSrpServerSetServiceUpdateHandler(otInstance *aInstance, otSrpServerServiceUpdateHandler aServiceHandler, void *aContext)
void
Questa funzione imposta il gestore degli aggiornamenti del servizio SRP sul server SRP.
otSrpServerSetTtlConfig(otInstance *aInstance, const otSrpServerTtlConfig *aTtlConfig)
Questa funzione imposta la configurazione TTL del server SRP.

Struttura

otSrpClientBuffersServiceEntry

Questa struttura rappresenta una voce del pool di servizi del client SRP.

OtSrpClientHostInfo

Questa struttura rappresenta le informazioni di un host client SRP.

otSrpClientService

Questa struttura rappresenta un servizio client SRP.

OtSrpServerLeaseConfig

Questa struttura include le configurazioni LEASE e server KEY-LEASE del server SRP.

OtSrpServerLeaseInfo

Questa struttura include le informazioni di lease del server SRP di un host/servizio.

otSrpServerResponseCounters

Questa struttura include le statistiche delle risposte del server SRP.

otSrpServerTtlConfig

Questa struttura include le configurazioni TTL del server SRP.

Enumerazioni

enumerazione anonima

 anonymous enum
Proprietà
OT_SRP_SERVER_SERVICE_FLAG_ACTIVE

Includere i servizi attivi (non eliminati).

OT_SRP_SERVER_SERVICE_FLAG_BASE_TYPE

Includere i servizi di base (non un sottotipo).

OT_SRP_SERVER_SERVICE_FLAG_DELETED

Includere i servizi eliminati.

OT_SRP_SERVER_SERVICE_FLAG_SUB_TYPE

Include servizi di sottotipo.

enumerazione anonima

 anonymous enum
Proprietà
OT_SRP_SERVER_FLAGS_ANY_SERVICE

Questa costante definisce una combinazione otSrpServerServiceFlags che accetta qualsiasi servizio (sottotipo/sottotipo, attivo/eliminato).

OT_SRP_SERVER_FLAGS_ANY_TYPE_ACTIVE_SERVICE

Questa costante definisce una combinazione otSrpServerServiceFlags che accetta qualsiasi servizio attivo (non eliminato).

OT_SRP_SERVER_FLAGS_ANY_TYPE_DELETED_SERVICE

Questa costante definisce una combinazione otSrpServerServiceFlags che accetta qualsiasi servizio eliminato.

OT_SRP_SERVER_FLAGS_BASE_TYPE_SERVICE_ONLY

Questa costante definisce una combinazione otSrpServerServiceFlags che accetta solo il servizio di base.

OT_SRP_SERVER_FLAGS_SUB_TYPE_SERVICE_ONLY

Questa costante definisce una combinazione otSrpServerServiceFlags che accetta solo il servizio di sottotipo.

otSrpClientItemState

 otSrpClientItemState

Questa enumerazione specifica lo stato di un elemento client SRP (informazioni sul servizio o sull'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 con il server.

OT_SRP_CLIENT_ITEM_STATE_REMOVED

Elemento rimosso.

OT_SRP_CLIENT_ITEM_STATE_REMOVING

L'elemento è in fase di rimozione.

OT_SRP_CLIENT_ITEM_STATE_TO_ADD

Elemento da aggiungere/registrare.

OT_SRP_CLIENT_ITEM_STATE_TO_REFRESH

Elemento da aggiornare (nuova registrazione per il rinnovo dell'affitto).

OT_SRP_CLIENT_ITEM_STATE_TO_REMOVE

Elemento da rimuovere.

otSrpServerAddressMode

 otSrpServerAddressMode

Questa enumerazione rappresenta la modalità dell'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.

OstSrpServerState

 otSrpServerState

Questa enumerazione rappresenta lo stato del server SRP.

Proprietà
OT_SRP_SERVER_STATE_DISABLED

Il server SRP è disabilitato.

OT_SRP_SERVER_STATE_RUNNING

Il server SRP è abilitato e in esecuzione.

OT_SRP_SERVER_STATE_STOPPED

Il server SRP è abilitato, ma arrestato.

Defin

otSrpClientAutoStartCallback

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

Questo tipo di puntatore di funzione definisce il callback utilizzato dal client SRP per inviare una notifica all'utente quando viene avviato o arrestato automaticamente.

Questa opzione viene usata soltanto se è attiva la funzionalità di avvio automatico OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE.

Questo callback viene richiamato quando la modalità di avvio automatico è attivata 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 che fornirà l'indirizzo socket server selezionato. Un puntatore NULL indica che il server SRP è stato arrestato.
[in] aContext
Un puntatore a un contesto arbitrario (fornito quando è stato registrato il callback).

otSrpClientBuffersServiceEntry

struct otSrpClientBuffersServiceEntry otSrpClientBuffersServiceEntry

Questa struttura rappresenta una voce del pool di servizi del client SRP.

OtSrpClientCallback

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

Questo tipo di puntatore della funzione definisce il callback utilizzato dal client SRP per avvisare l'utente di modifiche/eventi/errori.

Questo callback viene attivato dopo la registrazione di un aggiornamento riuscito (ad esempio, l'aggiunta o la rimozione di informazioni sull'host e/o alcuni servizi) con il server SRP oppure se si verifica un errore o un errore (ad esempio un server rifiuta una richiesta di aggiornamento o il client scade in attesa di risposta e così via).

In caso di nuova registrazione di un aggiornamento, il parametro aError sarà OT_ERROR_NONE e le informazioni dell'host e l'elenco completo dei servizi vengono forniti come parametri di input per il callback. Tieni presente che le informazioni e i servizi host monitorano ciascuno il proprio stato nella variabile membro mState corrispondente della struttura dei dati correlati (lo stato che indica se le informazioni/il servizio host sono registrati o rimossi oppure sono ancora in fase di aggiunta/rimozione e così via).

L'elenco dei servizi rimossi viene passato come elenco privato collegato aRemovedServices nel callback. Tieni presente che, quando viene richiamato il callback, il client SRP (implementazione OpenThread) viene eseguito con le istanze di servizio rimosse in aRemovedServices e non le monitora più/le archivia (ad esempio, se dal callback chiamiamo otSrpClientGetServices() i servizi rimossi non saranno presenti nell'elenco restituito). La fornitura di un elenco separato di servizi rimossi nel callback permette di indicare all'utente quali elementi sono stati rimossi e permette all'utente di rivendicare/riutilizzare le istanze.

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

  • (0) NOERROR Operazione riuscita (nessuna condizione relativa all'errore) -> OT_ERROR_NONE
  • (1) Server FORMERR non interpretabile a causa di un errore di formato -> OT_ERROR_PARSE
  • (2) Il server SERVFAIL ha riscontrato un errore interno -> OT_ERROR_FAILED
  • (3) Il nome NXDOMAIN che dovrebbe esistere non esiste -> OT_ERROR_NOT_FOUND
  • (4) Il server NOTIMP non supporta il tipo di query (OpCode) -> OT_ERROR_NOT_IMPLEMENTED
  • (5) RIFIUTO Il server è stato rifiutato per motivi legati al criterio o alla sicurezza -> OT_ERROR_SAFE
  • (6) YXDOMAIN Un nome che non dovrebbe esistere esiste -> OT_ERROR_DUPLICATED
  • (7) YXRRSET Alcuni RRset che non dovrebbero esistere esistono -> OT_ERROR_DUPLICATED
  • (8) NXRRSET Alcuni RRset che dovrebbero esistere non esistono -> OT_ERROR_NOT_FOUND
  • (9) Il servizio NOTAUTH non è autorizzato per la zona -> OT_ERROR_SAFE
  • (10) NOTZONE Un nome non è nella zona -> OT_ERROR_PARSE
  • (20) BADNAME Nome non valido -> OT_ERROR_PARSE
  • (21) Algoritmo BADALG non valido -> OT_ERROR_SAFE
  • (22) BADTRUN Troncamento errato -> OT_ERROR_PARSE
  • Altri codici di risposta -> OT_ERROR_FAILED

Sono possibili anche i seguenti errori:

  • OT_ERROR_RESPONSE_TIMEOUT : Timeout in attesa della risposta dal server (il client continuerà a riprovare).
  • OT_ERROR_INVALID_ARGS : la struttura del servizio fornita non è valida (ad es. nome del 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 errori, il client continua l'operazione, ovvero prepara e (ri)trasmette il messaggio di aggiornamento SRP al server, dopo un intervallo di attesa. L'intervallo di attesa per i tentativi parte dal valore minimo e viene aumentato del fattore di crescita ogni errore fino al valore massimo (vedi il parametro di configurazione OPENTHREAD_CONFIG_SRP_CLIENT_MIN_RETRY_WAIT_INTERVAL e quelli correlati per ulteriori dettagli).

Dettagli
Parametri
[in] aError
L'errore (vedi sopra).
[in] aHostInfo
Un puntatore per ospitare le informazioni.
[in] aServices
Intestazione dell'elenco collegato contenente tutti i servizi (esclusi quelli rimossi). NULL se l'elenco è vuoto.
[in] aRemovedServices
Intestazione dell'elenco collegato contenente tutti i servizi rimossi. NULL se l'elenco è vuoto.
[in] aContext
Un puntatore a un contesto arbitrario (fornito quando è stato registrato il callback).

otSrpClientHostInfo

struct otSrpClientHostInfo otSrpClientHostInfo

Questa struttura rappresenta le informazioni di un host client SRP.

otSrpClientService

struct otSrpClientService otSrpClientService

Questa struttura rappresenta un servizio client SRP.

I valori in questa struttura, inclusi i buffer di stringa per i nomi e le voci dei record TXT, DEVONO rimanere e mantenere costanti dopo che un'istanza di questa struttura viene trasferita 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 un'istanza di otSrpClientService viene passata in otSrpClientAddService() o otSrpClientRemoveService() o in altre funzioni. Il chiamante non deve impostare questi campi.

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

otSrpServerAddressMode

enum otSrpServerAddressMode otSrpServerAddressMode

Questa enumerazione rappresenta la modalità dell'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

Questa struttura include le configurazioni LEASE e server KEY-LEASE del server SRP.

otSrpServerLeaseInfo

struct otSrpServerLeaseInfo otSrpServerLeaseInfo

Questa struttura include le informazioni di lease del server SRP di un host/servizio.

otSrpServerResponseCounters

struct otSrpServerResponseCounters otSrpServerResponseCounters

Questa struttura include le statistiche delle risposte del server SRP.

otSrpServerService

struct otSrpServerService otSrpServerService

Questo tipo opaco rappresenta un servizio SRP.

otSrpServerServiceFlag

uint8_t otSrpServerServiceFlags

Il tipo di flag di servizio che indica quali servizi includere o escludere durante la ricerca (o l'iterazione) nell'elenco dei servizi SRP.

Si tratta di una combinazione di flag. I flag di bit specifici sono definiti nell'enumerazione di OT_SRP_SERVER_FLAG_*.

otSrpServerServiceUpdateHandler

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

Questa funzione gestisce gli aggiornamenti del servizio SRP.

Questa funzione viene chiamata dal server SRP per notificare l'aggiornamento di un host SRP e possibilmente dei servizi SRP. È importante eseguire il commit degli aggiornamenti SRP finché il gestore non restituisce il risultato chiamando otSrpServerHandleServiceUpdateResult oppure scade dopo aTimeout.

Un osservatore di servizi SRP deve sempre chiamare otSrpServerHandleServiceUpdateResult con codice di errore OT_ERROR_NONE immediatamente dopo aver ricevuto gli eventi di aggiornamento.

Un gestore più generico può eseguire le convalide sull'host/servizi SRP e rifiutare gli aggiornamenti SRP se la convalida non va a buon fine. Ad esempio, un proxy pubblicitario dovrebbe pubblicizzare (o rimuovere) l'host e i servizi su un link compatibile con multicast e restituisce un codice di errore specifico se si verifica un errore.

Dettagli
Parametri
[in] aId
L'ID transazione dell'aggiornamento del servizio. Questo ID deve essere trasmesso di nuovo 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 punta a questo host con le regole seguenti:
  1. Se l'host non è eliminato (indicato da otSrpServerHostIsDeleted), deve essere pubblicato o aggiornato con mDNS. In caso contrario, la pubblicazione dell'host deve essere annullata (rimuovi AAAA RR).
  2. Per ogni servizio punta a questo host, la pubblicazione deve essere annullata se la pubblicazione dell'host deve essere annullata. In caso contrario, il gestore deve pubblicare o aggiornare il servizio quando non viene eliminato (indicato da otSrpServerServiceIsDeleted) e annullarne la pubblicazione quando viene eliminato.
[in] aTimeout
Il tempo massimo, in millisecondi, per il gestore da elaborare l'evento di 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 del servizio SRP sul server SRP.

otSrpServerTtlConfig

struct otSrpServerTtlConfig otSrpServerTtlConfig

Questa struttura include le configurazioni TTL del server SRP.

Functions

otSrpClientAddService

otError otSrpClientAddService(
  otInstance *aInstance,
  otSrpClientService *aService
)

Questa funzione aggiunge un servizio da registrare nel server.

Una chiamata a questa funzione andata a buon fine, otSrpClientCallback verrà chiamata per segnalare lo stato dell'aggiunta/registrazione del servizio con il server SRP.

L'istanza otSrpClientService a cui fa riferimento aService DEVE persistere e rimanere invariata dopo il ritorno da questa funzione (con OT_ERROR_NONE). OpenThread salverà il puntatore sull'istanza di servizio.

L'istanza otSrpClientService non è più monitorata da OpenThread e può essere recuperata 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 riuscita. Il otSrpClientCallback verrà chiamato per segnalare lo stato.
OT_ERROR_ALREADY
Un servizio con gli stessi nomi di servizi e istanze è già presente nell'elenco.
OT_ERROR_INVALID_ARGS
La struttura del servizio non è valida (ad es. nome del servizio non valido o otDnsTxtEntry).

otSrpClientBuffersAllocateService

otSrpClientBuffersServiceEntry * otSrpClientBuffersAllocateService(
  otInstance *aInstance
)

Questa funzione alloca una nuova voce di servizio dal pool.

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

  • mService.mName punta a un buffer di stringa allocato che può essere recuperato utilizzando la funzione otSrpClientBuffersGetServiceEntryServiceNameString().
  • mService.mInstanceName punta 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.
  • Gli altri campi mService (porta, priorità, peso) sono impostati su zero.
  • Il valore mTxtEntry.mKey è impostato su NULL (il valore viene considerato come già codificato).
  • mTxtEntry.mValue punterà a un buffer allocato che può essere recuperato utilizzando la funzione otSrpClientBuffersGetServiceEntryTxtBuffer().
  • Il valore di mTxtEntry.mValueLength è impostato su zero.
  • Tutti i buffer e gli array di dati/stringi correlati vengono cancellati da zero.

Dettagli
Parametri
[in] aInstance
Un puntatore all'istanza OpenThread.
Restituisce
Un puntatore alla voce del servizio appena allocata o a NULL se non sono disponibili altre voci nel pool.

otSrpClientBuffersFreeAllServices

void otSrpClientBuffersFreeAllServices(
  otInstance *aInstance
)

Questa funzione libera tutte le voci di servizio assegnate in precedenza.

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

otSrpClientBuffersFreeService

void otSrpClientBuffersFreeService(
  otInstance *aInstance,
  otSrpClientBuffersServiceEntry *aService
)

Questa funzione libera una voce di servizio allocata in precedenza.

L'offerta aService DEVE essere stata assegnata in precedenza utilizzando otSrpClientBuffersAllocateService() e non ancora liberata. 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
)

Questa funzione riceve l'array di voci IPv6 da utilizzare come elenco di indirizzi host client SRP.

Dettagli
Parametri
[in] aInstance
Un puntatore all'istanza OpenThread.
[out] aArrayLength
Posiziona il puntatore su una variabile per restituire la lunghezza dell'array, ovvero il numero di voci di indirizzo 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
)

Questa funzione recupera il buffer di stringa da utilizzare per il nome host del client SRP.

Dettagli
Parametri
[in] aInstance
Un puntatore all'istanza OpenThread.
[out] aSize
Posiziona il puntatore del mouse su una variabile affinché restituisca le dimensioni (numero di byte) del buffer di stringhe (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
)

Questa funzione ottiene il buffer di stringa per il nome dell'istanza 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 le dimensioni (numero di byte) del buffer di stringa (NON DEVE essere NULL).
Restituisce
Un puntatore al buffer di stringa.

otSrpClientBuffersGetServiceEntryServiceNameString

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

Questa funzione recupera il buffer di stringa 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 le dimensioni (numero di byte) del buffer di stringa (NON DEVE essere NULL).
Restituisce
Un puntatore al buffer di stringa.

otSrpClientBuffersGetServiceEntryTxtBuffer

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

Questa funzione recupera 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 le dimensioni (numero di byte) del buffer (NON DEVE essere NULL).
Restituisce
Un puntatore al buffer.

otSrpClientBuffersGetSubTypeLabelsArray

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

Questa funzione recupera l'array per le etichette del sottotipo di servizio dalla voce del 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 (DEVE NON essere NULL).
Restituisce
Un puntatore alla matrice.

otSrpClientClearHostAndServices

void otSrpClientClearHostAndServices(
  otInstance *aInstance
)

Questa funzione 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 immediatamente tutte le informazioni senza alcuna interazione con il server.

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

otSrpClientClearService

otError otSrpClientClearService(
  otInstance *aInstance,
  otSrpClientService *aService
)

Questa funzione 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. Se la chiamata a questa funzione ha esito positivo, otSrpClientCallback NON verrà chiamato e la voce aService potrà essere recuperata e riutilizzata immediatamente dal chiamante.

Questa funzione può essere utilizzata insieme a una chiamata successiva a otSrpClientAddService() (riutilizzando potenzialmente la stessa voce aService con lo stesso servizio e gli stessi nomi di istanza) per aggiornare alcuni 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.

otSrpClientDisabledAutoStartMode

void otSrpClientDisableAutoStartMode(
  otInstance *aInstance
)

Questa funzione disattiva la modalità di avvio automatico.

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

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 dei thread per verificare che il server SRP selezionato sia ancora presente.

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
)

Questa funzione attiva la modalità indirizzo host automatico.

Quando questa opzione è abilitata, gli indirizzi IPv6 dell'host vengono impostati automaticamente dal client SRP utilizzando tutti gli indirizzi unicast su Thread netif, escludendo tutti gli indirizzi locale rispetto al collegamento e mesh-local. Se non esiste un indirizzo valido, viene aggiunto l'indirizzo EID mesh locale. Il client SRP viene registrato di nuovo automaticamente quando/se gli indirizzi sulla rete Thread vengono aggiornati (vengono aggiunti nuovi indirizzi o vengono rimossi gli indirizzi esistenti).

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

Dopo aver attivato la modalità indirizzo host automatico, può essere disattivata da una chiamata al numero otSrpClientSetHostAddresses(), che a sua volta imposta esplicitamente gli indirizzi host.

Dettagli
Valori restituiti
OT_ERROR_NONE
Attivazione automatica della modalità indirizzo host automatica.
OT_ERROR_INVALID_STATE
L'host è in fase di rimozione e non può quindi attivare la modalità indirizzo automatico dell'host.

otSrpClientEnableAutoStartMode

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

Questa funzione attiva la modalità di avvio automatico.

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

L'opzione di configurazione OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_DEFAULT_MODE specifica la modalità di avvio automatico predefinito (se è 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 seleziona il server preferito. Inoltre, il client viene avviato e arrestato automaticamente quando viene rilevato un server SRP.

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

1) Voci di notifica preferite in cui l'indirizzo del server è incluso nei dati di servizio. Se sono disponibili più opzioni, è preferibile avere un indirizzo IPv6 numericamente più basso.

2) Tutte le voci anycast che hanno un numero seq. 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. È preferibile utilizzare il numero seq più grande che utilizza l'aritmetica del numero di serie, se è ben definito (ad esempio, il numero seq è maggiore di tutti gli altri numeri seq). Se il nome non è ben definito, è preferibile utilizzare il numero seq più grande dal punto di vista numerico.

3) Voci unicast in cui le informazioni sull'indirizzo del server sono incluse nei dati del server. Se sono disponibili più opzioni, è preferibile avere un indirizzo IPv6 numericamente più basso.

Quando si verifica un cambiamento nelle voci dei dati di rete, il client controlla 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 verrà interrotto se non ce n'è uno.

Quando il client SRP viene avviato esplicitamente tramite una chiamata 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, la chiamata verrà interrotta solo da una chiamata otSrpClientStop() esplicita.

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

otSrpClientGetDomainName

const char * otSrpClientGetDomainName(
  otInstance *aInstance
)

Questa funzione ottiene il nome di dominio utilizzato dal client SRP.

Questa funzione richiede che sia abilitato 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
)

Questa funzione riceve le informazioni dell'host.

Dettagli
Parametri
[in] aInstance
Un puntatore all'istanza OpenThread.
Restituisce
Un puntatore che consente di ospitare la struttura delle informazioni.

otSrpClientGetKeyLeaseInterval

uint32_t otSrpClientGetKeyLeaseInterval(
  otInstance *aInstance
)

Questa funzione riceve 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 mKeyLease è impostato su zero.

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

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

otSrpClientGetLeaseInterval

uint32_t otSrpClientGetLeaseInterval(
  otInstance *aInstance
)

Questa funzione riceve l'intervallo di lease predefinito utilizzato nelle richieste di aggiornamento SRP.

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

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

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

otSrpClientGetServerAddress

const otSockAddr * otSrpClientGetServerAddress(
  otInstance *aInstance
)

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

Se il client non è in esecuzione, l'indirizzo non è specificato (tutti zero) con 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
)

Questa funzione ottiene 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 di NULL se l'elenco è vuoto.

otSrpClientGetTtl

uint32_t otSrpClientGetTtl(
  otInstance *aInstance
)

Questa funzione riceve il valore TTL in ogni record incluso nelle richieste di aggiornamento SRP.

Tieni presente che questo è il TTL richiesto dal client SRP. Il server può scegliere di accettare un TTL diverso.

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

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

otSrpClientIsAutoStartModeEnabled

bool otSrpClientIsAutoStartModeEnabled(
  otInstance *aInstance
)

Questa funzione indica lo stato corrente della modalità di avvio automatico (attivata o disabilitata).

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

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
)

Questa funzione 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 in caso contrario.

otSrpClientIsServiceKeyRecordEnabled

bool otSrpClientIsServiceKeyRecordEnabled(
  otInstance *aInstance
)

Questo metodo indica se la modalità "Inclusione dei record della chiave di servizio" è abilitata o disabilitata.

Questa funzione è disponibile quando la configurazione OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE è abilitata.

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

otSrpClientItemStateToString

const char * otSrpClientItemStateToString(
  otSrpClientItemState aItemState
)

Questa funzione converte un otSrpClientItemState in una stringa.

Dettagli
Parametri
[in] aItemState
Lo stato di un elemento.
Restituisce
Una rappresentazione stringa di aItemState.

otSrpClientRemoveHostAndServices

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

Questa funzione avvia il processo di rimozione delle informazioni host e di tutti i servizi.

Dopo il 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, aRemoveKeyLease deve essere impostato su true, in modo da rimuovere l'affitto della chiave associato all'host sul server. In caso contrario, il record di leasing della chiave viene mantenuto come prima, assicurando così che il server mantenga il nome host in riserva per quando il client è nuovamente in grado di fornire e registrare il suo servizio o i suoi servizi.

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

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

Dettagli
Parametri
[in] aInstance
Un puntatore all'istanza OpenThread.
[in] aRemoveKeyLease
Un valore booleano che indica se rimuovere o meno anche il lease della chiave host.
[in] aSendUnregToServer
Un valore booleano che indica se inviare un aggiornamento al server quando non sono registrate informazioni host.
Valori restituiti
OT_ERROR_NONE
La rimozione di informazioni e servizi dell'host è iniziata. Il otSrpClientCallback verrà chiamato per segnalare lo stato.
OT_ERROR_ALREADY
Le informazioni dell'host sono già state rimosse.

otSrpClientRemoveService

otError otSrpClientRemoveService(
  otInstance *aInstance,
  otSrpClientService *aService
)

Questa funzione richiede che un servizio venga annullato per la registrazione 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 fa riferimento aService DEVE persistere e 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 che viene chiamato otSrpClientCallback, l'istanza di servizio viene rimossa dall'elenco di 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 è iniziata. Il 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
)

Questa funzione imposta il callback per inviare una notifica al chiamante per gli eventi o le modifiche dal client SRP.

Il client SRP consente la registrazione di un singolo callback. Pertanto, le chiamate consecutive a questa funzione sovrascriveranno 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
)

Questa funzione imposta il nome di dominio che deve essere utilizzato dal client SRP.

Questa funzione richiede che sia abilitato OPENTHREAD_CONFIG_SRP_CLIENT_DOMAIN_NAME_API_ENABLE.

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

Il buffer della stringa del nome indicato da aName DEVE persistere 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 host siano registrate sul server (le informazioni 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 su default "default.service.arpa".
Valori restituiti
OT_ERROR_NONE
L'etichetta del nome di dominio è stata impostata correttamente.
OT_ERROR_INVALID_STATE
Le informazioni dell'host sono già registrate sul server.

otSrpClientSetHostAddresses

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

Questa funzione imposta/aggiorna l'elenco degli indirizzi IPv6 dell'host.

Gli indirizzi IPv6 dell'host possono essere impostati/modificati prima dell'avvio o durante il funzionamento del client SRP (ad es. per aggiungere/rimuovere o modificare un indirizzo host registrato in precedenza), tranne quando le informazioni sull'host vengono rimosse (il client è occupato nella gestione di 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 indicato da aIp6Addresses DEVE persistere e rimanere invariato dopo il ritorno da questa funzione (con OT_ERROR_NONE). OpenThread salverà il puntatore sull'array.

Una chiamata a questa funzione riuscita, otSrpClientCallback verrà chiamata per segnalare lo stato della registrazione dell'indirizzo al server SRP.

Una chiamata a questa funzione disattiva la modalità indirizzo host automatico se precedentemente era attivata da una chiamata riuscita a otSrpClientEnableAutoHostAddress().

Dettagli
Parametri
[in] aInstance
Un puntatore all'istanza OpenThread.
[in] aIp6Addresses
Un puntatore all'array che contiene gli indirizzi IPv6 dell'host.
[in] aNumAddresses
Il numero di indirizzi nell'array aIp6Addresses.
Valori restituiti
OT_ERROR_NONE
Modifica dell'elenco di indirizzi IPv6 dell'host avviata. Il otSrpClientCallback verrà chiamato per segnalare lo stato della registrazione degli indirizzi sul server.
OT_ERROR_INVALID_ARGS
L'elenco di indirizzi non è valido (ad es. deve contenere almeno un indirizzo).
OT_ERROR_INVALID_STATE
L'host è in fase di rimozione e non può quindi essere modificato.

NomeOtSrpClientSetHostName

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

Questa funzione imposta l'etichetta del nome host.

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

Il buffer della stringa del nome indicato da aName DEVE persistere 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'inizio, ma prima che le informazioni host siano registrate sul server (le informazioni dell'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 di stringa DEVE persistere e rimanere valido e costante dopo il ritorno da questa funzione.
Valori restituiti
OT_ERROR_NONE
L'etichetta del nome host è stata impostata correttamente.
OT_ERROR_INVALID_ARGS
Il aName è NULL.
OT_ERROR_INVALID_STATE
Il nome host è già impostato e registrato con il server.

otSrpClientSetKeyLeaseInterval

void otSrpClientSetKeyLeaseInterval(
  otInstance *aInstance,
  uint32_t aInterval
)

Questa funzione imposta 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 mKeyLease è impostato su zero.

La modifica dell'intervallo di leasing non influisce sull'intervallo di leasing accettato per i servizi/host host già registrati. Incide sugli eventuali messaggi di aggiornamento SRP futuri (ad esempio l'aggiunta di nuovi servizi e/o gli aggiornamenti dei servizi esistenti).

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

otSrpClientSetLeaseInterval

void otSrpClientSetLeaseInterval(
  otInstance *aInstance,
  uint32_t aInterval
)

Questa funzione imposta l'intervallo di lease predefinito utilizzato nelle richieste di aggiornamento SRP.

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

La modifica dell'intervallo di leasing non influisce sull'intervallo di leasing accettato per i servizi già registrati/le informazioni dell'host. Incide solo sui messaggi di aggiornamento SRP futuri (ad esempio sull'aggiunta di nuovi servizi e/o sugli aggiornamenti dei servizi esistenti).

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

otSrpClientSetServiceKeyRecordEnabled

void otSrpClientSetServiceKeyRecordEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Questa funzione abilita/disabilita "Modalità di inclusione del record dei tasti di servizio".

Quando è attivato, il client SRP includerà il record KEY nelle istruzioni per la descrizione del servizio nei messaggi di aggiornamento SRP che invia.

Questa funzione è disponibile quando la configurazione OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE è abilitata.

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

otSrpClientSetTtl

void otSrpClientSetTtl(
  otInstance *aInstance,
  uint32_t aTtl
)

Questa funzione 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. Incide solo sui messaggi di aggiornamento SRP futuri (ovvero sull'aggiunta di nuovi servizi e/o sugli 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 leasing, il TTL è impostato sull'intervallo di leasing.

otSrpClientStart

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

Questa funzione avvia l'operazione client SRP.

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

Non importa in quale ordine vengono chiamate queste funzioni. Quando tutte le condizioni sono soddisfatte, il client SRP attende un breve ritardo prima di preparare un messaggio "Aggiornamento SRP" e inviarlo al server. Questo ritardo consente all'utente di aggiungere più servizi e/o indirizzi IPv6 prima dell'invio del primo messaggio di aggiornamento SRP (garantisce che venga inviato un singolo aggiornamento SRP contenente tutte le informazioni). Il parametro config 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 è iniziata o è già in esecuzione con lo stesso indirizzo del socket del server e il callback.
OT_ERROR_BUSY
Il client SRP è occupato in esecuzione con un indirizzo socket diverso.
OT_ERROR_FAILED
Impossibile aprire/connettere il socket UDP del client.

otSrpClientStop

void otSrpClientStop(
  otInstance *aInstance
)

Questa funzione interrompe l'operazione del client SRP.

Questa funzione interrompe qualsiasi interazione con il server SRP. Tieni presente che non rimuove o cancella le informazioni sull'host e/o l'elenco di servizi. Contrassegna tutti i servizi da aggiungere/rimuovere di nuovo una volta che il client è stato (ri)avviato.

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

otSrpServerGetAddressMode

otSrpServerAddressMode otSrpServerGetAddressMode(
  otInstance *aInstance
)

Questa funzione restituisce la modalità indirizzo utilizzata dal server SRP.

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

otSrpServerGetThatcastModeModeNumber

uint8_t otSrpServerGetAnycastModeSequenceNumber(
  otInstance *aInstance
)

Questa funzione restituisce il numero di sequenza utilizzato con la modalità indirizzo anycast.

Il numero di sequenza è incluso nella voce "Indirizzo DNS/SRP relativo al 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
)

Questa funzione restituisce il dominio autorizzato al server SRP.

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

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
Restituisce
Un puntatore alla stringa del dominio unita da punti.

otSrpServerGetLeaseConfig

void otSrpServerGetLeaseConfig(
  otInstance *aInstance,
  otSrpServerLeaseConfig *aLeaseConfig
)

Questa funzione 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
)

Questa funzione restituisce l'host registrato successivo 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 è possibile trovare altri host.

otSrpServerGetPort

uint16_t otSrpServerGetPort(
  otInstance *aInstance
)

Questa funzione restituisce la porta che il server SRP sta ascoltando.

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
)

Questa funzione restituisce i contatori della risposta del server SRP.

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

otSrpServerGetState

otSrpServerState otSrpServerGetState(
  otInstance *aInstance
)

Questa funzione 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
)

Questa funzione 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
)

Questa funzione segnala il risultato dell'elaborazione di un aggiornamento SRP nel server SRP.

Il gestore degli aggiornamenti di servizio 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 relativi ai nomi DNS.

otSrpServerHostFindNextService

const otSrpServerService * otSrpServerHostFindNextService(
  const otSrpServerHost *aHost,
  const otSrpServerService *aPrevService,
  otSrpServerServiceFlags aFlags,
  const char *aServiceName,
  const char *aInstanceName
)

Questa funzione trova il servizio successivo corrispondente nell'host.

La combinazione di flag e nomi di servizi e istanze consente di eseguire l'iterazione sull'elenco completo dei servizi e/o un sottoinsieme di questi in base a determinate condizioni o di trovare un servizio specifico.

Per eseguire l'iterazione su tutti i servizi di un host: service = otSrpServerHostFindNextService(host, servizio, OT_SRP_SERVER_FLAGS_ANY_SERVICE, NULL, NULL);

Per eseguire l'iterazione solo sui servizi di base (esclusi i sottotipi): service = otSrpServerHostFindNextService(host, servizio, OT_SRP_SERVER_FLAGS_BASE_TYPE_SERVICE_ONLY, NULL, NULL);

Per eseguire l'iterazione su sottotipi di un nome di istanza specifico instanceName: service = otSrpServerHostFindNextService(host, servizio, OT_SRP_SERVER_FLAGS_SUB_TYPE_SERVICE_ONLY, NULL, instanceName);

Per trovare un servizio specifico con il nome del servizio serviceName e il nome dell'istanza del servizio instanceName: service = otSrpServerHostFindNextService(host, NULL, OT_SRP_SERVER_FLAGS_ANY_SERVICE, serviceName, instanceName);

Per trovare il servizio di tipo base con un determinato nome di istanza di servizio instanceName: service = otSrpServerHostFindNextService(host, NULL, OT_SRP_SERVER_FLAGS_BASE_TYPE_SERVICE_ONLY, NULL, instanceName);

Dettagli
Parametri
[in] aHost
Un puntatore all'host del servizio SRP (NON DEVE essere NULL).
[in] aPrevService
Un puntatore al servizio precedente o a NULL per iniziare dall'inizio dell'elenco.
[in] aFlags
Contrassegni che indicano quali servizi includere (sottotipo/base, attivo/eliminato).
[in] aServiceName
Il nome del servizio da abbinare. Imposta NULL per accettare qualsiasi nome.
[in] aInstanceName
Il nome dell'istanza di servizio con cui stabilire una corrispondenza. Imposta NULL per accettare qualsiasi nome.
Restituisce
Un puntatore al servizio corrispondente successivo o NULL se non è stato trovato alcun servizio corrispondente.

otSrpServerHostGetAddresses

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

Questa funzione restituisce gli indirizzi di un determinato host.

Dettagli
Parametri
[in] aHost
Un puntatore all'host del servizio SRP.
[out] aAddressesNum
Un puntatore a dove dovremmo inviare il numero di indirizzi.
Restituisce
Un puntatore all'array di indirizzi IPv6.

otSrpServerHostGetFullName

const char * otSrpServerHostGetFullName(
  const otSrpServerHost *aHost
)

Questa funzione 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 terminata con null.

otSrpServerHostGetLeaseInfo

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

Questa funzione restituisce le informazioni LEASE e KEY-LEASE relative a un determinato host.

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

otSrpServerHostGetNextService

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

Questa funzione restituisce il servizio successivo (esclusi i servizi di sottotipo) di un determinato host.

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

otSrpServerHostIsDelete

bool otSrpServerHostIsDeleted(
  const otSrpServerHost *aHost
)

Questa funzione indica se l'host del servizio SRP è stato eliminato.

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

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

otSrpServerIsAutoEnableMode

bool otSrpServerIsAutoEnableMode(
  otInstance *aInstance
)

Questa funzione indica se la modalità di attivazione automatica è attivata o disattivata.

Questa funzione richiede la funzione OPENTHREAD_CONFIG_BORDER_ROUTING_ENABLE.

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

otSrpServerServiceGetFullName

const char * otSrpServerServiceGetFullName(
  const otSrpServerService *aService
)

Questa funzione restituisce il nome completo dell'istanza 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.

otSrpServerServiceGetHost

const otSrpServerHost * otSrpServerServiceGetHost(
  const otSrpServerService *aService
)

Questa funzione restituisce l'host su cui si trova l'istanza di servizio.

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

otSrpServerServiceGetInstanceName

const char * otSrpServerServiceGetInstanceName(
  const otSrpServerService *aService
)

Questa funzione restituisce il nome completo dell'istanza 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
)

Questa funzione restituisce le informazioni LEASE e KEY-LEASE relative a un determinato servizio.

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

otSrpServerServiceGetPort

uint16_t otSrpServerServiceGetPort(
  const otSrpServerService *aService
)

Questa funzione 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
)

Questa funzione 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
)

Questa funzione 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.

otSrpServerServiceGetServiceSubTypeLabel

otError otSrpServerServiceGetServiceSubTypeLabel(
  const otSrpServerService *aService,
  char *aLabel,
  uint8_t aMaxSize
)

Questa funzione riceve l'etichetta di sottotipo dal nome del servizio.

Questa funzione è destinata a essere utilizzata quando aService è un sottotipo, ovvero otSrpServerServiceIsSubType() per il servizio restituisce TRUE. Se non si tratta di un sottotipo, questa funzione restituisce OT_ERROR_INVALID_ARGS.

Il nome completo di un servizio di sottotipo segue "._sub...". Questa funzione copia nel buffer aLabel.

Assicurati che la terminazione di aLabel venga sempre terminata dopo il ritorno anche in caso di errore.

Dettagli
Parametri
[in] aService
Un puntatore al servizio SRP.
[out] aLabel
Un puntatore a un buffer in cui copiare il nome dell'etichetta del sottotipo.
[in] aMaxSize
Dimensione massima di aLabel buffer.
Valori restituiti
OT_ERROR_NONE
Aggiornamento di aLabel completato.
OT_ERROR_NO_BUFS
Impossibile inserire l'etichetta del sottotipo nel buffer aLabel (il numero di caratteri dell'etichetta che potrebbe rientrare viene copiato in aLabel assicurando che sia nullo).
OT_ERROR_INVALID_ARGS
Il servizio SRP non è un sottotipo.

otSrpServerServiceGetTtl

uint32_t otSrpServerServiceGetTtl(
  const otSrpServerService *aService
)

Questa funzione 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
)

Questa funzione restituisce i dati del record TXT dell'istanza del servizio.

Dettagli
Parametri
[in] aService
Un puntatore al servizio SRP.
[out] aDataLength
Un puntatore che restituisce 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).

otSrpServerServiceGetWeweight

uint16_t otSrpServerServiceGetWeight(
  const otSrpServerService *aService
)

Questa funzione restituisce la ponderazione dell'istanza di servizio.

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

otSrpServerServiceIsDelete

bool otSrpServerServiceIsDeleted(
  const otSrpServerService *aService
)

Questa funzione indica se il servizio SRP è stato eliminato o meno.

Un servizio SRP può essere eliminato, ma conserva il suo nome per utilizzi futuri. In questo caso, l'istanza del servizio non viene rimossa dal server/registro SRP. Se viene eliminato l'host, è garantito che tutti i servizi vengano eliminati.

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

otSrpServerServiceIsSubType

bool otSrpServerServiceIsSubType(
  const otSrpServerService *aService
)

Questa funzione indica se il servizio SRP è o meno di sottotipo.

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

otSrpServerSetAddressMode

otError otSrpServerSetAddressMode(
  otInstance *aInstance,
  otSrpServerAddressMode aMode
)

Questa funzione imposta la modalità indirizzo che deve essere utilizzata dal server SRP.

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

otSrpServerSetQualsiasicastModeModeNumber

otError otSrpServerSetAnycastModeSequenceNumber(
  otInstance *aInstance,
  uint8_t aSequenceNumber
)

Questa funzione 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
Impostazione della modalità dell'indirizzo riuscita.
OT_ERROR_INVALID_STATE
Il server SRP è abilitato e il numero di sequenza non può essere modificato.

otSrpServerSetAutoEnableMode

void otSrpServerSetAutoEnableMode(
  otInstance *aInstance,
  bool aEnabled
)

Questa funzione abilita/disabilita la modalità di abilitazione automatica sul server SRP.

Questa funzione richiede la funzione OPENTHREAD_CONFIG_BORDER_ROUTING_ENABLE.

Quando questa modalità è abilitata, Border Routing Manager controlla se/quando attivare o disattivare il server SRP. Il server SRP è abilitato automaticamente se/quando il routing del confine è avviato e viene eseguito con le configurazioni di prefisso e route iniziali (quando vengono determinati i prefissi OMR e on-link, pubblicizzati nel messaggio di pubblicità del router emesso sul lato dell'infrastruttura e pubblicati nei dati di rete di Thread). Il server SRP viene disabilitato automaticamente se/quando BR viene interrotto (ad es. se l'interfaccia di rete dell'infrastruttura è interrotta o se BR si scollega).

Questa modalità può essere disattivata da una chiamata otSrpServerSetAutoEnableMode() con aEnabled impostato su false o se il server SRP è esplicitamente abilitato o disabilitato da una chiamata alla funzione otSrpServerSetEnabled(). La disattivazione della modalità di attivazione automatica utilizzando otSrpServerSetAutoEnableMode(false) non cambierà lo stato attuale del server SRP (ad esempio, se è abilitato, rimane attivo).

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

otSrpServerSetDomain

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

Questa funzione imposta il dominio sul server SRP.

Se non è già presente, verrà aggiunto un punto finale a aDomain. Questa funzione deve essere richiamata solo prima che il server SRP sia abilitato.

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
Il dominio è stato impostato su aDomain.
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 è disponibile alcun ricordo per aDomain.

otSrpServerSetEnabled

void otSrpServerSetEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Questa funzione abilita/disabilita il server SRP.

Su un router di confine consigliamo invece di usare otSrpServerSetAutoEnableMode().

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

otSrpServerSetLeaseConfig

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

Questa funzione imposta le configurazioni LEASE e KEY-LEASE del server SRP.

Quando un client richiede un tempo LEASE diverso da zero, il valore concesso sarà limitato nell'intervallo [aMinLease, aMaxLease] e verrà concesso un valore KEY-LEASE diverso da zero compreso nell'intervallo [aMinKeyLease, aMaxKeyLease]. Per il tempo LEASE o KEY-LEASE zero, 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
Impostazione degli intervalli LEASE e KEY-LEASE riuscita.
OT_ERROR_INVALID_ARGS
L'intervallo LEASE o KEY-LEASE non è valido.

otSrpServerSetServiceUpdateHandler

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

Questa funzione 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 alle informazioni di contesto arbitrarie. Potrebbe non essere NULL se non viene usato.

otSrpServerSetTtlConfig

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

Questa funzione imposta la configurazione TTL del server SRP.

Il TTL concesso non sarà mai superiore all'intervallo massimo di lease configurato tramite otSrpServerSetLeaseConfig(), indipendentemente dalla configurazione TTL minima 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
Impostazione del valore TTL completata.
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 scoprire di più o per contribuire alla nostra documentazione, consulta le Risorse.