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::EndPointBasisSubclases conocidas directas:
nl::Inet::RawEndPoint
nl::Inet::UDPEndPoint
Tipos públicos |
|
---|---|
@8{
|
enum Estado dinámico básico del extremo subyacente. |
@9{
|
enum Transmite marcas de opciones para el método SendMsg . |
OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo)
|
typedefvoid(*
Tipo de función de control de eventos de recepción de texto de mensaje. |
OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo)
|
typedefvoid(*
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 |
|
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 |
|
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 |
|
||||||||
Valores que se muestran |
|
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 |
|
||||||||
Valores que se muestran |
|
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 |
|
||||
Valores que se muestran |
|
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 |
|
||
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.