Border Routing Manager

Dieses Modul enthält Definitionen zum Border Routing Manager.

Zusammenfassung

Für alle Funktionen in diesem Modul muss OPENTHREAD_CONFIG_BORDER_ROUTING_ENABLE aktiviert sein.

Der Border Routing Manager übernimmt das bidirektionale Routing zwischen dem Thread-Netzwerk und dem angrenzenden Infrastrukturlink (AIL).

Es sendet RA-Nachrichten (ICMRv6 ND) an AIL, um On-Link- und Routenpräfixe zu bewerben. Es verarbeitet auch empfangene RA-Nachrichten von der Infrastruktur und spiegelt die erkannten Präfixe in den Thread-Netzwerkdaten, um sicherzustellen, dass Geräte im Thread-Mesh AIL über den Border Router erreichen können.

Der Routing-Manager verwaltet das OMR-Präfix (Off-Mesh Routable) in den Thread-Netzwerkdaten. Dadurch werden Thread-Geräte mit einer geeigneten routbaren IPv6-Adresse außerhalb des Mesh-Netzwerks konfiguriert. Die Erreichbarkeit dieses Präfixes bei AIL wird bekannt gegeben, indem es in die ausgegebenen RA-Nachrichten als IPv6-Route-Informationsoption (RIO) aufgenommen wird.

Routing Manager überwacht das Infrastrukturnetzwerk auch und fügt es dem Präfix „On-Link“ hinzu. Wenn ein Router bei AIL bereits RA-Nachrichten mit einer IPv6-Präfix-Informationsoption (PIO) bereitstellt, die es IPv6-Geräten auf dem Link ermöglicht, ihre eigene routbare Unicast-IPv6-Adresse selbst zu konfigurieren, kann diese Adresse von Thread-Geräten verwendet werden, um AIL zu erreichen. Wenn Border Router keine solche RA-Nachricht unter AIL findet, generiert er ein ULA-On-Link-Präfix, das dann in den ausgegebenen RA-Nachrichten bei AIL beworben wird.

Aufzählungen

otBorderRoutingDhcp6PdState{
  OT_BORDER_ROUTING_DHCP6_PD_STATE_DISABLED,
  OT_BORDER_ROUTING_DHCP6_PD_STATE_STOPPED,
  OT_BORDER_ROUTING_DHCP6_PD_STATE_RUNNING
}
enum
Diese Aufzählung stellt den Status des DHCPv6-Präfixdelegationsstatus dar.
otBorderRoutingState{
  OT_BORDER_ROUTING_STATE_UNINITIALIZED,
  OT_BORDER_ROUTING_STATE_DISABLED,
  OT_BORDER_ROUTING_STATE_STOPPED,
  OT_BORDER_ROUTING_STATE_RUNNING
}
enum
Stellt den Status des Border Routing Manager dar.

Typedefs

otBorderRoutingPrefixTableEntry typedef
Stellt einen Eintrag aus der erkannten Präfixtabelle dar.
otBorderRoutingPrefixTableIterator typedef
Stellt einen Iterator zum Durchlaufen der erkannten Präfixtabelle des Border-Routers dar.
otBorderRoutingRouterEntry typedef
Stellt einen erkannten Router unter der Infrastrukturverbindung dar.
otPdProcessedRaInfo typedef
Stellt eine Datengruppe von plattformgenerierten RA-Nachrichten dar, die verarbeitet wurden.

Funktionen

