O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

IPv6

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

Resumo

Enumerações

anonymous enum {
OT_ADDRESS_ORIGIN_THREAD = 0,
OT_ADDRESS_ORIGIN_SLAAC = 1,
OT_ADDRESS_ORIGIN_DHCPV6 = 2,
OT_ADDRESS_ORIGIN_MANUAL = 3
}
enum
Origens do endereço IPv6.

Typedefs

otIp6Address typedef
struct otIp6Address
Esta estrutura representa um endereço IPv6.
otIp6AddressCallback )(const otIp6AddressInfo *aAddressInfo, bool aIsAdded, void *aContext) typedef
void(*
Este ponteiro de função é chamado quando um endereço IPv6 interno é adicionado ou removido.
otIp6AddressComponents typedef
Essa estrutura representa os componentes de um endereço IPv6.
otIp6AddressInfo typedef
otIp6InterfaceIdentifier typedef
Esta estrutura representa o identificador de interface de um endereço IPv6.
otIp6NetworkPrefix typedef
Essa estrutura representa o prefixo de rede de um endereço IPv6 (64 bits mais significativos do endereço).
otIp6Prefix typedef
struct otIp6Prefix
Essa estrutura representa um prefixo IPv6.
otIp6ReceiveCallback )(otMessage *aMessage, void *aContext) typedef
void(*
Este ponteiro de função é chamado quando um datagrama IPv6 é recebido.
otIp6RegisterMulticastListenersCallback )(void *aContext, otError aError, uint8_t aMlrStatus, const otIp6Address *aFailedAddresses, uint8_t aFailedAddressNum) typedef
void(*
Este ponteiro de função é chamado com os resultados de otIp6RegisterMulticastListeners .
otIp6SlaacPrefixFilter )(otInstance *aInstance, const otIp6Prefix *aPrefix) typedef
bool(*
Este ponteiro de função permite ao usuário filtrar prefixos e não permite que um endereço SLAAC baseado em um prefixo seja adicionado.
otMessageInfo typedef
Essa estrutura representa os endereços de soquete IPv6 local e de mesmo nível.
otNetifAddress typedef
Esta estrutura representa um endereço unicast da interface de rede IPv6.
otNetifMulticastAddress typedef
Esta estrutura representa um endereço multicast da interface de rede IPv6.
otSockAddr typedef
struct otSockAddr
Esta estrutura representa um endereço de socket IPv6.

Variáveis

OT_TOOL_PACKED_END

Funções

otIp6AddUnicastAddress ( otInstance *aInstance, const otNetifAddress *aAddress)
Adicione um endereço de interface de rede à interface Thread.
otIp6AddUnsecurePort ( otInstance *aInstance, uint16_t aPort)
Esta função adiciona uma porta à lista de portas não seguras permitidas.
otIp6AddressFromString (const char *aString, otIp6Address *aAddress)
Esta função converte uma string de endereço IPv6 legível por humanos em uma representação binária.
otIp6AddressToString (const otIp6Address *aAddress, char *aBuffer, uint16_t aSize)
void
Esta função converte um determinado endereço IPv6 em uma string legível por humanos.
otIp6GetMulticastAddresses ( otInstance *aInstance)
Obtenha a lista de endereços multicast IPv6 inscritos na interface Thread.
otIp6GetUnicastAddresses ( otInstance *aInstance)
Obtenha a lista de endereços IPv6 atribuídos à interface Thread.
otIp6GetUnsecurePorts ( otInstance *aInstance, uint8_t *aNumEntries)
const uint16_t *
Esta função retorna um ponteiro para a lista de portas não seguras.
otIp6IsAddressEqual (const otIp6Address *aFirst, const otIp6Address *aSecond)
bool
Teste se dois endereços IPv6 são iguais.
otIp6IsAddressUnspecified (const otIp6Address *aAddress)
bool
Esta função indica se um determinado endereço IPv6 é ou não o endereço não especificado.
otIp6IsEnabled ( otInstance *aInstance)
bool
Esta função indica se a interface IPv6 está ativa ou não.
otIp6IsMulticastPromiscuousEnabled ( otInstance *aInstance)
bool
Verifique se o modo promíscuo multicast está habilitado na interface Thread.
otIp6IsReceiveFilterEnabled ( otInstance *aInstance)
bool
Esta função indica se o tráfego de controle de thread é filtrado ao entregar datagramas IPv6 por meio do retorno de chamada especificado em otIp6SetReceiveCallback () .
otIp6IsSlaacEnabled ( otInstance *aInstance)
bool
Esta função indica se o módulo SLAAC está habilitado 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.
otIp6PrefixMatch (const otIp6Address *aFirst, const otIp6Address *aSecond)
uint8_t
Esta função retorna o comprimento de correspondência de prefixo (bits) para dois endereços IPv6.
otIp6PrefixToString (const otIp6Prefix *aPrefix, char *aBuffer, uint16_t aSize)
void
Esta função converte um determinado prefixo IPv6 em uma string legível.
otIp6RegisterMulticastListeners ( otInstance *aInstance, const otIp6Address *aAddresses, uint8_t aAddressNum, const uint32_t *aTimeout, otIp6RegisterMulticastListenersCallback aCallback, void *aContext)
Esta função registra ouvintes multicast no roteador de backbone primário.
otIp6RemoveAllUnsecurePorts ( otInstance *aInstance)
void
Esta função remove todas as portas da lista de portas não seguras permitidas.
otIp6RemoveUnicastAddress ( otInstance *aInstance, const otIp6Address *aAddress)
Remova um endereço de interface de rede da interface Thread.
otIp6RemoveUnsecurePort ( otInstance *aInstance, uint16_t aPort)
Esta função remove uma porta da lista de portas não seguras permitidas.
otIp6SelectSourceAddress ( otInstance *aInstance, otMessageInfo *aMessageInfo)
Esta função executa a seleção do endereço de origem OpenThread.
otIp6Send ( otInstance *aInstance, otMessage *aMessage)
Esta função envia um datagrama IPv6 por meio da interface Thread.
otIp6SetAddressCallback ( otInstance *aInstance, otIp6AddressCallback aCallback, void *aCallbackContext)
void
Esta função registra um retorno de chamada para notificar mudanças de endereço IPv6 interno.
otIp6SetEnabled ( otInstance *aInstance, bool aEnabled)
Esta função ativa / desativa a interface IPv6.
otIp6SetMeshLocalIid ( otInstance *aInstance, const otIp6InterfaceIdentifier *aIid)
Esta função define o IID local da malha (para fins de teste).
otIp6SetMulticastPromiscuousEnabled ( otInstance *aInstance, bool aEnabled)
void
Habilite o modo promíscuo multicast na interface Thread.
otIp6SetReceiveCallback ( otInstance *aInstance, otIp6ReceiveCallback aCallback, void *aCallbackContext)
void
Esta função registra um retorno de chamada para fornecer datagramas IPv6 recebidos.
otIp6SetReceiveFilterEnabled ( otInstance *aInstance, bool aEnabled)
void
Esta função define se o tráfego de controle de thread é filtrado ao entregar datagramas IPv6 por meio do retorno de chamada especificado em otIp6SetReceiveCallback () .
otIp6SetSlaacEnabled ( otInstance *aInstance, bool aEnabled)
void
Esta função ativa / desativa o módulo SLAAC.
otIp6SetSlaacPrefixFilter ( otInstance *aInstance, otIp6SlaacPrefixFilter aFilter)
void
Esta função define o manipulador de filtro do módulo SLAAC.
otIp6SockAddrToString (const otSockAddr *aSockAddr, char *aBuffer, uint16_t aSize)
void
Esta função converte um determinado endereço de socket IPv6 em uma string legível por humanos.
otIp6SubscribeMulticastAddress ( otInstance *aInstance, const otIp6Address *aAddress)
Inscrever a interface Thread em um endereço multicast de interface de rede.
otIp6UnsubscribeMulticastAddress ( otInstance *aInstance, const otIp6Address *aAddress)
Cancele a assinatura da interface Thread para um endereço multicast de interface de rede.

Structs

otIp6Address

Esta estrutura representa um endereço IPv6.

otIp6AddressComponents

Essa estrutura representa os componentes de um endereço IPv6.

otIp6AddressInfo

Esta estrutura representa as informações do endereço IPv6.

otIp6InterfaceIdentifier

Esta estrutura representa o identificador de interface de um endereço IPv6.

otIp6NetworkPrefix

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

otIp6Prefix

Essa estrutura representa um prefixo IPv6.

otMessageInfo

Essa estrutura representa os endereços de soquete IPv6 local e de mesmo nível.

otNetifAddress

Esta estrutura representa um endereço unicast da interface de rede IPv6.

otNetifMulticastAddress

Esta estrutura representa um endereço multicast da interface de rede IPv6.

otSockAddr

Esta estrutura representa um endereço de socket IPv6.

Sindicatos

otIp6InterfaceIdentifier :: OT_TOOL_PACKED_FIELD

Enumerações

enum anônimo

 anonymous enum

Origens do endereço IPv6.

Propriedades
OT_ADDRESS_ORIGIN_DHCPV6

Endereço atribuído por 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 de thread atribuído (ALOC, RLOC, MLEID, etc)

Typedefs

otIp6Address

struct otIp6Address otIp6Address

Esta estrutura representa um endereço IPv6.

otIp6AddressCallback

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

Este ponteiro de função é chamado quando um endereço IPv6 interno é adicionado ou removido.

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

otIp6AddressComponents

struct otIp6AddressComponents otIp6AddressComponents

Essa estrutura representa os componentes de um endereço IPv6.

otIp6AddressInfo

struct otIp6AddressInfo otIp6AddressInfo

otIp6InterfaceIdentifier

struct otIp6InterfaceIdentifier otIp6InterfaceIdentifier

Esta estrutura representa o identificador de interface de um endereço IPv6.

otIp6NetworkPrefix

struct otIp6NetworkPrefix otIp6NetworkPrefix

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

otIp6Prefix

struct otIp6Prefix otIp6Prefix

Essa estrutura representa um prefixo IPv6.

otIp6ReceiveCallback

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

Este ponteiro de função é 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. Esta função transfere a propriedade da aMessage para o receptor do retorno de chamada. A mensagem deve ser liberada pelo receptor do retorno de chamada após ser 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)

