nl::Inet::IPEndPointBasis

#include <src/inet/IPEndPointBasis.h>

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

Podsumowanie

Dziedziczenie

Dziedziczy po: 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 punktu końcowego.
@9{
  kSendFlag_RetainBuffer = 0x0040
}
enum | typ wyliczeniowy
Flagi opcji przesyłania dla metody SendMsg.
OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo) typedef
void(*
Typ funkcji obsługi zdarzenia odbierania wiadomości.
OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo) typedef
void(*
Typ obsługi błędów związanych z odbiorem.

Atrybuty publiczne

OnMessageReceived
Przekazanie funkcji obsługi zdarzeń odbierania wiadomości przez punkt końcowy.
OnReceiveError
Przekazano funkcję obsługi zdarzeń punktu końcowego otrzymywaną przez funkcję punktu końcowego.
mState
enum nl::Inet::IPEndPointBasis::@8
Podstawowy stan dynamiczny 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ę Multicast IP.
SetMulticastLoopback(IPVersion aIPVersion, bool aLoopback)
Określ, czy ruch multicast w 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 warstwy adresu IP LwIP i miejscu docelowym.

Typy publiczne

@8

 @8

Podstawowy stan dynamiczny punktu końcowego.

Obiekty są inicjowane w stanie „Gotowe”, a potem po przełączeniu z adresem interfejsu lokalnego na stan „&&tt;bound"”. Następnie, gdy mają zarejestrowane kontynuacje zdarzeń obsługi wiadomości ICMP, przejdź do stanu „słuchaj”.

Uwaga: stan podany na liście kBasisState_Closed jest zmapowany na kState_Ready ze względu na historyczną zgodność z plikami binarnymi. Istniejąca kState_Closed umożliwia odróżnianie tych urządzeń jako rozróżnienia „nieotwarte jeszcze” i „wcześniej otwarte” jako zamknięte, które były wcześniej dostępne 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 i gotowy do opublikowania.

kState_Listening

Gram Datadata odbierający punkt końcowy.

kState_Ready

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

@9

 @9

Flagi opcji przesyłania dla metody SendMsg.

Właściwości
kSendFlag_RetainBuffer

Nie niszcz wiadomości bezpośrednio.

Dodaj kopię do kolejki.

OnMessageReceivedFunct

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

Typ funkcji obsługi zdarzenia odbierania wiadomości.

Zapewnij tej osobie funkcję tego typu w celu OnMessageReceived przekazywania dostępu do przetwarzania wiadomości tekstowych endPoint, gdzie msg to tekst wiadomości otrzymany od nadawcy w domenie senderAddr.

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

BłądOdejścia

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

Typ obsługi błędów związanych z odbiorem.

Udostępnij tę funkcję członkowi (OnReceiveError) w celu przetwarzania zdarzeń związanych z odbiorem w witrynie endPoint. Argument err zawiera szczegółowe informacje o typie błędu.

Szczegóły
Parametry
[in] endPoint
Punkt końcowy powiązany z wydarzeniem.
[in] err
Przyczyna błędu.

Atrybuty publiczne

OnMessageReceived

OnMessageReceivedFunct OnMessageReceived

Przekazanie funkcji obsługi zdarzeń odbierania wiadomości przez punkt końcowy.

Błąd onReceive

OnReceiveErrorFunct OnReceiveError

Przekazano funkcję obsługi zdarzeń punktu końcowego otrzymywaną przez funkcję punktu końcowego.

mState

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

Podstawowy stan dynamiczny punktu końcowego.

Obiekty są inicjowane w stanie „Gotowe”, a potem po przełączeniu z adresem interfejsu lokalnego na stan „&&tt;bound"”. Następnie, gdy mają zarejestrowane kontynuacje zdarzeń obsługi wiadomości ICMP, przejdź do stanu „słuchaj”.

Uwaga: stan podany na liście kBasisState_Closed jest zmapowany na kState_Ready ze względu na historyczną zgodność z plikami binarnymi. Istniejąca kState_Closed umożliwia odróżnianie tych urządzeń jako rozróżnienia „nieotwarte jeszcze” i „wcześniej otwarte” jako zamknięte, które były wcześniej dostępne w stanach kState_Ready i kState_Closed.

Atrybuty chronione

mBoundIntfId

InterfaceId mBoundIntfId

Funkcje publiczne

Dołącz do Multicast

INET_ERROR JoinMulticastGroup(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

Dołącz do grupy multiemisji IP.

Dołącz punkt końcowy do udostępnionej grupy multicast w podanym interfejsie.

Szczegóły
Parametry
[in] aInterfaceId
wskaźnik interfejsu sieciowego do dodania do grupy multiemisji
[in] aAddress
grupa multicast, aby dodać interfejs
Zwracane wartości
INET_NO_ERROR
sukces: grupa multicast została usunięta
INET_ERROR_UNKNOWN_INTERFACE
nieznany interfejs sieci, aInterfaceId
INET_ERROR_WRONG_ADDRESS_TYPE
aAddress nie jest typu kIPAddressType_IPv4 lub kIPAddressType_IPv6 albo nie jest multicastem
other
błąd innego systemu lub platformy

Opuść grupę multicast

INET_ERROR LeaveMulticastGroup(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

Opuść grupę Multicast IP.

Usuń punkt końcowy z udostępnianej grupy multicast w określonym interfejsie.

Szczegóły
Parametry
[in] aInterfaceId
wskaźnik interfejsu sieciowego do usunięcia z grupy multiemisji
[in] aAddress
grupa multicast, aby usunąć interfejs
Zwracane wartości
INET_NO_ERROR
sukces: grupa multicast została usunięta
INET_ERROR_UNKNOWN_INTERFACE
nieznany interfejs sieci, aInterfaceId
INET_ERROR_WRONG_ADDRESS_TYPE
aAddress nie jest typu kIPAddressType_IPv4 lub kIPAddressType_IPv6 albo nie jest multicastem
other
błąd innego systemu lub platformy

SetMulticastLoopback

INET_ERROR SetMulticastLoopback(
  IPVersion aIPVersion,
  bool aLoopback
)

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

Określ, czy ruch związany z multiemisją 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
powodzenie: ustawiono zapętlenia w trybie multicast
other
błąd innego systemu lub platformy

Funkcje chronione

Powiąż

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

Powiązanie

INET_ERROR BindInterface(
  IPAddressType aAddressType,
  InterfaceId aInterfaceId
)

Getsock

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

HandleDataReceived

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

HandlePendingIO

void HandlePendingIO(
  uint16_t aPort
)

Inicjacja

void Init(
  InetLayer *aInetLayer
)

PrzygotowanieIO

SocketEvents PrepareIO(
  void
)

SMS

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 warstwy adresu IP LwIP i miejscu docelowym.

Gdy korzystasz z informacji LwIP o pakiecie, znajduje się on w zarezerwowanym miejscu przed początkiem danych w buforze pakietów. Jest to konieczne, ponieważ zdarzenia warstwy systemowej mają tylko dwa argumenty, które w takim przypadku służą do przekazywania wskaźnika do punktu końcowego, a wskaźnika do bufora.

Szczegóły
Parametry
[in] aBuffer
bufor pakietów zawierający wiadomość IP
Zwroty
wskaźnikem adresu. Jeśli nie, umieść w pakiecie NULL, jeśli nie ma już wolnego miejsca na dane adresowe.

W większości przypadków te sztuczki są przechowywane, bo pierwszy bufor w wiadomości IP LwIP zawiera miejsce użyte w nagłówkach Ethernet/IP/UDP. Biorąc jednak pod uwagę obecny rozmiar struktury IPPacketInfo (40 bajtów), może się zdarzyć, że nie będzie wystarczającej ilości miejsca na zapisanie struktury wraz z ładunkiem w pojedynczym buforze pakietu. W praktyce dotyczy to tylko bardzo dużych pakietów IPv4, które są dostarczane bez nagłówka Ethernet.