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

nl::Inet::InetLayer

#include <src/inet/InetLayer.h>

Damit können Sie für einen einzelnen Thread auf Internetdienste zugreifen, einschließlich Timern, DNS-Auflösung (Domain Name System), TCP-Netzwerk- und UDP-Netzwerkübertragungen sowie Rohnetzwerkübertragungen.

Fazit

Bei BSD-/POSIX-Sockets wird die Bereitschaft der Benachrichtigung über Dateideskriptoren und eine herkömmliche Umfrage / Auswahl für die Plattformanpassung verarbeitet.

Bei LwIP wird die Benachrichtigung zur Ereignisbereitschaft über Ereignisse / Nachrichten und plattform- und systemspezifische Webhooks für das Ereignis-/Nachrichtensystem verarbeitet.

Konstrukteur und Zerstörer

InetLayer(void)
Dies ist der Standardkonstruktor InetLayer.

Öffentliche Typen

@5{
  kState_NotInitialized = 0,
  kState_Initialized = 1,
  kState_ShutdownInProgress = 2
}
enum
Das ist der aktuelle Status des InetLayer-Objekts.
DNSResolveCompleteFunct Typdef
DNSResolver::OnResolveCompleteFunct

Öffentliche Attribute

State
enum nl::Inet::InetLayer::@5
Das ist der aktuelle Status des InetLayer-Objekts.

Öffentliche statische Attribute

sInetEventHandlerDelegate

Öffentliche Funktionen

