nl:Inet::IPEndPointBasis

#include <src/inet/IPEndPointBasis.h>

Les objets de cette classe représentent des points de terminaison de protocole IP non instanciables.

Résumé

Inheritance

Hérite de : nl:Inet::EndPointBasis
Direct Subclasses :
nl:Inet::RawEndPoint
nl::In::UDPEndPoint)

Types publics

@8{
  kState_Ready = kBasisState_Closed,
  kState_Bound = 1,
  kState_Listening = 2,
  kState_Closed = 3
}
enum
État dynamique de base du point de terminaison sous-jacent.
@9{
  kSendFlag_RetainBuffer = 0x0040
}
enum
Indicateurs d'option de transmission pour la méthode SendMsg
OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo) CANNOT TRANSLATE
void(*
Type de fonction de gestion des événements de réception de SMS.
OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo) CANNOT TRANSLATE
void(*
Type de fonction de gestion des événements d'erreur de réception.

Attributs publics

OnMessageReceived
Délégué de la gestion des événements de réception des messages du point de terminaison.
OnReceiveError
Le délégué de la gestion des événements d'erreur reçoit le délégué du point de terminaison.
mState
enum nl::Inet::IPEndPointBasis::@8
État dynamique de base du point de terminaison sous-jacent.

Attributs protégés

mBoundIntfId
InterfaceId

Fonctions publiques

JoinMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
Rejoindre un groupe de multicast IP
LeaveMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
Quitter un groupe de multidiffusion IP.
SetMulticastLoopback(IPVersion aIPVersion, bool aLoopback)
Définit si le trafic de multicast IP doit être renvoyé en boucle.

Fonctions protégées

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)

Fonctions statiques publiques

FindNetifFromInterfaceId(InterfaceId aInterfaceId)
struct netif *

Fonctions statiques protégées

GetPacketInfo(Weave::System::PacketBuffer *buf)
Récupérez les informations sur la source et la destination de la couche d'adresse IP LwIP.

Types publics

@8

 @8

État dynamique de base du point de terminaison sous-jacent.

Les objets sont initialisés dans l'état &ready; passent à l'état & commencer par l'adresse locale, puis passer à l'état "liste pendant qu'ils ont été enregistrés pour gérer les événements à la réception des messages ICMP.

Remarque : L'énumération de l'état kBasisState_Closed est mappée avec kState_Ready pour des raisons de compatibilité binaire historiques. La balise kState_Closed existante permet d'identifier séparément la distinction entre "non ouvert" et "précédemment fermé", qui existait auparavant dans les états kState_Ready et kState_Closed.

Properties
kState_Bound

Le point de terminaison est lié, mais pas d'écoute.

kState_Closed

Point de terminaison fermé. Prêt pour la publication.

kState_Listening

Point de terminaison recevant des datagrammes.

kState_Ready

Le point de terminaison a été initialisé, mais n'a pas été ouvert.

@9

 @9

Indicateurs d'option de transmission pour la méthode SendMsg

Properties
kSendFlag_RetainBuffer

Ne mettez pas le message en file d'attente directement.

Mettez une copie en file d'attente.

OnMessageReceivedFunct.

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

Type de fonction de gestion des événements de réception de SMS.

Fournissez une fonction de ce type au délégué de OnMessageReceived pour traiter les événements de réception de texte du message sur endPoint, où msg est le texte du message reçu de l'expéditeur à l'adresse senderAddr.

Détails
Paramètres
[in] endPoint
Point de terminaison associé à l'événement.
[in] msg
Texte du message reçu.
[in] senderAddr
Adresse IP de l'expéditeur.

OnReceivedErrorFunct.

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

Type de fonction de gestion des événements d'erreur de réception.

Fournissez une fonction de ce type au membre délégué OnReceiveError afin de traiter les événements d'erreur de réception sur endPoint. L'argument err fournit des détails spécifiques sur le type de l'erreur.

Détails
Paramètres
[in] endPoint
Point de terminaison associé à l'événement.
[in] err
Motif de l'erreur.

Attributs publics

OnMessageReceived

OnMessageReceivedFunct OnMessageReceived

Délégué de la gestion des événements de réception des messages du point de terminaison.

Erreur de réception

OnReceiveErrorFunct OnReceiveError

Le délégué de la gestion des événements d'erreur reçoit le délégué du point de terminaison.

état mobile

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

État dynamique de base du point de terminaison sous-jacent.

Les objets sont initialisés dans l'état &ready; passent à l'état & commencer par l'adresse locale, puis passer à l'état "liste pendant qu'ils ont été enregistrés pour gérer les événements à la réception des messages ICMP.

