nl::Inet

Zusammenfassung

Aufzählungen

@7{
  kInetEvent_TCPConnectComplete = _INET_CONFIG_EVENT(0),
  kInetEvent_TCPConnectionReceived = _INET_CONFIG_EVENT(1),
  kInetEvent_TCPDataReceived = _INET_CONFIG_EVENT(2),
  kInetEvent_TCPDataSent = _INET_CONFIG_EVENT(3),
  kInetEvent_TCPError = _INET_CONFIG_EVENT(4),
  kInetEvent_UDPDataReceived = _INET_CONFIG_EVENT(5),
  kInetEvent_DNSResolveComplete = _INET_CONFIG_EVENT(6),
  kInetEvent_TunDataReceived = _INET_CONFIG_EVENT(7),
  kInetEvent_RawDataReceived = _INET_CONFIG_EVENT(8)
}
enum
Die Ereignistypdefinitionen der Inet-Ebene.
DNSOptions{
  kDNSOption_AddrFamily_Mask = 0x07,
  kDNSOption_Flags_Mask = 0xF8,
  kDNSOption_AddrFamily_Any = 0x00,
  kDNSOption_AddrFamily_IPv4Only = 0x01,
  kDNSOption_AddrFamily_IPv4Preferred = 0x02,
  kDNSOption_AddrFamily_IPv6Only = 0x03,
  kDNSOption_AddrFamily_IPv6Preferred = 0x04,
  kDNSOption_ValidFlags = 0
}
enum
Optionen, die steuern, wie die Auflösung von IP-Adressen durchgeführt wird.
IPAddressType{
  kIPAddressType_Unknown = 0,
  kIPAddressType_IPv4 = 1,
  kIPAddressType_IPv6 = 2,
  kIPAddressType_Any = 3
}
enum
IP-Adressfamilie.
IPProtocol{
  kIPProtocol_ICMPv6 = 58,
  kIPProtocol_ICMPv4 = 1
}
enum
Die Nummern einiger Protokolle in der IP-Familie.
IPV6MulticastGroup{
  kIPV6MulticastGroup_AllRouters = 2
}
enum
Internet Protocol-Multicast-Gruppenkennungen.
IPVersion{
  kIPVersion_6 = 6,
  kIPVersion_4 = 4
}
enum
Die Version des verwendeten IP-Protokolls.
IPv6MulticastFlag{
  kIPv6MulticastFlag_Transient = 0x01,
  kIPv6MulticastFlag_Prefix = 0x02
}
enum
Internet Protocol v6-Multicast-Flags.
IPv6MulticastScope{
  kIPv6MulticastScope_Interface = 1,
  kIPv6MulticastScope_Link = 2,
  kIPv6MulticastScope_IPv4 = 3,
  kIPv6MulticastScope_Admin = 4,
  kIPv6MulticastScope_Site = 5,
  kIPv6MulticastScope_Organization = 8,
  kIPv6MulticastScope_Global = 14
}
enum
Internet Protocol-Multicast-Adressbereich.

Typedefs

InterfaceId typedef.
struct netif *
Indikator für Systemnetzwerkschnittstellen.

Variablen

sIOCTLSocket = -1
int

Funktionen

