Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

nl::int::RawendPoint

#include <src/inet/RawEndPoint.h>

Objekte dieser Klasse stellen Roh-IP-Netzwerk-Endpunkte dar.

Fazit

Nest Inet Layer kapselt Methoden zur Interaktion mit IP-Netzwerkendpunkten (SOCK_RAW-Sockets auf Linux- und BSD-abgeleiteten Systemen) oder LwIP-RAW-Protokollkontrollblöcken, da das System entsprechend konfiguriert ist.

Übernahme

Übernimmt von: nl::Inet::IPEndPointBasis

Öffentliche Attribute

IPProto
IPProtocol
Version des Internet Control Message Protocol (ICMP)
IPVer
IPVersion
Version des Internetprotokolls.

Öffentliche Funktionen

Bind(IPAddressType addrType, IPAddress addr, InterfaceId intfId)
Binden Sie den Endpunkt an eine IP-Adresse der Schnittstelle.
BindIPv6LinkLocal(InterfaceId intf, IPAddress addr)
Verknüpfe den Rohendpunkt mit einer Adresse für den IPv6-Link-Local-Bereich beim angegebenen Schnittstellenindex.
BindInterface(IPAddressType addrType, InterfaceId intf)
Binden Sie den Endpunkt an eine Netzwerkschnittstelle.
Close(void)
void
Schließen Sie den Endpunkt.
Free(void)
void
Schließen Sie den Endpunkt und verwenden Sie den Arbeitsspeicher wieder.
GetBoundInterface(void)
InterfaceId
Begrenzte Schnittstelle für diesen Endpunkt abrufen.
Listen(void)
Bereiten Sie den Endpunkt für den Empfang von ICMP-Nachrichten vor.
SendMsg(const IPPacketInfo *pktInfo, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
Eine ICMP-Nachricht an das angegebene Ziel senden.
SendTo(IPAddress addr, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
Ein Synonym für SendTo(addr, INET_NULL_INTERFACEID, msg, sendFlags).
SendTo(IPAddress addr, InterfaceId intfId, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
Eine ICMP-Nachricht an die angegebene Zieladresse senden.
SetICMPFilter(uint8_t numICMPTypes, const uint8_t *aICMPTypes)
Legen Sie die ICMP6-Filterparameter im Netzwerk-Stack fest.

Öffentliche Attribute

IPProto

IPProtocol IPProto

Version des Internet Control Message Protocol (ICMP)

Dieses Feld ist zwar eine änderbare Klassenvariable, es ist aber eine Variante der Klasse, die nicht geändert werden kann.

IP-Adresse

IPVersion IPVer

Version des Internetprotokolls.

Dieses Feld ist zwar eine änderbare Klassenvariable, es ist aber eine Variante der Klasse, die nicht geändert werden kann.

Öffentliche Funktionen

Binden

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

Binden Sie den Endpunkt an eine IP-Adresse der Schnittstelle.

Verknüpft den Endpunkt mit der angegebenen IP-Adresse der Netzwerkschnittstelle.

Details
Parameter
[in] addrType
Die Protokollversion der IP-Adresse
[in] addr
Die IP-Adresse (muss eine Schnittstellenadresse sein)
[in] intfId
Eine optionale Netzwerkschnittstelle-Anzeige
Rückgabewerte
INET_NO_ERROR
Erfolgreich: Endpunkt an Adresse gebunden
INET_ERROR_INCORRECT_STATE
Endpunkt wurde zuvor gebunden
INET_NO_MEMORY
nicht genügend Speicher für den Endpunkt
INET_ERROR_UNKNOWN_INTERFACE
Auf einigen Plattformen ist die optional angegebene Schnittstelle nicht vorhanden.
INET_ERROR_WRONG_PROTOCOL_TYPE
addrType stimmt nicht mit IPVer überein.
INET_ERROR_WRONG_ADDRESS_TYPE
addrType ist kIPAddressType_Any oder der Typ von addr ist nicht ungleich addrType.
other
System- oder Plattformfehler

Auf LwIP darf diese Methode nicht mit der bereits erworbenen LwIP-Stack-Sperre aufgerufen werden.

BindIPv6LinkLocal

INET_ERROR BindIPv6LinkLocal(
  InterfaceId intf,
  IPAddress addr
)

Verknüpfe den Rohendpunkt mit einer Adresse für den IPv6-Link-Local-Bereich beim angegebenen Schnittstellenindex.

Legen Sie außerdem verschiedene IPv6-Socket-Optionen fest, die für die Übertragung von Paketen an und von Zielen der Verbindung verwendet werden.

Verbindet den Endpunkt mit der IPv6-Link-Local-Adresse addr auf der durch intf angegebenen Netzwerkschnittstelle.

Details
Parameter
[in] intf
Eine InterfaceId, um den Bereich der Adresse zu identifizieren
[in] addr
Ein IPv6-Link-Local-Scope-Objekt vom Typ IPAddress.
Parameter
[in] intf
der Anzeige der Netzwerkschnittstelle
[in] addr
Die IP-Adresse (muss eine Schnittstellenadresse sein)
Rückgabewerte
INET_NO_ERROR
Erfolgreich: Endpunkt an Adresse gebunden
INET_ERROR_INCORRECT_STATE
Endpunkt wurde zuvor gebunden
INET_NO_MEMORY
nicht genügend Speicher für den Endpunkt
INET_ERROR_WRONG_PROTOCOL_TYPE
addrType stimmt nicht mit IPVer überein.
INET_ERROR_WRONG_ADDRESS_TYPE
addr ist keine lokale IPv6-Link-Adresse oder intf ist INET_NULL_INTERFACEID.
other
System- oder Plattformfehler
Rückgabe
INET_NO_ERROR bei Erfolg oder ein zugeordneter Betriebssystemfehler bei Fehler. Eine ungültige Parameterliste kann zu INET_ERROR_WRONG_ADDRESS_TYPE führen. Wenn der Rohendpunkt bereits gebunden oder überwacht ist, wird INET_ERROR_INCORRECT_STATE zurückgegeben. Binden Sie den Endpunkt an eine IPv6-Link-Local-Adresse.

Auf LwIP darf diese Methode nicht mit der bereits erworbenen LwIP-Stack-Sperre aufgerufen werden.

BindInterface

INET_ERROR BindInterface(
  IPAddressType addrType,
  InterfaceId intf
)

Binden Sie den Endpunkt an eine Netzwerkschnittstelle.

Verknüpft den Endpunkt mit der angegebenen IP-Adresse der Netzwerkschnittstelle.

Details
Parameter
[in] addrType
Die Protokollversion der IP-Adresse.
[in] intf
Anzeige der Netzwerkschnittstelle
Rückgabewerte
INET_NO_ERROR
Erfolgreich: Endpunkt an Adresse gebunden
INET_NO_MEMORY
nicht genügend Speicher für den Endpunkt
INET_ERROR_NOT_IMPLEMENTED
Die Systemimplementierung ist nicht abgeschlossen.
INET_ERROR_UNKNOWN_INTERFACE
Auf einigen Plattformen ist die Benutzeroberfläche nicht vorhanden.
other
System- oder Plattformfehler

Auf LwIP darf diese Methode nicht mit der bereits erworbenen LwIP-Stack-Sperre aufgerufen werden.

Schließen

void Close(
  void
)

Schließen Sie den Endpunkt.

Bei mState != kState_Closed wird der Endpunkt dann geschlossen. Bei allen Endpunkten, die für Kommunikationsereignisse infrage kommen, wird er entfernt.

Auf LwIP-Systemen darf diese Methode nicht mit der LwIP-Stack-Sperre aufgerufen werden, die bereits erworben wurde.

Kostenlos

void Free(
  void
)

Schließen Sie den Endpunkt und verwenden Sie den Arbeitsspeicher wieder.

Ruft die Close-Methode auf und ruft dann die InetLayerBasis::Release-Methode auf, um das Objekt in seinen Speicherpool zurückzugeben.

Auf LwIP-Systemen darf diese Methode nicht mit der LwIP-Stack-Sperre aufgerufen werden, die bereits erworben wurde.

GetBoundInterface

InterfaceId GetBoundInterface(
  void
)

Begrenzte Schnittstelle für diesen Endpunkt abrufen.

Details
Rückgabe
InterfaceId Die gebundene Schnittstellen-ID.

Anhören

INET_ERROR Listen(
  void
)

Bereiten Sie den Endpunkt für den Empfang von ICMP-Nachrichten vor.

Wenn mState bereits kState_Listening ist, wird kein Vorgang ausgeführt. Andernfalls wird mState auf kState_Listening gesetzt und der Endpunkt wird für den Empfang von ICMPv6-Nachrichten gemäß der Semantik der Plattform vorbereitet.

Details
Rückgabewerte
INET_NO_ERROR
immer zurückgegeben.

Bei LwIP darf diese Methode nicht mit der bereits erfassten LwIP-Stack-Sperre aufgerufen werden

MS-MMS

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

Eine ICMP-Nachricht an das angegebene Ziel senden.

 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.

Details
Parameter
[in] pktInfo
Zielinformationen für die Nachricht
[in] msg
den Paketzwischenspeicher mit der UDP-Nachricht
[in] sendFlags
Optionale Flags für Übertragungsoptionen
Rückgabewerte
INET_NO_ERROR
Erfolgreich: msg wird zur Übertragung in die Warteschlange gestellt.
INET_ERROR_NOT_SUPPORTED
Das System unterstützt den angeforderten Vorgang nicht.
INET_ERROR_WRONG_ADDRESS_TYPE
die Zieladresse und die gebundene Schnittstellenadresse nicht mit den Protokollversionen oder Adresstypen übereinstimmen.
INET_ERROR_MESSAGE_TOO_LONG
msg enthält nicht die gesamte ICMP-Nachricht.
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
Auf einigen Plattformen wurde nur ein abgeschnittener Teil von msg zur Übertragung in die Warteschlange gestellt.
other
System- oder Plattformfehler

Senden an

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

Ein Synonym für SendTo(addr, INET_NULL_INTERFACEID, msg, sendFlags).

Senden an

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

Eine ICMP-Nachricht an die angegebene Zieladresse senden.

 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.

Details
Parameter
[in] addr
die Ziel-IP-Adresse
[in] intfId
Eine optionale Netzwerkschnittstelle-Anzeige
[in] msg
den Paketzwischenspeicher mit der UDP-Nachricht
[in] sendFlags
Optionale Flags für Übertragungsoptionen
Rückgabewerte
INET_NO_ERROR
Erfolgreich: msg wird zur Übertragung in die Warteschlange gestellt.
INET_ERROR_NOT_SUPPORTED
Das System unterstützt den angeforderten Vorgang nicht.
INET_ERROR_WRONG_ADDRESS_TYPE
die Zieladresse und die gebundene Schnittstellenadresse nicht mit den Protokollversionen oder Adresstypen übereinstimmen.
INET_ERROR_MESSAGE_TOO_LONG
msg enthält nicht die gesamte ICMP-Nachricht.
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
Auf einigen Plattformen wurde nur ein abgeschnittener Teil von msg zur Übertragung in die Warteschlange gestellt.
other
System- oder Plattformfehler

BGP-Filter festlegen

INET_ERROR SetICMPFilter(
  uint8_t numICMPTypes,
  const uint8_t *aICMPTypes
)

Legen Sie die ICMP6-Filterparameter im Netzwerk-Stack fest.

Wenden Sie die ICMPv6-Filterparameter für die Codes in aICMPTypes auf den zugrunde liegenden Endpunkt im Systemnetzwerk-Stack an.

Details
Parameter
[in] numICMPTypes
Länge des Arrays bei aICMPTypes
[in] aICMPTypes
Satz von ICMPv6-Typcodes, die gefiltert werden sollen.
Rückgabewerte
INET_NO_ERROR
Fertig: Filterparameter festgelegt
INET_ERROR_NOT_IMPLEMENTED
dass das System
INET_ERROR_WRONG_ADDRESS_TYPE
Endpunkt nicht IPv6-Typ
INET_ERROR_WRONG_PROTOCOL_TYPE
Endpunkt nicht ICMP6-Typ
other
System- oder Plattformfehler