Remarque : L'énumération de l'état kBasisState_Closed est mappée avec kState_Ready pour des raisons de compatibilité binaire historiques. La balise kState_Closed existante permet d'identifier séparément la distinction entre "non ouvert" et "précédemment fermé", qui existait auparavant dans les états kState_Ready et kState_Closed.

Attributs protégés

mBoundIntfId

InterfaceId mBoundIntfId

Fonctions publiques

Rejoindre un groupe multicast

INET_ERROR JoinMulticastGroup(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

Rejoindre un groupe de multicast IP

Associez le point de terminaison au groupe de multidiffusion fourni dans l'interface spécifiée.

Détails
Paramètres
[in] aInterfaceId
Indicateur de l'interface réseau à ajouter au groupe de diffusion multiple
[in] aAddress
le groupe multicast auquel ajouter l'interface.
Valeurs renvoyées
INET_NO_ERROR
opération réussie: groupe multicast supprimé
INET_ERROR_UNKNOWN_INTERFACE
Interface réseau inconnue, aInterfaceId
INET_ERROR_WRONG_ADDRESS_TYPE
aAddress n'est ni kIPAddressType_IPv4, kIPAddressType_IPv6, ni multicast
other
une autre erreur de système ou de plate-forme

Quitter MulticastGroup

INET_ERROR LeaveMulticastGroup(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

Quitter un groupe de multidiffusion IP.

Supprimez le point de terminaison du groupe de multidiffusion fourni sur l'interface spécifiée.

Détails
Paramètres
[in] aInterfaceId
Indicateur de l'interface réseau à supprimer du groupe de multidiffusion
[in] aAddress
le groupe multicast pour supprimer l'interface de
Valeurs renvoyées
INET_NO_ERROR
opération réussie: groupe multicast supprimé
INET_ERROR_UNKNOWN_INTERFACE
Interface réseau inconnue, aInterfaceId
INET_ERROR_WRONG_ADDRESS_TYPE
aAddress n'est ni kIPAddressType_IPv4, kIPAddressType_IPv6, ni multicast
other
une autre erreur de système ou de plate-forme

Définir MulticastLoopback

INET_ERROR SetMulticastLoopback(
  IPVersion aIPVersion,
  bool aLoopback
)

Définit si le trafic de multicast IP doit être renvoyé en boucle.

Indiquez si le trafic de multicast IP doit être renvoyé à ce point de terminaison.

Détails
Paramètres
[in] aIPVersion
[in] aLoop
Valeurs renvoyées
INET_NO_ERROR
opération réussie: comportement de bouclage multicast
other
une autre erreur de système ou de plate-forme

Fonctions protégées

Lier

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
)

Gérer les données reçues

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

Traitement en attente

void HandlePendingIO(
  uint16_t aPort
)

Init

void Init(
  InetLayer *aInetLayer
)

Préparation

SocketEvents PrepareIO(
  void
)

Envoyer un SMS

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

Fonctions statiques publiques

FindNetifFromInterfaceId

struct netif * FindNetifFromInterfaceId(
  InterfaceId aInterfaceId
)

Fonctions statiques protégées

GetPacketInfo (GetPacketInfo)

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

Récupérez les informations sur la source et la destination de la couche d'adresse IP LwIP.

Lorsque vous utilisez les informations LwIP sur le paquet, l'espace réservé est 'hidden' avant le début des données dans le tampon de paquets. Cette opération est nécessaire, car les événements de la couche système ne comportent que deux arguments, qui sont ici utilisés pour transmettre le pointeur vers le point de fin et le pointeur vers la mémoire tampon.

Détails
Paramètres
[in] aBuffer
le tampon du paquet contenant le message IP
Renvoie
Un pointeur vers les informations d'adresse en cas de réussite. Sinon, prend la valeur NULL si l'espace dans le paquet est insuffisant pour saisir l'adresse.

Dans la plupart des cas, cette astuce pour stocker les informations avant que les données ne fonctionnent, car le premier tampon d'un message d'adresse IP LwIP contient l'espace utilisé pour les en-têtes Ethernet/IP/UDP. Cependant, étant donné la taille actuelle de la structure IPPacketInfo (40 octets), il est possible qu'il n'y ait pas assez d'espace pour stocker la structure avec la charge utile dans un seul tampon de paquet. En pratique, cela ne doit se produire que pour les paquets IPv4 extrêmement volumineux qui arrivent sans en-tête Ethernet.