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 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.

Defdef

otIp6Address tipodef
struct otIp6Address
Questa struttura rappresenta un indirizzo IPv6.
otIp6AddressCallback)(const otIp6AddressInfo *aAddressInfo, bool aIsAdded, void *aContext) tipodef
void(*
Il puntatore di questa funzione viene chiamato quando viene aggiunto o rimosso un indirizzo IPv6 interno.
otIp6AddressComponents tipodef
Questa struttura rappresenta i componenti di un indirizzo IPv6.
otIp6AddressInfo tipodef
otIp6InterfaceIdentifier tipodef
Questa struttura rappresenta l'identificatore di interfaccia di un indirizzo IPv6.
otIp6NetworkPrefix tipodef
Questa struttura rappresenta il prefisso di rete di un indirizzo IPv6 (i 64 bit più significativi dell'indirizzo).
otIp6Prefix tipodef
struct otIp6Prefix
Questa struttura rappresenta un prefisso IPv6.
otIp6ReceiveCallback)(otMessage *aMessage, void *aContext) tipodef
void(*
Il puntatore di questa funzione viene chiamato quando si riceve un datagram IPv6.
otIp6RegisterMulticastListenersCallback)(void *aContext, otError aError, uint8_t aMlrStatus, const otIp6Address *aFailedAddresses, uint8_t aFailedAddressNum) tipodef
void(*
Questo puntatore funzione viene chiamato con i risultati di otIp6RegisterMulticastListeners.
otIp6SlaacPrefixFilter)(otInstance *aInstance, const otIp6Prefix *aPrefix) tipodef
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 tipodef
struct otMessageInfo
Questa struttura rappresenta gli indirizzi socket IPv6 locali e peer.
otNetifAddress tipodef
Questa struttura rappresenta un indirizzo unicast di interfaccia di rete IPv6.
otNetifMulticastAddress tipodef
Questa struttura rappresenta un indirizzo multicast IPv6.
otSockAddr tipodef
struct otSockAddr
Questa struttura rappresenta un indirizzo socket IPv6.

Variabili

OT_TOOL_PACKED_END

Functions

otIp6AddUnicastAddress(otInstance *aInstance, const otNetifAddress *aAddress)
Aggiungi un indirizzo di interfaccia di rete all'interfaccia di Thread.
otIp6AddUnsecurePort(otInstance *aInstance, uint16_t aPort)
Questa funzione aggiunge una porta all'elenco delle porte non protette consentite.
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 gli stessi.
otIp6GetMulticastAddresses(otInstance *aInstance)
Ottieni l'elenco di indirizzi multicast IPv6 iscritti all'interfaccia di Thread.
otIp6GetUnicastAddresses(otInstance *aInstance)
const otNetifAddress *
Recupera 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
Questa funzione indica se l'interfaccia IPv6 è attiva o meno.
otIp6IsMulticastPromiscuousEnabled(otInstance *aInstance)
bool
Controlla se la modalità procastu multicast è abilitata sull'interfaccia Thread.
otIp6IsReceiveFilterEnabled(otInstance *aInstance)
bool
Questa funzione indica se il traffico di controllo Thread viene filtrato o meno quando fornisce i datagrammi IPv6 tramite il callback specificato in otIp6SetReceiveCallback().
otIp6IsSlaacEnabled(otInstance *aInstance)
bool
Questa funzione indica se il modulo SLAAC è abilitato.
otIp6NewMessage(otInstance *aInstance, const otMessageSettings *aSettings)
Alloca un nuovo buffer 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 messaggio e scrivi il datagram IPv6 nel buffer di messaggio 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 dato 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 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)
Rimuovi 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.
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 inviare una notifica alle modifiche dell'indirizzo IPv6 interne.
otIp6SetEnabled(otInstance *aInstance, bool aEnabled)
Questa funzione permette di visualizzare l'interfaccia IPv6.
otIp6SetMeshLocalIid(otInstance *aInstance, const otIp6InterfaceIdentifier *aIid)
Questa funzione imposta il mesh ID locale (a scopo di test).
otIp6SetMulticastPromiscuousEnabled(otInstance *aInstance, bool aEnabled)
void
Attiva 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 determina se il traffico di controllo Thread viene filtrato o meno quando si consegnano i datagrammi IPv6 tramite il callback specificato in otIp6SetReceiveCallback().
otIp6SetSlaacEnabled(otInstance *aInstance, bool aEnabled)
void
Questa funzione abilita/disattiva il modulo SLAAC.
otIp6SetSlaacPrefixFilter(otInstance *aInstance, otIp6SlaacPrefixFilter aFilter)
void
Questa funzione imposta il gestore del filtro 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)
Iscriviti all'interfaccia Thread per un indirizzo multicast di interfaccia di rete.
otIp6UnsubscribeMulticastAddress(otInstance *aInstance, const otIp6Address *aAddress)
Annulla l'iscrizione dell'interfaccia Thread a un indirizzo multicast di interfaccia di rete.

