En Google, luchamos por la equidad racial de la comunidad negra. Más información

nl :: Inet :: RawEndPoint

#include <src/inet/RawEndPoint.h>

Los objetos de esta clase representan puntos finales de red IP sin procesar.

Resumen

Nest Inet Layer encapsula los métodos para interactuar con los extremos de la red IP (sockets SOCK_RAW en Linux y sistemas derivados de BSD) o bloques de control de protocolo sin procesar LwIP, ya que el sistema está configurado en consecuencia.

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 publicas

Bind (IPAddressType addrType, IPAddress addr, InterfaceId intfId)
Vincule el punto final a una dirección IP de interfaz.
BindIPv6LinkLocal (InterfaceId intf, IPAddress addr)
Vincule el punto final sin procesar a una dirección de alcance local de enlace IPv6 en el índice de interfaz especificado.
BindInterface (IPAddressType addrType, InterfaceId intf)
Vincular el punto final a una interfaz de red.
Close (void)
void
Cierre el punto final.
Free (void)
void
Cierre el endpoint y recicle su memoria.
GetBoundInterface (void)
InterfaceId
Obtenga la interfaz enlazada en este punto final.
Listen (void)
Prepare el punto final 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)
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)
Configure 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 un invariante de la clase que no se modifique.

IPVer

IPVersion IPVer

Versión del protocolo de Internet.

Si bien este campo es una variable de clase mutable, es un invariante de la clase que no se modifique.

Funciones publicas

Unir

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

Vincule el punto final a una dirección IP de interfaz.

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

Detalles
Parámetros
[in] addrType
la versión de 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 devueltos
INET_NO_ERROR
éxito: punto final vinculado a la dirección
INET_ERROR_INCORRECT_STATE
el punto final se ha vinculado previamente
INET_NO_MEMORY
memoria insuficiente para el punto final
INET_ERROR_UNKNOWN_INTERFACE
En algunas plataformas, la interfaz especificada opcionalmente no está presente.
INET_ERROR_WRONG_PROTOCOL_TYPE
addrType no coincide IPVer .
INET_ERROR_WRONG_ADDRESS_TYPE
addrType es kIPAddressType_Any , o el tipo de addr no es igual a addrType .
other
otro error de sistema o plataforma

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

BindIPv6LinkLocal

INET_ERROR BindIPv6LinkLocal(
  InterfaceId intf,
  IPAddress addr
)

Vincule el punto final sin procesar a una dirección de alcance local de enlace IPv6 en el índice de interfaz especificado.

También establece varias opciones de socket IPv6 apropiadas para transmitir paquetes hacia y desde destinos en el enlace.

Se liga el punto final a la dirección de enlace local IPv6 addr en la interfaz de red indicado por intf .

Detalles
Parámetros
[in] intf
Un InterfaceId para identificar el alcance de la dirección.
[in] addr
Un IPv6 alcance de enlace local DirecciónIP objeto.
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 devueltos
INET_NO_ERROR
éxito: punto final vinculado a la dirección
INET_ERROR_INCORRECT_STATE
el punto final se ha vinculado previamente
INET_NO_MEMORY
memoria insuficiente para el punto final
INET_ERROR_WRONG_PROTOCOL_TYPE
addrType no coincide IPVer .
INET_ERROR_WRONG_ADDRESS_TYPE
addr no es una dirección de enlace local IPv6 o intf es INET_NULL_INTERFACEID .
other
otro error de sistema o plataforma
Devoluciones
INET_NO_ERROR en caso de éxito, o un error del sistema operativo asignado en caso de error. Una lista de parámetros no válida puede resultar en INET_ERROR_WRONG_ADDRESS_TYPE. Si el punto final sin procesar ya está vinculado o está escuchando, devuelve INET_ERROR_INCORRECT_STATE. Vincule el punto final a una dirección de enlace local IPv6 de interfaz.

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

BindInterface

INET_ERROR BindInterface(
  IPAddressType addrType,
  InterfaceId intf
)

Vincular el punto final a una interfaz de red.

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

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

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

Cerca

void Close(
  void
)

Cierre el punto final.

Si mState != kState_Closed , a continuación, cierra el punto final, de sacarlo del conjunto de puntos finales que pueden optar a los eventos de comunicación.

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

Libre

void Free(
  void
)

Cierre el endpoint y recicle su memoria.

Invoca el Close método, a continuación, invoca el InetLayerBasis::Release método para devolver el objeto a su banco de memoria.

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

GetBoundInterface

InterfaceId GetBoundInterface(
  void
)

Obtenga la interfaz enlazada en este punto final.

Detalles
Devoluciones
InterfaceId El ID de la interfaz enlazada.

Escuchar

INET_ERROR Listen(
  void
)

Prepare el punto final para recibir mensajes ICMP.

Si mState ya está kState_Listening , entonces no se realiza ninguna operación, de lo contrario el mState se establece en kState_Listening y el punto final se prepara a los mensajes ICMPv6 recibidos, de acuerdo con la semántica de la plataforma.

Detalles
Valores devueltos
INET_NO_ERROR
siempre regresaba.

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

SendMsg

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 de destino para el mensaje
[in] msg
el búfer de paquetes que contiene el mensaje UDP
[in] sendFlags
banderas de opción de transmisión opcional
Valores devueltos
INET_NO_ERROR
el éxito: msg se pone en cola para la 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 dirección de la interfaz vinculada no tienen versiones de protocolo o tipo de dirección coincidentes.
INET_ERROR_MESSAGE_TOO_LONG
msg no contiene todo el mensaje ICMP.
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
En algunas plataformas, sólo una parte truncada de msg se puso en cola para transmisión.
other
otro error de sistema o plataforma

Enviar a

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

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
banderas de opción de transmisión opcional
Valores devueltos
INET_NO_ERROR
el éxito: msg se pone en cola para la 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 dirección de la interfaz vinculada no tienen versiones de protocolo o tipo de dirección coincidentes.
INET_ERROR_MESSAGE_TOO_LONG
msg no contiene todo el mensaje ICMP.
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
En algunas plataformas, sólo una parte truncada de msg se puso en cola para transmisión.
other
otro error de sistema o plataforma

SetICMPFilter

INET_ERROR SetICMPFilter(
  uint8_t numICMPTypes,
  const uint8_t *aICMPTypes
)

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

Aplicar los parámetros de filtrado ICMPv6 para los códigos de aICMPTypes al punto final subyacente en la pila de red del sistema.

Detalles
Parámetros
[in] numICMPTypes
longitud de matriz en aICMPTypes
[in] aICMPTypes
el conjunto de códigos de tipo ICMPv6 para filtrar.
Valores devueltos
INET_NO_ERROR
éxito: conjunto de parámetros de filtro
INET_ERROR_NOT_IMPLEMENTED
el sistema no implementa
INET_ERROR_WRONG_ADDRESS_TYPE
punto final no tipo IPv6
INET_ERROR_WRONG_PROTOCOL_TYPE
punto final no tipo ICMP6
other
otro error de sistema o plataforma