nl::Inet::IPEndPointBasis

#include <src/inet/IPEndPointBasis.h>

Gli oggetti di questa classe rappresentano endpoint del protocollo IP non instabili.

Riepilogo

Eredità

Eredita da: nl::Inet::EndPointBasis
Sottoclassi dirette note:
  nl::Inet::RawEndPoint
  nl::Inet::UDPEndPoint

Tipi pubblici

@8{
  kState_Ready = kBasisState_Closed,
  kState_Bound = 1,
  kState_Listening = 2,
  kState_Closed = 3
}
enum
Stato dinamico di base dell'endpoint sottostante.
@9{
  kSendFlag_RetainBuffer = 0x0040
}
enum
Flag delle opzioni di trasmissione per il metodo SendMsg.
OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo) typedef
void(*
Tipo di funzione di gestione dell'evento di ricezione del testo del messaggio.
OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo) typedef
void(*
Tipo di funzione di gestione degli eventi di errore di ricezione.

Attributi pubblici

OnMessageReceived
Delegato della funzione di gestione dell'evento di ricezione dei messaggi dell'endpoint.
OnReceiveError
L'endpoint riceve il delegato della funzione di gestione degli eventi di errore.
mState
enum nl::Inet::IPEndPointBasis::@8
Stato dinamico di base dell'endpoint sottostante.

Attributi protetti

mBoundIntfId
InterfaceId

Funzioni pubbliche

JoinMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
Unisciti a un gruppo multicast IP.
LeaveMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
Lascia un gruppo multicast IP.
SetMulticastLoopback(IPVersion aIPVersion, bool aLoopback)
Consente di stabilire se eseguire il loop del traffico multicast IP.

Funzioni protette

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)

Funzioni statiche pubbliche

FindNetifFromInterfaceId(InterfaceId aInterfaceId)
struct netif *

Funzioni statiche protette

GetPacketInfo(Weave::System::PacketBuffer *buf)
Ottieni informazioni sull'indirizzamento di origine e destinazione del livello IP LwIP.

Tipi pubblici

@8

 @8

Stato dinamico di base dell'endpoint sottostante.

Gli oggetti vengono inizializzati nello stato "pronto", dopo l'associazione con un indirizzo di interfaccia locale passa allo stato "associato", quindi passa allo stato "in ascolto" quando hanno continuazioni registrate per la gestione degli eventi per la ricezione di messaggi ICMP.

Nota: l'enumerazione dello stato kBasisState_Closed è mappata su kState_Ready per motivi storici di compatibilità binaria. Il campo kState_Closed esistente serve a identificare separatamente la distinzione tra "non ancora aperto" e "precedentemente aperto ora chiuso" che esisteva in precedenza negli stati kState_Ready e kState_Closed.

Proprietà
kState_Bound

Vincolo a endpoint, ma non in ascolto.

kState_Closed

Endpoint chiuso, pronto per il rilascio.

kState_Listening

Endpoint che riceve datagrammi.

kState_Ready

Endpoint inizializzato, ma non aperto.

@9

 @9

Flag delle opzioni di trasmissione per il metodo SendMsg.

Proprietà
kSendFlag_RetainBuffer

Non mettere direttamente in coda il messaggio.

Metti una copia in coda.

OnMessageReceivedFunct

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

Tipo di funzione di gestione dell'evento di ricezione del testo del messaggio.

Fornisci una funzione di questo tipo al membro delegato OnMessageReceived per elaborare gli eventi di ricezione del testo dei messaggi in endPoint, dove msg è il testo del messaggio ricevuto dal mittente alle ore senderAddr.

Dettagli
Parametri
[in] endPoint
L'endpoint associato all'evento.
[in] msg
Il testo del messaggio ricevuto.
[in] senderAddr
L'indirizzo IP del mittente.

OnReceiveErrorFunct

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

Tipo di funzione di gestione degli eventi di errore di ricezione.

Fornisci una funzione di questo tipo al membro delegato OnReceiveError affinché elabori gli eventi di errore di ricezione il giorno endPoint. L'argomento err fornisce dettagli specifici sul tipo di errore.

Dettagli
Parametri
[in] endPoint
L'endpoint associato all'evento.
[in] err
Il motivo dell'errore.

Attributi pubblici

OnMessageReceived

OnMessageReceivedFunct OnMessageReceived

Delegato della funzione di gestione dell'evento di ricezione dei messaggi dell'endpoint.

OnReceiveError

OnReceiveErrorFunct OnReceiveError

L'endpoint riceve il delegato della funzione di gestione degli eventi di errore.

mState

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

Stato dinamico di base dell'endpoint sottostante.

