nl:: Inet

streszczenie

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)
}
wyliczenie
Definicje typu zdarzenia 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
}
wyliczenie
Opcje kontrolujące sposób rozwiązywania adresów IP.
IPAddressType {
kIPAddressType_Unknown = 0,
kIPAddressType_IPv4 = 1,
kIPAddressType_IPv6 = 2,
kIPAddressType_Any = 3
}
wyliczenie
Rodzina adresów protokołu internetowego.
IPProtocol {
kIPProtocol_ICMPv6 = 58,
kIPProtocol_ICMPv4 = 1
}
wyliczenie
Liczby niektórych protokołów z rodziny IP.
IPV6MulticastGroup {
kIPV6MulticastGroup_AllRouters = 2
}
wyliczenie
Identyfikatory grup multiemisji protokołu internetowego.
IPVersion {
kIPVersion_6 = 6,
kIPVersion_4 = 4
}
wyliczenie
Wersja używanego protokołu IP.
IPv6MulticastFlag {
kIPv6MulticastFlag_Transient = 0x01,
kIPv6MulticastFlag_Prefix = 0x02
}
wyliczenie
Flagi multiemisji protokołu internetowego v6.
IPv6MulticastScope {
kIPv6MulticastScope_Interface = 1,
kIPv6MulticastScope_Link = 2,
kIPv6MulticastScope_IPv4 = 3,
kIPv6MulticastScope_Admin = 4,
kIPv6MulticastScope_Site = 5,
kIPv6MulticastScope_Organization = 8,
kIPv6MulticastScope_Global = 14
}
wyliczenie
Zakres adresów multiemisji protokołu internetowego.

Definicje typów

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

Zmienne

sIOCTLSocket = -1
int

Funkcje

CheckMulticastGroupArgs (InterfaceId aInterfaceId, const IPAddress & aAddress)
CloseIOCTLSocket (void)
void
Zamknąć globalnego gniazda utworzonego przez GetIOCTLSocket .
FormatInetLayerError (char *buf, uint16_t bufSize, int32_t err)
bool
Biorąc pod uwagę błąd warstwy Inet, zwraca czytelny dla człowieka ciąg C zakończony znakiem NULL opisujący błąd.
GetIOCTLSocket (void)
int
Zwraca globalne gniazdo ogólnego przeznaczenia przydatne do wywoływania niektórych sieciowych IOCTL.
GetInterfaceName (InterfaceId intfId, char *nameBuf, size_t nameBufSize)
NL_DLL_EXPORT INET_ERROR
Uzyskaj nazwę interfejsu sieciowego.
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
Przeszukaj listę interfejsów sieciowych pod wskazaną 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 z 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 zawierający adres hosta lub adres IP i opcjonalny numer portu (oddzielony znakiem „:”), obsługujący 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 czytelny dla człowieka ciąg zawierający adres hosta lub adres IP, opcjonalny numer portu (oddzielony znakiem „:”) oraz opcjonalną nazwę interfejsu (oddzieloną znakiem „”), obsługujące następujące formaty:
RegisterInetLayerErrorFormatter (void)
void
Zarejestruj program do formatowania błędów tekstu dla błędów warstwy Inet.
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)

Klasy

nl :: Inet :: AsyncDNSResolverSockets

Jest to wewnętrzny klasa InetLayer które zapewnia pomocnicze API Asynchronous Domain Name System (DNS) uchwały w InetLayer .

nl :: Inet :: DNSResolver

Jest to wewnętrzny klasa InetLayer który zapewnia pobór Domain Name System (DNS) uchwały w InetLayer .

nl :: Inet :: EndPointBasis

Podstawy klas punktów końcowych transportu internetowego.

nl :: Inet :: IPAddress

Adres protokołu internetowego.

nl :: Inet :: IPEndPointBasis

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

nl :: Inet :: IPPacketInfo

Informacje o przychodzącej/wychodzącej wiadomości/połączeniu.

nl :: Inet :: IPPrefix

Prefiks adresu protokołu internetowego.

nl :: Inet :: InetLayer

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

nl :: Inet :: InetLayerBasis

Jest to klasa podstawą obiektów referencyjnych liczone zarządzanych przez InetLayer obiektu.

nl :: Inet :: InterfaceAddressIterator

Iterator listy adresów IP interfejsu sieciowego systemu.

nl :: Inet :: InterfaceIterator

Iterator dla listy systemowych interfejsów sieciowych.

nl :: Inet :: RawEndPoint

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

nl :: Inet :: SocketEvents

Reprezentuj zestaw zdarzeń we/wy żą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 tunelowe.

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 typu zdarzenia warstwy Inet.

Nieruchomości
kInetEvent_DNSResolveComplete

Zdarzenie zakończenia rozpoznawania nazw DNS.

kInetEvent_RawDataReceived

