nl::Inet

Résumé

Énumérations

@7{
  kInetEvent_TCPConnectComplete = _INET_CONFIG_EVENT(0),
  kInetEvent_TCPConnectionReceived = _INET_CONFIG_EVENT(1),
  kInetEvent_TCPDataReceived = _INET_CONFIG_EVENT(2),
  kInetEvent_TCPDataSent = _INET_CONFIG_EVENT(3),
  kInetEvent_TCPError = _INET_CONFIG_EVENT(4),
  kInetEvent_UDPDataReceived = _INET_CONFIG_EVENT(5),
  kInetEvent_DNSResolveComplete = _INET_CONFIG_EVENT(6),
  kInetEvent_TunDataReceived = _INET_CONFIG_EVENT(7),
  kInetEvent_RawDataReceived = _INET_CONFIG_EVENT(8)
}
énum
Définitions des types d'événements de la couche Inet
DNSOptions{
  kDNSOption_AddrFamily_Mask = 0x07,
  kDNSOption_Flags_Mask = 0xF8,
  kDNSOption_AddrFamily_Any = 0x00,
  kDNSOption_AddrFamily_IPv4Only = 0x01,
  kDNSOption_AddrFamily_IPv4Preferred = 0x02,
  kDNSOption_AddrFamily_IPv6Only = 0x03,
  kDNSOption_AddrFamily_IPv6Preferred = 0x04,
  kDNSOption_ValidFlags = 0
}
énum
Options contrôlant le fonctionnement de la résolution d'adresses IP.
IPAddressType{
  kIPAddressType_Unknown = 0,
  kIPAddressType_IPv4 = 1,
  kIPAddressType_IPv6 = 2,
  kIPAddressType_Any = 3
}
énum
Famille d'adresses IP.
IPProtocol{
  kIPProtocol_ICMPv6 = 58,
  kIPProtocol_ICMPv4 = 1
}
énum
Les numéros de certains des protocoles de la famille IP.
IPV6MulticastGroup{
  kIPV6MulticastGroup_AllRouters = 2
}
énum
Identifiants de groupe de multidiffusion du protocole Internet.
IPVersion{
  kIPVersion_6 = 6,
  kIPVersion_4 = 4
}
énum
Version du protocole IP utilisé.
IPv6MulticastFlag{
  kIPv6MulticastFlag_Transient = 0x01,
  kIPv6MulticastFlag_Prefix = 0x02
}
énum
Options de multidiffusion du protocole Internet v6
IPv6MulticastScope{
  kIPv6MulticastScope_Interface = 1,
  kIPv6MulticastScope_Link = 2,
  kIPv6MulticastScope_IPv4 = 3,
  kIPv6MulticastScope_Admin = 4,
  kIPv6MulticastScope_Site = 5,
  kIPv6MulticastScope_Organization = 8,
  kIPv6MulticastScope_Global = 14
}
énum
Champ d'application de l'adresse multicast de protocole Internet.

Typedefs

InterfaceId typedef
struct netif *
Indicateur pour les interfaces réseau du système.

Variables

sIOCTLSocket = -1
int

Fonctions