Este ponteiro de função é chamado com os resultados de otIp6RegisterMulticastListeners .

Detalhes
Parâmetros
[in] aContext
Um ponteiro para o contexto do usuário.
[in] aError
OT_ERROR_NONE quando enviado com sucesso MLR.req e recebido MLR.rsp, OT_ERROR_RESPONSE_TIMEOUT quando falha ao receber MLR.rsp, OT_ERROR_PARSE quando falha ao 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.
Veja também:
otIp6RegisterMulticastListeners

otIp6SlaacPrefixFilter

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

Este ponteiro de função permite ao usuário filtrar prefixos e não permite que um endereço SLAAC baseado em um prefixo seja adicionado.

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

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

otMessageInfo

struct otMessageInfo otMessageInfo

Essa estrutura representa os endereços de soquete IPv6 local e de mesmo nível.

otNetifAddress

struct otNetifAddress otNetifAddress

Esta estrutura representa um endereço unicast da interface de rede IPv6.

otNetifMulticastAddress

struct otNetifMulticastAddress otNetifMulticastAddress

Esta estrutura representa um endereço multicast da interface de rede IPv6.

otSockAddr

struct otSockAddr otSockAddr

Esta estrutura representa um endereço de socket IPv6.

Variáveis

OT_TOOL_PACKED_END

