nl::Inet

Podsumowanie

Wyliczenia

@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 | typ wyliczeniowy
Definicje typów zdarzeń warstwy Inet.
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 | typ wyliczeniowy
Opcje kontrolujące sposób rozpoznawania adresów IP.
IPAddressType{
  kIPAddressType_Unknown = 0,
  kIPAddressType_IPv4 = 1,
  kIPAddressType_IPv6 = 2,
  kIPAddressType_Any = 3
}
enum | typ wyliczeniowy
Rodzina adresów IP.
IPProtocol{
  kIPProtocol_ICMPv6 = 58,
  kIPProtocol_ICMPv4 = 1
}
enum | typ wyliczeniowy
Numery niektórych protokołów w rodzinie adresów IP.
IPV6MulticastGroup{
  kIPV6MulticastGroup_AllRouters = 2
}
enum | typ wyliczeniowy
Identyfikatory grup transmisji grupowych protokołu internetowego.
IPVersion{
  kIPVersion_6 = 6,
  kIPVersion_4 = 4
}
enum | typ wyliczeniowy
Wersja używanego protokołu IP.
IPv6MulticastFlag{
  kIPv6MulticastFlag_Transient = 0x01,
  kIPv6MulticastFlag_Prefix = 0x02
}
enum | typ wyliczeniowy
flagi protokołu internetowego w wersji 6;
IPv6MulticastScope{
  kIPv6MulticastScope_Interface = 1,
  kIPv6MulticastScope_Link = 2,
  kIPv6MulticastScope_IPv4 = 3,
  kIPv6MulticastScope_Admin = 4,
  kIPv6MulticastScope_Site = 5,
  kIPv6MulticastScope_Organization = 8,
  kIPv6MulticastScope_Global = 14
}
enum | typ wyliczeniowy
Zakres adresu transmisji grupowej protokołu internetowego.

Definiuje typ

InterfaceId typedef
struct netif *
Wskaźnik systemów sieciowych.

Zmienne

sIOCTLSocket = -1
int

Funkcje

CheckMulticastGroupArgs(InterfaceId aInterfaceId, const IPAddress & aAddress)
CloseIOCTLSocket(void)
void
Zamknij gniazdo globalne utworzone przez GetIOCTLSocket.
FormatInetLayerError(char *buf, uint16_t bufSize, int32_t err)
bool
W przypadku błędu warstwy Inet zwraca zrozumiały dla człowieka ciąg C z zakończeniem NULL i opisujący błąd.
GetIOCTLSocket(void)
int
Zwraca gniazdo ogólnego przeznaczenia przydatne do wywoływania określonych sieciowych IOCTL.
GetInterfaceName(InterfaceId intfId, char *nameBuf, size_t nameBufSize)
NL_DLL_EXPORT INET_ERROR
Uzyskaj nazwę interfejsu sieci.
INET_IsInetEvent(Weave::System::EventType aType)
bool
Sprawdź, czy typ zdarzenia System::EventType jest prawidłowym typem zdarzenia warstwy Inet.
InterfaceNameToId(const char *intfName, InterfaceId & intfId)
NL_DLL_EXPORT INET_ERROR
Na liście interfejsów sieci wyszukaj podaną nazwę.
LwIPBindInterface(struct raw_pcb *aRaw, InterfaceId intfId)
LwIPBindInterface(struct udp_pcb *aUDP, InterfaceId intfId)
NetmaskToPrefixLength(const uint8_t *netmask, uint16_t netmaskLen)
uint8_t
Oblicz długość prefiksu na podstawie maski sieci o zmiennej długości.
ParseHostAndPort(const char *aString, uint16_t aStringLen, const char *& aHost, uint16_t & aHostLen, uint16_t & aPort)
Przeanalizuj zrozumiały dla człowieka ciąg tekstowy zawierający hosta lub adres IP oraz opcjonalny numer portu (rozdzielony znakiem „:”), który obsługuje następujące formaty:
ParseHostPortAndInterface(const char *aString, uint16_t aStringLen, const char *& aHost, uint16_t & aHostLen, uint16_t & aPort, const char *& aInterface, uint16_t & aInterfaceLen)
Przeanalizuj zrozumiały dla człowieka ciąg tekstowy zawierający hosta lub adres IP, opcjonalny numer portu (rozdzielony znakiem „:”) i opcjonalną nazwę interfejsu (rozdzielona znakiem „”), która obsługuje następujące formaty:
RegisterInetLayerErrorFormatter(void)
void
Zarejestruj narzędzie do formatowania błędów tekstu na potrzeby błędów Inet Layer.
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)

