Interface de infraestrutura

Este módulo inclui a abstração da plataforma para a interface de rede da infraestrutura adjacente.

Resumo

remotas

otPlatInfraIfDiscoverNat64Prefix(uint32_t aInfraIfIndex)
Envie uma solicitação para descobrir o prefixo NAT64 na interface da infraestrutura com aInfraIfIndex.
otPlatInfraIfDiscoverNat64PrefixDone(otInstance *aInstance, uint32_t aInfraIfIndex, const otIp6Prefix *aIp6Prefix)
void
O driver da interface infra chama esse método para notificar o OpenThread de que a descoberta do prefixo NAT64 foi concluída.
otPlatInfraIfHasAddress(uint32_t aInfraIfIndex, const otIp6Address *aAddress)
bool
Informa se uma interface de infraestrutura tem um determinado endereço IPv6 atribuído.
otPlatInfraIfRecvIcmp6Nd(otInstance *aInstance, uint32_t aInfraIfIndex, const otIp6Address *aSrcAddress, const uint8_t *aBuffer, uint16_t aBufferLength)
void
O driver da interface de infraestrutura chama esse método para notificar o OpenThread de que uma mensagem de descoberta de vizinhos ICMPv6 foi recebida.
otPlatInfraIfSendIcmp6Nd(uint32_t aInfraIfIndex, const otIp6Address *aDestAddress, const uint8_t *aBuffer, uint16_t aBufferLength)
Envia uma mensagem de descoberta de vizinhos ICMPv6 em uma determinada interface de infraestrutura.
otPlatInfraIfStateChanged(otInstance *aInstance, uint32_t aInfraIfIndex, bool aIsRunning)
O driver da interface infra chama esse método para notificar o OpenThread sobre as alterações de estado da interface.

remotas

otPlatInfraIfDiscoverNat64Prefix

otError otPlatInfraIfDiscoverNat64Prefix(
  uint32_t aInfraIfIndex
)

Envie uma solicitação para descobrir o prefixo NAT64 na interface da infraestrutura com aInfraIfIndex.

O OpenThread chamará esse método periodicamente para monitorar a presença ou a alteração do prefixo NAT64.

Detalhes
Parâmetros
[in] aInfraIfIndex
O índice da interface da infraestrutura para descobrir o prefixo NAT64.
Valores de retorno
OT_ERROR_NONE
A descoberta do prefixo NAT64 foi solicitada.
OT_ERROR_FAILED
Falha ao solicitar a descoberta de prefixo NAT64.

otPlatInfraIfDiscoverNat64PrefixDone

void otPlatInfraIfDiscoverNat64PrefixDone(
  otInstance *aInstance,
  uint32_t aInfraIfIndex,
  const otIp6Prefix *aIp6Prefix
)

O driver da interface infra chama esse método para notificar o OpenThread de que a descoberta do prefixo NAT64 foi concluída.

Espera-se que seja invocado após chamar otPlatInfraIfDiscoverNat64Prefix. Se nenhum prefixo NAT64 for descoberto, o aIp6Prefix vai apontar para um prefixo vazio com comprimento zero.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.
[in] aInfraIfIndex
O índice da interface da infraestrutura em que o prefixo NAT64 é descoberto.
[in] aIp6Prefix
Um ponteiro para o prefixo NAT64.

otPlatInfraIfHasAddress

bool otPlatInfraIfHasAddress(
  uint32_t aInfraIfIndex,
  const otIp6Address *aAddress
)

Informa se uma interface de infraestrutura tem um determinado endereço IPv6 atribuído.

Detalhes
Parâmetros
[in] aInfraIfIndex
O índice da interface infra.
[in] aAddress
O endereço IPv6.
Retorna
TRUE se a interface de infraestrutura tiver fornecido o endereço IPv6. Caso contrário, será FALSE.

otPlatInfraIfRecvIcmp6Nd

void otPlatInfraIfRecvIcmp6Nd(
  otInstance *aInstance,
  uint32_t aInfraIfIndex,
  const otIp6Address *aSrcAddress,
  const uint8_t *aBuffer,
  uint16_t aBufferLength
)

O driver da interface de infraestrutura chama esse método para notificar o OpenThread de que uma mensagem de descoberta de vizinhos ICMPv6 foi recebida.

Consulte a RFC 4861: https://tools.ietf.org/html/rfc4861 (em inglês).

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.
[in] aInfraIfIndex
O índice da interface da infraestrutura em que a mensagem ICMPv6 é recebida.
[in] aSrcAddress
O endereço de origem do qual a mensagem foi recebida.
[in] aBuffer
O buffer de mensagem ICMPv6.
[in] aBufferLength
O tamanho do buffer de mensagens ICMPv6.

otPlatInfraIfSendIcmp6Nd

otError otPlatInfraIfSendIcmp6Nd(
  uint32_t aInfraIfIndex,
  const otIp6Address *aDestAddress,
  const uint8_t *aBuffer,
  uint16_t aBufferLength
)

Envia uma mensagem de descoberta de vizinhos ICMPv6 em uma determinada interface de infraestrutura.

Consulte a RFC 4861: https://tools.ietf.org/html/rfc4861 (em inglês).

Detalhes
Parâmetros
[in] aInfraIfIndex
O índice da interface da infraestrutura para onde a mensagem é enviada.
[in] aDestAddress
O endereço de destino para o qual a mensagem é enviada.
[in] aBuffer
O buffer de mensagem ICMPv6. A soma de verificação ICMPv6 é zero à esquerda e a plataforma deve fazer o cálculo dela.
[in] aBufferLength
O tamanho do buffer de mensagens.
Valores de retorno
OT_ERROR_NONE
A mensagem ICMPv6 foi enviada.
OT_ERROR_FAILED
Falha ao enviar a mensagem ICMPv6.

otPlatInfraIfStateChanged

otError otPlatInfraIfStateChanged(
  otInstance *aInstance,
  uint32_t aInfraIfIndex,
  bool aIsRunning
)

O driver da interface infra chama esse método para notificar o OpenThread sobre as alterações de estado da interface.

Não há problema em chamar a plataforma para o método, mesmo quando o estado de execução da interface não mudou. Nesse caso, o estado do gerenciador de roteamento não é afetado.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.
[in] aInfraIfIndex
O índice da interface da infraestrutura.
[in] aIsRunning
Um booleano que indica se a interface da infraestrutura está em execução.
Valores de retorno
OT_ERROR_NONE
O status da interface de infraestrutura foi atualizado.
OT_ERROR_INVALID_STATE
O gerenciador de roteamento não foi inicializado.
OT_ERROR_INVALID_ARGS
O aInfraIfIndex não corresponde à interface de infraestrutura com que o gerenciador de roteamento é inicializado.

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.