Strutture

Indirizzo otIp6

Questa struttura rappresenta un indirizzo IPv6.

otIp6AddressComponents

Questa struttura rappresenta i componenti di un indirizzo IPv6.

otIp6AddressInfo

Questa struttura rappresenta le informazioni dell'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).

otIp6Prefix

Questa struttura rappresenta un prefisso IPv6.

Informazioni messaggio

Questa struttura rappresenta gli indirizzi socket IPv6 locali e peer.

Indirizzo OtNetif

Questa struttura rappresenta un indirizzo unicast di interfaccia di rete IPv6.

OtNetifMulticastAddress

Questa struttura rappresenta un indirizzo multicast IPv6.

otSockAddr

Questa struttura rappresenta un indirizzo socket IPv6.

Sindacati

otIp6InterfaceIdentifier::OT_TOOL_PACKED_FIELD

Enumerazioni

enumerazione anonima

 anonymous enum

Origini indirizzo IPv6.

Proprietà
OT_ADDRESS_ORIGIN_DHCPV6

Indirizzo assegnato da DHCPv6.

OT_ADDRESS_ORIGIN_MANUAL

Indirizzo assegnato manualmente.

OT_ADDRESS_ORIGIN_SLAAC

Indirizzo assegnato SLAAC.

OT_ADDRESS_ORIGIN_THREAD

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

enumerazione anonima

 anonymous enum

Stati ECN, rappresentati nell'intestazione IP.

Proprietà
OT_ECN_CAPABLE_0

ECT(0)

OT_ECN_CAPABLE_1

ECT(1)

OT_ECN_MARKED

Congestione (CE)

OT_ECN_NOT_CAPABLE

Senza ECT.

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.

Defdef

Indirizzo otIp6

struct otIp6Address otIp6Address

Questa struttura rappresenta un indirizzo IPv6.

Richiama OtIp6Address

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

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

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

otIp6ComponentComponents

struct otIp6AddressComponents otIp6AddressComponents

Questa struttura rappresenta i componenti di un indirizzo IPv6.

Informazioni otIp6indirizzi

struct otIp6AddressInfo otIp6AddressInfo

otIp6InterfaceIdentifier

struct otIp6InterfaceIdentifier otIp6InterfaceIdentifier

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

otIp6Prefisso rete

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.

otIp6ReceiveCallback

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

Il puntatore di questa funzione viene chiamato quando si riceve un datagram IPv6.

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

otIp6RegisterMulticastListenersCallback

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

Questo puntatore funzione viene chiamato con i risultati di otIp6RegisterMulticastListeners.

