Gestore routing confine
Questo modulo include le definizioni relative a Border Routing Manager.
Riepilogo
Tutte le funzioni di 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 ICMRv6 ND Router Advertisingment (RA) su AIL per pubblicizzare i prefissi on-link e route. Inoltre, elabora i messaggi RA ricevuti dall'infrastruttura e rispecchia i prefissi rilevati nei dati di rete Thread per garantire che i dispositivi sulla rete mesh Thread possano raggiungere l'AIL tramite il router di confine.
Routing Manager gestisce il prefisso OMR (Off-Mesh Routable) sui dati di rete Thread che configura i dispositivi Thread con un indirizzo IPv6 instradabile Off-Mesh appropriato. Annuncia la raggiungibilità di questo prefisso su AIL includendolo nei messaggi RA emessi come RIO (Route IPv6 Route Information Opzione).
Routing Manager inoltre monitora e aggiunge il prefisso al link sulla rete dell'infrastruttura. Se un router su AIL sta già fornendo messaggi RA contenenti un'opzione PIO (IPP) che consente ai dispositivi IPv6 sul collegamento di autoconfigurare il proprio indirizzo IPv6 unicast instradabile, questo indirizzo può essere utilizzato dai dispositivi Thread per raggiungere AIL. Se il router di confine non trova questo messaggio RA su AIL, genera un prefisso ULA al collegamento che pubblicizza su AIL nei messaggi RA emessi.
Enumerazioni |
|
---|---|
otBorderRoutingDhcp6PdState{
|
enum Questa enumerazione rappresenta lo stato dello stato della delega del prefisso DHCPv6. |
otBorderRoutingState{
|
enum Rappresenta lo stato di Border Routing Manager. |
Typedef |
|
---|---|
otBorderRoutingPrefixTableEntry
|
typedef Rappresenta una voce della tabella del prefisso rilevato. |
otBorderRoutingPrefixTableIterator
|
typedef Rappresenta un iteratore per l'iterazione attraverso la tabella dei prefissi rilevati dal router di confine. |
otBorderRoutingRouterEntry
|
typedefstruct otBorderRoutingRouterEntry
Rappresenta un router rilevato sul collegamento dell'infrastruttura. |
otPdProcessedRaInfo
|
typedefstruct otPdProcessedRaInfo
Rappresenta un gruppo di dati di messaggi RA generati dalla piattaforma e elaborati. |
Funzioni |
|
---|---|
otBorderRoutingClearRouteInfoOptionPreference(otInstance *aInstance)
|
void
Cancella un valore di preferenza impostato in precedenza per le opzioni di informazioni sul percorso pubblicizzate.
|
otBorderRoutingClearRoutePreference(otInstance *aInstance)
|
void
Cancella un valore di preferenza impostato in precedenza per le route pubblicate in Dati di rete.
|
otBorderRoutingDhcp6PdGetState(otInstance *aInstance)
|
Restituisce lo stato attuale della delega del prefisso DHCPv6.
|
otBorderRoutingDhcp6PdSetEnabled(otInstance *aInstance, bool aEnabled)
|
void
Attiva / disattiva la delega del prefisso DHCPv6.
|
otBorderRoutingGetFavoredNat64Prefix(otInstance *aInstance, otIp6Prefix *aPrefix, otRoutePreference *aPreference)
|
Restituisce il prefisso NAT64 attualmente favorito.
|
otBorderRoutingGetFavoredOmrPrefix(otInstance *aInstance, otIp6Prefix *aPrefix, otRoutePreference *aPreference)
|
Restituisce il prefisso OMR (Off-Mesh-Routable) attualmente favorito.
|
otBorderRoutingGetFavoredOnLinkPrefix(otInstance *aInstance, otIp6Prefix *aPrefix)
|
Restituisce il prefisso On-Link attualmente preferito.
|
otBorderRoutingGetNat64Prefix(otInstance *aInstance, otIp6Prefix *aPrefix)
|
Restituisce il prefisso NAT64 locale del router di confine.
|
otBorderRoutingGetNextPrefixTableEntry(otInstance *aInstance, otBorderRoutingPrefixTableIterator *aIterator, otBorderRoutingPrefixTableEntry *aEntry)
|
Esegue l'iterazione sulle voci nella tabella dei prefissi rilevati dal router di confine.
|
otBorderRoutingGetNextRouterEntry(otInstance *aInstance, otBorderRoutingPrefixTableIterator *aIterator, otBorderRoutingRouterEntry *aEntry)
|
Itera sulle voci del router rilevate sul collegamento dell'infrastruttura.
|
otBorderRoutingGetOmrPrefix(otInstance *aInstance, otIp6Prefix *aPrefix)
|
Restituisce il prefisso Off-Mesh-Routable (OMR) locale, ad esempio
fdfc:1ff5:1512:5622::/64 . |
otBorderRoutingGetOnLinkPrefix(otInstance *aInstance, otIp6Prefix *aPrefix)
|
Restituisce il prefisso On-Link locale per il collegamento dell'infrastruttura adiacente.
|
otBorderRoutingGetPdOmrPrefix(otInstance *aInstance, otBorderRoutingPrefixTableEntry *aPrefixInfo)
|
Restituisce il prefisso OMR (Off-mesh-routable) fornito per la delega del prefisso DHCPv6.
|
otBorderRoutingGetPdProcessedRaInfo(otInstance *aInstance, otPdProcessedRaInfo *aPdProcessedRaInfo)
|
Restituisce i dati del messaggio RA generato dalla piattaforma.
|
otBorderRoutingGetRouteInfoOptionPreference(otInstance *aInstance)
|
Restituisce la preferenza corrente utilizzata per pubblicizzare il routing RIO (Route Info Info Opzioni) nei messaggi di annunci relativi al router inviati tramite il link dell'infrastruttura.
|
otBorderRoutingGetRoutePreference(otInstance *aInstance)
|
Restituisce la preferenza corrente utilizzata per le route pubblicate in Dati di rete.
|
otBorderRoutingGetState(otInstance *aInstance)
|
Restituisce lo stato attuale di Border Routing Manager.
|
otBorderRoutingInit(otInstance *aInstance, uint32_t aInfraIfIndex, bool aInfraIfIsRunning)
|
Inizializza Border Routing Manager sull'interfaccia dell'infrastruttura specificata.
|
otBorderRoutingPrefixTableInitIterator(otInstance *aInstance, otBorderRoutingPrefixTableIterator *aIterator)
|
void
Inizializza un
otBorderRoutingPrefixTableIterator . |
otBorderRoutingSetEnabled(otInstance *aInstance, bool aEnabled)
|
Abilita o disabilita la gestione routing delle frontiere.
|
otBorderRoutingSetRouteInfoOptionPreference(otInstance *aInstance, otRoutePreference aPreference)
|
void
Imposta in modo esplicito la preferenza da utilizzare per pubblicizzare il protocollo RIO (Route Info Info Opzioni) nei messaggi pubblicitari di router inviati tramite il link dell'infrastruttura.
|
otBorderRoutingSetRoutePreference(otInstance *aInstance, otRoutePreference aPreference)
|
void
Imposta in modo esplicito la preferenza delle route pubblicate in Dati di rete.
|
Strutture |
|
---|---|
otBorderRoutingPrefixTableEntry |
Rappresenta una voce della tabella del prefisso rilevato. |
otBorderRoutingPrefixTableIterator |
Rappresenta un iteratore per l'iterazione attraverso la tabella dei prefissi rilevati dal router di confine. |
otBorderRoutingRouterEntry |
Rappresenta un router rilevato sul collegamento dell'infrastruttura. |
otPdProcessedRaInfo |
Rappresenta un gruppo di dati di messaggi RA generati dalla piattaforma e elaborati. |
Enumerazioni
otBorderRoutingDhcp6PdState
otBorderRoutingDhcp6PdState
Questa enumerazione rappresenta lo stato dello stato della delega del prefisso DHCPv6.
Proprietà | |
---|---|
OT_BORDER_ROUTING_DHCP6_PD_STATE_DISABLED
|
Il DP DHCPv6 è disattivato sul router di confine. |
OT_BORDER_ROUTING_DHCP6_PD_STATE_RUNNING
|
Il DP DHCPv6 è abilitato e proverà a richiedere e pubblicare un prefisso. |
OT_BORDER_ROUTING_DHCP6_PD_STATE_STOPPED
|
Il DP DHCPv6 è abilitato, ma non tenterà di richiedere e pubblicare un prefisso. |
otBorderRoutingState
otBorderRoutingState
Rappresenta lo stato di Border Routing Manager.
Proprietà | |
---|---|
OT_BORDER_ROUTING_STATE_DISABLED
|
Routing Manager è inizializzato ma disabilitato. |
OT_BORDER_ROUTING_STATE_RUNNING
|
Routing Manager è inizializzato, abilitato e in esecuzione. |
OT_BORDER_ROUTING_STATE_STOPPED
|
Routing Manager inizializzato e abilitato, ma attualmente arrestato. |
OT_BORDER_ROUTING_STATE_UNINITIALIZED
|
Routing Manager non inizializzato. |
Typedef
otBorderRoutingPrefixTableEntry
struct otBorderRoutingPrefixTableEntry otBorderRoutingPrefixTableEntry
Rappresenta una voce della tabella del prefisso rilevato.
Le voci nella tabella rilevata tengono traccia delle opzioni relative a prefisso/informazioni sul percorso nei messaggi di annuncio relativi al router ricevuti da altri router sul collegamento dell'infrastruttura.
otBorderRoutingPrefixTableIterator
struct otBorderRoutingPrefixTableIterator otBorderRoutingPrefixTableIterator
Rappresenta un iteratore per l'iterazione attraverso la tabella dei prefissi rilevati dal router di confine.
I campi di questo tipo sono opachi (destinati solo all'utilizzo da parte del core OpenThread) e pertanto non devono essere accessibili o utilizzati dal chiamante.
Prima di utilizzare un iteratore, DEVE essere inizializzato utilizzando otBorderRoutingPrefixTableInitIterator()
.
otBorderRoutingRouterEntry
struct otBorderRoutingRouterEntry otBorderRoutingRouterEntry
Rappresenta un router rilevato sul collegamento dell'infrastruttura.
otPdProcessedRaInfo
struct otPdProcessedRaInfo otPdProcessedRaInfo
Rappresenta un gruppo di dati di messaggi RA generati dalla piattaforma e elaborati.
Funzioni
otBorderRoutingClearRouteInfoOptionPreference
void otBorderRoutingClearRouteInfoOptionPreference( otInstance *aInstance )
Cancella un valore di preferenza impostato in precedenza per le opzioni di informazioni sul percorso pubblicizzate.
Dopo una chiamata a questa funzione, BR utilizzerà il ruolo del dispositivo per determinare la preferenza RIO: Preferenza media nel ruolo di router/leader e bassa nel ruolo secondario.
Dettagli | |||
---|---|---|---|
Parametri |
|
otBorderRoutingClearRoutePreference
void otBorderRoutingClearRoutePreference( otInstance *aInstance )
Cancella un valore di preferenza impostato in precedenza per le route pubblicate in Dati di rete.
Dopo una chiamata a questa funzione, BR determinerà automaticamente la preferenza in base al ruolo del dispositivo e alla qualità del collegamento (al genitore quando agisce come dispositivo finale).
Dettagli | |||
---|---|---|---|
Parametri |
|
otBorderRoutingDhcp6PdGetState
otBorderRoutingDhcp6PdState otBorderRoutingDhcp6PdGetState( otInstance *aInstance )
Restituisce lo stato attuale della delega del prefisso DHCPv6.
Richiede l'attivazione di OPENTHREAD_CONFIG_BORDER_ROUTING_DHCP6_PD_ENABLE
.
Dettagli | |||
---|---|---|---|
Parametri |
|
||
Restituisce |
Lo stato attuale della delega del prefisso DHCPv6.
|
otBorderRoutingDhcp6PdSetEnabled
void otBorderRoutingDhcp6PdSetEnabled( otInstance *aInstance, bool aEnabled )
Attiva / disattiva la delega del prefisso DHCPv6.
OPENTHREAD_CONFIG_BORDER_ROUTING_DHCP6_PD_ENABLE
deve essere abilitato.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
otBorderRoutingGetFavoredNat64Prefix
otError otBorderRoutingGetFavoredNat64Prefix( otInstance *aInstance, otIp6Prefix *aPrefix, otRoutePreference *aPreference )
Restituisce il prefisso NAT64 attualmente favorito.
Il prefisso NAT64 preferito può essere rilevato dal collegamento dell'infrastruttura o può essere il prefisso NAT64 locale di questo dispositivo.
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Parametri |
|
||||||
Valori restituiti |
|
otBorderRoutingGetFavoredOmrPrefix
otError otBorderRoutingGetFavoredOmrPrefix( otInstance *aInstance, otIp6Prefix *aPrefix, otRoutePreference *aPreference )
Restituisce il prefisso OMR (Off-Mesh-Routable) attualmente favorito.
Il prefisso OMR preferito può essere rilevato da Dati di rete o può essere il prefisso OMR locale di questo dispositivo.
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Parametri |
|
||||||
Valori restituiti |
|
otBorderRoutingGetFavoredOnLinkPrefix
otError otBorderRoutingGetFavoredOnLinkPrefix( otInstance *aInstance, otIp6Prefix *aPrefix )
Restituisce il prefisso On-Link attualmente preferito.
Il prefisso preferito è un prefisso rilevato al link dell'infrastruttura o il prefisso locale al link.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
||||
Valori restituiti |
|
otBorderRoutingGetNat64Prefix
otError otBorderRoutingGetNat64Prefix( otInstance *aInstance, otIp6Prefix *aPrefix )
Restituisce 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 |
|
||||
Valori restituiti |
|
otBorderRoutingGetNextPrefixTableEntry
otError otBorderRoutingGetNextPrefixTableEntry( otInstance *aInstance, otBorderRoutingPrefixTableIterator *aIterator, otBorderRoutingPrefixTableEntry *aEntry )
Esegue l'iterazione sulle voci nella tabella dei prefissi rilevati dal router di confine.
È garantito che le voci di prefisso associate allo stesso router rilevato su un collegamento dell'infrastruttura siano raggruppate (recuperate in sequenza).
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Parametri |
|
||||||
Valori restituiti |
|
otBorderRoutingGetNextRouterEntry
otError otBorderRoutingGetNextRouterEntry( otInstance *aInstance, otBorderRoutingPrefixTableIterator *aIterator, otBorderRoutingRouterEntry *aEntry )
Itera sulle voci del router rilevate sul collegamento dell'infrastruttura.
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Parametri |
|
||||||
Valori restituiti |
|
otBorderRoutingGetOmrPrefix
otError otBorderRoutingGetOmrPrefix( otInstance *aInstance, otIp6Prefix *aPrefix )
Restituisce il prefisso Off-Mesh-Routable (OMR) locale, ad esempio fdfc:1ff5:1512:5622::/64
.
Un prefisso OMR è un prefisso a 64 bit generato in modo casuale che viene pubblicato nella rete Thread se non esiste già un prefisso OMR. Questo prefisso può essere raggiunto dalla rete Wi-Fi o Ethernet locale.
Nota: quando il protocollo DHCPv6 PD è abilitato, il router di confine potrebbe pubblicare il prefisso dal DP DHCPv6.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
||||
Valori restituiti |
|
otBorderRoutingGetPdOmrPrefix
otBorderRoutingGetOnLinkPrefix
otError otBorderRoutingGetOnLinkPrefix( otInstance *aInstance, otIp6Prefix *aPrefix )
Restituisce il prefisso On-Link locale per il collegamento dell'infrastruttura adiacente.
Il prefisso On-Link locale è un prefisso a 64 bit pubblicizzato sul collegamento dell'infrastruttura se non esiste già un prefisso on-link utilizzabile pubblicizzato nel link.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
||||
Valori restituiti |
|
otBorderRoutingGetPdOmrPrefix
otError otBorderRoutingGetPdOmrPrefix( otInstance *aInstance, otBorderRoutingPrefixTableEntry *aPrefixInfo )
Restituisce il prefisso OMR (Off-mesh-routable) fornito per la delega del prefisso DHCPv6.
Nelle informazioni relative al prefisso restituito vengono utilizzati solo i campi mPrefisso, mValidLifetime e mPreferredLifetime.
OPENTHREAD_CONFIG_BORDER_ROUTING_DHCP6_PD_ENABLE
deve essere abilitato.
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Parametri |
|
||||||
Valori restituiti |
|
otBorderRoutingGetOmrPrefix
otPlatBorderRoutingProcessIcmp6Ra
otBorderRoutingGetPdProcessedRaInfo
otError otBorderRoutingGetPdProcessedRaInfo( otInstance *aInstance, otPdProcessedRaInfo *aPdProcessedRaInfo )
Restituisce i dati del messaggio RA generato dalla piattaforma.
OPENTHREAD_CONFIG_BORDER_ROUTING_DHCP6_PD_ENABLE
deve essere abilitato.
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Parametri |
|
||||||
Valori restituiti |
|
otBorderRoutingGetRouteInfoOptionPreference
otRoutePreference otBorderRoutingGetRouteInfoOptionPreference( otInstance *aInstance )
Restituisce la preferenza corrente utilizzata per pubblicizzare il routing RIO (Route Info Info Opzioni) nei messaggi di annunci relativi al router inviati tramite il link dell'infrastruttura.
La preferenza RIO è determinata come segue:
- Se impostata esplicitamente dall'utente chiamando
otBorderRoutingSetRouteInfoOptionPreference()
, viene utilizzata la preferenza specificata. - In caso contrario, viene determinata in base all'attuale ruolo del dispositivo: preferenza media nel ruolo router/leader e bassa preferenza nel ruolo secondario.
Dettagli | |
---|---|
Restituisce |
La preferenza attuale per le informazioni sul percorso.
|
otBorderRoutingGetRoutePreference
otRoutePreference otBorderRoutingGetRoutePreference( otInstance *aInstance )
Restituisce la preferenza corrente utilizzata per le route pubblicate in Dati di rete.
La preferenza viene determinata nel seguente modo:
- Se impostata esplicitamente dall'utente chiamando
otBorderRoutingSetRoutePreference()
, viene utilizzata la preferenza specificata. - In caso contrario, viene determinato automaticamente da
RoutingManager
in base al ruolo del dispositivo e alla qualità del collegamento.
Dettagli | |||
---|---|---|---|
Parametri |
|
||
Restituisce |
La preferenza di percorso attualmente pubblicata.
|
otBorderRoutingGetState
otBorderRoutingState otBorderRoutingGetState( otInstance *aInstance )
Restituisce lo stato attuale di Border Routing Manager.
Dettagli | |||
---|---|---|---|
Parametri |
|
||
Restituisce |
Lo stato attuale di Border Routing Manager.
|
otBorderRoutingInit
otError otBorderRoutingInit( otInstance *aInstance, uint32_t aInfraIfIndex, bool aInfraIfIsRunning )
Inizializza Border Routing Manager sull'interfaccia dell'infrastruttura specificata.
Dettagli | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametri |
|
||||||||
Valori restituiti |
|
otPlatInfraIfStateChanged.
otBorderRoutingSetEnabled.
otBorderRoutingPrefixTableInitIterator
void otBorderRoutingPrefixTableInitIterator( otInstance *aInstance, otBorderRoutingPrefixTableIterator *aIterator )
Inizializza un otBorderRoutingPrefixTableIterator
.
Un iteratore DEVE essere inizializzato prima di essere utilizzato.
Un iteratore può essere inizializzato di nuovo per riavviarsi dall'inizio della tabella.
Durante l'iterazione delle voci nella tabella, per garantire che gli orari di aggiornamento delle voci mMsecSinceLastUpdate
siano coerenti, vengono assegnati in base al momento in cui l'iteratore è stato inizializzato.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
otBorderRoutingSetEnabled
otError otBorderRoutingSetEnabled( otInstance *aInstance, bool aEnabled )
Abilita o disabilita la gestione routing delle frontiere.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
||||
Valori restituiti |
|
otBorderRoutingSetRouteInfoOptionPreference
void otBorderRoutingSetRouteInfoOptionPreference( otInstance *aInstance, otRoutePreference aPreference )
Imposta in modo esplicito la preferenza da utilizzare per pubblicizzare il protocollo RIO (Route Info Info Opzioni) nei messaggi pubblicitari di router inviati tramite il link dell'infrastruttura.
Dopo una chiamata a questa funzione, BR utilizzerà la preferenza specificata per tutti gli RIO pubblicizzati. La preferenza può essere cancellata chiamando il numero otBorderRoutingClearRouteInfoOptionPreference()
.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
otBorderRoutingSetRoutePreference
void otBorderRoutingSetRoutePreference( otInstance *aInstance, otRoutePreference aPreference )
Imposta in modo esplicito la preferenza delle route pubblicate in Dati di rete.
Dopo una chiamata a questa funzione, BR utilizzerà la preferenza specificata. La preferenza può essere cancellata chiamando il numero otBorderRoutingClearRoutePreference()
.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
Risorse
Gli argomenti di riferimento dell'API OpenThread provengono dal codice sorgente, disponibile su GitHub. Per saperne di più o per contribuire alla nostra documentazione, consulta la sezione Risorse.