CheckMulticastGroupArgs(InterfaceId aInterfaceId, const IPAddress & aAddress)
CloseIOCTLSocket(void)
void
Schließen Sie den von GetIOCTLSocket erstellten globalen Socket.
FormatInetLayerError(char *buf, uint16_t bufSize, int32_t err)
bool
Bei einem Inet-Layer-Fehler wird ein für Menschen lesbarer NULL-terminierter C-String zurückgegeben, der den Fehler beschreibt.
GetIOCTLSocket(void)
int
Gibt einen globalen Socket für allgemeine Zwecke zurück, der zum Aufrufen bestimmter Netzwerk-IOCTLs geeignet ist.
GetInterfaceName(InterfaceId intfId, char *nameBuf, size_t nameBufSize)
NL_DLL_EXPORT INET_ERROR
Rufen Sie den Namen einer Netzwerkschnittstelle ab.
INET_IsInetEvent(Weave::System::EventType aType)
bool
Überprüfen Sie, ob ein System::EventType ein gültiger Ereignistyp der Internationalen Ebene ist.
InterfaceNameToId(const char *intfName, InterfaceId & intfId)
NL_DLL_EXPORT INET_ERROR
Suchen Sie in der Liste der Netzwerkschnittstellen nach dem angegebenen Namen.
LwIPBindInterface(struct raw_pcb *aRaw, InterfaceId intfId)
LwIPBindInterface(struct udp_pcb *aUDP, InterfaceId intfId)
NetmaskToPrefixLength(const uint8_t *netmask, uint16_t netmaskLen)
uint8_t
Präfixlänge aus einer Netzmaske mit variabler Länge berechnen
ParseHostAndPort(const char *aString, uint16_t aStringLen, const char *& aHost, uint16_t & aHostLen, uint16_t & aPort)
Parst einen menschenlesbaren String, der einen Host oder eine IP-Adresse und eine optionale Portnummer (getrennt durch einen „:“) enthält. Dabei werden folgende Formate unterstützt:
ParseHostPortAndInterface(const char *aString, uint16_t aStringLen, const char *& aHost, uint16_t & aHostLen, uint16_t & aPort, const char *& aInterface, uint16_t & aInterfaceLen)
Parst einen für Menschen lesbaren String, der einen Host oder eine IP-Adresse, eine optionale Portnummer (getrennt durch einen „:“) und einen optionalen Schnittstellennamen (getrennt durch einen „-“) enthält. Dabei werden folgende Formate unterstützt:
RegisterInetLayerErrorFormatter(void)
void
Registrieren Sie einen Textfehlerformatierer für Inet-Layer-Fehler.
SocketsIPv4JoinLeaveMulticastGroup(int aSocket, InterfaceId aInterfaceId, const IPAddress & aAddress, int aCommand)
SocketsIPv6JoinLeaveMulticastGroup(int aSocket, InterfaceId aInterfaceId, const IPAddress & aAddress, int aCommand)
SocketsSetMulticastLoopback(int aSocket, bool aLoopback, int aProtocol, int aOption)
SocketsSetMulticastLoopback(int aSocket, IPVersion aIPVersion, bool aLoopback)

Klassen

nl::Inet::AsyncDNSResolverSockets

Dies ist eine interne Klasse von InetLayer, die Hilfs-APIs für die DNS-Auflösung (Asynchronous Domain Name System) in InetLayer bereitstellt.

nl::Inet::DNSResolver

Dies ist eine interne Klasse von InetLayer, die die Abstraktion der DNS-Auflösung (Domain Name System) in InetLayer bereitstellt.

nl::Inet::EndPointBasis

Basis von Endpunktklassen für den Internettransport.

nl::Inet::IPAddress

Internet Protocol-Adresse.

nl::Inet::IPEndPointBasis

Objekte dieser Klasse stellen nicht instanziierbare IP-Protokollendpunkte dar.

nl::Inet::IPPacketInfo

Informationen zu einer eingehenden/ausgehenden Nachricht/Verbindung.

nl::Inet::IPPrefix

Präfix der IP-Adresse.

nl::Inet::InetLayer

Dadurch erhalten Sie für einen einzelnen Thread Zugriff auf Internetdienste, einschließlich Timer, DNS-Auflösung (Domain Name System), TCP-Netzwerktransport, UDP-Netzwerktransport und unformatierten Netzwerktransport.

nl::Inet::InetLayerBasis

Dies ist die Basisklasse von Objekten mit Referenzzählung, die von einem InetLayer-Objekt verwaltet werden.

nl::Inet::InterfaceAddressIterator

