Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

IPv6

Questo modulo include funzioni che controllano la comunicazione IPv6.

Riepilogo

Enumerazioni

anonymous enum{
  OT_ADDRESS_ORIGIN_THREAD = 0,
  OT_ADDRESS_ORIGIN_SLAAC = 1,
  OT_ADDRESS_ORIGIN_DHCPV6 = 2,
  OT_ADDRESS_ORIGIN_MANUAL = 3
}
enum
Origini indirizzo IPv6.
anonymous enum{
  OT_ECN_NOT_CAPABLE = 0x0,
  OT_ECN_CAPABLE_0 = 0x2,
  OT_ECN_CAPABLE_1 = 0x1,
  OT_ECN_MARKED = 0x3
}
enum
Stati ECN, rappresentati come nell'intestazione IP.
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
Numeri di protocollo Internet.

Defin

otBorderRoutingCounters Typedef
Questa struttura rappresenta i contatori dei pacchetti inoltrati mediante routing della frontiera.
otIp6Address Typedef
struct otIp6Address
Questa struttura rappresenta un indirizzo IPv6.
otIp6AddressCallback)(const otIp6AddressInfo *aAddressInfo, bool aIsAdded, void *aContext) Typedef
void(*
Il puntatore di questa funzione viene richiamato quando viene aggiunto o rimosso un indirizzo IPv6 interno.
otIp6AddressComponents Typedef
Questa struttura rappresenta i componenti di un indirizzo IPv6.
otIp6AddressInfo Typedef
otIp6InterfaceIdentifier Typedef
Questa struttura rappresenta l'identificatore di interfaccia di un indirizzo IPv6.
otIp6NetworkPrefix Typedef
Questa struttura rappresenta il prefisso di rete di un indirizzo IPv6 (i 64 bit più significativi dell'indirizzo).
otIp6Prefix Typedef
struct otIp6Prefix
Questa struttura rappresenta un prefisso IPv6.
otIp6ReceiveCallback)(otMessage *aMessage, void *aContext) Typedef
void(*
Il puntatore della funzione viene richiamato alla ricezione di un datagram IPv6.
otIp6RegisterMulticastListenersCallback)(void *aContext, otError aError, uint8_t aMlrStatus, const otIp6Address *aFailedAddresses, uint8_t aFailedAddressNum) Typedef
void(*
Il puntatore della funzione viene richiamato con i risultati di otIp6RegisterMulticastListeners.
otIp6SlaacPrefixFilter)(otInstance *aInstance, const otIp6Prefix *aPrefix) Typedef
bool(*
Il puntatore di questa funzione consente all'utente di filtrare i prefissi e non consente l'aggiunta di un indirizzo SLAAC basato su un prefisso.
otMessageInfo Typedef
struct otMessageInfo
Questa struttura rappresenta gli indirizzi socket IPv6 locali e peer.
otNetifAddress Typedef
Questa struttura rappresenta un indirizzo di rete dell'interfaccia di rete IPv6.
otNetifMulticastAddress Typedef
Questa struttura rappresenta un indirizzo multicast dell'interfaccia di rete IPv6.
otPacketsAndBytes Typedef
Questa struttura rappresenta i contatori per pacchetti e byte.
otSockAddr Typedef
struct otSockAddr
Questa struttura rappresenta un indirizzo socket IPv6.

Variabili

OT_TOOL_PACKED_END

Functions

otIp6AddUnicastAddress(otInstance *aInstance, const otNetifAddress *aAddress)
Aggiunge un indirizzo di interfaccia di rete all'interfaccia Thread.
otIp6AddUnsecurePort(otInstance *aInstance, uint16_t aPort)
Questa funzione aggiunge una porta all'elenco delle porte non protette consentito.
otIp6AddressFromString(const char *aString, otIp6Address *aAddress)
Questa funzione converte una stringa di indirizzo IPv6 leggibile in una rappresentazione binaria.
otIp6AddressToString(const otIp6Address *aAddress, char *aBuffer, uint16_t aSize)
void
Questa funzione converte un dato indirizzo IPv6 in una stringa leggibile.
otIp6ArePrefixesEqual(const otIp6Prefix *aFirst, const otIp6Prefix *aSecond)
bool
Verifica se due prefissi IPv6 sono uguali.
otIp6GetBorderRoutingCounters(otInstance *aInstance)
Visualizza i contatori per l'instradamento delle frontiere.
otIp6GetMulticastAddresses(otInstance *aInstance)
Recupera l'elenco di indirizzi multicast IPv6 abbonati all'interfaccia Thread.
otIp6GetPrefix(const otIp6Address *aAddress, uint8_t aLength, otIp6Prefix *aPrefix)
void
Questo metodo riceve un prefisso con aLength da aAddress.
otIp6GetUnicastAddresses(otInstance *aInstance)
const otNetifAddress *
Visualizza l'elenco di indirizzi IPv6 assegnati all'interfaccia Thread.
otIp6GetUnsecurePorts(otInstance *aInstance, uint8_t *aNumEntries)
const uint16_t *
Questa funzione restituisce un puntatore all'elenco delle porte non sicure.
otIp6IsAddressEqual(const otIp6Address *aFirst, const otIp6Address *aSecond)
bool
Verifica se due indirizzi IPv6 sono uguali.
otIp6IsAddressUnspecified(const otIp6Address *aAddress)
bool
Questa funzione indica se un determinato indirizzo IPv6 è l'indirizzo non specificato.
otIp6IsEnabled(otInstance *aInstance)
bool
Indica se l'interfaccia IPv6 è attiva o meno.
otIp6IsMulticastPromiscuousEnabled(otInstance *aInstance)
bool
Verifica se la modalità promiscua multicast è attiva nell'interfaccia di Thread.
otIp6IsReceiveFilterEnabled(otInstance *aInstance)
bool
Questa funzione indica se il traffico di controllo del thread viene filtrato o meno durante la distribuzione dei datagrammi IPv6 tramite il callback specificato in otIp6SetReceivedCallback().
otIp6IsSlaacEnabled(otInstance *aInstance)
bool
Questa funzione indica se il modulo SLAAC è abilitato.
otIp6NewMessage(otInstance *aInstance, const otMessageSettings *aSettings)
Alloca un nuovo buffer di messaggi per l'invio di un messaggio IPv6.
otIp6NewMessageFromBuffer(otInstance *aInstance, const uint8_t *aData, uint16_t aDataLength, const otMessageSettings *aSettings)
Alloca un nuovo buffer di messaggi e scrivi il datagram IPv6 nel buffer di messaggi per l'invio di un messaggio IPv6.
otIp6PrefixMatch(const otIp6Address *aFirst, const otIp6Address *aSecond)
uint8_t
Questa funzione restituisce la lunghezza della corrispondenza del prefisso (bit) per due indirizzi IPv6.
otIp6PrefixToString(const otIp6Prefix *aPrefix, char *aBuffer, uint16_t aSize)
void
Questa funzione converte un determinato prefisso IPv6 in una stringa leggibile.
otIp6ProtoToString(uint8_t aIpProto)
const char *
Questa funzione converte un determinato numero di protocollo IP in una stringa leggibile.
otIp6RegisterMulticastListeners(otInstance *aInstance, const otIp6Address *aAddresses, uint8_t aAddressNum, const uint32_t *aTimeout, otIp6RegisterMulticastListenersCallback aCallback, void *aContext)
Questa funzione registra il listener multicast sul router backbone principale.
otIp6RemoveAllUnsecurePorts(otInstance *aInstance)
void
Questa funzione rimuove tutte le porte dall'elenco delle porte non sicure consentite.
otIp6RemoveUnicastAddress(otInstance *aInstance, const otIp6Address *aAddress)
Rimuove un indirizzo di interfaccia di rete dall'interfaccia di Thread.
otIp6RemoveUnsecurePort(otInstance *aInstance, uint16_t aPort)
Questa funzione rimuove una porta dall'elenco delle porte non sicure consentite.
otIp6ResetBorderRoutingCounters(otInstance *aInstance)
void
Reimposta i contatori per il routing dei confini.
otIp6SelectSourceAddress(otInstance *aInstance, otMessageInfo *aMessageInfo)
Questa funzione esegue la selezione dell'indirizzo di origine di OpenThread.
otIp6Send(otInstance *aInstance, otMessage *aMessage)
Questa funzione invia un datagram IPv6 tramite l'interfaccia Thread.
otIp6SetAddressCallback(otInstance *aInstance, otIp6AddressCallback aCallback, void *aCallbackContext)
void
Questa funzione registra un callback per notificare le modifiche interne all'indirizzo IPv6.
otIp6SetEnabled(otInstance *aInstance, bool aEnabled)
Visualizza o abbassa l'interfaccia IPv6.
otIp6SetMeshLocalIid(otInstance *aInstance, const otIp6InterfaceIdentifier *aIid)
Questa funzione imposta il mesh IID locale (a scopo di test).
otIp6SetMulticastPromiscuousEnabled(otInstance *aInstance, bool aEnabled)
void
Attiva o disattiva la modalità promiscua multicast sull'interfaccia Thread.
otIp6SetReceiveCallback(otInstance *aInstance, otIp6ReceiveCallback aCallback, void *aCallbackContext)
void
Questa funzione registra un callback per fornire i datagrammi IPv6 ricevuti.
otIp6SetReceiveFilterEnabled(otInstance *aInstance, bool aEnabled)
void
Questa funzione stabilisce se il traffico di controllo del thread viene o meno filtrato durante la distribuzione dei datagrammi IPv6 tramite il callback specificato in otIp6SetReceivedCallback().
otIp6SetSlaacEnabled(otInstance *aInstance, bool aEnabled)
void
Questa funzione abilita/disabilita il modulo SLAAC.
otIp6SetSlaacPrefixFilter(otInstance *aInstance, otIp6SlaacPrefixFilter aFilter)
void
Questa funzione imposta il gestore dei filtri del modulo SLAAC.
otIp6SockAddrToString(const otSockAddr *aSockAddr, char *aBuffer, uint16_t aSize)
void
Questa funzione converte un dato indirizzo socket IPv6 in una stringa leggibile.
otIp6SubscribeMulticastAddress(otInstance *aInstance, const otIp6Address *aAddress)
Iscrive l'interfaccia Thread a un indirizzo multicast di interfaccia di rete.
otIp6UnsubscribeMulticastAddress(otInstance *aInstance, const otIp6Address *aAddress)
Annulla l'iscrizione dell'interfaccia Thread a un indirizzo multicast dell'interfaccia di rete.

Struttura

otBorderRoutingCounters

Questa struttura rappresenta i contatori dei pacchetti inoltrati mediante routing della frontiera.

otIp6Address

Questa struttura rappresenta un indirizzo IPv6.

otIp6AddressComponents

Questa struttura rappresenta i componenti di un indirizzo IPv6.

otIp6AddressInfo

Questa struttura rappresenta le informazioni sull'indirizzo IPv6.

otIp6InterfaceIdentifier

Questa struttura rappresenta l'identificatore di interfaccia di un indirizzo IPv6.

otIp6NetworkPrefix

Questa struttura rappresenta il prefisso di rete di un indirizzo IPv6 (i 64 bit più significativi dell'indirizzo).

Prefisso otIp6

Questa struttura rappresenta un prefisso IPv6.

otMessageInfo

Questa struttura rappresenta gli indirizzi socket IPv6 locali e peer.

Indirizzo OtNetif

Questa struttura rappresenta un indirizzo di rete dell'interfaccia di rete IPv6.

Indirizzo OtNetifMulticast

Questa struttura rappresenta un indirizzo multicast dell'interfaccia di rete IPv6.

OtPacketsAndBytes

Questa struttura rappresenta i contatori per pacchetti e byte.

SotSock

Questa struttura rappresenta un indirizzo socket IPv6.

Unioni

otIp6InterfaceIdentifier::OT_TOOL_PACKED_FIELD

Enumerazioni

enumerazione anonima

 anonymous enum

Origini indirizzo IPv6.

Proprietà
OT_ADDRESS_ORIGIN_DHCPV6

Indirizzo assegnato DHCPv6.

OT_ADDRESS_ORIGIN_MANUAL

Indirizzo assegnato manualmente.

OT_ADDRESS_ORIGIN_SLAAC

Indirizzo SLAAC assegnato.

OT_ADDRESS_ORIGIN_THREAD

Indirizzo del thread assegnato (ALOC, RLOC, MLEID e così via)

enumerazione anonima

 anonymous enum

Stati ECN, rappresentati come nell'intestazione IP.

Proprietà
OT_ECN_CAPABLE_0

ECT(0)

OT_ECN_CAPABLE_1

ECT(1)

OT_ECN_MARKED

Si è verificata una congestione del traffico (CE)

OT_ECN_NOT_CAPABLE

Non ECC.

enumerazione anonima

 anonymous enum

Numeri di protocollo Internet.

Proprietà
OT_IP6_PROTO_DST_OPTS

Opzioni di destinazione per IPv6.

OT_IP6_PROTO_FRAGMENT

Intestazione del frammento per IPv6.

OT_IP6_PROTO_HOP_OPTS

Opzione IPv6 hop-by-hop.

OT_IP6_PROTO_ICMP6

ICMP per IPv6.

OT_IP6_PROTO_IP6

Incapsulamento IPv6.

OT_IP6_PROTO_NONE

Nessuna intestazione successiva per IPv6.

OT_IP6_PROTO_ROUTING

Intestazione di routing per IPv6.

OT_IP6_PROTO_TCP

Protocollo di controllo della trasmissione.

OT_IP6_PROTO_UDP

Datagram utente.

Defin

OtBorderRoutingCounters

struct otBorderRoutingCounters otBorderRoutingCounters

Questa struttura rappresenta i contatori dei pacchetti inoltrati mediante routing della frontiera.

Indirizzo otIp6

struct otIp6Address otIp6Address

Questa struttura rappresenta un indirizzo IPv6.

otIp6CallCall

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

Il puntatore di questa funzione viene richiamato quando viene aggiunto o rimosso un indirizzo IPv6 interno.

Dettagli
Parametri
[in] aAddressInfo
Un puntatore alle informazioni sull'indirizzo IPv6.
[in] aIsAdded
TRUE se è stato aggiunto aAddress, FALSE se aAddress è stato rimosso.
[in] aContext
Un puntatore al contesto specifico dell'applicazione.

otIp6AddressComponents

struct otIp6AddressComponents otIp6AddressComponents

Questa struttura rappresenta i componenti di un indirizzo IPv6.

otIp6AddressInfo

struct otIp6AddressInfo otIp6AddressInfo

otIp6InterfaceIdentifier

struct otIp6InterfaceIdentifier otIp6InterfaceIdentifier

Questa struttura rappresenta l'identificatore di interfaccia di un indirizzo IPv6.

otIp6PrefissoRete

struct otIp6NetworkPrefix otIp6NetworkPrefix

Questa struttura rappresenta il prefisso di rete di un indirizzo IPv6 (i 64 bit più significativi dell'indirizzo).

Prefisso otIp6

struct otIp6Prefix otIp6Prefix

Questa struttura rappresenta un prefisso IPv6.

otIp6Ricevi richiamata

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

Il puntatore della funzione viene richiamato alla ricezione di un datagram IPv6.

Dettagli
Parametri
[in] aMessage
Un puntatore al buffer dei messaggi contenente il datagram IPv6 ricevuto. Questa funzione trasferisce la proprietà di aMessage al destinatario del callback. Il messaggio dovrebbe essere liberato dal destinatario del callback dopo che è stato elaborato (vedi otMessageFree()).
[in] aContext
Un puntatore al contesto specifico dell'applicazione.

otIp6RegisterMulticastListenersCallback

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

Il puntatore della funzione viene richiamato con i risultati di otIp6RegisterMulticastListeners.

Dettagli
Parametri
[in] aContext
Un puntatore al contesto dell'utente.
[in] aError
OT_ERROR_NONE quando ha inviato MLR.req e ha ricevuto MLR.rsp, OT_ERROR_ANSWER_TIMEOUT quando non è riuscito a ricevere MLR.rsp, OT_ERROR_PARSE quando non è stato possibile analizzare MLR.rsp.
[in] aMlrStatus
Lo stato della registrazione del listener multicast quando aError è OT_ERROR_NONE.
[in] aFailedAddresses
Un puntatore agli indirizzi IPv6 non riusciti quando aError è OT_ERROR_NONE.
[in] aFailedAddressNum
Il numero di indirizzi IPv6 non riusciti quando aError è OT_ERROR_NONE.
Vedi anche:
otIp6RegisterMulticastListeners

otIp6SlaacPrefixFilter

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

Il puntatore di questa funzione consente all'utente di filtrare i prefissi e non consente l'aggiunta di un indirizzo SLAAC basato su un prefisso.

otIp6SetSlaacPrefixFilter() può essere utilizzato per impostare il gestore dei filtri. Il gestore di filtri viene richiamato dal modulo SLAAC quando sta per aggiungere un indirizzo SLAAC in base a un prefisso. Il valore di ritorno booleano determina se l'indirizzo è filtrato (non aggiunto) o meno.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aPrefix
Un puntatore al prefisso per il quale sta per essere aggiunto l'indirizzo SLAAC.
Valori restituiti
TRUE
Indica che l'indirizzo SLAAC basato sul prefisso deve essere filtrato e NON aggiunto.
FALSE
Indica che deve essere aggiunto l'indirizzo SLAAC basato sul prefisso.

OtMessageInfo

struct otMessageInfo otMessageInfo

Questa struttura rappresenta gli indirizzi socket IPv6 locali e peer.

Indirizzo OtNetif

struct otNetifAddress otNetifAddress

Questa struttura rappresenta un indirizzo di rete dell'interfaccia di rete IPv6.

otNetifMulticastAddress

struct otNetifMulticastAddress otNetifMulticastAddress

Questa struttura rappresenta un indirizzo multicast dell'interfaccia di rete IPv6.

OtPacketsAndBytes

struct otPacketsAndBytes otPacketsAndBytes

Questa struttura rappresenta i contatori per pacchetti e byte.

SotSock

struct otSockAddr otSockAddr

Questa struttura rappresenta un indirizzo socket IPv6.

Variabili

OT_TOOL_PACKED_END

OT_TOOL_PACKED_BEGIN struct otIp6InterfaceIdentifier OT_TOOL_PACKED_END

Functions

otIp6AggiungiUnicastAddress

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

Aggiunge un indirizzo di interfaccia di rete all'interfaccia Thread.

L'istanza trasmessa aAddress viene copiata dall'interfaccia Thread. L'interfaccia Thread supporta solo un numero fisso di indirizzi unicast aggiunti esternamente. Leggi i OPENTHREAD_CONFIG_IP6_MAX_EXT_UCAST_ADDRS.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aAddress
Un puntatore a un indirizzo di interfaccia di rete.
Valori restituiti
OT_ERROR_NONE
L'indirizzo dell'interfaccia di rete è stato aggiunto (o aggiornato).
OT_ERROR_INVALID_ARGS
L'indirizzo IP indicato da aAddress è un indirizzo interno.
OT_ERROR_NO_BUFS
L'interfaccia di rete sta già archiviando il numero massimo di indirizzi esterni consentiti.

otIp6AggiungiUnsecurePort

otError otIp6AddUnsecurePort(
  otInstance *aInstance,
  uint16_t aPort
)

Questa funzione aggiunge una porta all'elenco delle porte non protette consentito.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aPort
Il valore della porta.
Valori restituiti
OT_ERROR_NONE
La porta è stata aggiunta all'elenco delle porte non sicure consentite.
OT_ERROR_INVALID_ARGS
La porta non è valida (il valore 0 è riservato per uso interno).
OT_ERROR_NO_BUFS
L'elenco di porte non sicure è completo.

otIp6AddressFromString

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

Questa funzione converte una stringa di indirizzo IPv6 leggibile in una rappresentazione binaria.

Dettagli
Parametri
[in] aString
Un puntatore a una stringa terminata con NULL.
[out] aAddress
Un puntatore a un indirizzo IPv6.
Valori restituiti
OT_ERROR_NONE
Stringa analizzata correttamente.
OT_ERROR_INVALID_ARGS
Impossibile analizzare la stringa.

otIp6AddressToString

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

Questa funzione converte un dato indirizzo IPv6 in una stringa leggibile.

La stringa dell'indirizzo IPv6 è formattata come 16 valori esadecimali separati da ':' (ovvero "%x:%x:%x:...:%x").

Se la stringa risultante non rientra in aBuffer (nei suoi aSize caratteri), la stringa verrà troncata ma la stringa restituita è sempre null-terminata.

Dettagli
Parametri
[in] aAddress
Un puntatore a un indirizzo IPv6 (NON DEVE essere NULL).
[out] aBuffer
Un puntatore a un array di caratteri per generare la stringa (NON DEVE essere NULL).
[in] aSize
Le dimensioni di aBuffer (in byte). È consigliabile utilizzare OT_IP6_ADDRESS_STRING_SIZE.

otIp6ArePrefixesEqual

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

Verifica se due prefissi IPv6 sono uguali.

Dettagli
Parametri
[in] aFirst
Un puntatore al primo prefisso IPv6 da confrontare.
[in] aSecond
Un puntatore al secondo prefisso IPv6 da confrontare.
Valori restituiti
TRUE
I due prefissi IPv6 sono gli stessi.
FALSE
I due prefissi IPv6 non sono uguali.

otIp6GetBorderRoutingCounters

const otBorderRoutingCounters * otIp6GetBorderRoutingCounters(
  otInstance *aInstance
)

Visualizza i contatori per l'instradamento delle frontiere.

Questa funzione richiede l'attivazione della funzionalità al momento della build OPENTHREAD_CONFIG_IP6_BR_COUNTERS_ENABLE.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
Restituisce
Un puntatore ai contatori del routing della frontiera.

otIp6GetMulticastAddresses

const otNetifMulticastAddress * otIp6GetMulticastAddresses(
  otInstance *aInstance
)

Recupera l'elenco di indirizzi multicast IPv6 abbonati all'interfaccia Thread.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
Restituisce
Un puntatore al primo indirizzo multicast di interfaccia di rete.

otIp6GetPrefix

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

Questo metodo riceve un prefisso con aLength da aAddress.

Dettagli
Parametri
[in] aAddress
Un puntatore a un indirizzo IPv6.
[in] aLength
La lunghezza del prefisso in bit.
[out] aPrefix
Un puntatore per restituire il prefisso IPv6.

otIp6GetUnicastAddresses

const otNetifAddress * otIp6GetUnicastAddresses(
  otInstance *aInstance
)

Visualizza l'elenco di indirizzi IPv6 assegnati all'interfaccia Thread.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
Restituisce
Un puntatore al primo indirizzo di interfaccia di rete.

otIp6GetUnsecurePorts

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

Questa funzione restituisce un puntatore all'elenco delle porte non sicure.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[out] aNumEntries
Il numero di voci nell'elenco.
Restituisce
Un puntatore all'elenco di porte non sicure.

otIp6IsAddressEqual

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

Verifica se due indirizzi IPv6 sono uguali.

Dettagli
Parametri
[in] aFirst
Un puntatore al primo indirizzo IPv6 da confrontare.
[in] aSecond
Un puntatore al secondo indirizzo IPv6 da confrontare.
Valori restituiti
TRUE
I due indirizzi IPv6 sono gli stessi.
FALSE
I due indirizzi IPv6 non sono uguali.

otIp6IsAddressNon specificato

bool otIp6IsAddressUnspecified(
  const otIp6Address *aAddress
)

Questa funzione indica se un determinato indirizzo IPv6 è l'indirizzo non specificato.

Dettagli
Parametri
[in] aAddress
Un puntatore a un indirizzo IPv6.
Valori restituiti
TRUE
Se l'indirizzo IPv6 è l'indirizzo non specificato.
FALSE
Se l'indirizzo IPv6 non è l'indirizzo non specificato.

otIp6IsEnabled

bool otIp6IsEnabled(
  otInstance *aInstance
)

Indica se l'interfaccia IPv6 è attiva o meno.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
Valori restituiti
TRUE
L'interfaccia IPv6 è abilitata.
FALSE
L'interfaccia IPv6 è disabilitata.

otIp6IsMulticastPromiscuousEnabled

bool otIp6IsMulticastPromiscuousEnabled(
  otInstance *aInstance
)

Verifica se la modalità promiscua multicast è attiva nell'interfaccia di Thread.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
Vedi anche:
otIp6SetMulticastPromiscuousEnabled

otIp6IsReceivedFilterEnabled

bool otIp6IsReceiveFilterEnabled(
  otInstance *aInstance
)

Questa funzione indica se il traffico di controllo del thread viene filtrato o meno durante la distribuzione dei datagrammi IPv6 tramite il callback specificato in otIp6SetReceivedCallback().

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
Restituisce
TRUE se il traffico di controllo del thread viene filtrato, FALSE in caso contrario.
Vedi anche:
otIp6SetReceivedCallback
otIp6SetReceivedFilterEnabled

otIp6IsSlaacEnabled

bool otIp6IsSlaacEnabled(
  otInstance *aInstance
)

Questa funzione indica se il modulo SLAAC è abilitato.

Questa funzione richiede l'attivazione della funzionalità al momento della build OPENTHREAD_CONFIG_IP6_SLAAC_ENABLE.

Dettagli
Valori restituiti
TRUE
Il modulo SLAAC è abilitato.
FALSE
Il modulo SLAAC è disabilitato.

otIp6NuovoMessaggio

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

Alloca un nuovo buffer di messaggi per l'invio di un messaggio IPv6.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aSettings
Un puntatore alle impostazioni del messaggio o NULL per configurare le impostazioni predefinite.
Restituisce
Un puntatore al buffer dei messaggi o a NULL se non sono disponibili buffer di messaggio o parametri non validi.
Vedi anche:
otMessageFree

otIp6NuovoMessaggioDaBuffer

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

Alloca un nuovo buffer di messaggi e scrivi il datagram IPv6 nel buffer di messaggi per l'invio di un messaggio IPv6.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aData
Un puntatore al buffer di dati da IPv6.
[in] aDataLength
Le dimensioni del buffer di dati IPv6 indicati da aData.
[in] aSettings
Un puntatore alle impostazioni del messaggio o NULL per configurare le impostazioni predefinite.
Restituisce
Un puntatore al messaggio o NULL se sono disponibili intestazioni IPv6 non corrette o buffer di messaggi insufficienti.
Vedi anche:
otMessageFree

otIp6PrefixMatch

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

Questa funzione restituisce la lunghezza della corrispondenza del prefisso (bit) per due indirizzi IPv6.

Dettagli
Parametri
[in] aFirst
Un puntatore al primo indirizzo IPv6.
[in] aSecond
Un puntatore al secondo indirizzo IPv6.
Restituisce
La lunghezza della corrispondenza del prefisso in bit.

otIp6PrefissoToString

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

Questa funzione converte un determinato prefisso IPv6 in una stringa leggibile.

La stringa dell'indirizzo IPv6 è nel formato "%x:%x:%x:...[::]/plen".

Se la stringa risultante non rientra in aBuffer (nei suoi aSize caratteri), la stringa verrà troncata ma la stringa restituita è sempre null-terminata.

Dettagli
Parametri
[in] aPrefix
Un puntatore a un prefisso IPv6 (NON DEVE essere NULL).
[out] aBuffer
Un puntatore a un array di caratteri per generare la stringa (NON DEVE essere NULL).
[in] aSize
Le dimensioni di aBuffer (in byte). È consigliabile utilizzare OT_IP6_PREFIX_STRING_SIZE.

otIp6ProtoToString

const char * otIp6ProtoToString(
  uint8_t aIpProto
)

Questa funzione converte un determinato numero di protocollo IP in una stringa leggibile.

Dettagli
Parametri
[in] aIpProto
Un numero di protocollo IP (enumerazione di OT_IP6_PROTO_*).
Restituisce
Una stringa che rappresenta aIpProto.

otIp6RegisterMulticastListener

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

Questa funzione registra il listener multicast sul router backbone principale.

Nota: disponibile solo se sono attivati sia OPENTHREAD_CONFIG_TMF_PROXY_MLR_ENABLE che OPENTHREAD_CONFIG_COMMISSIONER_ENABLE)

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aAddresses
Un array di indirizzi multicast da registrare.
[in] aAddressNum
Il numero di indirizzi multicast da registrare (0 se aAddresses è NULL).
[in] aTimeout
Un puntatore al valore di timeout (in secondi) da includere in MLR.req. Un valore di timeout pari a 0 rimuove il listener multicast corrispondente. Se NULL, MLR.req non avrebbe alcun valore predefinito di Timeout Tlv.
[in] aCallback
Un puntatore alla funzione di callback.
[in] aContext
Un puntatore al contesto dell'utente.
Valori restituiti
OT_ERROR_NONE
MLR.req inviato correttamente. aCallback verrà chiamato se il metodo restituisce OT_ERROR_NONE.
OT_ERROR_BUSY
Se era in corso una registrazione precedente.
OT_ERROR_INVALID_ARGS
Se uno o più argomenti non sono validi.
OT_ERROR_INVALID_STATE
Se il dispositivo non si trovava in uno stato valido per inviare MLR.req (ad es. Commissioner non avviato, router backbone principale non trovato).
OT_ERROR_NO_BUFS
Se i buffer di messaggi sono insufficienti.
Vedi anche:
otIp6RegisterMulticastListenersCallback

otIp6RimuoviTuttelePorteNonProtezione

void otIp6RemoveAllUnsecurePorts(
  otInstance *aInstance
)

Questa funzione rimuove tutte le porte dall'elenco delle porte non sicure consentite.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.

otIp6RimuoviUnicastAddress

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

Rimuove un indirizzo di interfaccia di rete dall'interfaccia di Thread.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aAddress
Un puntatore a un indirizzo IP.
Valori restituiti
OT_ERROR_NONE
Indirizzo di rete della rete rimosso.
OT_ERROR_INVALID_ARGS
L'indirizzo IP indicato da aAddress è un indirizzo interno.
OT_ERROR_NOT_FOUND
Impossibile trovare l'indirizzo IP indicato da aAddress.

otIp6RimuoviUnPortPort

otError otIp6RemoveUnsecurePort(
  otInstance *aInstance,
  uint16_t aPort
)

Questa funzione rimuove una porta dall'elenco delle porte non sicure consentite.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aPort
Il valore della porta.
Valori restituiti
OT_ERROR_NONE
La porta è stata rimossa dall'elenco delle porte non sicure consentite.
OT_ERROR_INVALID_ARGS
La porta non è valida (il valore 0 è riservato per uso interno).
OT_ERROR_NOT_FOUND
La porta non è stata trovata nell'elenco delle porte non sicure.

otIp6ResetBorderRoutingCounters

void otIp6ResetBorderRoutingCounters(
  otInstance *aInstance
)

Reimposta i contatori per il routing dei confini.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.

otIp6SelectSourceAddress

otError otIp6SelectSourceAddress(
  otInstance *aInstance,
  otMessageInfo *aMessageInfo
)

Questa funzione esegue la selezione dell'indirizzo di origine di OpenThread.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in,out] aMessageInfo
Un puntatore alle informazioni del messaggio.
Valori restituiti
OT_ERROR_NONE
Trovato un indirizzo di origine e compilato con mSockAddr di aMessageInfo.
OT_ERROR_NOT_FOUND
Non è stato trovato nessun indirizzo di origine. Il campo aMessageInfo non è stato modificato.

otIp6Invia

otError otIp6Send(
  otInstance *aInstance,
  otMessage *aMessage
)

Questa funzione invia un datagram IPv6 tramite l'interfaccia Thread.

Quando effettua la chiamata, il chiamante trasferisce la proprietà di aMessage. OpenThread libera aMessage quando l'elaborazione viene completata, incluso quando viene restituito un valore diverso da OT_ERROR_NONE.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aMessage
Un puntatore al buffer dei messaggi contenente il datagram IPv6.
Valori restituiti
OT_ERROR_NONE
Il messaggio è stato elaborato.
OT_ERROR_DROP
Il messaggio è stato formattato correttamente, ma non è stato elaborato completamente a causa delle regole di elaborazione del pacchetto.
OT_ERROR_NO_BUFS
Impossibile allocare i buffer di messaggi necessari durante l'elaborazione del datagram.
OT_ERROR_NO_ROUTE
Nessun percorso per l'host.
OT_ERROR_INVALID_SOURCE_ADDRESS
L'indirizzo di origine non è valido, ad esempio un indirizzo anycast o un indirizzo multicast.
OT_ERROR_PARSE
È stata rilevata un'intestazione non valida durante l'elaborazione del messaggio.

otIp6SetCallCallback

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

Questa funzione registra un callback per notificare le modifiche interne all'indirizzo IPv6.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aCallback
Un puntatore a una funzione chiamata quando viene aggiunto o rimosso un indirizzo IPv6 interno. NULL per disattivare il callback.
[in] aCallbackContext
Un puntatore al contesto specifico dell'applicazione.

otIp6SetEnabled

otError otIp6SetEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Visualizza o abbassa l'interfaccia IPv6.

Chiama questa opzione per attivare o disattivare la comunicazione IPv6.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aEnabled
TRUE per abilitare IPv6, FALSE in caso contrario.
Valori restituiti
OT_ERROR_NONE
Visualizzazione dell'interfaccia IPv6 riuscita.
OT_ERROR_INVALID_STATE
L'interfaccia IPv6 non è disponibile perché il dispositivo funziona in modalità link non elaborato (applicabile solo quando la funzionalità OPENTHREAD_CONFIG_LINK_RAW_ENABLE è attivata).

otIp6SetMeshLocalIid

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

Questa funzione imposta il mesh IID locale (a scopo di test).

Disponibile solo quando OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE è attivato.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aIid
Un puntatore all'IID locale mesh da impostare.
Valori restituiti
OT_ERROR_NONE
Impostazione di IID locale mesh riuscita.
OT_ERROR_INVALID_STATE
I protocolli Thread sono abilitati.

otIp6SetMulticastPromiscuousEnabled

void otIp6SetMulticastPromiscuousEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Attiva o disattiva la modalità promiscua multicast sull'interfaccia Thread.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aEnabled
TRUE per abilitare la modalità Procastucast multicast, FALSE in caso contrario.
Vedi anche:
otIp6IsMulticastPromiscuousEnabled

otIp6SetRiceviCallback

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

Questa funzione registra un callback per fornire i datagrammi IPv6 ricevuti.

Per impostazione predefinita, questo callback non trasmette il traffico di controllo del thread. Vedi otIp6SetReceivedFilterEnabled() per modificare l'impostazione del filtro del traffico di controllo thread.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aCallback
Un puntatore a una funzione chiamata quando viene ricevuto un datagram IPv6 o NULL per disabilitare il callback.
[in] aCallbackContext
Un puntatore al contesto specifico dell'applicazione.
Vedi anche:
otIp6IsReceivedFilterEnabled
otIp6SetReceivedFilterEnabled

otIp6SetReceivedFilterEnabled

void otIp6SetReceiveFilterEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Questa funzione stabilisce se il traffico di controllo del thread viene o meno filtrato durante la distribuzione dei datagrammi IPv6 tramite il callback specificato in otIp6SetReceivedCallback().

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aEnabled
TRUE se il traffico di controllo del thread viene filtrato, FALSE in caso contrario.
Vedi anche:
otIp6SetReceivedCallback
otIsReceivedIp6FilterEnabled

otIp6SetSlaacEnabled

void otIp6SetSlaacEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Questa funzione abilita/disabilita il modulo SLAAC.

Questa funzione richiede l'attivazione della funzionalità al momento della build OPENTHREAD_CONFIG_IP6_SLAAC_ENABLE.

Quando il modulo SLAAC è attivato, gli indirizzi SLAAC (basati sui prefissi on-mesh nei dati di rete) vengono aggiunti all'interfaccia. Quando il modulo SLAAC viene disattivato, gli eventuali indirizzi SLAAC aggiunti in precedenza vengono rimossi.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aEnabled
TRUE per abilitare, FALSE per disabilitare.

otIp6SetSlaacPrefixFilter

void otIp6SetSlaacPrefixFilter(
  otInstance *aInstance,
  otIp6SlaacPrefixFilter aFilter
)

Questa funzione imposta il gestore dei filtri del modulo SLAAC.

Questa funzione richiede l'attivazione della funzionalità al momento della build OPENTHREAD_CONFIG_IP6_SLAAC_ENABLE.

Il gestore del filtro viene chiamato dal modulo SLAAC quando sta per aggiungere un indirizzo SLAAC basato su un prefisso per decidere se l'indirizzo deve essere aggiunto o meno.

Un gestore di filtri NULL disabilita i filtri e consente di aggiungere tutti gli indirizzi SLAAC.

Se questa funzione non viene richiamata, il filtro predefinito utilizzato dal modulo SLAAC sarà NULL (il filtro è disabilitato).

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aFilter
Un puntatore sul gestore di filtri dei prefissi SLAAC o NULL per disattivare i filtri.

otIp6SockAddrToString

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

Questa funzione converte un dato indirizzo socket IPv6 in una stringa leggibile.

La stringa dell'indirizzo socket IPv6 è formattata come [address]:port dove address è mostrato come 16 valori esadecimali separati da : e port è il numero di porta in formato decimale, ad esempio "[%x:%x:...:%x]:%u".

Se la stringa risultante non rientra in aBuffer (nei suoi aSize caratteri), la stringa verrà troncata ma la stringa restituita è sempre null-terminata.

Dettagli
Parametri
[in] aSockAddr
Un puntatore a un indirizzo socket IPv6 (NON DEVE essere NULL).
[out] aBuffer
Un puntatore a un array di caratteri per generare la stringa (NON DEVE essere NULL).
[in] aSize
Le dimensioni di aBuffer (in byte). È consigliabile utilizzare OT_IP6_SOCK_ADDR_STRING_SIZE.

otIp6IscrivitiMulticastAddress

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

Iscrive l'interfaccia Thread a un indirizzo multicast di interfaccia di rete.

Il passaggio nell'istanza aAddress verrà copiato dall'interfaccia Thread. L'interfaccia Thread supporta solo un numero fisso di indirizzi multicast aggiunti esternamente. Leggi i OPENTHREAD_CONFIG_IP6_MAX_EXT_MCAST_ADDRS.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aAddress
Un puntatore a un indirizzo IP.
Valori restituiti
OT_ERROR_NONE
Iscrizione al Networkcast Multicast Address completata.
OT_ERROR_ALREADY
L'indirizzo multicast è già abbonato.
OT_ERROR_INVALID_ARGS
L'indirizzo IP indicato da aAddress è un indirizzo multicast non valido.
OT_ERROR_REJECTED
L'indirizzo IP indicato da aAddress è un indirizzo multicast interno.
OT_ERROR_NO_BUFS
L'interfaccia di rete sta già memorizzando gli indirizzi multicast esterni massimi consentiti.

otIp6Annulla iscrizione a multicast

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

Annulla l'iscrizione dell'interfaccia Thread a un indirizzo multicast dell'interfaccia di rete.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aAddress
Un puntatore a un indirizzo IP.
Valori restituiti
OT_ERROR_NONE
Iscrizione all'indirizzo multicast dell'interfaccia di rete annullata.
OT_ERROR_REJECTED
L'indirizzo IP indicato da aAddress è un indirizzo interno.
OT_ERROR_NOT_FOUND
Impossibile trovare l'indirizzo IP indicato da aAddress.

Macro

OT_IP6_ADDRESS_SIZE

 OT_IP6_ADDRESS_SIZE 16

Dimensioni di un indirizzo IPv6 (byte)

OT_IP6_ADDRESS_STRING_SIZE

 OT_IP6_ADDRESS_STRING_SIZE 40

Dimensioni consigliate per la rappresentazione di stringhe di un indirizzo IPv6.

OT_IP6_IID_SIZE

 OT_IP6_IID_SIZE 8

Dimensioni di un identificatore interfaccia IPv6 (byte)

OT_IP6_MAX_MLR_INDIRIZZI

 OT_IP6_MAX_MLR_ADDRESSES 15

Numero massimo di indirizzi IPv6 supportati dalla registrazione del listener multicast.

OT_IP6_PREFIX_BITSIZE

 OT_IP6_PREFIX_BITSIZE (OT_IP6_PREFIX_SIZE * 8)

Dimensioni di un prefisso IPv6 (bit)

OT_IP6_PREFIX_SIZE

 OT_IP6_PREFIX_SIZE 8

Dimensioni di un prefisso IPv6 (byte)

OT_IP6_PREFIX_STRING_SIZE

 OT_IP6_PREFIX_STRING_SIZE 45

Dimensioni consigliate per la rappresentazione di stringa di un prefisso IPv6.

OT_IP6_SOCK_ADDR_STRING_SIZE

 OT_IP6_SOCK_ADDR_STRING_SIZE 48

Dimensioni consigliate per la rappresentazione di stringa di un indirizzo socket IPv6.

Risorse

Gli argomenti di riferimento dell'API OpenThread provengono dal codice sorgente, disponibile su GitHub. Per scoprire di più o per contribuire alla nostra documentazione, consulta le Risorse.