Zajęcia

nl::Inet::AsyncDNSResolverSockets

Jest to klasa wewnętrzna usługi InetLayer, która udostępnia pomocnicze interfejsy API do rozpoznawania asynchronicznego systemu nazw domenowych (DNS) w InetLayer.

nl::Inet::DNSResolver

Jest to klasa wewnętrzna usługi InetLayer, która umożliwia abstrakcję rozpoznawania nazw DNS w InetLayer.

nl::Inet::EndPointBasis

Podstawa klas punktów końcowych transportu internetowego.

nl::Inet::IPAddress

adres IP.

nl::Inet::IPEndPointBasis

Obiekty tej klasy reprezentują punkty końcowe protokołu IP, które nie są natychmiastowe.

nl::Inet::IPPacketInfo

Informacje o wiadomościach lub połączeniach przychodzących/wychodzących.

nl::Inet::IPPrefix

Prefiks adresu IP.

nl::Inet::InetLayer

Zapewnia to dostęp do usług internetowych, w tym liczników czasu, rozpoznawania nazw DNS, transportu TCP, transportu sieciowego UDP i nieprzetworzonego transportu sieciowego, w pojedynczym wątku.

nl::Inet::InetLayerBasis

To jest klasa podstawowa obiektów zliczonych jako odwołania, którymi zarządza obiekt InetLayer.

nl::Inet::InterfaceAddressIterator

Iterator listy adresów IP interfejsu sieci systemu.

nl::Inet::InterfaceIterator

Iterator listy interfejsów sieci systemu.

nl::Inet::RawEndPoint

Obiekty tej klasy reprezentują nieprzetworzone punkty końcowe sieci IP.

nl::Inet::SocketEvents

Reprezentuje zbiór zdarzeń wejścia-wyjścia żądanych/oczekujących w gniazdku.

nl::Inet::TCPEndPoint

Obiekty tej klasy reprezentują punkty końcowe transportu TCP.

nl::Inet::TunEndPoint

Obiekty tej klasy reprezentują interfejsy tunelu.

nl::Inet::UDPEndPoint

Obiekty tej klasy reprezentują punkty końcowe transportu UDP.

Związki

nl::Inet::PeerSockAddr

Przestrzenie nazw

nl::Inet::Platform

Wyliczenia

@7

 @7

Definicje typów zdarzeń warstwy Inet.

Właściwości
kInetEvent_DNSResolveComplete

Zdarzenie ukończenia rozpoznawania nazw DNS.

kInetEvent_RawDataReceived

Zdarzenie odbioru danych w nieprzetworzonym punkcie końcowym InetLayer.

kInetEvent_TCPConnectComplete

Zdarzenie ukończenia połączenia TCP.

kInetEvent_TCPConnectionReceived

Zdarzenie odbioru połączenia TCP.

kInetEvent_TCPDataReceived

Zdarzenie odbioru danych przez połączenie TCP.

kInetEvent_TCPDataSent

Zdarzenie transmisji danych przez połączenie TCP.

kInetEvent_TCPError

Zdarzenie błędu w połączeniu TCP.

kInetEvent_TunDataReceived

Zdarzenie odbioru danych przez tunel Weave.

kInetEvent_UDPDataReceived

Zdarzenie odbioru danych przez UDP.

DNSOptions

 DNSOptions

Opcje kontrolujące sposób rozpoznawania adresów IP.

Właściwości
kDNSOption_AddrFamily_Any

Zwraca adresy IPv4 lub IPv6 w kolejności zwracanej przez serwer nazw.

kDNSOption_AddrFamily_IPv4Only

Zwracaj tylko adresy IPv4.

kDNSOption_AddrFamily_IPv4Preferred

Zwraca adresy IPv4 lub IPv6, w których adresy IPv4 są wymienione jako pierwsze.

kDNSOption_AddrFamily_IPv6Only

Zwraca tylko adresy IPv6.

kDNSOption_AddrFamily_IPv6Preferred

Zwraca adresy IPv4 lub IPv6, w których adresy IPv6 są wymienione jako pierwsze.

kDNSOption_AddrFamily_Mask

Bity w wartości całkowitej DNSOptions przedstawiającej żądaną rodzinę adresów.

kDNSOption_Flags_Mask

Bity w ramach wartości całkowitej DNSOptions zarezerwowane dla flag.

kDNSOption_ValidFlags

Zbiór wszystkich prawidłowych flag DNSOption.

IPAddressType

 IPAddressType

Rodzina adresów IP.