Zähler für die Liste der IP-Adressen der Systemnetzwerkschnittstellen.

nl::Inet::InterfaceIterator

Iterator für die Liste der Systemnetzwerkschnittstellen.

nl::Inet::RawEndPoint

Objekte dieser Klasse stellen unformatierte IP-Netzwerkendpunkte dar.

nl::Inet::SocketEvents

Stellt eine Reihe von E/A-Ereignissen dar, die für einen Socket angefordert/ausstehend sind.

nl::Inet::TCPEndPoint

Objekte dieser Klasse stellen TCP-Transportendpunkte dar.

nl::Inet::TunEndPoint

Objekte dieser Klasse stellen Tunnelschnittstellen dar.

nl::Inet::UDPEndPoint

Objekte dieser Klasse stellen UDP-Transportendpunkte dar.

Gewerkschaften

nl::Inet::PeerSockAddr

Namespaces

nl::Inet::Platform

Aufzählungen

@7

 @7

Die Ereignistypdefinitionen der Inet-Ebene.

Attribute
kInetEvent_DNSResolveComplete

Das Ereignis für den Abschluss der DNS-Namensauflösung.

kInetEvent_RawDataReceived

Das Ereignis für den Datenempfang über einen InetLayer-Rohendpunkt.

kInetEvent_TCPConnectComplete

Das Ereignis für den Abschluss der TCP-Verbindung.

kInetEvent_TCPConnectionReceived

Das Ereignis für den Empfang der TCP-Verbindung.

kInetEvent_TCPDataReceived

Das Ereignis für den Datenempfang über eine TCP-Verbindung.

kInetEvent_TCPDataSent

Das Ereignis für die Datenübertragung über eine TCP-Verbindung.

kInetEvent_TCPError

Das Ereignis für einen Fehler bei einer TCP-Verbindung.

kInetEvent_TunDataReceived

Das Ereignis für den Datenempfang über einen Weave-Tunnel.

kInetEvent_UDPDataReceived

Das Ereignis für den Datenempfang über UDP.

DNSOptions

 DNSOptions

Optionen, die steuern, wie die Auflösung von IP-Adressen durchgeführt wird.

Attribute
kDNSOption_AddrFamily_Any

Gibt IPv4- und/oder IPv6-Adressen in der vom Nameserver zurückgegebenen Reihenfolge zurück.

kDNSOption_AddrFamily_IPv4Only

Nur IPv4-Adressen zurückgeben.

kDNSOption_AddrFamily_IPv4Preferred

Gibt IPv4- und/oder IPv6-Adressen zurück, wobei IPv4-Adressen zuerst aufgeführt werden.

kDNSOption_AddrFamily_IPv6Only

Nur IPv6-Adressen zurückgeben.

kDNSOption_AddrFamily_IPv6Preferred

Gibt IPv4- und/oder IPv6-Adressen zurück, wobei IPv6-Adressen zuerst aufgeführt werden.

kDNSOption_AddrFamily_Mask

Bits innerhalb eines DNSOptions-Ganzzahlwerts, die die gewünschte Adressfamilie darstellen.

kDNSOption_Flags_Mask

Bits innerhalb eines DNSOptions-Ganzzahlwerts, der für Flags reserviert ist.

kDNSOption_ValidFlags

Satz aller gültigen DNSOption-Flags.

IPAddressType

 IPAddressType

IP-Adressfamilie.

Werte des Typs IPAddressType werden von der Methode IPAddress::Type() zurückgegeben. Sie geben die Adressenfamilie an, die sich aus der Verwendung der Adresse ergibt.

Attribute
kIPAddressType_Any

Die nicht angegebene Internetadresse (unabhängig von der Protokollversion)

kIPAddressType_IPv4

Internet Protocol Version 4.

kIPAddressType_IPv6

Internet Protocol Version 6.

kIPAddressType_Unknown

Nicht verwendet.