OT_TOOL_PACKED_BEGIN struct otIp6InterfaceIdentifier OT_TOOL_PACKED_END

Funções

otIp6AddUnicastAddress

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

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

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

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

otIp6AddUnsecurePort

otError otIp6AddUnsecurePort(
  otInstance *aInstance,
  uint16_t aPort
)

Esta função adiciona uma porta à lista de portas não seguras permitidas.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância OpenThread.
[in] aPort
O valor da porta.
Valores Retornados
OT_ERROR_NONE
A porta foi adicionada com sucesso à lista de portas não seguras permitidas.
OT_ERROR_INVALID_ARGS
A porta é inválida (o valor 0 é 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
)

Esta função converte uma string de endereço IPv6 legível por humanos em uma representação binária.

Detalhes
Parâmetros
[in] aString
Um ponteiro para uma string terminada em NULL.
[out] aAddress
Um ponteiro para um endereço IPv6.
Valores Retornados
OT_ERROR_NONE
Analisou a string com sucesso.
OT_ERROR_INVALID_ARGS
Falha ao analisar a string.

otIp6AddressToString

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

Esta função converte um determinado endereço IPv6 em uma string legível por humanos.

A string de endereço IPv6 é formatada como 16 valores hexadecimais separados por ':' (ou seja, "% x:% x:% x: ...:% x").