Dettagli
Parametri
[in] aContext
Un puntatore sul contesto dell'utente.
[in] aError
OT_ERROR_NONE quando ha inviato MLR.req e ha ricevuto MLR.rsp, OT_ERROR_RESPONSE_TIMEOUT quando non è stato possibile ricevere MLR.rsp, OT_ERROR_PARSE quando non è stato possibile analizzare MLR.rsp.
[in] aMlrStatus
Lo stato di 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 nei casi in cui 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 del filtro viene richiamato dal modulo SLAAC quando sta per aggiungere un indirizzo SLAAC in base a un prefisso. Il valore booleano di ritorno determina se l'indirizzo è filtrato (non aggiunto) o meno.

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

InformazioniotMessage

struct otMessageInfo otMessageInfo

Questa struttura rappresenta gli indirizzi socket IPv6 locali e peer.

Indirizzo OtNetif

struct otNetifAddress otNetifAddress

Questa struttura rappresenta un indirizzo unicast di interfaccia di rete IPv6.

Indirizzo multicast otNetif

struct otNetifMulticastAddress otNetifMulticastAddress

Questa struttura rappresenta un indirizzo multicast IPv6.

OtSockAddr

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

otIp6AddUnicastAddress

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

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

L'istanza aAddress inviata viene copiata dall'interfaccia Thread. L'interfaccia Thread supporta solo un numero fisso di indirizzi unicast aggiunti esternamente. Vedi OPENThread_CONFIG_IP6_MAX_EXT_UCAST_ADDRS.

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

otIp6AddNonsecurePort

otError otIp6AddUnsecurePort(
  otInstance *aInstance,
  uint16_t aPort
)

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

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

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 su un indirizzo IPv6.
Valori di ritorno
OT_ERROR_NONE
La stringa è stata analizzata.
OT_ERROR_INVALID_ARGS
Analisi della stringa non riuscita.

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 ':' (ad esempio, "%x:%x:%x:...:%x").

Se la stringa risultante non rientra in aBuffer (entro i suoi caratteri aSize), la stringa viene 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 (DEVE NON essere NULL).
[in] aSize
La dimensione di aBuffer (in byte). Opzione consigliata di utilizzare OT_IP6_ADDRESS_STRING_SIZE.

otIp6ArePrefixesEqual

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

Verifica se due prefissi IPv6 sono gli stessi.

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

otIp6GetMulticastAddresses

const otNetifMulticastAddress * otIp6GetMulticastAddresses(
  otInstance *aInstance
)

Ottieni l'elenco di indirizzi multicast IPv6 iscritti all'interfaccia di Thread.

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

otIp6GetUnicastAddresses

const otNetifAddress * otIp6GetUnicastAddresses(
  otInstance *aInstance
)

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

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

otIp6GetNonsecurePorts

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 su un'istanza di OpenThread.
[out] aNumEntries
Il numero di voci nell'elenco.
Restituisce
Un puntatore sull'elenco delle 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 sul primo indirizzo IPv6 da confrontare.
[in] aSecond
Un puntatore sul secondo indirizzo IPv6 da confrontare.
Valori di ritorno
TRUE
I due indirizzi IPv6 sono gli stessi.
FALSE
I due indirizzi IPv6 sono diversi.

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 su un indirizzo IPv6.
Valori di ritorno
TRUE
Se l'indirizzo IPv6 è l'indirizzo non specificato.
FALSE
Se l'indirizzo IPv6 non è l'indirizzo non specificato,

otIp6IsEnabled

bool otIp6IsEnabled(
  otInstance *aInstance
)

Questa funzione indica se l'interfaccia IPv6 è attiva o meno.

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

otIp6IsMulticastPromiscuousEnabled

bool otIp6IsMulticastPromiscuousEnabled(
  otInstance *aInstance
)

Controlla se la modalità procastu multicast è abilitata sull'interfaccia Thread.

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

otIp6IsReceiveFilterEnabled

bool otIp6IsReceiveFilterEnabled(
  otInstance *aInstance
)

Questa funzione indica se il traffico di controllo Thread viene filtrato o meno quando fornisce i datagrammi IPv6 tramite il callback specificato in otIp6SetReceiveCallback().