Wartości typu IPAddressType są zwracane przez metodę IPAddress::Type(). Wskazują rodzinę adresów, z którymi wiąże się użycie adresu.

Właściwości
kIPAddressType_Any

nieokreślony adres internetowy (niezależnie od wersji protokołu).

kIPAddressType_IPv4

Protokół internetowy w wersji 4.

kIPAddressType_IPv6

Protokół internetowy w wersji 6.

kIPAddressType_Unknown

Nieużywane.

IPProtocol

 IPProtocol

Numery niektórych protokołów w rodzinie adresów IP.

Właściwości
kIPProtocol_ICMPv4

ICMPv4.

kIPProtocol_ICMPv6

ICMPv6.

IPV6MulticastGroup

 IPV6MulticastGroup

Identyfikatory grup transmisji grupowych protokołu internetowego.

Wartości typu IPV6MulticastGroup służą do wywoływania metody IPAddress::MakeIPv6Multicast(). Wskazują identyfikatory wyróżniających grup zarejestrowane przez IETF w IANA.

Właściwości
kIPV6MulticastGroup_AllRouters

RFC 4291

IPVersion

 IPVersion

Wersja używanego protokołu IP.

Właściwości
kIPVersion_4

IPv4.

kIPVersion_6

IPv6.

IPv6MulticastFlag

 IPv6MulticastFlag

Flagi multicastu protokołu internetowego w wersji 6.

Wartości typu IPv6MulticastFlag służą do wywoływania metod IPAddress::MakeIPv6Multicast(). Wskazują typ adresu transmisji grupowej IPv6 do utworzenia. Numery te są zarejestrowane przez IETF w IANA.

Właściwości
kIPv6MulticastFlag_Prefix

Adres transmisji grupowej jest oparty na prefiksie sieci (1).

kIPv6MulticastFlag_Transient

Adres multicast jest (1) przejściowy (przypisany dynamicznie), a nie (0) dobrze znany (przypisany przez IANA).

IPv6MulticastScope

 IPv6MulticastScope

Zakres adresu transmisji grupowej protokołu internetowego.

Wartości typu IPv6MulticastScope służą do wywoływania metody IPAddress::MakeIPv6Multicast(). Wskazują możliwy do kierowania zakres grupy multiemisji wyznaczonej przez wynik. Numery te są zarejestrowane przez IETF w IANA.

Właściwości
kIPv6MulticastScope_Admin

Zakres lokalny obszaru.

kIPv6MulticastScope_Global

Zakres globalny.

kIPv6MulticastScope_IPv4

Zakres lokalny („IPv4”) w zakresie obszaru.

kIPv6MulticastScope_Interface

Zakres lokalny interfejsu.

kIPv6MulticastScope_Link

Zakres połączenia lokalnego.

kIPv6MulticastScope_Organization

Zakres lokalny organizacji.

kIPv6MulticastScope_Site

Zakres lokalny obszaru.

Definiuje typ

InterfaceId

struct netif * InterfaceId

Wskaźnik interfejsów sieciowych systemu.

Przenoszenie zależy od tego, czy nie wykryto tego aliasu. W przyszłości może zostać zastąpiona klasą nieprzezroczystości betonowej.

Zwróć uwagę: termin „identyfikator interfejsu” Tradycyjnie odnosi się on też do dolnych 64 bitów adresu IPv6 we wszystkich odpowiednich dokumentach standardów IETF, gdzie skrót „IID” jest często używane. Termin „wskaźnik interfejsu” w tym tekście odnosi się do wartości aliasu tego typu.

Zmienne

sIOCTLSocket

int sIOCTLSocket = -1

Funkcje

CheckMulticastGroupArgs