CanEnqueueDroppableEvent(void)
bool
CancelResolveHostAddress(DNSResolveCompleteFunct onComplete, void *appState)
void
Stornieren Sie alle ausstehenden DNS-Abfragen (für einen übereinstimmenden Rückruf und Anwendungsstatus), die möglicherweise noch aktiv sind.
DroppableEventDequeued(void)
void
GetInterfaceFromAddr(const IPAddress & addr, InterfaceId & intfId)
Rufen Sie die Schnittstellen-ID für die angegebene IP-Adresse ab.
GetLinkLocalAddr(InterfaceId link, IPAddress *llAddr)
Rufen Sie die lokale IPv6-Adresse des Links für einen angegebenen Link oder eine bestimmte Schnittstelle ab.
GetPlatformData(void)
void *
Damit werden alle clientspezifischen Plattformdaten zurückgegeben, die der Instanz zugewiesen sind, falls sie zuvor festgelegt wurden.
HandleSelectResult(int selectRes, fd_set *readfds, fd_set *writefds, fd_set *exceptfds)
void
I/O für einen ausgewählten Anruf verarbeiten.
Init(Weave::System::Layer & aSystemLayer, void *aContext)
Dies ist der explizite Initiator InetLayer.
InitQueueLimiter(void)
MatchLocalIPv6Subnet(const IPAddress & addr)
bool
Prüfen Sie, ob eine Präfixübereinstimmung zwischen der angegebenen IPv6-Adresse und einer der lokal konfigurierten IPv6-Adressen vorhanden ist.
NewRawEndPoint(IPVersion ipVer, IPProtocol ipProto, RawEndPoint **retEndPoint)
Erstellt ein neues RawEndPoint-Objekt für eine bestimmte IP-Version und ein bestimmtes IP-Protokoll.
NewTCPEndPoint(TCPEndPoint **retEndPoint)
Erstellt ein neues TCPEndPoint-Objekt.
NewTunEndPoint(TunEndPoint **retEndPoint)
Erstellt ein neues TunEndPoint-Objekt.
NewUDPEndPoint(UDPEndPoint **retEndPoint)
Erstellt ein neues UDPEndPoint-Objekt.
PrepareSelect(int & nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval & sleepTime)
void
Bereiten Sie die Beschreibungen für Dateien vor, mit denen select() arbeiten kann.
ResolveHostAddress(const char *hostName, uint16_t hostNameLen, uint8_t options, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
Ausführen der IP-Adresse eines angegebenen Hostnamens.
ResolveHostAddress(const char *hostName, uint16_t hostNameLen, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
Ausführen der IP-Adresse eines angegebenen Hostnamens.
ResolveHostAddress(const char *hostName, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
Ausführen der IP-Adresse eines angegebenen Hostnamens.
SetPlatformData(void *aPlatformData)
void
Dadurch werden die angegebenen kundenspezifischen Plattformdaten auf die Instanz gesetzt, um sie später von der Clientplattform abzurufen.
Shutdown(void)
Dies ist der explizite In-Initialisierer von InetLayer. Er muss aufgerufen werden, bevor eine instanziierte InetLayer-Instanz entsorgt wird.
SystemLayer(void) const

Öffentliche statische Funktionen

HandleInetLayerEvent(Weave::System::Object & aTarget, Weave::System::EventType aEventType, uintptr_t aArgument)
Weave::System::Error
IsDroppableEvent(Weave::System::EventType aType)
bool
UpdateSnapshot(nl::Weave::System::Stats::Snapshot & aSnapshot)
void

Öffentliche Typen

@5

 @5

Das ist der aktuelle Status des InetLayer-Objekts.

Attribute
kState_Initialized

Initialisiert.

kState_NotInitialized

Status nicht initialisiert.

kState_ShutdownInProgress

Status, bei dem das Herunterfahren ausgelöst wurde.

DNSResolveCompleteFunct

DNSResolver::OnResolveCompleteFunct DNSResolveCompleteFunct

Öffentliche Attribute

Status

enum nl::Inet::InetLayer::@5 State

Das ist der aktuelle Status des InetLayer-Objekts.

[Schreibgeschützt]

Öffentliche statische Attribute

sInetEventHandlerDelegate

Weave::System::LwIPEventHandlerDelegate sInetEventHandlerDelegate

Öffentliche Funktionen

CanEnwarteschlangeDroppableEvent-Ereignis

bool CanEnqueueDroppableEvent(
  void
)

ResolveResolveHostAddress

void CancelResolveHostAddress(
  DNSResolveCompleteFunct onComplete,
  void *appState
)

Stornieren Sie alle ausstehenden DNS-Abfragen (für einen übereinstimmenden Rückruf und Anwendungsstatus), die möglicherweise noch aktiv sind.

Details
Parameter
[in] onComplete
Ein Hinweis auf die Callback-Funktion, wenn eine DNS-Anfrage abgeschlossen ist.
[in] appState
Ein Zeiger auf ein Anwendungsstatusobjekt, das als Argument an die Callback-Funktion übergeben wird.

DroppableEventDeWiedergabeliste

void DroppableEventDequeued(
  void
)

GetInterfaceFromAddr

INET_ERROR GetInterfaceFromAddr(
  const IPAddress & addr,
  InterfaceId & intfId
)

Rufen Sie die Schnittstellen-ID für die angegebene IP-Adresse ab.

Wenn die Schnittstellen-ID nicht abgeleitet werden kann, wird sie auf INET_NULL_INTERFACEID gesetzt.

Details
Parameter
[in] addr
Ein Verweis auf das IPAddress-Objekt.
[out] intfId
Ein Verweis auf das InterfaceId-Objekt.
Rückgabe
INET_NO_ERROR ohne Bedingung.

GetLinkLocalAddr

INET_ERROR GetLinkLocalAddr(
  InterfaceId link,
  IPAddress *llAddr
)

Rufen Sie die lokale IPv6-Adresse des Links für einen angegebenen Link oder eine bestimmte Schnittstelle ab.

Details
Parameter
[in] link
Die Schnittstelle, für die die lokale IPv6-Adresse gesucht wird.
[out] llAddr
Die lokale IPv6-Adresse des Links.
Rückgabewerte
INET_ERROR_NOT_IMPLEMENTED
Wenn IPv6 nicht unterstützt wird.
INET_ERROR_BAD_ARGS
Wenn die lokale Linkadresse NULL ist.
INET_ERROR_ADDRESS_NOT_FOUND
Wenn für den Link keine Adresse konfiguriert ist.
INET_NO_ERROR
Erfolg.

Plattformdaten abrufen

void * GetPlatformData(
  void
)

Damit werden alle clientspezifischen Plattformdaten zurückgegeben, die der Instanz zugewiesen sind, falls sie zuvor festgelegt wurden.

Details
Rückgabe
Clientspezifische Plattformdaten, falls bereits festgelegt, andernfalls NULL.

Alias-Ergebnis

void HandleSelectResult(
  int selectRes,
  fd_set *readfds,
  fd_set *writefds,
  fd_set *exceptfds
)

I/O für einen ausgewählten Anruf verarbeiten.

Bei dieser Methode wird das ausstehende E/A-Ereignis an jedem aktiven Endpunkt registriert und dann die entsprechenden E/A-Verarbeitungsfunktionen für diese Endpunkte aufgerufen.

Details
Parameter
[in] selectRes
Der Rückgabewert des ausgewählten Aufrufs.
[in] readfds
Ein Zeiger auf die Gruppe von Lesedeskriptoren.
[in] writefds
Ein Zeiger auf den Satz der Schreibdeskriptoren.
[in] exceptfds
Ein Zeiger auf die Gruppe von Dateideskriptoren mit Fehlern.

Logo: InetLayer

 InetLayer(
  void
)

Dies ist der Standardkonstruktor InetLayer.

Sie führen eine Initialisierung der grundlegenden Datenmitglieder durch. Da InetLayer jedoch einem expliziten Initialisierungsdesign folgen muss, muss die Methode InetLayer::Init vor der Verwendung des Objekts aufgerufen werden.

Init

INET_ERROR Init(
  Weave::System::Layer & aSystemLayer,
  void *aContext
)

Dies ist der explizite Initiator InetLayer.

Diese muss aufgerufen und abgeschlossen werden, bevor InetLayer verwendet werden kann.

Der Aufrufer kann ein optionales Kontextargument bereitstellen, das über plattformspezifische Webhook-Funktionen zurückgegeben wird. Bei LwIP-basierten Anpassungen ist dies normalerweise ein Hinweis auf die Ereigniswarteschlange der InetLayer-Instanz.

Plattformen können INET_CONFIG_WILL_OVERRIDE_PLATFORM_XTOR_FUNCS in ihrem plattformspezifischen Konfigurationsheader geltend machen und „Platform::InetLayer::WillInit“ und „Platform::InetLayer::DidInit“ nutzen, um plattformspezifische Anpassungen oder Datenerweiterungen in InetLayer vorzunehmen.

Details
Parameter
[in] aSystemLayer
Eine erforderliche Instanz der Weave-Systemschicht wurde bereits initialisiert.
[in] aContext
Ein optionales Kontextargument, das über plattformspezifische Webhook-Funktionen an den Aufrufer zurückgegeben wird.
Rückgabewerte
INET_ERROR_INCORRECT_STATE
Wenn InetLayer falsch ist
INET_ERROR_NO_MEMORY
Wenn die InetLayer-Ressource für diese Anfrage keinen neuen Timer mehr hat.
other
Plattformspezifische Fehler, die den Grund für den Fehler bei der Initialisierung angeben.
INET_NO_ERROR
Erfolg.

InitQueueLimit

INET_ERROR InitQueueLimiter(
  void
)

MatchLocalIPv6Subnetz

bool MatchLocalIPv6Subnet(
  const IPAddress & addr
)

Prüfen Sie, ob eine Präfixübereinstimmung zwischen der angegebenen IPv6-Adresse und einer der lokal konfigurierten IPv6-Adressen vorhanden ist.

Details
Parameter
[in] addr
Die IPv6-Adresse, die auf Präfixübereinstimmung geprüft werden soll.
Rückgabe
„true“, wenn eine erfolgreiche Übereinstimmung gefunden wird. Andernfalls wird „false“ zurückgegeben.

NewRawEndPoint

INET_ERROR NewRawEndPoint(
  IPVersion ipVer,
  IPProtocol ipProto,
  RawEndPoint **retEndPoint
)

Erstellt ein neues RawEndPoint-Objekt für eine bestimmte IP-Version und ein bestimmtes IP-Protokoll.

Details
Parameter
[in] ipVer
IPv4 oder IPv6
[in] ipProto
Ein Protokoll innerhalb der IP-Familie (z.B. ICMPv4 oder ICMPv6).
[in,out] retEndPoint
Ein Zeiger auf einen Zeiger des RawEndPoint-Objekts, das ein Rückgabeparameter ist, wenn die Objekterstellung abgeschlossen ist. *retEndPoint ist NULL, wenn die Erstellung fehlschlägt.
Rückgabewerte
INET_ERROR_INCORRECT_STATE
Wenn das Objekt InetLayer nicht initialisiert ist.
INET_ERROR_NO_ENDPOINTS
Wenn der Pool InetLayerRawEndPoint voll ist und keine neuen Endpunkte erstellt werden können.
INET_NO_ERROR
Erfolg.

Neuer TCPEndPoint

INET_ERROR NewTCPEndPoint(
  TCPEndPoint **retEndPoint
)

Erstellt ein neues TCPEndPoint-Objekt.

Details
Parameter
[in,out] retEndPoint
Ein Zeiger auf einen Mauszeiger des TCPEndPoint-Objekts, das ein Rückgabeparameter ist, sobald die Objekterstellung abgeschlossen ist. *retEndPoint ist NULL, wenn die Erstellung fehlschlägt.
Rückgabewerte
INET_ERROR_INCORRECT_STATE
Wenn das Objekt InetLayer nicht initialisiert ist.
INET_ERROR_NO_ENDPOINTS
Wenn der Pool InetLayerTCPEndPoint voll ist und keine neuen Endpunkte erstellt werden können.
INET_NO_ERROR
Erfolg.

NewTunEndPoint

INET_ERROR NewTunEndPoint(
  TunEndPoint **retEndPoint
)

Erstellt ein neues TunEndPoint-Objekt.

Details
Parameter
[in,out] retEndPoint
Ein Zeiger auf einen Zeiger des TunEndPoint-Objekts, das ein Rückgabeparameter ist, sobald die Objekterstellung abgeschlossen ist. *retEndPoint ist NULL, wenn die Erstellung fehlschlägt.
Rückgabewerte
INET_ERROR_INCORRECT_STATE
Wenn das Objekt InetLayer nicht initialisiert ist.
INET_ERROR_NO_ENDPOINTS
Wenn der InetLayerTunEndPoint-Pool voll ist und keine neuen erstellt werden können.
INET_NO_ERROR
Erfolg.

Neuer UDP-Endpunkt

INET_ERROR NewUDPEndPoint(
  UDPEndPoint **retEndPoint
)

Erstellt ein neues UDPEndPoint-Objekt.

Details
Parameter
[in,out] retEndPoint
Ein Zeiger auf einen Zeiger des UDPEndPoint-Objekts, das ein Rückgabeparameter ist, wenn die Objekterstellung abgeschlossen ist. *retEndPoint ist NULL, wenn die Erstellung fehlschlägt.
Rückgabewerte
INET_ERROR_INCORRECT_STATE
Wenn das Objekt InetLayer nicht initialisiert ist.
INET_ERROR_NO_ENDPOINTS
Wenn der Pool InetLayerUDPEndPoint voll ist und keine neuen Endpunkte erstellt werden können.
INET_NO_ERROR
Erfolg.

Vorbereiten

void PrepareSelect(
  int & nfds,
  fd_set *readfds,
  fd_set *writefds,
  fd_set *exceptfds,
  struct timeval & sleepTime
)

Bereiten Sie die Beschreibungen für Dateien vor, mit denen select() arbeiten kann.

Details
Parameter
[out] nfds
Der Bereich der Dateideskriptoren im Dateideskriptor.
[in] readfds
Ein Zeiger auf den Satz lesbarer Dateideskriptoren.
[in] writefds
Ein Hinweis auf den Satz beschreibbarer Dateien.
[in] exceptfds
Ein Zeiger auf die Gruppe von Dateideskriptoren mit Fehlern.
[in] sleepTimeTV
Mauszeiger auf eine Struktur, die angibt, wie lange die Auswahl schlafen soll

ResolveHostAddress

INET_ERROR ResolveHostAddress(
  const char *hostName,
  uint16_t hostNameLen,
  uint8_t options,
  uint8_t maxAddrs,
  IPAddress *addrArray,
  DNSResolveCompleteFunct onComplete,
  void *appState
)

Ausführen der IP-Adresse eines angegebenen Hostnamens.

Details
Parameter
[in] hostName
Ein Zeiger auf einen nicht NULL-begrenzten C-String, der den abzufragenden Hostnamen darstellt.
[in] hostNameLen
Die Stringlänge des Hostnamens.
[in] options
Eine Ganzzahl, die die Auflösung des Hostnamens steuert.
                    Value should be one of the address family values from the
                    #DNSOptions enumeration:

                    #kDNSOption_AddrFamily_Any
                    #kDNSOption_AddrFamily_IPv4Only
                    #kDNSOption_AddrFamily_IPv6Only
                    #kDNSOption_AddrFamily_IPv4Preferred
                    #kDNSOption_AddrFamily_IPv6Preferred
[in] maxAddrs
Die maximale Anzahl der Adressen, die in der DNS-Tabelle gespeichert werden sollen.
[in] addrArray
Ein Zeiger auf die DNS-Tabelle.
[in] onComplete
Ein Hinweis auf die Callback-Funktion, wenn eine DNS-Anfrage abgeschlossen ist.
[in] appState
Ein Zeiger auf den Anwendungsstatus, der nach Abschluss einer DNS-Anfrage an OnComplete übergeben wird.
Rückgabewerte
INET_NO_ERROR
wenn eine DNS-Anfrage erfolgreich verarbeitet wurde.
INET_ERROR_NO_MEMORY
Wenn der Inet Layer-Resolver-Pool voll ist.
INET_ERROR_HOST_NAME_TOO_LONG
Ein angefragter Hostname ist zu lang.
INET_ERROR_HOST_NOT_FOUND
Ein Hostname der Anfrage konnte nicht in eine Adresse aufgelöst werden.
INET_ERROR_DNS_TRY_AGAIN
Wenn ein Nameserver eine vorübergehende Fehleranzeige zurückgegeben hat, versuchen Sie es später noch einmal.
INET_ERROR_DNS_NO_RECOVERY
Ein Nameserver hat einen nicht behebbaren Fehler zurückgegeben.
INET_ERROR_NOT_IMPLEMENTED
wenn die DNS-Auflösung auf der zugrunde liegenden Plattform nicht aktiviert ist.
other
Von der zugrunde liegenden DNS-Resolver-Implementierung zurückgegebener POSIX-Netzwerk- oder Betriebssystemfehler.

ResolveHostAddress

INET_ERROR ResolveHostAddress(
  const char *hostName,
  uint16_t hostNameLen,
  uint8_t maxAddrs,
  IPAddress *addrArray,
  DNSResolveCompleteFunct onComplete,
  void *appState
)

Ausführen der IP-Adresse eines angegebenen Hostnamens.

Details
Parameter
[in] hostName
Ein Zeiger auf einen nicht NULL-begrenzten C-String, der den abzufragenden Hostnamen darstellt.
[in] hostNameLen
Die Stringlänge des Hostnamens.
[in] maxAddrs
Die maximale Anzahl der Adressen, die in der DNS-Tabelle gespeichert werden sollen.
[in] addrArray
Ein Zeiger auf die DNS-Tabelle.
[in] onComplete
Ein Hinweis auf die Callback-Funktion, wenn eine DNS-Anfrage abgeschlossen ist.
[in] appState
Ein Zeiger auf den Anwendungsstatus, der nach Abschluss einer DNS-Anfrage an OnComplete übergeben wird.
Rückgabewerte
INET_NO_ERROR
wenn eine DNS-Anfrage erfolgreich verarbeitet wurde.
INET_ERROR_NO_MEMORY
Wenn der Inet Layer-Resolver-Pool voll ist.
INET_ERROR_HOST_NAME_TOO_LONG
Ein angefragter Hostname ist zu lang.
INET_ERROR_HOST_NOT_FOUND
Ein Hostname der Anfrage konnte nicht in eine Adresse aufgelöst werden.
INET_ERROR_DNS_TRY_AGAIN
Wenn ein Nameserver eine vorübergehende Fehleranzeige zurückgegeben hat, versuchen Sie es später noch einmal.
INET_ERROR_DNS_NO_RECOVERY
Ein Nameserver hat einen nicht behebbaren Fehler zurückgegeben.
INET_ERROR_NOT_IMPLEMENTED
wenn die DNS-Auflösung auf der zugrunde liegenden Plattform nicht aktiviert ist.
other
Von der zugrunde liegenden DNS-Resolver-Implementierung zurückgegebener POSIX-Netzwerk- oder Betriebssystemfehler.

ResolveHostAddress

INET_ERROR ResolveHostAddress(
  const char *hostName,
  uint8_t maxAddrs,
  IPAddress *addrArray,
  DNSResolveCompleteFunct onComplete,
  void *appState
)

Ausführen der IP-Adresse eines angegebenen Hostnamens.

Details
Parameter
[in] hostName
Ein Zeiger auf einen mit NULL beendeten C-String, der den abzufragenden Hostnamen darstellt.
[in] maxAddrs
Die maximale Anzahl der Adressen, die in der DNS-Tabelle gespeichert werden sollen.
[in] addrArray
Ein Zeiger auf die DNS-Tabelle.
[in] onComplete
Ein Hinweis auf die Callback-Funktion, wenn eine DNS-Anfrage abgeschlossen ist.
[in] appState
Ein Zeiger auf den Anwendungsstatus, der nach Abschluss einer DNS-Anfrage an OnComplete übergeben wird.
Rückgabewerte
INET_NO_ERROR
wenn eine DNS-Anfrage erfolgreich verarbeitet wurde.
INET_ERROR_NO_MEMORY
Wenn der Inet Layer-Resolver-Pool voll ist.
INET_ERROR_HOST_NAME_TOO_LONG
Ein angefragter Hostname ist zu lang.
INET_ERROR_HOST_NOT_FOUND
Ein Hostname der Anfrage konnte nicht in eine Adresse aufgelöst werden.
INET_ERROR_DNS_TRY_AGAIN
Wenn ein Nameserver eine vorübergehende Fehleranzeige zurückgegeben hat, versuchen Sie es später noch einmal.
INET_ERROR_DNS_NO_RECOVERY
Ein Nameserver hat einen nicht behebbaren Fehler zurückgegeben.
INET_ERROR_NOT_IMPLEMENTED
wenn die DNS-Auflösung auf der zugrunde liegenden Plattform nicht aktiviert ist.
other
Von der zugrunde liegenden DNS-Resolver-Implementierung zurückgegebener POSIX-Netzwerk- oder Betriebssystemfehler.

Daten der SetPlatform

void SetPlatformData(
  void *aPlatformData
)

Dadurch werden die angegebenen kundenspezifischen Plattformdaten auf die Instanz gesetzt, um sie später von der Clientplattform abzurufen.

Details
Parameter
[in] aPlatformData
Die kundenspezifischen Plattformdaten, die festgelegt werden sollen.

Heruntergefahren

INET_ERROR Shutdown(
  void
)

Dies ist der explizite In-Initialisierer von InetLayer. Er muss aufgerufen werden, bevor eine instanziierte InetLayer-Instanz entsorgt wird.

Plattformen können INET_CONFIG_WILL_OVERRIDE_PLATFORM_XTOR_FUNCS in ihrem plattformspezifischen Konfigurations-Header beanspruchen, um die Plattform::InetLayer::WillHerunterfahren und Platform::InetLayer::DoesShutdown-Webhooks zu aktivieren, um plattformspezifische Anpassungen oder Datenerweiterungen in InetLayer zu bereinigen.

Details
Rückgabe
INET_NO_ERROR bei Erfolg. Andernfalls ein bestimmter Fehler, der den Grund für das Herunterfahren angibt.

Systemschicht

Weave::System::Layer * SystemLayer(
  void
) const 

Öffentliche statische Funktionen

HandleInetLayerEvent

Weave::System::Error HandleInetLayerEvent(
  Weave::System::Object & aTarget,
  Weave::System::EventType aEventType,
  uintptr_t aArgument
)

IsDroppable (Ereignis)

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

UpdateSnapshot

void UpdateSnapshot(
  nl::Weave::System::Stats::Snapshot & aSnapshot
)