Impreza do odbioru danych przez InetLayer surowego końcowego.

kInetEvent_TCPConnectComplete

Zdarzenie zakoń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.

Opcje DNS

 DNSOptions

Opcje kontrolujące sposób rozwiązywania adresów IP.

Nieruchomości
kDNSOption_AddrFamily_Any

Zwróć adresy IPv4 i/lub IPv6 w kolejności zwracanej przez serwer nazw.

kDNSOption_AddrFamily_IPv4Only

Zwróć tylko adresy IPv4.

kDNSOption_AddrFamily_IPv4Preferred

Zwróć adresy IPv4 i/lub IPv6, zaczynając od adresów IPv4.

kDNSOption_AddrFamily_IPv6Only

Zwróć tylko adresy IPv6.

kDNSOption_AddrFamily_IPv6Preferred

Zwróć adresy IPv4 i/lub IPv6, zaczynając od adresów IPv6.

kDNSOption_AddrFamily_Mask

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

kDNSOption_Flags_Mask

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

kDNSOption_ValidFlags

Zestaw wszystkich prawidłowych flag DNSOption.

Typ adresu IP

 IPAddressType

Rodzina adresów protokołu internetowego.

Wartości IPAddressType typu są zwracane przez IPAddress::Type() metody. Wskazują rodzinę adresów związaną z użyciem adresu.

Nieruchomości
kIPAddressType_Any

Nieokreślony adres internetowy (niezależny od wersji protokołu)

kIPAddressType_IPv4

Protokół internetowy w wersji 4.

kIPAddressType_IPv6

Protokół internetowy w wersji 6.

kIPAddressType_Unknown

Nieużywany.

Protokół IP

 IPProtocol

Liczby niektórych protokołów z rodziny IP.

Nieruchomości
kIPProtocol_ICMPv4

ICMPv4.

kIPProtocol_ICMPv6

ICMPv6.

IPV6MulticastGroup

 IPV6MulticastGroup

Identyfikatory grup multiemisji protokołu internetowego.

Wartości IPV6MulticastGroup typu są stosowane do wywołania IPAddress::MakeIPv6Multicast() metody. Wskazują wyróżnione identyfikatory grupowe zarejestrowane przez IETF w IANA.

Nieruchomości
kIPV6MulticastGroup_AllRouters

RFC 4291.

Wersja IP

 IPVersion

Wersja używanego protokołu IP.

Nieruchomości
kIPVersion_4

IPv4.

kIPVersion_6

IPv6.

Flaga multiemisji IPv6

 IPv6MulticastFlag

Flagi multiemisji protokołu internetowego v6.

Wartości IPv6MulticastFlag typu są używane do łączenia się z IPAddress::MakeIPv6Multicast() metody. Wskazują typ tworzonego adresu multiemisji IPv6. Numery te są zarejestrowane przez IETF w IANA.

Nieruchomości
kIPv6MulticastFlag_Prefix

Adres multicast (1) jest oparty na prefiksie sieci.

kIPv6MulticastFlag_Transient

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

Zakres multiemisji IPv6

 IPv6MulticastScope

Zakres adresów multiemisji protokołu internetowego.

Wartości IPv6MulticastScope typu są stosowane do wywołania IPAddress::MakeIPv6Multicast() metody. Wskazują zakres routingu grupy multiemisji wyznaczonej przez wynik. Numery te są zarejestrowane przez IETF w IANA.

Nieruchomości
kIPv6MulticastScope_Admin

Zasięg lokalny.

kIPv6MulticastScope_Global

Zakres globalny.

kIPv6MulticastScope_IPv4

Zakres lokalny ("IPv4").

kIPv6MulticastScope_Interface

Zakres lokalny interfejsu.

kIPv6MulticastScope_Link

Zasięg lokalny łącza.

kIPv6MulticastScope_Organization

Zasięg lokalny organizacji.

kIPv6MulticastScope_Site

Zasięg lokalny.

Definicje typów

Identyfikator interfejsu

struct netif * InterfaceId

Wskaźnik interfejsów sieciowych systemu.

Przenośność zależy od tego, czy nigdy nie będziesz świadkiem tego aliasu. W przyszłości może zostać zastąpiony przez betonową klasę nieprzezierną.

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

Zmienne

sIOCTLSocket

int sIOCTLSocket = -1

Funkcje

Sprawdź argumenty grupy multiemisji