Dettagli
Parametri
[in] aInstance
Un puntatore su un'istanza di OpenThread.
Restituisce
TRUE se il traffico di controllo Thread viene filtrato, FALSE altrimenti.
Vedi anche:
otIp6SetReceiveCallback
otIp6SetReceiveFilterEnabled

otIp6IsSlaacEnabled

bool otIp6IsSlaacEnabled(
  otInstance *aInstance
)

Questa funzione indica se il modulo SLAAC è abilitato.

Questa funzione richiede che sia abilitata la funzionalità di compilazione OPENTHREAD_CONFIG_IP6_SLAAC_ENABLE.

Dettagli
Valori di ritorno
TRUE
Il modulo SLAAC è abilitato.
FALSE
Il modulo SLAAC è disabilitato.

otIp6NuovoMessaggio

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

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

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

otIp6NewMessageFromBuffer

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

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

Dettagli
Parametri
[in] aInstance
Un puntatore su un'istanza di OpenThread.
[in] aData
Un puntatore al buffer di datagram IPv6.
[in] aDataLength
La dimensione del buffer di dati IPv6 indicato da aData.
[in] aSettings
Un puntatore sulle impostazioni del messaggio o NULL per configurare le impostazioni predefinite.
Restituisce
Un puntatore al messaggio o al NULL se sono disponibili un'intestazione IPv6 non valida o buffer di messaggio insufficienti.
Vedi anche:
otMessageFree

Corrispondenza otIp6Prefix

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 sul primo indirizzo IPv6.
[in] aSecond
Un puntatore al secondo indirizzo IPv6.
Restituisce
La lunghezza della corrispondenza del prefisso in bit.

otIp6PrefixToString

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 è formattata come "%x:%x:%x:...[::]/plen".

Se la stringa risultante non rientra in aBuffer (entro i suoi caratteri aSize), la stringa viene 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 (DEVE NON essere NULL).
[in] aSize
La dimensione di aBuffer (in byte). Opzione consigliata di utilizzare OT_IP6_PREFIX_STRING_SIZE.

otIp6ProtoToString

const char * otIp6ProtoToString(
  uint8_t aIpProto
)

Questa funzione converte un dato 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 listener multicast sul router backbone principale.

Nota: disponibile solo quando OPENTHREAD_CONFIG_TMF_PROXY_MLR_ENABLE e OPENTHREAD_CONFIG_COMMISSIONER_ENABLE sono abilitati)

Dettagli
Parametri
[in] aInstance
Un puntatore su un'istanza di OpenThread.
[in] aAddresses
Un array di indirizzi multicast da registrare.
[in] aAddressNum
Il numero di indirizzo multicast da registrare (0 se aAddresses è NULL).
[in] aTimeout
Un puntatore sul valore di timeout (in secondi) da includere in MLR.req. Il valore di timeout pari a 0 rimuove il listener multicast corrispondente. Se NULL, MLR.req non prevede alcun timeout Tlv per impostazione predefinita.
[in] aCallback
Un puntatore sulla funzione di callback.
[in] aContext
Un puntatore sul contesto dell'utente.
Valori di ritorno
OT_ERROR_NONE
MLR.req inviato correttamente. Il metodo 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 era 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 messaggio sono insufficienti.
Vedi anche:
otIp6RegisterMulticastListenersCallback

otIp6RemoveAllUnsecurePorts

void otIp6RemoveAllUnsecurePorts(
  otInstance *aInstance
)

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

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

otIp6RemoveUnicastAddress

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

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

Dettagli
Parametri
[in] aInstance
Un puntatore su un'istanza di OpenThread.
[in] aAddress
Un puntatore su un indirizzo IP.
Valori di ritorno
OT_ERROR_NONE
Rimozione dell'indirizzo di interfaccia di rete riuscita.
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.

