nl:: Inet:: IPEndPointBasis
#include <src/inet/IPEndPointBasis.h>
Objekte dieser Klasse stellen nicht instanziierbare IP-Protokollendpunkte dar.
Zusammenfassung
Übernahme
Übernimmt von: nl::Inet::EndPointBasisDirekte bekannte Unterklassen:
nl::Inet::RawEndPoint
nl::Inet::UDPEndPoint
Öffentliche Typen |
|
---|---|
@8{
|
enum Grundlegender dynamischer Status des zugrunde liegenden Endpunkts. |
@9{
|
enum Übertragungsoption-Flags für die Methode SendMsg . |
OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo)
|
typedefvoid(*
Typ der Funktion zur Verarbeitung von Nachrichtentextempfangsereignissen. |
OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo)
|
typedefvoid(*
Art der Funktion zur Verarbeitung von Empfangsfehlerereignis-Ereignissen. |
Öffentliche Attribute |
|
---|---|
OnMessageReceived
|
Der Funktionsdeleg für die Verarbeitung von Nachrichtenempfangsereignissen des Endpunkts.
|
OnReceiveError
|
Der Funktionsdeleg für die Verarbeitung von Fehlerereignissen beim Empfang des Endpunkts.
|
mState
|
enum nl::Inet::IPEndPointBasis::@8
Grundlegender dynamischer Status des zugrunde liegenden Endpunkts.
|
Geschützte Attribute |
|
---|---|
mBoundIntfId
|
InterfaceId
|
Öffentliche Funktionen |
|
---|---|
JoinMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
|
Treten Sie einer IP-Multicast-Gruppe bei.
|
LeaveMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
|
Verlassen Sie eine IP-Multicast-Gruppe.
|
SetMulticastLoopback(IPVersion aIPVersion, bool aLoopback)
|
Legen Sie fest, ob IP-Multicast-Traffic in einer Schleife zurückgeführt werden soll.
|
Geschützte Funktionen |
|
---|---|
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)
|
Öffentliche statische Funktionen |
|
---|---|
FindNetifFromInterfaceId(InterfaceId aInterfaceId)
|
struct netif *
|
Geschützte statische Funktionen |
|
---|---|
GetPacketInfo(Weave::System::PacketBuffer *buf)
|
Rufen Sie Informationen zur Quelle und zur Zieladressierung der LwIP-IP-Ebene ab.
|
Öffentliche Typen
@8
@8
Grundlegender dynamischer Status des zugrunde liegenden Endpunkts.
Objekte werden im Status „Bereit“ initialisiert. Nach der Bindung an eine lokale Schnittstellenadresse werden sie in den Status „gebunden“ versetzt. Anschließend wechseln sie in den Status „Warten“, wenn Fortsetzungen für die Verarbeitung von Ereignissen für den Empfang von ICMP-Nachrichten registriert sind.
Hinweis:Die Statusaufzählung kBasisState_Closed
wird aus Gründen der Kompatibilität mit Binärprogrammen kState_Ready
zugeordnet. Mit der vorhandenen Datei kState_Closed
lässt sich separat zwischen „noch nicht geöffnet“ und „zuvor geöffnet und jetzt geschlossen“ unterscheiden, die zuvor in den Status kState_Ready
und kState_Closed
vorhanden waren.
Attribute | |
---|---|
kState_Bound
|
Endpunktgebunden, wird aber nicht überwacht. |
kState_Closed
|
Endpunkt geschlossen, bereit für die Veröffentlichung. |
kState_Listening
|
Endpunkt empfängt Datagramme. |
kState_Ready
|
Endpunkt initialisiert, aber nicht geöffnet. |
@9
@9
Übertragungsoption-Flags für die Methode SendMsg
.
Attribute | |
---|---|
kSendFlag_RetainBuffer
|
Stellen Sie die Nachricht nicht destruktiv direkt in die Warteschlange. Eine Kopie in die Warteschlange stellen. |
OnMessageReceivedFunct
void(* OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo)
Typ der Funktion zur Verarbeitung von Nachrichtentextempfangsereignissen.
Stellen Sie dem Bevollmächtigten von OnMessageReceived
eine Funktion dieses Typs zur Verfügung, um Nachrichtentextempfangsereignisse in endPoint
zu verarbeiten, wobei msg
der Nachrichtentext ist, der vom Absender auf senderAddr
empfangen wurde.
Details | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
OnReceiveErrorFunct
void(* OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo)
Art der Funktion zur Verarbeitung von Empfangsfehlerereignis-Ereignissen.
Stellen Sie dem delegierten Mitglied von OnReceiveError
eine Funktion dieses Typs zur Verfügung, damit Empfangsfehlerereignisse auf endPoint
verarbeitet werden können. Das Argument err
liefert spezifische Details zum Fehlertyp.
Details | |||||
---|---|---|---|---|---|
Parameter |
|
Öffentliche Attribute
OnMessageReceived
OnMessageReceivedFunct OnMessageReceived
Der Funktionsdeleg für die Verarbeitung von Nachrichtenempfangsereignissen des Endpunkts.
OnReceiveError
OnReceiveErrorFunct OnReceiveError
Der Funktionsdeleg für die Verarbeitung von Fehlerereignissen beim Empfang des Endpunkts.
mState
enum nl::Inet::IPEndPointBasis::@8 mState
Grundlegender dynamischer Status des zugrunde liegenden Endpunkts.
Objekte werden im Status „Bereit“ initialisiert. Nach der Bindung an eine lokale Schnittstellenadresse werden sie in den Status „gebunden“ versetzt. Anschließend wechseln sie in den Status „Warten“, wenn Fortsetzungen für die Verarbeitung von Ereignissen für den Empfang von ICMP-Nachrichten registriert sind.
Hinweis:Die Statusaufzählung kBasisState_Closed
wird aus Gründen der Kompatibilität mit Binärprogrammen kState_Ready
zugeordnet. Mit der vorhandenen Datei kState_Closed
lässt sich separat zwischen „noch nicht geöffnet“ und „zuvor geöffnet und jetzt geschlossen“ unterscheiden, die zuvor in den Status kState_Ready
und kState_Closed
vorhanden waren.
Geschützte Attribute
mBoundIntfId
InterfaceId mBoundIntfId
Öffentliche Funktionen
JoinMulticastGroup
INET_ERROR JoinMulticastGroup( InterfaceId aInterfaceId, const IPAddress & aAddress )
Treten Sie einer IP-Multicast-Gruppe bei.
Verbinden Sie den Endpunkt mit der bereitgestellten Multicast-Gruppe auf der angegebenen Schnittstelle.
Details | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||
Rückgabewerte |
|
LeaveMulticastGroup
INET_ERROR LeaveMulticastGroup( InterfaceId aInterfaceId, const IPAddress & aAddress )
Verlassen Sie eine IP-Multicast-Gruppe.
Entfernen Sie den Endpunkt aus der angegebenen Multicast-Gruppe auf der angegebenen Schnittstelle.
Details | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||
Rückgabewerte |
|
SetMulticastLoopback
INET_ERROR SetMulticastLoopback( IPVersion aIPVersion, bool aLoopback )
Legen Sie fest, ob IP-Multicast-Traffic in einer Schleife zurückgeführt werden soll.
Legen Sie fest, ob IP-Multicast-Traffic an diesen Endpunkt zurückgeführt werden soll.
Details | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Rückgabewerte |
|
Geschützte Funktionen
Binden
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 )
Öffentliche statische Funktionen
FindNetifFromInterfaceId
struct netif * FindNetifFromInterfaceId( InterfaceId aInterfaceId )
Geschützte statische Funktionen
GetPacketInfo
IPPacketInfo * GetPacketInfo( Weave::System::PacketBuffer *buf )
Rufen Sie Informationen zur Quelle und zur Zieladressierung der LwIP-IP-Ebene ab.
Bei Verwendung von LwIP sind Informationen über das Paket im reservierten Bereich vor dem Beginn der Daten im Paketzwischenspeicher „verborgen“. Dies ist erforderlich, da die Ereignisse der Systemebene nur zwei Argumente haben, die in diesem Fall verwendet werden, um den Zeiger zum Endpunkt und den Zeiger an den Puffer zu übergeben.
Details | |||
---|---|---|---|
Parameter |
|
||
Rückgabe |
Ein Zeiger auf die Adressinformationen bei Erfolg. Andernfalls NULL, wenn im Paket nicht genügend Speicherplatz für die Adressinformationen vorhanden ist.
|
In den meisten Fällen funktioniert dieser Trick, Informationen vor den Daten zu speichern, da der erste Puffer in einer LwIP-IP-Nachricht den Speicherplatz enthält, der für die Ethernet/IP/UDP-Header verwendet wurde. Angesichts der aktuellen Größe der IPPacketInfo-Struktur (40 Byte) ist es möglich, dass nicht genügend Platz vorhanden ist, um die Struktur zusammen mit der Nutzlast in einem einzelnen Paketpuffer zu speichern. In der Praxis sollte dies nur bei extrem großen IPv4-Paketen passieren, die ohne Ethernet-Header eingehen.