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 sterujące sposobem 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 multiemisji 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 multiemisji 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 multiemisji protokołu internetowego.

Definicje typów

InterfaceId typedef
struct netif *
Wskaźnik interfejsów sieci systemu.

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
Biorąc pod uwagę błąd warstwy Inet, zwraca zrozumiały dla człowieka ciąg C z końcówką wartości NULL, zawierający opis błędu.
GetIOCTLSocket(void)
int
Zwraca globalny gniazdo ogólnego przeznaczenia przydatny do wywoływania określonych sieciowych zasobów IOCTL.
GetInterfaceName(InterfaceId intfId, char *nameBuf, size_t nameBufSize)
NL_DLL_EXPORT INET_ERROR
Pobierz nazwę interfejsu sieci.
INET_IsInetEvent(Weave::System::EventType aType)
bool
Sprawdź, czy System::EventType jest prawidłowym typem zdarzenia warstwy Inet.
InterfaceNameToId(const char *intfName, InterfaceId & intfId)
NL_DLL_EXPORT INET_ERROR
Wyszukaj na liście interfejsów sieci 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
Oblicza 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 czytelny dla człowieka ciąg tekstowy zawierający hosta lub adres IP i opcjonalny numer portu (oddzielony znakiem „:”), które obsługują te formaty:
ParseHostPortAndInterface(const char *aString, uint16_t aStringLen, const char *& aHost, uint16_t & aHostLen, uint16_t & aPort, const char *& aInterface, uint16_t & aInterfaceLen)
Przeanalizuj czytelny dla człowieka ciąg tekstowy zawierający hosta lub adres IP, opcjonalny numer portu (rozdzielany znakiem „:”) i opcjonalną nazwę interfejsu (oddzieloną znakiem „”) w następujących formatach:
RegisterInetLayerErrorFormatter(void)
void
Zarejestruj narzędzie do formatowania błędów tekstowych na potrzeby błędów warstwy 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

To jest wewnętrzna klasa InetLayer, która udostępnia pomocnicze interfejsy API do rozpoznawania nazw DNS w InetLayer.

nl::Inet::DNSResolver

To jest wewnętrzna klasa InetLayer, która zapewnia abstrakcyjny zapis rozpoznawania nazw DNS w InetLayer.

nl::Inet::EndPointBasis

Podstawa klas punktów końcowych transportu internetowego.

nl::Inet::IPAddress

adresu IP.

nl::Inet::IPEndPointBasis

Obiekty tej klasy reprezentują niestabilne punkty końcowe protokołu IP.

nl::Inet::IPPacketInfo

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

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 sieciowego TCP, transportu w sieci UDP oraz transportu sieciowego (surowego) w jednym wątku.

nl::Inet::InetLayerBasis

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

nl::Inet::InterfaceAddressIterator

Iterator do tworzenia listy adresów IP interfejsu sieci systemu.

nl::Inet::InterfaceIterator

Iterator do tworzenia listy interfejsów sieci systemu.

nl::Inet::RawEndPoint

Obiekty tej klasy reprezentują punkty końcowe sieci z nieprzetworzonymi adresami IP.

nl::Inet::SocketEvents

Reprezentuje zestaw zdarzeń wejścia-wyjścia żądanych/oczekujących w gnieździe.

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 dotyczące ukończenia rozpoznawania nazw DNS.

kInetEvent_RawDataReceived

Zdarzenie odbioru danych przez punkt końcowy nieprzetworzonego InetLayer.

kInetEvent_TCPConnectComplete

Zdarzenie dotyczące ukończenia połączenia TCP.

kInetEvent_TCPConnectionReceived

Zdarzenie dotyczące odbioru połączenia TCP.

kInetEvent_TCPDataReceived

Zdarzenie odbioru danych przez połączenie TCP.

kInetEvent_TCPDataSent

Zdarzenie przesyłania danych przez połączenie TCP.

