Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.

IPv6

Este módulo incluye funciones que controlan la comunicación IPv6.

Resumen

Enumeraciones

anonymous enum{
  OT_ADDRESS_ORIGIN_THREAD = 0,
  OT_ADDRESS_ORIGIN_SLAAC = 1,
  OT_ADDRESS_ORIGIN_DHCPV6 = 2,
  OT_ADDRESS_ORIGIN_MANUAL = 3
}
enum
Orígenes de la dirección IPv6
anonymous enum{
  OT_ECN_NOT_CAPABLE = 0x0,
  OT_ECN_CAPABLE_0 = 0x2,
  OT_ECN_CAPABLE_1 = 0x1,
  OT_ECN_MARKED = 0x3
}
enum
Estados de ECN, representados como en el encabezado de IP.
anonymous enum{
  OT_IP6_PROTO_HOP_OPTS = 0,
  OT_IP6_PROTO_TCP = 6,
  OT_IP6_PROTO_UDP = 17,
  OT_IP6_PROTO_IP6 = 41,
  OT_IP6_PROTO_ROUTING = 43,
  OT_IP6_PROTO_FRAGMENT = 44,
  OT_IP6_PROTO_ICMP6 = 58,
  OT_IP6_PROTO_NONE = 59,
  OT_IP6_PROTO_DST_OPTS = 60
}
enum
Números de protocolo de Internet.

Typedefs

