nl::Inet::RawEndPoint

#include <src/inet/RawEndPoint.h>

Les objets de cette classe représentent les points de terminaison bruts du réseau IP.

Résumé

La couche Nest Inet encapsule les méthodes d'interaction avec les points de terminaison du réseau IP (sockets SOCKS_RAW sur les systèmes Linux et dérivés de BSD) ou avec les blocs de contrôle de protocole brut LwIP, car le système est configuré en conséquence.

Héritage

Hérite de: nl::Inet::IPEndPointBasis

Attributs publics

IPProto
IPProtocol
le protocole ICMP (Internet Control Message Protocol)
IPVer
IPVersion
Version du protocole Internet.

Fonctions publiques

Bind(IPAddressType addrType, IPAddress addr, InterfaceId intfId)
Liez le point de terminaison à une adresse IP d'interface.
BindIPv6LinkLocal(InterfaceId intf, IPAddress addr)
Liez le point de terminaison brut à une adresse de champ d'application de liaison locale IPv6 au niveau de l'index d'interface spécifié.
BindInterface(IPAddressType addrType, InterfaceId intf)
Liez le point de terminaison à une interface réseau.
Close(void)
void
Fermez le point de terminaison.
Free(void)
void
Fermez le point de terminaison et recyclez sa mémoire.
GetBoundInterface(void)
InterfaceId
Obtenez l'interface liée à ce point de terminaison.
Listen(void)
Préparez le point de terminaison pour recevoir des messages ICMP.
SendMsg(const IPPacketInfo *pktInfo, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
Envoie un message ICMP à la destination spécifiée.
SendTo(IPAddress addr, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
Synonyme de SendTo(addr, INET_NULL_INTERFACEID, msg, sendFlags).
SendTo(IPAddress addr, InterfaceId intfId, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
Envoyez un message ICMP à l'adresse de destination spécifiée.
SetICMPFilter(uint8_t numICMPTypes, const uint8_t *aICMPTypes)
Définissez les paramètres de filtre ICMP6 dans la pile réseau.

Attributs publics

IPProto

IPProtocol IPProto

le protocole ICMP (Internet Control Message Protocol)

Bien que ce champ soit une variable de classe modifiable, il est invariant par rapport à la classe : il ne doit pas être modifié.

IPVer

IPVersion IPVer

Version du protocole Internet.

Bien que ce champ soit une variable de classe modifiable, il est invariant par rapport à la classe : il ne doit pas être modifié.

Fonctions publiques

Lier

INET_ERROR Bind(
  IPAddressType addrType,
  IPAddress addr,
  InterfaceId intfId
)

Liez le point de terminaison à une adresse IP d'interface.

Lie le point de terminaison à l'adresse IP de l'interface réseau spécifiée.

Détails
Paramètres
[in] addrType
La version du protocole de l'adresse IP
[in] addr
L'adresse IP (doit être une adresse d'interface)
[in] intfId
un indicateur d'interface réseau facultatif
Valeurs renvoyées
INET_NO_ERROR
réussite: point de terminaison lié à l'adresse
INET_ERROR_INCORRECT_STATE
le point de terminaison a déjà été lié
INET_NO_MEMORY
Mémoire insuffisante pour le point de terminaison
INET_ERROR_UNKNOWN_INTERFACE
Sur certaines plates-formes, l'interface spécifiée en option n'est pas présente.
INET_ERROR_WRONG_PROTOCOL_TYPE
addrType ne correspond pas à IPVer.
INET_ERROR_WRONG_ADDRESS_TYPE
addrType est kIPAddressType_Any, ou le type de addr n'est pas égal à addrType.
other
autre erreur système ou plate-forme

Sur LwIP, cette méthode ne doit pas être appelée avec le verrouillage de la pile LwIP déjà acquis.

BindIPv6LinkLocal

INET_ERROR BindIPv6LinkLocal(
  InterfaceId intf,
  IPAddress addr
)

Liez le point de terminaison brut à une adresse de champ d'application de liaison locale IPv6 au niveau de l'index d'interface spécifié.

Définit également diverses options de socket IPv6 appropriées pour la transmission de paquets vers et depuis des destinations sur la liaison.

Lie le point de terminaison à l'adresse de liaison locale IPv6 addr sur l'interface réseau indiquée par intf.

Détails
Paramètres
[in] intf
InterfaceId pour identifier le champ d'application de l'adresse.
[in] addr
Un objet IPAddress de champ d'application de liaison locale IPv6.
Paramètres
[in] intf
l'indicateur de l'interface réseau
[in] addr
L'adresse IP (doit être une adresse d'interface)
Valeurs renvoyées
INET_NO_ERROR
réussite: point de terminaison lié à l'adresse
INET_ERROR_INCORRECT_STATE
le point de terminaison a déjà été lié
INET_NO_MEMORY
Mémoire insuffisante pour le point de terminaison
INET_ERROR_WRONG_PROTOCOL_TYPE
addrType ne correspond pas à IPVer.
INET_ERROR_WRONG_ADDRESS_TYPE
addr n'est pas une adresse de liaison locale IPv6 ou intf est INET_NULL_INTERFACEID.
other
autre erreur système ou plate-forme
Renvoie
INET_NO_ERROR en cas de réussite, ou une erreur de système d'exploitation mappée en cas d'échec. Une liste de paramètres non valide peut générer INET_ERROR_WRONG_ADDRESS_TYPE. Si le point de terminaison brut est déjà lié ou à l'écoute, il renvoie INET_ERROR_INCORRECT_STATE. Liez le point de terminaison à une adresse de liaison locale IPv6 d'interface.

Sur LwIP, cette méthode ne doit pas être appelée avec le verrouillage de la pile LwIP déjà acquis.

BindInterface

INET_ERROR BindInterface(
  IPAddressType addrType,
  InterfaceId intf
)

Liez le point de terminaison à une interface réseau.

Lie le point de terminaison à l'adresse IP de l'interface réseau spécifiée.

Détails
Paramètres
[in] addrType
la version du protocole de l'adresse IP.
[in] intf
un indicateur de l'interface réseau.
Valeurs renvoyées
INET_NO_ERROR
réussite: point de terminaison lié à l'adresse
INET_NO_MEMORY
Mémoire insuffisante pour le point de terminaison
INET_ERROR_NOT_IMPLEMENTED
l'implémentation du système n'est pas terminée.
INET_ERROR_UNKNOWN_INTERFACE
Sur certaines plates-formes, l'interface n'est pas présente.
other
autre erreur système ou plate-forme

Sur LwIP, cette méthode ne doit pas être appelée avec le verrouillage de la pile LwIP déjà acquis.

Fermer

void Close(
  void
)

Fermez le point de terminaison.

Si la valeur est mState != kState_Closed, le point de terminaison est fermé en le supprimant de l'ensemble des points de terminaison éligibles aux événements de communication.

Sur les systèmes LwIP, cette méthode ne doit pas être appelée avec le verrouillage de la pile LwIP déjà acquis.

Gratuit

void Free(
  void
)

Fermez le point de terminaison et recyclez sa mémoire.

Elle appelle la méthode Close, puis la méthode InetLayerBasis::Release pour renvoyer l'objet dans son pool de mémoire.

Sur les systèmes LwIP, cette méthode ne doit pas être appelée avec le verrouillage de la pile LwIP déjà acquis.

GetBoundInterface

InterfaceId GetBoundInterface(
  void
)

Obtenez l'interface liée à ce point de terminaison.

Détails
Renvoie
InterfaceId : identifiant de l'interface liée.

Écouter

INET_ERROR Listen(
  void
)

Préparez le point de terminaison pour recevoir des messages ICMP.

Si mState est déjà défini sur kState_Listening, aucune opération n'est effectuée. Sinon, mState est défini sur kState_Listening et le point de terminaison est prêt à recevoir des messages ICMPv6, selon la sémantique de la plate-forme.

Détails
Valeurs renvoyées
INET_NO_ERROR
toujours renvoyé.

Sur LwIP, cette méthode ne doit pas être appelée avec le verrouillage de la pile LwIP déjà acquis

SendMsg

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

Envoie un message ICMP à la destination spécifiée.

 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.

Détails
Paramètres
[in] pktInfo
informations sur la destination du message
[in] msg
le tampon de paquet contenant le message UDP
[in] sendFlags
indicateurs d'option de transmission facultatifs
Valeurs renvoyées
INET_NO_ERROR
réussite: msg est mis en file d'attente pour envoi.
INET_ERROR_NOT_SUPPORTED
le système ne prend pas en charge l'opération demandée.
INET_ERROR_WRONG_ADDRESS_TYPE
l'adresse de destination et l'adresse d'interface liée n'ont pas de version de protocole ni de type d'adresse correspondants.
INET_ERROR_MESSAGE_TOO_LONG
msg ne contient pas l'intégralité du message ICMP.
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
Sur certaines plates-formes, seule une partie tronquée de msg a été mise en file d'attente pour envoi.
other
autre erreur système ou plate-forme

SendTo

INET_ERROR SendTo(
  IPAddress addr,
  Weave::System::PacketBuffer *msg,
  uint16_t sendFlags
)

Synonyme de SendTo(addr, INET_NULL_INTERFACEID, msg, sendFlags).

SendTo

INET_ERROR SendTo(
  IPAddress addr,
  InterfaceId intfId,
  Weave::System::PacketBuffer *msg,
  uint16_t sendFlags
)

Envoyez un message ICMP à l'adresse de destination spécifiée.

 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.

Détails
Paramètres
[in] addr
l'adresse IP de destination
[in] intfId
un indicateur d'interface réseau facultatif
[in] msg
le tampon de paquet contenant le message UDP
[in] sendFlags
indicateurs d'option de transmission facultatifs
Valeurs renvoyées
INET_NO_ERROR
réussite: msg est mis en file d'attente pour envoi.
INET_ERROR_NOT_SUPPORTED
le système ne prend pas en charge l'opération demandée.
INET_ERROR_WRONG_ADDRESS_TYPE
l'adresse de destination et l'adresse d'interface liée n'ont pas de version de protocole ni de type d'adresse correspondants.
INET_ERROR_MESSAGE_TOO_LONG
msg ne contient pas l'intégralité du message ICMP.
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
Sur certaines plates-formes, seule une partie tronquée de msg a été mise en file d'attente pour envoi.
other
autre erreur système ou plate-forme

SetICMPFilter

INET_ERROR SetICMPFilter(
  uint8_t numICMPTypes,
  const uint8_t *aICMPTypes
)

Définissez les paramètres de filtre ICMP6 dans la pile réseau.

Appliquez les paramètres de filtrage ICMPv6 pour les codes de aICMPTypes au point de terminaison sous-jacent de la pile réseau du système.

Détails
Paramètres
[in] numICMPTypes
longueur du tableau à aICMPTypes
[in] aICMPTypes
l'ensemble de codes de type ICMPv6 à filtrer.
Valeurs renvoyées
INET_NO_ERROR
réussite: paramètres du filtre définis
INET_ERROR_NOT_IMPLEMENTED
n'implémente pas
INET_ERROR_WRONG_ADDRESS_TYPE
point de terminaison non de type IPv6
INET_ERROR_WRONG_PROTOCOL_TYPE
Le point de terminaison n'est pas de type ICMP6
other
autre erreur système ou plate-forme