kInetEvent_TCPError

Zdarzenie błędu połączenia TCP.

kInetEvent_TunDataReceived

Zdarzenie dotyczące odbioru danych przez tunel Weave.

kInetEvent_UDPDataReceived

Zdarzenie odbioru danych przez UDP.

DNSOptions

 DNSOptions

Opcje sterujące sposobem 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

Zwraca tylko adresy IPv4.

kDNSOption_AddrFamily_IPv4Preferred

Zwraca adresy IPv4 lub IPv6 z adresami IPv4 wymienionymi na początku.

kDNSOption_AddrFamily_IPv6Only

Zwraca tylko adresy IPv6.

kDNSOption_AddrFamily_IPv6Preferred

Zwraca adresy IPv4 lub IPv6 z adresami IPv6 wymienionymi na początku.

kDNSOption_AddrFamily_Mask

Bity w wartości całkowitej DNSOptions reprezentującej wybraną rodzinę adresów.

kDNSOption_Flags_Mask

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

kDNSOption_ValidFlags

Zestaw wszystkich prawidłowych flag DNSOption.

IPAddressType

 IPAddressType

Rodzina adresów IP.

Wartości typu IPAddressType są zwracane przez metodę IPAddress::Type(). Wskazują one rodzinę adresów powiązanych z użyciem danego 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

Niewykorzystywany.

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 multiemisji protokołu internetowego.

Wartości typu IPV6MulticastGroup służą do wywoływania metody IPAddress::MakeIPv6Multicast(). Wskazują identyfikatory grup wyróżniających 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 multiemisji protokołu internetowego w wersji 6.

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

Właściwości
kIPv6MulticastFlag_Prefix

Adres multiemisji to (1) na podstawie prefiksu sieci.

kIPv6MulticastFlag_Transient

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

IPv6MulticastScope

 IPv6MulticastScope

Zakres adresu multiemisji protokołu internetowego.

Wartości typu IPv6MulticastScope służą do wywoływania metody IPAddress::MakeIPv6Multicast(). Wskazują one możliwy do przekierowania zakres grupy multiemisji wyznaczony przez wynik. Te numery są zarejestrowane przez IETF w IANA.

Właściwości
kIPv6MulticastScope_Admin

Zakres lokalny dotyczący obszaru.

kIPv6MulticastScope_Global

Zakres globalny.

kIPv6MulticastScope_IPv4

Zakres lokalny w regionie („IPv4”).

kIPv6MulticastScope_Interface

Zakres lokalny w interfejsie.

kIPv6MulticastScope_Link

Zakres połączenia lokalnego.

kIPv6MulticastScope_Organization

Zakres lokalny w organizacji.

kIPv6MulticastScope_Site

Zakres lokalny dotyczący obszaru.

Definicje typów

InterfaceId

struct netif * InterfaceId

Wskaźnik interfejsów sieci systemu.

Przenośność zależy od tego, czy alias nigdy nie został zaobserwowany. W przyszłości może zostać zastąpiona przezroczystymi klasami betonu.

Uwaga: termin „identyfikator interfejsu” odnosi się również do dolnych 64 bitów adresu IPv6 we wszystkich odpowiednich dokumentach ze standardami IETF, gdzie często używany jest skrót „IID”. Termin „wskaźnik interfejsu” w tym tekście odnosi się do wartości tego typu aliasu.

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 dostępna w przypadku przypadków, gdy globalne gniazdo IOCTL było otwarte, zostałoby zarejestrowane jako wyciek.

Uwaga: ta funkcja NIE jest bezpieczna w wątkach w odniesieniu do funkcji GetIOCTLSocket.

FormatInetLayerError

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

Biorąc pod uwagę błąd warstwy Inet, zwraca zrozumiały dla człowieka ciąg C z końcówką wartości NULL, zawierający opis błędu.