Se a string resultante não couber em aBuffer (dentro de seus caracteres aSize ), a string será truncada, mas a string gerada sempre terá terminação nula.

Detalhes
Parâmetros
[in] aAddress
Um ponteiro para um endereço IPv6 (NÃO DEVE ser NULL).
[out] aBuffer
Um ponteiro para um array char para produzir a string (NÃO DEVE ser NULL).
[in] aSize
O tamanho de aBuffer (em bytes). Recomendado para usar OT_IP6_ADDRESS_STRING_SIZE .

otIp6GetMulticastAddresses

const otNetifMulticastAddress * otIp6GetMulticastAddresses(
  otInstance *aInstance
)

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

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

otIp6GetUnicastAddresses

const otNetifAddress * otIp6GetUnicastAddresses(
  otInstance *aInstance
)

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

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

otIp6GetUnsecurePorts

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

Esta função retorna um ponteiro para a lista de portas não seguras.

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

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 Retornados
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
)

Esta função indica se um determinado endereço IPv6 é ou não o endereço não especificado.

Detalhes
Parâmetros
[in] aAddress
Um ponteiro para um endereço IPv6.
Valores Retornados
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
)

Esta função indica se a interface IPv6 está ativa ou não.

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

otIp6IsMulticastPromiscuousEnabled

bool otIp6IsMulticastPromiscuousEnabled(
  otInstance *aInstance
)

Verifique se o modo promíscuo multicast está habilitado na interface Thread.

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

otIp6IsReceiveFilterEnabled

bool otIp6IsReceiveFilterEnabled(
  otInstance *aInstance
)

Esta função indica se o tráfego de controle de thread é filtrado ao entregar datagramas IPv6 por meio do retorno de chamada especificado em otIp6SetReceiveCallback () .

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância OpenThread.
Devoluções
TRUE se o tráfego de controle de thread for filtrado, FALSE caso contrário.
Veja também:
otIp6SetReceiveCallback
otIp6SetReceiveFilterEnabled

otIp6IsSlaacEnabled

bool otIp6IsSlaacEnabled(
  otInstance *aInstance
)

Esta função indica se o módulo SLAAC está habilitado ou não.

Esta função requer que o recurso de tempo de construção OPENTHREAD_CONFIG_IP6_SLAAC_ENABLE seja ativado.

Detalhes
Valores Retornados
TRUE
O módulo SLAAC está habilitado.
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 OpenThread.
[in] aSettings
Um ponteiro para as configurações de mensagem ou NULL para definir as configurações padrão.
Devoluções
Um ponteiro para o buffer de mensagem ou NULL se nenhum buffer de mensagem estiver disponível ou os parâmetros forem inválidos.
Veja 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 OpenThread.
[in] aData
Um ponteiro para o buffer de datagrama IPv6.
[in] aDataLength
O tamanho do buffer de datagrama IPv6 apontado por aData .
[in] aSettings
Um ponteiro para as configurações de mensagem ou NULL para definir as configurações padrão.
Devoluções
Um ponteiro para a mensagem ou NULL se um cabeçalho IPv6 malformado ou buffers de mensagem insuficientes estiverem disponíveis.
Veja também:
otMessageFree

otIp6PrefixMatch

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