CheckMulticastGroupArgs(InterfaceId aInterfaceId, const IPAddress & aAddress)
CloseIOCTLSocket(void)
void
Fermez le socket global créé par GetIOCTLSocket.
FormatInetLayerError(char *buf, uint16_t bufSize, int32_t err)
bool
Pour une erreur de couche Inet, renvoie une chaîne C se terminant par une valeur NULL lisible par l'humain et décrivant l'erreur.
GetIOCTLSocket(void)
int
Renvoie un socket global à usage général utile pour appeler certains IOCTL réseau.
GetInterfaceName(InterfaceId intfId, char *nameBuf, size_t nameBufSize)
NL_DLL_EXPORT INET_ERROR
Obtenez le nom d'une interface réseau.
INET_IsInetEvent(Weave::System::EventType aType)
bool
Vérifiez si System::EventType est un type d'événement de couche Inet valide.
InterfaceNameToId(const char *intfName, InterfaceId & intfId)
NL_DLL_EXPORT INET_ERROR
Recherchez le nom indiqué dans la liste des interfaces réseau.
LwIPBindInterface(struct raw_pcb *aRaw, InterfaceId intfId)
LwIPBindInterface(struct udp_pcb *aUDP, InterfaceId intfId)
NetmaskToPrefixLength(const uint8_t *netmask, uint16_t netmaskLen)
uint8_t
Calculez la longueur d'un préfixe à partir d'un masque de réseau de longueur variable.
ParseHostAndPort(const char *aString, uint16_t aStringLen, const char *& aHost, uint16_t & aHostLen, uint16_t & aPort)
Analysez une chaîne lisible contenant un hôte ou une adresse IP et un numéro de port facultatif (séparé par le caractère ":"), prenant en charge les formats suivants:
ParseHostPortAndInterface(const char *aString, uint16_t aStringLen, const char *& aHost, uint16_t & aHostLen, uint16_t & aPort, const char *& aInterface, uint16_t & aInterfaceLen)
Analysez une chaîne lisible contenant un hôte ou une adresse IP, un numéro de port facultatif (séparé par le ':') et un nom d'interface facultatif (séparé par le ''), prenant en charge les formats suivants:
RegisterInetLayerErrorFormatter(void)
void
Enregistre un outil de mise en forme des erreurs de texte pour les erreurs de couche Inet.
SocketsIPv4JoinLeaveMulticastGroup(int aSocket, InterfaceId aInterfaceId, const IPAddress & aAddress, int aCommand)
SocketsIPv6JoinLeaveMulticastGroup(int aSocket, InterfaceId aInterfaceId, const IPAddress & aAddress, int aCommand)
SocketsSetMulticastLoopback(int aSocket, bool aLoopback, int aProtocol, int aOption)
SocketsSetMulticastLoopback(int aSocket, IPVersion aIPVersion, bool aLoopback)

Classes

nl::Inet::AsyncDNSResolverSockets

Il s'agit d'une classe interne à InetLayer qui fournit des API d'assistance pour la résolution DNS (Asynchronous Domain Name System) dans InetLayer.

nl::Inet::DNSResolver

Il s'agit d'une classe interne à InetLayer qui fournit l'abstraction de la résolution DNS (Domain Name System) dans InetLayer.

nl::Inet::EndPointBasis

Base des classes de points de terminaison du transport Internet.

nl::Inet::IPAddress

son adresse IP.

nl::Inet::IPEndPointBasis

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

nl::Inet::IPPacketInfo

Informations sur un message ou une connexion entrant/sortant.

nl::Inet::IPPrefix

Préfixe d'adresse de protocole Internet.

nl::Inet::InetLayer

Cela permet d'accéder aux services Internet, y compris les minuteurs, la résolution DNS (Domain Name System), le transport réseau TCP, le transport réseau UDP et le transport réseau brut, pour un seul thread.

nl::Inet::InetLayerBasis

Il s'agit de la classe de base des objets comptabilisés par référence qui sont gérés par un objet InetLayer.

nl::Inet::InterfaceAddressIterator

Itérateur pour la liste des adresses IP de l'interface réseau du système

nl::Inet::InterfaceIterator

Itérateur de la liste des interfaces réseau du système

nl::Inet::RawEndPoint

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

nl::Inet::SocketEvents

Représente un ensemble d'événements d'E/S demandés/en attente sur un socket.

nl::Inet::TCPEndPoint

Les objets de cette classe représentent les points de terminaison de transport TCP.

nl::Inet::TunEndPoint

Les objets de cette classe représentent des interfaces de tunnel.

nl::Inet::UDPEndPoint

Les objets de cette classe représentent les points de terminaison de transport UDP.

Union

nl::Inet::PeerSockAddr

Espaces de noms

nl::Inet::Platform

Énumérations

@7

 @7

Définitions des types d'événements de la couche Inet

Propriétés
kInetEvent_DNSResolveComplete

Événement d'achèvement de la résolution du nom DNS.

kInetEvent_RawDataReceived

Événement de réception de données sur un point de terminaison brut InetLayer.

kInetEvent_TCPConnectComplete

Événement d'achèvement de la connexion TCP.

kInetEvent_TCPConnectionReceived

Événement pour la réception d'une connexion TCP.

kInetEvent_TCPDataReceived

Événement de réception de données via une connexion TCP.

kInetEvent_TCPDataSent