Szczegóły
Parametry
[in] buf
Bufor, w którym zostanie umieszczony ciąg błędu.
[in] bufSize
Rozmiar dostarczonego bufora w bajtach.
[in] err
Błąd, który chcesz opisać.
Zwroty
true Jeśli ciąg opisu został zapisany w podanym buforze.
Zwroty
false Jeśli podany błąd nie jest błędem Inet Layer.

GetIOCTLSocket

int GetIOCTLSocket(
  void
)

Zwraca globalny gniazdo ogólnego przeznaczenia przydatny do wywoływania określonych sieciowych zasobów IOCTL.

Ta funkcja jest bezpieczna wątkowo na wszystkich platformach.

GetInterfaceName

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

Pobierz 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 oznaczona jako nameBuf
Zwracane wartości
INET_NO_ERROR
pomyślny wynik, zapisana nazwa interfejsu
INET_ERROR_NO_MEMORY
nazwa jest za duża do zapisania w buforze
other
błąd innego systemu lub platformy

INET_IsInetEvent

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

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

Szczegóły
Parametry
[in] aType
Typ zdarzenia w warstwie systemowej Weave.
Zwroty
Wartość true (prawda), jeśli mieści się w wyliczonym zakresie, w przeciwnym razie – false (fałsz).

InterfaceNameToId

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

Wyszukaj na liście interfejsów sieci 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,
[out] intfId
wskaźnik interfejsu sieci do przypisania
Zwracane wartości
INET_NO_ERROR
powodzenie, wskazany interfejs sieci
INET_ERROR_UNKNOWN_INTERFACE
nie znaleziono interfejsu sieci
other
błąd innego 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
)

Oblicza 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 czytelny dla człowieka ciąg tekstowy zawierający hosta lub adres IP i opcjonalny numer portu (oddzielony znakiem „:”), które obsługują te formaty:

  • :
  • :
  • []:

Szczegóły
Parametry
[in] aString
Ciąg znaków zrozumiały dla człowieka do przeanalizowania.
[in] aStringLen
Długość elementu aString (w znakach).
[out] aHost
Wskaźnik do części przeanalizowanego ciągu znaków, która zawiera nazwę hosta.
[out] aHostLen
Długość zasobu aHost (w znakach).
[out] aPort
Numer portu, jeśli występuje i został przeanalizowany. W przeciwnym razie wynosi 0.
Zwroty
INET_ERROR_INVALID_HOST_NAME: jeśli dane wejściowe do analizy mają długość zero lub są w inny sposób nieprawidłowe.
Zwroty
INET_ERROR_HOST_NAME_TOO_LONG Jeśli nazwa hosta przekracza 253 znaki.
Zwroty
INET_NO_ERROR Po pomyślnym zakończeniu.

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 czytelny dla człowieka ciąg tekstowy zawierający hosta lub adres IP, opcjonalny numer portu (rozdzielany znakiem „:”) i opcjonalną nazwę interfejsu (oddzieloną znakiem „”) w następujących formatach:

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

Szczegóły
Parametry
[in] aString
Ciąg znaków zrozumiały dla człowieka do przeanalizowania.
[in] aStringLen
Długość elementu aString (w znakach).
[out] aHost
Wskaźnik do części przeanalizowanego ciągu znaków, która zawiera nazwę hosta.
[out] aHostLen
Długość zasobu aHost (w znakach).
[out] aPort
Numer portu, jeśli występuje i został przeanalizowany. W przeciwnym razie wynosi 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 analizy mają długość zero lub są w inny sposób nieprawidłowe.
Zwroty
INET_ERROR_HOST_NAME_TOO_LONG Jeśli nazwa hosta przekracza 253 znaki.
Zwroty
INET_NO_ERROR Po pomyślnym zakończeniu.

RegisterInetLayerErrorFormatter

void RegisterInetLayerErrorFormatter(
  void
)

Zarejestruj narzędzie do formatowania błędów tekstowych na potrzeby błędów warstwy 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
)