IPProtocol

 IPProtocol

Die Nummern einiger Protokolle in der IP-Familie.

Attribute
kIPProtocol_ICMPv4

ICMPv4.

kIPProtocol_ICMPv6

ICMPv6.

IPV6MulticastGroup

 IPV6MulticastGroup

Internet Protocol-Multicast-Gruppenkennungen.

Werte des Typs IPV6MulticastGroup werden zum Aufrufen der Methode IPAddress::MakeIPv6Multicast() verwendet. Sie kennzeichnen Distinguished Group Identifiers, die von IETF bei der IANA registriert wurden.

Attribute
kIPV6MulticastGroup_AllRouters

RFC 4291.

IPVersion

 IPVersion

Die Version des verwendeten IP-Protokolls.

Attribute
kIPVersion_4

IPv4

kIPVersion_6

IPv6.

IPv6MulticastFlag

 IPv6MulticastFlag

Internet Protocol v6-Multicast-Flags.

Werte des Typs IPv6MulticastFlag werden zum Aufrufen der IPAddress::MakeIPv6Multicast()-Methoden verwendet. Sie geben den Typ der zu erstellenden IPv6-Multicast-Adresse an. Diese Nummern werden von IETF bei der IANA registriert.

Attribute
kIPv6MulticastFlag_Prefix

Die Multicast-Adresse basiert auf einem Netzwerkpräfix (1).

kIPv6MulticastFlag_Transient

Die Multicast-Adresse ist (1) vorübergehend (d. h. dynamisch zugewiesen) statt (0) bekannt (d. h. IANA-zugewiesen).

IPv6MulticastScope

 IPv6MulticastScope

Internet Protocol-Multicast-Adressbereich.

Werte des Typs IPv6MulticastScope werden zum Aufrufen der Methode IPAddress::MakeIPv6Multicast() verwendet. Sie geben den routbaren Umfang der Multicast-Gruppe an, die durch das Ergebnis bestimmt wird. Diese Nummern werden von IETF bei der IANA registriert.

Attribute
kIPv6MulticastScope_Admin

Realm-Local-Bereich.

kIPv6MulticastScope_Global

Globaler Geltungsbereich.

kIPv6MulticastScope_IPv4

Realm-Local-Bereich („IPv4“).

kIPv6MulticastScope_Interface

Bereich für lokale Schnittstelle.

kIPv6MulticastScope_Link

Link-Local-Bereich.

kIPv6MulticastScope_Organization

Lokaler Geltungsbereich der Organisation.

kIPv6MulticastScope_Site

Realm-Local-Bereich.

Typedefs

InterfaceId

struct netif * InterfaceId

Indikator für Systemnetzwerkschnittstellen.

Die Portabilität hängt davon ab, dass dieser Alias nie vorhanden ist. Sie wird möglicherweise in Zukunft durch eine konkrete opaker Klasse ersetzt.

Hinweis: Der Begriff „Schnittstellenkennung“ bezieht sich üblicherweise auch auf die unteren 64 Bits einer IPv6-Adresse in allen relevanten IETF-Standarddokumenten, wobei die Abkürzung „IID“ wird häufig verwendet. In diesem Text wird der Begriff „Interface Indicator“ bezieht sich auf Werte dieses Typalias.

Variablen

sIOCTLSocket

int sIOCTLSocket = -1

Funktionen

CheckMulticastGroupArgs

