nl::Inet::RawEndPoint

#include <src/inet/RawEndPoint.h>

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

Podsumowanie

System Nest Inet Layer zawiera metody interakcji z punktami końcowymi sieci IP (gniazda SOCK_RAW w systemach Linux i systemach opartych na BSD) oraz blokami sterującymi protokołu LwIP, ponieważ system jest odpowiednio skonfigurowany.

Dziedziczenie

Dziedziczy z: nl::Inet::IPEndPointBasis

Atrybuty publiczne

IPProto
IPProtocol
wersja 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 lokalnego IPv6 w 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 odśwież jego pamięć.
GetBoundInterface(void)
InterfaceId
Pobierz powiązany interfejs z tego punktu końcowego.
Listen(void)
Przygotuj punkt końcowy do odbierania komunikatów ICMP.
SendMsg(const IPPacketInfo *pktInfo, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
Wyślij wiadomość ICMP do podanego 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

wersja protokołu ICMP (Internet Control Message Protocol),

To pole jest zmienną klasy klasy, ale jest niezmiennym elementem klasy, którego nie można modyfikować.

protokół IPVer

IPVersion IPVer

Wersja protokołu internetowego.

To pole jest zmienną klasy klasy, ale jest niezmiennym elementem klasy, którego 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 dla punktu końcowego
INET_ERROR_UNKNOWN_INTERFACE
Na niektórych platformach nie ma opcjonalnie określonego interfejsu.
INET_ERROR_WRONG_PROTOCOL_TYPE
Pole addrType nie pasuje do wyrażenia IPVer.
INET_ERROR_WRONG_ADDRESS_TYPE
addrType ma wartość kIPAddressType_Any lub typ addr nie jest równy addrType.
other
błąd innego systemu lub platformy

W LwIP tej metody nie można wywoływać z zablokowaną blokadą stosu LwIP,

BindIPv6LinkLocal

INET_ERROR BindIPv6LinkLocal(
  InterfaceId intf,
  IPAddress addr
)

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

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

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

Szczegóły
Parametry
[in] intf
Identyfikator InterfaceId do określenia zakresu adresu.
[in] addr
Obiekt IPAddress (adres IP) 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 dla punktu końcowego
INET_ERROR_WRONG_PROTOCOL_TYPE
Pole addrType nie pasuje do wyrażenia IPVer.
INET_ERROR_WRONG_ADDRESS_TYPE
addr nie jest adresem lokalnym połączenia IPv6 lub intf ma wartość INET_NULL_INTERFACEID.
other
błąd innego 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 skutkować wystąpieniem 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 protokołu IPv6.

W LwIP tej metody nie można wywoływać z zablokowaną 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 adresu IP.
[in] intf
wskaźnik interfejsu sieci.
Zwracane wartości
INET_NO_ERROR
sukces: punkt końcowy powiązany z adresem
INET_NO_MEMORY
za mało pamięci dla punktu końcowego
INET_ERROR_NOT_IMPLEMENTED
nie ukończono implementacji systemu.
INET_ERROR_UNKNOWN_INTERFACE
Na niektórych platformach interfejs jest niedostępny.
other
błąd innego systemu lub platformy

W LwIP tej metody nie można wywoływać z zablokowaną 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 obsługi zdarzeń komunikacji.

W systemach LwIP tej metody nie można wywoływać z dostępną blokadą stosu LwIP,

bezpłatnie

void Free(
  void
)

Zamknij punkt końcowy i odśwież jego pamięć.

Wywołuje metodę Close, a następnie metodę InetLayerBasis::Release, aby zwrócić obiekt do puli pamięci.

W systemach LwIP tej metody nie można wywoływać z dostępną blokadą stosu LwIP,

GetBoundInterface

InterfaceId GetBoundInterface(
  void
)

Pobierz powiązany interfejs z tego punktu końcowego.

Szczegóły
Zwroty
InterfaceId Identyfikator powiązanego interfejsu.

Posłuchaj

INET_ERROR Listen(
  void
)

Przygotuj punkt końcowy do odbierania komunikatów ICMP.

Jeśli mState ma już wartość kState_Listening, nie jest wykonywana żadna operacja. W przeciwnym razie mState ma wartość kState_Listening, a punkt końcowy jest gotowy do odbierania komunikatów ICMPv6 zgodnie ze semantyką platformy.

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

W LwIP tej metody nie można wywoływać z blokadą stosu LwIP, która została już pozyskana

SendMsg

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

Wyślij wiadomość ICMP do podanego 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 wiadomość UDP
[in] sendFlags
flagi opcji przesyłania
Zwracane wartości
INET_NO_ERROR
powodzenie: msg jest w kolejce do transmisji.
INET_ERROR_NOT_SUPPORTED
system nie obsługuje żądanej operacji.
INET_ERROR_WRONG_ADDRESS_TYPE
adres docelowy i adres powiązanego interfejsu nie mają zgodnych wersji protokołu lub typu adresu.
INET_ERROR_MESSAGE_TOO_LONG
msg nie zawiera całej wiadomości ICMP.
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
Na niektórych platformach do transmisji została dodana tylko skrócona część zapisu msg.
other
błąd innego 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 wiadomość UDP
[in] sendFlags
flagi opcji przesyłania
Zwracane wartości
INET_NO_ERROR
powodzenie: msg jest w kolejce do transmisji.
INET_ERROR_NOT_SUPPORTED
system nie obsługuje żądanej operacji.
INET_ERROR_WRONG_ADDRESS_TYPE
adres docelowy i adres powiązanego interfejsu nie mają zgodnych wersji protokołu lub typu adresu.
INET_ERROR_MESSAGE_TOO_LONG
msg nie zawiera całej wiadomości ICMP.
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
Na niektórych platformach do transmisji została dodana tylko skrócona część zapisu msg.
other
błąd innego 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 z elementu aICMPTypes do bazowego punktu końcowego w stosie sieci systemu.

Szczegóły
Parametry
[in] numICMPTypes
długość tablicy po aICMPTypes
[in] aICMPTypes
zestaw kodów typu ICMPv6 do filtrowania.
Zwracane wartości
INET_NO_ERROR
sukces: ustawiono parametry filtra
INET_ERROR_NOT_IMPLEMENTED
system nie wdraża
INET_ERROR_WRONG_ADDRESS_TYPE
typ punktu końcowego inny niż IPv6
INET_ERROR_WRONG_PROTOCOL_TYPE
punkt końcowy nie jest typu ICMP6
other
błąd innego systemu lub platformy