otBorderRoutingClearRouteInfoOptionPreference(otInstance *aInstance)
void
Löscht einen zuvor festgelegten Wert für die beworbenen Routeninformationen.
otBorderRoutingClearRoutePreference(otInstance *aInstance)
void
Löscht einen zuvor festgelegten Wert für veröffentlichte Routen in den Netzwerkdaten.
otBorderRoutingDhcp6PdGetState(otInstance *aInstance)
Ruft den aktuellen Status der DHCPv6-Präfixdelegierung ab.
otBorderRoutingDhcp6PdSetEnabled(otInstance *aInstance, bool aEnabled)
void
Aktiviert / deaktiviert die DHCPv6-Präfixdelegierung.
otBorderRoutingGetFavoredNat64Prefix(otInstance *aInstance, otIp6Prefix *aPrefix, otRoutePreference *aPreference)
Ruft das aktuell bevorzugte NAT64-Präfix ab.
otBorderRoutingGetFavoredOmrPrefix(otInstance *aInstance, otIp6Prefix *aPrefix, otRoutePreference *aPreference)
Ruft das aktuell bevorzugte ORM-Präfix (Off-Mesh-Routable) ab.
otBorderRoutingGetFavoredOnLinkPrefix(otInstance *aInstance, otIp6Prefix *aPrefix)
Ruft das aktuell bevorzugte On-Link-Präfix ab.
otBorderRoutingGetNat64Prefix(otInstance *aInstance, otIp6Prefix *aPrefix)
Ruft das lokale NAT64-Präfix des Border-Routers ab.
otBorderRoutingGetNextPrefixTableEntry(otInstance *aInstance, otBorderRoutingPrefixTableIterator *aIterator, otBorderRoutingPrefixTableEntry *aEntry)
Durchläuft die Einträge in der erkannten Präfixtabelle des Border-Routers.
otBorderRoutingGetNextRouterEntry(otInstance *aInstance, otBorderRoutingPrefixTableIterator *aIterator, otBorderRoutingRouterEntry *aEntry)
Iteriert über die erkannten Routereinträge auf der Infrastrukturverbindung.
otBorderRoutingGetOmrPrefix(otInstance *aInstance, otIp6Prefix *aPrefix)
Ruft das lokale ORM-Präfix (Off-Mesh-Routable) ab, z. B. fdfc:1ff5:1512:5622::/64.
otBorderRoutingGetOnLinkPrefix(otInstance *aInstance, otIp6Prefix *aPrefix)
Ruft das lokale On-Link-Präfix für den angrenzenden Infrastrukturlink ab.
otBorderRoutingGetPdOmrPrefix(otInstance *aInstance, otBorderRoutingPrefixTableEntry *aPrefixInfo)
Ruft das DHCPv6-Präfix-Delegation-Präfix (Off-Mesh-routable, OMR) ab.
otBorderRoutingGetPdProcessedRaInfo(otInstance *aInstance, otPdProcessedRaInfo *aPdProcessedRaInfo)
Ruft die Daten der verarbeiteten plattformgenerierten RA-Nachricht ab.
otBorderRoutingGetRouteInfoOptionPreference(otInstance *aInstance)
Ruft die aktuelle Einstellung ab, die beim Bewerben von Routeninformationsoptionen (RIO) in Router-Advertising-Nachrichten verwendet wird, die über den Infrastruktur-Link gesendet werden.
otBorderRoutingGetRoutePreference(otInstance *aInstance)
Ruft die aktuelle Einstellung für veröffentlichte Routen in Netzwerkdaten ab.
otBorderRoutingGetState(otInstance *aInstance)
Ruft den aktuellen Status des Border Routing Manager ab.
otBorderRoutingInit(otInstance *aInstance, uint32_t aInfraIfIndex, bool aInfraIfIsRunning)
Initialisiert den Border Routing Manager auf der gegebenen Infrastrukturschnittstelle.
otBorderRoutingPrefixTableInitIterator(otInstance *aInstance, otBorderRoutingPrefixTableIterator *aIterator)
void
otBorderRoutingSetEnabled(otInstance *aInstance, bool aEnabled)
Aktiviert oder deaktiviert den Border Routing Manager.
otBorderRoutingSetRouteInfoOptionPreference(otInstance *aInstance, otRoutePreference aPreference)
void
Hiermit wird explizit die Einstellung festgelegt, die beim Bewerben von Route Info Options (RIO) in Router-Ankündigungsnachrichten über den Infrastrukturlink verwendet werden soll.
otBorderRoutingSetRoutePreference(otInstance *aInstance, otRoutePreference aPreference)
void
Legt die Einstellung für veröffentlichte Routen in Netzwerkdaten explizit fest.