INET_ERROR CheckMulticastGroupArgs(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

CloseIOCTLSocket

void CloseIOCTLSocket(
  void
)

Schließen Sie den von GetIOCTLSocket erstellten globalen Socket.

Diese Funktion wird für Fälle bereitgestellt, in denen der globale IOCTL-Socket offen gelassen und als Leck registriert wird.

Hinweis: Diese Funktion ist in Bezug auf GetIOCTLSocket NICHT thread-sicher.

FormatInetLayerError

bool FormatInetLayerError(
  char *buf,
  uint16_t bufSize,
  int32_t err
)

Bei einem Inet-Layer-Fehler wird ein für Menschen lesbarer NULL-terminierter C-String zurückgegeben, der den Fehler beschreibt.

Details
Parameter
[in] buf
Puffer, in den die Fehlerzeichenfolge eingefügt wird.
[in] bufSize
Größe des bereitgestellten Zwischenspeichers in Byte.
[in] err
Der zu beschreibende Fehler.
Rückgabe
"true", wenn eine Zeichenfolge für die Beschreibung in den bereitgestellten Puffer geschrieben wurde.
Rückgabe
false, wenn der angegebene Fehler kein Inet-Layer-Fehler war.

GetIOCTLSocket

int GetIOCTLSocket(
  void
)

Gibt einen globalen Socket für allgemeine Zwecke zurück, der zum Aufrufen bestimmter Netzwerk-IOCTLs geeignet ist.

Diese Funktion ist auf allen Plattformen threadsicher.

GetInterfaceName

NL_DLL_EXPORT INET_ERROR GetInterfaceName(
  InterfaceId intfId,
  char *nameBuf,
  size_t nameBufSize
)

Rufen Sie den Namen einer Netzwerkschnittstelle ab.

Writes the name of the network interface as \c NUL terminated text string
at \c nameBuf. The name of the unspecified network interface is the empty
string.

Details
Parameter
[in] intfId
Netzwerkschnittstelle
[in] nameBuf
Region des Arbeitsspeichers, um den Schnittstellennamen zu schreiben
[in] nameBufSize
Größe der Region, angegeben durch nameBuf
Rückgabewerte
INET_NO_ERROR
erfolgreiches Ergebnis, Schnittstellenname geschrieben
INET_ERROR_NO_MEMORY
Name ist zu groß, um in Puffer geschrieben zu werden
other
anderer System- oder Plattformfehler

INET_IsInetEvent

bool INET_IsInetEvent(
  Weave::System::EventType aType
)

Überprüfen Sie, ob ein System::EventType ein gültiger Ereignistyp der Internationalen Ebene ist.

Details
Parameter
[in] aType
Entspricht dem Ereignistyp "Weave System Layer".
Rückgabe
"true", wenn er im Aufzählungsbereich liegt; Andernfalls „false“.

InterfaceNameToId

NL_DLL_EXPORT INET_ERROR InterfaceNameToId(
  const char *intfName,
  InterfaceId & intfId
)

Suchen Sie in der Liste der Netzwerkschnittstellen nach dem angegebenen Namen.

On LwIP, this function must be called with the LwIP stack lock acquired.

The \c intfId parameter is not updated unless the value returned is
\c INET_NO_ERROR. It should be initialized with \c INET_NULL_INTERFACEID
before calling this function.

Details
Parameter
[in] intfName
Name der Netzwerkschnittstelle,
[out] intfId
Anzeige der Netzwerkschnittstelle, die zugewiesen werden soll
Rückgabewerte
INET_NO_ERROR
Erfolg, Netzwerkschnittstelle wird angezeigt
INET_ERROR_UNKNOWN_INTERFACE
Keine Netzwerkschnittstelle gefunden
other
anderer System- oder Plattformfehler

LwIPBindInterface

INET_ERROR LwIPBindInterface(
  struct raw_pcb *aRaw,
  InterfaceId intfId
)

LwIPBindInterface

INET_ERROR LwIPBindInterface(
  struct udp_pcb *aUDP,
  InterfaceId intfId
)

NetmaskToPrefixLength

uint8_t NetmaskToPrefixLength(
  const uint8_t *netmask,
  uint16_t netmaskLen
)

Präfixlänge aus einer Netzmaske mit variabler Länge berechnen

ParseHostAndPort

INET_ERROR ParseHostAndPort(
  const char *aString,
  uint16_t aStringLen,
  const char *& aHost,
  uint16_t & aHostLen,
  uint16_t & aPort
)

Parst einen menschenlesbaren String, der einen Host oder eine IP-Adresse und eine optionale Portnummer (getrennt durch einen „:“) enthält. Dabei werden folgende Formate unterstützt:

  • :
  • :
  • []:

Details
Parameter
[in] aString
Der für Menschen lesbare String, der geparst werden soll.
[in] aStringLen
Die Länge eines Strings in Zeichen.
[out] aHost
Ein Zeiger auf den Hostnamen-Teil des geparsten Strings.
[out] aHostLen
Die Länge von aHost in Zeichen.
[out] aPort
Die Portnummer, falls vorhanden und erfolgreich geparst; Andernfalls 0.
Rückgabe
INET_ERROR_INVALID_HOST_NAME: Wenn die zu analysierende Eingabe die Länge null hat oder anderweitig fehlerhaft ist.
Rückgabe
INET_ERROR_HOST_NAME_TOO_LONG Wenn der Hostname länger als 253 Zeichen ist.
Rückgabe
INET_NO_ERROR Bei Erfolg.

ParseHostPortAndInterface

INET_ERROR ParseHostPortAndInterface(
  const char *aString,
  uint16_t aStringLen,
  const char *& aHost,
  uint16_t & aHostLen,
  uint16_t & aPort,
  const char *& aInterface,
  uint16_t & aInterfaceLen
)

Parst einen für Menschen lesbaren String, der einen Host oder eine IP-Adresse, eine optionale Portnummer (getrennt durch einen „:“) und einen optionalen Schnittstellennamen (getrennt durch einen „-“) enthält. Dabei werden folgende Formate unterstützt:

  • %
  • :
  • :%
  • %
  • :
  • :%
  • %
  • []:
  • []:%

Details
Parameter
[in] aString
Der für Menschen lesbare String, der geparst werden soll.
[in] aStringLen
Die Länge eines Strings in Zeichen.
[out] aHost
Ein Zeiger auf den Hostnamen-Teil des geparsten Strings.
[out] aHostLen
Die Länge von aHost in Zeichen.
[out] aPort
Die Portnummer, falls vorhanden und erfolgreich geparst; Andernfalls 0.
[out] aInterface
Ein Zeiger auf den Schnittstellenteil des geparsten Strings.
[out] aInterfaceLen
Die Länge einer Schnittstelle in Zeichen.
Rückgabe
INET_ERROR_INVALID_HOST_NAME: Wenn die zu analysierende Eingabe die Länge null hat oder anderweitig fehlerhaft ist.
Rückgabe
INET_ERROR_HOST_NAME_TOO_LONG Wenn der Hostname länger als 253 Zeichen ist.
Rückgabe
INET_NO_ERROR Bei Erfolg.

RegisterInetLayerErrorFormatter

void RegisterInetLayerErrorFormatter(
  void
)

Registrieren Sie einen Textfehlerformatierer für Inet-Layer-Fehler.

SocketsIPv4JoinLeaveMulticastGroup

INET_ERROR SocketsIPv4JoinLeaveMulticastGroup(
  int aSocket,
  InterfaceId aInterfaceId,
  const IPAddress & aAddress,
  int aCommand
)

SocketsIPv6JoinLeaveMulticastGroup

INET_ERROR SocketsIPv6JoinLeaveMulticastGroup(
  int aSocket,
  InterfaceId aInterfaceId,
  const IPAddress & aAddress,
  int aCommand
)

SocketsSetMulticastLoopback

INET_ERROR SocketsSetMulticastLoopback(
  int aSocket,
  bool aLoopback,
  int aProtocol,
  int aOption
)

SocketsSetMulticastLoopback

INET_ERROR SocketsSetMulticastLoopback(
  int aSocket,
  IPVersion aIPVersion,
  bool aLoopback
)