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 el Administrador de enrutamiento fronterizo.

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 Thread y el vínculo de infraestructura adyacente (AIL).

Emite mensajes de ICMRv6 ND Router Advertising (RA) para anunciar prefijos de vínculos y rutas. También procesa los mensajes de RA recibidos de la infraestructura y refleja los prefijos descubiertos en los datos de la red de Thread para garantizar que los dispositivos en la malla de subprocesos puedan acceder a la AIL a través del router de borde.

El administrador de rutas administra el prefijo enrutable fuera de la malla (OMR) en los datos de la red Thread que configura los dispositivos Thread con una dirección IPv6 enrutable fuera de la malla adecuada. A fin de anunciar la accesibilidad de este prefijo en AIL, lo incluye en los mensajes de RA emitidos como una opción de información de ruta IPv6 (RIO).

El administrador de rutas también supervisa y agrega el prefijo del vínculo en la red de la infraestructura. Si un router en AIL ya proporciona mensajes de RA que contienen una opción de información de prefijo (PIO) de IPv6 que permite que los dispositivos IPv6 en el vínculo configuren su propia dirección IPv6 de unidifusión enrutable, los dispositivos Thread pueden usar esta dirección para alcanzar la AIL. Si el router de borde no encuentra tal mensaje de RA en AIL, genera un prefijo de ULA en el vínculo que luego anuncia en AIL en los mensajes de RA emitidos.

Typedefs

otBorderRoutingPrefixTableEntry typedef
Esta estructura representa una entrada de la tabla de prefijos detectada.
otBorderRoutingPrefixTableIterator typedef
Esta estructura representa un iterador para iterar a través de la tabla de prefijos detectada del router de borde.

Funciones

otBorderRoutingGetFavoredNat64Prefix(otInstance *aInstance, otIp6Prefix *aPrefix, otRoutePreference *aPreference)
Obtiene el prefijo NAT64 que se prefiere actualmente.
otBorderRoutingGetFavoredOmrPrefix(otInstance *aInstance, otIp6Prefix *aPrefix, otRoutePreference *aPreference)
Obtiene el prefijo favorito de la malla que se puede enrutar (OMR).
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 de borde.
otBorderRoutingGetOmrPrefix(otInstance *aInstance, otIp6Prefix *aPrefix)
Obtiene el prefijo local fuera de la malla (OMR), por ejemplo, fdfc:1ff5:1512:5622::/64.
otBorderRoutingGetOnLinkPrefix(otInstance *aInstance, otIp6Prefix *aPrefix)
Obtiene el prefijo de 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 que se usa cuando se anuncian opciones de información de ruta (p.ej., para los prefijos OMR descubiertos) en los mensajes de anuncios de 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 define la preferencia que se debe usar cuando se anuncian opciones de información de ruta en los mensajes de anuncios del router enviados a través del vínculo de infraestructura, por ejemplo, para los prefijos OMR descubiertos.

Structs

otBorderRoutePrefixPrefixEntry

Esta estructura representa una entrada de la tabla de prefijos detectada.

otBorderRoutePrefixTableIterator

Esta estructura representa un iterador para iterar a través de la tabla de prefijos detectada del router de borde.

Typedefs

otBorderRoutePrefixTableEntry

struct otBorderRoutingPrefixTableEntry otBorderRoutingPrefixTableEntry

Esta estructura representa una entrada de la tabla de prefijos detectada.

Las entradas de la tabla descubierta hacen un seguimiento de las opciones de información de prefijos/rutas en los mensajes de anuncios del router recibidos de otros routers en el vínculo de infraestructura.

otBorderRoutePrefixTableIterator

struct otBorderRoutingPrefixTableIterator otBorderRoutingPrefixTableIterator

Esta estructura representa un iterador para iterar a través de la tabla de prefijos detectada del router de borde.

Los campos de este tipo son opacos (solo deben usar OpenCore Core) y, por lo tanto, el emisor no debe acceder a ellos ni usarlos.

Antes de usar un iterador, DEBE inicializarse con otBorderRoutingPrefixTableInitIterator().

Funciones

Prefijo otBorderRouteGetFavoredNat64

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

Obtiene el prefijo NAT64 que se prefiere actualmente.

El prefijo de NAT64 preferido se puede encontrar en el vínculo de la infraestructura o puede ser el prefijo de 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 con preferencia.
Valores de retorno
OT_ERROR_INVALID_STATE
Aún no se inicializó el administrador de enrutamiento fronterizo.
OT_ERROR_NONE
Se recuperó correctamente el prefijo NAT64 preferido.

otBorderRouteGetFavoredOmrPrefix

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

Obtiene el prefijo favorito de la malla que se puede enrutar (OMR).

