Administrador de enrutamiento fronterizo
En este módulo, se incluyen definiciones relacionadas con Border Routing Manager.
Resumen
Todas las funciones de este módulo requieren que se habilite OPENTHREAD_CONFIG_BORDER_ROUTING_ENABLE
.
El administrador de enrutamiento fronterizo controla el enrutamiento bidireccional entre la red de Thread y el vínculo de infraestructura adyacente (AIL).
Emite mensajes del anuncio de router (RA) de ICMRv6 en AIL para publicitar prefijos de vínculos y rutas. También procesa los mensajes de RA recibidos desde la infraestructura y duplica los prefijos descubiertos en los datos de la red Thread para garantizar que los dispositivos en la malla de Thread puedan llegar a la AIL a través del router de borde.
Routing Manager administra el prefijo enrutable fuera de la malla (OMR) en los datos de la red Thread que configura dispositivos Thread con una dirección IPv6 enrutable fuera de la malla adecuada. Anuncia la accesibilidad de este prefijo en AIL incluyéndolo en los mensajes de RA emitidos como una opción de información de ruta IPv6 (RIO).
También administra y agrega el prefijo en la red de infraestructura. Si un router de AIL ya proporciona mensajes de RA que contienen una opción de información de prefijo de IPv6 (PIO) que permite que los dispositivos IPv6 del vínculo configuren automáticamente su propia dirección IPv6 de unidifusión enrutable, los dispositivos Thread pueden usar esta dirección para llegar a AIL. Si el router de borde no encuentra ese mensaje de RA en AIL, genera un prefijo de vinculación de ULA que luego anuncia en AIL en los mensajes de RA emitidos.
Typedefs |
|
---|---|
otBorderRoutingPrefixTableEntry
|
typedef Esta estructura representa una entrada de la tabla de prefijo que se descubrió. |
otBorderRoutingPrefixTableIterator
|
typedef Esta estructura representa un iterador para iterar a través de la tabla de prefijos del router de borde. |
Funciones |
|
---|---|
otBorderRoutingClearRouteInfoOptionPreference(otInstance *aInstance)
|
void
Esta función borra un valor de preferencia previamente configurado para las opciones de información de ruta anunciadas.
|
otBorderRoutingGetFavoredNat64Prefix(otInstance *aInstance, otIp6Prefix *aPrefix, otRoutePreference *aPreference)
|
Obtiene el prefijo NAT64 que se usa actualmente.
|
otBorderRoutingGetFavoredOmrPrefix(otInstance *aInstance, otIp6Prefix *aPrefix, otRoutePreference *aPreference)
|
Obtiene el prefijo de enrutamiento en malla (OMR) que se usa en este momento.
|
otBorderRoutingGetNat64Prefix(otInstance *aInstance, otIp6Prefix *aPrefix)
|
Obtiene el prefijo NAT64 local del router de borde.
|
otBorderRoutingGetNextPrefixTableEntry(otInstance *aInstance, otBorderRoutingPrefixTableIterator *aIterator, otBorderRoutingPrefixTableEntry *aEntry)
|
Esta función itera en las entradas de la tabla de prefijos del router del borde.
|
otBorderRoutingGetOmrPrefix(otInstance *aInstance, otIp6Prefix *aPrefix)
|
Obtiene el prefijo local enrutable sin malla (OMR), por ejemplo,
fdfc:1ff5:1512:5622::/64 . |
otBorderRoutingGetOnLinkPrefix(otInstance *aInstance, otIp6Prefix *aPrefix)
|
Obtiene el prefijo en vínculo para el vínculo de infraestructura adyacente, por ejemplo,
fd41:2650:a6f5:0::/64 . |
otBorderRoutingGetRouteInfoOptionPreference(otInstance *aInstance)
|
Esta función obtiene la preferencia actual que se utiliza cuando se anuncian Opciones de información de ruta (RIO) en los mensajes de anuncios del router enviados a través del vínculo de infraestructura.
|
otBorderRoutingInit(otInstance *aInstance, uint32_t aInfraIfIndex, bool aInfraIfIsRunning)
|
Este método inicializa el administrador de enrutamiento fronterizo en la interfaz de infraestructura determinada.
|
otBorderRoutingPrefixTableInitIterator(otInstance *aInstance, otBorderRoutingPrefixTableIterator *aIterator)
|
void
Esta función inicializa un
otBorderRoutingPrefixTableIterator . |
otBorderRoutingSetEnabled(otInstance *aInstance, bool aEnabled)
|
Habilita o inhabilita el administrador de enrutamiento fronterizo.
|
otBorderRoutingSetRouteInfoOptionPreference(otInstance *aInstance, otRoutePreference aPreference)
|
void
Esta función configura explícitamente la preferencia para usar cuando se anuncian las Opciones de información de ruta (RIO) en los mensajes de anuncios del router que se envían a través del vínculo de infraestructura.
|
Structs |
|
---|---|
otBorderRoutingPrefixTableTable |
Esta estructura representa una entrada de la tabla de prefijo que se descubrió. |
otBorderRoutingPrefixTableIterator |
Esta estructura representa un iterador para iterar a través de la tabla de prefijos del router de borde. |
Typedefs
otBorderRoutingPrefixTableTableEntry
struct otBorderRoutingPrefixTableEntry otBorderRoutingPrefixTableEntry
Esta estructura representa una entrada de la tabla de prefijo que se descubrió.
Las entradas de la tabla descubierta hacen un seguimiento de las opciones de información sobre el prefijo o la ruta en los mensajes de anuncios del router recibidos de otros routers en el vínculo de infraestructura.
otBorderRoutingPrefixTableIterator
struct otBorderRoutingPrefixTableIterator otBorderRoutingPrefixTableIterator
Esta estructura representa un iterador para iterar a través de la tabla de prefijos del router de borde.
Los campos en este tipo son opacos (solo pueden usarse con el núcleo de OpenThread) y, por lo tanto, el emisor no debe acceder a ellos ni usarlos.
Antes de usar un iterador, se DEBE inicializar con otBorderRoutingPrefixTableInitIterator()
.
Funciones
otBorderRoutingClearRouteInfoOptionPreference
void otBorderRoutingClearRouteInfoOptionPreference( otInstance *aInstance )
Esta función borra un valor de preferencia previamente configurado para las opciones de información de ruta anunciadas.
Después de una llamada a esta función, BR usará la función del dispositivo para determinar la preferencia de RIO: preferencia media en la función de router/líder y baja preferencia en la función secundaria.
Detalles | |||
---|---|---|---|
Parámetros |
|
Prefijo otBorderRoutingGetFavoredNat64
otError otBorderRoutingGetFavoredNat64Prefix( otInstance *aInstance, otIp6Prefix *aPrefix, otRoutePreference *aPreference )
Obtiene el prefijo NAT64 que se usa actualmente.
El prefijo NAT64 preferido se puede descubrir en el vínculo de la infraestructura o puede ser el prefijo NAT64 local de este dispositivo.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
||||||
Valores de retorno |
|
otBorderRoutingGetFavoredOmrPrefix
otError otBorderRoutingGetFavoredOmrPrefix( otInstance *aInstance, otIp6Prefix *aPrefix, otRoutePreference *aPreference )
Obtiene el prefijo de enrutamiento en malla (OMR) que se usa en este momento.
El prefijo OMR preferido se puede descubrir en los datos de red o puede ser el prefijo OMR local de este dispositivo.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
||||||
Valores de retorno |
|
Prefijo de otBorderRoutingGetNat64
otError otBorderRoutingGetNat64Prefix( otInstance *aInstance, otIp6Prefix *aPrefix )
Obtiene el prefijo NAT64 local del router de borde.
Es posible que el prefijo NAT64 no se anuncie en la red Thread.
Se debe habilitar OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
||||
Valores de retorno |
|
otBorderRoutingGetNextPrefixTableEntry
otError otBorderRoutingGetNextPrefixTableEntry( otInstance *aInstance, otBorderRoutingPrefixTableIterator *aIterator, otBorderRoutingPrefixTableEntry *aEntry )
Esta función itera en las entradas de la tabla de prefijos del router del borde.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
||||||
Valores de retorno |
|
Prefijo otBorderRoutingGetOmr
otError otBorderRoutingGetOmrPrefix( otInstance *aInstance, otIp6Prefix *aPrefix )
Obtiene el prefijo local enrutable sin malla (OMR), por ejemplo, fdfc:1ff5:1512:5622::/64
.
Un prefijo OMR es un prefijo de 64 bits generado al azar que se publica en la red Thread si aún no existe. Se puede acceder a este prefijo desde la red Wi-Fi o Ethernet local.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
||||
Valores de retorno |
|
otBorderRoutingGetOnLinkPrefix
otError otBorderRoutingGetOnLinkPrefix( otInstance *aInstance, otIp6Prefix *aPrefix )
Obtiene el prefijo en vínculo para el vínculo de infraestructura adyacente, por ejemplo, fd41:2650:a6f5:0::/64
.
Un prefijo de vínculo es un prefijo de 64 bits que se anuncia en el vínculo de la infraestructura, si aún no se usa uno para anunciar el vínculo.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
||||
Valores de retorno |
|
otBorderRoutingGetRouteInfoOptionPreference
otRoutePreference otBorderRoutingGetRouteInfoOptionPreference( otInstance *aInstance )
Esta función obtiene la preferencia actual que se utiliza cuando se anuncian Opciones de información de ruta (RIO) en los mensajes de anuncios del router enviados a través del vínculo de infraestructura.
La preferencia de RIO se determina de la siguiente manera:
- Si el usuario lo establece de forma explícita llamando a
otBorderRoutingSetRouteInfoOptionPreference()
, se usa la preferencia indicada. - De lo contrario, se determina según la función actual del dispositivo: Preferencia media cuando se usa en la función de router o líder y baja preferencia cuando está en la función secundaria.
Detalles | |
---|---|
Qué muestra |
La preferencia de información de ruta actual.
|
otBorderRoutingInit
otError otBorderRoutingInit( otInstance *aInstance, uint32_t aInfraIfIndex, bool aInfraIfIsRunning )
Este método inicializa el administrador de enrutamiento fronterizo en la interfaz de infraestructura determinada.
Detalles | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parámetros |
|
||||||||
Valores de retorno |
|
otPlatInfraIfStateChanged.
otBorderRoutingPrefixTableInitIterator
void otBorderRoutingPrefixTableInitIterator( otInstance *aInstance, otBorderRoutingPrefixTableIterator *aIterator )
Esta función inicializa un otBorderRoutingPrefixTableIterator
.
Un iterador se DEBE inicializar antes de usarlo.
Un iterador se puede volver a inicializar para reiniciar desde el principio de la tabla.
Cuando se realizan iteraciones sobre las entradas en la tabla, para garantizar que los tiempos de actualización mMsecSinceLastUpdate
de las entradas sean coherentes, se brindan en relación con el momento en que se inicializó el iterador.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
otBorderRoutingSetEnabled
otError otBorderRoutingSetEnabled( otInstance *aInstance, bool aEnabled )
Habilita o inhabilita el administrador de enrutamiento fronterizo.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
||||
Valores de retorno |
|
otBorderRoutingSetRouteInfoOptionPreference
void otBorderRoutingSetRouteInfoOptionPreference( otInstance *aInstance, otRoutePreference aPreference )
Esta función configura explícitamente la preferencia para usar cuando se anuncian las Opciones de información de ruta (RIO) en los mensajes de anuncios del router que se envían a través del vínculo de infraestructura.
Después de una llamada a esta función, BR usará la preferencia dada para todos sus RIO anunciados. Para borrar la preferencia, llama a otBorderRoutingClearRouteInfoOptionPreference()
.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
Recursos
Los temas de referencia de la API de OpenThread se originan en el código fuente, disponible en GitHub. Para obtener más información o colaborar con nuestra documentación, consulta Recursos.