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-Layer.
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
Internetprotokoll-Adressfamilie.
IPProtocol{
  kIPProtocol_ICMPv6 = 58,
  kIPProtocol_ICMPv4 = 1
}
enum
Die Nummern einiger Protokolle in der IP-Familie.
IPV6MulticastGroup{
  kIPV6MulticastGroup_AllRouters = 2
}
enum
Internetprotokoll-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
Internetprotokoll-Multicast-Adressbereich.

Typedefs

InterfaceId typedef
struct netif *
Anzeige 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 menschenlesbarer 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 nützlich 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
Prüfen Sie, ob „System::EventType“ ein gültiger Ereignistyp der Ebene „Inet“ 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
Berechnet eine Präfixlänge aus einer Netzmaske mit variabler Länge.
ParseHostAndPort(const char *aString, uint16_t aStringLen, const char *& aHost, uint16_t & aHostLen, uint16_t & aPort)
Parsen Sie einen menschenlesbaren String, der eine Host- oder IP-Adresse und eine optionale Portnummer (getrennt durch ein „:“) enthält. Dabei werden die folgenden 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)
Parsen Sie einen menschenlesbaren String, der einen Host oder eine IP-Adresse, eine optionale Portnummer (getrennt durch ':') und einen optionalen Schnittstellennamen (getrennt durch ') enthält und die folgenden 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)

Kurse

nl::Inet::AsyncDNSResolverSockets

Dies ist eine interne Klasse für 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 für InetLayer, die die Abstraktion der DNS-Auflösung (Domain Name System) in InetLayer bereitstellt.

nl::Inet::EndPointBasis

Basis von Internet-Transport-Endpunktklassen.

nl::Inet::IPAddress

Internetprotokolladresse.

nl::Inet::IPEndPointBasis

Objekte dieser Klasse stellen nicht instanziierbare IP-Protokollendpunkte dar.

nl::Inet::IPPacketInfo

Informationen über eine eingehende/ausgehende Nachricht/Verbindung.

nl::Inet::IPPrefix

Präfix der Internetprotokolladresse.

nl::Inet::InetLayer

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

nl::Inet::InetLayerBasis

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

nl::Inet::InterfaceAddressIterator

Iterator für die Liste der IP-Adressen der Systemnetzwerkschnittstelle.

nl::Inet::InterfaceIterator

Webhook 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 bzw. ausstehen.

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-Layer.

Attribute
kInetEvent_DNSResolveComplete

Das Ereignis zum 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 einer 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

Gibt nur IPv4-Adressen zurück.

kDNSOption_AddrFamily_IPv4Preferred

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

kDNSOption_AddrFamily_IPv6Only

Gibt nur IPv6-Adressen zurück.

kDNSOption_AddrFamily_IPv6Preferred

Geben Sie IPv4- und/oder IPv6-Adressen zurück, wobei die IPv6-Adressen an erster Stelle aufgeführt werden.

kDNSOption_AddrFamily_Mask

Bits in einem ganzzahligen DNSOptions-Wert, der die gewünschte Adressfamilie darstellt.

kDNSOption_Flags_Mask

Bits in einem DNSOptions-Ganzzahlwert, der für Flags reserviert ist.

kDNSOption_ValidFlags

Satz aller gültigen DNSOption-Flags.

IPAddressType

 IPAddressType

Internetprotokoll-Adressfamilie.

Werte des Typs IPAddressType werden von der Methode IPAddress::Type() zurückgegeben. Sie geben die Familienfamilie an, zu der die Adresse gehört.

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

Internetprotokoll-Multicast-Gruppenkennungen.

Werte des Typs IPV6MulticastGroup werden zum Aufrufen der Methode IPAddress::MakeIPv6Multicast() verwendet. Sie stehen für Distinguished Group Identifiers, die von der IETF bei 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 der IETF bei 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) und nicht (0) bekannt (d. h. von IANA zugewiesen).

IPv6MulticastScope

 IPv6MulticastScope

Internetprotokoll-Multicast-Adressbereich.

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