Strukturen

otBorderRoutingPrefixTableEntry

Stellt einen Eintrag aus der erkannten Präfixtabelle dar.

otBorderRoutingPrefixTableIterator

Stellt einen Iterator zum Durchlaufen der erkannten Präfixtabelle des Border-Routers dar.

otBorderRoutingRouterEntry

Stellt einen erkannten Router unter der Infrastrukturverbindung dar.

otPdProcessedRaInfo

Stellt eine Datengruppe von plattformgenerierten RA-Nachrichten dar, die verarbeitet wurden.

Aufzählungen

otBorderRoutingDhcp6PdState

 otBorderRoutingDhcp6PdState

Diese Aufzählung stellt den Status des DHCPv6-Präfixdelegationsstatus dar.

Attribute
OT_BORDER_ROUTING_DHCP6_PD_STATE_DISABLED

DHCPv6 PD ist auf dem Border-Router deaktiviert.

OT_BORDER_ROUTING_DHCP6_PD_STATE_RUNNING

DHCPv6-PD ist aktiviert und versucht, ein Präfix anzufordern und zu veröffentlichen.

OT_BORDER_ROUTING_DHCP6_PD_STATE_STOPPED

DHCPv6-PD ist aktiviert, es wird jedoch nicht versucht, ein Präfix anzufordern und zu veröffentlichen.

otBorderRoutingState

 otBorderRoutingState

Stellt den Status des Border Routing Manager dar.

Attribute
OT_BORDER_ROUTING_STATE_DISABLED

Routing Manager wurde initialisiert, aber deaktiviert.

OT_BORDER_ROUTING_STATE_RUNNING

Routing Manager ist initialisiert, aktiviert und wird ausgeführt.

OT_BORDER_ROUTING_STATE_STOPPED

Routing Manager ist initialisiert und aktiviert, aber derzeit angehalten.

OT_BORDER_ROUTING_STATE_UNINITIALIZED

Routing-Manager ist nicht initialisiert.

Typedefs

otBorderRoutingPrefixTableEntry

struct otBorderRoutingPrefixTableEntry otBorderRoutingPrefixTableEntry

Stellt einen Eintrag aus der erkannten Präfixtabelle dar.

Die Einträge in der erkannten Tabelle verfolgen die Optionen für Präfix-/Routeninformationen in den empfangenen Router-Ankündigungsnachrichten von anderen Routern über den Infrastrukturlink.

otBorderRoutingPrefixTableIterator

struct otBorderRoutingPrefixTableIterator otBorderRoutingPrefixTableIterator

Stellt einen Iterator zum Durchlaufen der erkannten Präfixtabelle des Border-Routers dar.

Die Felder in diesem Typ sind intransparent (nur zur Verwendung durch den OpenThread-Kern vorgesehen) und sollten daher nicht vom Aufrufer aufgerufen oder verwendet werden.

Vor der Verwendung eines Listeners MUSS er mit otBorderRoutingPrefixTableInitIterator() initialisiert werden.

otBorderRoutingRouterEntry

struct otBorderRoutingRouterEntry otBorderRoutingRouterEntry

Stellt einen erkannten Router unter der Infrastrukturverbindung dar.

otPdProcessedRaInfo

struct otPdProcessedRaInfo otPdProcessedRaInfo

Stellt eine Datengruppe von plattformgenerierten RA-Nachrichten dar, die verarbeitet wurden.

Funktionen

otBorderRoutingClearRouteInfoOptionPreference

void otBorderRoutingClearRouteInfoOptionPreference(
  otInstance *aInstance
)

Löscht einen zuvor festgelegten Wert für die beworbenen Routeninformationen.

