IPv6

Este módulo inclui funções que controlam a comunicação do IPv6.

Resumo

Enumerações

anonymous enum{
  OT_IP6_PROTO_HOP_OPTS = 0,
  OT_IP6_PROTO_TCP = 6,
  OT_IP6_PROTO_UDP = 17,
  OT_IP6_PROTO_IP6 = 41,
  OT_IP6_PROTO_ROUTING = 43,
  OT_IP6_PROTO_FRAGMENT = 44,
  OT_IP6_PROTO_ICMP6 = 58,
  OT_IP6_PROTO_NONE = 59,
  OT_IP6_PROTO_DST_OPTS = 60
}
enum
Números de Protocolo de Internet da Internet.
anonymous enum{
  OT_ADDRESS_ORIGIN_THREAD = 0,
  OT_ADDRESS_ORIGIN_SLAAC = 1,
  OT_ADDRESS_ORIGIN_DHCPV6 = 2,
  OT_ADDRESS_ORIGIN_MANUAL = 3
}
enum
Origens de endereço IPv6.
anonymous enum{
  OT_ECN_NOT_CAPABLE = 0x0,
  OT_ECN_CAPABLE_0 = 0x2,
  OT_ECN_CAPABLE_1 = 0x1,
  OT_ECN_MARKED = 0x3
}
enum
Status ECN, representados como no cabeçalho IP.

Typedefs

