Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.

nl::Inet::IPEndPointBasis

#include <src/inet/IPEndPointBasis.h>

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

Resumen

Herencia

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 control de eventos de recepción de texto de mensaje.
OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo) typedef
void(*
Tipo de función de control de eventos de error de recepción.

Atributos públicos

OnMessageReceived
El delegado de la función de administración de eventos de recepción de mensajes del extremo.
OnReceiveError
El delegado de los extremos recibe los eventos de error que controlan el delegado de la función.
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 IP.
LeaveMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
Abandona un grupo de multidifusión IP.
SetMulticastLoopback(IPVersion aIPVersion, bool aLoopback)
Establece si el tráfico de multidifusión 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)
Obtén la información 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 en el estado "Listo" después de la vinculación con una dirección de interfaz local; luego, pasan al estado "escuchando" cuando tienen continuidad registrada para manejar eventos de recepción de mensajes ICMP.

Nota: La enumeración de estado kBasisState_Closed se mapea a kState_Ready por razones históricas de compatibilidad binaria. El objeto kState_Closed existente existe para identificar por separado la distinción entre los valores "no abierta aún" y "abierta previamente" que ya existían en los estados kState_Ready y kState_Closed.

Properties
kState_Bound

Extremo vinculado, pero no escuchando

kState_Closed

Extremo cerrado, listo para el lanzamiento.

kState_Listening

Extremo que recibe datagramas.

kState_Ready

Extremo inicializado, pero no abierto

@9

 @9

Transmite marcas de opciones para el método SendMsg.

Properties
kSendFlag_RetainBuffer

No pongas el mensaje en cola directamente destructivamente.

Poner en cola una copia

OnMessageReceivedFunct

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

Tipo de función de control de eventos de recepción de texto de mensaje.

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

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

OnReceiveErrorFunct

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

Tipo de función de control de eventos de error de recepción.

Proporciona una función de este tipo al miembro delegado OnReceiveError para que procese 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 de administración de eventos de recepción de mensajes del extremo.

OnReceiveError

OnReceiveErrorFunct OnReceiveError

El delegado de los extremos recibe los eventos de error que controlan el delegado de la función.

Estado m

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

Estado dinámico básico del extremo subyacente.

Los objetos se inicializan en el estado "Listo" después de la vinculación con una dirección de interfaz local; luego, pasan al estado "escuchando" cuando tienen continuidad registrada para manejar eventos de recepción de mensajes ICMP.

Nota: La enumeración de estado kBasisState_Closed se mapea a kState_Ready por razones históricas de compatibilidad binaria. El objeto kState_Closed existente existe para identificar por separado la distinción entre los valores "no abierta aún" y "abierta previamente" que ya existían en los estados kState_Ready y kState_Closed.

Atributos protegidos

ID de mBoundIntf

InterfaceId mBoundIntfId

Funciones públicas

Unirse a multidifusión

INET_ERROR JoinMulticastGroup(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

Únete a un grupo de multidifusión 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 para agregar al grupo de multidifusión
[in] aAddress
al grupo multidifusión en el que se agregará la interfaz
Valores que se muestran
INET_NO_ERROR
Listo: 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

Abandonar multidifusión

INET_ERROR LeaveMulticastGroup(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

Abandona un grupo de multidifusión IP.

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

Detalles
Parámetros
[in] aInterfaceId
el indicador de interfaz de red para quitar del grupo de multidifusión
[in] aAddress
al grupo de multidifusión desde el que se quitará la interfaz
Valores que se muestran
INET_NO_ERROR
Listo: 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

Configurar multidifusión Loopback

INET_ERROR SetMulticastLoopback(
  IPVersion aIPVersion,
  bool aLoopback
)

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

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

Detalles
Parámetros
[in] aIPVersion
[in] aLoop
Valores que se muestran
INET_NO_ERROR
Éxito de comportamiento de bucle invertido de multidifusión establecido
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
)

Preparación

SocketEvents PrepareIO(
  void
)

Enviar mensaje

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

Obtener información de paquetes

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

Obtén la información de origen y destino de la capa de IP de LwIP.

Cuando se usa información de LwIP sobre el paquete, se encuentra oculta en el espacio reservado antes del inicio de los datos en el búfer de paquete. 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 extremo y el puntero al búfer.

Detalles
Parámetros
[in] aBuffer
el búfer de paquete que contiene el mensaje de IP
Qué muestra
un puntero a la información de la dirección en caso de éxito; de lo contrario, 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 para almacenar información antes de que los datos funcionen porque el primer búfer en un mensaje de IP de LwIP contiene el espacio que se usó para los encabezados de Ethernet, IP y 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 ocurrir con los paquetes IPv4 extremadamente grandes que lleguen sin un encabezado Ethernet.