nl::Inet::RawEndPoint

#include <src/inet/RawEndPoint.h>

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

Podsumowanie

Nest Inet Layer szyfruje metody interakcji z punktami końcowymi sieci IP (gniazda SOCK_RAW w systemach Linux i systemach bazujących na BSD) lub bloki kontroli protokołu nieprzetworzonego LwIP, ponieważ system jest odpowiednio skonfigurowany.

Dziedziczenie

Dziedziczy z: nl::Inet::IPEndPointBasis

Atrybuty publiczne

IPProto
IPProtocol
wersję protokołu ICMP (Internet Control Message Protocol)
IPVer
IPVersion
Wersja protokołu internetowego.

Funkcje publiczne

Bind(IPAddressType addrType, IPAddress addr, InterfaceId intfId)
Powiąż punkt końcowy z adresem IP interfejsu.
BindIPv6LinkLocal(InterfaceId intf, IPAddress addr)
Powiąż nieprzetworzony punkt końcowy z adresem zakresu połączenia IPv6 o określonym indeksie interfejsu.
BindInterface(IPAddressType addrType, InterfaceId intf)
Powiąż punkt końcowy z interfejsem sieci.
Close(void)
void
Zamknij punkt końcowy.
Free(void)
void
Zamknij punkt końcowy i odtwórz jego pamięć.
GetBoundInterface(void)
InterfaceId
Pobierz powiązany interfejs w tym punkcie końcowym.
Listen(void)
Przygotuj punkt końcowy na odbieranie komunikatów ICMP.
SendMsg(const IPPacketInfo *pktInfo, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
Wyślij wiadomość ICMP do określonego miejsca docelowego.
SendTo(IPAddress addr, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
Synonim słowa SendTo(addr, INET_NULL_INTERFACEID, msg, sendFlags).
SendTo(IPAddress addr, InterfaceId intfId, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
Wyślij wiadomość ICMP na podany adres docelowy.
SetICMPFilter(uint8_t numICMPTypes, const uint8_t *aICMPTypes)
Ustaw parametry filtra ICMP6 w stosie sieci.

Atrybuty publiczne

IPProto

IPProtocol IPProto

wersję protokołu ICMP (Internet Control Message Protocol)

To pole jest zmienną klasy zmiennej, ale jest też niezmienną klasy, której nie można modyfikować.

IPVer

IPVersion IPVer

Wersja protokołu internetowego.

To pole jest zmienną klasy zmiennej, ale jest też niezmienną klasy, której nie można modyfikować.

Funkcje publiczne

Powiąż

INET_ERROR Bind(
  IPAddressType addrType,
  IPAddress addr,
  InterfaceId intfId
)

Powiąż punkt końcowy z adresem IP interfejsu.

Wiąże punkt końcowy z określonym adresem IP interfejsu sieci.

Szczegóły
Parametry
[in] addrType
wersja protokołu adresu IP
[in] addr
adres IP (musi być adresem interfejsu).
[in] intfId
opcjonalny wskaźnik interfejsu sieci,
Zwracane wartości
INET_NO_ERROR
sukces: punkt końcowy powiązany z adresem
INET_ERROR_INCORRECT_STATE
punkt końcowy został wcześniej powiązany
INET_NO_MEMORY
Za mało pamięci, aby uruchomić punkt końcowy
INET_ERROR_UNKNOWN_INTERFACE
Na niektórych platformach opcjonalnie określony interfejs nie jest dostępny.
INET_ERROR_WRONG_PROTOCOL_TYPE
addrType nie pasuje do IPVer.
INET_ERROR_WRONG_ADDRESS_TYPE
addrType to kIPAddressType_Any lub typ addr jest inny niż addrType.
other
inny błąd systemu lub platformy

W przypadku LwIP tej metody nie można wywoływać z uzyskaną blokadą stosu LwIP.

BindIPv6LinkLocal

INET_ERROR BindIPv6LinkLocal(
  InterfaceId intf,
  IPAddress addr
)

Powiąż nieprzetworzony punkt końcowy z adresem zakresu połączenia IPv6 o określonym indeksie interfejsu.

Ustawia też różne opcje gniazda IPv6 odpowiednie do przesyłania pakietów do i z miejsc docelowych połączeń.

Wiąże punkt końcowy z adresem lokalnym połączenia IPv6 addr w interfejsie sieci wskazanym przez parametr intf.

Szczegóły
Parametry
[in] intf
Identyfikator interfejsu określający zakres adresu.
[in] addr
Obiekt IPAddress (adres IP) połączenia lokalnego zakresu adresów IPv6.
Parametry
[in] intf
wskaźnik interfejsu sieci
[in] addr
adres IP (musi być adresem interfejsu).
Zwracane wartości
INET_NO_ERROR
sukces: punkt końcowy powiązany z adresem
INET_ERROR_INCORRECT_STATE
punkt końcowy został wcześniej powiązany
INET_NO_MEMORY
Za mało pamięci, aby uruchomić punkt końcowy
INET_ERROR_WRONG_PROTOCOL_TYPE
addrType nie pasuje do IPVer.
INET_ERROR_WRONG_ADDRESS_TYPE
addr nie jest adresem połączenia lokalnego połączenia IPv6 lub intf to INET_NULL_INTERFACEID.
other
inny błąd systemu lub platformy
Zwroty
INET_NO_ERROR w przypadku powodzenia lub zmapowany błąd systemu operacyjnego w przypadku niepowodzenia. Nieprawidłowa lista parametrów może spowodować błąd INET_ERROR_WRONG_ADDRESS_TYPE. Jeśli nieprzetworzony punkt końcowy jest już powiązany lub nasłuchuje, zwraca INET_ERROR_INCORRECT_STATE. Powiąż punkt końcowy z adresem połączenia lokalnego interfejsu IPv6.

W przypadku LwIP tej metody nie można wywoływać z uzyskaną blokadą stosu LwIP.

BindInterface

INET_ERROR BindInterface(
  IPAddressType addrType,
  InterfaceId intf
)

Powiąż punkt końcowy z interfejsem sieci.

Wiąże punkt końcowy z określonym adresem IP interfejsu sieci.

Szczegóły
Parametry
[in] addrType
wersję protokołu dla danego adresu IP.
[in] intf
wskaźnika interfejsu sieci.
Zwracane wartości
INET_NO_ERROR
sukces: punkt końcowy powiązany z adresem
INET_NO_MEMORY
Za mało pamięci, aby uruchomić punkt końcowy
INET_ERROR_NOT_IMPLEMENTED
nie ukończono implementacji systemu.
INET_ERROR_UNKNOWN_INTERFACE
Na niektórych platformach interfejs jest niedostępny.
other
inny błąd systemu lub platformy

W przypadku LwIP tej metody nie można wywoływać z uzyskaną blokadą stosu LwIP.

Zamknij

void Close(
  void
)

Zamknij punkt końcowy.

Jeśli mState != kState_Closed, zamyka punkt końcowy, usuwając go z zestawu punktów końcowych kwalifikujących się do zdarzeń komunikacji.

W systemach LwIP nie można wywoływać tej metody z uzyskaną blokadą stosu LwIP.

Bezpłatnie

void Free(
  void
)

Zamknij punkt końcowy i odtwórz jego pamięć.

Wywołuje metodę Close, a następnie metodę InetLayerBasis::Release, która zwraca obiekt do puli pamięci.

W systemach LwIP nie można wywoływać tej metody z uzyskaną blokadą stosu LwIP.

GetBoundInterface

InterfaceId GetBoundInterface(
  void
)

Pobierz powiązany interfejs w tym punkcie końcowym.

Szczegóły
Zwroty
InterfaceId – identyfikator powiązanego interfejsu.

Posłuchaj

INET_ERROR Listen(
  void
)

Przygotuj punkt końcowy na odbieranie komunikatów ICMP.

Jeśli mState ma już wartość kState_Listening, nie są wykonywane żadne działania. W przeciwnym razie zasada mState jest ustawiona na kState_Listening, a punkt końcowy jest przygotowany do odbierania komunikatów ICMPv6 zgodnie z semantyką platformy.

Szczegóły
Zwracane wartości
INET_NO_ERROR
zawsze zwracanych.

W przypadku LwIP tej metody nie można wywoływać, gdy blokada stosu LwIP jest już uzyskana

SendMsg

INET_ERROR SendMsg(
  const IPPacketInfo *pktInfo,
  Weave::System::PacketBuffer *msg,
  uint16_t sendFlags
)

Wyślij wiadomość ICMP do określonego miejsca docelowego.

 Send the ICMP message \c msg using the destination information given in \c addr.

 Where (sendFlags & kSendFlag_RetainBuffer) != 0, calls
 Weave::System::PacketBuffer::Free on behalf of the caller, otherwise this
 method deep-copies \c msg into a fresh object, and queues that for
 transmission, leaving the original \c msg available after return.

Szczegóły
Parametry
[in] pktInfo
informacje o miejscu docelowym wiadomości
[in] msg
bufor pakietów zawierający komunikat UDP,
[in] sendFlags
opcjonalne flagi opcji przesyłania
Zwracane wartości
INET_NO_ERROR
sukces: aplikacja msg została dodana do kolejki transmisji.
INET_ERROR_NOT_SUPPORTED
system nie obsługuje żądanej operacji.
INET_ERROR_WRONG_ADDRESS_TYPE
adres docelowy i powiązany adres interfejsu nie mają zgodnych wersji protokołu lub typu adresu.
INET_ERROR_MESSAGE_TOO_LONG
Pole msg nie zawiera całej wiadomości ICMP.
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
Na niektórych platformach tylko skrócona część msg została dodana do kolejki transmisji.
other
inny błąd systemu lub platformy

SendTo

INET_ERROR SendTo(
  IPAddress addr,
  Weave::System::PacketBuffer *msg,
  uint16_t sendFlags
)

Synonim słowa SendTo(addr, INET_NULL_INTERFACEID, msg, sendFlags).

SendTo

INET_ERROR SendTo(
  IPAddress addr,
  InterfaceId intfId,
  Weave::System::PacketBuffer *msg,
  uint16_t sendFlags
)

Wyślij wiadomość ICMP na podany adres docelowy.

 Send the ICMP message in \c msg to the destination given in \c addr.

 Where (sendFlags & kSendFlag_RetainBuffer) != 0, calls
 Weave::System::PacketBuffer::Free on behalf of the caller, otherwise this
 method deep-copies \c msg into a fresh object, and queues that for
 transmission, leaving the original \c msg available after return.

Szczegóły
Parametry
[in] addr
docelowy adres IP
[in] intfId
opcjonalny wskaźnik interfejsu sieci,
[in] msg
bufor pakietów zawierający komunikat UDP,
[in] sendFlags
opcjonalne flagi opcji przesyłania
Zwracane wartości
INET_NO_ERROR
sukces: aplikacja msg została dodana do kolejki transmisji.
INET_ERROR_NOT_SUPPORTED
system nie obsługuje żądanej operacji.
INET_ERROR_WRONG_ADDRESS_TYPE
adres docelowy i powiązany adres interfejsu nie mają zgodnych wersji protokołu lub typu adresu.
INET_ERROR_MESSAGE_TOO_LONG
Pole msg nie zawiera całej wiadomości ICMP.
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
Na niektórych platformach tylko skrócona część msg została dodana do kolejki transmisji.
other
inny błąd systemu lub platformy

SetICMPFilter

INET_ERROR SetICMPFilter(
  uint8_t numICMPTypes,
  const uint8_t *aICMPTypes
)

Ustaw parametry filtra ICMP6 w stosie sieci.

Zastosuj parametry filtrowania ICMPv6 dla kodów w zasadzie aICMPTypes do bazowego punktu końcowego w stosie sieci systemu.

Szczegóły
Parametry
[in] numICMPTypes
długość tablicy w punkcie aICMPTypes
[in] aICMPTypes
zestawu kodów typów ICMPv6 do przefiltrowania.
Zwracane wartości
INET_NO_ERROR
sukces: ustawiono parametry filtra
INET_ERROR_NOT_IMPLEMENTED
nie implementuje
INET_ERROR_WRONG_ADDRESS_TYPE
punkt końcowy inny niż typ IPv6
INET_ERROR_WRONG_PROTOCOL_TYPE
punkt końcowy inny niż typ ICMP6
other
inny błąd systemu lub platformy