Gestionnaire des routages frontaliers
Ce module contient les définitions liées au gestionnaire de routage des frontières.
Résumé
Toutes les fonctions de ce module nécessitent l'activation de OPENTHREAD_CONFIG_BORDER_ROUTING_ENABLE
.
Border Routing Manager gère le routage bidirectionnel entre le réseau Thread et le lien d'infrastructure adjacent (AIL).
Il émet des messages d'annonce de routeur ICMRv6 (RA) sur AIL pour annoncer les préfixes de liaison et de routage. Il traite également les messages RA reçus de l'infrastructure et met en miroir les préfixes découverts sur les données réseau Thread pour garantir que les appareils du maillage Thread peuvent atteindre AIL via le routeur de bordure.
Le gestionnaire de routage gère le préfixe OOM (Off-Mesh Routable) sur les données du réseau Thread, qui configure les appareils Thread avec une adresse IPv6 routable hors maillage. Il annonce la joignabilité de ce préfixe sur AIL en l'incluant dans les messages RA émis en tant qu'option d'informations de routage IPv6 (RIO).
Le gestionnaire de routage surveille également et ajoute un préfixe de liaison sur le réseau d'infrastructure. Si un routeur sur AIL fournit déjà des messages RA contenant une option d'information de préfixe IPv6 (PIO) permettant aux appareils IPv6 du lien de configurer eux-mêmes leur propre adresse IPv6 unicast routable, les appareils Thread peuvent utiliser cette adresse pour atteindre AIL. Si le routeur de bordure ne trouve aucun message de ce type sur AIL, il génère un préfixe de liaison ULA qu'il annonce ensuite sur AIL dans les messages RA émis.
Énumérations |
|
---|---|
otBorderRoutingDhcp6PdState{
|
enum Cette énumération représente l'état de l'état de délégation du préfixe DHCPv6. |
otBorderRoutingState{
|
enum Représente l'État du gestionnaire des routages frontaliers. |
Typedefs |
|
---|---|
otBorderRoutingPrefixTableEntry
|
typedef Représente une entrée de la table des préfixes découverte. |
otBorderRoutingPrefixTableIterator
|
typedef Représente un itérateur pour effectuer une itération dans la table des préfixes découverte du routeur de bordure. |
otBorderRoutingRouterEntry
|
typedefstruct otBorderRoutingRouterEntry
Représente un routeur découvert sur le lien d'infrastructure. |
otPdProcessedRaInfo
|
typedefstruct otPdProcessedRaInfo
Représente un groupe de données de messages RA générés par la plate-forme et traités. |
distantes |
|
---|---|
otBorderRoutingClearRouteInfoOptionPreference(otInstance *aInstance)
|
void
Efface une valeur de préférence définie précédemment pour les options d'informations sur l'itinéraire annoncées.
|
otBorderRoutingClearRoutePreference(otInstance *aInstance)
|
void
Efface une valeur de préférence définie précédemment pour les routes publiées dans les données du réseau.
|
otBorderRoutingDhcp6PdGetState(otInstance *aInstance)
|
Récupère l'état actuel de la délégation de préfixe DHCPv6.
|
otBorderRoutingDhcp6PdSetEnabled(otInstance *aInstance, bool aEnabled)
|
void
Active / désactive la délégation des préfixes DHCPv6.
|
otBorderRoutingGetFavoredNat64Prefix(otInstance *aInstance, otIp6Prefix *aPrefix, otRoutePreference *aPreference)
|
Récupère le préfixe NAT64 actuellement favorisé.
|
otBorderRoutingGetFavoredOmrPrefix(otInstance *aInstance, otIp6Prefix *aPrefix, otRoutePreference *aPreference)
|
Récupère le préfixe OOM (Off-Mesh-Routable) actuellement privilégié.
|
otBorderRoutingGetFavoredOnLinkPrefix(otInstance *aInstance, otIp6Prefix *aPrefix)
|
Récupère le préfixe dans le lien actuellement privilégié.
|
otBorderRoutingGetNat64Prefix(otInstance *aInstance, otIp6Prefix *aPrefix)
|
Récupère le préfixe NAT64 local du routeur de bordure.
|
otBorderRoutingGetNextPrefixTableEntry(otInstance *aInstance, otBorderRoutingPrefixTableIterator *aIterator, otBorderRoutingPrefixTableEntry *aEntry)
|
Itérez les entrées de la table des préfixes découvertes du routeur de bordure.
|
otBorderRoutingGetNextRouterEntry(otInstance *aInstance, otBorderRoutingPrefixTableIterator *aIterator, otBorderRoutingRouterEntry *aEntry)
|
Itération des entrées de routeur découvertes sur le lien d'infrastructure.
|
otBorderRoutingGetOmrPrefix(otInstance *aInstance, otIp6Prefix *aPrefix)
|
Récupère le préfixe OOM (off-Mesh-Routable) local, par exemple
fdfc:1ff5:1512:5622::/64 . |
otBorderRoutingGetOnLinkPrefix(otInstance *aInstance, otIp6Prefix *aPrefix)
|
Récupère le préfixe local du lien d'infrastructure adjacent.
|
otBorderRoutingGetPdOmrPrefix(otInstance *aInstance, otBorderRoutingPrefixTableEntry *aPrefixInfo)
|
Récupère le préfixe OPR (DHCPv6 Prefix Delegation) fourni.
|
otBorderRoutingGetPdProcessedRaInfo(otInstance *aInstance, otPdProcessedRaInfo *aPdProcessedRaInfo)
|
Récupère les données du message RA généré par la plate-forme.
|
otBorderRoutingGetRouteInfoOptionPreference(otInstance *aInstance)
|
Récupère la préférence actuelle utilisée lors de l'annonce des options d'informations sur les routes (RIO) dans les messages d'annonce de routeur envoyés via le lien d'infrastructure.
|
otBorderRoutingGetRoutePreference(otInstance *aInstance)
|
Récupère la préférence actuelle utilisée pour les routes publiées dans les données du réseau.
|
otBorderRoutingGetState(otInstance *aInstance)
|
Récupère l'état actuel du gestionnaire de routage des frontières.
|
otBorderRoutingInit(otInstance *aInstance, uint32_t aInfraIfIndex, bool aInfraIfIsRunning)
|
Initialise le gestionnaire de routage des frontières sur l'interface d'infrastructure donnée.
|
otBorderRoutingPrefixTableInitIterator(otInstance *aInstance, otBorderRoutingPrefixTableIterator *aIterator)
|
void
Initialise un
otBorderRoutingPrefixTableIterator . |
otBorderRoutingSetEnabled(otInstance *aInstance, bool aEnabled)
|
Active ou désactive le gestionnaire des routages frontaliers.
|
otBorderRoutingSetRouteInfoOptionPreference(otInstance *aInstance, otRoutePreference aPreference)
|
void
Définit explicitement la préférence à utiliser lors de l'annonce des options d'informations sur les routes (RIO) dans les messages d'annonce de routeur envoyés via le lien d'infrastructure.
|
otBorderRoutingSetRoutePreference(otInstance *aInstance, otRoutePreference aPreference)
|
void
Définit explicitement la préférence des routes publiées dans les données du réseau.
|
Structs |
|
---|---|
otBorderRoutingPrefixTableEntry |
Représente une entrée de la table des préfixes découverte. |
otBorderRoutingPrefixTableIterator |
Représente un itérateur pour effectuer une itération dans la table des préfixes découverte du routeur de bordure. |
otBorderRoutingRouterEntry |
Représente un routeur découvert sur le lien d'infrastructure. |
otPdProcessedRaInfo |
Représente un groupe de données de messages RA générés par la plate-forme et traités. |
Énumérations
otBorderRoutingDhcp6PdState
otBorderRoutingDhcp6PdState
Cette énumération représente l'état de l'état de délégation du préfixe DHCPv6.
Propriétés | |
---|---|
OT_BORDER_ROUTING_DHCP6_PD_STATE_DISABLED
|
Le disque persistant DHCPv6 est désactivé sur le routeur de bordure. |
OT_BORDER_ROUTING_DHCP6_PD_STATE_RUNNING
|
Le disque persistant DHCPv6 est activé et tente de demander et de publier un préfixe. |
OT_BORDER_ROUTING_DHCP6_PD_STATE_STOPPED
|
Le disque persistant DHCPv6 est activé, mais il n'essaie pas de demander ni de publier de préfixe. |
otBorderRoutingState
otBorderRoutingState
Représente l'État du gestionnaire des routages frontaliers.
Propriétés | |
---|---|
OT_BORDER_ROUTING_STATE_DISABLED
|
Le gestionnaire de routage est initialisé, mais désactivé. |
OT_BORDER_ROUTING_STATE_RUNNING
|
Le gestionnaire de routage est initialisé, activé et en cours d'exécution. |
OT_BORDER_ROUTING_STATE_STOPPED
|
Le gestionnaire de routage est initialisé et activé, mais actuellement arrêté. |
OT_BORDER_ROUTING_STATE_UNINITIALIZED
|
Le gestionnaire de routage n'est pas initialisé. |
Typedefs
otBorderRoutingPrefixTableEntry
struct otBorderRoutingPrefixTableEntry otBorderRoutingPrefixTableEntry
Représente une entrée de la table des préfixes découverte.
Les entrées de la table découverte suivent les options de préfixe/informations sur l'itinéraire dans les messages d'annonce de routeur reçus par d'autres routeurs sur le lien d'infrastructure.
otBorderRoutingPrefixTableIterator
struct otBorderRoutingPrefixTableIterator otBorderRoutingPrefixTableIterator
Représente un itérateur pour effectuer une itération dans la table des préfixes découverte du routeur de bordure.
Les champs de ce type sont opaques (destinés à être utilisés uniquement par le cœur OpenThread) et ne doivent donc pas être accessibles ou utilisés par l'appelant.
Avant d'utiliser un itérateur, vous DEVEZ l'initialiser à l'aide de otBorderRoutingPrefixTableInitIterator()
.
otBorderRoutingRouterEntry
struct otBorderRoutingRouterEntry otBorderRoutingRouterEntry
Représente un routeur découvert sur le lien d'infrastructure.
otPdProcessedRaInfo
struct otPdProcessedRaInfo otPdProcessedRaInfo
Représente un groupe de données de messages RA générés par la plate-forme et traités.
distantes
otBorderRoutingClearRouteInfoOptionPreference
void otBorderRoutingClearRouteInfoOptionPreference( otInstance *aInstance )
Efface une valeur de préférence définie précédemment pour les options d'informations sur l'itinéraire annoncées.
Après un appel à cette fonction, BR utilisera le rôle de l'appareil pour déterminer la préférence RIO: moyenne pour le rôle routeur/responsable et faible préférence pour le rôle enfant.
Détails | |||
---|---|---|---|
Paramètres |
|
otBorderRoutingClearRoutePreference
void otBorderRoutingClearRoutePreference( otInstance *aInstance )
Efface une valeur de préférence définie précédemment pour les routes publiées dans les données du réseau.
Après avoir appelé cette fonction, BR détermine automatiquement la préférence en fonction du rôle de l'appareil et de la qualité de l'association (au parent en cas d'utilisation de l'appareil final).
Détails | |||
---|---|---|---|
Paramètres |
|
otBorderRoutingDhcp6PdGetState
otBorderRoutingDhcp6PdState otBorderRoutingDhcp6PdGetState( otInstance *aInstance )
Récupère l'état actuel de la délégation de préfixe DHCPv6.
Nécessite l'activation de OPENTHREAD_CONFIG_BORDER_ROUTING_DHCP6_PD_ENABLE
.
Détails | |||
---|---|---|---|
Paramètres |
|
||
Renvoie |
État actuel de la délégation de préfixe DHCPv6.
|
otBorderRoutingDhcp6PdSetEnabled
void otBorderRoutingDhcp6PdSetEnabled( otInstance *aInstance, bool aEnabled )
Active / désactive la délégation des préfixes DHCPv6.
OPENTHREAD_CONFIG_BORDER_ROUTING_DHCP6_PD_ENABLE
doit être activé.
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|
otBorderRoutingGetFavoredNat64Prefix
otError otBorderRoutingGetFavoredNat64Prefix( otInstance *aInstance, otIp6Prefix *aPrefix, otRoutePreference *aPreference )
Récupère le préfixe NAT64 actuellement favorisé.
Le préfixe NAT64 préféré peut être détecté à partir du lien d'infrastructure ou du préfixe NAT64 local de cet appareil.
Détails | |||||||
---|---|---|---|---|---|---|---|
Paramètres |
|
||||||
Valeurs de retour |
|
otBorderRoutingGetFavoredOmrPrefix
otError otBorderRoutingGetFavoredOmrPrefix( otInstance *aInstance, otIp6Prefix *aPrefix, otRoutePreference *aPreference )
Récupère le préfixe OOM (Off-Mesh-Routable) actuellement privilégié.
Le préfixe OMR préféré peut être détecté à partir des données réseau ou peut être le préfixe OMR local de cet appareil.
Détails | |||||||
---|---|---|---|---|---|---|---|
Paramètres |
|
||||||
Valeurs de retour |
|
otBorderRoutingGetFavoredOnLinkPrefix
otError otBorderRoutingGetFavoredOnLinkPrefix( otInstance *aInstance, otIp6Prefix *aPrefix )
Récupère le préfixe dans le lien actuellement privilégié.
Le préfixe privilégié est soit un préfixe de liaison détecté sur la liaison d'infrastructure, soit le préfixe local de la liaison.
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|
||||
Valeurs de retour |
|
otBorderRoutingGetNat64Prefix
otError otBorderRoutingGetNat64Prefix( otInstance *aInstance, otIp6Prefix *aPrefix )
Récupère le préfixe NAT64 local du routeur de bordure.
Le préfixe NAT64 n'est peut-être pas annoncé dans le réseau Thread.
OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
doit être activé.
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|
||||
Valeurs de retour |
|
otBorderRoutingGetNextPrefixTableEntry
otError otBorderRoutingGetNextPrefixTableEntry( otInstance *aInstance, otBorderRoutingPrefixTableIterator *aIterator, otBorderRoutingPrefixTableEntry *aEntry )
Itérez les entrées de la table des préfixes découvertes du routeur de bordure.
Il est garanti que les entrées de préfixe associées au même routeur détecté sur un lien d'infrastructure seront regroupées (récupérées les unes après les autres).
Détails | |||||||
---|---|---|---|---|---|---|---|
Paramètres |
|
||||||
Valeurs de retour |
|
otBorderRoutingGetNextRouterEntry
otError otBorderRoutingGetNextRouterEntry( otInstance *aInstance, otBorderRoutingPrefixTableIterator *aIterator, otBorderRoutingRouterEntry *aEntry )
Itération des entrées de routeur découvertes sur le lien d'infrastructure.
Détails | |||||||
---|---|---|---|---|---|---|---|
Paramètres |
|
||||||
Valeurs de retour |
|
otBorderRoutingGetOmrPrefix
otError otBorderRoutingGetOmrPrefix( otInstance *aInstance, otIp6Prefix *aPrefix )
Récupère le préfixe OOM (off-Mesh-Routable) local, par exemple fdfc:1ff5:1512:5622::/64
.
Un préfixe OMR est un préfixe 64 bits généré de manière aléatoire qui est publié sur le réseau Thread lorsqu'il n'existe pas encore de préfixe OMR. Ce préfixe est accessible depuis le réseau Wi-Fi ou Ethernet local.
Remarque: Lorsque le disque persistant DHCPv6 est activé, le routeur de bordure peut publier le préfixe à partir du disque persistant DHCPv6.
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|
||||
Valeurs de retour |
|
otBorderRoutingGetPdOmrPrefix
otBorderRoutingGetOnLinkPrefix
otError otBorderRoutingGetOnLinkPrefix( otInstance *aInstance, otIp6Prefix *aPrefix )
Récupère le préfixe local du lien d'infrastructure adjacent.
Le préfixe local sur le lien est un préfixe de 64 bits qui est annoncé sur le lien d'infrastructure si aucun préfixe utilisable sur le lien n'est déjà annoncé sur le lien.
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|
||||
Valeurs de retour |
|
otBorderRoutingGetPdOmrPrefix
otError otBorderRoutingGetPdOmrPrefix( otInstance *aInstance, otBorderRoutingPrefixTableEntry *aPrefixInfo )
Récupère le préfixe OPR (DHCPv6 Prefix Delegation) fourni.
Seuls les champs mPrefix, mValidLifetime et mPreferredLifetime sont utilisés dans les informations de préfixe renvoyées.
OPENTHREAD_CONFIG_BORDER_ROUTING_DHCP6_PD_ENABLE
doit être activé.
Détails | |||||||
---|---|---|---|---|---|---|---|
Paramètres |
|
||||||
Valeurs de retour |
|
otBorderRoutingGetOmrPrefix
otPlatBorderRoutingProcessIcmp6Ra
otBorderRoutingGetPdProcessedRaInfo
otError otBorderRoutingGetPdProcessedRaInfo( otInstance *aInstance, otPdProcessedRaInfo *aPdProcessedRaInfo )
Récupère les données du message RA généré par la plate-forme.
OPENTHREAD_CONFIG_BORDER_ROUTING_DHCP6_PD_ENABLE
doit être activé.
Détails | |||||||
---|---|---|---|---|---|---|---|
Paramètres |
|
||||||
Valeurs de retour |
|
otBorderRoutingGetRouteInfoOptionPreference
otRoutePreference otBorderRoutingGetRouteInfoOptionPreference( otInstance *aInstance )
Récupère la préférence actuelle utilisée lors de l'annonce des options d'informations sur les routes (RIO) dans les messages d'annonce de routeur envoyés via le lien d'infrastructure.
La préférence RIO est déterminée comme suit:
- Si elle est définie explicitement par l'utilisateur en appelant
otBorderRoutingSetRouteInfoOptionPreference()
, la préférence donnée est utilisée. - Sinon, il est déterminé en fonction du rôle actuel de l'appareil: une préférence "Moyenne" pour le rôle de routeur/responsable et une préférence faible pour le rôle "Enfant".
Détails | |
---|---|
Renvoie |
Préférence actuelle d'option "Infos sur l'itinéraire".
|
otBorderRoutingGetRoutePreference
otRoutePreference otBorderRoutingGetRoutePreference( otInstance *aInstance )
Récupère la préférence actuelle utilisée pour les routes publiées dans les données du réseau.
La préférence est déterminée comme suit:
- Si elle est définie explicitement par l'utilisateur en appelant
otBorderRoutingSetRoutePreference()
, la préférence donnée est utilisée. - Sinon, elle est déterminée automatiquement par
RoutingManager
en fonction du rôle de l'appareil et de la qualité du lien.
Détails | |||
---|---|---|---|
Paramètres |
|
||
Renvoie |
Préférence de routage actuelle publiée.
|
otBorderRoutingGetState
otBorderRoutingState otBorderRoutingGetState( otInstance *aInstance )
Récupère l'état actuel du gestionnaire de routage des frontières.
Détails | |||
---|---|---|---|
Paramètres |
|
||
Renvoie |
État actuel du gestionnaire des routages frontaliers.
|
otBorderRoutingInit
otError otBorderRoutingInit( otInstance *aInstance, uint32_t aInfraIfIndex, bool aInfraIfIsRunning )
Initialise le gestionnaire de routage des frontières sur l'interface d'infrastructure donnée.
Détails | |||||||||
---|---|---|---|---|---|---|---|---|---|
Paramètres |
|
||||||||
Valeurs de retour |
|
otPlatInfraIfStateChanged.
otBorderRoutingSetEnabled.
otBorderRoutingPrefixTableInitIterator
void otBorderRoutingPrefixTableInitIterator( otInstance *aInstance, otBorderRoutingPrefixTableIterator *aIterator )
Initialise un otBorderRoutingPrefixTableIterator
.
Un itérateur DOIT être initialisé avant d'être utilisé.
Un itérateur peut être initialisé à nouveau pour redémarrer à partir du début de la table.
Lors de l'itération des entrées du tableau, pour garantir la cohérence des heures de mise à jour mMsecSinceLastUpdate
des entrées, celles-ci sont fournies en fonction de l'heure à laquelle l'itérateur a été initialisé.
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|
otBorderRoutingSetEnabled
otError otBorderRoutingSetEnabled( otInstance *aInstance, bool aEnabled )
Active ou désactive le gestionnaire des routages frontaliers.
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|
||||
Valeurs de retour |
|
otBorderRoutingSetRouteInfoOptionPreference
void otBorderRoutingSetRouteInfoOptionPreference( otInstance *aInstance, otRoutePreference aPreference )
Définit explicitement la préférence à utiliser lors de l'annonce des options d'informations sur les routes (RIO) dans les messages d'annonce de routeur envoyés via le lien d'infrastructure.
Après un appel à cette fonction, BR utilisera la préférence donnée pour toutes les RIO annoncées. Vous pouvez effacer la préférence en appelant otBorderRoutingClearRouteInfoOptionPreference()
.
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|
otBorderRoutingSetRoutePreference
void otBorderRoutingSetRoutePreference( otInstance *aInstance, otRoutePreference aPreference )
Définit explicitement la préférence des routes publiées dans les données du réseau.
Après un appel à cette fonction, BR utilisera la préférence donnée. Vous pouvez effacer la préférence en appelant otBorderRoutingClearRoutePreference()
.
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|
Ressources
Les sujets de référence de l'API OpenThread proviennent du code source, disponible sur GitHub. Pour en savoir plus ou pour contribuer à notre documentation, consultez la section Ressources.