otIp6RemoveNonsecurePort

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 su un'istanza di OpenThread.
[in] aPort
Il valore della porta.
Valori di ritorno
OT_ERROR_NONE
La porta è stata rimossa dall'elenco delle porte non sicure consentite.
OT_ERROR_INVALID_ARGS
La porta non è valida (valore 0 riservato all'uso interno).
OT_ERROR_NOT_FOUND
Impossibile trovare la porta nell'elenco delle porte non sicure.

otIp6SelectSourceAddress

otError otIp6SelectSourceAddress(
  otInstance *aInstance,
  otMessageInfo *aMessageInfo
)

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

Dettagli
Parametri
[in] aInstance
Un puntatore su un'istanza di OpenThread.
[in,out] aMessageInfo
Un puntatore sulle informazioni del messaggio.
Valori di ritorno
OT_ERROR_NONE
Trovato un indirizzo di origine e compilato in mSockAddr di aMessageInfo.
OT_ERROR_NOT_FOUND
Non è stato trovato alcun indirizzo di origine e aMessageInfo è rimasto invariato.

OtIp6Send

otError otIp6Send(
  otInstance *aInstance,
  otMessage *aMessage
)

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

Quando effettua questa chiamata, il chiamante trasferisce la proprietà di aMessage. OpenThread sarà disponibile senza costi aMessage al termine dell'elaborazione, anche quando viene restituito un valore diverso da OT_ERROR_NONE.

Dettagli
Parametri
[in] aInstance
Un puntatore su un'istanza di OpenThread.
[in] aMessage
Un puntatore al buffer del messaggio contenente il datagram IPv6.
Valori di ritorno
OT_ERROR_NONE
Il messaggio è stato elaborato.
OT_ERROR_DROP
Il messaggio è stato formattato correttamente, ma non è stato completamente elaborato a causa delle regole di elaborazione pacchetti.
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 in formato non valido durante l'elaborazione del messaggio.

otIp6SetAddressCallback

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

Questa funzione registra un callback per inviare una notifica alle modifiche dell'indirizzo IPv6 interne.

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

otIp6SetEnabled

otError otIp6SetEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Questa funzione permette di visualizzare l'interfaccia IPv6.

Chiama questa funzione per abilitare o disabilitare la comunicazione IPv6.

Dettagli
Parametri
[in] aInstance
Un puntatore su un'istanza di OpenThread.
[in] aEnabled
TRUE per abilitare IPv6, FALSE altrimenti.
Valori di ritorno
OT_ERROR_NONE
L'interfaccia IPv6 è stata spostata verso l'alto o verso il basso.
OT_ERROR_INVALID_STATE
L'interfaccia IPv6 non è disponibile poiché il dispositivo funziona in modalità link non elaborato (applicabile solo quando la funzionalità di OPENTHREAD_CONFIG_LINK_RAW_ENABLE è attivata).

otIp6SetMeshLocalIid

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

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

Disponibile solo quando è attivata l'opzione OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE.

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

otIp6SetMulticastPromiscuousEnabled

void otIp6SetMulticastPromiscuousEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Attiva la modalità promiscua multicast sull'interfaccia Thread.

Dettagli
Parametri
[in] aInstance
Un puntatore su un'istanza di OpenThread.
[in] aEnabled
TRUE per abilitare la modalità Procastu multicast, altrimenti FALSE.
Vedi anche:
otIp6IsMulticastPromiscuousEnabled

otIp6SetReceiveCallback

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 controllo di Thread. Consulta otIp6SetReceiveFilterEnabled() per modificare l'impostazione del filtro del traffico di controllo thread.

Dettagli
Parametri
[in] aInstance
Un puntatore su un'istanza di OpenThread.
[in] aCallback
Un puntatore a una funzione che viene richiamata quando viene ricevuto un datagram IPv6 o NULL per disabilitare il callback.
[in] aCallbackContext
Un puntatore sul contesto specifico dell'applicazione.
Vedi anche:
otIp6IsReceiveFilterEnabled
otIp6SetReceiveFilterEnabled

otIp6SetReceiveFilterEnabled

void otIp6SetReceiveFilterEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Questa funzione determina se il traffico di controllo Thread viene filtrato o meno quando si consegnano i datagrammi IPv6 tramite il callback specificato in otIp6SetReceiveCallback().

Dettagli
Parametri
[in] aInstance
Un puntatore su un'istanza di OpenThread.
[in] aEnabled
TRUE se il traffico di controllo Thread viene filtrato, FALSE altrimenti.
Vedi anche:
otIp6SetReceiveCallback
otIsReceiveIp6FilterEnabled

otIp6SetSlaacEnabled

void otIp6SetSlaacEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Questa funzione abilita/disattiva il modulo SLAAC.

Questa funzione richiede che sia abilitata la funzionalità di compilazione 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 su un'istanza di OpenThread.
[in] aEnabled
TRUE per abilitarla, FALSE per disabilitarla.

otIp6SetSlaacPrefixFilter

void otIp6SetSlaacPrefixFilter(
  otInstance *aInstance,
  otIp6SlaacPrefixFilter aFilter
)

Questa funzione imposta il gestore del filtro del modulo SLAAC.

Questa funzione richiede che sia abilitata la funzionalità di compilazione OPENTHREAD_CONFIG_IP6_SLAAC_ENABLE.

Il gestore filtri viene chiamato dal modulo SLAAC quando sta per aggiungere un indirizzo SLAAC in base a un prefisso per decidere se aggiungere o meno l'indirizzo.

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 su un'istanza di OpenThread.
[in] aFilter
Un puntatore al gestore del filtro del prefisso SLAAC o NULL per disattivare il filtro.

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 del socket IPv6 è formattata come "[

]:" dove `
è indicato come 16 valori esadecimali separati da ':' e è il numero di porta in formato decimale (ad esempio, "[%x:%x:...:%x]:%u")