Événement lié à la transmission de données via une connexion TCP.

kInetEvent_TCPError

Événement lié à une erreur sur une connexion TCP.

kInetEvent_TunDataReceived

Événement de réception de données via un tunnel Weave.

kInetEvent_UDPDataReceived

Événement de réception de données sur UDP.

DNSOptions

 DNSOptions

Options contrôlant le fonctionnement de la résolution d'adresses IP.

Propriétés
kDNSOption_AddrFamily_Any

Renvoie les adresses IPv4 et/ou IPv6 dans l'ordre renvoyé par le serveur de noms.

kDNSOption_AddrFamily_IPv4Only

Renvoyez uniquement des adresses IPv4.

kDNSOption_AddrFamily_IPv4Preferred

Renvoie des adresses IPv4 et/ou IPv6, les adresses IPv4 figurant en premier.

kDNSOption_AddrFamily_IPv6Only

Renvoyez uniquement des adresses IPv6.

kDNSOption_AddrFamily_IPv6Preferred

Renvoie des adresses IPv4 et/ou IPv6, les adresses IPv6 figurant en premier.

kDNSOption_AddrFamily_Mask

Bits situés dans une valeur entière DNSOptions représentant la famille d'adresses souhaitée.

kDNSOption_Flags_Mask

Bits d'une valeur entière DNSOptions réservés aux indicateurs.

kDNSOption_ValidFlags

Ensemble de tous les indicateurs DNSOption valides.

IPAddressType

 IPAddressType

Famille d'adresses IP.

Les valeurs de type IPAddressType sont renvoyées par la méthode IPAddress::Type(). Ils indiquent la famille d'adresses associée à l'utilisation de l'adresse.

Propriétés
kIPAddressType_Any

Adresse Internet non spécifiée (indépendante de la version du protocole)

kIPAddressType_IPv4

Protocole Internet version 4.

kIPAddressType_IPv6

Protocole Internet version 6.

kIPAddressType_Unknown

Non utilisé.

IPProtocol

 IPProtocol

Les numéros de certains des protocoles de la famille IP.

Propriétés
kIPProtocol_ICMPv4

ICMPv4.

kIPProtocol_ICMPv6

ICMPv6.

IPV6MulticastGroup

 IPV6MulticastGroup

Identifiants de groupe de multidiffusion de protocole Internet.

Les valeurs de type IPV6MulticastGroup permettent d'appeler la méthode IPAddress::MakeIPv6Multicast(). Ils indiquent des identifiants de groupe distingués enregistrés par l'IETF auprès de l'IANA.

Propriétés
kIPV6MulticastGroup_AllRouters

RFC 4291.

IPVersion

 IPVersion

Version du protocole IP utilisé.

Propriétés
kIPVersion_4

IPv4 :

kIPVersion_6

IPv6 :

IPv6MulticastFlag

 IPv6MulticastFlag

Options de multidiffusion du protocole Internet v6

Les valeurs du type IPv6MulticastFlag sont utilisées pour appeler les méthodes IPAddress::MakeIPv6Multicast(). Elles indiquent le type d'adresse de multidiffusion IPv6 à créer. Ces numéros sont enregistrés par l'IETF auprès de l'IANA.

Propriétés
kIPv6MulticastFlag_Prefix

L'adresse de multidiffusion est (1) basée sur un préfixe de réseau.

kIPv6MulticastFlag_Transient

L'adresse de multidiffusion est (1) transitoire (c'est-à-dire attribuée dynamiquement) au lieu de (0) connue (c'est-à-dire attribuée par l'IANA).

IPv6MulticastScope

 IPv6MulticastScope

Champ d'application de l'adresse multicast de protocole Internet.

Les valeurs de type IPv6MulticastScope permettent d'appeler la méthode IPAddress::MakeIPv6Multicast(). Ils indiquent l'étendue routable du groupe de multidiffusion désigné par le résultat. Ces numéros sont enregistrés par l'IETF auprès de l'IANA.

Propriétés
kIPv6MulticastScope_Admin

Champ d'application local du domaine.

kIPv6MulticastScope_Global

Champ d'application global.

kIPv6MulticastScope_IPv4

Champ d'application du domaine local ("IPv4").

kIPv6MulticastScope_Interface