Gli oggetti vengono inizializzati nello stato "pronto", dopo l'associazione con un indirizzo di interfaccia locale passa allo stato "associato", quindi passa allo stato "in ascolto" quando hanno continuazioni registrate per la gestione degli eventi per la ricezione di messaggi ICMP.

Nota: l'enumerazione dello stato kBasisState_Closed è mappata su kState_Ready per motivi storici di compatibilità binaria. Il campo kState_Closed esistente serve a identificare separatamente la distinzione tra "non ancora aperto" e "precedentemente aperto ora chiuso" che esisteva in precedenza negli stati kState_Ready e kState_Closed.

Attributi protetti

mBoundIntfId

InterfaceId mBoundIntfId

Funzioni pubbliche

JoinMulticastGroup

INET_ERROR JoinMulticastGroup(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

Unisciti a un gruppo multicast IP.

Unisci l'endpoint al gruppo multicast fornito nell'interfaccia specificata.

Dettagli
Parametri
[in] aInterfaceId
l'indicatore dell'interfaccia di rete da aggiungere al gruppo multicast
[in] aAddress
il gruppo multicast a cui aggiungere l'interfaccia
Valori restituiti
INET_NO_ERROR
operazione riuscita: gruppo multicast rimosso
INET_ERROR_UNKNOWN_INTERFACE
interfaccia di rete sconosciuta, aInterfaceId
INET_ERROR_WRONG_ADDRESS_TYPE
aAddress non è kIPAddressType_IPv4 o kIPAddressType_IPv6 oppure non è multicast
other
un altro errore del sistema o della piattaforma

LeaveMulticastGroup

INET_ERROR LeaveMulticastGroup(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

Lascia un gruppo multicast IP.

Rimuovi l'endpoint dal gruppo multicast fornito nell'interfaccia specificata.

Dettagli
Parametri
[in] aInterfaceId
l'indicatore dell'interfaccia di rete da rimuovere dal gruppo multicast
[in] aAddress
il gruppo multicast da cui rimuovere l'interfaccia
Valori restituiti
INET_NO_ERROR
operazione riuscita: gruppo multicast rimosso
INET_ERROR_UNKNOWN_INTERFACE
interfaccia di rete sconosciuta, aInterfaceId
INET_ERROR_WRONG_ADDRESS_TYPE
aAddress non è kIPAddressType_IPv4 o kIPAddressType_IPv6 oppure non è multicast
other
un altro errore del sistema o della piattaforma

SetMulticastLoopback

INET_ERROR SetMulticastLoopback(
  IPVersion aIPVersion,
  bool aLoopback
)

Consente di stabilire se eseguire il loop del traffico multicast IP.

Imposta se il traffico IP multicast deve essere reindirizzato a questo endpoint.

Dettagli
Parametri
[in] aIPVersion
[in] aLoop
Valori restituiti
INET_NO_ERROR
operazione riuscita: comportamento di loopback multicast impostato
other
un altro errore del sistema o della piattaforma

Funzioni protette

Associa

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
)

Inizia

void Init(
  InetLayer *aInetLayer
)

PrepareIO

SocketEvents PrepareIO(
  void
)

SendMsg

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

Funzioni statiche pubbliche

FindNetifFromInterfaceId

struct netif * FindNetifFromInterfaceId(
  InterfaceId aInterfaceId
)

Funzioni statiche protette

GetPacketInfo

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

Ottieni informazioni sull'indirizzamento di origine e destinazione del livello IP LwIP.

Quando si utilizza LwIP, le informazioni sul pacchetto vengono "nascoste" nello spazio riservato prima dell'inizio dei dati nel buffer del pacchetto. Ciò è necessario perché gli eventi del livello di sistema hanno solo due argomenti, che in questo caso vengono utilizzati per trasmettere il puntatore al punto finale e il puntatore al buffer.

Dettagli
Parametri
[in] aBuffer
il buffer del pacchetto contenente il messaggio IP
Restituisce
un puntatore alle informazioni sull'indirizzo in caso di esito positivo; in caso contrario, NULL se lo spazio nel pacchetto non è sufficiente per le informazioni sull'indirizzo.

Nella maggior parte dei casi questo trucco di memorizzare le informazioni prima che i dati funzioni, perché il primo buffer in un messaggio LwIP IP contiene lo spazio che è stato utilizzato per le intestazioni Ethernet/IP/UDP. Tuttavia, date le dimensioni attuali della struttura IPPacketInfo (40 byte), è possibile che non ci sia spazio sufficiente per archiviare la struttura insieme al payload in un singolo buffer di pacchetto. In pratica, questo dovrebbe avvenire solo per pacchetti IPv4 molto grandi che arrivano senza un'intestazione Ethernet.