Esta função retorna o comprimento de correspondência de 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.
Devoluções
O prefixo corresponde ao comprimento em bits.

otIp6PrefixToString

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

Esta função converte um determinado prefixo IPv6 em uma string legível por humanos.

A string do endereço IPv6 é formatada como "% x:% x:% x: ... [::] / plen".

Se a string resultante não couber em aBuffer (dentro de seus caracteres aSize ), a string será truncada, mas a string gerada sempre terá terminação nula.

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

otIp6RegisterMulticastListeners

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

Esta função registra os ouvintes multicast no roteador de backbone primário.

Nota: disponível apenas quando OPENTHREAD_CONFIG_TMF_PROXY_MLR_ENABLE e OPENTHREAD_CONFIG_COMMISSIONER_ENABLE estão ativados)

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância OpenThread.
[in] aAddresses
Uma matriz de endereços multicast para registrar.
[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 de 0 remove o Listener Multicast correspondente. Se NULL, MLR.req não teria Timeout Tlv por padrão.
[in] aCallback
Um ponteiro para a função de retorno de chamada.
[in] aContext
Um ponteiro para o contexto do usuário.
Valores Retornados
OT_ERROR_NONE
MLR.req enviado com sucesso. O aCallback será chamado se este 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, Commissioner não iniciado, Roteador de backbone primário não encontrado).
OT_ERROR_NO_BUFS
Se houver buffers de mensagem insuficientes disponíveis.
Veja também:
otIp6RegisterMulticastListenersCallback

otIp6RemoveAllUnsecurePorts

void otIp6RemoveAllUnsecurePorts(
  otInstance *aInstance
)

Esta função remove todas as portas da lista de portas não seguras permitidas.

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

otIp6RemoveUnicastAddress

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

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

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

otIp6RemoveUnsecurePort

otError otIp6RemoveUnsecurePort(
  otInstance *aInstance,
  uint16_t aPort
)

Esta função remove uma porta da lista de portas não seguras permitidas.

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

otIp6SelectSourceAddress

otError otIp6SelectSourceAddress(
  otInstance *aInstance,
  otMessageInfo *aMessageInfo
)

Esta função executa a seleção do endereço de origem OpenThread.

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

otIp6Send

otError otIp6Send(
  otInstance *aInstance,
  otMessage *aMessage
)

Esta função envia um datagrama IPv6 por meio da interface Thread.

O chamador transfere a propriedade de aMessage ao fazer esta chamada. OpenThread irá liberar aMessage quando o processamento for concluído, incluindo quando um valor diferente de OT_ERROR_NONE for retornado.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância OpenThread.
[in] aMessage
Um ponteiro para o buffer de mensagem que contém o datagrama IPv6.
Valores Retornados
OT_ERROR_NONE
A mensagem foi processada com sucesso.
OT_ERROR_DROP
A mensagem foi bem formada, mas não totalmente processada devido às 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 hospedar.
OT_ERROR_INVALID_SOURCE_ADDRESS
O endereço de origem é inválido, por exemplo, um endereço anycast ou um endereço multicast.
OT_ERROR_PARSE
Foi encontrado um cabeçalho malformado ao processar a mensagem.

otIp6SetAddressCallback

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

Esta função registra um retorno de chamada para notificar mudanças de endereço IPv6 interno.

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

otIp6SetEnabled

otError otIp6SetEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Esta função ativa / desativa a interface IPv6.

Chame esta função para habilitar / desabilitar a comunicação IPv6.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância OpenThread.
[in] aEnabled
TRUE para habilitar IPv6, FALSE caso contrário.
Valores Retornados
OT_ERROR_NONE
A interface IPv6 foi ativada / desativada com sucesso.
OT_ERROR_INVALID_STATE
A interface IPv6 não está disponível porque o dispositivo está operando no modo de link bruto (aplicável apenas quando o recurso OPENTHREAD_CONFIG_LINK_RAW_ENABLE está ativado).

otIp6SetMeshLocalIid

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

Esta função define o IID local da malha (para fins de teste).