El prefijo de OMR preferido se puede descubrir en los datos de red o puede ser el prefijo de 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 de OMR preferido.
[out] aPreference
Un puntero para mostrar la preferencia asociada con el prefijo con preferencia.
Valores de retorno
OT_ERROR_INVALID_STATE
Aún no se inicializó el administrador de enrutamiento fronterizo.
OT_ERROR_NONE
Se recuperó correctamente el prefijo de OMR preferido.

Prefijo otBorderRouteGetNat64

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 inicializó el administrador de enrutamiento fronterizo.
OT_ERROR_NONE
Se recuperó correctamente el prefijo NAT64.

otBorderRouteGetNextPrefixTableEntry

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

Esta función itera en las entradas de la tabla de prefijos del router de borde.

Detalles
Parámetros
[in] aInstance
La instancia de OpenThread.
[in,out] aIterator
Un puntero al iterador.
[out] aEntry
Un puntero para la entrada que se propagará.
Valores de retorno
OT_ERROR_NONE
Se itera en la siguiente entrada, se actualizan aEntry y aIterator.
OT_ERROR_NOT_FOUND
No hay más entradas en la tabla.

otBorderRouteGetOmrPrefix

otError otBorderRoutingGetOmrPrefix(
  otInstance *aInstance,
  otIp6Prefix *aPrefix
)

Obtiene el prefijo local fuera de la malla (OMR), por ejemplo, fdfc:1ff5:1512:5622::/64.

Un prefijo OMR es un prefijo de 64 bits generado aleatoriamente, que se publica en la red Thread si aún no existe uno. 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 inicializó el administrador de enrutamiento fronterizo.
OT_ERROR_NONE
Se recuperó correctamente el prefijo OMR.

otBorderRouteGetOnLinkPrefix

otError otBorderRoutingGetOnLinkPrefix(
  otInstance *aInstance,
  otIp6Prefix *aPrefix
)

Obtiene el prefijo de vínculo para el vínculo de infraestructura adyacente, por ejemplo, fd41:2650:a6f5:0::/64.

Un prefijo On-Link es un prefijo de 64 bits que se anuncia en el vínculo de infraestructura si aún no se usa uno que se pueda usar en él.

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 inicializó el administrador de enrutamiento fronterizo.
OT_ERROR_NONE
Se recuperó correctamente el prefijo en el vínculo.

otBorderRouteGetRouteInfoOptionPreference

otRoutePreference otBorderRoutingGetRouteInfoOptionPreference(
  otInstance *aInstance
)

Esta función obtiene la preferencia que se usa cuando se anuncian opciones de información de ruta (p.ej., para los prefijos OMR descubiertos) en los mensajes de anuncios de router enviados a través del vínculo de infraestructura.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
Qué muestra
La preferencia de anuncio del prefijo OMR.

otBorderRouteInit

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 la infraestructura.
[in] aInfraIfIsRunning
Un valor booleano que indica si la interfaz de la infraestructura se está ejecutando.
Valores de retorno
OT_ERROR_NONE
Se inició correctamente el Administrador de enrutamiento fronterizo en la infraestructura determinada.
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.

otBorderRoutePrefixTableInitIterator

void otBorderRoutingPrefixTableInitIterator(
  otInstance *aInstance,
  otBorderRoutingPrefixTableIterator *aIterator
)

Esta función inicializa un otBorderRoutingPrefixTableIterator.

Se debe inicializar un iterador antes de usarlo.

Se puede inicializar un iterador nuevamente 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 proporcionan en relación con la hora en que se inicializó el iterador.

Detalles
Parámetros
[in] aInstance
La instancia de OpenThread.
[out] aIterator
Un puntero al iterador que se inicializará.

otBorderRouteSetEnabled

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 inicializó el administrador de enrutamiento fronterizo.
OT_ERROR_NONE
Se habilitó o inhabilitó correctamente el Administrador de enrutamiento fronterizo.

otBorderRouteSetRouteInfoOptionPreference

void otBorderRoutingSetRouteInfoOptionPreference(
  otInstance *aInstance,
  otRoutePreference aPreference
)

Esta función define la preferencia que se debe usar cuando se anuncian opciones de información de ruta en los mensajes de anuncios del router enviados a través del vínculo de infraestructura, por ejemplo, para los prefijos OMR descubiertos.

De forma predeterminada, BR usará el nivel de preferencia medium, pero esta función permite cambiar el valor predeterminado. A modo de ejemplo, se puede establecer en la preferencia low en el caso en que el dispositivo sea un BR temporal (un dispositivo móvil BR o un dispositivo con batería) para indicar que se deben preferir otros BR (si hay alguno) en lugar del BR en el vínculo de la infraestructura.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
[in] aPreference
La preferencia de ruta que se usará.

Recursos

Los temas de referencia de la API de OpenThread se originan a partir del código fuente, disponible en GitHub. Para obtener más información o contribuir con nuestra documentación, consulta Recursos.