INET_ERROR CheckMulticastGroupArgs(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

ZamknijIOCTLSocket

void CloseIOCTLSocket(
  void
)

Zamknąć globalnego gniazda utworzonego przez GetIOCTLSocket .

Ta funkcja jest dostępna dla przypadków, w których pozostawienie otwartego globalnego gniazda IOCTL zostałoby zarejestrowane jako wyciek.

Uwaga: Ta funkcja nie jest bezpieczny wątku względem GetIOCTLSocket .

Błąd formatu InetLayer

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

Biorąc pod uwagę błąd warstwy Inet, zwraca czytelny dla człowieka ciąg C zakończony znakiem NULL opisujący błąd.

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

GetIOCTLSocket

int GetIOCTLSocket(
  void
)

Zwraca globalne gniazdo ogólnego przeznaczenia przydatne do wywoływania niektórych sieciowych IOCTL.

Ta funkcja jest bezpieczna wątkowo na wszystkich platformach.

Pobierz nazwęinterfejsu

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

Uzyskaj nazwę interfejsu sieciowego.

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.

Detale
Parametry
[in] intfId
interfejs sieciowy
[in] nameBuf
region pamięci do zapisania nazwy interfejsu
[in] nameBufSize
Rozmiar obszaru oznaczonego nameBuf
Zwracane wartości
INET_NO_ERROR
pomyślny wynik, napisana nazwa interfejsu
INET_ERROR_NO_MEMORY
nazwa jest zbyt duża, aby można ją było zapisać w buforze
other
inny błąd systemu lub platformy

INET_IsInetEvent

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

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

Detale
Parametry
[in] aType
Typ zdarzenia Weave System Layer.
Zwroty
prawda, jeśli mieści się w wyliczonym zakresie; w przeciwnym razie fałsz.

Nazwa_interfejsuToId

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

Przeszukaj listę interfejsów sieciowych pod wskazaną 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.

Detale
Parametry
[in] intfName
nazwa interfejsu sieciowego do znalezienia
[out] intfId
wskaźnik interfejsu sieciowego do przypisania
Zwracane wartości
INET_NO_ERROR
sukces, wskazany interfejs sieciowy
INET_ERROR_UNKNOWN_INTERFACE
nie znaleziono interfejsu sieciowego
other
inny błąd systemu lub platformy

Interfejs LwIPBind

INET_ERROR LwIPBindInterface(
  struct raw_pcb *aRaw,
  InterfaceId intfId
)

Interfejs LwIPBind

INET_ERROR LwIPBindInterface(
  struct udp_pcb *aUDP,
  InterfaceId intfId
)

Długość przedrostka maski sieci

uint8_t NetmaskToPrefixLength(
  const uint8_t *netmask,
  uint16_t netmaskLen
)

Oblicz długość prefiksu z 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 zawierający adres hosta lub adres IP i opcjonalny numer portu (oddzielony znakiem „:”), obsługujący następujące formaty:

  • :
  • :
  • [ ]:

Detale
Parametry
[in] aString
Łańcuch obsługiwany przez człowieka do przeanalizowania.
[in] aStringLen
Długość w znakach aString.
[out] aHost
Wskaźnik do części przeanalizowanego ciągu z nazwą hosta.
[out] aHostLen
Długość w znakach hosta.
[out] aPort
Numer portu, jeśli jest obecny i pomyślnie przeanalizowany; w przeciwnym razie 0.
Zwroty
INET_ERROR_INVALID_HOST_NAME Jeśli wejście być analizowany jest zerowej długości lub zniekształcony.
Zwroty
INET_ERROR_HOST_NAME_TOO_LONG Jeśli nazwa hosta przekracza 253 znaków.
Zwroty
INET_NO_ERROR Na sukces.

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 zawierający adres hosta lub adres IP, opcjonalny numer portu (oddzielony znakiem „:”) oraz opcjonalną nazwę interfejsu (oddzieloną znakiem „”), obsługujące następujące formaty:

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

Detale
Parametry
[in] aString
Ciąg znaków rozpoznawalny dla człowieka do przeanalizowania.
[in] aStringLen
Długość w znakach aString.
[out] aHost
Wskaźnik do części przeanalizowanego ciągu z nazwą hosta.
[out] aHostLen
Długość w znakach hosta.
[out] aPort
Numer portu, jeśli jest obecny i pomyślnie przeanalizowany; w przeciwnym razie 0.
[out] aInterface
Wskaźnik do części interfejsu analizowanego ciągu.
[out] aInterfaceLen
Długość interfejsu aInterface w znakach.
Zwroty
INET_ERROR_INVALID_HOST_NAME Jeśli wejście być analizowany jest zerowej długości lub zniekształcony.
Zwroty
INET_ERROR_HOST_NAME_TOO_LONG Jeśli nazwa hosta przekracza 253 znaków.
Zwroty
INET_NO_ERROR Na sukces.

Zarejestruj sięInetLayerErrorFormatter

void RegisterInetLayerErrorFormatter(
  void
)

Zarejestruj program do formatowania błędów tekstu dla błędów warstwy Inet.

GniazdaIPv4DołączOpuśćgrupęmultiemisji

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

GniazdaIPv6DołączOpuśćgrupęmultiemisji

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

Zestaw gniazd MulticastLoopback

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

Zestaw gniazd MulticastLoopback

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