NAT64
Este módulo inclui funções e estruturas para a função NAT64 no roteador de borda.
Resumo
Essas funções só estão disponíveis quando OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
está ativado.
Enumerações |
|
---|---|
otNat64DropReason{
|
enum Motivos do descarte de pacotes. |
otNat64State{
|
enum de NAT64. |
Typedefs |
|
---|---|
otIp4Address
|
typedefstruct otIp4Address
Representa um endereço IPv4. |
otIp4Cidr
|
typedefstruct otIp4Cidr
|
otNat64AddressMapping
|
typedefstruct otNat64AddressMapping
Representa um registro de mapeamento de endereço para NAT64. |
otNat64AddressMappingIterator
|
typedef Usado para iterar em mapeamentos de endereços NAT64. |
otNat64Counters
|
typedefstruct otNat64Counters
Representa os contadores para NAT64. |
otNat64DropReason
|
typedefenum otNat64DropReason
Motivos do descarte de pacotes. |
otNat64ErrorCounters
|
typedefstruct otNat64ErrorCounters
Representa os contadores de pacotes descartados devido a erros ao processar pacotes NAT64. |
otNat64ProtocolCounters
|
typedefstruct otNat64ProtocolCounters
Representa os contadores dos protocolos aceitos pelo NAT64. |
otNat64ReceiveIp4Callback)(otMessage *aMessage, void *aContext)
|
typedefvoid(*
O ponteiro é chamado quando um datagrama IPv4 (traduzido pelo tradutor NAT64) é recebido. |
Variáveis |
|
---|---|
OT_TOOL_PACKED_END
|
OT_TOOL_PACKED_BEGIN struct otIp4Address
|
remotas |
|
---|---|
otIp4AddressFromString(const char *aString, otIp4Address *aAddress)
|
Converte uma string de endereço IPv4 legível em uma representação binária.
|
otIp4AddressToString(const otIp4Address *aAddress, char *aBuffer, uint16_t aSize)
|
void
Converte o endereço em uma string.
|
otIp4CidrFromString(const char *aString, otIp4Cidr *aCidr)
|
Converte uma string CIDR IPv4 legível em uma representação binária.
|
otIp4CidrToString(const otIp4Cidr *aCidr, char *aBuffer, uint16_t aSize)
|
void
Converte o CIDR IPv4 em uma string.
|
otIp4ExtractFromIp6Address(uint8_t aPrefixLength, const otIp6Address *aIp6Address, otIp4Address *aIp4Address)
|
void
Defina
aIp4Address executando a conversão de endereços NAT64 de aIp6Address , conforme especificado na RFC 6052. |
otIp4IsAddressEqual(const otIp4Address *aFirst, const otIp4Address *aSecond)
|
bool
Teste se dois endereços IPv4 são iguais.
|
otIp4NewMessage(otInstance *aInstance, const otMessageSettings *aSettings)
|
Aloque um novo buffer de mensagem para enviar uma mensagem IPv4 ao conversor NAT64.
|
otNat64GetCidr(otInstance *aInstance, otIp4Cidr *aCidr)
|
Recebe o CIDR IPv4 configurado no conversor NAT64.
|
otNat64GetCounters(otInstance *aInstance, otNat64ProtocolCounters *aCounters)
|
void
Recebe os contadores do tradutor NAT64.
|
otNat64GetErrorCounters(otInstance *aInstance, otNat64ErrorCounters *aCounters)
|
void
Recebe os contadores de erro do conversor NAT64.
|
otNat64GetNextAddressMapping(otInstance *aInstance, otNat64AddressMappingIterator *aIterator, otNat64AddressMapping *aMapping)
|
Recebe as próximas informações de AddressMapping (usando um iterador).
|
otNat64GetPrefixManagerState(otInstance *aInstance)
|
Recebe o estado do gerenciador de prefixos NAT64.
|
otNat64GetTranslatorState(otInstance *aInstance)
|
Recebe o estado do conversor NAT64.
|
otNat64InitAddressMappingIterator(otInstance *aInstance, otNat64AddressMappingIterator *aIterator)
|
void
Inicializa um
otNat64AddressMappingIterator . |
otNat64Send(otInstance *aInstance, otMessage *aMessage)
|
Converte um datagrama IPv4 em um datagrama IPv6 e o envia pela interface Thread.
|
otNat64SetEnabled(otInstance *aInstance, bool aEnabled)
|
void
Ative ou desative as funções NAT64.
|
otNat64SetIp4Cidr(otInstance *aInstance, const otIp4Cidr *aCidr)
|
Define o CIDR usado ao definir o endereço de origem dos pacotes IPv4 traduzidos de saída.
|
otNat64SetReceiveIp4Callback(otInstance *aInstance, otNat64ReceiveIp4Callback aCallback, void *aContext)
|
void
Registra um callback para fornecer datagramas IPv4 recebidos.
|
otNat64SynthesizeIp6Address(otInstance *aInstance, const otIp4Address *aIp4Address, otIp6Address *aIp6Address)
|
Define o endereço IPv6 realizando a conversão de endereços NAT64 a partir do prefixo NAT64 preferido e do endereço IPv4 fornecido, conforme especificado na RFC 6052.
|
Estruturas |
|
---|---|
otIp4Address |
Representa um endereço IPv4. |
otIp4Cidr |
Representa um bloco CIDR IPv4. |
otNat64AddressMapping |
Representa um registro de mapeamento de endereço para NAT64. |
otNat64AddressMappingIterator |
Usado para iterar em mapeamentos de endereços NAT64. |
otNat64Counters |
Representa os contadores para NAT64. |
otNat64ErrorCounters |
Representa os contadores de pacotes descartados devido a erros ao processar pacotes NAT64. |
otNat64ProtocolCounters |
Representa os contadores dos protocolos aceitos pelo NAT64. |
Sindicatos |
|
---|---|
otIp4Address:: |
Enumerações
otNat64DropReason
otNat64DropReason
Motivos do descarte de pacotes.
Propriedades | |
---|---|
OT_NAT64_DROP_REASON_ILLEGAL_PACKET
|
Queda de pacote devido à falha na análise do datagrama. |
OT_NAT64_DROP_REASON_NO_MAPPING
|
Queda de pacote devido a nenhum mapeamento encontrado ou pool de mapeamento esgotado. |
OT_NAT64_DROP_REASON_UNKNOWN
|
Queda de pacote por motivos desconhecidos. |
OT_NAT64_DROP_REASON_UNSUPPORTED_PROTO
|
Queda de pacote devido a protocolo IP sem suporte. |
otNat64State
otNat64State
de NAT64.
Propriedades | |
---|---|
OT_NAT64_STATE_ACTIVE
|
O BR está publicando um prefixo NAT64 e/ou traduzindo pacotes. |
OT_NAT64_STATE_DISABLED
|
O NAT64 está desativado. |
OT_NAT64_STATE_IDLE
|
NAT64 está ativado, mas este BR não é um NAT64 BR ativo. |
OT_NAT64_STATE_NOT_RUNNING
|
O NAT64 está ativado, mas uma ou mais dependências do NAT64 não estão em execução. |
Typedefs
otIp4Cidr
struct otIp4Cidr otIp4Cidr
otNat64AddressMapping
struct otNat64AddressMapping otNat64AddressMapping
Representa um registro de mapeamento de endereço para NAT64.
otNat64AddressMappingIterator
struct otNat64AddressMappingIterator otNat64AddressMappingIterator
Usado para iterar em mapeamentos de endereços NAT64.
Os campos nesse tipo são opacos (destinados ao uso apenas pelo núcleo do OpenThread) e, portanto, não podem ser acessados nem usados pelo autor da chamada.
Antes de usar um iterador, ele PRECISA ser inicializado com otNat64AddressMappingIteratorInit()
.
otNat64ErrorCounters
struct otNat64ErrorCounters otNat64ErrorCounters
Representa os contadores de pacotes descartados devido a erros ao processar pacotes NAT64.
otNat64ProtocolCounters
struct otNat64ProtocolCounters otNat64ProtocolCounters
Representa os contadores dos protocolos aceitos pelo NAT64.
otNat64ReceiveIp4Callback
void(* otNat64ReceiveIp4Callback)(otMessage *aMessage, void *aContext)
O ponteiro é chamado quando um datagrama IPv4 (traduzido pelo tradutor NAT64) é recebido.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
Variáveis
OT_TOOL_PACKED_END
OT_TOOL_PACKED_BEGIN struct otIp4Address OT_TOOL_PACKED_END
remotas
otIp4AddressFromString
otError otIp4AddressFromString( const char *aString, otIp4Address *aAddress )
Converte uma string de endereço IPv4 legível em uma representação binária.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
||||
Valores de retorno |
|
otIp4AddressToString
void otIp4AddressToString( const otIp4Address *aAddress, char *aBuffer, uint16_t aSize )
Converte o endereço em uma string.
O formato da string usa a notação de quatro pontos de quatro bytes no endereço (por exemplo, "127.0.0.1").
Se a string resultante não couber em aBuffer
(dentro dos caracteres aSize
), ela será truncada, mas a gerada sempre será terminada com valor nulo.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
otIp4CidrFromString
otError otIp4CidrFromString( const char *aString, otIp4Cidr *aCidr )
Converte uma string CIDR IPv4 legível em uma representação binária.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
||||
Valores de retorno |
|
otIp4CidrToString
void otIp4CidrToString( const otIp4Cidr *aCidr, char *aBuffer, uint16_t aSize )
Converte o CIDR IPv4 em uma string.
O formato da string usa a notação de quatro pontos com quatro bytes no endereço com o comprimento do prefixo (por exemplo, "127.0.0.1/32").
Se a string resultante não couber em aBuffer
(dentro dos caracteres aSize
), ela será truncada, mas a gerada sempre será terminada com valor nulo.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
otIp4ExtractFromIp6Address
void otIp4ExtractFromIp6Address( uint8_t aPrefixLength, const otIp6Address *aIp6Address, otIp4Address *aIp4Address )
Defina aIp4Address
executando a conversão de endereços NAT64 de aIp6Address
, conforme especificado na RFC 6052.
O aPrefixLength
do NAT64 PRECISA ser um dos seguintes valores: 32, 40, 48, 56, 64 ou 96. Caso contrário, o comportamento desse método é indefinido.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
otIp4IsAddressEqual
bool otIp4IsAddressEqual( const otIp4Address *aFirst, const otIp4Address *aSecond )
Teste se dois endereços IPv4 são iguais.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
||||
Valores de retorno |
|
otIp4NewMessage
otMessage * otIp4NewMessage( otInstance *aInstance, const otMessageSettings *aSettings )
Aloque um novo buffer de mensagem para enviar uma mensagem IPv4 ao conversor NAT64.
Os buffers de mensagem alocados por essa função terão 20 bytes reservados (diferença entre o tamanho dos cabeçalhos IPv6 e dos cabeçalhos IPv4).
Disponível quando o OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
estiver ativado.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
||||
Retorna |
Um ponteiro para o buffer de mensagem ou NULL se nenhum buffer de mensagem estiver disponível ou se os parâmetros forem inválidos.
|
otNat64Send
otNat64GetCidr
otError otNat64GetCidr( otInstance *aInstance, otIp4Cidr *aCidr )
Recebe o CIDR IPv4 configurado no conversor NAT64.
Disponível quando o OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
estiver ativado.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
otNat64GetCounters
void otNat64GetCounters( otInstance *aInstance, otNat64ProtocolCounters *aCounters )
Recebe os contadores do tradutor NAT64.
O contador é contado desde a inicialização da instância.
Disponível quando o OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
estiver ativado.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
otNat64GetErrorCounters
void otNat64GetErrorCounters( otInstance *aInstance, otNat64ErrorCounters *aCounters )
Recebe os contadores de erro do conversor NAT64.
Os contadores são inicializados com zero quando a instância do OpenThread é inicializada.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
otNat64GetNextAddressMapping
otError otNat64GetNextAddressMapping( otInstance *aInstance, otNat64AddressMappingIterator *aIterator, otNat64AddressMapping *aMapping )
Recebe as próximas informações de AddressMapping (usando um iterador).
Disponível quando o OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
estiver ativado.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||
Valores de retorno |
|
otNat64GetPrefixManagerState
otNat64State otNat64GetPrefixManagerState( otInstance *aInstance )
Recebe o estado do gerenciador de prefixos NAT64.
Disponível quando o OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
estiver ativado.
Detalhes | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||||
Valores de retorno |
|
otNat64GetTranslatorState
otNat64State otNat64GetTranslatorState( otInstance *aInstance )
Recebe o estado do conversor NAT64.
Disponível quando o OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
estiver ativado.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||
Valores de retorno |
|
otNat64InitAddressMappingIterator
void otNat64InitAddressMappingIterator( otInstance *aInstance, otNat64AddressMappingIterator *aIterator )
Inicializa um otNat64AddressMappingIterator
.
Um iterador PRECISA ser inicializado antes de ser usado.
Um iterador pode ser inicializado novamente para reiniciar desde o início das informações de mapeamento.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
otNat64Send
otError otNat64Send( otInstance *aInstance, otMessage *aMessage )
Converte um datagrama IPv4 em um datagrama IPv6 e o envia pela interface Thread.
O autor da chamada transfere a propriedade de aMessage
ao fazer esta chamada. O OpenThread liberará aMessage
quando o processamento for concluído, inclusive quando um valor diferente de OT_ERROR_NONE
for retornado.
Detalhes | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||||||||
Valores de retorno |
|
otNat64SetEnabled
void otNat64SetEnabled( otInstance *aInstance, bool aEnabled )
Ative ou desative as funções NAT64.
Observação: isso inclui o Tradutor NAT64 (quando OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
está ativado) e o Gerenciador de prefixo NAT64 (quando OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
está ativado).
Quando OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
estiver ativado, definir "Desativado" como "true" redefine a tabela de mapeamento no tradutor.
Disponível quando o OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
ou o OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
estão ativados.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
otNat64GetTranslatorState
otNat64GetPrefixManagerState
otNat64SetIp4Cidr
otError otNat64SetIp4Cidr( otInstance *aInstance, const otIp4Cidr *aCidr )
Define o CIDR usado ao definir o endereço de origem dos pacotes IPv4 traduzidos de saída.
Só está disponível quando OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE está ativado.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
||||
Valores de retorno |
|
otBorderRouterSend
otBorderRouterSetReceiveCallback
otNat64SetReceiveIp4Callback
void otNat64SetReceiveIp4Callback( otInstance *aInstance, otNat64ReceiveIp4Callback aCallback, void *aContext )
Registra um callback para fornecer datagramas IPv4 recebidos.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
otNat64SynthesizeIp6Address
otError otNat64SynthesizeIp6Address( otInstance *aInstance, const otIp4Address *aIp4Address, otIp6Address *aIp6Address )
Define o endereço IPv6 realizando a conversão de endereços NAT64 a partir do prefixo NAT64 preferido e do endereço IPv4 fornecido, conforme especificado na RFC 6052.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||
Retorna |
OT_ERROR_NONE O endereço IPv6 foi sintetizado do prefixo NAT64 e do endereço IPv4.
|
||||||
Retorna |
OT_ERROR_INVALID_STATE Nenhum prefixo NAT64 válido nos dados da rede.
|
Macros
OT_IP4_ADDRESS_SIZE
OT_IP4_ADDRESS_SIZE 4
Tamanho de um endereço IPv4 (bytes)
OT_IP4_ADDRESS_STRING_SIZE
OT_IP4_ADDRESS_STRING_SIZE 17
Comprimento de 000.000.000.000 mais um sufixo NUL.
OT_IP4_CIDR_STRING_SIZE
OT_IP4_CIDR_STRING_SIZE 20
Comprimento de 000.000.000.000/00 mais um sufixo NUL.
Recursos
Os tópicos de Referência da API OpenThread são originados do código-fonte, disponível no GitHub. Para mais informações ou para contribuir com nossa documentação, consulte Recursos.