otBorderRoutingCounters typedef
Representa os contadores de pacotes encaminhados por meio do roteamento de borda.
otIp6Address typedef
struct otIp6Address
Representa um endereço IPv6.
otIp6AddressCallback)(const otIp6AddressInfo *aAddressInfo, bool aIsAdded, void *aContext) typedef
void(*
O ponteiro é chamado quando um endereço IPv6 interno é adicionado ou removido.
otIp6AddressComponents typedef
Representa os componentes de um endereço IPv6.
otIp6AddressInfo typedef
Representa informações de endereço IPv6.
otIp6InterfaceIdentifier typedef
Representa o identificador de interface de um endereço IPv6.
otIp6NetworkPrefix typedef
Representa o prefixo de rede de um endereço IPv6 (64 bits mais significativos do endereço).
otIp6Prefix typedef
struct otIp6Prefix
Representa um prefixo IPv6.
otIp6ReceiveCallback)(otMessage *aMessage, void *aContext) typedef
void(*
O ponteiro é chamado quando um datagrama IPv6 é recebido.
otIp6RegisterMulticastListenersCallback)(void *aContext, otError aError, uint8_t aMlrStatus, const otIp6Address *aFailedAddresses, uint8_t aFailedAddressNum) typedef
void(*
O ponteiro é chamado com resultados de otIp6RegisterMulticastListeners.
otIp6SlaacPrefixFilter)(otInstance *aInstance, const otIp6Prefix *aPrefix) typedef
bool(*
O ponteiro permite que o usuário filtre prefixos e não que um endereço SLAAC com base em um prefixo seja adicionado.
otMessageInfo typedef
struct otMessageInfo
Representa os endereços de soquete IPv6 locais e de peering.
otNetifAddress typedef
Representa um endereço unicast da interface de rede IPv6.
otNetifMulticastAddress typedef
Representa um endereço multicast da interface de rede IPv6.
otPacketsAndBytes typedef
Representa os contadores de pacotes e bytes.
otSockAddr typedef
struct otSockAddr
Representa um endereço de soquete IPv6.

Variáveis

OT_TOOL_PACKED_END

remotas

otIp6AddUnicastAddress(otInstance *aInstance, const otNetifAddress *aAddress)
Adiciona um endereço de interface de rede à interface Thread.
otIp6AddUnsecurePort(otInstance *aInstance, uint16_t aPort)
Adiciona uma porta à lista de portas não seguras permitidas.
otIp6AddressFromString(const char *aString, otIp6Address *aAddress)
Converte uma string de endereço IPv6 legível em uma representação binária.
otIp6AddressToString(const otIp6Address *aAddress, char *aBuffer, uint16_t aSize)
void
Converte determinado endereço IPv6 em uma string legível.
otIp6ArePrefixesEqual(const otIp6Prefix *aFirst, const otIp6Prefix *aSecond)
bool
Teste se dois prefixos IPv6 são iguais.
otIp6GetBorderRoutingCounters(otInstance *aInstance)
Acessa os contadores do roteamento de borda.
otIp6GetMulticastAddresses(otInstance *aInstance)
Recebe a lista de endereços multicast IPv6 inscritos na interface Thread.
otIp6GetPrefix(const otIp6Address *aAddress, uint8_t aLength, otIp6Prefix *aPrefix)
void
Recebe um prefixo com aLength de aAddress.
otIp6GetUnicastAddresses(otInstance *aInstance)
const otNetifAddress *
Recebe a lista de endereços IPv6 atribuídos à interface Thread.
otIp6GetUnsecurePorts(otInstance *aInstance, uint8_t *aNumEntries)
const uint16_t *
Retorna um ponteiro para a lista de portas não seguras.
otIp6HasUnicastAddress(otInstance *aInstance, const otIp6Address *aAddress)
bool
Indica se um endereço IPv6 unicast foi atribuído à interface Thread.
otIp6IsAddressEqual(const otIp6Address *aFirst, const otIp6Address *aSecond)
bool
Teste se dois endereços IPv6 são iguais.
otIp6IsAddressUnspecified(const otIp6Address *aAddress)
bool
Indica se um endereço IPv6 específico é o endereço não especificado.
otIp6IsEnabled(otInstance *aInstance)
bool
Indica se a interface IPv6 está ativa ou não.
otIp6IsMulticastPromiscuousEnabled(otInstance *aInstance)
bool
Verifica se o modo promíscuo de multicast está ativado na interface do Thread.
otIp6IsReceiveFilterEnabled(otInstance *aInstance)
bool
Indica se o tráfego de controle da linha de execução é ou não filtrado ao entregar datagramas IPv6 pelo callback especificado em otIp6SetReceiveCallback().
otIp6IsSlaacEnabled(otInstance *aInstance)
bool
Indica se o módulo SLAAC está ativado ou não.
otIp6NewMessage(otInstance *aInstance, const otMessageSettings *aSettings)
Aloque um novo buffer de mensagem para enviar uma mensagem IPv6.
otIp6NewMessageFromBuffer(otInstance *aInstance, const uint8_t *aData, uint16_t aDataLength, const otMessageSettings *aSettings)
Aloque um novo buffer de mensagem e grave o datagrama IPv6 no buffer de mensagem para enviar uma mensagem IPv6.
otIp6PrefixFromString(const char *aString, otIp6Prefix *aPrefix)
Converte uma string de prefixo IPv6 legível em uma representação binária.
otIp6PrefixMatch(const otIp6Address *aFirst, const otIp6Address *aSecond)
uint8_t
Retorna o tamanho de correspondência do prefixo (bits) para dois endereços IPv6.
otIp6PrefixToString(const otIp6Prefix *aPrefix, char *aBuffer, uint16_t aSize)
void
Converte determinado prefixo IPv6 em uma string legível.
otIp6ProtoToString(uint8_t aIpProto)
const char *
Converte determinado número de protocolo IP em uma string legível.
otIp6RegisterMulticastListeners(otInstance *aInstance, const otIp6Address *aAddresses, uint8_t aAddressNum, const uint32_t *aTimeout, otIp6RegisterMulticastListenersCallback aCallback, void *aContext)
Registra listeners Multicast no roteador de backbone principal.
otIp6RemoveAllUnsecurePorts(otInstance *aInstance)
void
Remove todas as portas da lista de portas não seguras permitidas.
otIp6RemoveUnicastAddress(otInstance *aInstance, const otIp6Address *aAddress)
Remove um endereço de interface de rede da interface Thread.
otIp6RemoveUnsecurePort(otInstance *aInstance, uint16_t aPort)
Remove uma porta da lista de portas não seguras permitidas.
otIp6ResetBorderRoutingCounters(otInstance *aInstance)
void
Redefine os contadores do Roteamento de borda.
otIp6SelectSourceAddress(otInstance *aInstance, otMessageInfo *aMessageInfo)
Executa a seleção do endereço de origem do OpenThread.
otIp6Send(otInstance *aInstance, otMessage *aMessage)
Envia um datagrama IPv6 pela interface Thread.
otIp6SetAddressCallback(otInstance *aInstance, otIp6AddressCallback aCallback, void *aCallbackContext)
void
Registra um callback para notificar mudanças de endereços IPv6 internos.
otIp6SetEnabled(otInstance *aInstance, bool aEnabled)
Traz a interface IPv6 para cima ou para baixo.
otIp6SetMeshLocalIid(otInstance *aInstance, const otIp6InterfaceIdentifier *aIid)
Define o IID local da malha (para fins de teste).
otIp6SetMulticastPromiscuousEnabled(otInstance *aInstance, bool aEnabled)
void
Ativa ou desativa o modo promíscuo de multicast na interface do Thread.
otIp6SetReceiveCallback(otInstance *aInstance, otIp6ReceiveCallback aCallback, void *aCallbackContext)
void
Registra um callback para fornecer os datagramas IPv6 recebidos.
otIp6SetReceiveFilterEnabled(otInstance *aInstance, bool aEnabled)
void
Define se o tráfego de controle da linha de execução é filtrado ao entregar datagramas IPv6 pelo callback especificado em otIp6SetReceiveCallback().
otIp6SetSlaacEnabled(otInstance *aInstance, bool aEnabled)
void
Ativa/desativa o módulo SLAAC.
otIp6SetSlaacPrefixFilter(otInstance *aInstance, otIp6SlaacPrefixFilter aFilter)
void
Define o gerenciador de filtros do módulo SLAAC.
otIp6SockAddrToString(const otSockAddr *aSockAddr, char *aBuffer, uint16_t aSize)
void
Converte determinado endereço de soquete IPv6 em uma string legível.
otIp6SubscribeMulticastAddress(otInstance *aInstance, const otIp6Address *aAddress)
Inscreve a interface Thread em um endereço multicast de interface de rede.
otIp6UnsubscribeMulticastAddress(otInstance *aInstance, const otIp6Address *aAddress)
Cancela a inscrição da interface Thread para um endereço multicast da interface de rede.

Estruturas

otBorderRoutingCounters

Representa os contadores de pacotes encaminhados por meio do roteamento de borda.

otIp6Address

Representa um endereço IPv6.

otIp6AddressComponents

Representa os componentes de um endereço IPv6.

otIp6AddressInfo

Representa informações de endereço IPv6.

otIp6InterfaceIdentifier

Representa o identificador de interface de um endereço IPv6.

otIp6NetworkPrefix

Representa o prefixo de rede de um endereço IPv6 (64 bits mais significativos do endereço).

otIp6Prefix

Representa um prefixo IPv6.

otMessageInfo

Representa os endereços de soquete IPv6 locais e de peering.

otNetifAddress

Representa um endereço unicast da interface de rede IPv6.

otNetifMulticastAddress

Representa um endereço multicast da interface de rede IPv6.

otPacketsAndBytes

Representa os contadores de pacotes e bytes.

otSockAddr

Representa um endereço de soquete IPv6.

União

otIp6InterfaceIdentifier::OT_TOOL_PACKED_FIELD

Enumerações

enumeração anônima

 anonymous enum

Números de Protocolo de Internet da Internet.

Propriedades
OT_IP6_PROTO_DST_OPTS

Opções de destino para IPv6.

OT_IP6_PROTO_FRAGMENT

Cabeçalho do fragmento para IPv6.

OT_IP6_PROTO_HOP_OPTS

Opção de salto a salto IPv6.

OT_IP6_PROTO_ICMP6

ICMP para IPv6.

OT_IP6_PROTO_IP6

Encapsulamento de IPv6.

OT_IP6_PROTO_NONE

Nenhum cabeçalho próximo para IPv6.

OT_IP6_PROTO_ROUTING

Cabeçalho de roteamento para IPv6.

OT_IP6_PROTO_TCP

Protocolo de controle de transmissão.

OT_IP6_PROTO_UDP

Datagrama do usuário.

enumeração anônima

 anonymous enum

Origens de endereço IPv6.

Propriedades
OT_ADDRESS_ORIGIN_DHCPV6

Endereço atribuído DHCPv6.

OT_ADDRESS_ORIGIN_MANUAL

Endereço atribuído manualmente.

OT_ADDRESS_ORIGIN_SLAAC

Endereço atribuído pelo SLAAC.

OT_ADDRESS_ORIGIN_THREAD

Endereço atribuído da linha de execução (ALOC, RLOC, MLEID etc.)

enumeração anônima

 anonymous enum

Status ECN, representados como no cabeçalho IP.

Propriedades
OT_ECN_CAPABLE_0

ECT(0)

OT_ECN_CAPABLE_1

ECT(1)

OT_ECN_MARKED

Congestionamento encontrado (CE)

OT_ECN_NOT_CAPABLE

Não ECT.

Typedefs

otBorderRoutingCounters

struct otBorderRoutingCounters otBorderRoutingCounters

Representa os contadores de pacotes encaminhados por meio do roteamento de borda.

otIp6Address

struct otIp6Address otIp6Address

Representa um endereço IPv6.

otIp6AddressCallback

void(* otIp6AddressCallback)(const otIp6AddressInfo *aAddressInfo, bool aIsAdded, void *aContext)

O ponteiro é chamado quando um endereço IPv6 interno é adicionado ou removido.

Detalhes
Parâmetros
[in] aAddressInfo
Um ponteiro para as informações de endereço IPv6.
[in] aIsAdded
TRUE se aAddress tiver sido adicionado, FALSE se aAddress tiver sido removido.
[in] aContext
Um ponteiro para o contexto específico do aplicativo.

otIp6AddressComponents

struct otIp6AddressComponents otIp6AddressComponents

Representa os componentes de um endereço IPv6.

otIp6AddressInfo

struct otIp6AddressInfo otIp6AddressInfo

Representa informações de endereço IPv6.

otIp6InterfaceIdentifier

struct otIp6InterfaceIdentifier otIp6InterfaceIdentifier

Representa o identificador de interface de um endereço IPv6.

otIp6NetworkPrefix

struct otIp6NetworkPrefix otIp6NetworkPrefix

Representa o prefixo de rede de um endereço IPv6 (64 bits mais significativos do endereço).

otIp6Prefix

struct otIp6Prefix otIp6Prefix

Representa um prefixo IPv6.

otIp6ReceiveCallback

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

O ponteiro é chamado quando um datagrama IPv6 é recebido.

Detalhes
Parâmetros
[in] aMessage
Um ponteiro para o buffer de mensagem que contém o datagrama IPv6 recebido. Essa função transfere a propriedade do aMessage para o receptor do callback. A mensagem deve ser liberada pelo receptor do callback depois de processada (consulte otMessageFree()).
[in] aContext
Um ponteiro para o contexto específico do aplicativo.

otIp6RegisterMulticastListenersCallback

void(* otIp6RegisterMulticastListenersCallback)(void *aContext, otError aError, uint8_t aMlrStatus, const otIp6Address *aFailedAddresses, uint8_t aFailedAddressNum)

O ponteiro é chamado com resultados de otIp6RegisterMulticastListeners.

Detalhes
Parâmetros
[in] aContext
Um ponteiro para o contexto do usuário.
[in] aError
OT_ERROR_NONE quando enviou MLR.req e recebeu MLR.rsp, OT_ERROR_RESPONSE_TIMEOUT quando não recebeu MLR.rsp, OT_ERROR_PARSE quando não foi possível analisar MLR.rsp.
[in] aMlrStatus
O status de registro do listener Multicast quando aError é OT_ERROR_NONE.
[in] aFailedAddresses
Um ponteiro para os endereços IPv6 com falha quando aError é OT_ERROR_NONE.
[in] aFailedAddressNum
O número de endereços IPv6 com falha quando aError é OT_ERROR_NONE.
Consulte também:
otIp6RegisterMulticastListeners

otIp6SlaacPrefixFilter

bool(* otIp6SlaacPrefixFilter)(otInstance *aInstance, const otIp6Prefix *aPrefix)

O ponteiro permite que o usuário filtre prefixos e não que um endereço SLAAC com base em um prefixo seja adicionado.

otIp6SetSlaacPrefixFilter() pode ser usado para definir o gerenciador de filtros. O gerenciador de filtro é invocado pelo módulo SLAAC quando está prestes a adicionar um endereço SLAAC com base em um prefixo. O valor de retorno booleano determina se o endereço é filtrado (não adicionado) ou não.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
[in] aPrefix
Um ponteiro para prefixo para o qual o endereço SLAAC está prestes a ser adicionado.
Valores de retorno
TRUE
Indica que o endereço SLAAC com base no prefixo precisa ser filtrado e NÃO adicionado.
FALSE
Indica que o endereço SLAAC com base no prefixo precisa ser adicionado.

otMessageInfo

struct otMessageInfo otMessageInfo

Representa os endereços de soquete IPv6 locais e de peering.

otNetifAddress

struct otNetifAddress otNetifAddress

Representa um endereço unicast da interface de rede IPv6.

otNetifMulticastAddress

struct otNetifMulticastAddress otNetifMulticastAddress

Representa um endereço multicast da interface de rede IPv6.

otPacketsAndBytes

struct otPacketsAndBytes otPacketsAndBytes

Representa os contadores de pacotes e bytes.

otSockAddr

struct otSockAddr otSockAddr

Representa um endereço de soquete IPv6.

Variáveis

OT_TOOL_PACKED_END

OT_TOOL_PACKED_BEGIN struct otIp6InterfaceIdentifier OT_TOOL_PACKED_END

remotas

otIp6AddUnicastAddress

otError otIp6AddUnicastAddress(
  otInstance *aInstance,
  const otNetifAddress *aAddress
)

Adiciona um endereço de interface de rede à interface Thread.

A instância transmitida aAddress é copiada pela interface Thread. A interface Thread aceita apenas um número fixo de endereços unicast adicionados externamente. Consulte os OPENTHREAD_CONFIG_IP6_MAX_EXT_UCAST_ADDRS.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
[in] aAddress
Um ponteiro para um endereço de interface de rede.
Valores de retorno
OT_ERROR_NONE
O endereço da interface de rede foi adicionado (ou atualizado).
OT_ERROR_INVALID_ARGS
O endereço IP indicado por aAddress é interno.
OT_ERROR_NO_BUFS
A interface de rede já está armazenando o número máximo de endereços externos permitidos.

otIp6AddUnsecurePort

otError otIp6AddUnsecurePort(
  otInstance *aInstance,
  uint16_t aPort
)

Adiciona uma porta à lista de portas não seguras permitidas.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
[in] aPort
O valor da porta.
Valores de retorno
OT_ERROR_NONE
A porta foi adicionada à lista de portas não seguras permitidas.
OT_ERROR_INVALID_ARGS
A porta é inválida (o valor 0 está reservado para uso interno).
OT_ERROR_NO_BUFS
A lista de portas não seguras está cheia.

otIp6AddressFromString

otError otIp6AddressFromString(
  const char *aString,
  otIp6Address *aAddress
)

Converte uma string de endereço IPv6 legível em uma representação binária.

Detalhes
Parâmetros
[in] aString
Um ponteiro para uma string encerrada em NULL.
[out] aAddress
Um ponteiro para um endereço IPv6.
Valores de retorno
OT_ERROR_NONE
A análise de aString foi concluída e o aAddress foi atualizado.
OT_ERROR_PARSE
Falha ao analisar aString como um endereço IPv6.

otIp6AddressToString

void otIp6AddressToString(
  const otIp6Address *aAddress,
  char *aBuffer,
  uint16_t aSize
)

Converte determinado endereço IPv6 em uma string legível.

A string do endereço IPv6 é formatada como 16 valores hexadecimais separados por ":" (por exemplo, "%x:%x:%x:...:%x").

Se a string resultante não couber em aBuffer (dentro dos caracteres aSize), a string será truncada, mas a de saída sempre será terminada com valor nulo.

Detalhes
Parâmetros
[in] aAddress
Um ponteiro para um endereço IPv6 (NÃO PODE ser NULL).
[out] aBuffer
Um ponteiro para uma matriz de caracteres para enviar a string (NÃO PODE ser NULL).
[in] aSize
O tamanho de aBuffer (em bytes). Recomendamos usar OT_IP6_ADDRESS_STRING_SIZE.

otIp6ArePrefixesEqual

bool otIp6ArePrefixesEqual(
  const otIp6Prefix *aFirst,
  const otIp6Prefix *aSecond
)

Teste se dois prefixos IPv6 são iguais.

Detalhes
Parâmetros
[in] aFirst
Um ponteiro para o primeiro prefixo IPv6 a ser comparado.
[in] aSecond
Um ponteiro para o segundo prefixo IPv6 a ser comparado.
Valores de retorno
TRUE
Os dois prefixos IPv6 são iguais.
FALSE
Os dois prefixos IPv6 não são iguais.

otIp6GetBorderRoutingCounters

const otBorderRoutingCounters * otIp6GetBorderRoutingCounters(
  otInstance *aInstance
)

Acessa os contadores do roteamento de borda.

O recurso de tempo de build OPENTHREAD_CONFIG_IP6_BR_COUNTERS_ENABLE precisa estar ativado.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
Retorna
Um ponteiro para os contadores de roteamento de borda.

otIp6GetMulticastAddresses

const otNetifMulticastAddress * otIp6GetMulticastAddresses(
  otInstance *aInstance
)

Recebe a lista de endereços multicast IPv6 inscritos na interface Thread.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
Retorna
Um ponteiro para o primeiro endereço multicast da interface de rede.

otIp6GetPrefix

void otIp6GetPrefix(
  const otIp6Address *aAddress,
  uint8_t aLength,
  otIp6Prefix *aPrefix
)

Recebe um prefixo com aLength de aAddress.

Detalhes
Parâmetros
[in] aAddress
Um ponteiro para um endereço IPv6.
[in] aLength
O comprimento do prefixo em bits.
[out] aPrefix
Um ponteiro para gerar o prefixo IPv6.

otIp6GetUnicastAddresses

const otNetifAddress * otIp6GetUnicastAddresses(
  otInstance *aInstance
)

Recebe a lista de endereços IPv6 atribuídos à interface Thread.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
Retorna
Um ponteiro para o primeiro endereço de interface de rede.

otIp6GetUnsecurePorts

const uint16_t * otIp6GetUnsecurePorts(
  otInstance *aInstance,
  uint8_t *aNumEntries
)

Retorna um ponteiro para a lista de portas não seguras.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
[out] aNumEntries
O número de entradas na lista.
Retorna
Um ponteiro para a lista de portas não seguras.

otIp6HasUnicastAddress

bool otIp6HasUnicastAddress(
  otInstance *aInstance,
  const otIp6Address *aAddress
)

Indica se um endereço IPv6 unicast foi atribuído à interface Thread.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
[in] aAddress
Um ponteiro para o endereço unicast.
Valores de retorno
TRUE
Se aAddress for atribuído à interface Thread.
FALSE
Se aAddress não estiver atribuído à interface Thread.

otIp6IsAddressEqual

bool otIp6IsAddressEqual(
  const otIp6Address *aFirst,
  const otIp6Address *aSecond
)

Teste se dois endereços IPv6 são iguais.

Detalhes
Parâmetros
[in] aFirst
Um ponteiro para o primeiro endereço IPv6 a ser comparado.
[in] aSecond
Um ponteiro para o segundo endereço IPv6 a ser comparado.
Valores de retorno
TRUE
Os dois endereços IPv6 são iguais.
FALSE
Os dois endereços IPv6 não são iguais.

otIp6IsAddressUnspecified

bool otIp6IsAddressUnspecified(
  const otIp6Address *aAddress
)

Indica se um endereço IPv6 específico é o endereço não especificado.

Detalhes
Parâmetros
[in] aAddress
Um ponteiro para um endereço IPv6.
Valores de retorno
TRUE
Se o endereço IPv6 for o endereço não especificado.
FALSE
Se o endereço IPv6 não for o endereço não especificado.

otIp6IsEnabled

bool otIp6IsEnabled(
  otInstance *aInstance
)

Indica se a interface IPv6 está ativa ou não.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
Valores de retorno
TRUE
A interface IPv6 está ativada.
FALSE
A interface IPv6 está desativada.

otIp6IsMulticastPromiscuousEnabled

bool otIp6IsMulticastPromiscuousEnabled(
  otInstance *aInstance
)

Verifica se o modo promíscuo de multicast está ativado na interface do Thread.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
Consulte também:
otIp6SetMulticastPromiscuousEnabled

otIp6IsReceiveFilterEnabled

bool otIp6IsReceiveFilterEnabled(
  otInstance *aInstance
)

Indica se o tráfego de controle da linha de execução é ou não filtrado ao entregar datagramas IPv6 pelo callback especificado em otIp6SetReceiveCallback().

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
Retorna
TRUE se o tráfego do controle de conversas for filtrado; caso contrário, será FALSE.
Consulte também:
otIp6SetReceiveCallback
otIp6SetReceiveFilterEnabled

otIp6IsSlaacEnabled

bool otIp6IsSlaacEnabled(
  otInstance *aInstance
)

Indica se o módulo SLAAC está ativado ou não.

O recurso de tempo de build OPENTHREAD_CONFIG_IP6_SLAAC_ENABLE precisa estar ativado.

Detalhes
Valores de retorno
TRUE
O módulo SLAAC está ativado.
FALSE
O módulo SLAAC está desativado.

otIp6NewMessage

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

Aloque um novo buffer de mensagem para enviar uma mensagem IPv6.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
[in] aSettings
Um ponteiro para as configurações da mensagem ou NULL para definir as configurações padrão.
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.
Consulte também:
otMessageFree

otIp6NewMessageFromBuffer

otMessage * otIp6NewMessageFromBuffer(
  otInstance *aInstance,
  const uint8_t *aData,
  uint16_t aDataLength,
  const otMessageSettings *aSettings
)

Aloque um novo buffer de mensagem e grave o datagrama IPv6 no buffer de mensagem para enviar uma mensagem IPv6.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
[in] aData
Um ponteiro para o buffer de datagramas IPv6.
[in] aDataLength
O tamanho do buffer de datagramas IPv6 apontado por aData.
[in] aSettings
Um ponteiro para as configurações da mensagem ou NULL para definir as configurações padrão.
Retorna
Um ponteiro para a mensagem ou NULL se um cabeçalho IPv6 malformado ou buffers de mensagem insuficientes estiverem disponíveis.
Consulte também:
otMessageFree

otIp6PrefixFromString

otError otIp6PrefixFromString(
  const char *aString,
  otIp6Prefix *aPrefix
)

Converte uma string de prefixo IPv6 legível em uma representação binária.

O parâmetro aString precisa ser uma string no formato "

/", em que
é um endereço IPv6 e é um tamanho de prefixo.

Detalhes
Parâmetros
[in] aString
Um ponteiro para uma string encerrada em NULL.
[out] aPrefix
Um ponteiro para um prefixo IPv6.
Valores de retorno
OT_ERROR_NONE
A string foi analisada como um prefixo IPv6 e atualizada, aPrefix.
OT_ERROR_PARSE
Falha ao analisar aString como um prefixo IPv6.

otIp6PrefixMatch

uint8_t otIp6PrefixMatch(
  const otIp6Address *aFirst,
  const otIp6Address *aSecond
)

Retorna o tamanho de correspondência do prefixo (bits) para dois endereços IPv6.

Detalhes
Parâmetros
[in] aFirst
Um ponteiro para o primeiro endereço IPv6.
[in] aSecond
Um ponteiro para o segundo endereço IPv6.
Retorna
O prefixo corresponde ao comprimento em bits.

otIp6PrefixToString

void otIp6PrefixToString(
  const otIp6Prefix *aPrefix,
  char *aBuffer,
  uint16_t aSize
)

Converte determinado prefixo IPv6 em uma string legível.

A string do endereço IPv6 é formatada como "%x:%x:%x:...".

Se a string resultante não couber em aBuffer (dentro dos caracteres aSize), a string será truncada, mas a de saída sempre será terminada com valor nulo.

Detalhes
Parâmetros
[in] aPrefix
Um ponteiro para um prefixo IPv6 (NÃO PODE ser NULL).
[out] aBuffer
Um ponteiro para uma matriz de caracteres para enviar a string (NÃO PODE ser NULL).
[in] aSize
O tamanho de aBuffer (em bytes). Recomendamos usar OT_IP6_PREFIX_STRING_SIZE.

otIp6ProtoToString

const char * otIp6ProtoToString(
  uint8_t aIpProto
)

Converte determinado número de protocolo IP em uma string legível.

Detalhes
Parâmetros
[in] aIpProto
Um número de protocolo IP (enumeração de OT_IP6_PROTO_*).
Retorna
Uma string que representa aIpProto.

otIp6RegisterMulticastListeners

otError otIp6RegisterMulticastListeners(
  otInstance *aInstance,
  const otIp6Address *aAddresses,
  uint8_t aAddressNum,
  const uint32_t *aTimeout,
  otIp6RegisterMulticastListenersCallback aCallback,
  void *aContext
)

Registra listeners Multicast no roteador de backbone principal.

É preciso ativar OPENTHREAD_CONFIG_TMF_PROXY_MLR_ENABLE e OPENTHREAD_CONFIG_COMMISSIONER_ENABLE.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
[in] aAddresses
Uma matriz de endereços multicast para registro.
[in] aAddressNum
O número de endereços multicast a serem registrados (0 se aAddresses for NULL).
[in] aTimeout
Um ponteiro para o valor de tempo limite (em segundos) a ser incluído no MLR.req. Um valor de tempo limite 0 remove o listener de multicast correspondente. Se fosse NULL, o MLR.req não teria o tempo limite Tlv por padrão.
[in] aCallback
Um ponteiro para a função de callback.
[in] aContext
Um ponteiro para o contexto do usuário.
Valores de retorno
OT_ERROR_NONE
MLR.req. O aCallback será chamado se esse método retornar OT_ERROR_NONE.
OT_ERROR_BUSY
Se um registro anterior estava em andamento.
OT_ERROR_INVALID_ARGS
Se um ou mais argumentos forem inválidos.
OT_ERROR_INVALID_STATE
Se o dispositivo não estava em um estado válido para enviar MLR.req (por exemplo, o Commissioner não iniciado, o roteador de backbone principal não foi encontrado).
OT_ERROR_NO_BUFS
Se não houver buffers de mensagem suficientes.
Consulte também:
otIp6RegisterMulticastListenersCallback

otIp6RemoveAllUnsecurePorts

void otIp6RemoveAllUnsecurePorts(
  otInstance *aInstance
)

Remove todas as portas da lista de portas não seguras permitidas.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.

otIp6RemoveUnicastAddress

otError otIp6RemoveUnicastAddress(
  otInstance *aInstance,
  const otIp6Address *aAddress
)

Remove um endereço de interface de rede da interface Thread.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
[in] aAddress
Um ponteiro para um endereço IP.
Valores de retorno
OT_ERROR_NONE
O endereço de interface de rede foi removido.
OT_ERROR_INVALID_ARGS
O endereço IP indicado por aAddress é interno.
OT_ERROR_NOT_FOUND
O endereço IP indicado por aAddress não foi encontrado.

otIp6RemoveUnsecurePort

otError otIp6RemoveUnsecurePort(
  otInstance *aInstance,
  uint16_t aPort
)

Remove uma porta da lista de portas não seguras permitidas.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
[in] aPort
O valor da porta.
Valores de retorno
OT_ERROR_NONE
A porta foi removida da lista de portas não seguras permitidas.
OT_ERROR_INVALID_ARGS
A porta é inválida (o valor 0 está reservado para uso interno).
OT_ERROR_NOT_FOUND
A porta não foi encontrada na lista de portas não seguras.

otIp6ResetBorderRoutingCounters

void otIp6ResetBorderRoutingCounters(
  otInstance *aInstance
)

Redefine os contadores do Roteamento de borda.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.

otIp6SelectSourceAddress

otError otIp6SelectSourceAddress(
  otInstance *aInstance,
  otMessageInfo *aMessageInfo
)

Executa a seleção do endereço de origem do OpenThread.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
[in,out] aMessageInfo
Um ponteiro para as informações da mensagem.
Valores de retorno
OT_ERROR_NONE
Um endereço de origem foi encontrado e está preenchido no mSockAddr de aMessageInfo.
OT_ERROR_NOT_FOUND
Nenhum endereço de origem foi encontrado, e o aMessageInfo não foi alterado.

otIp6Send

otError otIp6Send(
  otInstance *aInstance,
  otMessage *aMessage
)

Envia um datagrama IPv6 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
[in] aInstance
Um ponteiro para uma instância do OpenThread.
[in] aMessage
Um ponteiro para o buffer de mensagem que contém o datagrama IPv6.
Valores de retorno
OT_ERROR_NONE
A mensagem foi processada.
OT_ERROR_DROP
A mensagem foi formada corretamente, mas não foi totalmente processada devido a regras de processamento de pacotes.
OT_ERROR_NO_BUFS
Não foi possível alocar os buffers de mensagem necessários ao processar o datagrama.
OT_ERROR_NO_ROUTE
Nenhuma rota para o host.
OT_ERROR_INVALID_SOURCE_ADDRESS
O endereço de origem é inválido, por exemplo, um endereço Anycast ou multicast.
OT_ERROR_PARSE
Um cabeçalho incorreto foi encontrado ao processar a mensagem.
OT_ERROR_INVALID_ARGS
Os metadados da mensagem são inválidos. Por exemplo, a mensagem usa OT_MESSAGE_ORIGIN_THREAD_NETIF como origem.

otIp6SetAddressCallback

void otIp6SetAddressCallback(
  otInstance *aInstance,
  otIp6AddressCallback aCallback,
  void *aCallbackContext
)

Registra um callback para notificar mudanças de endereços IPv6 internos.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
[in] aCallback
Um ponteiro para uma função chamada quando um endereço IPv6 interno é adicionado ou removido. NULL para desativar o callback.
[in] aCallbackContext
Um ponteiro para o contexto específico do aplicativo.

otIp6SetEnabled

otError otIp6SetEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Traz a interface IPv6 para cima ou para baixo.

Chame para ativar ou desativar a comunicação IPv6.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
[in] aEnabled
TRUE para ativar o IPv6. Caso contrário, retorna FALSE.
Valores de retorno
OT_ERROR_NONE
A interface IPv6 foi movida para cima/baixo.
OT_ERROR_INVALID_STATE
A interface IPv6 não está disponível porque o dispositivo opera no modo de link bruto (aplicável somente quando o recurso OPENTHREAD_CONFIG_LINK_RAW_ENABLE está ativado).

otIp6SetMeshLocalIid

otError otIp6SetMeshLocalIid(
  otInstance *aInstance,
  const otIp6InterfaceIdentifier *aIid
)

Define o IID local da malha (para fins de teste).

Exige OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
[in] aIid
Um ponteiro para o IID da malha local a ser definido.
Valores de retorno
OT_ERROR_NONE
O IID da malha local foi definido.
OT_ERROR_INVALID_STATE
Os protocolos de linha de execução estão ativados.

otIp6SetMulticastPromiscuousEnabled

void otIp6SetMulticastPromiscuousEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Ativa ou desativa o modo promíscuo de multicast na interface do Thread.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
[in] aEnabled
TRUE para ativar o modo multicast promíscuo. Caso contrário, retorna FALSE.
Consulte também:
otIp6IsMulticastPromiscuousEnabled

otIp6SetReceiveCallback

void otIp6SetReceiveCallback(
  otInstance *aInstance,
  otIp6ReceiveCallback aCallback,
  void *aCallbackContext
)

Registra um callback para fornecer os datagramas IPv6 recebidos.

Por padrão, esse callback não passa tráfego de controle da linha de execução. Consulte otIp6SetReceiveFilterEnabled() para mudar a configuração do filtro de tráfego do controle de conversas.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
[in] aCallback
Um ponteiro para uma função que é chamada quando um datagrama IPv6 é recebido ou NULL para desativar o callback.
[in] aCallbackContext
Um ponteiro para o contexto específico do aplicativo.
Consulte também:
otIp6IsReceiveFilterEnabled
otIp6SetReceiveFilterEnabled

otIp6SetReceiveFilterEnabled

void otIp6SetReceiveFilterEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Define se o tráfego de controle da linha de execução é filtrado ao entregar datagramas IPv6 pelo callback especificado em otIp6SetReceiveCallback().

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
[in] aEnabled
TRUE se o tráfego do controle de conversas for filtrado; caso contrário, será FALSE.
Consulte também:
otIp6SetReceiveCallback
otIsReceiveIp6FilterEnabled

otIp6SetSlaacEnabled

void otIp6SetSlaacEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Ativa/desativa o módulo SLAAC.

O recurso de tempo de build OPENTHREAD_CONFIG_IP6_SLAAC_ENABLE precisa estar ativado.

Quando o módulo SLAAC está ativado, os endereços SLAAC (com base em prefixos da malha nos dados de rede) são adicionados à interface. Quando o módulo SLAAC é desativado, qualquer endereço SLAAC adicionado anteriormente é removido.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
[in] aEnabled
TRUE para ativar, FALSE para desativar.

otIp6SetSlaacPrefixFilter

void otIp6SetSlaacPrefixFilter(
  otInstance *aInstance,
  otIp6SlaacPrefixFilter aFilter
)

Define o gerenciador de filtros do módulo SLAAC.

O recurso de tempo de build OPENTHREAD_CONFIG_IP6_SLAAC_ENABLE precisa estar ativado.

O gerenciador de filtro é chamado pelo módulo SLAAC quando está prestes a adicionar um endereço SLAAC com base em um prefixo para decidir se o endereço deve ou não ser adicionado.

Um gerenciador de filtros NULL desativa a filtragem e permite que todos os endereços SLAAC sejam adicionados.

Se essa função não for chamada, o filtro padrão usado pelo módulo SLAAC será NULL (o filtro está desativado).

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
[in] aFilter
Um ponteiro para o gerenciador de filtros de prefixo SLAAC ou NULL para desativar a filtragem.

otIp6SockAddrToString

void otIp6SockAddrToString(
  const otSockAddr *aSockAddr,
  char *aBuffer,
  uint16_t aSize
)

Converte determinado endereço de soquete IPv6 em uma string legível.

A string do endereço do soquete IPv6 é formatada como [address]:port, em que address é mostrado como 16 valores hexadecimais separados por : e port é o número da porta em formato decimal, por exemplo "[%x:%x:...:%x]:%u".

Se a string resultante não couber em aBuffer (dentro dos caracteres aSize), a string será truncada, mas a de saída sempre será terminada com valor nulo.

Detalhes
Parâmetros
[in] aSockAddr
Um ponteiro para um endereço de soquete IPv6 (NÃO PODE ser NULL).
[out] aBuffer
Um ponteiro para uma matriz de caracteres para enviar a string (NÃO PODE ser NULL).
[in] aSize
O tamanho de aBuffer (em bytes). Recomendamos usar OT_IP6_SOCK_ADDR_STRING_SIZE.

otIp6SubscribeMulticastAddress

otError otIp6SubscribeMulticastAddress(
  otInstance *aInstance,
  const otIp6Address *aAddress
)

Inscreve a interface Thread em um endereço multicast de interface de rede.

O aAddress transmitido na instância será copiado pela interface Thread. A interface Thread aceita apenas um número fixo de endereços multicast adicionados externamente. Consulte os OPENTHREAD_CONFIG_IP6_MAX_EXT_MCAST_ADDRS.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
[in] aAddress
Um ponteiro para um endereço IP.
Valores de retorno
OT_ERROR_NONE
A inscrição no endereço multicast da interface de rede foi concluída.
OT_ERROR_ALREADY
O endereço multicast já está inscrito.
OT_ERROR_INVALID_ARGS
O endereço IP indicado por aAddress é um endereço multicast inválido.
OT_ERROR_REJECTED
O endereço IP indicado por aAddress é um endereço multicast interno.
OT_ERROR_NO_BUFS
A interface de rede já está armazenando o número máximo permitido de endereços multicast externos.

otIp6UnsubscribeMulticastAddress

otError otIp6UnsubscribeMulticastAddress(
  otInstance *aInstance,
  const otIp6Address *aAddress
)

Cancela a inscrição da interface Thread para um endereço multicast da interface de rede.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
[in] aAddress
Um ponteiro para um endereço IP.
Valores de retorno
OT_ERROR_NONE
A inscrição no endereço multicast da interface de rede foi cancelada.
OT_ERROR_REJECTED
O endereço IP indicado por aAddress é interno.
OT_ERROR_NOT_FOUND
O endereço IP indicado por aAddress não foi encontrado.

Macros

OT_IP6_ADDRESS_SIZE

 OT_IP6_ADDRESS_SIZE 16

Tamanho de um endereço IPv6 (bytes)

OT_IP6_ADDRESS_STRING_SIZE

 OT_IP6_ADDRESS_STRING_SIZE 40

Tamanho recomendado para representação de string de um endereço IPv6.

OT_IP6_HEADER_PROTO_OFFSET

 OT_IP6_HEADER_PROTO_OFFSET 6

Deslocamento do campo proto no cabeçalho IPv6 (bytes)

OT_IP6_HEADER_SIZE

 OT_IP6_HEADER_SIZE 40

Tamanho de um cabeçalho IPv6 (bytes)

OT_IP6_IID_SIZE

 OT_IP6_IID_SIZE 8

Tamanho de um identificador de interface IPv6 (bytes)

OT_IP6_MAX_MLR_ADDRESSES

 OT_IP6_MAX_MLR_ADDRESSES 15

Número máximo de endereços IPv6 compatíveis com o registro de listener multicast.

OT_IP6_PREFIX_BITSIZE

 OT_IP6_PREFIX_BITSIZE (OT_IP6_PREFIX_SIZE * 8)

Tamanho de um prefixo IPv6 (bits)

OT_IP6_PREFIX_SIZE

 OT_IP6_PREFIX_SIZE 8

Tamanho de um prefixo IPv6 (bytes)

OT_IP6_PREFIX_STRING_SIZE

 OT_IP6_PREFIX_STRING_SIZE 45

Tamanho recomendado para representação de string de um prefixo IPv6.

OT_IP6_SOCK_ADDR_STRING_SIZE

 OT_IP6_SOCK_ADDR_STRING_SIZE 48

Tamanho recomendado para representação de string de um endereço de soquete IPv6.

Recursos

Os tópicos de Referência da API OpenThread se originam no código-fonte, disponível no GitHub (link em inglês). Para mais informações ou para contribuir com nossa documentação, consulte Recursos.