Attribute
kIPv6MulticastScope_Admin

Bereichslokaler Bereich.

kIPv6MulticastScope_Global

Globaler Geltungsbereich.

kIPv6MulticastScope_IPv4

Bereichslokaler („IPv4“).

kIPv6MulticastScope_Interface

Schnittstelle-lokaler Bereich.

kIPv6MulticastScope_Link

Link-Local-Bereich.

kIPv6MulticastScope_Organization

Geltungsbereich auf Organisationsebene.

kIPv6MulticastScope_Site

Bereichslokaler Bereich.

Typedefs

InterfaceId

struct netif * InterfaceId

Anzeige für Systemnetzwerkschnittstellen.

Die Portabilität hängt davon ab, ob dieser Alias nie Zeuge sein muss. Möglicherweise wird sie in Zukunft durch eine deckende Betonklasse ersetzt.

Hinweis: Der Begriff „Interface Identifier“ bezieht sich üblicherweise auch auf die unteren 64 Bit einer IPv6-Adresse in allen relevanten IETF-Standarddokumenten, wo häufig die Abkürzung „IID“ verwendet wird. In diesem Text bezieht sich der Begriff "Schnittstellenindikator" 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 als Datenleck registriert würde.

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 menschenlesbarer 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 Beschreibungszeichenfolge in den angegebenen 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 nützlich ist.

Diese Funktion ist auf allen Plattformen Thread-sicher.

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
eine Netzwerkschnittstelle
[in] nameBuf
Arbeitsspeicherregion zum Schreiben des Schnittstellennamens
[in] nameBufSize
Größe des durch nameBuf angegebenen Bereichs
Rückgabewerte
INET_NO_ERROR
erfolgreiches Ergebnis, geschriebener Schnittstellenname
INET_ERROR_NO_MEMORY
Name ist zu groß, um in den Zwischenspeicher geschrieben zu werden
other
ein anderer System- oder Plattformfehler

INET_IsInetEvent

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

Prüfen Sie, ob „System::EventType“ ein gültiger Ereignistyp der Ebene „Inet“ ist.

Details
Parameter
[in] aType
Ereignistyp „Weave System Layer“.
Rückgabe
TRUE, wenn er innerhalb des Enum-Bereichs 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 zu suchenden Netzwerkschnittstelle
[out] intfId
Anzeige der Netzwerkschnittstelle, die zugewiesen werden soll
Rückgabewerte
INET_NO_ERROR
Erfolg, Netzwerkschnittstelle angezeigt
INET_ERROR_UNKNOWN_INTERFACE
Keine Netzwerkschnittstelle gefunden
other
ein 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
)

Berechnet eine Präfixlänge aus einer Netzmaske mit variabler Länge.

ParseHostAndPort

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

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

  • :
  • :
  • []:

Details
Parameter
[in] aString
Entspricht dem menschenlesbaren String, der geparst werden soll.
[in] aStringLen
Die Länge von aString 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 eine Länge von null hat oder anderweitig fehlerhaft ist.
Rückgabe
INET_ERROR_HOST_NAME_TOO_LONG Wenn der Hostname 253 Zeichen überschreitet.
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
)

Parsen Sie einen menschenlesbaren String, der einen Host oder eine IP-Adresse, eine optionale Portnummer (getrennt durch ':') und einen optionalen Schnittstellennamen (getrennt durch ') enthält und die folgenden Formate unterstützt:

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

Details
Parameter
[in] aString
Entspricht dem menschenlesbaren String, der geparst werden soll.
[in] aStringLen
Die Länge von aString 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 Schnittstellenabschnitt des geparsten Strings.
[out] aInterfaceLen
Die Länge von aInterface in Zeichen.
Rückgabe
INET_ERROR_INVALID_HOST_NAME Wenn die zu analysierende Eingabe eine Länge von null hat oder anderweitig fehlerhaft ist.
Rückgabe
INET_ERROR_HOST_NAME_TOO_LONG Wenn der Hostname 253 Zeichen überschreitet.
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
)