Nach dem Aufruf dieser Funktion verwendet der BR nutzt die Rolle des Geräts, um die RIO-Präferenz zu bestimmen: mittlere Präferenz für Router/Leader und niedrige Präferenz für untergeordnete Rolle.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.

otBorderRoutingClearRoutePreference

void otBorderRoutingClearRoutePreference(
  otInstance *aInstance
)

Löscht einen zuvor festgelegten Wert für veröffentlichte Routen in den Netzwerkdaten.

Nach dem Aufruf dieser Funktion bestimmt die BR die Präferenz automatisch basierend auf der Rolle des Geräts und der Linkqualität (wenn es als Endgerät fungiert).

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.

otBorderRoutingDhcp6PdGetState

otBorderRoutingDhcp6PdState otBorderRoutingDhcp6PdGetState(
  otInstance *aInstance
)

Ruft den aktuellen Status der DHCPv6-Präfixdelegierung ab.

Hierfür muss OPENTHREAD_CONFIG_BORDER_ROUTING_DHCP6_PD_ENABLE aktiviert sein.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
Rückgabe
Der aktuelle Status der DHCPv6-Präfixdelegierung.

otBorderRoutingDhcp6PdSetEnabled

void otBorderRoutingDhcp6PdSetEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Aktiviert / deaktiviert die DHCPv6-Präfixdelegierung.

OPENTHREAD_CONFIG_BORDER_ROUTING_DHCP6_PD_ENABLE muss aktiviert sein.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aEnabled
Gibt an, ob von der Plattform generierte RA-Mitteilungen akzeptiert werden.

otBorderRoutingGetFavoredNat64Prefix

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

Ruft das aktuell bevorzugte NAT64-Präfix ab.

Das bevorzugte NAT64-Präfix kann über den Infrastrukturlink erkannt werden oder das lokale NAT64-Präfix dieses Geräts sein.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[out] aPrefix
Ein Zeiger zur Ausgabe des bevorzugten NAT64-Präfixes.
[out] aPreference
Ein Zeiger zur Ausgabe der Einstellung, die dem bevorzugten Präfix zugeordnet ist.
Rückgabewerte
OT_ERROR_INVALID_STATE
Der Border Routing Manager wurde noch nicht initialisiert.
OT_ERROR_NONE
Bevorzugtes NAT64-Präfix wurde abgerufen.

otBorderRoutingGetFavoredOmrPrefix

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

Ruft das aktuell bevorzugte ORM-Präfix (Off-Mesh-Routable) ab.

Das bevorzugte OMR-Präfix kann aus den Netzwerkdaten ermittelt werden oder das lokale OMR-Präfix dieses Geräts sein.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[out] aPrefix
Ein Zeiger zur Ausgabe des bevorzugten OMR-Präfixes.
[out] aPreference
Ein Zeiger zur Ausgabe der Einstellung, die dem bevorzugten Präfix zugeordnet ist.
Rückgabewerte
OT_ERROR_INVALID_STATE
Der Border Routing Manager wird noch nicht ausgeführt.
OT_ERROR_NONE
Das bevorzugte OMR-Präfix wurde abgerufen.

otBorderRoutingGetFavoredOnLinkPrefix

otError otBorderRoutingGetFavoredOnLinkPrefix(
  otInstance *aInstance,
  otIp6Prefix *aPrefix
)

Ruft das aktuell bevorzugte On-Link-Präfix ab.

Das bevorzugte Präfix ist entweder ein erkanntes On-Link-Präfix auf der Infrastrukturverbindung oder das lokale On-Link-Präfix.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[out] aPrefix
Ein Zeiger an die Stelle, an der das Präfix ausgegeben wird.
Rückgabewerte
OT_ERROR_INVALID_STATE
Der Border Routing Manager wurde noch nicht initialisiert.
OT_ERROR_NONE
Bevorzugtes On-Link-Präfix wurde abgerufen.

otBorderRoutingGetNat64Prefix

