nl::Inet::RawEndPoint

#include <src/inet/RawEndPoint.h>

Los objetos de esta clase representan extremos de red IP sin procesar.

Resumen

La capa de Inet de Nest encapsula métodos para interactuar con extremos de red IP (sockets SOCK_RAW en Linux y sistemas derivados de BSD) o bloques de control de protocolo sin procesar LwIP, a medida que el sistema está configurado según corresponda.

Herencia

Hereda de: nl::Inet::IPEndPointBasis

Atributos públicos

IPProto
IPProtocol
versión del Protocolo de mensajes de control de Internet (ICMP)
IPVer
IPVersion
Versión del protocolo de Internet.

Funciones públicas

Bind(IPAddressType addrType, IPAddress addr, InterfaceId intfId)
Vincular el extremo a una dirección IP de la interfaz
BindIPv6LinkLocal(InterfaceId intf, IPAddress addr)
Vincula el extremo sin procesar a una dirección de alcance local IPv6 en el índice de la interfaz especificado.
BindInterface(IPAddressType addrType, InterfaceId intf)
Vincular el extremo a una interfaz de red
Close(void)
void
Cierre el extremo.
Free(void)
void
Cierra el extremo y recicla su memoria.
GetBoundInterface(void)
InterfaceId
Obtén la interfaz vinculada en este extremo.
Listen(void)
Prepara el extremo para recibir mensajes ICMP.
SendMsg(const IPPacketInfo *pktInfo, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
Envíe un mensaje ICMP al destino especificado.
SendTo(IPAddress addr, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
Es un sinónimo de SendTo(addr, INET_NULL_INTERFACEID, msg, sendFlags).
SendTo(IPAddress addr, InterfaceId intfId, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
Envíe un mensaje ICMP a la dirección de destino especificada.
SetICMPFilter(uint8_t numICMPTypes, const uint8_t *aICMPTypes)
Establece los parámetros del filtro ICMP6 en la pila de red.

Atributos públicos

IPProto

IPProtocol IPProto

versión del Protocolo de mensajes de control de Internet (ICMP)

Si bien este campo es una variable de clase mutable, es una variante de la clase que no se puede modificar.

IPVer

IPVersion IPVer

Versión del protocolo de Internet.

Si bien este campo es una variable de clase mutable, es una variante de la clase que no se puede modificar.

Funciones públicas

Vincular

INET_ERROR Bind(
  IPAddressType addrType,
  IPAddress addr,
  InterfaceId intfId
)

Vincular el extremo a una dirección IP de la interfaz

Vincula el extremo a la dirección IP de la interfaz de red especificada.

Detalles
Parámetros
[in] addrType
la versión del protocolo de la dirección IP
[in] addr
la dirección IP (debe ser una dirección de interfaz)
[in] intfId
un indicador de interfaz de red opcional
Valores que se muestran
INET_NO_ERROR
Éxito: extremo vinculado a la dirección
INET_ERROR_INCORRECT_STATE
el extremo se vinculó anteriormente
INET_NO_MEMORY
memoria insuficiente para el extremo
INET_ERROR_UNKNOWN_INTERFACE
En algunas plataformas, la interfaz especificada opcionalmente no está presente.
INET_ERROR_WRONG_PROTOCOL_TYPE
addrType no coincide con IPVer.
INET_ERROR_WRONG_ADDRESS_TYPE
addrType es kIPAddressType_Any, o el tipo de addr no es igual a addrType.
other
otro error del sistema o de la plataforma

En LwIP, no se debe llamar a este método con el bloqueo de pila de LwIP ya adquirido.

VincularIPv6VínculoLocal

INET_ERROR BindIPv6LinkLocal(
  InterfaceId intf,
  IPAddress addr
)

Vincula el extremo sin procesar a una dirección de alcance local IPv6 en el índice de la interfaz especificado.

También define varias opciones de socket IPv6 adecuadas para transmitir paquetes desde y hacia destinos de vínculo.

Vincula el extremo a la dirección local de vínculo IPv6 addr en la interfaz de red indicada por intf.

Detalles
Parámetros
[in] intf
Un InterfaceId para identificar el alcance de la dirección.
[in] addr
Un objeto IPAddress de alcance local de IPv6
Parámetros
[in] intf
el indicador de la interfaz de red
[in] addr
la dirección IP (debe ser una dirección de interfaz)
Valores que se muestran
INET_NO_ERROR
Éxito: extremo vinculado a la dirección
INET_ERROR_INCORRECT_STATE
el extremo se vinculó anteriormente
INET_NO_MEMORY
memoria insuficiente para el extremo
INET_ERROR_WRONG_PROTOCOL_TYPE
addrType no coincide con IPVer.
INET_ERROR_WRONG_ADDRESS_TYPE
addr no es una dirección de vínculo local IPv6 o intf es INET_NULL_INTERFACEID.
other
otro error del sistema o de la plataforma
Qué muestra
INET_NO_ERROR si el resultado fue correcto o un error de SO asignado en caso de error. Una lista de parámetros no válida puede dar como resultado INET_ERROR_WRONG_ADDRESS_TYPE. Si el extremo sin procesar ya está vinculado o escucha, muestra INET_ERROR_INCORRECT_STATE. Vincula el extremo a una dirección de vínculo local IPv6 de la interfaz.

En LwIP, no se debe llamar a este método con el bloqueo de pila de LwIP ya adquirido.

BindInterface

INET_ERROR BindInterface(
  IPAddressType addrType,
  InterfaceId intf
)

Vincular el extremo a una interfaz de red

Vincula el extremo a la dirección IP de la interfaz de red especificada.

Detalles
Parámetros
[in] addrType
la versión del protocolo de la dirección IP.
[in] intf
indicador de la interfaz de red.
Valores que se muestran
INET_NO_ERROR
Éxito: extremo vinculado a la dirección
INET_NO_MEMORY
memoria insuficiente para el extremo
INET_ERROR_NOT_IMPLEMENTED
implementación del sistema incompleta.
INET_ERROR_UNKNOWN_INTERFACE
En algunas plataformas, la interfaz no está presente.
other
otro error del sistema o de la plataforma

En LwIP, no se debe llamar a este método con el bloqueo de pila de LwIP ya adquirido.

Cerrar

void Close(
  void
)

Cierre el extremo.

Si es mState != kState_Closed, cierra el extremo, lo que lo quita del conjunto de extremos aptos para los eventos de comunicación.

En los sistemas LwIP, no se debe llamar a este método con el bloqueo de pila de LwIP ya adquirido.

Gratis

void Free(
  void
)

Cierra el extremo y recicla su memoria.

Invoca el método Close y, luego, invoca el método InetLayerBasis::Release para mostrar el objeto a su grupo de memoria.

En los sistemas LwIP, no se debe llamar a este método con el bloqueo de pila de LwIP ya adquirido.

GetBoundInterface

InterfaceId GetBoundInterface(
  void
)

Obtén la interfaz vinculada en este extremo.

Detalles
Qué muestra
InterfaceId: El ID de interfaz vinculado

Escuchar

INET_ERROR Listen(
  void
)

Prepara el extremo para recibir mensajes ICMP.

Si mState ya es kState_Listening, no se realiza ninguna operación; de lo contrario, mState se configura como kState_Listening, y el extremo está preparado para recibir mensajes ICMPv6, según la semántica de la plataforma.

Detalles
Valores que se muestran
INET_NO_ERROR
siempre se muestran.

En LwIP, no se debe llamar a este método con el bloqueo de pila de LwIP ya adquirido

Enviar mensaje

INET_ERROR SendMsg(
  const IPPacketInfo *pktInfo,
  Weave::System::PacketBuffer *msg,
  uint16_t sendFlags
)

Envíe un mensaje ICMP al destino especificado.

 Send the ICMP message \c msg using the destination information given in \c addr.

 Where (sendFlags & kSendFlag_RetainBuffer) != 0, calls
 Weave::System::PacketBuffer::Free on behalf of the caller, otherwise this
 method deep-copies \c msg into a fresh object, and queues that for
 transmission, leaving the original \c msg available after return.

Detalles
Parámetros
[in] pktInfo
información del destino del mensaje
[in] msg
el búfer de paquetes que contiene el mensaje UDP
[in] sendFlags
marcas opcionales de opción de transmisión
Valores que se muestran
INET_NO_ERROR
msg se colocó en cola para su transmisión.
INET_ERROR_NOT_SUPPORTED
el sistema no admite la operación solicitada
INET_ERROR_WRONG_ADDRESS_TYPE
La dirección de destino y la interfaz vinculada no tienen versiones de protocolo ni tipos de dirección que coincidan.
INET_ERROR_MESSAGE_TOO_LONG
msg no contiene el mensaje de ICMP completo.
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
En algunas plataformas, solo una parte truncada de msg se puso en cola para su transmisión.
other
otro error del sistema o de la plataforma

Enviar a

INET_ERROR SendTo(
  IPAddress addr,
  Weave::System::PacketBuffer *msg,
  uint16_t sendFlags
)

Es un sinónimo de SendTo(addr, INET_NULL_INTERFACEID, msg, sendFlags).

Enviar a

INET_ERROR SendTo(
  IPAddress addr,
  InterfaceId intfId,
  Weave::System::PacketBuffer *msg,
  uint16_t sendFlags
)

Envíe un mensaje ICMP a la dirección de destino especificada.

 Send the ICMP message in \c msg to the destination given in \c addr.

 Where (sendFlags & kSendFlag_RetainBuffer) != 0, calls
 Weave::System::PacketBuffer::Free on behalf of the caller, otherwise this
 method deep-copies \c msg into a fresh object, and queues that for
 transmission, leaving the original \c msg available after return.

Detalles
Parámetros
[in] addr
la dirección IP de destino
[in] intfId
un indicador de interfaz de red opcional
[in] msg
el búfer de paquetes que contiene el mensaje UDP
[in] sendFlags
marcas opcionales de opción de transmisión
Valores que se muestran
INET_NO_ERROR
msg se colocó en cola para su transmisión.
INET_ERROR_NOT_SUPPORTED
el sistema no admite la operación solicitada
INET_ERROR_WRONG_ADDRESS_TYPE
La dirección de destino y la interfaz vinculada no tienen versiones de protocolo ni tipos de dirección que coincidan.
INET_ERROR_MESSAGE_TOO_LONG
msg no contiene el mensaje de ICMP completo.
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
En algunas plataformas, solo una parte truncada de msg se puso en cola para su transmisión.
other
otro error del sistema o de la plataforma

SetICMPFilter

INET_ERROR SetICMPFilter(
  uint8_t numICMPTypes,
  const uint8_t *aICMPTypes
)

Establece los parámetros del filtro ICMP6 en la pila de red.

Aplica los parámetros de filtro ICMPv6 para los códigos en aICMPTypes al extremo subyacente de la pila de red del sistema.

Detalles
Parámetros
[in] numICMPTypes
longitud del arreglo en aICMPTypes
[in] aICMPTypes
el conjunto de códigos de tipo ICMPv6 que se filtrarán.
Valores que se muestran
INET_NO_ERROR
Listo: se filtraron los parámetros
INET_ERROR_NOT_IMPLEMENTED
el sistema no implementa
INET_ERROR_WRONG_ADDRESS_TYPE
extremo que no es de tipo IPv6
INET_ERROR_WRONG_PROTOCOL_TYPE
extremo, no tipo ICMP6
other
otro error del sistema o de la plataforma