NAT64
Este módulo incluye funciones y structs 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 por los que se descarta el paquete. |
otNat64State{
|
enum Estados de NAT64. |
Typedefs |
|
---|---|
otIp4Address
|
typedefstruct otIp4Address
Representa una dirección IPv4. |
otIp4Cidr
|
typedefstruct otIp4Cidr
|
otNat64AddressMapping
|
typedefstruct otNat64AddressMapping
Representa un registro de asignación de direcciones para NAT64. |
otNat64AddressMappingIterator
|
typedef Se usa para iterar a través de las asignaciones de direcciones NAT64. |
otNat64Counters
|
typedefstruct otNat64Counters
Representa los contadores de NAT64. |
otNat64DropReason
|
typedefenum otNat64DropReason
Motivos por los que se descarta el paquete. |
otNat64ErrorCounters
|
typedefstruct otNat64ErrorCounters
Representa los contadores de los paquetes descartados debido a errores cuando se manejan paquetes NAT64. |
otNat64ProtocolCounters
|
typedefstruct otNat64ProtocolCounters
Representa los contadores para los protocolos compatibles con NAT64. |
otNat64ReceiveIp4Callback)(otMessage *aMessage, void *aContext)
|
typedefvoid(*
Se llama al puntero cuando se recibe un datagrama IPv4 (traducido por un traductor NAT64). |
Variables |
|
---|---|
OT_TOOL_PACKED_END
|
OT_TOOL_PACKED_BEGIN struct otIp4Address
|
remotas |
|
---|---|
otIp4AddressFromString(const char *aString, otIp4Address *aAddress)
|
Convierte una string de dirección IPv4 legible en una representación binaria.
|
otIp4AddressToString(const otIp4Address *aAddress, char *aBuffer, uint16_t aSize)
|
void
Convierte la dirección en una cadena.
|
otIp4CidrFromString(const char *aString, otIp4Cidr *aCidr)
|
Convierte una string CIDR IPv4 legible en una representación binaria.
|
otIp4CidrToString(const otIp4Cidr *aCidr, char *aBuffer, uint16_t aSize)
|
void
Convierte el CIDR de 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 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 búfer de mensaje nuevo para enviar un mensaje IPv4 al traductor de NAT64.
|
otNat64GetCidr(otInstance *aInstance, otIp4Cidr *aCidr)
|
Obtiene el CIDR de IPv4 configurado en el traductor de NAT64.
|
otNat64GetCounters(otInstance *aInstance, otNat64ProtocolCounters *aCounters)
|
void
Obtiene contadores de traductor de NAT64.
|
otNat64GetErrorCounters(otInstance *aInstance, otNat64ErrorCounters *aCounters)
|
void
Obtiene los contadores de errores del traductor de NAT64.
|
otNat64GetNextAddressMapping(otInstance *aInstance, otNat64AddressMappingIterator *aIterator, otNat64AddressMapping *aMapping)
|
Obtiene la siguiente información de AddressMapping (mediante un iterador).
|
otNat64GetPrefixManagerState(otInstance *aInstance)
|
Obtiene el estado del administrador de prefijos NAT64.
|
otNat64GetTranslatorState(otInstance *aInstance)
|
Obtiene el estado del traductor de 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 Thread.
|
otNat64SetEnabled(otInstance *aInstance, bool aEnabled)
|
void
Habilita o inhabilita las funciones NAT64.
|
otNat64SetIp4Cidr(otInstance *aInstance, const otIp4Cidr *aCidr)
|
Establece el CIDR que se usa cuando se configura la dirección de origen de los paquetes IPv4 traducidos de salida.
|
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 desde el prefijo NAT64 preferido y la dirección IPv4 determinada, como se especifica en RFC 6052.
|
Structs |
|
---|---|
otIp4Address |
Representa una dirección IPv4. |
otIp4Cidr |
Representa un bloque CIDR IPv4. |
otNat64AddressMapping |
Representa un registro de asignación de direcciones para NAT64. |
otNat64AddressMappingIterator |
Se usa para iterar a través de las asignaciones de direcciones NAT64. |
otNat64Counters |
Representa los contadores de NAT64. |
otNat64ErrorCounters |
Representa los contadores de los paquetes descartados debido a errores cuando se manejan paquetes NAT64. |
otNat64ProtocolCounters |
Representa los contadores para los protocolos compatibles con NAT64. |
Unión |
|
---|---|
otIp4Address:: |
Enumeraciones
otNat64DropReason
otNat64DropReason
Motivos por los que se descarta el paquete.
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
|
Se descartó el paquete debido a que no se encontraron asignaciones o se agotó el grupo de asignaciones. |
OT_NAT64_DROP_REASON_UNKNOWN
|
Se descartó paquetes por motivos desconocidos. |
OT_NAT64_DROP_REASON_UNSUPPORTED_PROTO
|
Se descartó el paquete debido a un protocolo de IP no compatible. |
otNat64State
otNat64State
Estados de NAT64.
Propiedades | |
---|---|
OT_NAT64_STATE_ACTIVE
|
En Brasil, se publica un prefijo NAT64 o se traducen paquetes. |
OT_NAT64_STATE_DISABLED
|
NAT64 está inhabilitado. |
OT_NAT64_STATE_IDLE
|
NAT64 está habilitado, pero esta BR no es una NAT64 activa. |
OT_NAT64_STATE_NOT_RUNNING
|
NAT64 está habilitado, pero una o más dependencias de NAT64 no se están ejecutando. |
Typedefs
otIp4Cidr
struct otIp4Cidr otIp4Cidr
otNat64AddressMapping
struct otNat64AddressMapping otNat64AddressMapping
Representa un registro de asignación de direcciones para NAT64.
otNat64AddressMappingIterator
struct otNat64AddressMappingIterator otNat64AddressMappingIterator
Se usa para iterar a través de las asignaciones de direcciones NAT64.
Los campos de este tipo son opacos (diseñados solo para el núcleo de OpenThread) y, por lo tanto, el llamador no debe usarlos ni acceder a ellos.
Antes de usar un iterador, DEBE inicializarse con otNat64AddressMappingIteratorInit()
.
otNat64DropReason
enum otNat64DropReason otNat64DropReason
Motivos por los que se descarta el paquete.
otNat64ErrorCounters
struct otNat64ErrorCounters otNat64ErrorCounters
Representa los contadores de los paquetes descartados debido a errores cuando se manejan paquetes NAT64.
otNat64ProtocolCounters
struct otNat64ProtocolCounters otNat64ProtocolCounters
Representa los contadores para los protocolos compatibles con NAT64.
otNat64ReceiveIp4Callback
void(* otNat64ReceiveIp4Callback)(otMessage *aMessage, void *aContext)
Se llama al puntero cuando se recibe un datagrama IPv4 (traducido por un traductor NAT64).
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
Variables
OT_TOOL_PACKED_END
OT_TOOL_PACKED_BEGIN struct otIp4Address OT_TOOL_PACKED_END
remotas
otIp4AddressFromString
otError otIp4AddressFromString( const char *aString, otIp4Address *aAddress )
Convierte una string de dirección IPv4 legible en una representación binaria.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
||||
Valores que se muestran |
|
otIp4AddressToString
void otIp4AddressToString( const otIp4Address *aAddress, char *aBuffer, uint16_t aSize )
Convierte la dirección en una cadena.
El formato de string usa una notación con cuatro puntos de cuatro bytes en la dirección (p.ej., “127.0.0.1”).
Si la string resultante no cabe en aBuffer
(dentro de sus caracteres aSize
), la string se truncará, pero la string resultante siempre tendrá terminación nula.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
otIp4CidrFromString
otError otIp4CidrFromString( const char *aString, otIp4Cidr *aCidr )
Convierte una string CIDR IPv4 legible en una representación binaria.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
||||
Valores que se muestran |
|
otIp4CidrToString
void otIp4CidrToString( const otIp4Cidr *aCidr, char *aBuffer, uint16_t aSize )
Convierte el CIDR de IPv4 en una string.
El formato de string usa la notación con cuatro puntos de cuatro bytes en la dirección con la longitud del prefijo (p.ej., “127.0.0.1/32”).
Si la string resultante no cabe en aBuffer
(dentro de sus caracteres aSize
), la string se truncará, pero la string resultante siempre tendrá terminación 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 RFC 6052.
El objeto 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 |
|
otIp4IsAddressEqual
bool otIp4IsAddressEqual( const otIp4Address *aFirst, const otIp4Address *aSecond )
Prueba si dos direcciones IPv4 son iguales.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
||||
Valores que se muestran |
|
otIp4NewMessage
otMessage * otIp4NewMessage( otInstance *aInstance, const otMessageSettings *aSettings )
Asigna un búfer de mensaje nuevo para enviar un mensaje IPv4 al traductor de NAT64.
Los búferes de mensajes asignados por esta función tendrán 20 bytes (diferencia entre el tamaño de los encabezados IPv6 y los tamaños de los encabezados IPv4) reservados.
Disponible cuando se habilita OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
||||
Qué muestra |
Un puntero al búfer de mensajes o NULL si no hay búferes de mensajes disponibles o los parámetros no son válidos.
|
otNat64Send
otNat64GetCidr
otError otNat64GetCidr( otInstance *aInstance, otIp4Cidr *aCidr )
Obtiene el CIDR de IPv4 configurado en el traductor de NAT64.
Disponible cuando se habilita OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
otNat64GetCounters
void otNat64GetCounters( otInstance *aInstance, otNat64ProtocolCounters *aCounters )
Obtiene contadores de traductor de NAT64.
El contador se cuenta desde que se inicializó la instancia.
Disponible cuando se habilita OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
otNat64GetErrorCounters
void otNat64GetErrorCounters( otInstance *aInstance, otNat64ErrorCounters *aCounters )
Obtiene los contadores de errores del traductor de 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 (mediante un iterador).
Disponible cuando se habilita OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
||||||
Valores que se muestran |
|
otNat64GetPrefixManagerState
otNat64State otNat64GetPrefixManagerState( otInstance *aInstance )
Obtiene el estado del administrador de prefijos NAT64.
Disponible cuando se habilita OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
.
Detalles | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parámetros |
|
||||||||
Valores que se muestran |
|
otNat64GetTranslatorState
otNat64State otNat64GetTranslatorState( otInstance *aInstance )
Obtiene el estado del traductor de NAT64.
Disponible cuando se habilita OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
||||||
Valores que se muestran |
|
otNat64InitAddressMappingIterator
void otNat64InitAddressMappingIterator( otInstance *aInstance, otNat64AddressMappingIterator *aIterator )
Inicializa un otNat64AddressMappingIterator
.
Un iterador DEBE inicializarse antes de usarse.
Se puede volver a inicializar un iterador para reiniciarse 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 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 que se muestran |
|
otNat64SetEnabled
void otNat64SetEnabled( otInstance *aInstance, bool aEnabled )
Habilita o inhabilita las funciones NAT64.
Nota: Esto incluye el traductor NAT64 (cuando se habilita OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
) y el Administrador de prefijos de NAT64 (cuando se habilita OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
).
Cuando se habilita OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
, la configuración inhabilitada como verdadero restablece la tabla de asignación en el traductor.
Disponible cuando se habilitan OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
o OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
otNat64GetTranslatorState
otNat64GetPrefixManagerState
otNat64SetIp4Cidr
otError otNat64SetIp4Cidr( otInstance *aInstance, const otIp4Cidr *aCidr )
Establece el CIDR que se usa cuando se configura la dirección de origen de los paquetes IPv4 traducidos de salida.
Solo está disponible cuando OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE está habilitado.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
||||
Valores que se muestran |
|
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 desde el prefijo NAT64 preferido y la dirección IPv4 determinada, como se especifica en RFC 6052.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
||||||
Qué muestra |
OT_ERROR_NONE Se sintetizó correctamente la dirección IPv6 a partir 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
OT_IP4_ADDRESS_SIZE
OT_IP4_ADDRESS_SIZE 4
Tamaño de una dirección IPv4 (bytes)
OT_IP4_ADDRESS_STRING_SIZE
OT_IP4_ADDRESS_STRING_SIZE 17
Longitud de 000.000.000.000 más un sufijo NUL.
OT_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 a nuestra documentación, consulta Recursos.