otError otBorderRoutingGetNat64Prefix(
  otInstance *aInstance,
  otIp6Prefix *aPrefix
)

Ruft das lokale NAT64-Präfix des Border-Routers ab.

Das NAT64-Präfix wird im Thread-Netzwerk möglicherweise nicht beworben.

OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE muss aktiviert sein.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[out] aPrefix
Ein Zeiger an die Stelle, an der das Präfix ausgegeben wird.
Rückgabewerte
OT_ERROR_INVALID_STATE
Der Border Routing Manager wurde noch nicht initialisiert.
OT_ERROR_NONE
Das NAT64-Präfix wurde abgerufen.

otBorderRoutingGetNextPrefixTableEntry

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

Durchläuft die Einträge in der erkannten Präfixtabelle des Border-Routers.

Präfixeinträge, die mit demselben erkannten Router in einer Infrastrukturverbindung verknüpft sind, werden garantiert gruppiert (rückläufig abgerufen).

Details
Parameter
[in] aInstance
Die OpenThread-Instanz.
[in,out] aIterator
Ein Zeiger auf den Iteration.
[out] aEntry
Ein Zeiger auf den Eintrag, der ausgefüllt werden soll.
Rückgabewerte
OT_ERROR_NONE
Zum nächsten Eintrag iteriert: aEntry und aIterator werden aktualisiert.
OT_ERROR_NOT_FOUND
Keine weiteren Einträge in der Tabelle.

otBorderRoutingGetNextRouterEntry

otError otBorderRoutingGetNextRouterEntry(
  otInstance *aInstance,
  otBorderRoutingPrefixTableIterator *aIterator,
  otBorderRoutingRouterEntry *aEntry
)

Iteriert über die erkannten Routereinträge auf der Infrastrukturverbindung.

Details
Parameter
[in] aInstance
Die OpenThread-Instanz.
[in,out] aIterator
Ein Zeiger auf den Iteration.
[out] aEntry
Ein Zeiger auf den Eintrag, der ausgefüllt werden soll.
Rückgabewerte
OT_ERROR_NONE
Zum nächsten Router iteriert, werden aEntry und aIterator aktualisiert.
OT_ERROR_NOT_FOUND
Keine weiteren Router-Einträge.

otBorderRoutingGetOmrPrefix

otError otBorderRoutingGetOmrPrefix(
  otInstance *aInstance,
  otIp6Prefix *aPrefix
)

Ruft das lokale ORM-Präfix (Off-Mesh-Routable) ab, z. B. fdfc:1ff5:1512:5622::/64.

Ein OMR-Präfix ist ein zufällig generiertes 64-Bit-Präfix, das im Thread-Netzwerk veröffentlicht wird, wenn noch kein OMR-Präfix vorhanden ist. Dieses Präfix ist über das lokale WLAN oder Ethernet-Netzwerk erreichbar.

Hinweis: Wenn DHCPv6 PD aktiviert ist, kann der Border-Router das Präfix des DHCPv6 PD veröffentlichen.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[out] aPrefix
Ein Zeiger an die Stelle, an der das Präfix ausgegeben wird.
Rückgabewerte
OT_ERROR_INVALID_STATE
Der Border Routing Manager wurde noch nicht initialisiert.
OT_ERROR_NONE
OMR-Präfix wurde abgerufen.
Weitere Informationen:
otBorderRoutingGetPdOmrPrefix

otBorderRoutingGetOnLinkPrefix

otError otBorderRoutingGetOnLinkPrefix(
  otInstance *aInstance,
  otIp6Prefix *aPrefix
)

Ruft das lokale On-Link-Präfix für den angrenzenden Infrastrukturlink ab.

Das lokale On-Link-Präfix ist ein 64-Bit-Präfix, das im Infrastrukturlink beworben wird, wenn auf dem Link noch kein nutzbares On-Link-Präfix beworben wird.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[out] aPrefix
Ein Zeiger an die Stelle, an der das Präfix ausgegeben wird.
Rückgabewerte
OT_ERROR_INVALID_STATE
Der Border Routing Manager wurde noch nicht initialisiert.
OT_ERROR_NONE
Das lokale On-Link-Präfix wurde abgerufen.

