Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.
Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

NAT64

Este módulo incluye funciones y estructuras para la función NAT64 en el router de borde.

Resumen

Estas funciones solo están disponibles cuando se habilita OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE.

Enumeraciones

otNat64DropReason{
  OT_NAT64_DROP_REASON_UNKNOWN = 0,
  OT_NAT64_DROP_REASON_ILLEGAL_PACKET,
  OT_NAT64_DROP_REASON_UNSUPPORTED_PROTO,
  OT_NAT64_DROP_REASON_NO_MAPPING
}
Enum
Motivos de la pérdida de paquetes.

Typedefs

otIp4Address typedef
struct otIp4Address
Esta estructura representa una dirección IPv4.
otIp4Cidr typedef
struct otIp4Cidr
otNat64AddressMapping typedef
Representa un registro de asignación de dirección para NAT64.
otNat64AddressMappingIterator typedef
Se usa para iterar a través de asignaciones de direcciones NAT64.
otNat64Counters typedef
Representa los contadores de NAT64.
otNat64DropReason typedef
Motivos de la pérdida de paquetes.
otNat64ErrorCounters typedef
Representa los contadores de los paquetes descartados debido a errores cuando se manejan los paquetes NAT64.
otNat64ProtocolCounters typedef
Representa los contadores de los protocolos compatibles con NAT64.
otNat64ReceiveIp4Callback)(otMessage *aMessage, void *aContext) typedef
void(*
Este puntero de función se llama cuando se recibe un datagrama IPv4 (traducido por el traductor NAT64).

Variables

OT_TOOL_PACKED_END

Funciones

otIp4AddressFromString(const char *aString, otIp4Address *aAddress)
Convierte una string de dirección IPv4 de fácil lectura en una representación binaria.
otIp4AddressToString(const otIp4Address *aAddress, char *aBuffer, uint16_t aSize)
void
Convierte la dirección en una string.
otIp4CidrToString(const otIp4Cidr *aCidr, char *aBuffer, uint16_t aSize)
void
Convierte el CIDR IPv4 en una string.
otIp4ExtractFromIp6Address(uint8_t aPrefixLength, const otIp6Address *aIp6Address, otIp4Address *aIp4Address)
void
Configura aIp4Address mediante la traducción de direcciones NAT64 desde aIp6Address, como se especifica en la RFC 6052.
otIp4IsAddressEqual(const otIp4Address *aFirst, const otIp4Address *aSecond)
bool
Prueba si dos direcciones IPv4 son iguales.
otIp4NewMessage(otInstance *aInstance, const otMessageSettings *aSettings)
Asigna un nuevo búfer de mensajes para enviar un mensaje IPv4 al traductor NAT64.
otNat64GetCidr(otInstance *aInstance, otIp4Cidr *aCidr)
Obtiene el CIDR IPv4 configurado en el traductor NAT64.
otNat64GetCounters(otInstance *aInstance, otNat64ProtocolCounters *aCounters)
void
Obtiene contadores del traductor NAT64.
otNat64GetErrorCounters(otInstance *aInstance, otNat64ErrorCounters *aCounters)
void
Obtiene los contadores de error del traductor NAT64.
otNat64GetNextAddressMapping(otInstance *aInstance, otNat64AddressMappingIterator *aIterator, otNat64AddressMapping *aMapping)
Obtiene la siguiente información de AddressMapping (usando un iterador).
otNat64InitAddressMappingIterator(otInstance *aInstance, otNat64AddressMappingIterator *aIterator)
void
otNat64Send(otInstance *aInstance, otMessage *aMessage)
Traduce un datagrama IPv4 a un datagrama IPv6 y lo envía a través de la interfaz de Thread.
otNat64SetIp4Cidr(otInstance *aInstance, const otIp4Cidr *aCidr)
Establece el CIDR que se usa para configurar la dirección de origen de los paquetes IPv4 traducidos.
otNat64SetReceiveIp4Callback(otInstance *aInstance, otNat64ReceiveIp4Callback aCallback, void *aContext)
void
Registra una devolución de llamada para proporcionar datagramas IPv4 recibidos.
otNat64SynthersizeIp6Address(otInstance *aInstance, const otIp4Address *aIp4Address, otIp6Address *aIp6Address)
Configura la dirección IPv6 mediante la traducción de direcciones NAT64 a partir del prefijo NAT64 preferido y la dirección IPv4 determinada, como se especifica en la RFC 6052.

Structs

otIp4Dirección

Esta estructura representa una dirección IPv4.

otIp4Cidr

Esta estructura representa un bloque CIDR IPv4.

otNat64AddressMapping

Representa un registro de asignación de dirección para NAT64.

otNat64AddressMappingIterator

Se usa para iterar a través de asignaciones de direcciones NAT64.

otNat64Counters

Representa los contadores de NAT64.

otNat64ErrorCounters

Representa los contadores de los paquetes descartados debido a errores cuando se manejan los paquetes NAT64.

otNat64ProtocolCounters

Representa los contadores de los protocolos compatibles con NAT64.

Uniones

otIp4Dirección::OT_TOOL_PACKED_FIELD

Enumeraciones

otNat64DropReason

 otNat64DropReason

Motivos de la pérdida de paquetes.

Propiedades
OT_NAT64_DROP_REASON_ILLEGAL_PACKET

Se descartó el paquete debido a que no se pudo analizar el datagrama.

OT_NAT64_DROP_REASON_NO_MAPPING

Reducción del paquete debido a que no se encontraron asignaciones o que se agotó el grupo de asignación.

OT_NAT64_DROP_REASON_UNKNOWN

Soltar paquete por motivos desconocidos.

OT_NAT64_DROP_REASON_UNSUPPORTED_PROTO

Caída de paquetes debido a un protocolo IP no compatible

Typedefs

Dirección ot4IP

struct otIp4Address otIp4Address

Esta estructura representa una dirección IPv4.

ot4pidr

struct otIp4Cidr otIp4Cidr

otNat64AddressMapping

struct otNat64AddressMapping otNat64AddressMapping

Representa un registro de asignación de dirección para NAT64.

otNat64AddressMappingIterator

struct otNat64AddressMappingIterator otNat64AddressMappingIterator

Se usa para iterar a través de asignaciones de direcciones NAT64.

Los campos de este tipo son opacos (solo deben usar OpenCore Core) y, por lo tanto, el emisor no debe acceder a ellos ni usarlos.

Antes de usar un iterador, DEBE inicializarse con otNat64AddressMappingIteratorInit().

otNat64Counters

struct otNat64Counters otNat64Counters

Representa los contadores de NAT64.

otNat64DropReason

enum otNat64DropReason otNat64DropReason

Motivos de la pérdida de paquetes.

otNat64ErrorCounters

struct otNat64ErrorCounters otNat64ErrorCounters

Representa los contadores de los paquetes descartados debido a errores cuando se manejan los paquetes NAT64.

otNat64ProtocolCounters

struct otNat64ProtocolCounters otNat64ProtocolCounters

Representa los contadores de los protocolos compatibles con NAT64.

otNat64ReceiveIp4Callback

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

Este puntero de función se llama cuando se recibe un datagrama IPv4 (traducido por el traductor NAT64).

Detalles
Parámetros
[in] aMessage
Un puntero al 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.
[in] aContext
Un puntero al contexto específico de la aplicación.

Variables

TS_TOOL_PACKED_END

OT_TOOL_PACKED_BEGIN struct otIp4Address OT_TOOL_PACKED_END

Funciones

otIp4AddressFromString

otError otIp4AddressFromString(
  const char *aString,
  otIp4Address *aAddress
)

Convierte una string de dirección IPv4 de fácil lectura 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 IPv4.
Valores de retorno
OT_ERROR_NONE
Se analizó correctamente la string.
OT_ERROR_INVALID_ARGS
No se pudo analizar la string.

otIp4AddressToString

void otIp4AddressToString(
  const otIp4Address *aAddress,
  char *aBuffer,
  uint16_t aSize
)

Convierte la dirección en una string.

El formato de string utiliza la notación de cuatro puntos con cuatro puntos en la dirección (p.ej., "127.0.0.1").

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

Detalles
Parámetros
[in] aAddress
Un puntero para una dirección IPv4 (NO DEBE ser NULO).
[out] aBuffer
Un puntero para un arreglo de caracteres a fin de generar la string (NO DEBE nullptr).
[in] aSize
El tamaño de aBuffer (en bytes).

otIp4CidrToString

void otIp4CidrToString(
  const otIp4Cidr *aCidr,
  char *aBuffer,
  uint16_t aSize
)

Convierte el CIDR IPv4 en una string.

El formato de string utiliza una notación de cuatro puntos con cuatro puntos en la dirección y la longitud del prefijo (p.ej., "127.0.0.1/32").

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

Detalles
Parámetros
[in] aCidr
Un puntero para un CIDR IPv4 (NO DEBE ser NULO).
[out] aBuffer
Un puntero para un arreglo de caracteres a fin de generar la string (NO DEBE nullptr).
[in] aSize
El tamaño de aBuffer (en bytes).

otIp4ExtractFromIp6Address

void otIp4ExtractFromIp6Address(
  uint8_t aPrefixLength,
  const otIp6Address *aIp6Address,
  otIp4Address *aIp4Address
)

Configura aIp4Address mediante la traducción de direcciones NAT64 desde aIp6Address, como se especifica en la RFC 6052.

El aPrefixLength de NAT64 DEBE ser uno de los siguientes valores: 32, 40, 48, 56, 64 o 96. De lo contrario, el comportamiento de este método no está definido.

Detalles
Parámetros
[in] aPrefixLength
La longitud de prefijo que se usará para la traducción de IPv4/IPv6.
[in] aIp6Address
Un puntero para una dirección IPv6.
[out] aIp4Address
Un puntero para mostrar la dirección IPv4.

ot4IsAddressEqual

bool otIp4IsAddressEqual(
  const otIp4Address *aFirst,
  const otIp4Address *aSecond
)

Prueba si dos direcciones IPv4 son iguales.

Detalles
Parámetros
[in] aFirst
Un puntero a la primera dirección IPv4 para comparar.
[in] aSecond
Un puntero a la segunda dirección IPv4 para comparar.
Valores de retorno
TRUE
Las dos direcciones IPv4 son iguales.
FALSE
Las dos direcciones IPv4 no son iguales.

ot4NuevoMensaje4

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

Asigna un nuevo búfer de mensajes para enviar un mensaje IPv4 al traductor NAT64.

Los búferes de mensajes asignados por esta función tendrán 20 bytes (la diferencia entre el tamaño de los encabezados IPv6 y los tamaños de encabezados IPv4).

Disponible cuando OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE está habilitado.

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 mensajes disponibles o si los parámetros no son válidos.
Consulta también:
otNat64Send

otNat64GetCidr

otError otNat64GetCidr(
  otInstance *aInstance,
  otIp4Cidr *aCidr
)

Obtiene el CIDR IPv4 configurado en el traductor NAT64.

Disponible cuando OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE está habilitado.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
[out] aCidr
Un puntero para un elemento otIp4Cidr. Dónde se completará el CIDR.

otNat64GetCounters

void otNat64GetCounters(
  otInstance *aInstance,
  otNat64ProtocolCounters *aCounters
)

Obtiene contadores del traductor NAT64.

El contador se cuenta desde que se inicializó la instancia.

Disponible cuando OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE está habilitado.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
[out] aCounters
Un puntero para un otNat64Counters en el que se colocarán los contadores del traductor NAT64.

otNat64GetErrorCounters

void otNat64GetErrorCounters(
  otInstance *aInstance,
  otNat64ErrorCounters *aCounters
)

Obtiene los contadores de error del traductor NAT64.

Los contadores se inicializan en cero cuando se inicializa la instancia de OpenThread.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
[out] aCounters
Un puntero para un otNat64Counters en el que se colocarán los contadores del traductor NAT64.

otNat64GetNextAddressMapping

otError otNat64GetNextAddressMapping(
  otInstance *aInstance,
  otNat64AddressMappingIterator *aIterator,
  otNat64AddressMapping *aMapping
)

Obtiene la siguiente información de AddressMapping (usando un iterador).

Disponible cuando OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE está habilitado.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
[in,out] aIterator
Un puntero al iterador. Si se realiza correctamente, se actualizará el iterador para que apunte al siguiente registro de asignación de dirección NAT64. Para obtener la primera entrada, el iterador debe configurarse en OT_NAT64_ADDRESS_MAPPING_ITERATOR_INIT.
[out] aMapping
Un puntero para un objeto otNat64AddressMapping en el que se coloca información del próximo registro de asignación de dirección NAT64 (si se ejecuta de forma correcta).
Valores de retorno
OT_ERROR_NONE
Se encontró correctamente la siguiente información de asignación de dirección NAT64 (aMapping se actualizó correctamente).
OT_ERROR_NOT_FOUND
No se encontró la información de asignación de direcciones NAT64 posterior.

otNat64InitAddressMappingIterator

void otNat64InitAddressMappingIterator(
  otInstance *aInstance,
  otNat64AddressMappingIterator *aIterator
)

Inicializa un otNat64AddressMappingIterator.

Se debe inicializar un iterador antes de usarlo.

Se puede inicializar un iterador nuevamente para reiniciar desde el principio de la información de asignación.

Detalles
Parámetros
[in] aInstance
La instancia de OpenThread.
[out] aIterator
Un puntero al iterador que se inicializará.

otNat64Send

otError otNat64Send(
  otInstance *aInstance,
  otMessage *aMessage
)

Traduce un datagrama IPv4 a un datagrama IPv6 y lo envía 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 al búfer de mensajes que contiene el datagrama IPv4.
Valores de retorno
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 el host.
OT_ERROR_INVALID_SOURCE_ADDRESS
La dirección de origen no es válida, p.ej., una dirección Anycast o una multidifusión.
OT_ERROR_PARSE
Se encontró un encabezado con formato incorrecto al procesar el mensaje.

otNat64SetIp4Cidr

otError otNat64SetIp4Cidr(
  otInstance *aInstance,
  const otIp4Cidr *aCidr
)

Establece el CIDR que se usa para configurar la dirección de origen de los paquetes IPv4 traducidos.

Esta función solo está disponible cuando OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE está habilitado.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
[in] aCidr
Un puntero a un otIp4Cidr para el bloque CIDR de IPv4 para NAT64.
Valores de retorno
OT_ERROR_INVALID_ARGS
El CIDR dado no es un CIDR IPv4 válido para NAT64.
OT_ERROR_NONE
Se configuró correctamente el CIDR para NAT64.
Consulta también:
otBorderRouterSend
otBorderRouterSetReceiveCallback

otNat64SetReceiveIp4Callback

void otNat64SetReceiveIp4Callback(
  otInstance *aInstance,
  otNat64ReceiveIp4Callback aCallback,
  void *aContext
)

Registra una devolución de llamada para proporcionar datagramas IPv4 recibidos.

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 IPv4 o NULL para inhabilitar la devolución de llamada.
[in] aCallbackContext
Un puntero al contexto específico de la aplicación.

otNat64SynthersizeIp6Address

otError otNat64SynthersizeIp6Address(
  otInstance *aInstance,
  const otIp4Address *aIp4Address,
  otIp6Address *aIp6Address
)

Configura la dirección IPv6 mediante la traducción de direcciones NAT64 a partir del prefijo NAT64 preferido y la dirección IPv4 determinada, como se especifica en la RFC 6052.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
[in] aIp4Address
Un puntero a la dirección IPv4 para traducir a IPv6
[out] aIp6Address
Un puntero para la dirección IPv6 sintetizada.
Qué muestra
OT_ERROR_NONE sintetizaba correctamente la dirección IPv6 del prefijo NAT64 y la dirección IPv4.
Qué muestra
OT_ERROR_INVALID_STATE No hay un prefijo NAT64 válido en los datos de la red.

Macros

TS_IP4_ADDRESS_SIZE

 OT_IP4_ADDRESS_SIZE 4

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

TS_IP4_ADDRESS_STRING_SIZE

 OT_IP4_ADDRESS_STRING_SIZE 17

Longitud de 000.000.000.000 más un sufijo NUL

TS_IP4_CIDR_STRING_SIZE

 OT_IP4_CIDR_STRING_SIZE 20

Longitud de 000.000.000.000/00 más un sufijo NUL

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 con nuestra documentación, consulta Recursos.