Disponível apenas quando OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE está ativado.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância OpenThread.
[in] aIid
Um ponteiro para o IID local da malha a ser definido.
Valores Retornados
OT_ERROR_NONE
Configure com sucesso o IID local da malha.
OT_ERROR_INVALID_STATE
Os protocolos de thread estão ativados.

otIp6SetMulticastPromiscuousEnabled

void otIp6SetMulticastPromiscuousEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Habilite o modo promíscuo multicast na interface Thread.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância OpenThread.
[in] aEnabled
TRUE para habilitar o modo Promiscuous Multicast, FALSE caso contrário.
Veja também:
otIp6IsMulticastPromiscuousEnabled

otIp6SetReceiveCallback

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

Esta função registra um retorno de chamada para fornecer datagramas IPv6 recebidos.

Por padrão, esse retorno de chamada não passa no tráfego de controle de thread. Consulte otIp6SetReceiveFilterEnabled () para alterar a configuração do filtro de tráfego de controle de thread.

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

otIp6SetReceiveFilterEnabled

void otIp6SetReceiveFilterEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Esta função define se o tráfego de controle de thread é filtrado ao entregar datagramas IPv6 por meio do retorno de chamada especificado em otIp6SetReceiveCallback () .

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

otIp6SetSlaacEnabled

void otIp6SetSlaacEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Esta função ativa / desativa o módulo SLAAC.

Esta função requer que o recurso de tempo de construção OPENTHREAD_CONFIG_IP6_SLAAC_ENABLE seja ativado.

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

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

otIp6SetSlaacPrefixFilter

void otIp6SetSlaacPrefixFilter(
  otInstance *aInstance,
  otIp6SlaacPrefixFilter aFilter
)

Esta função define o manipulador de filtro do módulo SLAAC.

Esta função requer que o recurso de tempo de construção OPENTHREAD_CONFIG_IP6_SLAAC_ENABLE seja ativado.

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

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

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

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância OpenThread.
[in] aFilter
Um ponteiro para o manipulador de filtro de prefixo SLAAC ou NULL para desabilitar a filtragem.

otIp6SockAddrToString

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

Esta função converte um determinado endereço de socket IPv6 em uma string legível por humanos.

A string de endereço de soquete IPv6 é formatada como "[

]: "onde`
é mostrado como 16 valores hexadecimais separados por ':' e é o número da porta em formato decimal (ou seja, "[% x:% x: ...:% x]:% u")

Se a string resultante não couber em aBuffer (dentro de seus caracteres aSize ), a string será truncada, mas a string gerada sempre terá terminação nula.

Detalhes
Parâmetros
[in] aSockAddr
Um ponteiro para um endereço de socket IPv6 (NÃO DEVE ser NULL).
[out] aBuffer
Um ponteiro para um array char para produzir a string (NÃO DEVE ser NULL).
[in] aSize
O tamanho de aBuffer (em bytes). Recomendado para usar OT_IP6_SOCK_ADDR_STRING_SIZE .

otIp6SubscribeMulticastAddress

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

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

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

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância OpenThread.
[in] aAddress
Um ponteiro para um endereço IP.
Valores Retornados
OT_ERROR_NONE
Inscrito com sucesso no endereço de multicast da interface de rede.
OT_ERROR_ALREADY
O endereço multicast já está inscrito.
OT_ERROR_INVALID_ARGS
O endereço IP indicado por aAddress é um endereço inválido.
OT_ERROR_INVALID_STATE
A interface de rede não está ativa.
OT_ERROR_NO_BUFS
A interface de rede já está armazenando os endereços multicast externos máximos permitidos.

otIp6UnsubscribeMulticastAddress

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

Cancele a assinatura da interface Thread para um endereço multicast de interface de rede.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância OpenThread.
[in] aAddress
Um ponteiro para um endereço IP.
Valores Retornados
OT_ERROR_NONE
Cancelamento da assinatura do endereço multicast da interface de rede com êxito.
OT_ERROR_INVALID_ARGS
O endereço IP indicado por aAddress é um endereço 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_IID_SIZE

 OT_IP6_IID_SIZE 8

Tamanho de um identificador de interface IPv6 (bytes)

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.