Se la stringa risultante non rientra in aBuffer (entro i suoi caratteri aSize), la stringa viene 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 (DEVE NON essere NULL).
[in] aSize
La dimensione di aBuffer (in byte). Opzione consigliata di utilizzare OT_IP6_SOCK_ADDR_STRING_SIZE.

otIp6Iscriviti MulticastAddress

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

Iscriviti all'interfaccia Thread per 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. Vedi OPENThread_CONFIG_IP6_MAX_EXT_MCAST_ADDRS.

Dettagli
Parametri
[in] aInstance
Un puntatore su un'istanza di OpenThread.
[in] aAddress
Un puntatore su un indirizzo IP.
Valori di ritorno
OT_ERROR_NONE
Iscrizione all'indirizzo multicast di interfaccia di rete riuscita.
OT_ERROR_ALREADY
L'indirizzo multicast è già registrato.
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 il numero massimo consentito di indirizzi multicast esterni.

otIp6unsubscribeMulticastAddress

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

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

Dettagli
Parametri
[in] aInstance
Un puntatore su un'istanza di OpenThread.
[in] aAddress
Un puntatore su un indirizzo IP.
Valori di ritorno
OT_ERROR_NONE
Iscrizione all'indirizzo multicast di 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

Dimensione consigliata per la rappresentazione di stringa di un indirizzo IPv6.

OT_IP6_IID_SIZE

 OT_IP6_IID_SIZE 8

Dimensioni di un identificatore dell'interfaccia IPv6 (byte)

OT_IP6_MAX_MLR_ADDRESSES

 OT_IP6_MAX_MLR_ADDRESSES 15

Numero massimo di indirizzi IPv6 supportato dalla registrazione dell'ascoltatore 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

Dimensione consigliata per la rappresentazione di stringa di un prefisso IPv6.

OT_IP6_SOCK_ADDR_STRING_SIZE

 OT_IP6_SOCK_ADDR_STRING_SIZE 48

Dimensione consigliata per la rappresentazione di stringa di un indirizzo socket IPv6.

Risorse

Gli argomenti di riferimento per l'API OpenThread provengono dal codice sorgente, disponibile su GitHub. Per ulteriori informazioni o per contribuire alla nostra documentazione, consulta la sezione Risorse.