INET_ERROR CheckMulticastGroupArgs(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

CloseIOCTLSocket

void CloseIOCTLSocket(
  void
)

Zamknij gniazdo globalne utworzone przez GetIOCTLSocket.

Ta funkcja jest podawana w sytuacjach, w których pozostawienie otwartego gniazda IOCTL byłoby rejestrowane jako wyciek.

Uwaga: ta funkcja NIE jest zabezpieczona w wątku w odniesieniu do funkcji GetIOCTLSocket.

FormatInetLayerError

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

W przypadku błędu warstwy Inet zwraca zrozumiały dla człowieka ciąg C z zakończeniem NULL i opisujący błąd.

Szczegóły
Parametry
[in] buf
Bufor, w którym zostanie umieszczony ciąg znaków błędu.
[in] bufSize
Rozmiar dostarczonego bufora w bajtach.
[in] err
Błąd do opisania.
Zwroty
true: jeśli ciąg opisu został zapisany w podanym buforze.
Zwroty
false Jeśli podany błąd nie był błędem warstwy Inet.

GetIOCTLSocket

int GetIOCTLSocket(
  void
)

Zwraca gniazdo ogólnego przeznaczenia przydatne do wywoływania określonych sieciowych IOCTL.

Ta funkcja jest bezpieczna w przypadku wątków na wszystkich platformach.

GetInterfaceName

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

Uzyskaj nazwę interfejsu sieci.

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.

Szczegóły
Parametry
[in] intfId
interfejs sieci
[in] nameBuf
region pamięci do zapisania nazwy interfejsu
[in] nameBufSize
wielkość regionu oznaczonego przez nameBuf
Zwracane wartości
INET_NO_ERROR
pomyślnie zapisany wynik, nazwa interfejsu została zapisana
INET_ERROR_NO_MEMORY
nazwa jest za duża, aby zapisać ją w buforze
other
inny błąd systemu lub platformy

INET_IsInetEvent

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

Sprawdź, czy typ zdarzenia System::EventType jest prawidłowym typem zdarzenia warstwy Inet.

Szczegóły
Parametry
[in] aType
Typ zdarzenia Weave warstwy systemu.
Zwroty
true (prawda), jeśli mieści się w wyznaczonym zakresie; w przeciwnym razie: false.

InterfaceNameToId

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

Na liście interfejsów sieci wyszukaj podaną nazwę.

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.

Szczegóły
Parametry
[in] intfName
nazwę interfejsu sieci, aby znaleźć
[out] intfId
wskaźnik interfejsu sieci do przypisania
Zwracane wartości
INET_NO_ERROR
sukces, wskazuje interfejs sieci
INET_ERROR_UNKNOWN_INTERFACE
nie znaleziono interfejsu sieci
other
inny błąd systemu lub platformy

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
)

Oblicz długość prefiksu na podstawie maski sieci o zmiennej długości.

ParseHostAndPort

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

Przeanalizuj zrozumiały dla człowieka ciąg tekstowy zawierający hosta lub adres IP oraz opcjonalny numer portu (rozdzielony znakiem „:”), który obsługuje następujące formaty:

  • :
  • :
  • []:

Szczegóły
Parametry
[in] aString
Ciąg znaków do przeanalizowania przez człowieka.
[in] aStringLen
Długość ciągu aString (w znakach).
[out] aHost
Wskaźnik do części nazwy hosta przeanalizowanego ciągu znaków.
[out] aHostLen
Długość obiektu aHost (w znakach).
[out] aPort
numer portu (jeśli istnieje i został pomyślnie przeanalizowany); w przeciwnym razie, 0.
Zwroty
INET_ERROR_INVALID_HOST_NAME: jeśli dane wejściowe do przeanalizowania mają zerową długość lub są w inny sposób uszkodzone.
Zwroty
INET_ERROR_HOST_NAME_TOO_LONG Jeśli nazwa hosta przekracza 253 znaki.
Zwroty
INET_NO_ERROR: powodzenie.

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
)

Przeanalizuj zrozumiały dla człowieka ciąg tekstowy zawierający hosta lub adres IP, opcjonalny numer portu (rozdzielony znakiem „:”) i opcjonalną nazwę interfejsu (rozdzielona znakiem „”), która obsługuje następujące formaty:

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

Szczegóły
Parametry
[in] aString
Ciąg znaków do przeanalizowania przez człowieka.
[in] aStringLen
Długość ciągu aString (w znakach).
[out] aHost
Wskaźnik do części nazwy hosta przeanalizowanego ciągu znaków.
[out] aHostLen
Długość obiektu aHost (w znakach).
[out] aPort
numer portu (jeśli istnieje i został pomyślnie przeanalizowany); w przeciwnym razie, 0.
[out] aInterface
Wskaźnik do części interfejsu przeanalizowanego ciągu znaków.
[out] aInterfaceLen
Długość interfejsu aInterface (w znakach).
Zwroty
INET_ERROR_INVALID_HOST_NAME: jeśli dane wejściowe do przeanalizowania mają zerową długość lub są w inny sposób uszkodzone.
Zwroty
INET_ERROR_HOST_NAME_TOO_LONG Jeśli nazwa hosta przekracza 253 znaki.
Zwroty
INET_NO_ERROR: powodzenie.

RegisterInetLayerErrorFormatter

void RegisterInetLayerErrorFormatter(
  void
)

Zarejestruj narzędzie do formatowania błędów tekstu na potrzeby błędów Inet Layer.

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
)