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{
|
Enum Motivos de la pérdida de paquetes. |
otNat64State{
|
Enum Estados de NAT64. |
Typedefs |
|
---|---|
otIp4Address
|
typedefstruct otIp4Address
Esta estructura representa una dirección IPv4. |
otIp4Cidr
|
typedefstruct otIp4Cidr
|
otNat64AddressMapping
|
typedefstruct otNat64AddressMapping
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
|
typedefstruct otNat64Counters
Representa los contadores de NAT64. |
otNat64DropReason
|
typedefenum otNat64DropReason
Motivos de la pérdida de paquetes. |
otNat64ErrorCounters
|
typedefstruct otNat64ErrorCounters
Representa los contadores de los paquetes descartados debido a errores cuando se manejan los paquetes NAT64. |
otNat64ProtocolCounters
|
typedefstruct otNat64ProtocolCounters
Representa los contadores de los protocolos compatibles con NAT64. |
otNat64ReceiveIp4Callback)(otMessage *aMessage, void *aContext)
|
typedefvoid(*
Este puntero de función se llama cuando se recibe un datagrama IPv4 (traducido por el traductor NAT64). |
Variables |
|
---|---|
OT_TOOL_PACKED_END
|
OT_TOOL_PACKED_BEGIN struct otIp4Address
|
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).
|
otNat64GetPrefixManagerState(otInstance *aInstance)
|
Obtiene el estado del administrador de prefijos NAT64.
|
otNat64GetTranslatorState(otInstance *aInstance)
|
Obtiene el estado del traductor NAT64.
|
otNat64InitAddressMappingIterator(otInstance *aInstance, otNat64AddressMappingIterator *aIterator)
|
void
Inicializa un
otNat64AddressMappingIterator . |
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.
|
otNat64SetEnabled(otInstance *aInstance, bool aEnable)
|
void
Habilita o inhabilita las funciones NAT64.
|
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.
|
otNat64SynthesizeIp6Address(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:: |
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 |
otNat64State
otNat64State
Estados de NAT64.
Propiedades | |
---|---|
OT_NAT64_STATE_ACTIVE
|
El BR publica un prefijo NAT64 o traduce paquetes. |
OT_NAT64_STATE_DISABLED
|
NAT64 está inhabilitado. |
OT_NAT64_STATE_IDLE
|
NAT64 está habilitado, pero este BR no es un NAT64 activo. |
OT_NAT64_STATE_NOT_RUNNING
|
NAT64 está habilitado, pero una o más dependencias de NAT64 no están en ejecución. |
Typedefs
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()
.
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 |
|
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 |
|
||||
Valores de retorno |
|
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 |
|
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 |
|
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 |
|
ot4IsAddressEqual
bool otIp4IsAddressEqual( const otIp4Address *aFirst, const otIp4Address *aSecond )
Prueba si dos direcciones IPv4 son iguales.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
||||
Valores de retorno |
|
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 |
|
||||
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.
|
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 |
|
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 |
|
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 |
|
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 |
|
||||||
Valores de retorno |
|
otNat64GetPrefixManagerState
otNat64State otNat64GetPrefixManagerState( otInstance *aInstance )
Obtiene el estado del administrador de prefijos NAT64.
Disponible cuando OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
está habilitado.
Detalles | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parámetros |
|
||||||||
Valores de retorno |
|
otNat64GetTranslatorState
otNat64State otNat64GetTranslatorState( otInstance *aInstance )
Obtiene el estado del traductor NAT64.
Disponible cuando OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
está habilitado.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
||||||
Valores de retorno |
|
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 |
|
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 |
|
||||||||||||
Valores de retorno |
|
otNat64SetEnabled
void otNat64SetEnabled( otInstance *aInstance, bool aEnable )
Habilita o inhabilita las funciones NAT64.
Nota: Esto incluye el Traductor de NAT64 (cuando OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
está habilitado) y el Administrador de prefijos NAT64 (cuando OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
está habilitado).
Cuando se habilita OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
, la configuración inhabilitada como verdadera restablece la tabla de asignación en el traductor.
Disponible cuando OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
o OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
están habilitados.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
otNat64GetTranslatorState
otNat64GetPrefixManagerState
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 |
|
||||
Valores de retorno |
|
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 |
|
otNat64SynthesizeIp6Address
otError otNat64SynthesizeIp6Address( 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 |
|
||||||
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.