Interfaz de la infraestructura

En este módulo, se incluye la abstracción de plataforma para la interfaz de red de infraestructura adyacente.

Resumen

remotas

otPlatInfraIfDiscoverNat64Prefix(uint32_t aInfraIfIndex)
Envía una solicitud para descubrir el prefijo NAT64 en la interfaz de la infraestructura con aInfraIfIndex.
otPlatInfraIfDiscoverNat64PrefixDone(otInstance *aInstance, uint32_t aInfraIfIndex, const otIp6Prefix *aIp6Prefix)
void
El controlador de la interfaz de infraestructura llama a este método para notificar a OpenThread que se completó el descubrimiento del prefijo NAT64.
otPlatInfraIfHasAddress(uint32_t aInfraIfIndex, const otIp6Address *aAddress)
bool
Indica si se asignó la dirección IPv6 determinada a una interfaz de infraestructura.
otPlatInfraIfRecvIcmp6Nd(otInstance *aInstance, uint32_t aInfraIfIndex, const otIp6Address *aSrcAddress, const uint8_t *aBuffer, uint16_t aBufferLength)
void
El controlador de la interfaz de infraestructura llama a este método para notificar a OpenThread que se recibe un mensaje de detección vecino de ICMPv6.
otPlatInfraIfSendIcmp6Nd(uint32_t aInfraIfIndex, const otIp6Address *aDestAddress, const uint8_t *aBuffer, uint16_t aBufferLength)
Envía un mensaje de ICMPv6 Neighbor Discovery en una interfaz de infraestructura determinada.
otPlatInfraIfStateChanged(otInstance *aInstance, uint32_t aInfraIfIndex, bool aIsRunning)
El controlador de la interfaz de infraestructura llama a este método para notificar a OpenThread sobre los cambios de estado de la interfaz.

remotas

otPlatInfraIfDiscoverNat64Prefix

otError otPlatInfraIfDiscoverNat64Prefix(
  uint32_t aInfraIfIndex
)

Envía una solicitud para descubrir el prefijo NAT64 en la interfaz de la infraestructura con aInfraIfIndex.

OpenThread llamará a este método periódicamente para supervisar la presencia o el cambio del prefijo NAT64.

Detalles
Parámetros
[in] aInfraIfIndex
El índice de la interfaz de la infraestructura para descubrir el prefijo NAT64.
Valores que se muestran
OT_ERROR_NONE
Se solicitó correctamente la detección del prefijo NAT64.
OT_ERROR_FAILED
No se pudo solicitar la detección de prefijo NAT64.

otPlatInfraIfDiscoverNat64PrefixDone

void otPlatInfraIfDiscoverNat64PrefixDone(
  otInstance *aInstance,
  uint32_t aInfraIfIndex,
  const otIp6Prefix *aIp6Prefix
)

El controlador de la interfaz de infraestructura llama a este método para notificar a OpenThread que se completó el descubrimiento del prefijo NAT64.

Se espera que se invoque después de llamar a otPlatInfraIfDiscoverNat64Prefix. Si no se descubre el prefijo NAT64, aIp6Prefix apuntará a un prefijo vacío con una longitud cero.

Detalles
Parámetros
[in] aInstance
Estructura de instancias de OpenThread
[in] aInfraIfIndex
El índice de la interfaz de la infraestructura en la que se descubre el prefijo NAT64.
[in] aIp6Prefix
Un puntero para el prefijo NAT64.

otPlatInfraIfHasAddress

bool otPlatInfraIfHasAddress(
  uint32_t aInfraIfIndex,
  const otIp6Address *aAddress
)

Indica si se asignó la dirección IPv6 determinada a una interfaz de infraestructura.

Detalles
Parámetros
[in] aInfraIfIndex
El índice de la interfaz de infraestructura
[in] aAddress
Indica la dirección IPv6.
Qué muestra
TRUE si la interfaz de infraestructura tiene asignada una dirección IPv6 asignada, de lo contrario, FALSE.

otPlatInfraIfRecvIcmp6Nd

void otPlatInfraIfRecvIcmp6Nd(
  otInstance *aInstance,
  uint32_t aInfraIfIndex,
  const otIp6Address *aSrcAddress,
  const uint8_t *aBuffer,
  uint16_t aBufferLength
)

El controlador de la interfaz de infraestructura llama a este método para notificar a OpenThread que se recibe un mensaje de detección vecino de ICMPv6.

Consulta el RFC 4861: https://tools.ietf.org/html/rfc4861.

Detalles
Parámetros
[in] aInstance
Estructura de instancias de OpenThread
[in] aInfraIfIndex
El índice de la interfaz de la infraestructura en la que se recibe el mensaje ICMPv6.
[in] aSrcAddress
La dirección de origen de la que se recibe este mensaje.
[in] aBuffer
El búfer de mensajes ICMPv6.
[in] aBufferLength
Es la longitud del búfer de mensajes ICMPv6.

otPlatInfraIfSendIcmp6Nd

otError otPlatInfraIfSendIcmp6Nd(
  uint32_t aInfraIfIndex,
  const otIp6Address *aDestAddress,
  const uint8_t *aBuffer,
  uint16_t aBufferLength
)

Envía un mensaje de ICMPv6 Neighbor Discovery en una interfaz de infraestructura determinada.

Consulta el RFC 4861: https://tools.ietf.org/html/rfc4861.

Detalles
Parámetros
[in] aInfraIfIndex
El índice de la interfaz de infraestructura a la que se envía este mensaje.
[in] aDestAddress
La dirección de destino a la que se envía este mensaje.
[in] aBuffer
El búfer de mensajes ICMPv6. La suma de verificación de ICMPv6 queda en cero y la plataforma debe realizar el cálculo de la suma de comprobación.
[in] aBufferLength
Es la longitud del búfer de mensajes.
Valores que se muestran
OT_ERROR_NONE
El mensaje ICMPv6 se envió correctamente.
OT_ERROR_FAILED
No se pudo enviar el mensaje ICMPv6.

otPlatInfraIfStateChanged

otError otPlatInfraIfStateChanged(
  otInstance *aInstance,
  uint32_t aInfraIfIndex,
  bool aIsRunning
)

El controlador de la interfaz de infraestructura llama a este método para notificar a OpenThread sobre los cambios de estado de la interfaz.

Está bien que la plataforma llame al método incluso cuando el estado de ejecución de la interfaz no ha cambiado. En este caso, el estado del Administrador de enrutamiento no se ve afectado.

Detalles
Parámetros
[in] aInstance
Estructura de instancias de OpenThread
[in] aInfraIfIndex
El índice de la interfaz de la infraestructura.
[in] aIsRunning
Un valor booleano que indica si la interfaz de la infraestructura se está ejecutando.
Valores que se muestran
OT_ERROR_NONE
Se actualizó correctamente el estado de la interfaz de infraestructura.
OT_ERROR_INVALID_STATE
No se inicializó el Administrador de enrutamiento.
OT_ERROR_INVALID_ARGS
aInfraIfIndex no coincide con la interfaz de infraestructura con la que se inicializa el administrador de enrutamiento.

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 a nuestra documentación, consulta Recursos.