nl::Inet::IPEndPointBasis

#include <src/inet/IPEndPointBasis.h>

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

Podsumowanie

Dziedziczenie

Dziedziczy z: nl::Inet::EndPointBasis
Bezpośrednie znane podklasy:
  nl::Inet::RawEndPoint
  nl::Inet::UDPEndPoint

Typy publiczne

@8{
  kState_Ready = kBasisState_Closed,
  kState_Bound = 1,
  kState_Listening = 2,
  kState_Closed = 3
}
enum | typ wyliczeniowy
Podstawowy stan dynamiczny bazowego punktu końcowego.
@9{
  kSendFlag_RetainBuffer = 0x0040
}
enum | typ wyliczeniowy
Przesyłaj flagi opcji dla metody SendMsg.
OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo) typedef
void(*
Typ funkcji obsługi zdarzeń odbioru tekstu wiadomości.
OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo) typedef
void(*
Typ funkcji obsługi zdarzeń błędu odbioru.

Atrybuty publiczne

OnMessageReceived
Delegowanie funkcji obsługi zdarzeń odbioru wiadomości punktu końcowego.
OnReceiveError
Delegacja funkcji obsługi zdarzeń błędów punktu końcowego.
mState
enum nl::Inet::IPEndPointBasis::@8
Podstawowy stan dynamiczny bazowego punktu końcowego.

Atrybuty chronione

mBoundIntfId
InterfaceId

Funkcje publiczne

JoinMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
Dołącz do grupy multiemisji IP.
LeaveMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
Opuść grupę multiemisji IP.
SetMulticastLoopback(IPVersion aIPVersion, bool aLoopback)
Określ, czy ruch multiemisji IP ma być zapętlony.

Funkcje chronione

Bind(IPAddressType aAddressType, IPAddress aAddress, uint16_t aPort, InterfaceId aInterfaceId)
BindInterface(IPAddressType aAddressType, InterfaceId aInterfaceId)
GetSocket(IPAddressType aAddressType, int aType, int aProtocol)
HandleDataReceived(Weave::System::PacketBuffer *aBuffer)
void
HandlePendingIO(uint16_t aPort)
void
Init(InetLayer *aInetLayer)
void
PrepareIO(void)
SendMsg(const IPPacketInfo *aPktInfo, Weave::System::PacketBuffer *aBuffer, uint16_t aSendFlags)

Publiczne funkcje statyczne

FindNetifFromInterfaceId(InterfaceId aInterfaceId)
struct netif *

Chronione funkcje statyczne

GetPacketInfo(Weave::System::PacketBuffer *buf)
Uzyskiwanie informacji o źródle i adresie docelowym warstwy IP LwIP.

Typy publiczne

@8

 @8

Podstawowy stan dynamiczny bazowego punktu końcowego.

Obiekty są inicjowane w stanie „ready” przejdź do sekcji „wiąż” po utworzeniu powiązania z lokalnym adresem interfejsu, a następnie przejdź do sekcji „nasłuchiwanie” gdy mają zarejestrowane kontynuacje obsługi zdarzeń na potrzeby odbierania wiadomości ICMP.

Uwaga: ze względu na historyczne przyczyny zgodności plików binarnych wyliczenie stanu kBasisState_Closed jest mapowane na wartość kState_Ready. Istniejący kState_Closed istnieje, aby osobno identyfikować różnicę między stanem „Jeszcze nieotwarte” i „wcześniej otwarty zamknięte” które wcześniej istniały w stanach kState_Ready i kState_Closed.

Właściwości
kState_Bound

Punkt końcowy jest powiązany, ale nie nasłuchuje.

kState_Closed

Punkt końcowy jest zamknięty, gotowy do wersji.

kState_Listening

Datagramy odbierające punkt końcowy.

kState_Ready

Punkt końcowy został zainicjowany, ale nie jest otwarty.

@9

 @9

Przesyłaj flagi opcji dla metody SendMsg.

Właściwości
kSendFlag_RetainBuffer

Nie umieszczaj wiadomości w kolejce w sposób destrukcyjny.

Dodaj kopię do kolejki.

OnMessageReceivedFunct

void(* OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo)

Typ funkcji obsługi zdarzeń odbioru tekstu wiadomości.

Udostępnij tę funkcję osobie z przekazanym dostępem do OnMessageReceived, aby umożliwić przetwarzanie zdarzeń odbierania tekstu wiadomości w domenie endPoint, gdzie msg to tekst wiadomości otrzymany od nadawcy w domenie senderAddr.

Szczegóły
Parametry
[in] endPoint
Punkt końcowy powiązany ze zdarzeniem.
[in] msg
Otrzymano tekst wiadomości.
[in] senderAddr
Adres IP nadawcy.

OnReceiveErrorFunct

void(* OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo)

Typ funkcji obsługi zdarzeń błędu odbioru.

Zapewnij funkcję tego typu członkowi przedstawiciela OnReceiveError, aby mógł przetwarzać zdarzenia błędów odbierania w systemie endPoint. Argument err zawiera szczegółowe informacje na temat typu błędu.

Szczegóły
Parametry
[in] endPoint
Punkt końcowy powiązany ze zdarzeniem.
[in] err
przyczynę błędu.

Atrybuty publiczne

OnMessageReceived

OnMessageReceivedFunct OnMessageReceived

Delegowanie funkcji obsługi zdarzeń odbioru wiadomości punktu końcowego.

OnReceiveError

OnReceiveErrorFunct OnReceiveError

Delegacja funkcji obsługi zdarzeń błędów punktu końcowego.

mState

enum nl::Inet::IPEndPointBasis::@8 mState

Podstawowy stan dynamiczny bazowego punktu końcowego.

Obiekty są inicjowane w stanie „ready” przejdź do sekcji „wiąż” po utworzeniu powiązania z lokalnym adresem interfejsu, a następnie przejdź do sekcji „nasłuchiwanie” gdy mają zarejestrowane kontynuacje obsługi zdarzeń na potrzeby odbierania wiadomości ICMP.

Uwaga: ze względu na historyczne przyczyny zgodności plików binarnych wyliczenie stanu kBasisState_Closed jest mapowane na wartość kState_Ready. Istniejący kState_Closed istnieje, aby osobno identyfikować różnicę między stanem „Jeszcze nieotwarte” i „wcześniej otwarty zamknięte” które wcześniej istniały w stanach kState_Ready i kState_Closed.

Atrybuty chronione

mBoundIntfId

InterfaceId mBoundIntfId

Funkcje publiczne

JoinMulticastGroup

INET_ERROR JoinMulticastGroup(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

Dołącz do grupy multiemisji IP.

Dołącz punkt końcowy do podanej grupy multicast w określonym interfejsie.

Szczegóły
Parametry
[in] aInterfaceId
wskaźnik interfejsu sieci, który ma zostać dodany do grupy transmisji grupowych
[in] aAddress
grupę multicast, do której ma zostać dodany interfejs
Zwracane wartości
INET_NO_ERROR
sukces: usunięto grupę multicast
INET_ERROR_UNKNOWN_INTERFACE
nieznany interfejs sieci, aInterfaceId
INET_ERROR_WRONG_ADDRESS_TYPE
aAddress nie ma wartości kIPAddressType_IPv4 ani kIPAddressType_IPv6 lub nie jest multiemisją
other
inny błąd systemu lub platformy

LeaveMulticastGroup

INET_ERROR LeaveMulticastGroup(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

Opuść grupę multiemisji IP.

Usuń punkt końcowy z podanej grupy multicast w określonym interfejsie.

Szczegóły
Parametry
[in] aInterfaceId
wskaźnik interfejsu sieci do usunięcia z grupy multiemisji
[in] aAddress
grupę multicast, z której ma zostać usunięty interfejs
Zwracane wartości
INET_NO_ERROR
sukces: usunięto grupę multicast
INET_ERROR_UNKNOWN_INTERFACE
nieznany interfejs sieci, aInterfaceId
INET_ERROR_WRONG_ADDRESS_TYPE
aAddress nie ma wartości kIPAddressType_IPv4 ani kIPAddressType_IPv6 lub nie jest multiemisją
other
inny błąd systemu lub platformy

SetMulticastLoopback

INET_ERROR SetMulticastLoopback(
  IPVersion aIPVersion,
  bool aLoopback
)

Określ, czy ruch multiemisji IP ma być zapętlony.

Określ, czy ruch multiemisji IP ma być zapętlony z powrotem do tego punktu końcowego.

Szczegóły
Parametry
[in] aIPVersion
[in] aLoop
Zwracane wartości
INET_NO_ERROR
sukces: ustawiono zachowanie pętli multicast
other
inny błąd systemu lub platformy

Funkcje chronione

Powiąż

INET_ERROR Bind(
  IPAddressType aAddressType,
  IPAddress aAddress,
  uint16_t aPort,
  InterfaceId aInterfaceId
)

BindInterface

INET_ERROR BindInterface(
  IPAddressType aAddressType,
  InterfaceId aInterfaceId
)

GetSocket

INET_ERROR GetSocket(
  IPAddressType aAddressType,
  int aType,
  int aProtocol
)

HandleDataReceived

void HandleDataReceived(
  Weave::System::PacketBuffer *aBuffer
)

HandlePendingIO

void HandlePendingIO(
  uint16_t aPort
)

Init

void Init(
  InetLayer *aInetLayer
)

PrepareIO

SocketEvents PrepareIO(
  void
)

SendMsg

INET_ERROR SendMsg(
  const IPPacketInfo *aPktInfo,
  Weave::System::PacketBuffer *aBuffer,
  uint16_t aSendFlags
)

Publiczne funkcje statyczne

FindNetifFromInterfaceId

struct netif * FindNetifFromInterfaceId(
  InterfaceId aInterfaceId
)

Chronione funkcje statyczne

GetPacketInfo

IPPacketInfo * GetPacketInfo(
  Weave::System::PacketBuffer *buf
)

Uzyskiwanie informacji o źródle i adresie docelowym warstwy IP LwIP.

Jeśli informacje o pakiecie LwIP są ukryte, w zarezerwowanej przestrzeni przed rozpoczęciem danych w buforze pakietów. Jest to konieczne, ponieważ zdarzenia warstwy systemowej mają tylko 2 argumenty, które w tym przypadku służą do przekazywania wskaźnika do punktu końcowego i bufora.

Szczegóły
Parametry
[in] aBuffer
bufor pakietów zawierający wiadomość IP
Zwroty
wskaźnik do danych adresowych w razie powodzenia; jeśli jest za mało miejsca w pakiecie na informacje adresowe, zwraca wartość NULL.

W większości przypadków ta metoda przechowywania informacji przed ich przekazaniem działa, ponieważ pierwszy bufor w wiadomości IP LwIP zawiera miejsce wykorzystane na nagłówki Ethernet/IP/UDP. Jednak ze względu na obecny rozmiar struktury IPPacketInfo (40 bajtów) może się okazać, że nie ma dość miejsca, by przechowywać strukturę wraz z ładunkiem w pojedynczym buforze pakietów. W praktyce powinno się to zdarzyć tylko w przypadku skrajnie dużych pakietów IPv4, które przychodzą bez nagłówka Ethernet.