Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.
Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

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
[in] aInstance
Un puntero para una instancia de OpenThread.

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
[in] aInstance
Un puntero para una instancia de OpenThread.
[out] aPrefix
Un puntero para mostrar el prefijo NAT64 que se prefiere.
[out] aPreference
Un puntero para mostrar la preferencia asociada con el prefijo favorecido.
Valores de retorno
OT_ERROR_INVALID_STATE
Aún no se ha inicializado el administrador de enrutamiento fronterizo.
OT_ERROR_NONE
Se recuperó correctamente el prefijo NAT64 preferido.

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
[in] aInstance
Un puntero para una instancia de OpenThread.
[out] aPrefix
Un puntero para mostrar el prefijo OMR que se favorece.
[out] aPreference
Un puntero para mostrar la preferencia asociada con el prefijo favorecido.
Valores de retorno
OT_ERROR_INVALID_STATE
Aún no se está ejecutando el administrador de enrutamiento fronterizo.
OT_ERROR_NONE
Se recuperó correctamente el prefijo de OMR preferido.

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
[in] aInstance
Un puntero para una instancia de OpenThread.
[out] aPrefix
Un puntero al punto de salida del prefijo.
Valores de retorno
OT_ERROR_INVALID_STATE
Aún no se ha inicializado el administrador de enrutamiento fronterizo.
OT_ERROR_NONE
Se recuperó correctamente el prefijo NAT64.

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
[in] aInstance
La instancia de OpenThread.
[in,out] aIterator
Un puntero para el iterador.
[out] aEntry
Un puntero para la entrada que se propagará.
Valores de retorno
OT_ERROR_NONE
En la siguiente entrada, se actualizan aEntry y aIterator.
OT_ERROR_NOT_FOUND
No hay más entradas en la tabla.

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
[in] aInstance
Un puntero para una instancia de OpenThread.
[out] aPrefix
Un puntero al punto de salida del prefijo.
Valores de retorno
OT_ERROR_INVALID_STATE
Aún no se ha inicializado el administrador de enrutamiento fronterizo.
OT_ERROR_NONE
Se recuperó correctamente el prefijo OMR.

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
[in] aInstance
Un puntero para una instancia de OpenThread.
[out] aPrefix
Un puntero al punto de salida del prefijo.
Valores de retorno
OT_ERROR_INVALID_STATE
Aún no se ha inicializado el administrador de enrutamiento fronterizo.
OT_ERROR_NONE
Se recuperó correctamente el prefijo en el vínculo.

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
[in] aInstance
Un puntero para una instancia de OpenThread.
[in] aInfraIfIndex
El índice de la interfaz de infraestructura.
[in] aInfraIfIsRunning
Un valor booleano que indica si la interfaz de infraestructura está en ejecución.
Valores de retorno
OT_ERROR_NONE
Se inició correctamente el administrador de enrutamiento fronterizo en la infraestructura indicada.
OT_ERROR_INVALID_STATE
Ya se inicializó el administrador de enrutamiento fronterizo.
OT_ERROR_INVALID_ARGS
El índice de la interfaz de la infraestructura no es válido.
OT_ERROR_FAILED
Falla interna. Por lo general, se debe a un error en la generación de prefijos aleatorios.
Consulta también:
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
[in] aInstance
La instancia de OpenThread.
[out] aIterator
Un puntero al iterador para inicializar.

otBorderRoutingSetEnabled

otError otBorderRoutingSetEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Habilita o inhabilita el administrador de enrutamiento fronterizo.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
[in] aEnabled
Un valor booleano para habilitar o inhabilitar el administrador de enrutamiento.
Valores de retorno
OT_ERROR_INVALID_STATE
Aún no se ha inicializado el administrador de enrutamiento fronterizo.
OT_ERROR_NONE
Se habilitó o inhabilitó correctamente el administrador de enrutamiento fronterizo.

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
[in] aInstance
Un puntero para una instancia de OpenThread.
[in] aPreference
La preferencia de ruta que se utilizará.

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.