otIp6Address typedef
struct otIp6Address
Esta estructura representa una dirección IPv6.
otIp6AddressCallback)(const otIp6AddressInfo *aAddressInfo, bool aIsAdded, void *aContext) typedef
void(*
Se llama a este puntero de función cuando se agrega o se quita una dirección IPv6 interna.
otIp6AddressComponents typedef
Esta estructura representa los componentes de una dirección IPv6.
otIp6AddressInfo typedef
otIp6InterfaceIdentifier typedef
Esta estructura representa el identificador de interfaz de una dirección IPv6.
otIp6NetworkPrefix typedef
Esta estructura representa el prefijo de red de una dirección IPv6 (los 64 bits más significativos de la dirección).
otIp6Prefix typedef
struct otIp6Prefix
Esta estructura representa un prefijo de IPv6.
otIp6ReceiveCallback)(otMessage *aMessage, void *aContext) typedef
void(*
Se llama a este puntero de función cuando se recibe un datagrama IPv6.
otIp6RegisterMulticastListenersCallback)(void *aContext, otError aError, uint8_t aMlrStatus, const otIp6Address *aFailedAddresses, uint8_t aFailedAddressNum) typedef
void(*
Se llama a este puntero de función con los resultados de otIp6RegisterMulticastListeners.
otIp6SlaacPrefixFilter)(otInstance *aInstance, const otIp6Prefix *aPrefix) typedef
bool(*
Este puntero de función le permite al usuario filtrar los prefijos y no permitir que se agregue una dirección de ANSAC según un prefijo.
otMessageInfo typedef
struct otMessageInfo
Esta estructura representa las direcciones de sockets IPv6 locales y de intercambio de tráfico.
otNetifAddress typedef
Esta estructura representa una dirección de unidifusión de la interfaz de red IPv6.
otNetifMulticastAddress typedef
Esta estructura representa una dirección multidifusión de la interfaz de red IPv6.
otSockAddr typedef
struct otSockAddr
Esta estructura representa una dirección de socket IPv6.

Variables

OT_TOOL_PACKED_END

Functions

otIp6AddUnicastAddress(otInstance *aInstance, const otNetifAddress *aAddress)
Agrega una dirección de interfaz de red a la interfaz de Thread.
otIp6AddUnsecurePort(otInstance *aInstance, uint16_t aPort)
Esta función agrega un puerto a la lista de puertos no seguros permitidos.
otIp6AddressFromString(const char *aString, otIp6Address *aAddress)
Esta función convierte una string de dirección IPv6 legible en una representación binaria.
otIp6AddressToString(const otIp6Address *aAddress, char *aBuffer, uint16_t aSize)
void
Esta función convierte una dirección IPv6 determinada en una string legible.
otIp6ArePrefixesEqual(const otIp6Prefix *aFirst, const otIp6Prefix *aSecond)
bool
Prueba si dos prefijos IPv6 son iguales.
otIp6GetMulticastAddresses(otInstance *aInstance)
Obtén la lista de direcciones de multidifusión IPv6 suscritas a la interfaz de Thread.
otIp6GetUnicastAddresses(otInstance *aInstance)
const otNetifAddress *
Obtén la lista de direcciones IPv6 asignadas a la interfaz de Thread.
otIp6GetUnsecurePorts(otInstance *aInstance, uint8_t *aNumEntries)
const uint16_t *
Esta función muestra un puntero a la lista de puertos no seguros.
otIp6IsAddressEqual(const otIp6Address *aFirst, const otIp6Address *aSecond)
bool
Prueba si dos direcciones IPv6 son iguales.
otIp6IsAddressUnspecified(const otIp6Address *aAddress)
bool
Esta función indica si una dirección IPv6 determinada es o no la dirección no especificada.
otIp6IsEnabled(otInstance *aInstance)
bool
Esta función indica si la interfaz IPv6 está activa o no.
otIp6IsMulticastPromiscuousEnabled(otInstance *aInstance)
bool
Verifica si el modo promiscuo de multidifusión está habilitado en la interfaz de Thread.
otIp6IsReceiveFilterEnabled(otInstance *aInstance)
bool
Esta función indica si se filtra el tráfico de control de Thread cuando se envían datagramas de IPv6 a través de la devolución de llamada especificada en otIp6SetReceiveCallback().
otIp6IsSlaacEnabled(otInstance *aInstance)
bool
Esta función indica si el módulo ANSAC está habilitado o no.
otIp6NewMessage(otInstance *aInstance, const otMessageSettings *aSettings)
Asigna un nuevo búfer de mensajes para enviar un mensaje IPv6.
otIp6NewMessageFromBuffer(otInstance *aInstance, const uint8_t *aData, uint16_t aDataLength, const otMessageSettings *aSettings)
Asigna un nuevo búfer de mensajes y escribe el datagrama IPv6 en el búfer de mensajes para enviar un mensaje IPv6.
otIp6PrefixMatch(const otIp6Address *aFirst, const otIp6Address *aSecond)
uint8_t
Esta función muestra la longitud de coincidencia del prefijo (bits) para dos direcciones IPv6.
otIp6PrefixToString(const otIp6Prefix *aPrefix, char *aBuffer, uint16_t aSize)
void
Esta función convierte un prefijo IPv6 determinado en una string legible.
otIp6ProtoToString(uint8_t aIpProto)
const char *
Esta función convierte un número de protocolo IP determinado en una string legible.
otIp6RegisterMulticastListeners(otInstance *aInstance, const otIp6Address *aAddresses, uint8_t aAddressNum, const uint32_t *aTimeout, otIp6RegisterMulticastListenersCallback aCallback, void *aContext)
Esta función registra objetos de escucha de multidifusión en el router principal de la red troncal.
otIp6RemoveAllUnsecurePorts(otInstance *aInstance)
void
Esta función quita todos los puertos de la lista de puertos no seguros permitidos.
otIp6RemoveUnicastAddress(otInstance *aInstance, const otIp6Address *aAddress)
Quita una dirección de interfaz de red de la interfaz de Thread.
otIp6RemoveUnsecurePort(otInstance *aInstance, uint16_t aPort)
Esta función quita un puerto de la lista de puertos no seguros permitidos.
otIp6SelectSourceAddress(otInstance *aInstance, otMessageInfo *aMessageInfo)
Esta función realiza la selección de direcciones de origen de OpenThread.
otIp6Send(otInstance *aInstance, otMessage *aMessage)
Esta función envía un datagrama IPv6 a través de la interfaz de Thread.
otIp6SetAddressCallback(otInstance *aInstance, otIp6AddressCallback aCallback, void *aCallbackContext)
void
Esta función registra una devolución de llamada para notificar los cambios de dirección IPv6 internos.
otIp6SetEnabled(otInstance *aInstance, bool aEnabled)
Esta función activa o desactiva la interfaz IPv6.
otIp6SetMeshLocalIid(otInstance *aInstance, const otIp6InterfaceIdentifier *aIid)
Esta función establece el IID local de la malla (para fines de prueba).
otIp6SetMulticastPromiscuousEnabled(otInstance *aInstance, bool aEnabled)
void
Habilita el modo promiscuo de multidifusión en la interfaz de Thread.
otIp6SetReceiveCallback(otInstance *aInstance, otIp6ReceiveCallback aCallback, void *aCallbackContext)
void
Esta función registra una devolución de llamada para proporcionar datagramas de IPv6 recibidos.
otIp6SetReceiveFilterEnabled(otInstance *aInstance, bool aEnabled)
void
Esta función establece si el tráfico de control de Thread se filtra cuando se envían datagramas IPv6 a través de la devolución de llamada especificada en otIp6SetReceiveCallback().
otIp6SetSlaacEnabled(otInstance *aInstance, bool aEnabled)
void
Esta función habilita o inhabilita el módulo ANSAC.
otIp6SetSlaacPrefixFilter(otInstance *aInstance, otIp6SlaacPrefixFilter aFilter)
void
Esta función establece el controlador del filtro del módulo ANSAC.
otIp6SockAddrToString(const otSockAddr *aSockAddr, char *aBuffer, uint16_t aSize)
void
Esta función convierte una dirección de socket IPv6 determinada en una string legible.
otIp6SubscribeMulticastAddress(otInstance *aInstance, const otIp6Address *aAddress)
Suscribe la interfaz de Thread a una dirección de multidifusión de la interfaz de red.
otIp6UnsubscribeMulticastAddress(otInstance *aInstance, const otIp6Address *aAddress)
Anula la suscripción de la interfaz de Thread a una dirección de multidifusión de la interfaz de red.

Structs

otIp6Dirección

Esta estructura representa una dirección IPv6.

otIp6AddressComponents

Esta estructura representa los componentes de una dirección IPv6.

OtIp6AddressInfo

Esta estructura representa información de dirección IPv6.

otIp6InterfaceIdentifier

Esta estructura representa el identificador de interfaz de una dirección IPv6.

otIp6NetworkPrefix

Esta estructura representa el prefijo de red de una dirección IPv6 (los 64 bits más significativos de la dirección).

otIp6Prefix

Esta estructura representa un prefijo de IPv6.

otMessageInfo

Esta estructura representa las direcciones de sockets IPv6 locales y de intercambio de tráfico.

otNetifAddress

Esta estructura representa una dirección de unidifusión de la interfaz de red IPv6.

otNetifMulticastAddress

Esta estructura representa una dirección multidifusión de la interfaz de red IPv6.

OtSockAddr

Esta estructura representa una dirección de socket IPv6.

Unión

otIp6InterfaceIdentifier::OT_TOOL_PACKED_FIELD

Enumeraciones

enumeración anónima

 anonymous enum

Orígenes de la dirección IPv6

Properties
OT_ADDRESS_ORIGIN_DHCPV6

Dirección asignada DHCPv6.

OT_ADDRESS_ORIGIN_MANUAL

Dirección asignada de forma manual.

OT_ADDRESS_ORIGIN_SLAAC

Dirección asignada al ANSAC.

OT_ADDRESS_ORIGIN_THREAD

Dirección asignada de conversación (ALOC, RLOC, MLEID, etcétera)

enumeración anónima

 anonymous enum

Estados de ECN, representados como en el encabezado de IP.

Properties
OT_ECN_CAPABLE_0

ECT(0)

OT_ECN_CAPABLE_1

ECT(1)

OT_ECN_MARKED

Se produjo una congestión (CE)

OT_ECN_NOT_CAPABLE

No son ECT.

enumeración anónima

 anonymous enum

Números de protocolo de Internet.

Properties
OT_IP6_PROTO_DST_OPTS

Opciones de destino para IPv6

OT_IP6_PROTO_FRAGMENT

Encabezado de fragmento para IPv6

OT_IP6_PROTO_HOP_OPTS

Opción IPv6 de salto a salto.

OT_IP6_PROTO_ICMP6

ICMP para IPv6

OT_IP6_PROTO_IP6

Encapsulamiento IPv6

OT_IP6_PROTO_NONE

No hay ningún encabezado siguiente para IPv6.

OT_IP6_PROTO_ROUTING

Encabezado de enrutamiento para IPv6

OT_IP6_PROTO_TCP

Protocolo de control de transmisión.

OT_IP6_PROTO_UDP

Datagram del usuario.

Typedefs

ot6IPAddress

struct otIp6Address otIp6Address

Esta estructura representa una dirección IPv6.

otIp6AddressCallback

void(* otIp6AddressCallback)(const otIp6AddressInfo *aAddressInfo, bool aIsAdded, void *aContext)

Se llama a este puntero de función cuando se agrega o se quita una dirección IPv6 interna.

Detalles
Parámetros
[in] aAddressInfo
Un puntero para la información de dirección IPv6.
[in] aIsAdded
VERDADERO si se agregó el aAddress, FALSO si se quitó el aAddress.
[in] aContext
Un puntero para el contexto específico de la aplicación.

otIp6AddressComponents

struct otIp6AddressComponents otIp6AddressComponents

Esta estructura representa los componentes de una dirección IPv6.

Ot6IPInfo

struct otIp6AddressInfo otIp6AddressInfo

Ot6IPIdentifier

struct otIp6InterfaceIdentifier otIp6InterfaceIdentifier

Esta estructura representa el identificador de interfaz de una dirección IPv6.

OtIp6NetworkPrefix

struct otIp6NetworkPrefix otIp6NetworkPrefix

Esta estructura representa el prefijo de red de una dirección IPv6 (los 64 bits más significativos de la dirección).

Ot6Prefijo

struct otIp6Prefix otIp6Prefix

Esta estructura representa un prefijo de IPv6.

otIp6ReceiveCallback

void(* otIp6ReceiveCallback)(otMessage *aMessage, void *aContext)

Se llama a este puntero de función cuando se recibe un datagrama IPv6.

Detalles
Parámetros
[in] aMessage
Un puntero para el búfer de mensajes que contiene el datagrama IPv6 recibido. Esta función transfiere la propiedad de aMessage al receptor de la devolución de llamada. El receptor de la devolución de llamada debe liberar el mensaje después de que se procese (consulta otMessageFree()).
[in] aContext
Un puntero para el contexto específico de la aplicación.

otIp6RegisterMulticastListenersCallback

void(* otIp6RegisterMulticastListenersCallback)(void *aContext, otError aError, uint8_t aMlrStatus, const otIp6Address *aFailedAddresses, uint8_t aFailedAddressNum)

Se llama a este puntero de función con los resultados de otIp6RegisterMulticastListeners.

Detalles
Parámetros
[in] aContext
Un puntero para el contexto del usuario.
[in] aError
OT_ERROR_NONE cuando se envió correctamente MLR.req y se recibió MLR.rsp, OT_ERROR_RESPONSE_TIMEOUT cuando no se pudo recibir MLR.rsp, OT_ERROR_PARSE cuando no se pudo analizar MLR.rsp.
[in] aMlrStatus
Estado de registro del objeto de escucha multidifusión cuando aError es OT_ERROR_NONE.
[in] aFailedAddresses
Un puntero para las direcciones IPv6 con errores cuando aError es OT_ERROR_NONE.
[in] aFailedAddressNum
La cantidad de direcciones IPv6 con errores cuando aError es OT_ERROR_NONE.
Consulta también:
otIp6RegisterMulticastListeners

otIp6SlaacPrefixFilter

bool(* otIp6SlaacPrefixFilter)(otInstance *aInstance, const otIp6Prefix *aPrefix)

Este puntero de función le permite al usuario filtrar los prefijos y no permitir que se agregue una dirección de ANSAC según un prefijo.

Se puede usar otIp6SetSlaacPrefixFilter() para configurar el controlador de filtros. El módulo de ANSAC invoca al controlador de filtros cuando se trata de agregar una dirección de ANSAC basada en un prefijo. Su valor booleano que se muestra determina si la dirección se filtra (no se agrega) o no.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
[in] aPrefix
Un puntero para el prefijo cuya dirección de ANSAC se va a agregar.
Valores que se muestran
TRUE
Indica que se debe filtrar la dirección del ANSAC en función del prefijo y NO se debe agregar.
FALSE
Indica que se debe agregar la dirección de ANSAC basada en el prefijo.

otMessageInfo

struct otMessageInfo otMessageInfo

Esta estructura representa las direcciones de sockets IPv6 locales y de intercambio de tráfico.

Dirección onetNetif

struct otNetifAddress otNetifAddress

Esta estructura representa una dirección de unidifusión de la interfaz de red IPv6.

otNetifMulticastAddress

struct otNetifMulticastAddress otNetifMulticastAddress

Esta estructura representa una dirección multidifusión de la interfaz de red IPv6.

OtSockAddr

struct otSockAddr otSockAddr

Esta estructura representa una dirección de socket IPv6.

Variables

TS_TOOL_PACKED_END

OT_TOOL_PACKED_BEGIN struct otIp6InterfaceIdentifier OT_TOOL_PACKED_END

Functions

ot6p6AgregarDirección

otError otIp6AddUnicastAddress(
  otInstance *aInstance,
  const otNetifAddress *aAddress
)

Agrega una dirección de interfaz de red a la interfaz de Thread.

La interfaz de Thread copia la instancia que se pasó aAddress. La interfaz de Thread solo admite un número fijo de direcciones de unidifusión agregadas externamente. Consulta OPENThread_CONFIG_IP6_MAX_EXT_UCAST_ADDRS.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
[in] aAddress
Un puntero para una dirección de interfaz de red.
Valores que se muestran
OT_ERROR_NONE
Se agregó (o actualizó) la dirección de interfaz de red.
OT_ERROR_INVALID_ARGS
La dirección IP indicada por aAddress es una dirección interna.
OT_ERROR_NO_BUFS
La interfaz de red ya almacena las direcciones externas máximas permitidas.

OtIp6AddUnsecurePort

otError otIp6AddUnsecurePort(
  otInstance *aInstance,
  uint16_t aPort
)

Esta función agrega un puerto a la lista de puertos no seguros permitidos.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
[in] aPort
Es el valor del puerto.
Valores que se muestran
OT_ERROR_NONE
El puerto se agregó correctamente a la lista de puertos no seguros permitidos.
OT_ERROR_INVALID_ARGS
El puerto no es válido (el valor 0 está reservado para uso interno).
OT_ERROR_NO_BUFS
La lista de puertos no seguros está llena.

otIp6DirecciónDeString

otError otIp6AddressFromString(
  const char *aString,
  otIp6Address *aAddress
)

Esta función convierte una string de dirección IPv6 legible en una representación binaria.

Detalles
Parámetros
[in] aString
Un puntero para una string terminada en NULL.
[out] aAddress
Un puntero para una dirección IPv6.
Valores que se muestran
OT_ERROR_NONE
Se analizó correctamente la string.
OT_ERROR_INVALID_ARGS
No se pudo analizar la string.

ot6IPToToString

void otIp6AddressToString(
  const otIp6Address *aAddress,
  char *aBuffer,
  uint16_t aSize
)

Esta función convierte una dirección IPv6 determinada en una string legible.

La string de dirección IPv6 tiene el formato 16 valores hexadecimales, separados por ':' (es decir, "%x:%x:%x:...:%x").

Si la string resultante no cabe en aBuffer (dentro de sus caracteres aSize), la string se truncará, pero la string resultante siempre será nula.

Detalles
Parámetros
[in] aAddress
Un puntero para una dirección IPv6 (NO DEBE ser NULO).
[out] aBuffer
Un puntero para un arreglo de caracteres que genera la string (NO DEBE ser NULO).
[in] aSize
El tamaño de aBuffer (en bytes). Se recomienda usar OT_IP6_ADDRESS_STRING_SIZE.

otIp6ArePrefixesEqual

bool otIp6ArePrefixesEqual(
  const otIp6Prefix *aFirst,
  const otIp6Prefix *aSecond
)

Prueba si dos prefijos IPv6 son iguales.

Detalles
Parámetros
[in] aFirst
Un puntero al primer prefijo IPv6 para comparar.
[in] aSecond
Un puntero al segundo prefijo IPv6 para comparar.
Valores que se muestran
TRUE
Los dos prefijos de IPv6 son iguales.
FALSE
Los dos prefijos de IPv6 no son los mismos.

Ot6IpMultiMultiAddressAddress

const otNetifMulticastAddress * otIp6GetMulticastAddresses(
  otInstance *aInstance
)

Obtén la lista de direcciones de multidifusión IPv6 suscritas a la interfaz de Thread.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
Qué muestra
Un puntero para la primera dirección de multidifusión de la interfaz de red.

ot6yGetUnicastAddresses

const otNetifAddress * otIp6GetUnicastAddresses(
  otInstance *aInstance
)

Obtén la lista de direcciones IPv6 asignadas a la interfaz de Thread.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
Qué muestra
Un puntero para la primera dirección de interfaz de red.

ot6PeUnUnPuertoDeSeguro

const uint16_t * otIp6GetUnsecurePorts(
  otInstance *aInstance,
  uint8_t *aNumEntries
)

Esta función muestra un puntero a la lista de puertos no seguros.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
[out] aNumEntries
Es la cantidad de entradas de la lista.
Qué muestra
Un puntero para la lista de puertos no seguros.

ot6IsAddressAddressEqual

bool otIp6IsAddressEqual(
  const otIp6Address *aFirst,
  const otIp6Address *aSecond
)

Prueba si dos direcciones IPv6 son iguales.

Detalles
Parámetros
[in] aFirst
Un puntero a la primera dirección IPv6 para comparar.
[in] aSecond
Un puntero a la segunda dirección IPv6 para comparar.
Valores que se muestran
TRUE
Las dos direcciones IPv6 son las mismas.
FALSE
Las dos direcciones IPv6 no son las mismas.

otIp6IsAddressUnspecified

bool otIp6IsAddressUnspecified(
  const otIp6Address *aAddress
)

Esta función indica si una dirección IPv6 determinada es o no la dirección no especificada.

Detalles
Parámetros
[in] aAddress
Un puntero para una dirección IPv6.
Valores que se muestran
TRUE
Si la dirección IPv6 es la sin especificar.
FALSE
Si la dirección IPv6 no es la sin especificar.

OTI6IsEnabled

bool otIp6IsEnabled(
  otInstance *aInstance
)

Esta función indica si la interfaz IPv6 está activa o no.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
Valores que se muestran
TRUE
La interfaz IPv6 está habilitada.
FALSE
La interfaz IPv6 está inhabilitada.

Ot6IPMulticastPromiscuousEnabled

bool otIp6IsMulticastPromiscuousEnabled(
  otInstance *aInstance
)

Verifica si el modo promiscuo de multidifusión está habilitado en la interfaz de Thread.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
Consulta también:
otIp6SetMulticastPromiscuousEnabled

OtIp6IsReceiveFilterEnabled

bool otIp6IsReceiveFilterEnabled(
  otInstance *aInstance
)

Esta función indica si se filtra el tráfico de control de Thread cuando se envían datagramas de IPv6 a través de la devolución de llamada especificada en otIp6SetReceiveCallback().

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
Qué muestra
TRUE si se filtra el tráfico de control de Thread; de lo contrario, es FALSE.
Consulta también:
otIp6SetReceiveCallback
otIp6SetReceiveFilterEnabled

Ot6IsSlaacEnabled

bool otIp6IsSlaacEnabled(
  otInstance *aInstance
)

Esta función indica si el módulo ANSAC está habilitado o no.

Esta función requiere que se habilite la función de tiempo de compilación OPENTHREAD_CONFIG_IP6_SLAAC_ENABLE.

Detalles
Valores que se muestran
TRUE
El módulo ANSAC está habilitado.
FALSE
El módulo de ANSAC está inhabilitado.

ot6Ip6NewMessage

otMessage * otIp6NewMessage(
  otInstance *aInstance,
  const otMessageSettings *aSettings
)

Asigna un nuevo búfer de mensajes para enviar un mensaje IPv6.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
[in] aSettings
Un puntero para la configuración del mensaje o NULL para establecer la configuración predeterminada.
Qué muestra
Un puntero al búfer de mensajes o NULL si no hay búferes de mensaje disponibles o los parámetros no son válidos.
Consulta también:
otMessageFree

otIp6NewMessageFromBuffer

otMessage * otIp6NewMessageFromBuffer(
  otInstance *aInstance,
  const uint8_t *aData,
  uint16_t aDataLength,
  const otMessageSettings *aSettings
)

Asigna un nuevo búfer de mensajes y escribe el datagrama IPv6 en el búfer de mensajes para enviar un mensaje IPv6.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
[in] aData
Un puntero para el búfer de datagramas IPv6.
[in] aDataLength
El tamaño del búfer de datagramas IPv6 señalado por aData.
[in] aSettings
Un puntero para la configuración del mensaje o NULL para establecer la configuración predeterminada.
Qué muestra
Un puntero al mensaje o NULO si el encabezado IPv6 con formato incorrecto o los búferes del mensaje no están disponibles.
Consulta también:
otMessageFree

OtIp6PrefixMatch

uint8_t otIp6PrefixMatch(
  const otIp6Address *aFirst,
  const otIp6Address *aSecond
)

Esta función muestra la longitud de coincidencia del prefijo (bits) para dos direcciones IPv6.

Detalles
Parámetros
[in] aFirst
Un puntero para la primera dirección IPv6.
[in] aSecond
Un puntero para la segunda dirección IPv6.
Qué muestra
La longitud de la coincidencia de prefijos en bits.

ot6PrefijoToString

void otIp6PrefixToString(
  const otIp6Prefix *aPrefix,
  char *aBuffer,
  uint16_t aSize
)

Esta función convierte un prefijo IPv6 determinado en una string legible.

La string de la dirección IPv6 tiene el formato &xt:%x:%x:%x:...[::]/plen"

Si la string resultante no cabe en aBuffer (dentro de sus caracteres aSize), la string se truncará, pero la string resultante siempre será nula.

Detalles
Parámetros
[in] aPrefix
Un puntero para un prefijo IPv6 (NO DEBE ser NULO).
[out] aBuffer
Un puntero para un arreglo de caracteres que genera la string (NO DEBE ser NULO).
[in] aSize
El tamaño de aBuffer (en bytes). Se recomienda usar OT_IP6_PREFIX_STRING_SIZE.

OtIp6ProtoToString

const char * otIp6ProtoToString(
  uint8_t aIpProto
)

Esta función convierte un número de protocolo IP determinado en una string legible.

Detalles
Parámetros
[in] aIpProto
Un número de protocolo IP (enumeración OT_IP6_PROTO_*).
Qué muestra
Una string que representa a aIpProto.

OtIp6RegisterMulticastListeners

otError otIp6RegisterMulticastListeners(
  otInstance *aInstance,
  const otIp6Address *aAddresses,
  uint8_t aAddressNum,
  const uint32_t *aTimeout,
  otIp6RegisterMulticastListenersCallback aCallback,
  void *aContext
)

Esta función registra objetos de escucha de multidifusión en el router principal de la red troncal.

Nota: Solo están disponibles cuando están habilitados OPENTHREAD_CONFIG_TMF_PROXY_MLR_ENABLE y OPENTHREAD_CONFIG_COMMISSIONER_ENABLE

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
[in] aAddresses
Un arreglo de direcciones multidifusión para registrar
[in] aAddressNum
La cantidad de direcciones de multidifusión que se registrará (0 si aAddresses es NULL).
[in] aTimeout
Un puntero para el valor de tiempo de espera (en segundos) que se debe incluir en MLR.req. Un valor de tiempo de espera de 0 quita el objeto de escucha de multidifusión correspondiente. Si el valor es NULL, MLR.req no tendría un Tlv de tiempo de espera de forma predeterminada.
[in] aCallback
Un puntero para la función de devolución de llamada.
[in] aContext
Un puntero para el contexto del usuario.
Valores que se muestran
OT_ERROR_NONE
Se envió correctamente MLR.req. Se llamará a aCallback si este método muestra OT_ERROR_NONE.
OT_ERROR_BUSY
Si el registro anterior estaba en curso.
OT_ERROR_INVALID_ARGS
Si uno o más argumentos no son válidos.
OT_ERROR_INVALID_STATE
Si el dispositivo no estaba en un estado válido para enviar MLR.req (p.ej., no se inició la comisión, no se encontró el router principal de la red troncal).
OT_ERROR_NO_BUFS
Si no hay suficientes búferes de mensajes disponibles.
Consulta también:
otIp6RegisterMulticastListenersCallback

OtIp6RemoveAllUnsecurePorts

void otIp6RemoveAllUnsecurePorts(
  otInstance *aInstance
)

Esta función quita todos los puertos de la lista de puertos no seguros permitidos.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.

ot6PdReQuitarDirección

otError otIp6RemoveUnicastAddress(
  otInstance *aInstance,
  const otIp6Address *aAddress
)

Quita una dirección de interfaz de red de la interfaz de Thread.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
[in] aAddress
Un puntero para una dirección IP.
Valores que se muestran
OT_ERROR_NONE
Se quitó correctamente la dirección de interfaz de red.
OT_ERROR_INVALID_ARGS
La dirección IP indicada por aAddress es una dirección interna.
OT_ERROR_NOT_FOUND
No se encontró la dirección IP indicada por aAddress.

OtIp6QuitarUnsecurePort

otError otIp6RemoveUnsecurePort(
  otInstance *aInstance,
  uint16_t aPort
)

Esta función quita un puerto de la lista de puertos no seguros permitidos.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
[in] aPort
Es el valor del puerto.
Valores que se muestran
OT_ERROR_NONE
El puerto se eliminó correctamente de la lista de puertos no seguros permitidos.
OT_ERROR_INVALID_ARGS
El puerto no es válido (el valor 0 está reservado para uso interno).
OT_ERROR_NOT_FOUND
No se encontró el puerto en la lista de puertos no seguros.

OtIp6SelectSourceAddress

otError otIp6SelectSourceAddress(
  otInstance *aInstance,
  otMessageInfo *aMessageInfo
)

Esta función realiza la selección de direcciones de origen de OpenThread.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
[in,out] aMessageInfo
Un puntero para la información del mensaje.
Valores que se muestran
OT_ERROR_NONE
Se encontró una dirección de origen y se completó en mSockAddr de aMessageInfo.
OT_ERROR_NOT_FOUND
No se encontró ninguna dirección de origen y aMessageInfo no se modificó.

OPI6Enviar

otError otIp6Send(
  otInstance *aInstance,
  otMessage *aMessage
)

Esta función envía un datagrama IPv6 a través de la interfaz de Thread.

El emisor transfiere la propiedad de aMessage cuando realiza esta llamada. OpenThread liberará aMessage cuando se complete el procesamiento, incluso cuando se muestre un valor distinto de OT_ERROR_NONE.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
[in] aMessage
Un puntero para el búfer de mensajes que contiene el datagrama IPv6.
Valores que se muestran
OT_ERROR_NONE
El mensaje se procesó correctamente.
OT_ERROR_DROP
El mensaje tenía el formato correcto, pero no se procesó por completo debido a las reglas de procesamiento de paquetes.
OT_ERROR_NO_BUFS
No se pudieron asignar los búferes de mensajes necesarios al procesar el datagrama.
OT_ERROR_NO_ROUTE
No hay ruta para alojar.
OT_ERROR_INVALID_SOURCE_ADDRESS
La dirección de origen no es válida; p.ej., una dirección de anycast o multidifusión.
OT_ERROR_PARSE
Se encontró un encabezado con errores de formato al procesar el mensaje.

otIp6SetAddressCallback

void otIp6SetAddressCallback(
  otInstance *aInstance,
  otIp6AddressCallback aCallback,
  void *aCallbackContext
)

Esta función registra una devolución de llamada para notificar los cambios de dirección IPv6 internos.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
[in] aCallback
Un puntero para una función que se llama cuando se agrega o se quita una dirección IPv6 interna. NULL para inhabilitar la devolución de llamada.
[in] aCallbackContext
Un puntero para el contexto específico de la aplicación.

OtIp6SetEnabled

otError otIp6SetEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Esta función activa o desactiva la interfaz IPv6.

Llama a esta función para habilitar o inhabilitar la comunicación IPv6.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
[in] aEnabled
Si está configurado como TRUE, de lo contrario, se habilitará IPv6.
Valores que se muestran
OT_ERROR_NONE
La interfaz IPv6 aumentó/abajo correctamente.
OT_ERROR_INVALID_STATE
La interfaz IPv6 no está disponible porque el dispositivo funciona en modo de vínculo sin procesar (solo se aplica cuando la función OPENTHREAD_CONFIG_LINK_RAW_ENABLE está habilitada).

ot6PdsMeshLocalIid

otError otIp6SetMeshLocalIid(
  otInstance *aInstance,
  const otIp6InterfaceIdentifier *aIid
)

Esta función establece el IID local de la malla (para fines de prueba).

Solo está disponible cuando OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE está habilitado.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
[in] aIid
Un puntero para el IID local de la malla para establecer.
Valores que se muestran
OT_ERROR_NONE
Se configuró correctamente el IID local de la malla.
OT_ERROR_INVALID_STATE
Los protocolos de Thread están habilitados.

otIp6SetMulticastPromiscuousEnabled

void otIp6SetMulticastPromiscuousEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Habilita el modo promiscuo de multidifusión en la interfaz de Thread.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
[in] aEnabled
TRUE para habilitar el modo de multidifusión promiscuoso. En caso contrario, es FALSE.
Consulta también:
otIp6IsMulticastPromiscuousEnabled

otIp6SetReceiveCallback

void otIp6SetReceiveCallback(
  otInstance *aInstance,
  otIp6ReceiveCallback aCallback,
  void *aCallbackContext
)

Esta función registra una devolución de llamada para proporcionar datagramas de IPv6 recibidos.

De forma predeterminada, esta devolución de llamada no pasa el tráfico de control de Thread. Consulta otIp6SetReceiveFilterEnabled() para cambiar la configuración del filtro de control de subprocesos.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
[in] aCallback
Un puntero para una función que se llama cuando se recibe un datagrama IPv6 o NULL para inhabilitar la devolución de llamada.
[in] aCallbackContext
Un puntero para el contexto específico de la aplicación.
Consulta también:
otIp6IsReceiveFilterEnabled
otIp6SetReceiveFilterEnabled

otIp6SetReceiveFilterEnabled

void otIp6SetReceiveFilterEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Esta función establece si el tráfico de control de Thread se filtra cuando se envían datagramas IPv6 a través de la devolución de llamada especificada en otIp6SetReceiveCallback().

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
[in] aEnabled
TRUE si se filtra el tráfico de control de Thread; de lo contrario, es FALSE.
Consulta también:
otIp6SetReceiveCallback
otIsReceiveIp6FilterEnabled

ot6Ip6SetSlaacEnabled

void otIp6SetSlaacEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Esta función habilita o inhabilita el módulo ANSAC.

Esta función requiere que se habilite la función de tiempo de compilación OPENTHREAD_CONFIG_IP6_SLAAC_ENABLE.

Cuando el módulo ANSAC está habilitado, se agregan a la interfaz las direcciones de este tipo (basadas en prefijos en la malla en los datos de red). Cuando el módulo de ANSAC está inhabilitado, se quita cualquier dirección de ANSAC que haya agregado antes.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
[in] aEnabled
VERDADERO para habilitar, FALSO para inhabilitarlo.

otIp6SetSlaacPrefixFilter

void otIp6SetSlaacPrefixFilter(
  otInstance *aInstance,
  otIp6SlaacPrefixFilter aFilter
)

Esta función establece el controlador del filtro del módulo ANSAC.

Esta función requiere que se habilite la función de tiempo de compilación OPENTHREAD_CONFIG_IP6_SLAAC_ENABLE.

El módulo ANSAC llama al controlador de filtros cuando se trata de agregar una dirección de este tipo en función de un prefijo para decidir si se debe agregar la dirección.

Un controlador de filtros NULL inhabilita el filtrado y permite que se agreguen todas las direcciones de ANSAC.

Si no se llama a esta función, el filtro predeterminado que usa el módulo de ANSAC será NULL (el filtro está inhabilitado).

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
[in] aFilter
Un puntero del controlador de filtros de prefijo de ANSAC o NULL para inhabilitar el filtrado.

ot6p0asodSedToString

void otIp6SockAddrToString(
  const otSockAddr *aSockAddr,
  char *aBuffer,
  uint16_t aSize
)

Esta función convierte una dirección de socket IPv6 determinada en una string legible.

La cadena de dirección del socket IPv6 tiene el formato "

]:" donde `
se muestra como 16 valores hexadecimales separados por un ':' y es el número de puerto en formato decimal (es decir, &&t;;[%x:%x:...:%x]:%u"]

Si la string resultante no cabe en aBuffer (dentro de sus caracteres aSize), la string se truncará, pero la string resultante siempre será nula.

Detalles
Parámetros
[in] aSockAddr
Un puntero para una dirección de socket IPv6 (NO DEBE ser NULO).
[out] aBuffer
Un puntero para un arreglo de caracteres que genera la string (NO DEBE ser NULO).
[in] aSize
El tamaño de aBuffer (en bytes). Se recomienda usar OT_IP6_SOCK_ADDR_STRING_SIZE.

otIp6SubscribeMulticastAddress

otError otIp6SubscribeMulticastAddress(
  otInstance *aInstance,
  const otIp6Address *aAddress
)

Suscribe la interfaz de Thread a una dirección de multidifusión de la interfaz de red.

La interfaz de Thread copiará la instancia que se pasó aAddress. La interfaz de Thread solo admite un número fijo de direcciones de multidifusión agregadas de forma externa. Consulta OPENThread_CONFIG_IP6_MAX_EXT_MCAST_ADDRS.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
[in] aAddress
Un puntero para una dirección IP.
Valores que se muestran
OT_ERROR_NONE
La suscripción a la dirección multidifusión de la interfaz de red se suscribió correctamente.
OT_ERROR_ALREADY
Ya se suscribió la dirección multidifusión.
OT_ERROR_INVALID_ARGS
La dirección IP indicada por aAddress es una dirección de multidifusión no válida.
OT_ERROR_REJECTED
La dirección IP indicada por aAddress es una dirección de multidifusión interna.
OT_ERROR_NO_BUFS
La interfaz de red ya almacena la cantidad máxima permitida de direcciones de multidifusión externas.

otIp6unsubscribeMulticastAddress

otError otIp6UnsubscribeMulticastAddress(
  otInstance *aInstance,
  const otIp6Address *aAddress
)

Anula la suscripción de la interfaz de Thread a una dirección de multidifusión de la interfaz de red.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
[in] aAddress
Un puntero para una dirección IP.
Valores que se muestran
OT_ERROR_NONE
Se anuló correctamente la suscripción a la dirección de multidifusión de la interfaz de red.
OT_ERROR_REJECTED
La dirección IP indicada por aAddress es una dirección interna.
OT_ERROR_NOT_FOUND
No se encontró la dirección IP indicada por aAddress.

Macros

OT_IP6_ADDRESS_SIZE

 OT_IP6_ADDRESS_SIZE 16

Tamaño de una dirección IPv6 (bytes)

OT_IP6_ADDRESS_STRING_SIZE

 OT_IP6_ADDRESS_STRING_SIZE 40

Tamaño recomendado para la representación de string de una dirección IPv6.

OT_IP6_IID_SIZE

 OT_IP6_IID_SIZE 8

Tamaño de un identificador de interfaz IPv6 (bytes)

OT_IP6_PREFIX_BITSIZE

 OT_IP6_PREFIX_BITSIZE (OT_IP6_PREFIX_SIZE * 8)

Tamaño de un prefijo de IPv6 (bits)

OT_IP6_PREFIX_SIZE

 OT_IP6_PREFIX_SIZE 8

Tamaño de un prefijo de IPv6 (bytes)

OT_IP6_PREFIX_STRING_SIZE

 OT_IP6_PREFIX_STRING_SIZE 45

Tamaño recomendado para la representación de strings de un prefijo IPv6.

OT_IP6_SOCK_ADDR_STRING_SIZE

 OT_IP6_SOCK_ADDR_STRING_SIZE 48

Tamaño recomendado para la representación de string de una dirección de socket IPv6

Recursos

Los temas de referencia de la API de OpenThread se originan en el código fuente, disponible en GitHub. Para obtener más información o colaborar con nuestra documentación, consulta Recursos.