otBorderRoutingGetPdOmrPrefix

otError otBorderRoutingGetPdOmrPrefix(
  otInstance *aInstance,
  otBorderRoutingPrefixTableEntry *aPrefixInfo
)

Ruft das DHCPv6-Präfix-Delegation-Präfix (Off-Mesh-routable, OMR) ab.

In den zurückgegebenen Präfixinformationen werden nur die Felder „mPräfix“, „mValidLifetime“ und „mPreferredLifetime“ verwendet.

OPENTHREAD_CONFIG_BORDER_ROUTING_DHCP6_PD_ENABLE muss aktiviert sein.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[out] aPrefixInfo
Ein Zeiger auf den Ort, an den die Präfixinformationen ausgegeben werden.
Rückgabewerte
OT_ERROR_NONE
OMR-Präfix wurde abgerufen.
OT_ERROR_INVALID_STATE
Der Border Routing Manager wurde noch nicht initialisiert.
OT_ERROR_NOT_FOUND
In diesem BR ist kein gültiges PD-Präfix vorhanden.
Weitere Informationen:
otBorderRoutingGetOmrPrefix
otPlatBorderRoutingProcessIcmp6Ra

otBorderRoutingGetPdProcessedRaInfo

otError otBorderRoutingGetPdProcessedRaInfo(
  otInstance *aInstance,
  otPdProcessedRaInfo *aPdProcessedRaInfo
)

Ruft die Daten der verarbeiteten plattformgenerierten RA-Nachricht ab.

OPENTHREAD_CONFIG_BORDER_ROUTING_DHCP6_PD_ENABLE muss aktiviert sein.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[out] aPrefixInfo
Ein Zeiger auf den Ort, an den die Präfixinformationen ausgegeben werden.
Rückgabewerte
OT_ERROR_NONE
Informationen wurden abgerufen.
OT_ERROR_INVALID_STATE
Der Border Routing Manager wurde noch nicht initialisiert.
OT_ERROR_NOT_FOUND
Es gibt keine gültigen Informationen zu diesem BR.

otBorderRoutingGetRouteInfoOptionPreference

otRoutePreference otBorderRoutingGetRouteInfoOptionPreference(
  otInstance *aInstance
)

Ruft die aktuelle Einstellung ab, die beim Bewerben von Routeninformationsoptionen (RIO) in Router-Advertising-Nachrichten verwendet wird, die über den Infrastruktur-Link gesendet werden.

Die RIO-Einstellung wird wie folgt bestimmt:

  • Wenn dies explizit durch den Nutzer durch Aufrufen von otBorderRoutingSetRouteInfoOptionPreference() festgelegt wird, wird die angegebene Einstellung verwendet.
  • Andernfalls wird sie anhand der aktuellen Rolle des Geräts bestimmt: Mittlere Präferenz bei der Rolle „Router/Leader“ und niedrige Präferenz für Kinder.

Details
Rückgabe
Die aktuelle Einstellung für die Option „Routeninformationen“.

otBorderRoutingGetRoutePreference

otRoutePreference otBorderRoutingGetRoutePreference(
  otInstance *aInstance
)

Ruft die aktuelle Einstellung für veröffentlichte Routen in Netzwerkdaten ab.

Die Präferenz wird wie folgt bestimmt:

  • Wenn dies explizit durch den Nutzer durch Aufrufen von otBorderRoutingSetRoutePreference() festgelegt wird, wird die angegebene Einstellung verwendet.
  • Andernfalls wird sie automatisch von RoutingManager auf Grundlage der Rolle des Geräts und der Linkqualität ermittelt.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
Rückgabe
Die aktuell veröffentlichte Routeneinstellung.

otBorderRoutingGetState

otBorderRoutingState otBorderRoutingGetState(
  otInstance *aInstance
)

