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 SOCK_RAW sur Linux et les systèmes dérivés de BSD) ou les blocs de contrôle du protocole brut LwIP, car le système est configuré en conséquence.

Héritage

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

Attributs publics

IPProto
IPProtocol
du 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
Permet d'obtenir l'interface liée sur ce point de terminaison.
Listen(void)
Préparer 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)
Envoie 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

du protocole ICMP (Internet Control Message Protocol)

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

IPVer

IPVersion IPVer

Version du protocole Internet.

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

Fonctions publiques

Bind

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 de protocole de l'adresse IP
[in] addr
L'adresse IP (il doit s'agir d'une adresse d'interface)
[in] intfId
un indicateur d'interface réseau facultatif
Valeurs de retour
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 facultative n'est pas présente.
INET_ERROR_WRONG_PROTOCOL_TYPE
addrType ne correspond pas à IPVer.
INET_ERROR_WRONG_ADDRESS_TYPE
addrType correspond à kIPAddressType_Any, ou le type de addr n'est pas égal à addrType.
other
une autre erreur système ou de plate-forme

Sur LwIP, cette méthode ne doit pas être appelée avec le verrouillage de 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 de 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 permettant d'identifier le champ d'application de l'adresse.
[in] addr
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 (il doit s'agir d'une adresse d'interface)
Valeurs de retour
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
une autre erreur système ou de plate-forme
Renvoie
INET_NO_ERROR en cas de réussite, ou une erreur d'OS mappée en cas d'échec. Une liste de paramètres non valide peut entraîner l'erreur INET_ERROR_WRONG_ADDRESS_TYPE. Si le point de terminaison brut est déjà lié ou écoute, la fonction 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 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 de protocole de l'adresse IP.
[in] intf
de l'interface réseau.
Valeurs de retour
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
la mise en œuvre du système n'est pas terminée.
INET_ERROR_UNKNOWN_INTERFACE
Sur certaines plates-formes, l'interface n'est pas présente.
other
une autre erreur système ou de plate-forme

Sur LwIP, cette méthode ne doit pas être appelée avec le verrouillage de 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é, ce qui le supprime 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 pile LwIP déjà acquis.

Sans frais

void Free(
  void
)

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

Appel à la méthode Close, puis appelle 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 pile LwIP déjà acquis.

GetBoundInterface

InterfaceId GetBoundInterface(
  void
)

Permet d'obtenir l'interface liée sur ce point de terminaison.

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

Écouter

INET_ERROR Listen(
  void
)

Préparer 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, conformément à la sémantique de la plate-forme.

Détails
Valeurs de retour
INET_NO_ERROR
toujours renvoyé.

Sur LwIP, cette méthode ne doit pas être appelée avec le verrouillage de 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
tampon de paquets contenant le message UDP
[in] sendFlags
indicateurs d'option de transmission facultatifs
Valeurs de retour
INET_NO_ERROR
Réussite: msg est en file d'attente de transmission.
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 de l'interface liée n'ont pas de version de protocole ou 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 était mise en file d'attente pour transmission.
other
une autre erreur système ou de 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
)

Envoie 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
tampon de paquets contenant le message UDP
[in] sendFlags
indicateurs d'option de transmission facultatifs
Valeurs de retour
INET_NO_ERROR
Réussite: msg est en file d'attente de transmission.
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 de l'interface liée n'ont pas de version de protocole ou 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 était mise en file d'attente pour transmission.
other
une autre erreur système ou de 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 dans 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 de retour
INET_NO_ERROR
succès: paramètres de filtre définis
INET_ERROR_NOT_IMPLEMENTED
le système n'implémente pas
INET_ERROR_WRONG_ADDRESS_TYPE
point de terminaison différent du type IPv6
INET_ERROR_WRONG_PROTOCOL_TYPE
point de terminaison différent du type ICMP6
other
une autre erreur système ou de plate-forme