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

Gestore routing frontaliero

Questo modulo include le definizioni relative a Border Routing Manager.

Riepilogo

Tutte le funzioni in questo modulo richiedono l'attivazione di OPENTHREAD_CONFIG_BORDER_ROUTING_ENABLE.

Border Routing Manager gestisce il routing bidirezionale tra la rete Thread e il link dell'infrastruttura adiacente (AIL).

Emette messaggi RA (ICMRv6 ND Router Advertising) su AIL per pubblicizzare prefissi su link e route. Elabora inoltre i messaggi RA ricevuti dall'infrastruttura e riflette i prefissi rilevati nei dati di rete Thread per garantire che i dispositivi sul mesh Thread possano raggiungere AIL tramite il router di confine.

Routing Manager gestisce il prefisso OMR (Off-Mesh Routable) sui dati della rete Thread che configura i dispositivi Thread con un indirizzo IPv6 Routable Off-Mesh idoneo. Annuncia la raggiungibilità di questo prefisso su AIL includendolo nei messaggi RA emessi come opzione di informazioni di percorso (RIO) IPv6.

Routing Manager inoltre monitora e aggiunge il prefisso on-link sulla rete dell'infrastruttura. Se un router su AIL fornisce già messaggi RA contenenti un'opzione di informazioni prefisso (PIO) IPv6 che consente ai dispositivi IPv6 sul link di configurare autonomamente il proprio indirizzo IPv6 unicast instradabile, i dispositivi Thread possono utilizzare questo indirizzo per raggiungere AIL. Se il router di confine non trova messaggi RA di questo tipo su AIL, genera un prefisso ULA on-link che poi pubblicizza su AIL nei messaggi RA emessi.

Defin

otBorderRoutingPrefixTableEntry Typedef
Questa struttura rappresenta una voce della tabella dei prefissi rilevati.
otBorderRoutingPrefixTableIterator Typedef
Questa struttura rappresenta un iteratore per l'iterazione attraverso la tabella dei prefissi rilevati dal router di confine.

Functions

otBorderRoutingGetFavoredNat64Prefix(otInstance *aInstance, otIp6Prefix *aPrefix, otRoutePreference *aPreference)
Recupera il prefisso NAT64 attualmente preferito.
otBorderRoutingGetFavoredOmrPrefix(otInstance *aInstance, otIp6Prefix *aPrefix, otRoutePreference *aPreference)
Recupera il prefisso Off-Mesh-Routable (OMR) attualmente preferito.
otBorderRoutingGetNat64Prefix(otInstance *aInstance, otIp6Prefix *aPrefix)
Recupera il prefisso NAT64 locale del router di confine.
otBorderRoutingGetNextPrefixTableEntry(otInstance *aInstance, otBorderRoutingPrefixTableIterator *aIterator, otBorderRoutingPrefixTableEntry *aEntry)
Questa funzione esegue l'iterazione delle voci nella tabella dei prefissi rilevati dal router di confine.
otBorderRoutingGetOmrPrefix(otInstance *aInstance, otIp6Prefix *aPrefix)
Recupera il prefisso OMR (Off-Mesh-Routable) locale, ad esempio fdfc:1ff5:1512:5622::/64.
otBorderRoutingGetOnLinkPrefix(otInstance *aInstance, otIp6Prefix *aPrefix)
Recupera il prefisso on-link per il link all'infrastruttura adiacente, ad esempio fd41:2650:a6f5:0::/64.
otBorderRoutingGetRouteInfoOptionPreference(otInstance *aInstance)
Questa funzione riceve la preferenza utilizzata per la pubblicità di opzioni di informazioni di percorso (ad es. per i prefissi OMR rilevati) nei messaggi di pubblicità del router inviati tramite il link dell'infrastruttura.
otBorderRoutingInit(otInstance *aInstance, uint32_t aInfraIfIndex, bool aInfraIfIsRunning)
Questo metodo inizializza il Border Routing Manager su una determinata interfaccia dell'infrastruttura.
otBorderRoutingPrefixTableInitIterator(otInstance *aInstance, otBorderRoutingPrefixTableIterator *aIterator)
void
Questa funzione inizializza un elemento otBorderRoutingPrefixTableIterator.
otBorderRoutingSetEnabled(otInstance *aInstance, bool aEnabled)
Attiva o disattiva il Routing Routing Manager.
otBorderRoutingSetRouteInfoOptionPreference(otInstance *aInstance, otRoutePreference aPreference)
void
Questa funzione imposta la preferenza da utilizzare per la pubblicità di opzioni di route route nei messaggi di pubblicità del router inviati tramite il link dell'infrastruttura, ad esempio per i prefissi OMR rilevati.

Struttura

otBorderRoutingPrefixTableEntry

