Menedżer routingu granic
Ten moduł zawiera definicje związane z menedżerem routingu granic.
Podsumowanie
Wszystkie funkcje w tym module wymagają włączenia klasy OPENTHREAD_CONFIG_BORDER_ROUTING_ENABLE
.
Menedżer routingu granic obsługuje routing dwukierunkowy między siecią Thread i sąsiednim połączeniem infrastruktury (AIL).
Wysyła komunikaty ICMRv6 ND Router Advertisement (RA) w AIL, aby reklamować prefiksy tras i linków typu on-link. Przetwarza też odbierane komunikaty RA z infrastruktury i powiela wykryte prefiksy w danych sieci typu Thread, aby urządzenia w siatce typu Thread mogły uzyskać dostęp do AIL przez router Border Router.
Menedżer routingu zarządza prefiksem OOMR (Off-Mesh Routable) w danych sieci Thread, przez co konfiguruje urządzenia Thread z odpowiednim adresem IPv6 poza siecią. Ogłasza osiągalność tego prefiksu w AIL, dołączając go do wysyłanych komunikatów RA jako opcję informacji o trasie IPv6 (RIO).
Menedżer routingu monitoruje też i dodaje prefiks połączenia w sieci infrastruktury. Jeśli router w AIL udostępnia już komunikaty RA zawierające opcję informacji o prefiksie IPv6 (PIO), która umożliwia urządzeniom IPv6 w linku samodzielne konfigurowanie własnych adresów IPv6 ujednoliconego routingu, urządzenia Thread mogą używać tego adresu do łączenia się z AIL. Jeśli router Border Router nie znajdzie takiego komunikatu RA w AIL, generuje prefiks ULA on-link, który następnie reklamuje w AIL w wysyłanych komunikatach RA.
Wyliczenia |
|
---|---|
otBorderRoutingDhcp6PdState{
|
enum | typ wyliczeniowy Ta liczba reprezentuje stan stanu delegacji prefiksu DHCPv6. |
otBorderRoutingState{
|
enum | typ wyliczeniowy Reprezentuje stan menedżera granic granic. |
Definicje typów |
|
---|---|
otBorderRoutingPrefixTableEntry
|
typedef Reprezentuje wpis z tabeli wykrytych prefiksów. |
otBorderRoutingPrefixTableIterator
|
typedef Reprezentuje iterator służący do iteracji z użyciem tabeli wykrytych prefiksów routera Border Router. |
otBorderRoutingRouterEntry
|
typedefstruct otBorderRoutingRouterEntry
Reprezentuje wykryty router w połączeniu z infrastrukturą. |
otPdProcessedRaInfo
|
typedefstruct otPdProcessedRaInfo
Reprezentuje grupę danych przetworzonych wiadomości dotyczących RA wygenerowanych przez platformę. |
Funkcje |
|
---|---|
otBorderRoutingClearRouteInfoOptionPreference(otInstance *aInstance)
|
void
Usuwa wcześniej ustawioną wartość preferencji dla rozgłaszanych opcji informacji o trasie.
|
otBorderRoutingClearRoutePreference(otInstance *aInstance)
|
void
Usuwa wcześniej ustawioną wartość preferencji dla opublikowanych tras w danych sieci.
|
otBorderRoutingDhcp6PdGetState(otInstance *aInstance)
|
Pobiera bieżący stan przekazywania prefiksu DHCPv6.
|
otBorderRoutingDhcp6PdSetEnabled(otInstance *aInstance, bool aEnabled)
|
void
Włącza / wyłącza przekazywanie prefiksów DHCPv6.
|
otBorderRoutingGetFavoredNat64Prefix(otInstance *aInstance, otIp6Prefix *aPrefix, otRoutePreference *aPreference)
|
Pobiera obecnie preferowany prefiks NAT64.
|
otBorderRoutingGetFavoredOmrPrefix(otInstance *aInstance, otIp6Prefix *aPrefix, otRoutePreference *aPreference)
|
Pobiera preferowany prefiks Off-Mesh-Routable (OMR).
|
otBorderRoutingGetFavoredOnLinkPrefix(otInstance *aInstance, otIp6Prefix *aPrefix)
|
Pobiera obecnie preferowany prefiks On-Link.
|
otBorderRoutingGetNat64Prefix(otInstance *aInstance, otIp6Prefix *aPrefix)
|
Pobiera lokalny prefiks NAT64 routera Border Router.
|
otBorderRoutingGetNextPrefixTableEntry(otInstance *aInstance, otBorderRoutingPrefixTableIterator *aIterator, otBorderRoutingPrefixTableEntry *aEntry)
|
Powtarza się względem wpisów w tabeli wykrytych prefiksów routera Border Router.
|
otBorderRoutingGetNextRouterEntry(otInstance *aInstance, otBorderRoutingPrefixTableIterator *aIterator, otBorderRoutingRouterEntry *aEntry)
|
Przeprowadza iteracje nad wykrytych wpisami routera w połączeniu z infrastrukturą.
|
otBorderRoutingGetOmrPrefix(otInstance *aInstance, otIp6Prefix *aPrefix)
|
Pobiera lokalny prefiks OMR (off-Mesh-Routable), na przykład
fdfc:1ff5:1512:5622::/64 . |
otBorderRoutingGetOnLinkPrefix(otInstance *aInstance, otIp6Prefix *aPrefix)
|
Pobiera lokalny prefiks On-Link dla sąsiedniego linku do infrastruktury.
|
otBorderRoutingGetPdOmrPrefix(otInstance *aInstance, otBorderRoutingPrefixTableEntry *aPrefixInfo)
|
Pobiera prefiks delegacji prefiksu DHCPv6 (PD) udostępniony poza siecią typu mesh (OMR).
|
otBorderRoutingGetPdProcessedRaInfo(otInstance *aInstance, otPdProcessedRaInfo *aPdProcessedRaInfo)
|
Pobiera dane z przetworzonej wiadomości dotyczącej konta RA wygenerowanego przez platformę.
|
otBorderRoutingGetRouteInfoOptionPreference(otInstance *aInstance)
|
Pobiera bieżące ustawienie używane podczas reklamowania opcji informacji o trasach (RIO) w komunikatach Reklam routera wysyłanych przez link infrastruktury.
|
otBorderRoutingGetRoutePreference(otInstance *aInstance)
|
Pobiera bieżące ustawienie używane w przypadku opublikowanych tras w danych sieci.
|
otBorderRoutingGetState(otInstance *aInstance)
|
Pobiera bieżący stan menedżera routingu granic.
|
otBorderRoutingInit(otInstance *aInstance, uint32_t aInfraIfIndex, bool aInfraIfIsRunning)
|
Inicjuje menedżera granic granicznych w danym interfejsie infrastruktury.
|
otBorderRoutingPrefixTableInitIterator(otInstance *aInstance, otBorderRoutingPrefixTableIterator *aIterator)
|
void
Inicjuje
otBorderRoutingPrefixTableIterator . |
otBorderRoutingSetEnabled(otInstance *aInstance, bool aEnabled)
|
Włącza lub wyłącza menedżera routingu granic.
|
otBorderRoutingSetRouteInfoOptionPreference(otInstance *aInstance, otRoutePreference aPreference)
|
void
Jednoznacznie ustawia ustawienie używane podczas reklamowania opcji informacji o trasach (RIO) w komunikatach z reklamami routera wysyłanych przez link infrastruktury.
|
otBorderRoutingSetRoutePreference(otInstance *aInstance, otRoutePreference aPreference)
|
void
Wyraźnie określa preferencje dotyczące opublikowanych tras w danych sieci.
|
Konstrukcja |
|
---|---|
otBorderRoutingPrefixTableEntry |
Reprezentuje wpis z tabeli wykrytych prefiksów. |
otBorderRoutingPrefixTableIterator |
Reprezentuje iterator służący do iteracji z użyciem tabeli wykrytych prefiksów routera Border Router. |
otBorderRoutingRouterEntry |
Reprezentuje wykryty router w połączeniu z infrastrukturą. |
otPdProcessedRaInfo |
Reprezentuje grupę danych przetworzonych wiadomości dotyczących RA wygenerowanych przez platformę. |
Wyliczenia
otBorderRoutingDhcp6PdState
otBorderRoutingDhcp6PdState
Ta liczba reprezentuje stan stanu delegacji prefiksu DHCPv6.
Właściwości | |
---|---|
OT_BORDER_ROUTING_DHCP6_PD_STATE_DISABLED
|
Protokół DHCPv6 PD jest wyłączony na routerze granicznym. |
OT_BORDER_ROUTING_DHCP6_PD_STATE_RUNNING
|
Protokół DHCPv6 PD jest włączony i będzie próbował zażądać prefiksu i go opublikować. |
OT_BORDER_ROUTING_DHCP6_PD_STATE_STOPPED
|
Protokół DHCPv6 PD jest włączony, ale nie próbuje żądać i publikować prefiksu. |
otBorderRoutingState
otBorderRoutingState
Reprezentuje stan menedżera granic granic.
Właściwości | |
---|---|
OT_BORDER_ROUTING_STATE_DISABLED
|
Menedżer routingu został zainicjowany, ale wyłączony. |
OT_BORDER_ROUTING_STATE_RUNNING
|
Menedżer routingu został zainicjowany, włączony i uruchomiony. |
OT_BORDER_ROUTING_STATE_STOPPED
|
Menedżer routingu został zainicjowany i włączony, ale obecnie wstrzymany. |
OT_BORDER_ROUTING_STATE_UNINITIALIZED
|
Nie zainicjowano menedżera routingu. |
Definicje typów
otBorderRoutingPrefixTableEntry
struct otBorderRoutingPrefixTableEntry otBorderRoutingPrefixTableEntry
Reprezentuje wpis z tabeli wykrytych prefiksów.
Wpisy w wykrytej tabeli śledzą opcje prefiksu i informacji o trasie w otrzymanych komunikatach o reklamie routera od innych routerów w linku infrastruktury.
otBorderRoutingPrefixTableIterator
struct otBorderRoutingPrefixTableIterator otBorderRoutingPrefixTableIterator
Reprezentuje iterator służący do iteracji z użyciem tabeli wykrytych prefiksów routera Border Router.
Pola tego typu są nieprzejrzyste (przeznaczone tylko do użytku przez rdzeni OpenThread), więc element wywołujący nie powinien ich używać ani uzyskiwać do nich dostępu.
Przed użyciem iteratora MUSI zostać zainicjowana za pomocą właściwości otBorderRoutingPrefixTableInitIterator()
.
otBorderRoutingRouterEntry
struct otBorderRoutingRouterEntry otBorderRoutingRouterEntry
Reprezentuje wykryty router w połączeniu z infrastrukturą.
otPdProcessedRaInfo
struct otPdProcessedRaInfo otPdProcessedRaInfo
Reprezentuje grupę danych przetworzonych wiadomości dotyczących RA wygenerowanych przez platformę.
Funkcje
otBorderRoutingClearRouteInfoOptionPreference
void otBorderRoutingClearRouteInfoOptionPreference( otInstance *aInstance )
Usuwa wcześniej ustawioną wartość preferencji dla rozgłaszanych opcji informacji o trasie.
Po wywołaniu tej funkcji BR użyje roli urządzenia do określenia preferencji RIO: średnia w przypadku roli routera/lidera i niskie preferencje w przypadku roli podrzędnej.
Szczegóły | |||
---|---|---|---|
Parametry |
|
otBorderRoutingClearRoutePreference
void otBorderRoutingClearRoutePreference( otInstance *aInstance )
Usuwa wcześniej ustawioną wartość preferencji dla opublikowanych tras w danych sieci.
Po wywołaniu tej funkcji BR automatycznie określi tę preferencję na podstawie roli urządzenia i jakości linku (dla rodzica, gdy działa jako urządzenie końcowe).
Szczegóły | |||
---|---|---|---|
Parametry |
|
otBorderRoutingDhcp6PdGetState
otBorderRoutingDhcp6PdState otBorderRoutingDhcp6PdGetState( otInstance *aInstance )
Pobiera bieżący stan przekazywania prefiksu DHCPv6.
Wymaga włączenia zasady OPENTHREAD_CONFIG_BORDER_ROUTING_DHCP6_PD_ENABLE
.
Szczegóły | |||
---|---|---|---|
Parametry |
|
||
Zwroty |
Bieżący stan przekazywania prefiksu DHCPv6.
|
otBorderRoutingDhcp6PdSetEnabled
void otBorderRoutingDhcp6PdSetEnabled( otInstance *aInstance, bool aEnabled )
Włącza / wyłącza przekazywanie prefiksów DHCPv6.
Aplikacja OPENTHREAD_CONFIG_BORDER_ROUTING_DHCP6_PD_ENABLE
musi być włączona.
Szczegóły | |||||
---|---|---|---|---|---|
Parametry |
|
otBorderRoutingGetFavoredNat64Prefix
otError otBorderRoutingGetFavoredNat64Prefix( otInstance *aInstance, otIp6Prefix *aPrefix, otRoutePreference *aPreference )
Pobiera obecnie preferowany prefiks NAT64.
Ulubiony prefiks NAT64 można wykryć za pomocą połączenia infrastruktury lub może to być lokalny prefiks NAT64 urządzenia.
Szczegóły | |||||||
---|---|---|---|---|---|---|---|
Parametry |
|
||||||
Zwracane wartości |
|
otBorderRoutingGetFavoredOmrPrefix
otError otBorderRoutingGetFavoredOmrPrefix( otInstance *aInstance, otIp6Prefix *aPrefix, otRoutePreference *aPreference )
Pobiera preferowany prefiks Off-Mesh-Routable (OMR).
Ulubiony prefiks OMR można wykryć w danych sieci lub może to być lokalny prefiks OMR urządzenia.
Szczegóły | |||||||
---|---|---|---|---|---|---|---|
Parametry |
|
||||||
Zwracane wartości |
|
otBorderRoutingGetFavoredOnLinkPrefix
otError otBorderRoutingGetFavoredOnLinkPrefix( otInstance *aInstance, otIp6Prefix *aPrefix )
Pobiera obecnie preferowany prefiks On-Link.
Prefiks preferowany to prefiks wykryty w linku infrastruktury lub lokalny prefiks w linku.
Szczegóły | |||||
---|---|---|---|---|---|
Parametry |
|
||||
Zwracane wartości |
|
otBorderRoutingGetNat64Prefix
otError otBorderRoutingGetNat64Prefix( otInstance *aInstance, otIp6Prefix *aPrefix )
Pobiera lokalny prefiks NAT64 routera Border Router.
Prefiks NAT64 może nie być rozgłaszany w sieci Thread.
Aplikacja OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
musi być włączona.
Szczegóły | |||||
---|---|---|---|---|---|
Parametry |
|
||||
Zwracane wartości |
|
otBorderRoutingGetNextPrefixTableEntry
otError otBorderRoutingGetNextPrefixTableEntry( otInstance *aInstance, otBorderRoutingPrefixTableIterator *aIterator, otBorderRoutingPrefixTableEntry *aEntry )
Powtarza się względem wpisów w tabeli wykrytych prefiksów routera Border Router.
Wpisy prefiksu powiązane z tym samym wykrytym routerem w połączeniu z infrastrukturą są gwarantowane zgrupowane (pobrane po kolei).
Szczegóły | |||||||
---|---|---|---|---|---|---|---|
Parametry |
|
||||||
Zwracane wartości |
|
otBorderRoutingGetNextRouterEntry
otError otBorderRoutingGetNextRouterEntry( otInstance *aInstance, otBorderRoutingPrefixTableIterator *aIterator, otBorderRoutingRouterEntry *aEntry )
Przeprowadza iteracje nad wykrytych wpisami routera w połączeniu z infrastrukturą.
Szczegóły | |||||||
---|---|---|---|---|---|---|---|
Parametry |
|
||||||
Zwracane wartości |
|
otBorderRoutingGetOmrPrefix
otError otBorderRoutingGetOmrPrefix( otInstance *aInstance, otIp6Prefix *aPrefix )
Pobiera lokalny prefiks OMR (off-Mesh-Routable), na przykład fdfc:1ff5:1512:5622::/64
.
Prefiks OMR to generowany losowo 64-bitowy prefiks opublikowany w sieci Thread, jeśli nie ma jeszcze prefiksu OMR. Możesz połączyć się z tym prefiksem przez lokalną sieć Wi-Fi lub Ethernet.
Uwaga: gdy włączony jest protokół DHCPv6 PD, router brzegowy może opublikować prefiks z DHCPv6 PD.
Szczegóły | |||||
---|---|---|---|---|---|
Parametry |
|
||||
Zwracane wartości |
|
otBorderRoutingGetPdOmrPrefix
otBorderRoutingGetOnLinkPrefix
otError otBorderRoutingGetOnLinkPrefix( otInstance *aInstance, otIp6Prefix *aPrefix )
Pobiera lokalny prefiks On-Link dla sąsiedniego linku do infrastruktury.
Lokalny prefiks On-Link jest 64-bitowym prefiksem, który jest rozgłaszany w linku infrastruktury, jeśli nie ma jeszcze rozgłaszany w ramach linku użytego prefiksu on-link.
Szczegóły | |||||
---|---|---|---|---|---|
Parametry |
|
||||
Zwracane wartości |
|
otBorderRoutingGetPdOmrPrefix
otError otBorderRoutingGetPdOmrPrefix( otInstance *aInstance, otBorderRoutingPrefixTableEntry *aPrefixInfo )
Pobiera prefiks delegacji prefiksu DHCPv6 (PD) udostępniony poza siecią typu mesh (OMR).
W zwracanych informacjach o prefiksie używane są tylko pola mPrefix, mValidRevenue i mPreferredklima.
Aplikacja OPENTHREAD_CONFIG_BORDER_ROUTING_DHCP6_PD_ENABLE
musi być włączona.
Szczegóły | |||||||
---|---|---|---|---|---|---|---|
Parametry |
|
||||||
Zwracane wartości |
|
otBorderRoutingGetOmrPrefix
otPlatBorderRoutingProcessIcmp6Ra
otBorderRoutingGetPdProcessedRaInfo
otError otBorderRoutingGetPdProcessedRaInfo( otInstance *aInstance, otPdProcessedRaInfo *aPdProcessedRaInfo )
Pobiera dane z przetworzonej wiadomości dotyczącej konta RA wygenerowanego przez platformę.
Aplikacja OPENTHREAD_CONFIG_BORDER_ROUTING_DHCP6_PD_ENABLE
musi być włączona.
Szczegóły | |||||||
---|---|---|---|---|---|---|---|
Parametry |
|
||||||
Zwracane wartości |
|
otBorderRoutingGetRouteInfoOptionPreference
otRoutePreference otBorderRoutingGetRouteInfoOptionPreference( otInstance *aInstance )
Pobiera bieżące ustawienie używane podczas reklamowania opcji informacji o trasach (RIO) w komunikatach Reklam routera wysyłanych przez link infrastruktury.
Preferencje RIO są określane w następujący sposób:
- Jeśli zostanie wyraźnie określone przez użytkownika, wywołując metodę
otBorderRoutingSetRouteInfoOptionPreference()
, używane jest dane ustawienie. - W przeciwnym razie jest ona określana na podstawie bieżącej roli urządzenia: średnie preferencje w przypadku roli routera/lidera i niskie preferencje w przypadku roli podrzędnej.
Szczegóły | |
---|---|
Zwroty |
Aktualne ustawienie opcji informacji o trasie.
|
otBorderRoutingGetRoutePreference
otRoutePreference otBorderRoutingGetRoutePreference( otInstance *aInstance )
Pobiera bieżące ustawienie używane w przypadku opublikowanych tras w danych sieci.
Preferencje są określane w następujący sposób:
- Jeśli zostanie wyraźnie określone przez użytkownika, wywołując metodę
otBorderRoutingSetRoutePreference()
, używane jest dane ustawienie. - W przeciwnym razie
RoutingManager
określa go automatycznie na podstawie roli urządzenia i jakości połączenia.
Szczegóły | |||
---|---|---|---|
Parametry |
|
||
Zwroty |
Obecnie opublikowana preferencja trasy.
|
otBorderRoutingGetState
otBorderRoutingState otBorderRoutingGetState( otInstance *aInstance )
Pobiera bieżący stan menedżera routingu granic.
Szczegóły | |||
---|---|---|---|
Parametry |
|
||
Zwroty |
Obecny stan menedżera routingu granic.
|
otBorderRoutingInit
otError otBorderRoutingInit( otInstance *aInstance, uint32_t aInfraIfIndex, bool aInfraIfIsRunning )
Inicjuje menedżera granic granicznych w danym interfejsie infrastruktury.
Szczegóły | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametry |
|
||||||||
Zwracane wartości |
|
otPlatInfraIfStateChanged.
otBorderRoutingSetEnabled.
otBorderRoutingPrefixTableInitIterator
void otBorderRoutingPrefixTableInitIterator( otInstance *aInstance, otBorderRoutingPrefixTableIterator *aIterator )
Inicjuje otBorderRoutingPrefixTableIterator
.
Przed użyciem iteratora MUSI zostać zainicjowany.
Iterator można ponownie zainicjować, aby uruchomić ponownie od początku tabeli.
Podczas iteracji nad wpisami w tabeli, aby zapewnić spójne czasy aktualizacji mMsecSinceLastUpdate
wpisów, są one podawane względem czasu zainicjowania iteratora.
Szczegóły | |||||
---|---|---|---|---|---|
Parametry |
|
otBorderRoutingSetEnabled
otError otBorderRoutingSetEnabled( otInstance *aInstance, bool aEnabled )
Włącza lub wyłącza menedżera routingu granic.
Szczegóły | |||||
---|---|---|---|---|---|
Parametry |
|
||||
Zwracane wartości |
|
otBorderRoutingSetRouteInfoOptionPreference
void otBorderRoutingSetRouteInfoOptionPreference( otInstance *aInstance, otRoutePreference aPreference )
Jednoznacznie ustawia ustawienie używane podczas reklamowania opcji informacji o trasach (RIO) w komunikatach z reklamami routera wysyłanych przez link infrastruktury.
Po wywołaniu tej funkcji BR będzie używać danego preferencji dla wszystkich reklamowanych RIO. To ustawienie można usunąć, dzwoniąc pod numer otBorderRoutingClearRouteInfoOptionPreference()
.
Szczegóły | |||||
---|---|---|---|---|---|
Parametry |
|
otBorderRoutingSetRoutePreference
void otBorderRoutingSetRoutePreference( otInstance *aInstance, otRoutePreference aPreference )
Wyraźnie określa preferencje dotyczące opublikowanych tras w danych sieci.
Po wywołaniu tej funkcji BR użyje podanej preferencji. To ustawienie można usunąć, dzwoniąc pod numer otBorderRoutingClearRoutePreference()
.
Szczegóły | |||||
---|---|---|---|---|---|
Parametry |
|
Zasoby
Tematy referencyjne interfejsu OpenThread API pochodzą z kodu źródłowego dostępnego w GitHub. Aby dowiedzieć się więcej lub dołączyć do naszej dokumentacji, skorzystaj z sekcji Zasoby.