nl::Inet::IPEndPointBasis

#include <src/inet/IPEndPointBasis.h>

Los objetos de esta clase representan extremos de protocolo de IP que no admiten instancias.

Resumen

Herencia

Se hereda de: nl::Inet::EndPointBasis
Subclases conocidas directas:
  nl::Inet::RawEndPoint
  nl::Inet::UDPEndPoint

Tipos públicos

@8{
  kState_Ready = kBasisState_Closed,
  kState_Bound = 1,
  kState_Listening = 2,
  kState_Closed = 3
}
enum
Estado dinámico básico del extremo subyacente.
@9{
  kSendFlag_RetainBuffer = 0x0040
}
enum
Transmite marcas de opciones para el método SendMsg.
OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo) typedef
void(*
Tipo de función de manejo de eventos de recepción de texto de mensajes.
OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo) typedef
void(*
Tipo de función de manejo de eventos de errores de recepción.

Atributos públicos

OnMessageReceived
El delegado de la función que controla el evento de recepción de mensajes del extremo
OnReceiveError
El delegado de la función de control de eventos de error recibidos del extremo
mState
enum nl::Inet::IPEndPointBasis::@8
Estado dinámico básico del extremo subyacente.

Atributos protegidos

mBoundIntfId
InterfaceId

Funciones públicas

JoinMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
Únete a un grupo de multidifusión de IP.
LeaveMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
Abandona un grupo de multidifusión de IP.
SetMulticastLoopback(IPVersion aIPVersion, bool aLoopback)
Establece si el tráfico de multidifusión de IP se debe repetir en bucle.

Funciones protegidas

Bind(IPAddressType aAddressType, IPAddress aAddress, uint16_t aPort, InterfaceId aInterfaceId)
BindInterface(IPAddressType aAddressType, InterfaceId aInterfaceId)
GetSocket(IPAddressType aAddressType, int aType, int aProtocol)
HandleDataReceived(Weave::System::PacketBuffer *aBuffer)
void
HandlePendingIO(uint16_t aPort)
void
Init(InetLayer *aInetLayer)
void
PrepareIO(void)
SendMsg(const IPPacketInfo *aPktInfo, Weave::System::PacketBuffer *aBuffer, uint16_t aSendFlags)

Funciones estáticas públicas

FindNetifFromInterfaceId(InterfaceId aInterfaceId)
struct netif *

Funciones estáticas protegidas

GetPacketInfo(Weave::System::PacketBuffer *buf)
Obtiene información sobre el direccionamiento de origen y destino de la capa de IP de LwIP.

Tipos públicos

@8

 @8

Estado dinámico básico del extremo subyacente.

Los objetos se inicializan como “listos”. proceda con el "límite" después de la vinculación a una dirección de interfaz local, y luego proceder a la “escucha” estado cuando tienen continuas registradas para controlar eventos de recepción de mensajes de ICMP.

Nota: La enumeración de estado kBasisState_Closed se asigna a kState_Ready por motivos históricos de compatibilidad binaria. El kState_Closed existente existe para identificar por separado la distinción entre "todavía no está abierto" y "abiertos anteriormente ahora cerrado" que existían anteriormente en los estados kState_Ready y kState_Closed.

Propiedades
kState_Bound

Vinculado al extremo, pero sin escucha

kState_Closed

Se cerró el extremo y está listo para el lanzamiento.

kState_Listening

Extremo que recibe datagramas.

kState_Ready

Se inicializó el extremo, pero no está abierto.

@9

 @9

Transmite marcas de opciones para el método SendMsg.

Propiedades
kSendFlag_RetainBuffer

No pongas en cola el mensaje de manera directa y destructiva.

Agrega una copia a la fila.

OnMessageReceivedFunct

void(* OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo)

Tipo de función de manejo de eventos de recepción de texto de mensajes.

Proporciona una función de este tipo al miembro delegado de OnMessageReceived para que procese eventos de recepción de texto de mensajes en endPoint, donde msg es el texto del mensaje recibido del remitente en senderAddr.

Detalles
Parámetros
[in] endPoint
El extremo asociado con el evento.
[in] msg
Es el texto del mensaje recibido.
[in] senderAddr
Es la dirección IP del remitente.

OnReceiveErrorFunct

void(* OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo)

Tipo de función de manejo de eventos de errores de recepción.

Proporciona una función de este tipo al miembro delegado OnReceiveError para procesar los eventos de error de recepción en endPoint. El argumento err proporciona detalles específicos sobre el tipo de error.

Detalles
Parámetros
[in] endPoint
El extremo asociado con el evento.
[in] err
Motivo del error.

Atributos públicos

OnMessageReceived

OnMessageReceivedFunct OnMessageReceived

El delegado de la función que controla el evento de recepción de mensajes del extremo

OnReceiveError

OnReceiveErrorFunct OnReceiveError

El delegado de la función de control de eventos de error recibidos del extremo

mState

enum nl::Inet::IPEndPointBasis::@8 mState

Estado dinámico básico del extremo subyacente.

Los objetos se inicializan como “listos”. proceda con el "límite" después de la vinculación a una dirección de interfaz local, y luego proceder a la “escucha” estado cuando tienen continuas registradas para controlar eventos de recepción de mensajes de ICMP.

Nota: La enumeración de estado kBasisState_Closed se asigna a kState_Ready por motivos históricos de compatibilidad binaria. El kState_Closed existente existe para identificar por separado la distinción entre "todavía no está abierto" y "abiertos anteriormente ahora cerrado" que existían anteriormente en los estados kState_Ready y kState_Closed.

Atributos protegidos

mBoundIntfId

InterfaceId mBoundIntfId

Funciones públicas

JoinMulticastGroup

INET_ERROR JoinMulticastGroup(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

Únete a un grupo de multidifusión de IP.

Une el extremo al grupo de multidifusión proporcionado en la interfaz especificada.

Detalles
Parámetros
[in] aInterfaceId
el indicador de la interfaz de red que se agregará al grupo de multicast
[in] aAddress
el grupo de multidifusión para agregar la interfaz
Valores de retorno
INET_NO_ERROR
éxito: se quitó el grupo de multidifusión
INET_ERROR_UNKNOWN_INTERFACE
interfaz de red desconocida, aInterfaceId
INET_ERROR_WRONG_ADDRESS_TYPE
aAddress no es kIPAddressType_IPv4, kIPAddressType_IPv6 o no es multidifusión
other
otro error del sistema o de la plataforma

LeaveMulticastGroup

INET_ERROR LeaveMulticastGroup(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

Abandona un grupo de multidifusión de IP.

Quita el extremo del grupo de multidifusión proporcionado en la interfaz especificada.

Detalles
Parámetros
[in] aInterfaceId
el indicador de la interfaz de red que se quitará del grupo de multidifusión
[in] aAddress
el grupo multicast del cual quitar la interfaz
Valores de retorno
INET_NO_ERROR
éxito: se quitó el grupo de multidifusión
INET_ERROR_UNKNOWN_INTERFACE
interfaz de red desconocida, aInterfaceId
INET_ERROR_WRONG_ADDRESS_TYPE
aAddress no es kIPAddressType_IPv4, kIPAddressType_IPv6 o no es multidifusión
other
otro error del sistema o de la plataforma

SetMulticastLoopback

INET_ERROR SetMulticastLoopback(
  IPVersion aIPVersion,
  bool aLoopback
)

Establece si el tráfico de multidifusión de IP se debe repetir en bucle.

Establece si el tráfico de multidifusión IP se debe repetir en bucle en este extremo.

Detalles
Parámetros
[in] aIPVersion
[in] aLoop
Valores de retorno
INET_NO_ERROR
éxito: se estableció el comportamiento de bucle invertido de multidifusión
other
otro error del sistema o de la plataforma

Funciones protegidas

Vincular

INET_ERROR Bind(
  IPAddressType aAddressType,
  IPAddress aAddress,
  uint16_t aPort,
  InterfaceId aInterfaceId
)

BindInterface

INET_ERROR BindInterface(
  IPAddressType aAddressType,
  InterfaceId aInterfaceId
)

GetSocket

INET_ERROR GetSocket(
  IPAddressType aAddressType,
  int aType,
  int aProtocol
)

HandleDataReceived

void HandleDataReceived(
  Weave::System::PacketBuffer *aBuffer
)

HandlePendingIO

void HandlePendingIO(
  uint16_t aPort
)

Init

void Init(
  InetLayer *aInetLayer
)

PrepareIO

SocketEvents PrepareIO(
  void
)

SendMsg

INET_ERROR SendMsg(
  const IPPacketInfo *aPktInfo,
  Weave::System::PacketBuffer *aBuffer,
  uint16_t aSendFlags
)

Funciones estáticas públicas

FindNetifFromInterfaceId

struct netif * FindNetifFromInterfaceId(
  InterfaceId aInterfaceId
)

Funciones estáticas protegidas

GetPacketInfo

IPPacketInfo * GetPacketInfo(
  Weave::System::PacketBuffer *buf
)

Obtiene información sobre el direccionamiento de origen y destino de la capa de IP de LwIP.

Cuando se usa la información de LwIP sobre el paquete está "oculto" en el espacio reservado antes del inicio de los datos en el búfer de paquetes. Esto es necesario porque los eventos de la capa del sistema solo tienen dos argumentos, que en este caso se usan para transmitir el puntero al punto final y el puntero al búfer.

Detalles
Parámetros
[in] aBuffer
el búfer de paquetes que contiene el mensaje IP
Resultado que se muestra
un puntero a la información de la dirección sobre el éxito; de lo contrario, será NULL si no hay suficiente espacio en el paquete para la información de la dirección.

En la mayoría de los casos, este truco de almacenar la información antes de que los datos funcione porque el primer búfer en un mensaje LwIP IP contiene el espacio que se utilizó para los encabezados Ethernet/IP/UDP. Sin embargo, dado el tamaño actual de la estructura de IPPacketInfo (40 bytes), es posible que no haya suficiente espacio para almacenar la estructura junto con la carga útil en un solo búfer de paquete. En la práctica, esto solo debería suceder con paquetes IPv4 extremadamente grandes que lleguen sin un encabezado Ethernet.