Questa struttura rappresenta una voce della tabella dei prefissi rilevati.

otBorderRoutingPrefixTableIterator

Questa struttura rappresenta un iteratore per l'iterazione attraverso la tabella dei prefissi rilevati dal router di confine.

Defin

otBorderRoutingPrefixTableEntry

struct otBorderRoutingPrefixTableEntry otBorderRoutingPrefixTableEntry

Questa struttura rappresenta una voce della tabella dei prefissi rilevati.

Le voci nella tabella rilevata monitorano le opzioni di prefisso/percorso nelle informazioni sui messaggi pubblicitari relativi al router ricevuti provenienti da altri router sul link dell'infrastruttura.

otBorderRoutingPrefixTableIterator

struct otBorderRoutingPrefixTableIterator otBorderRoutingPrefixTableIterator

Questa struttura rappresenta un iteratore per l'iterazione attraverso la tabella dei prefissi rilevati dal router di confine.

I campi in questo tipo sono opachi (previsti per l'uso esclusivo da parte di OpenThread) e pertanto non devono essere accessibili o utilizzati dal chiamante.

Prima di utilizzare un iteratore, DEVE essere inizializzato utilizzando otBorderRoutingPrefixTableInitIterator().

Functions

otBorderRoutingGetFavoredNat64Prefisso

otError otBorderRoutingGetFavoredNat64Prefix(
  otInstance *aInstance,
  otIp6Prefix *aPrefix,
  otRoutePreference *aPreference
)

Recupera il prefisso NAT64 attualmente preferito.

Il prefisso NAT64 preferito può essere rilevato dal link dell'infrastruttura o può essere il prefisso NAT64 locale di questo dispositivo.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[out] aPrefix
Un puntatore per emettere il prefisso NAT64 preferito.
[out] aPreference
Un puntatore per restituire la preferenza associata al prefisso preferito.
Valori restituiti
OT_ERROR_INVALID_STATE
Border Routing Manager non è ancora stato inizializzato.
OT_ERROR_NONE
Recupero del prefisso NAT64 preferito riuscito.

otBorderRoutingGetFavoredOmrPrefix

otError otBorderRoutingGetFavoredOmrPrefix(
  otInstance *aInstance,
  otIp6Prefix *aPrefix,
  otRoutePreference *aPreference
)

Recupera il prefisso Off-Mesh-Routable (OMR) attualmente preferito.

Il prefisso OMR preferito può essere rilevato dai dati di rete o può essere il prefisso OMR locale di questo dispositivo.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[out] aPrefix
Un puntatore per restituire il prefisso OMR preferito.
[out] aPreference
Un puntatore per restituire la preferenza associata al prefisso preferito.
Valori restituiti
OT_ERROR_INVALID_STATE
Border Routing Manager non è ancora stato inizializzato.
OT_ERROR_NONE
Recupero del prefisso OMR preferito riuscito.

otBorderRoutingGetNat64Prefix

otError otBorderRoutingGetNat64Prefix(
  otInstance *aInstance,
  otIp6Prefix *aPrefix
)

Recupera il prefisso NAT64 locale del router di confine.

Il prefisso NAT64 potrebbe non essere pubblicizzato nella rete Thread.

OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE deve essere abilitato.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[out] aPrefix
Un puntatore alla posizione di output del prefisso.
Valori restituiti
OT_ERROR_INVALID_STATE
Border Routing Manager non è ancora stato inizializzato.
OT_ERROR_NONE
Prefisso NAT64 recuperato correttamente.

otBorderRoutingGetNextPrefixTableEntry

otError otBorderRoutingGetNextPrefixTableEntry(
  otInstance *aInstance,
  otBorderRoutingPrefixTableIterator *aIterator,
  otBorderRoutingPrefixTableEntry *aEntry
)

Questa funzione esegue l'iterazione delle voci nella tabella dei prefissi rilevati dal router di confine.

Dettagli
Parametri
[in] aInstance
L'istanza OpenThread.
[in,out] aIterator
Un puntatore all'iteratore.
[out] aEntry
Un puntatore alla voce da completare.
Valori restituiti
OT_ERROR_NONE
Iterato per la voce successiva, aEntry e aIterator vengono aggiornati.
OT_ERROR_NOT_FOUND
Non esistono altre voci nella tabella.

otBorderRoutingGetOmrPrefix

otError otBorderRoutingGetOmrPrefix(
  otInstance *aInstance,
  otIp6Prefix *aPrefix
)

Recupera il prefisso OMR (Off-Mesh-Routable) locale, ad esempio fdfc:1ff5:1512:5622::/64.

Un prefisso OMR è un prefisso a 64 bit generato casualmente che è pubblicato nella rete Thread se non c'è già un prefisso OMR. Questo prefisso può essere raggiunto dalla rete Wi-Fi o Ethernet locale.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[out] aPrefix
Un puntatore alla posizione di output del prefisso.
Valori restituiti
OT_ERROR_INVALID_STATE
Border Routing Manager non è ancora stato inizializzato.
OT_ERROR_NONE
Prefisso OMR recuperato correttamente.

otBorderRoutingGetOnLinkPrefix

otError otBorderRoutingGetOnLinkPrefix(
  otInstance *aInstance,
  otIp6Prefix *aPrefix
)

Recupera il prefisso on-link per il link all'infrastruttura adiacente, ad esempio fd41:2650:a6f5:0::/64.

Un prefisso su link è un prefisso a 64 bit pubblicizzato sul link dell'infrastruttura se non è già presente un prefisso su link utilizzabile nel link.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[out] aPrefix
Un puntatore alla posizione di output del prefisso.
Valori restituiti
OT_ERROR_INVALID_STATE
Border Routing Manager non è ancora stato inizializzato.
OT_ERROR_NONE
Prefisso on-link recuperato correttamente.

otBorderRoutingGetRouteInfoOptionPreferenza

otRoutePreference otBorderRoutingGetRouteInfoOptionPreference(
  otInstance *aInstance
)

Questa funzione riceve la preferenza utilizzata per la pubblicità di opzioni di informazioni di percorso (ad es. per i prefissi OMR rilevati) nei messaggi di pubblicità del router inviati tramite il link dell'infrastruttura.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
Restituisce
La preferenza per la pubblicità con prefisso OMR.

otBorderRoutingInit

otError otBorderRoutingInit(
  otInstance *aInstance,
  uint32_t aInfraIfIndex,
  bool aInfraIfIsRunning
)

Questo metodo inizializza il Border Routing Manager su una determinata interfaccia dell'infrastruttura.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aInfraIfIndex
L'indice dell'interfaccia dell'infrastruttura.
[in] aInfraIfIsRunning
Un valore booleano che indica se l'interfaccia dell'infrastruttura è in esecuzione.
Valori restituiti
OT_ERROR_NONE
Avvio di Routing Routing Manager riuscito nell'infrastruttura.
OT_ERROR_INVALID_STATE
Border Routing Manager è già stato inizializzato.
OT_ERROR_INVALID_ARGS
L'indice dell'interfaccia dell'infrastruttura non è valido.
OT_ERROR_FAILED
Errore interno. In genere a causa di un errore di generazione di prefissi casuali.
Vedi anche:
otPlatInfraIfStateChanged.

otBorderRoutingPrefixTableInitIterator

void otBorderRoutingPrefixTableInitIterator(
  otInstance *aInstance,
  otBorderRoutingPrefixTableIterator *aIterator
)

Questa funzione inizializza un elemento otBorderRoutingPrefixTableIterator.

Un iteratore DEVE essere inizializzato prima di essere utilizzato.

Un iteratore può essere inizializzato di nuovo per riavviare dall'inizio della tabella.

Durante l'iterazione delle voci nella tabella, per garantire che i tempi di aggiornamento mMsecSinceLastUpdate delle voci siano coerenti, vengono forniti in relazione al momento in cui l'iteratore è stato inizializzato.

Dettagli
Parametri
[in] aInstance
L'istanza OpenThread.
[out] aIterator
Un puntatore all'iteratore per inizializzare.

otBorderRoutingSetEnabled

otError otBorderRoutingSetEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Attiva o disattiva il Routing Routing Manager.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aEnabled
Un valore booleano per attivare/disattivare il gestore di routing.
Valori restituiti
OT_ERROR_INVALID_STATE
Border Routing Manager non è ancora stato inizializzato.
OT_ERROR_NONE
Attivazione/disattivazione di Border Routing Manager riuscita.

otBorderRoutingSetRouteInfoOptionOption

void otBorderRoutingSetRouteInfoOptionPreference(
  otInstance *aInstance,
  otRoutePreference aPreference
)

Questa funzione imposta la preferenza da utilizzare per la pubblicità di opzioni di route route nei messaggi di pubblicità del router inviati tramite il link dell'infrastruttura, ad esempio per i prefissi OMR rilevati.

Per impostazione predefinita, BR utilizzerà il livello di preferenza medium, ma questa funzione consente di modificare il valore predefinito. Ad esempio, può essere impostato su low preferenza nel caso in cui il dispositivo sia un BR temporaneo (un BR mobile o un BR alimentato a batteria) per indicare che altri BR (se presenti) dovrebbero essere preferiti rispetto a questo BR nel link dell'infrastruttura.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aPreference
La preferenza di percorso da utilizzare.

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.