Champ d'application de l'interface locale.

kIPv6MulticastScope_Link

Champ d'application de type "Lien local".

kIPv6MulticastScope_Organization

Champ d'application local de l'organisation.

kIPv6MulticastScope_Site

Champ d'application local du domaine.

Typedefs

InterfaceId

struct netif * InterfaceId

Indicateur pour les interfaces réseau du système.

Pour assurer la portabilité, vous devez ne jamais être témoin de cet alias. À l'avenir, elle pourra être remplacée par une classe opaque concrète.

Remarque: Le terme "identifiant d'interface" fait également référence de manière conventionnelle aux 64 bits inférieurs d'une adresse IPv6 dans tous les documents pertinents des normes IETF, où l'abréviation "IID" est souvent utilisée. Dans ce texte, le terme « indicateur d'interface » fait référence aux valeurs de ce type d'alias.

Variables

sIOCTLSocket

int sIOCTLSocket = -1

Fonctions

CheckMulticastGroupArgs

INET_ERROR CheckMulticastGroupArgs(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

CloseIOCTLSocket

void CloseIOCTLSocket(
  void
)

Fermez le socket global créé par GetIOCTLSocket.

Cette fonction est fournie lorsque le fait de laisser le socket IOCTL mondial ouvert serait considéré comme une fuite.

Remarque: Cette fonction n'est PAS thread-safe pour GetIOCTLSocket.

FormatInetLayerError

bool FormatInetLayerError(
  char *buf,
  uint16_t bufSize,
  int32_t err
)

Pour une erreur de couche Inet, renvoie une chaîne C se terminant par une valeur NULL lisible par l'humain et décrivant l'erreur.

Détails
Paramètres
[in] buf
Tampon dans lequel la chaîne d'erreur sera placée.
[in] bufSize
Taille du tampon fourni en octets.
[in] err
Erreur à décrire.
Renvoie
"true" si une chaîne de description a été écrite dans le tampon fourni.
Renvoie
"false" si l'erreur fournie n'était pas une erreur de couche Inet.

GetIOCTLSocket

int GetIOCTLSocket(
  void
)

Renvoie un socket global à usage général utile pour appeler certains IOCTL réseau.

Cette fonction est thread-safe sur toutes les plates-formes.

GetInterfaceName

NL_DLL_EXPORT INET_ERROR GetInterfaceName(
  InterfaceId intfId,
  char *nameBuf,
  size_t nameBufSize
)

Obtenez le nom d'une interface réseau.

Writes the name of the network interface as \c NUL terminated text string
at \c nameBuf. The name of the unspecified network interface is the empty
string.

Détails
Paramètres
[in] intfId
une interface réseau
[in] nameBuf
de la mémoire pour écrire le nom de l'interface
[in] nameBufSize
taille de la région indiquée par nameBuf
Valeurs renvoyées
INET_NO_ERROR
résultat réussi, nom de l'interface écrit
INET_ERROR_NO_MEMORY
le nom est trop volumineux pour être écrit dans la mémoire tampon
other
autre erreur système ou plate-forme

INET_IsInetEvent

bool INET_IsInetEvent(
  Weave::System::EventType aType
)

Vérifiez si System::EventType est un type d'événement de couche Inet valide.

Détails
Paramètres
[in] aType
Événement de type "Couche système Weave".
Renvoie
"true" si la valeur est comprise dans la plage énumérée ; sinon, "false".

InterfaceNameToId

NL_DLL_EXPORT INET_ERROR InterfaceNameToId(
  const char *intfName,
  InterfaceId & intfId
)

Recherchez le nom indiqué dans la liste des interfaces réseau.

On LwIP, this function must be called with the LwIP stack lock acquired.

The \c intfId parameter is not updated unless the value returned is
\c INET_NO_ERROR. It should be initialized with \c INET_NULL_INTERFACEID
before calling this function.

Détails
Paramètres
[in] intfName
nom de l'interface réseau pour trouver
[out] intfId
de l'interface réseau pour attribuer
Valeurs renvoyées
INET_NO_ERROR
réussi, l'interface réseau indique
INET_ERROR_UNKNOWN_INTERFACE
aucune interface réseau trouvée
other
autre erreur système ou plate-forme

LwIPBindInterface

INET_ERROR LwIPBindInterface(
  struct raw_pcb *aRaw,
  InterfaceId intfId
)

LwIPBindInterface

INET_ERROR LwIPBindInterface(
  struct udp_pcb *aUDP,
  InterfaceId intfId
)

NetmaskToPrefixLength

uint8_t NetmaskToPrefixLength(
  const uint8_t *netmask,
  uint16_t netmaskLen
)

Calculez la longueur d'un préfixe à partir d'un masque de réseau de longueur variable.

ParseHostAndPort

INET_ERROR ParseHostAndPort(
  const char *aString,
  uint16_t aStringLen,
  const char *& aHost,
  uint16_t & aHostLen,
  uint16_t & aPort
)

Analysez une chaîne lisible contenant un hôte ou une adresse IP et un numéro de port facultatif (séparé par le caractère ":"), prenant en charge les formats suivants:

  • :
  • :
  • []:

Détails
Paramètres
[in] aString
Chaîne fiable à analyser.
[in] aStringLen
Longueur, en caractères, d'une chaîne.
[out] aHost
Pointeur vers la partie nom d'hôte de la chaîne analysée.
[out] aHostLen
Longueur, en caractères, d'un Host.
[out] aPort
Numéro de port, s'il est présent et correctement analysé sinon, 0.
Renvoie
INET_ERROR_INVALID_HOST_NAME Si l'entrée à analyser est de longueur nulle ou n'est pas rédigée correctement.
Renvoie
INET_ERROR_HOST_NAME_TOO_LONG Si le nom d'hôte dépasse 253 caractères.
Renvoie
INET_NO_ERROR En cas de réussite.

ParseHostPortAndInterface

INET_ERROR ParseHostPortAndInterface(
  const char *aString,
  uint16_t aStringLen,
  const char *& aHost,
  uint16_t & aHostLen,
  uint16_t & aPort,
  const char *& aInterface,
  uint16_t & aInterfaceLen
)

Analysez une chaîne lisible contenant un hôte ou une adresse IP, un numéro de port facultatif (séparé par le ':') et un nom d'interface facultatif (séparé par le ''), prenant en charge les formats suivants:

  • %
  • :
  • :%
  • %
  • :
  • :%
  • %
  • []:
  • []:%

Détails
Paramètres
[in] aString
Chaîne fiable à analyser.
[in] aStringLen
Longueur, en caractères, d'une chaîne.
[out] aHost
Pointeur vers la partie nom d'hôte de la chaîne analysée.
[out] aHostLen
Longueur, en caractères, d'un Host.
[out] aPort
Numéro de port, s'il est présent et correctement analysé sinon, 0.
[out] aInterface
Pointeur vers la partie interface de la chaîne analysée.
[out] aInterfaceLen
La longueur, en caractères, d'uneInterface.
Renvoie
INET_ERROR_INVALID_HOST_NAME Si l'entrée à analyser est de longueur nulle ou n'est pas rédigée correctement.
Renvoie
INET_ERROR_HOST_NAME_TOO_LONG Si le nom d'hôte dépasse 253 caractères.
Renvoie
INET_NO_ERROR En cas de réussite.

RegisterInetLayerErrorFormatter

void RegisterInetLayerErrorFormatter(
  void
)

Enregistre un outil de mise en forme des erreurs de texte pour les erreurs de couche Inet.

SocketsIPv4JoinLeaveMulticastGroup

INET_ERROR SocketsIPv4JoinLeaveMulticastGroup(
  int aSocket,
  InterfaceId aInterfaceId,
  const IPAddress & aAddress,
  int aCommand
)

SocketsIPv6JoinLeaveMulticastGroup

INET_ERROR SocketsIPv6JoinLeaveMulticastGroup(
  int aSocket,
  InterfaceId aInterfaceId,
  const IPAddress & aAddress,
  int aCommand
)

SocketsSetMulticastLoopback

INET_ERROR SocketsSetMulticastLoopback(
  int aSocket,
  bool aLoopback,
  int aProtocol,
  int aOption
)

SocketsSetMulticastLoopback

INET_ERROR SocketsSetMulticastLoopback(
  int aSocket,
  IPVersion aIPVersion,
  bool aLoopback
)