SRP
En este módulo, se incluyen funciones que controlan el comportamiento del cliente de SRP.
Resumen
En este módulo, se incluyen funciones del protocolo de registro de servicios.
En este módulo, se incluyen funciones para el grupo de servicios y los búferes de cliente de SRP.
Las funciones de este módulo solo están disponibles cuando la función OPENTHREAD_CONFIG_SRP_CLIENT_BUFFERS_ENABLE está habilitada.
Enumeraciones |
|
---|---|
otSrpClientItemState{
|
enum Especifica el estado de un elemento de cliente de SRP (información del servicio o host). |
otSrpServerAddressMode{
|
enum Representa el modo de dirección que usa el servidor de SRP. |
otSrpServerState{
|
enum Representa el estado del servidor de SRP. |
Typedefs |
|
---|---|
otSrpClientAutoStartCallback)(const otSockAddr *aServerSockAddr, void *aContext)
|
typedefvoid(*
El tipo de puntero define la devolución de llamada que usa el cliente de SRP para notificar al usuario cuando se inicia o se detiene automáticamente. |
otSrpClientBuffersServiceEntry
|
typedef Representa una entrada del grupo de servicios del cliente de SRP. |
otSrpClientCallback)(otError aError, const otSrpClientHostInfo *aHostInfo, const otSrpClientService *aServices, const otSrpClientService *aRemovedServices, void *aContext)
|
typedefvoid(*
El tipo de puntero define la devolución de llamada que usa el cliente de SRP para notificar al usuario sobre cambios, eventos o errores. |
otSrpClientHostInfo
|
typedefstruct otSrpClientHostInfo
Representa la información del host de un cliente de SRP. |
otSrpClientService
|
typedefstruct otSrpClientService
Representa un servicio de cliente de SRP. |
otSrpServerAddressMode
|
typedef Representa el modo de dirección que usa el servidor de SRP. |
otSrpServerHost
|
typedefstruct otSrpServerHost
Este tipo opaco representa un host de servicio de SRP. |
otSrpServerLeaseConfig
|
typedefstruct otSrpServerLeaseConfig
Incluye las configuraciones LEASE y KEY-LEASE del servidor SRP. |
otSrpServerLeaseInfo
|
typedefstruct otSrpServerLeaseInfo
Incluye información de arrendamiento del servidor de SRP de un host o servicio. |
otSrpServerResponseCounters
|
typedefstruct otSrpServerResponseCounters
Incluye las estadísticas de las respuestas del servidor de SRP. |
otSrpServerService
|
typedefstruct otSrpServerService
Este tipo opaco representa un servicio de SRP. |
otSrpServerServiceUpdateHandler)(otSrpServerServiceUpdateId aId, const otSrpServerHost *aHost, uint32_t aTimeout, void *aContext)
|
typedefvoid(*
Controla las actualizaciones del servicio de SRP. |
otSrpServerServiceUpdateId
|
typedefuint32_t
Es el ID de una transacción de actualización del servicio de SRP en el servidor de SRP. |
otSrpServerTtlConfig
|
typedefstruct otSrpServerTtlConfig
Incluye configuraciones de TTL del servidor de SRP. |
remotas |
|
---|---|
otSrpClientAddService(otInstance *aInstance, otSrpClientService *aService)
|
Agrega un servicio para que se registre en el servidor.
|
otSrpClientBuffersAllocateService(otInstance *aInstance)
|
Asigna una entrada de servicio nueva desde el grupo.
|
otSrpClientBuffersFreeAllServices(otInstance *aInstance)
|
void
Libera todas las entradas de servicio asignadas anteriormente.
|
otSrpClientBuffersFreeService(otInstance *aInstance, otSrpClientBuffersServiceEntry *aService)
|
void
Libera una entrada de servicio asignada previamente.
|
otSrpClientBuffersGetHostAddressesArray(otInstance *aInstance, uint8_t *aArrayLength)
|
Obtiene el arreglo de entradas de direcciones IPv6 para usar como lista de direcciones de host de cliente de SRP.
|
otSrpClientBuffersGetHostNameString(otInstance *aInstance, uint16_t *aSize)
|
char *
Obtiene el búfer de cadenas para usar para el nombre de host del cliente de SRP.
|
otSrpClientBuffersGetServiceEntryInstanceNameString(otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize)
|
char *
Obtiene el búfer de cadenas para el nombre de la instancia de servicio de una entrada del servicio.
|
otSrpClientBuffersGetServiceEntryServiceNameString(otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize)
|
char *
Obtiene el búfer de cadenas para el nombre del servicio de una entrada del servicio.
|
otSrpClientBuffersGetServiceEntryTxtBuffer(otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize)
|
uint8_t *
Obtiene el búfer para el registro TXT de una entrada de servicio.
|
otSrpClientBuffersGetSubTypeLabelsArray(otSrpClientBuffersServiceEntry *aEntry, uint16_t *aArrayLength)
|
const char **
Obtiene el array para las etiquetas de subtipo de servicio de la entrada de servicio.
|
otSrpClientClearHostAndServices(otInstance *aInstance)
|
void
Borra toda la información del host y todos los servicios.
|
otSrpClientClearService(otInstance *aInstance, otSrpClientService *aService)
|
Borra un servicio y lo quita inmediatamente de la lista de servicios del cliente.
|
otSrpClientDisableAutoStartMode(otInstance *aInstance)
|
void
Inhabilita el modo de inicio automático.
|
otSrpClientEnableAutoHostAddress(otInstance *aInstance)
|
Habilita el modo automático de dirección de host.
|
otSrpClientEnableAutoStartMode(otInstance *aInstance, otSrpClientAutoStartCallback aCallback, void *aContext)
|
void
Habilita el modo de inicio automático.
|
otSrpClientGetDomainName(otInstance *aInstance)
|
const char *
Obtiene el nombre de dominio que usa el cliente de SRP.
|
otSrpClientGetHostInfo(otInstance *aInstance)
|
const otSrpClientHostInfo *
Obtiene la información del host.
|
otSrpClientGetKeyLeaseInterval(otInstance *aInstance)
|
uint32_t
Obtiene el intervalo de asignación de claves predeterminado que se usa en las solicitudes de actualización de SRP.
|
otSrpClientGetLeaseInterval(otInstance *aInstance)
|
uint32_t
Obtiene el intervalo de asignación predeterminado que se usa en las solicitudes de actualización de SRP.
|
otSrpClientGetServerAddress(otInstance *aInstance)
|
const otSockAddr *
Obtiene la dirección del socket (dirección IPv6 y número de puerto) del servidor de SRP que usa el cliente SRP.
|
otSrpClientGetServices(otInstance *aInstance)
|
const otSrpClientService *
Obtiene la lista de los servicios que administra el cliente.
|
otSrpClientGetTtl(otInstance *aInstance)
|
uint32_t
Obtiene el valor del TTL en cada registro incluido en las solicitudes de actualización de SRP.
|
otSrpClientIsAutoStartModeEnabled(otInstance *aInstance)
|
bool
Indica el estado actual del modo de inicio automático (habilitado o inhabilitado).
|
otSrpClientIsRunning(otInstance *aInstance)
|
bool
Indica si el cliente SRP está en ejecución o no.
|
otSrpClientIsServiceKeyRecordEnabled(otInstance *aInstance)
|
bool
Indica si el modo de "inclusión del registro de claves de servicio" está habilitado o inhabilitado.
|
otSrpClientItemStateToString(otSrpClientItemState aItemState)
|
const char *
Convierte un
otSrpClientItemState en una string. |
otSrpClientRemoveHostAndServices(otInstance *aInstance, bool aRemoveKeyLease, bool aSendUnregToServer)
|
Inicia el proceso de eliminación de la información del host y todos los servicios.
|
otSrpClientRemoveService(otInstance *aInstance, otSrpClientService *aService)
|
Solicita que se cancele el registro de un servicio en el servidor.
|
otSrpClientSetCallback(otInstance *aInstance, otSrpClientCallback aCallback, void *aContext)
|
void
Establece la devolución de llamada para notificar al emisor sobre eventos o cambios desde el cliente SRP.
|
otSrpClientSetDomainName(otInstance *aInstance, const char *aName)
|
Configura el nombre de dominio que usará el cliente de SRP.
|
otSrpClientSetHostAddresses(otInstance *aInstance, const otIp6Address *aIp6Addresses, uint8_t aNumAddresses)
|
Establece o actualiza la lista de direcciones IPv6 del host.
|
otSrpClientSetHostName(otInstance *aInstance, const char *aName)
|
Establece la etiqueta del nombre del host.
|
otSrpClientSetKeyLeaseInterval(otInstance *aInstance, uint32_t aInterval)
|
void
Establece el intervalo de asignación de claves predeterminado que se usa en las solicitudes de actualización de SRP.
|
otSrpClientSetLeaseInterval(otInstance *aInstance, uint32_t aInterval)
|
void
Establece el intervalo de asignación predeterminado que se usa en las solicitudes de actualización de SRP.
|
otSrpClientSetServiceKeyRecordEnabled(otInstance *aInstance, bool aEnabled)
|
void
Habilita o inhabilita el modo de “inclusión de registros de claves de servicios”.
|
otSrpClientSetTtl(otInstance *aInstance, uint32_t aTtl)
|
void
Establece el valor de TTL en cada registro incluido en las solicitudes de actualización de SRP.
|
otSrpClientStart(otInstance *aInstance, const otSockAddr *aServerSockAddr)
|
Inicia la operación de cliente de SRP.
|
otSrpClientStop(otInstance *aInstance)
|
void
Detiene la operación de cliente de SRP.
|
otSrpServerGetAddressMode(otInstance *aInstance)
|
Muestra el modo de dirección que usa el servidor de SRP.
|
otSrpServerGetAnycastModeSequenceNumber(otInstance *aInstance)
|
uint8_t
Muestra el número de secuencia que se usa con el modo de direcciones Anycast.
|
otSrpServerGetDomain(otInstance *aInstance)
|
const char *
Muestra el dominio autorizado al servidor de SRP.
|
otSrpServerGetLeaseConfig(otInstance *aInstance, otSrpServerLeaseConfig *aLeaseConfig)
|
void
Muestra las configuraciones LEASE y KEY-LEASE del servidor de SRP.
|
otSrpServerGetNextHost(otInstance *aInstance, const otSrpServerHost *aHost)
|
const otSrpServerHost *
Muestra el siguiente host registrado en el servidor de SRP.
|
otSrpServerGetPort(otInstance *aInstance)
|
uint16_t
Muestra el puerto que escucha el servidor de SRP.
|
otSrpServerGetResponseCounters(otInstance *aInstance)
|
const otSrpServerResponseCounters *
Muestra los contadores de respuesta del servidor de SRP.
|
otSrpServerGetState(otInstance *aInstance)
|
Muestra el estado del servidor de SRP.
|
otSrpServerGetTtlConfig(otInstance *aInstance, otSrpServerTtlConfig *aTtlConfig)
|
void
Muestra la configuración de TTL del servidor de SRP.
|
otSrpServerHandleServiceUpdateResult(otInstance *aInstance, otSrpServerServiceUpdateId aId, otError aError)
|
void
Informa el resultado del procesamiento de una actualización de SRP al servidor de SRP.
|
otSrpServerHostGetAddresses(const otSrpServerHost *aHost, uint8_t *aAddressesNum)
|
const otIp6Address *
Muestra las direcciones de un host determinado.
|
otSrpServerHostGetFullName(const otSrpServerHost *aHost)
|
const char *
Muestra el nombre completo del host.
|
otSrpServerHostGetLeaseInfo(const otSrpServerHost *aHost, otSrpServerLeaseInfo *aLeaseInfo)
|
void
Muestra la información LEASE y KEY-LEASE de un host determinado.
|
otSrpServerHostGetNextService(const otSrpServerHost *aHost, const otSrpServerService *aService)
|
const otSrpServerService *
Muestra el siguiente servicio de un host determinado.
|
otSrpServerHostIsDeleted(const otSrpServerHost *aHost)
|
bool
Indica si se borró el host del servicio de SRP.
|
otSrpServerHostMatchesFullName(const otSrpServerHost *aHost, const char *aFullName)
|
bool
Indica si el host coincide con un nombre de host determinado.
|
otSrpServerIsAutoEnableMode(otInstance *aInstance)
|
bool
Indica si el modo de habilitación automática está habilitado o inhabilitado.
|
otSrpServerParseSubTypeServiceName(const char *aSubTypeServiceName, char *aLabel, uint8_t aLabelSize)
|
Analiza un nombre de servicio de subtipo (nombre completo) y extrae la etiqueta de subtipo.
|
otSrpServerServiceGetHost(const otSrpServerService *aService)
|
const otSrpServerHost *
Muestra el host en el que reside la instancia de servicio.
|
otSrpServerServiceGetInstanceLabel(const otSrpServerService *aService)
|
const char *
Muestra la etiqueta de instancia de servicio (primera etiqueta en el nombre de la instancia) del servicio.
|
otSrpServerServiceGetInstanceName(const otSrpServerService *aService)
|
const char *
Muestra el nombre completo de la instancia de servicio del servicio.
|
otSrpServerServiceGetLeaseInfo(const otSrpServerService *aService, otSrpServerLeaseInfo *aLeaseInfo)
|
void
Muestra la información LEASE y KEY-LEASE de un servicio determinado.
|
otSrpServerServiceGetNumberOfSubTypes(const otSrpServerService *aService)
|
uint16_t
Obtiene la cantidad de subtipos del servicio.
|
otSrpServerServiceGetPort(const otSrpServerService *aService)
|
uint16_t
Muestra el puerto de la instancia de servicio.
|
otSrpServerServiceGetPriority(const otSrpServerService *aService)
|
uint16_t
Muestra la prioridad de la instancia de servicio.
|
otSrpServerServiceGetServiceName(const otSrpServerService *aService)
|
const char *
Muestra el nombre completo del servicio.
|
otSrpServerServiceGetSubTypeServiceNameAt(const otSrpServerService *aService, uint16_t aIndex)
|
const char *
Obtiene el nombre del servicio de subtipo (nombre completo) del servicio en un índice determinado.
|
otSrpServerServiceGetTtl(const otSrpServerService *aService)
|
uint32_t
Muestra el TTL de la instancia de servicio.
|
otSrpServerServiceGetTxtData(const otSrpServerService *aService, uint16_t *aDataLength)
|
const uint8_t *
Muestra los datos del registro TXT de la instancia de servicio.
|
otSrpServerServiceGetWeight(const otSrpServerService *aService)
|
uint16_t
Muestra el peso de la instancia de servicio.
|
otSrpServerServiceHasSubTypeServiceName(const otSrpServerService *aService, const char *aSubTypeServiceName)
|
bool
Indica si el servicio tiene un subtipo determinado o no.
|
otSrpServerServiceIsDeleted(const otSrpServerService *aService)
|
bool
Indica si se borró o no el servicio de SRP.
|
otSrpServerServiceMatchesInstanceName(const otSrpServerService *aService, const char *aInstanceName)
|
bool
Indica si este servicio coincide con un nombre de instancia de servicio determinado.
|
otSrpServerServiceMatchesServiceName(const otSrpServerService *aService, const char *aServiceName)
|
bool
Indica si este servicio coincide con un nombre de servicio determinado.
|
otSrpServerSetAddressMode(otInstance *aInstance, otSrpServerAddressMode aMode)
|
Configura el modo de dirección que usará el servidor de SRP.
|
otSrpServerSetAnycastModeSequenceNumber(otInstance *aInstance, uint8_t aSequenceNumber)
|
Establece el número de secuencia que se usa con el modo de direcciones Anycast.
|
otSrpServerSetAutoEnableMode(otInstance *aInstance, bool aEnabled)
|
void
Habilita o inhabilita el modo de habilitación automática en el servidor de SRP.
|
otSrpServerSetDomain(otInstance *aInstance, const char *aDomain)
|
Configura el dominio en el servidor de SRP.
|
otSrpServerSetEnabled(otInstance *aInstance, bool aEnabled)
|
void
Habilita o inhabilita el servidor de SRP.
|
otSrpServerSetLeaseConfig(otInstance *aInstance, const otSrpServerLeaseConfig *aLeaseConfig)
|
Establece los parámetros de configuración LEASE y KEY-LEASE del servidor de SRP.
|
otSrpServerSetServiceUpdateHandler(otInstance *aInstance, otSrpServerServiceUpdateHandler aServiceHandler, void *aContext)
|
void
Configura el controlador de actualizaciones del servicio de SRP en el servidor de SRP.
|
otSrpServerSetTtlConfig(otInstance *aInstance, const otSrpServerTtlConfig *aTtlConfig)
|
Establece la configuración del TTL del servidor de SRP.
|
Structs |
|
---|---|
otSrpClientBuffersServiceEntry |
Representa una entrada del grupo de servicios del cliente de SRP. |
otSrpClientHostInfo |
Representa la información del host de un cliente de SRP. |
otSrpClientService |
Representa un servicio de cliente de SRP. |
otSrpServerLeaseConfig |
Incluye las configuraciones LEASE y KEY-LEASE del servidor SRP. |
otSrpServerLeaseInfo |
Incluye información de arrendamiento del servidor de SRP de un host o servicio. |
otSrpServerResponseCounters |
Incluye las estadísticas de las respuestas del servidor de SRP. |
otSrpServerTtlConfig |
Incluye configuraciones de TTL del servidor de SRP. |
Enumeraciones
otSrpClientItemState
otSrpClientItemState
Especifica el estado de un elemento de cliente de SRP (información del servicio o host).
Propiedades | |
---|---|
OT_SRP_CLIENT_ITEM_STATE_ADDING
|
Se está agregando o registrando el elemento. |
OT_SRP_CLIENT_ITEM_STATE_REFRESHING
|
Se está actualizando el elemento. |
OT_SRP_CLIENT_ITEM_STATE_REGISTERED
|
El elemento está registrado en el servidor. |
OT_SRP_CLIENT_ITEM_STATE_REMOVED
|
Se quitó el elemento. |
OT_SRP_CLIENT_ITEM_STATE_REMOVING
|
Se está quitando el elemento. |
OT_SRP_CLIENT_ITEM_STATE_TO_ADD
|
Elemento que se agregará o registrará. |
OT_SRP_CLIENT_ITEM_STATE_TO_REFRESH
|
Elemento que se actualizará (vuelve a registrarte para renovar la asignación). |
OT_SRP_CLIENT_ITEM_STATE_TO_REMOVE
|
Se quitará el elemento. |
otSrpServerAddressMode
otSrpServerAddressMode
Representa el modo de dirección que usa el servidor de SRP.
El modo Address especifica cómo el servidor SRP determina la dirección y el número de puerto, y cómo se publica esta información en los datos de red de Thread.
Propiedades | |
---|---|
OT_SRP_SERVER_ADDRESS_MODE_ANYCAST
|
Modo de dirección Anycast |
OT_SRP_SERVER_ADDRESS_MODE_UNICAST
|
Modo de dirección unicast. |
otSrpServerState
otSrpServerState
Representa el estado del servidor de SRP.
Propiedades | |
---|---|
OT_SRP_SERVER_STATE_DISABLED
|
El servidor de SRP está inhabilitado. |
OT_SRP_SERVER_STATE_RUNNING
|
El servidor de SRP está habilitado y en ejecución. |
OT_SRP_SERVER_STATE_STOPPED
|
El servidor de SRP está habilitado, pero detenido. |
Typedefs
otSrpClientAutoStartCallback
void(* otSrpClientAutoStartCallback)(const otSockAddr *aServerSockAddr, void *aContext)
El tipo de puntero define la devolución de llamada que usa el cliente de SRP para notificar al usuario cuando se inicia o se detiene automáticamente.
Solo se usa cuando se habilita la función de inicio automático OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE
.
Esta devolución de llamada se invoca cuando se habilita el modo de inicio automático y se inicia o se detiene automáticamente el cliente de SRP.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
otSrpClientBuffersServiceEntry
struct otSrpClientBuffersServiceEntry otSrpClientBuffersServiceEntry
Representa una entrada del grupo de servicios del cliente de SRP.
otSrpClientCallback
void(* otSrpClientCallback)(otError aError, const otSrpClientHostInfo *aHostInfo, const otSrpClientService *aServices, const otSrpClientService *aRemovedServices, void *aContext)
El tipo de puntero define la devolución de llamada que usa el cliente de SRP para notificar al usuario sobre cambios, eventos o errores.
Esta devolución de llamada se invoca si se registra correctamente una actualización (es decir, si se agrega o quita información del host o algunos servicios) con el servidor de SRP, o si se produce una falla o un error (p. ej., el servidor rechaza una solicitud de actualización o se agota el tiempo de espera del cliente esperando una respuesta, etcétera).
En caso de que se vuelva a registrar correctamente una actualización, el parámetro aError
sería OT_ERROR_NONE
, y se proporcionarían la información del host y la lista completa de servicios como parámetros de entrada para la devolución de llamada. Ten en cuenta que la información y los servicios del host hacen un seguimiento de su propio estado en la variable de miembro mState
correspondiente de la estructura de datos relacionada (el estado que indica si se registró o quitó la información del host o el servicio, o si aún se está agregando o quitando, etcétera).
La lista de servicios que se quitaron se pasa como su propia lista vinculada aRemovedServices
en la devolución de llamada. Ten en cuenta que, cuando se invoca la devolución de llamada, el cliente SRP (implementación de OpenThread) finaliza con las instancias de servicio que se quitaron de la lista aRemovedServices
y ya no las rastrea ni las almacena (es decir, si desde la devolución de llamada llamamos a otSrpClientGetServices()
, los servicios que se quitaron no estarán presentes en la lista que se muestra). Proporcionar una lista separada de los servicios eliminados en la devolución de llamada ayuda a indicar al usuario qué elementos se quitaron ahora y le permite volver a reclamar o reutilizar las instancias.
Si el servidor rechaza una solicitud de actualización de SRP, el código de respuesta DNS (RFC 2136) se asigna a los siguientes errores:
- (0) NOERROR correcto (sin condición de error) -> OT_ERROR_NONE
- (1) El servidor de FORMERR no puede interpretarse debido a un error de formato -> OT_ERROR_PARSE.
- (2) El servidor SERVFAIL experimentó una falla interna -> OT_ERROR_FAILED
- (3) Nombre de NXDOMAIN que debería existir, no existe -> OT_ERROR_NOT_FOUND
- (4) El servidor NOTIMP no admite el tipo de consulta (OpCode) -> OT_ERROR_NOT_IMPLEMENTED
- (5) REFused El servidor se rechazó por motivos de política o seguridad -> OT_ERROR_SECURITY
- (6) YXDOMAIN Algunos nombres que no deberían existir, sí existen -> OT_ERROR_DUPLICATED.
- (7) YXRRSET Algunos RRset que no deberían existir, sí existen -> OT_ERROR_DUPLICATED.
- (8) NXRRSET Algunos RRset que deberían existir, no existen -> OT_ERROR_NOT_FOUND.
- (9) El servicio NOTAUTH no es autorizado para la zona -> OT_ERROR_SECURITY.
- (10) NOTZONE Un nombre no está en la zona -> OT_ERROR_PARSE.
- (20) BADNAME Nombre incorrecto -> OT_ERROR_PARSE
- (21) BADALG Algoritmo incorrecto -> OT_ERROR_SECURITY
- (22) BADTRUN Truncamiento incorrecto -> OT_ERROR_PARSE
- Otros códigos de respuesta -> OT_ERROR_FAILED
También pueden ocurrir los siguientes errores:
- OT_ERROR_RESPONSE_TIMEOUT : Se agotó el tiempo de espera para la respuesta del servidor (el cliente seguiría reintentando).
- OT_ERROR_INVALID_ARGS : La estructura del servicio proporcionada no es válida (p.ej., nombre del servicio incorrecto o
otDnsTxtEntry
). - OT_ERROR_NO_BUFS : El búfer no es suficiente para preparar o enviar el mensaje de actualización.
Ten en cuenta que, en caso de cualquier falla, el cliente continúa con la operación, es decir, prepara y (re)transmite el mensaje de actualización de SRP al servidor, después de un intervalo de espera. El intervalo de espera de reintento comienza desde el valor mínimo y aumenta en función del factor de crecimiento cada falla hasta el valor máximo (para obtener más detalles, consulta el parámetro de configuración OPENTHREAD_CONFIG_SRP_CLIENT_MIN_RETRY_WAIT_INTERVAL
y los relacionados).
Detalles | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parámetros |
|
otSrpClientHostInfo
struct otSrpClientHostInfo otSrpClientHostInfo
Representa la información del host de un cliente de SRP.
otSrpClientService
struct otSrpClientService otSrpClientService
Representa un servicio de cliente de SRP.
Los valores en esta estructura, incluidos los búferes de cadena para los nombres y las entradas de registro TXT, DEBEN persistir y mantenerse constantes después de que se pasa una instancia de esta estructura a OpenThread desde otSrpClientAddService()
o otSrpClientRemoveService()
.
Solo el núcleo de OT usa o administra los campos mState
, mData
y mNext
. Su valor se ignora cuando se pasa una instancia de otSrpClientService
en otSrpClientAddService()
, otSrpClientRemoveService()
y otras funciones. El llamador no necesita configurar estos campos.
Los campos mLease
y mKeyLease
especifican los intervalos deseados de arrendamiento de claves y de asignación de claves para este servicio. El valor cero indica que no se especificó el intervalo y, luego, se usan los intervalos de asignación de tiempo o de asignación de claves predeterminados de otSrpClientGetLeaseInterval()
y otSrpClientGetKeyLeaseInterval()
para este servicio. Si el intervalo de asignación de claves (ya sea establecido de forma explícita o determinado a partir del valor predeterminado) es más corto que el de un servicio, el cliente de SRP también volverá a usar el valor del intervalo de arrendamiento de claves para el intervalo de arrendamiento de claves. Por ejemplo, si en el servicio mLease
se establece de forma explícita en 2 días, se establece mKeyLease
en cero y la asignación de claves predeterminada se establece en 1 día, cuando se registra este servicio, la asignación de claves solicitada para este servicio también se establece en 2 días.
otSrpServerAddressMode
enum otSrpServerAddressMode otSrpServerAddressMode
Representa el modo de dirección que usa el servidor de SRP.
El modo Address especifica cómo el servidor SRP determina la dirección y el número de puerto, y cómo se publica esta información en los datos de red de Thread.
otSrpServerHost
struct otSrpServerHost otSrpServerHost
Este tipo opaco representa un host de servicio de SRP.
otSrpServerLeaseConfig
struct otSrpServerLeaseConfig otSrpServerLeaseConfig
Incluye las configuraciones LEASE y KEY-LEASE del servidor SRP.
otSrpServerLeaseInfo
struct otSrpServerLeaseInfo otSrpServerLeaseInfo
Incluye información de arrendamiento del servidor de SRP de un host o servicio.
otSrpServerResponseCounters
struct otSrpServerResponseCounters otSrpServerResponseCounters
Incluye las estadísticas de las respuestas del servidor de SRP.
otSrpServerService
struct otSrpServerService otSrpServerService
Este tipo opaco representa un servicio de SRP.
otSrpServerServiceUpdateHandler
void(* otSrpServerServiceUpdateHandler)(otSrpServerServiceUpdateId aId, const otSrpServerHost *aHost, uint32_t aTimeout, void *aContext)
Controla las actualizaciones del servicio de SRP.
El servidor de SRP llama para notificar que se están actualizando un host de SRP y, posiblemente, servicios de SRP. Es importante que las actualizaciones de SRP no se confirmen hasta que el controlador muestre el resultado llamando a otSrpServerHandleServiceUpdateResult o hasta que se agote el tiempo de espera después de aTimeout
.
Un observador de servicio de SRP siempre debe llamar a otSrpServerHandleServiceUpdateResult con el código de error OT_ERROR_NONE inmediatamente después de recibir los eventos de actualización.
Un controlador más genérico puede realizar validaciones en el host o los servicios de SRP y rechazar las actualizaciones de SRP si falla alguna de las validaciones. Por ejemplo, un proxy de publicidad debería anunciar (o quitar) el host y los servicios en un vínculo compatible con la multidifusión y mostrar un código de error específico si se produce algún error.
Detalles | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parámetros |
|
otSrpServerSetServiceUpdateHandler
otSrpServerHandleServiceUpdateResult
otSrpServerServiceUpdateId
uint32_t otSrpServerServiceUpdateId
Es el ID de una transacción de actualización del servicio de SRP en el servidor de SRP.
otSrpServerTtlConfig
struct otSrpServerTtlConfig otSrpServerTtlConfig
Incluye configuraciones de TTL del servidor de SRP.
remotas
otSrpClientAddService
otError otSrpClientAddService( otInstance *aInstance, otSrpClientService *aService )
Agrega un servicio para que se registre en el servidor.
Después de una llamada exitosa a esta función, se llamará a otSrpClientCallback
para informar el estado de la adición o el registro del servicio con el servidor de SRP.
La instancia otSrpClientService
a la que apunta aService
DEBE conservar y permanecer sin cambios después de regresar de esta función (con OT_ERROR_NONE
). OpenThread guardará el puntero en la instancia de servicio.
OpenThread ya no realiza el seguimiento de la instancia otSrpClientService
, y solo se la puede reclamar cuando
- Se quita de forma explícita mediante una llamada a
otSrpClientRemoveService()
o se quita junto con otros servicios mediante una llamada aotSrpClientRemoveHostAndServices() and only after the
otSrpClientCallback`, lo que indica que se quitó el servicio. O - Una llamada a
otSrpClientClearHostAndServices()
, que quita el host y todos los servicios relacionados de inmediato
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
||||||
Valores que se muestran |
|
otSrpClientBuffersAllocateService
otSrpClientBuffersServiceEntry * otSrpClientBuffersAllocateService( otInstance *aInstance )
Asigna una entrada de servicio nueva desde el grupo.
La instancia de entrada de servicio que se muestra se inicializará de la siguiente manera:
mService.mName
apuntará a un búfer de cadenas asignado que se puede recuperar con la funciónotSrpClientBuffersGetServiceEntryServiceNameString()
.mService.mInstanceName
apuntará a un búfer de cadenas asignado que se puede recuperar con la funciónotSrpClientBuffersGetServiceEntryInstanceNameString()
.mService.mSubTypeLabels
apunta a un array que se muestra desdeotSrpClientBuffersGetSubTypeLabelsArray()
.mService.mTxtEntries
apuntará amTxtEntry
.- Se establecerá
mService.mNumTxtEntries
en uno. - Otros campos
mService
(puerto, prioridad, peso) se establecen en cero. mTxtEntry.mKey
se configura como NULL (el valor se trata como ya codificado).mTxtEntry.mValue
apuntará a un búfer asignado que se puede recuperar con la funciónotSrpClientBuffersGetServiceEntryTxtBuffer()
.mTxtEntry.mValueLength
se estableció en cero.- Todos los búferes de datos/cadenas y los arrays relacionados se borran a cero.
Detalles | |||
---|---|---|---|
Parámetros |
|
||
Qué muestra |
Un puntero para la entrada de servicio asignado recientemente o NULL si no hay más entradas disponibles en el grupo.
|
otSrpClientBuffersFreeAllServices
void otSrpClientBuffersFreeAllServices( otInstance *aInstance )
Libera todas las entradas de servicio asignadas anteriormente.
Detalles | |||
---|---|---|---|
Parámetros |
|
otSrpClientBuffersFreeService
void otSrpClientBuffersFreeService( otInstance *aInstance, otSrpClientBuffersServiceEntry *aService )
Libera una entrada de servicio asignada previamente.
El aService
se DEBE asignar previamente usando otSrpClientBuffersAllocateService()
y aún no se liberó. De lo contrario, el comportamiento de esta función no está definido.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
otSrpClientBuffersGetHostAddressesArray
otIp6Address * otSrpClientBuffersGetHostAddressesArray( otInstance *aInstance, uint8_t *aArrayLength )
Obtiene el arreglo de entradas de direcciones IPv6 para usar como lista de direcciones de host de cliente de SRP.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
||||
Qué muestra |
Un puntero para un array de entradas
otIp6Address (la cantidad de entradas se muestra en aArrayLength ). |
otSrpClientBuffersGetHostNameString
char * otSrpClientBuffersGetHostNameString( otInstance *aInstance, uint16_t *aSize )
Obtiene el búfer de cadenas para usar para el nombre de host del cliente de SRP.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
||||
Qué muestra |
Un puntero para el búfer de caracteres que se usará para el nombre de host del cliente de SRP.
|
otSrpClientBuffersGetServiceEntryInstanceNameString
char * otSrpClientBuffersGetServiceEntryInstanceNameString( otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize )
Obtiene el búfer de cadenas para el nombre de la instancia de servicio de una entrada del servicio.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
||||
Qué muestra |
Un puntero para el búfer de cadenas.
|
otSrpClientBuffersGetServiceEntryServiceNameString
char * otSrpClientBuffersGetServiceEntryServiceNameString( otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize )
Obtiene el búfer de cadenas para el nombre del servicio de una entrada del servicio.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
||||
Qué muestra |
Un puntero para el búfer de cadenas.
|
otSrpClientBuffersGetServiceEntryTxtBuffer
uint8_t * otSrpClientBuffersGetServiceEntryTxtBuffer( otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize )
Obtiene el búfer para el registro TXT de una entrada de servicio.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
||||
Qué muestra |
Un puntero para el búfer.
|
otSrpClientBuffersGetSubTypeLabelsArray
const char ** otSrpClientBuffersGetSubTypeLabelsArray( otSrpClientBuffersServiceEntry *aEntry, uint16_t *aArrayLength )
Obtiene el array para las etiquetas de subtipo de servicio de la entrada de servicio.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
||||
Qué muestra |
Un puntero para el array.
|
otSrpClientClearHostAndServices
void otSrpClientClearHostAndServices( otInstance *aInstance )
Borra toda la información del host y todos los servicios.
A diferencia de otSrpClientRemoveHostAndServices()
, que envía un mensaje de actualización al servidor para quitar toda la información, esta función borra toda la información de inmediato sin ninguna interacción con el servidor.
Detalles | |||
---|---|---|---|
Parámetros |
|
otSrpClientClearService
otError otSrpClientClearService( otInstance *aInstance, otSrpClientService *aService )
Borra un servicio y lo quita inmediatamente de la lista de servicios del cliente.
A diferencia de otSrpClientRemoveService()
, que envía un mensaje de actualización al servidor para quitar el servicio, esta función borra el servicio de la lista de servicios del cliente sin ninguna interacción con el servidor. Si la llamada se realiza correctamente, NO se llamará a otSrpClientCallback
, y el llamador podrá reclamar y volver a usar la entrada aService
de inmediato.
Se puede usar junto con una llamada posterior a otSrpClientAddService()
(posiblemente, se vuelva a usar la misma entrada aService
con los mismos nombres de servicio y de instancia) para actualizar algunos de los parámetros en un servicio existente.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
||||
Valores que se muestran |
|
otSrpClientDisableAutoStartMode
void otSrpClientDisableAutoStartMode( otInstance *aInstance )
Inhabilita el modo de inicio automático.
Solo está disponible cuando se habilita la función de inicio automático OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE
.
Inhabilitar el modo de inicio automático no detendrá al cliente si ya está en ejecución, pero deja de supervisar los datos de red de Thread para verificar que el servidor de SRP seleccionado aún esté presente en él.
Ten en cuenta que si llamas a otSrpClientStop()
, también se inhabilitará el modo de inicio automático.
Detalles | |||
---|---|---|---|
Parámetros |
|
otSrpClientEnableAutoHostAddress
otError otSrpClientEnableAutoHostAddress( otInstance *aInstance )
Habilita el modo automático de dirección de host.
Cuando se habilita esta opción, el cliente SRP configura automáticamente las direcciones IPv6 del host con todas las direcciones unicast preferidas en Thread netif, sin incluir todas las direcciones locales de vínculo y de malla. Si no hay una dirección preferida, se agrega la dirección EID local de la malla. El cliente de SRP se volverá a registrar automáticamente si se actualizan las direcciones en Thread Netif (se agregan direcciones nuevas o se quitan o se marcan como no preferidas las direcciones existentes).
El modo de dirección de host automática se puede habilitar antes del inicio o durante la operación del cliente SRP, excepto cuando se quita la información del host (el cliente está ocupado procesando una solicitud de eliminación de una llamada a otSrpClientRemoveHostAndServices()
, y la información del host aún se encuentra en el estado STATE_TO_REMOVE
o STATE_REMOVING
).
Después de habilitar el modo de dirección de host automática, se puede inhabilitar mediante una llamada a otSrpClientSetHostAddresses()
, que luego establece de forma explícita las direcciones de host.
Detalles | |||||
---|---|---|---|---|---|
Valores que se muestran |
|
otSrpClientEnableAutoStartMode
void otSrpClientEnableAutoStartMode( otInstance *aInstance, otSrpClientAutoStartCallback aCallback, void *aContext )
Habilita el modo de inicio automático.
Solo está disponible cuando se habilita la función de inicio automático OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE
.
La opción de configuración OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_DEFAULT_MODE
especifica el modo de inicio automático predeterminado (si está habilitado o inhabilitado al inicio de la pila de OT).
Si el inicio automático está habilitado, el cliente de SRP supervisará los datos de red de Thread para descubrir servidores de SRP y seleccionará el servidor preferido. Además, iniciará y detendrá automáticamente el cliente cuando se detecte un servidor de SRP.
Hay tres categorías de entradas de datos de red que indican la presencia de un servidor de SRP. Se prefieren en el siguiente orden:
1) Entradas de unicast preferidas en las que la dirección del servidor se incluye en los datos del servicio. Si hay varias opciones, se recomienda la que tenga la dirección IPv6 numéricamente más baja.
2) Entradas Anycast, cada una con un número de secuencia Un número de secuencia mayor en el sentido especificado por la lógica aritmética del número de serie en RFC-1982 se considera más reciente y, por lo tanto, se prefiere. Se prefiere el número de secuencia más grande con aritmética de número de serie si está bien definido (es decir, el número de secuencia es mayor que todos los demás números de secuencia). Si no está bien definido, se prefiere el número de secuencia más grande.
3) Entradas Unicast en las que la información de la dirección del servidor se incluye en los datos del servidor Si hay varias opciones, se recomienda la que tenga la dirección IPv6 numéricamente más baja.
Cuando se produce un cambio en las entradas de datos de red, el cliente comprobará que el servidor seleccionado actualmente siga presente en los datos de red y que siga siendo el preferido. De lo contrario, el cliente cambiará al nuevo servidor preferido o se detendrá si no hay ninguno.
Cuando el cliente de SRP se inicia explícitamente mediante una llamada exitosa a otSrpClientStart()
, se seguirá usando la dirección del servidor de SRP proporcionada en otSrpClientStart()
, independientemente del estado del modo de inicio automático y de si se descubre o no la misma dirección del servidor de SRP en los datos de red de Thread. En este caso, solo una llamada explícita a otSrpClientStop()
detendrá al cliente.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
otSrpClientGetDomainName
const char * otSrpClientGetDomainName( otInstance *aInstance )
Obtiene el nombre de dominio que usa el cliente de SRP.
Requiere que se habilite OPENTHREAD_CONFIG_SRP_CLIENT_DOMAIN_NAME_API_ENABLE
.
Si no se establece el nombre de dominio, se usará “default.service.arpa”.
Detalles | |||
---|---|---|---|
Parámetros |
|
||
Qué muestra |
Es la string del nombre de dominio.
|
otSrpClientGetHostInfo
const otSrpClientHostInfo * otSrpClientGetHostInfo( otInstance *aInstance )
Obtiene la información del host.
Detalles | |||
---|---|---|---|
Parámetros |
|
||
Qué muestra |
Un puntero para la estructura de información del host.
|
otSrpClientGetKeyLeaseInterval
uint32_t otSrpClientGetKeyLeaseInterval( otInstance *aInstance )
Obtiene el intervalo de asignación de claves predeterminado que se usa en las solicitudes de actualización de SRP.
El intervalo predeterminado solo se usa para instancias de otSrpClientService
con mKeyLease
establecido en cero.
Ten en cuenta que esta es la duración de la concesión que solicita el cliente de SRP. El servidor puede elegir aceptar un intervalo de arrendamiento diferente.
Detalles | |||
---|---|---|---|
Parámetros |
|
||
Qué muestra |
El intervalo de asignación de claves (en segundos).
|
otSrpClientGetLeaseInterval
uint32_t otSrpClientGetLeaseInterval( otInstance *aInstance )
Obtiene el intervalo de asignación predeterminado que se usa en las solicitudes de actualización de SRP.
El intervalo predeterminado solo se usa para instancias de otSrpClientService
con mLease
establecido en cero.
Ten en cuenta que esta es la duración de la concesión que solicita el cliente de SRP. El servidor puede elegir aceptar un intervalo de arrendamiento diferente.
Detalles | |||
---|---|---|---|
Parámetros |
|
||
Qué muestra |
El intervalo de asignación (en segundos).
|
otSrpClientGetServerAddress
const otSockAddr * otSrpClientGetServerAddress( otInstance *aInstance )
Obtiene la dirección del socket (dirección IPv6 y número de puerto) del servidor de SRP que usa el cliente SRP.
Si el cliente no se está ejecutando, la dirección no se especifica (todos cero) con un número de puerto cero.
Detalles | |||
---|---|---|---|
Parámetros |
|
||
Qué muestra |
Un puntero a la dirección del socket del servidor de SRP (siempre es no NULL).
|
otSrpClientGetServices
const otSrpClientService * otSrpClientGetServices( otInstance *aInstance )
Obtiene la lista de los servicios que administra el cliente.
Detalles | |||
---|---|---|---|
Parámetros |
|
||
Qué muestra |
Un puntero al encabezado de la lista vinculada de todos los servicios o NULL si la lista está vacía.
|
otSrpClientGetTtl
uint32_t otSrpClientGetTtl( otInstance *aInstance )
Obtiene el valor del TTL en cada registro incluido en las solicitudes de actualización de SRP.
Ten en cuenta que este es el TTL que solicita el cliente de SRP. El servidor puede aceptar un TTL diferente.
De forma predeterminada, el TTL será igual al intervalo de asignación de tiempo. Si pasas 0 o un valor mayor que el intervalo de asignación de tiempo mediante otSrpClientSetTtl()
, también hará que el TTL sea igual al intervalo de asignación de tiempo.
Detalles | |||
---|---|---|---|
Parámetros |
|
||
Qué muestra |
Es el TTL (en segundos).
|
otSrpClientIsAutoStartModeEnabled
bool otSrpClientIsAutoStartModeEnabled( otInstance *aInstance )
Indica el estado actual del modo de inicio automático (habilitado o inhabilitado).
Solo está disponible cuando se habilita la función de inicio automático OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE
.
Detalles | |||
---|---|---|---|
Parámetros |
|
||
Qué muestra |
TRUE si el modo de inicio automático está habilitado, FALSE de lo contrario.
|
otSrpClientIsRunning
bool otSrpClientIsRunning( otInstance *aInstance )
Indica si el cliente SRP está en ejecución o no.
Detalles | |||
---|---|---|---|
Parámetros |
|
||
Qué muestra |
TRUE si el cliente SRP está en ejecución, FALSE de lo contrario.
|
otSrpClientIsServiceKeyRecordEnabled
bool otSrpClientIsServiceKeyRecordEnabled( otInstance *aInstance )
Indica si el modo de "inclusión del registro de claves de servicio" está habilitado o inhabilitado.
Está disponible cuando se habilita la configuración de OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE
.
Detalles | |||
---|---|---|---|
Parámetros |
|
||
Qué muestra |
TRUE si el modo de "inclusión del registro de clave de servicio" está habilitado, de lo contrario, es FALSE.
|
otSrpClientItemStateToString
const char * otSrpClientItemStateToString( otSrpClientItemState aItemState )
Convierte un otSrpClientItemState
en una string.
Detalles | |||
---|---|---|---|
Parámetros |
|
||
Qué muestra |
Una representación de cadena de
aItemState . |
otSrpClientRemoveHostAndServices
otError otSrpClientRemoveHostAndServices( otInstance *aInstance, bool aRemoveKeyLease, bool aSendUnregToServer )
Inicia el proceso de eliminación de la información del host y todos los servicios.
Después de regresar de esta función, se llamará a otSrpClientCallback
para informar el estado de la solicitud de eliminación con el servidor de SRP.
Si se desea quitar la información del host de forma permanente del servidor, se debe establecer aRemoveKeyLease
como true
, lo que quita la asignación de claves asociada con el host en el servidor. De lo contrario, el registro de arrendamiento de claves se conserva como antes, lo que garantiza que el servidor conserve el nombre de host en reserva para cuando el cliente vuelva a proporcionar y registrar sus servicios.
aSendUnregToServer
determina el comportamiento cuando la información del host aún no está registrada en el servidor. Si se configura aSendUnregToServer
como false
(que es el valor predeterminado/esperado), el cliente de SRP quitará de inmediato la información del host y los servicios sin enviar un mensaje de actualización al servidor (no es necesario actualizar el servidor si aún no se registró nada en él). Si aSendUnregToServer
se configura como true
, el cliente de SRP enviará un mensaje de actualización al servidor. Ten en cuenta que, si se registra la información del host, el valor de aSendUnregToServer
no importa, y el cliente de SRP siempre enviará un mensaje de actualización al servidor para solicitar la eliminación de toda la información.
Un caso en el que aSendUnregToServer
puede resultar útil cuando se restablece o reinicia un dispositivo, el llamador puede querer quitar cualquier servicio registrado previamente en el servidor. En este caso, el llamador puede otSrpClientSetHostName()
y, luego, solicitar otSrpClientRemoveHostAndServices()
con aSendUnregToServer
como true
.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
||||||
Valores que se muestran |
|
otSrpClientRemoveService
otError otSrpClientRemoveService( otInstance *aInstance, otSrpClientService *aService )
Solicita que se cancele el registro de un servicio en el servidor.
Después de una llamada exitosa a esta función, se llamará a otSrpClientCallback
para informar el estado de la solicitud de eliminación con el servidor de SRP.
La instancia de otSrpClientService
a la que apunta aService
DEBE conservarse y permanecer sin cambios después de regresar de esta función (con OT_ERROR_NONE
). OpenThread mantendrá la instancia de servicio durante el proceso de eliminación. Solo después de que se llama a otSrpClientCallback
, lo que indica que la instancia de servicio se quita de la lista de servicios del cliente de SRP y se puede liberar o volver a usar.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
||||
Valores que se muestran |
|
otSrpClientSetCallback
void otSrpClientSetCallback( otInstance *aInstance, otSrpClientCallback aCallback, void *aContext )
Establece la devolución de llamada para notificar al emisor sobre eventos o cambios desde el cliente SRP.
El cliente de SRP permite que se registre una sola devolución de llamada. Por lo tanto, las llamadas consecutivas a esta función reemplazarán cualquier función de devolución de llamada previamente establecida.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
otSrpClientSetDomainName
otError otSrpClientSetDomainName( otInstance *aInstance, const char *aName )
Configura el nombre de dominio que usará el cliente de SRP.
Requiere que se habilite OPENTHREAD_CONFIG_SRP_CLIENT_DOMAIN_NAME_API_ENABLE
.
Si no se establece, se usará “default.service.arpa”.
El búfer de cadenas de nombre al que apunta aName
DEBE persistir y permanecer sin cambios después de que se muestra desde esta función. OpenThread mantendrá el puntero en la cadena.
El nombre de dominio se puede establecer antes de iniciar el cliente o después del inicio, pero antes de que se registre la información del host con el servidor (la información del host debe estar en STATE_TO_ADD
o STATE_TO_REMOVE
).
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
||||
Valores que se muestran |
|
otSrpClientSetHostAddresses
otError otSrpClientSetHostAddresses( otInstance *aInstance, const otIp6Address *aIp6Addresses, uint8_t aNumAddresses )
Establece o actualiza la lista de direcciones IPv6 del host.
Las direcciones IPv6 del host se pueden configurar o cambiar antes del inicio o durante el funcionamiento del cliente SRP (p.ej., para agregar, quitar o cambiar una dirección de host registrada previamente), excepto cuando se quita la información del host (el cliente está ocupado procesando una solicitud de eliminación de una llamada anterior a otSrpClientRemoveHostAndServices()
y la información del host aún se encuentra en los estados STATE_TO_REMOVE
o STATE_REMOVING
).
El array de direcciones IPv6 del host al que apunta aIp6Addresses
DEBE conservar y permanecer sin cambios después de que se muestre desde esta función (con OT_ERROR_NONE
). OpenThread guardará el puntero en el array.
Después de una llamada exitosa a esta función, se llamará a otSrpClientCallback
para informar el estado del registro de la dirección con el servidor de SRP.
Si llamas a esta función, se inhabilita el modo de dirección automática del host si se habilitó con anterioridad a partir de una llamada exitosa a otSrpClientEnableAutoHostAddress()
.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
||||||
Valores que se muestran |
|
otSrpClientSetHostName
otError otSrpClientSetHostName( otInstance *aInstance, const char *aName )
Establece la etiqueta del nombre del host.
Después de una llamada exitosa a esta función, se llamará a otSrpClientCallback
para informar el estado del registro de la información del host con el servidor de SRP.
El búfer de cadenas de nombre al que apunta aName
DEBE persistir y permanecer sin cambios después de que se muestra desde esta función. OpenThread mantendrá el puntero en la cadena.
El nombre de host se puede establecer antes de iniciar el cliente o después del inicio, pero antes de que se registre la información del host con el servidor (la información del host debe estar en STATE_TO_ADD
o STATE_REMOVED
).
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
||||||
Valores que se muestran |
|
otSrpClientSetKeyLeaseInterval
void otSrpClientSetKeyLeaseInterval( otInstance *aInstance, uint32_t aInterval )
Establece el intervalo de asignación de claves predeterminado que se usa en las solicitudes de actualización de SRP.
El intervalo predeterminado solo se usa para instancias de otSrpClientService
con mKeyLease
establecido en cero.
Cambiar el intervalo de arrendamiento no afecta el intervalo de arrendamiento aceptado de servicios o información de host ya registrados. Solo afecta a futuros mensajes de actualización de SRP (es decir, agregar servicios nuevos o actualizaciones de servicios existentes).
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
otSrpClientSetLeaseInterval
void otSrpClientSetLeaseInterval( otInstance *aInstance, uint32_t aInterval )
Establece el intervalo de asignación predeterminado que se usa en las solicitudes de actualización de SRP.
El intervalo predeterminado solo se usa para instancias de otSrpClientService
con mLease
establecido en cero.
Cambiar el intervalo de arrendamiento no afecta el intervalo de arrendamiento aceptado de los servicios o la información del host ya registrados. Solo afecta a los mensajes de actualización de SRP futuros (es decir, agregar servicios nuevos o actualizar los servicios existentes).
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
otSrpClientSetServiceKeyRecordEnabled
void otSrpClientSetServiceKeyRecordEnabled( otInstance *aInstance, bool aEnabled )
Habilita o inhabilita el modo de “inclusión de registros de claves de servicios”.
Cuando se habilite, el cliente de SRP incluirá el registro KEY en las instrucciones de descripción del servicio en los mensajes de actualización de SRP que envíe.
Está disponible cuando se habilita la configuración de OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE
.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
otSrpClientSetTtl
void otSrpClientSetTtl( otInstance *aInstance, uint32_t aTtl )
Establece el valor de TTL en cada registro incluido en las solicitudes de actualización de SRP.
Cambiar el TTL no afecta el TTL de los servicios o la información del host ya registrados. Solo afecta a los mensajes de actualización de SRP futuros (es decir, agregar servicios nuevos o actualizar los servicios existentes).
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
otSrpClientStart
otError otSrpClientStart( otInstance *aInstance, const otSockAddr *aServerSockAddr )
Inicia la operación de cliente de SRP.
El cliente de SRP preparará y enviará el mensaje de "Actualización de SRP" al servidor de SRP una vez que se cumplan todas las condiciones que se indican a continuación:
- Se inicia el cliente de SRP: se llama a
otSrpClientStart()
. - Se configuró el nombre del host: se llama a
otSrpClientSetHostName()
. - Se estableció al menos una dirección IPv6 de host: se llama a
otSrpClientSetHostName()
. - Se agregó al menos un servicio: se llama a
otSrpClientAddService()
.
No importa en qué orden se llama a estas funciones. Cuando se cumplan todas las condiciones, el cliente de SRP esperará un breve retraso antes de preparar un mensaje de "Actualización de SRP" y enviarlo al servidor. Esta demora permite que el usuario agregue varios servicios o direcciones IPv6 antes de que se envíe el primer mensaje de actualización de SRP (lo que garantiza que se envíe una sola actualización de SRP con toda la información). La configuración OPENTHREAD_CONFIG_SRP_CLIENT_UPDATE_TX_DELAY
especifica el intervalo de retraso.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
||||||
Valores que se muestran |
|
otSrpClientStop
void otSrpClientStop( otInstance *aInstance )
Detiene la operación de cliente de SRP.
Detiene cualquier interacción posterior con el servidor de SRP. Tenga en cuenta que no se quita ni borra la información del host ni la lista de servicios. Marca todos los servicios que se deben agregar o quitar nuevamente una vez que el cliente se (re)inicia.
Detalles | |||
---|---|---|---|
Parámetros |
|
otSrpServerGetAddressMode
otSrpServerAddressMode otSrpServerGetAddressMode( otInstance *aInstance )
Muestra el modo de dirección que usa el servidor de SRP.
Detalles | |||
---|---|---|---|
Parámetros |
|
||
Qué muestra |
El modo de dirección del servidor de SRP.
|
otSrpServerGetAnycastModeSequenceNumber
uint8_t otSrpServerGetAnycastModeSequenceNumber( otInstance *aInstance )
Muestra el número de secuencia que se usa con el modo de direcciones Anycast.
El número de secuencia se incluye en la entrada "Dirección Anycast del servicio de DNS/SRP" publicada en los datos de red.
Detalles | |||
---|---|---|---|
Parámetros |
|
||
Qué muestra |
Es el número de secuencia Anycast.
|
otSrpServerGetDomain
const char * otSrpServerGetDomain( otInstance *aInstance )
Muestra el dominio autorizado al servidor de SRP.
Si SetDomain no configura el dominio, se mostrará "default.service.arpa.". Siempre se agrega un punto final, incluso si el dominio se configura sin él.
Detalles | |||
---|---|---|---|
Parámetros |
|
||
Qué muestra |
Un puntero para la string de dominio unido con puntos.
|
otSrpServerGetLeaseConfig
void otSrpServerGetLeaseConfig( otInstance *aInstance, otSrpServerLeaseConfig *aLeaseConfig )
Muestra las configuraciones LEASE y KEY-LEASE del servidor de SRP.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
otSrpServerGetNextHost
const otSrpServerHost * otSrpServerGetNextHost( otInstance *aInstance, const otSrpServerHost *aHost )
Muestra el siguiente host registrado en el servidor de SRP.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
||||
Qué muestra |
Un puntero para el host registrado. NULL, si no se pueden encontrar más hosts.
|
otSrpServerGetPort
uint16_t otSrpServerGetPort( otInstance *aInstance )
Muestra el puerto que escucha el servidor de SRP.
Detalles | |||
---|---|---|---|
Parámetros |
|
||
Qué muestra |
El puerto del servidor de SRP. El resultado es 0 si el servidor no se está ejecutando.
|
otSrpServerGetResponseCounters
const otSrpServerResponseCounters * otSrpServerGetResponseCounters( otInstance *aInstance )
Muestra los contadores de respuesta del servidor de SRP.
Detalles | |||
---|---|---|---|
Parámetros |
|
||
Qué muestra |
Un puntero para los contadores de respuesta del servidor de SRP.
|
otSrpServerGetState
otSrpServerState otSrpServerGetState( otInstance *aInstance )
Muestra el estado del servidor de SRP.
Detalles | |||
---|---|---|---|
Parámetros |
|
||
Qué muestra |
Es el estado actual del servidor de SRP.
|
otSrpServerGetTtlConfig
void otSrpServerGetTtlConfig( otInstance *aInstance, otSrpServerTtlConfig *aTtlConfig )
Muestra la configuración de TTL del servidor de SRP.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
otSrpServerHandleServiceUpdateResult
void otSrpServerHandleServiceUpdateResult( otInstance *aInstance, otSrpServerServiceUpdateId aId, otError aError )
Informa el resultado del procesamiento de una actualización de SRP al servidor de SRP.
El controlador de actualizaciones de servicios debe llamar a esta función para mostrar el resultado del procesamiento de una actualización de SRP.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
otSrpServerHostGetAddresses
const otIp6Address * otSrpServerHostGetAddresses( const otSrpServerHost *aHost, uint8_t *aAddressesNum )
Muestra las direcciones de un host determinado.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
||||
Qué muestra |
Un puntero para el array de direcciones IPv6.
|
otSrpServerHostGetFullName
const char * otSrpServerHostGetFullName( const otSrpServerHost *aHost )
Muestra el nombre completo del host.
Detalles | |||
---|---|---|---|
Parámetros |
|
||
Qué muestra |
Un puntero para la string de nombre de host terminado en nulo.
|
otSrpServerHostGetLeaseInfo
void otSrpServerHostGetLeaseInfo( const otSrpServerHost *aHost, otSrpServerLeaseInfo *aLeaseInfo )
Muestra la información LEASE y KEY-LEASE de un host determinado.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
otSrpServerHostGetNextService
const otSrpServerService * otSrpServerHostGetNextService( const otSrpServerHost *aHost, const otSrpServerService *aService )
Muestra el siguiente servicio de un host determinado.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
||||
Qué muestra |
Un puntero al siguiente servicio o NULL si no hay más servicios.
|
otSrpServerHostIsDeleted
bool otSrpServerHostIsDeleted( const otSrpServerHost *aHost )
Indica si se borró el host del servicio de SRP.
Un host del servicio de SRP se puede borrar, pero conserva su nombre para usos futuros. En este caso, la instancia de host no se quita del servidor o registro de SRP.
Detalles | |||
---|---|---|---|
Parámetros |
|
||
Qué muestra |
TRUE si se eliminó el host, FALSE si no lo es.
|
otSrpServerHostMatchesFullName
bool otSrpServerHostMatchesFullName( const otSrpServerHost *aHost, const char *aFullName )
Indica si el host coincide con un nombre de host determinado.
Las coincidencias de nombres de DNS se realizan mediante una comparación de strings que no distingue mayúsculas de minúsculas (es decir, "Abc" y "aBc" son lo mismo).
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
||||
Valores que se muestran |
|
otSrpServerIsAutoEnableMode
bool otSrpServerIsAutoEnableMode( otInstance *aInstance )
Indica si el modo de habilitación automática está habilitado o inhabilitado.
Requiere la función OPENTHREAD_CONFIG_BORDER_ROUTING_ENABLE
.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
||||
Valores que se muestran |
|
otSrpServerParseSubTypeServiceName
otError otSrpServerParseSubTypeServiceName( const char *aSubTypeServiceName, char *aLabel, uint8_t aLabelSize )
Analiza un nombre de servicio de subtipo (nombre completo) y extrae la etiqueta de subtipo.
El nombre completo del servicio de un subtipo se muestra después de "
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
||||||
Valores que se muestran |
|
otSrpServerServiceGetHost
const otSrpServerHost * otSrpServerServiceGetHost( const otSrpServerService *aService )
Muestra el host en el que reside la instancia de servicio.
Detalles | |||
---|---|---|---|
Parámetros |
|
||
Qué muestra |
Un puntero a la instancia de host.
|
otSrpServerServiceGetInstanceLabel
const char * otSrpServerServiceGetInstanceLabel( const otSrpServerService *aService )
Muestra la etiqueta de instancia de servicio (primera etiqueta en el nombre de la instancia) del servicio.
Detalles | |||
---|---|---|---|
Parámetros |
|
||
Qué muestra |
Un puntero a la string de etiqueta de instancia de servicio terminada en valores nulos.
|
otSrpServerServiceGetInstanceName
const char * otSrpServerServiceGetInstanceName( const otSrpServerService *aService )
Muestra el nombre completo de la instancia de servicio del servicio.
Detalles | |||
---|---|---|---|
Parámetros |
|
||
Qué muestra |
Un puntero para la string de nombre de instancia de servicio terminada en un valor nulo.
|
otSrpServerServiceGetLeaseInfo
void otSrpServerServiceGetLeaseInfo( const otSrpServerService *aService, otSrpServerLeaseInfo *aLeaseInfo )
Muestra la información LEASE y KEY-LEASE de un servicio determinado.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
otSrpServerServiceGetNumberOfSubTypes
uint16_t otSrpServerServiceGetNumberOfSubTypes( const otSrpServerService *aService )
Obtiene la cantidad de subtipos del servicio.
Detalles | |||
---|---|---|---|
Parámetros |
|
||
Qué muestra |
La cantidad de subtipos de
aService . |
otSrpServerServiceGetPort
uint16_t otSrpServerServiceGetPort( const otSrpServerService *aService )
Muestra el puerto de la instancia de servicio.
Detalles | |||
---|---|---|---|
Parámetros |
|
||
Qué muestra |
Es el puerto del servicio.
|
otSrpServerServiceGetPriority
uint16_t otSrpServerServiceGetPriority( const otSrpServerService *aService )
Muestra la prioridad de la instancia de servicio.
Detalles | |||
---|---|---|---|
Parámetros |
|
||
Qué muestra |
Es la prioridad del servicio.
|
otSrpServerServiceGetServiceName
const char * otSrpServerServiceGetServiceName( const otSrpServerService *aService )
Muestra el nombre completo del servicio.
Detalles | |||
---|---|---|---|
Parámetros |
|
||
Qué muestra |
Un puntero para la string de nombre de servicio terminado en nulo.
|
otSrpServerServiceGetSubTypeServiceNameAt
const char * otSrpServerServiceGetSubTypeServiceNameAt( const otSrpServerService *aService, uint16_t aIndex )
Obtiene el nombre del servicio de subtipo (nombre completo) del servicio en un índice determinado.
El nombre completo del servicio de un subtipo se muestra después de "
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
||||
Qué muestra |
Un puntero para el nombre del servicio de subtipo en
aIndex , o NULL si no hay un subtipo en este índice. |
otSrpServerServiceGetTtl
uint32_t otSrpServerServiceGetTtl( const otSrpServerService *aService )
Muestra el TTL de la instancia de servicio.
Detalles | |||
---|---|---|---|
Parámetros |
|
||
Qué muestra |
El TTL de la instancia de servicio.
|
otSrpServerServiceGetTxtData
const uint8_t * otSrpServerServiceGetTxtData( const otSrpServerService *aService, uint16_t *aDataLength )
Muestra los datos del registro TXT de la instancia de servicio.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
||||
Qué muestra |
Un puntero para el búfer que contiene los datos del registro TXT (la longitud de los datos TXT se muestra en
aDataLength ). |
otSrpServerServiceGetWeight
uint16_t otSrpServerServiceGetWeight( const otSrpServerService *aService )
Muestra el peso de la instancia de servicio.
Detalles | |||
---|---|---|---|
Parámetros |
|
||
Qué muestra |
El peso del servicio.
|
otSrpServerServiceHasSubTypeServiceName
bool otSrpServerServiceHasSubTypeServiceName( const otSrpServerService *aService, const char *aSubTypeServiceName )
Indica si el servicio tiene un subtipo determinado o no.
Las coincidencias de nombres de DNS se realizan mediante una comparación de strings que no distingue mayúsculas de minúsculas (es decir, "Abc" y "aBc" son lo mismo).
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
||||
Valores que se muestran |
|
otSrpServerServiceIsDeleted
bool otSrpServerServiceIsDeleted( const otSrpServerService *aService )
Indica si se borró o no el servicio de SRP.
Un servicio de SRP se puede borrar, pero conserva su nombre para usos futuros. En este caso, la instancia de servicio no se quita del servidor o registro de SRP. Se garantiza que se borrarán todos los servicios si se borra el host.
Detalles | |||
---|---|---|---|
Parámetros |
|
||
Qué muestra |
TRUE si se eliminó el servicio, FALSE si no.
|
otSrpServerServiceMatchesInstanceName
bool otSrpServerServiceMatchesInstanceName( const otSrpServerService *aService, const char *aInstanceName )
Indica si este servicio coincide con un nombre de instancia de servicio determinado.
Las coincidencias de nombres de DNS se realizan mediante una comparación de strings que no distingue mayúsculas de minúsculas (es decir, "Abc" y "aBc" son lo mismo).
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
||||
Valores que se muestran |
|
otSrpServerServiceMatchesServiceName
bool otSrpServerServiceMatchesServiceName( const otSrpServerService *aService, const char *aServiceName )
Indica si este servicio coincide con un nombre de servicio determinado.
Las coincidencias de nombres de DNS se realizan mediante una comparación de strings que no distingue mayúsculas de minúsculas (es decir, "Abc" y "aBc" son lo mismo).
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
||||
Valores que se muestran |
|
otSrpServerSetAddressMode
otError otSrpServerSetAddressMode( otInstance *aInstance, otSrpServerAddressMode aMode )
Configura el modo de dirección que usará el servidor de SRP.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
||||
Valores que se muestran |
|
otSrpServerSetAnycastModeSequenceNumber
otError otSrpServerSetAnycastModeSequenceNumber( otInstance *aInstance, uint8_t aSequenceNumber )
Establece el número de secuencia que se usa con el modo de direcciones Anycast.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
||||
Valores que se muestran |
|
otSrpServerSetAutoEnableMode
void otSrpServerSetAutoEnableMode( otInstance *aInstance, bool aEnabled )
Habilita o inhabilita el modo de habilitación automática en el servidor de SRP.
Requiere la función OPENTHREAD_CONFIG_BORDER_ROUTING_ENABLE
.
Cuando se habilita este modo, el administrador de enrutamiento fronterizo controla si se habilita o inhabilita el servidor de SRP. El servidor de SRP se habilita automáticamente cuando se inicia el enrutamiento fronterizo y se realiza con el prefijo inicial y la configuración de la ruta (cuando se determinan los prefijos de OMR y en el vínculo, se anuncian en el mensaje de anuncio del router emitido en el lado de la infraestructura y se publican en los datos de la red de Thread). El servidor de SRP se inhabilita automáticamente cuando se detiene BR (p.ej., si se desactiva la interfaz de red de la infraestructura o si se desconecta BR).
Este modo se puede inhabilitar con una llamada a otSrpServerSetAutoEnableMode()
con aEnabled
establecido en false
o si el servidor de SRP está habilitado o inhabilitado de forma explícita por una llamada a la función otSrpServerSetEnabled()
. Inhabilitar el modo de habilitación automática con otSrpServerSetAutoEnableMode(false)
no cambiará el estado actual del servidor de SRP (p.ej., si está habilitado, permanece habilitado).
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
otSrpServerSetDomain
otError otSrpServerSetDomain( otInstance *aInstance, const char *aDomain )
Configura el dominio en el servidor de SRP.
Se agregará un punto final a aDomain
si aún no está allí. Solo se debe llamar antes de que se habilite el servidor de SRP.
Detalles | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parámetros |
|
||||||||
Valores que se muestran |
|
otSrpServerSetEnabled
void otSrpServerSetEnabled( otInstance *aInstance, bool aEnabled )
Habilita o inhabilita el servidor de SRP.
En un router de borde, se recomienda usar otSrpServerSetAutoEnableMode()
en su lugar.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
otSrpServerSetLeaseConfig
otError otSrpServerSetLeaseConfig( otInstance *aInstance, const otSrpServerLeaseConfig *aLeaseConfig )
Establece los parámetros de configuración LEASE y KEY-LEASE del servidor de SRP.
Cuando se solicita un tiempo LEASE distinto de cero a un cliente, el valor otorgado tendrá un rango limitado [aMinLease, aMaxLease] y un valor KEY-LEASE distinto de cero en el rango [aMinKeyLease, aMaxKeyLease]. Para el tiempo cero LEASE o KEY-LEASE, se otorgará cero.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
||||
Valores que se muestran |
|
otSrpServerSetServiceUpdateHandler
void otSrpServerSetServiceUpdateHandler( otInstance *aInstance, otSrpServerServiceUpdateHandler aServiceHandler, void *aContext )
Configura el controlador de actualizaciones del servicio de SRP en el servidor de SRP.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
otSrpServerSetTtlConfig
otError otSrpServerSetTtlConfig( otInstance *aInstance, const otSrpServerTtlConfig *aTtlConfig )
Establece la configuración del TTL del servidor de SRP.
El TTL otorgado siempre no superará el intervalo de asignación máximo configurado mediante otSrpServerSetLeaseConfig()
, independientemente de la configuración mínima y máxima de TTL.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
||||
Valores que se muestran |
|
Recursos
Los temas de referencia de la API de OpenThread se originan a partir del código fuente, disponible en GitHub. Para obtener más información o contribuir a nuestra documentación, consulta Recursos.