Ruft den aktuellen Status des Border Routing Manager ab.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
Rückgabe
Der aktuelle Status des Border Routing Manager.

otBorderRoutingInit

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

Initialisiert den Border Routing Manager auf der gegebenen Infrastrukturschnittstelle.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aInfraIfIndex
Der Index der Infrastrukturschnittstelle.
[in] aInfraIfIsRunning
Ein boolescher Wert, der angibt, ob die Infrastrukturschnittstelle ausgeführt wird.
Rückgabewerte
OT_ERROR_NONE
Border Routing Manager wurde für die angegebene Infrastruktur gestartet.
OT_ERROR_INVALID_STATE
Der Border Routing Manager ist nicht deaktiviert oder nicht initialisiert.
OT_ERROR_INVALID_ARGS
Der Index der Infrastrukturschnittstelle ist ungültig.
OT_ERROR_FAILED
Interner Fehler. Dies ist in der Regel auf Fehler beim Generieren von zufälligen Präfixen zurückzuführen.
Siehe auch:
otPlatInfraIfStateChanged.
otBorderRoutingSetEnabled.

otBorderRoutingPrefixTableInitIterator

void otBorderRoutingPrefixTableInitIterator(
  otInstance *aInstance,
  otBorderRoutingPrefixTableIterator *aIterator
)

Initialisiert ein otBorderRoutingPrefixTableIterator.

Ein Iterator MUSS initialisiert werden, bevor er verwendet wird.

Ein Iterator kann wieder initialisiert werden, um am Anfang der Tabelle neu zu starten.

Wenn Sie über Einträge in der Tabelle iterieren, werden sie in Relation zur Zeit angegeben, zu der der Iterator initialisiert wurde, um sicherzustellen, dass die Aktualisierungszeiten mMsecSinceLastUpdate der Einträge konsistent sind.

Details
Parameter
[in] aInstance
Die OpenThread-Instanz.
[out] aIterator
Ein Zeiger auf den zu initialisierenden Iterator.

otBorderRoutingSetEnabled

otError otBorderRoutingSetEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Aktiviert oder deaktiviert den Border Routing Manager.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aEnabled
Ein boolescher Wert zum Aktivieren/Deaktivieren des Routing-Managers.
Rückgabewerte
OT_ERROR_INVALID_STATE
Der Border Routing Manager wurde noch nicht initialisiert.
OT_ERROR_NONE
Border Routing Manager wurde aktiviert/deaktiviert.

otBorderRoutingSetRouteInfoOptionPreference

void otBorderRoutingSetRouteInfoOptionPreference(
  otInstance *aInstance,
  otRoutePreference aPreference
)

Hiermit wird explizit die Einstellung festgelegt, die beim Bewerben von Route Info Options (RIO) in Router-Ankündigungsnachrichten über den Infrastrukturlink verwendet werden soll.

Nach dem Aufruf dieser Funktion verwendet die BR die vorgegebenen Präferenzen für alle beworbenen RIOs. Sie können die Einstellung durch Aufrufen von otBorderRoutingClearRouteInfoOptionPreference() löschen.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aPreference
Die zu verwendende Routeneinstellung.

otBorderRoutingSetRoutePreference

void otBorderRoutingSetRoutePreference(
  otInstance *aInstance,
  otRoutePreference aPreference
)

Legt die Einstellung für veröffentlichte Routen in Netzwerkdaten explizit fest.

Nach dem Aufruf dieser Funktion verwendet die BR die vorgegebenen Präferenzen. Sie können die Einstellung durch Aufrufen von otBorderRoutingClearRoutePreference() löschen.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aPreference
Die zu verwendende Routeneinstellung.

Ressourcen

OpenThread API-Referenzthemen stammen aus dem Quellcode, der auf GitHub verfügbar ist. Weitere Informationen finden Sie unter Ressourcen. Dort können Sie auch einen Beitrag zu unserer Dokumentation leisten.