nl::Inet::RawEndPoint

#include <src/inet/RawEndPoint.h>

Gli oggetti di questa classe rappresentano endpoint di rete IP non elaborati.

Riepilogo

Nest Inet Layer incapsula metodi per interagire con gli endpoint di rete IP (socket SOCK_RAW su sistemi Linux e BSD) o con blocchi di controllo del protocollo non elaborato LwIP, in quanto il sistema è configurato di conseguenza.

Eredità

Eredita da: nl::Inet::IPEndPointBasis

Attributi pubblici

IPProto
IPProtocol
versione di Internet Control Message Protocol (ICMP)
IPVer
IPVersion
Versione del protocollo internet.

Funzioni pubbliche

Bind(IPAddressType addrType, IPAddress addr, InterfaceId intfId)
Associa l'endpoint a un indirizzo IP dell'interfaccia.
BindIPv6LinkLocal(InterfaceId intf, IPAddress addr)
Associa l'endpoint non elaborato a un indirizzo di ambito IPv6 locale rispetto al collegamento all'indice dell'interfaccia specificato.
BindInterface(IPAddressType addrType, InterfaceId intf)
Associa l'endpoint a un'interfaccia di rete.
Close(void)
void
Chiudi l'endpoint.
Free(void)
void
Chiudi l'endpoint e ricicla la memoria.
GetBoundInterface(void)
InterfaceId
Ottieni l'interfaccia associata su questo endpoint.
Listen(void)
Prepara l'endpoint per ricevere i messaggi ICMP.
SendMsg(const IPPacketInfo *pktInfo, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
Invia un messaggio ICMP alla destinazione specificata.
SendTo(IPAddress addr, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
Un sinonimo di SendTo(addr, INET_NULL_INTERFACEID, msg, sendFlags).
SendTo(IPAddress addr, InterfaceId intfId, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
Invia un messaggio ICMP all'indirizzo di destinazione specificato.
SetICMPFilter(uint8_t numICMPTypes, const uint8_t *aICMPTypes)
Imposta i parametri del filtro ICMP6 nello stack di rete.

Attributi pubblici

IPProto

IPProtocol IPProto

versione di Internet Control Message Protocol (ICMP)

Sebbene questo campo sia una variabile di classe modificabile, è un'invariante della classe che non può essere modificato.

IPVer

IPVersion IPVer

Versione del protocollo internet.

Sebbene questo campo sia una variabile di classe modificabile, è un'invariante della classe che non può essere modificato.

Funzioni pubbliche

Associa

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

Associa l'endpoint a un indirizzo IP dell'interfaccia.

Associa l'endpoint all'indirizzo IP dell'interfaccia di rete specificato.

Dettagli
Parametri
[in] addrType
la versione del protocollo dell'indirizzo IP
[in] addr
L'indirizzo IP (deve essere un indirizzo di interfaccia)
[in] intfId
un indicatore di interfaccia di rete facoltativo
Valori restituiti
INET_NO_ERROR
successo: endpoint associato all'indirizzo
INET_ERROR_INCORRECT_STATE
endpoint è stato associato in precedenza
INET_NO_MEMORY
memoria insufficiente per l'endpoint
INET_ERROR_UNKNOWN_INTERFACE
Su alcune piattaforme, l'interfaccia facoltativa specificata non è presente.
INET_ERROR_WRONG_PROTOCOL_TYPE
addrType non corrisponde a IPVer.
INET_ERROR_WRONG_ADDRESS_TYPE
addrType è kIPAddressType_Any oppure il tipo di addr è diverso da addrType.
other
un altro errore di sistema o di piattaforma

Su LwIP, questo metodo non deve essere chiamato con il blocco dello stack LwIP già acquisito.

BindIPv6LinkLocal

INET_ERROR BindIPv6LinkLocal(
  InterfaceId intf,
  IPAddress addr
)

Associa l'endpoint non elaborato a un indirizzo di ambito IPv6 locale e collegato all'indice dell'interfaccia specificato.

Consente inoltre di impostare varie opzioni socket IPv6 appropriate per la trasmissione di pacchetti da e verso destinazioni sul collegamento.

Associa l'endpoint all'indirizzo locale rispetto al collegamento IPv6 addr sull'interfaccia di rete indicata da intf.

Dettagli
Parametri
[in] intf
Un InterfaceId per identificare l'ambito dell'indirizzo.
[in] addr
Un oggetto IPAddress con ambito locale rispetto al collegamento IPv6.
Parametri
[in] intf
l'indicatore dell'interfaccia di rete
[in] addr
L'indirizzo IP (deve essere un indirizzo di interfaccia)
Valori restituiti
INET_NO_ERROR
successo: endpoint associato all'indirizzo
INET_ERROR_INCORRECT_STATE
endpoint è stato associato in precedenza
INET_NO_MEMORY
memoria insufficiente per l'endpoint
INET_ERROR_WRONG_PROTOCOL_TYPE
addrType non corrisponde a IPVer.
INET_ERROR_WRONG_ADDRESS_TYPE
addr non è un indirizzo IPv6 locale rispetto al collegamento o intf è INET_NULL_INTERFACEID.
other
un altro errore di sistema o di piattaforma
Restituisce
INET_NO_ERROR in caso di operazione riuscita o un errore del sistema operativo mappato in caso di errore. Un elenco di parametri non valido può restituire INET_ERROR_WRONG_ADDRESS_TYPE. Se l'endpoint non elaborato è già associato o è in ascolto, restituisce INET_ERROR_INCORRECT_STATE. Associa l'endpoint a un indirizzo IPv6 e locale rispetto al collegamento dell'interfaccia.

Su LwIP, questo metodo non deve essere chiamato con il blocco dello stack LwIP già acquisito.

BindInterface

INET_ERROR BindInterface(
  IPAddressType addrType,
  InterfaceId intf
)

Associa l'endpoint a un'interfaccia di rete.

Associa l'endpoint all'indirizzo IP dell'interfaccia di rete specificato.

Dettagli
Parametri
[in] addrType
la versione di protocollo dell'indirizzo IP.
[in] intf
dell'interfaccia di rete.
Valori restituiti
INET_NO_ERROR
successo: endpoint associato all'indirizzo
INET_NO_MEMORY
memoria insufficiente per l'endpoint
INET_ERROR_NOT_IMPLEMENTED
implementazione del sistema non completata.
INET_ERROR_UNKNOWN_INTERFACE
Su alcune piattaforme, l'interfaccia non è presente.
other
un altro errore di sistema o di piattaforma

Su LwIP, questo metodo non deve essere chiamato con il blocco dello stack LwIP già acquisito.

Chiudi

void Close(
  void
)

Chiudi l'endpoint.

Se mState != kState_Closed, l'endpoint viene chiuso e rimosso dall'insieme di endpoint idonei per gli eventi di comunicazione.

Nei sistemi LwIP, questo metodo non deve essere chiamato se il blocco dello stack LwIP è già acquisito.

Gratis

void Free(
  void
)

Chiudi l'endpoint e ricicla la memoria.

Richiama il metodo Close, quindi richiama il metodo InetLayerBasis::Release per restituire l'oggetto nel relativo pool di memoria.

Nei sistemi LwIP, questo metodo non deve essere chiamato se il blocco dello stack LwIP è già acquisito.

GetBoundInterface

InterfaceId GetBoundInterface(
  void
)

Ottieni l'interfaccia associata su questo endpoint.

Dettagli
Restituisce
InterfaceId L'ID dell'interfaccia associata.

Ascolta

INET_ERROR Listen(
  void
)

Prepara l'endpoint per ricevere i messaggi ICMP.

Se mState è già kState_Listening, non viene eseguita alcuna operazione, altrimenti mState viene impostato su kState_Listening e l'endpoint è preparato per ricevere messaggi ICMPv6, in base alla semantica della piattaforma.

Dettagli
Valori restituiti
INET_NO_ERROR
sempre restituiti.

Su LwIP, questo metodo non deve essere chiamato con il blocco dello stack LwIP già acquisito

SendMsg

INET_ERROR SendMsg(
  const IPPacketInfo *pktInfo,
  Weave::System::PacketBuffer *msg,
  uint16_t sendFlags
)

Invia un messaggio ICMP alla destinazione specificata.

 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.

Dettagli
Parametri
[in] pktInfo
le informazioni sulla destinazione per il messaggio
[in] msg
il buffer dei pacchetti contenente il messaggio UDP
[in] sendFlags
flag opzioni di trasmissione facoltativi
Valori restituiti
INET_NO_ERROR
riuscita: msg è in coda per la trasmissione.
INET_ERROR_NOT_SUPPORTED
il sistema non supporta l'operazione richiesta.
INET_ERROR_WRONG_ADDRESS_TYPE
le versioni di protocollo o il tipo di indirizzo non corrispondono all'indirizzo di destinazione e all'indirizzo dell'interfaccia associata.
INET_ERROR_MESSAGE_TOO_LONG
msg non contiene l'intero messaggio ICMP.
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
Su alcune piattaforme, solo una parte troncata di msg è stata messa in coda per la trasmissione.
other
un altro errore di sistema o di piattaforma

SendTo

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

Un sinonimo di SendTo(addr, INET_NULL_INTERFACEID, msg, sendFlags).

SendTo

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

Invia un messaggio ICMP all'indirizzo di destinazione specificato.

 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.

Dettagli
Parametri
[in] addr
l'indirizzo IP di destinazione
[in] intfId
un indicatore di interfaccia di rete facoltativo
[in] msg
il buffer dei pacchetti contenente il messaggio UDP
[in] sendFlags
flag opzioni di trasmissione facoltativi
Valori restituiti
INET_NO_ERROR
riuscita: msg è in coda per la trasmissione.
INET_ERROR_NOT_SUPPORTED
il sistema non supporta l'operazione richiesta.
INET_ERROR_WRONG_ADDRESS_TYPE
le versioni di protocollo o il tipo di indirizzo non corrispondono all'indirizzo di destinazione e all'indirizzo dell'interfaccia associata.
INET_ERROR_MESSAGE_TOO_LONG
msg non contiene l'intero messaggio ICMP.
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
Su alcune piattaforme, solo una parte troncata di msg è stata messa in coda per la trasmissione.
other
un altro errore di sistema o di piattaforma

SetICMPFilter

INET_ERROR SetICMPFilter(
  uint8_t numICMPTypes,
  const uint8_t *aICMPTypes
)

Imposta i parametri del filtro ICMP6 nello stack di rete.

Applica i parametri di filtro ICMPv6 per i codici in aICMPTypes all'endpoint sottostante nello stack di networking del sistema.

Dettagli
Parametri
[in] numICMPTypes
lunghezza dell'array in aICMPTypes
[in] aICMPTypes
l'insieme di codici di tipo ICMPv6 da filtrare.
Valori restituiti
INET_NO_ERROR
operazione riuscita: set di parametri di filtro
INET_ERROR_NOT_IMPLEMENTED
che il sistema non implementa
INET_ERROR_WRONG_ADDRESS_TYPE
tipo di endpoint non IPv6
INET_ERROR_WRONG_PROTOCOL_TYPE
endpoint non di tipo ICMP6
other
un altro errore di sistema o di piattaforma