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)
}
enum
Définitions du type d'événement 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
}
enum
Options contrôlant la façon dont la résolution des adresses IP est effectuée.
IPAddressType{
  kIPAddressType_Unknown = 0,
  kIPAddressType_IPv4 = 1,
  kIPAddressType_IPv6 = 2,
  kIPAddressType_Any = 3
}
enum
Famille d'adresses IP
IPProtocol{
  kIPProtocol_ICMPv6 = 58,
  kIPProtocol_ICMPv4 = 1
}
enum
Numéros de certains protocoles de la famille d'adresses IP.
IPV6MulticastGroup{
  kIPV6MulticastGroup_AllRouters = 2
}
enum
Identifiants de groupe de multidiffusion par protocole Internet.
IPVersion{
  kIPVersion_6 = 6,
  kIPVersion_4 = 4
}
enum
Version du protocole IP utilisé.
IPv6MulticastFlag{
  kIPv6MulticastFlag_Transient = 0x01,
  kIPv6MulticastFlag_Prefix = 0x02
}
enum
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
}
enum
Champ d'application de l'adresse de multidiffusion par protocole Internet

Typedefs

InterfaceId typedef
struct netif *
Indicateur des interfaces réseau système.

Variables

sIOCTLSocket = -1
int

distantes

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 lisible par l'humain se terminant par une valeur NULL décrivant l'erreur.
GetIOCTLSocket(void)
int
Renvoie un socket global à usage général utile pour appeler certains IOCTL de réseau.
GetInterfaceName(InterfaceId intfId, char *nameBuf, size_t nameBufSize)
NL_DLL_EXPORT INET_ERROR
Permet d'obtenir 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 une longueur de 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, ainsi qu'un numéro de port facultatif (séparés par le caractère ":"), dans 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 caractère ":") et un nom d 'interface facultatif (séparés par un trait d'union), prenant en charge les formats suivants:
RegisterInetLayerErrorFormatter(void)
void
Enregistrer 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 (Asynchrone) de noms de domaine 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 de transport Internet.

nl::Inet::IPAddress

l'adresse IP de l'utilisateur.

nl::Inet::IPEndPointBasis

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

nl::Inet::IPPacketInfo

Informations sur un message ou une connexion entrant/sortant.

nl::Inet::IPPrefix

Préfixe de l'adresse de protocole Internet.

nl::Inet::InetLayer

Elle 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 en référence, gérés par un objet InetLayer.

nl::Inet::InterfaceAddressIterator

Itérateur de liste d'adresses IP d'interface réseau système

nl::Inet::InterfaceIterator

Itérateur de liste des interfaces réseau 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 des points de terminaison de transport TCP.

nl::Inet::TunEndPoint

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

nl::Inet::UDPEndPoint

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

Unions

nl::Inet::PeerSockAddr

Espaces de noms

nl::Inet::Platform

Énumérations

@7

 @7

Définitions du type d'événement de la couche Inet.

Propriétés
kInetEvent_DNSResolveComplete

Événement de résolution du nom DNS terminé.

kInetEvent_RawDataReceived

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

kInetEvent_TCPConnectComplete

Événement correspondant à l'achèvement de la connexion TCP.

kInetEvent_TCPConnectionReceived

Événement pour la réception de la connexion TCP.

kInetEvent_TCPDataReceived

Événement lié à la réception de données sur une connexion TCP.

kInetEvent_TCPDataSent

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

kInetEvent_TCPError

Événement pour une erreur sur une connexion TCP.

kInetEvent_TunDataReceived

Événement lié à la réception de données sur un tunnel Weave.

kInetEvent_UDPDataReceived

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

DNSOptions

 DNSOptions

Options contrôlant la façon dont la résolution des adresses IP est effectuée.

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

Renvoie uniquement les adresses IPv4.

kDNSOption_AddrFamily_IPv4Preferred

Renvoie les adresses IPv4 et/ou IPv6, les adresses IPv4 étant répertoriées en premier.

kDNSOption_AddrFamily_IPv6Only

Renvoie uniquement les adresses IPv6.

kDNSOption_AddrFamily_IPv6Preferred

Renvoie les adresses IPv4 et/ou IPv6, avec les adresses IPv6 répertoriées en premier.

kDNSOption_AddrFamily_Mask

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

kDNSOption_Flags_Mask

Bits dans une valeur entière DNSOptions réservées aux indicateurs.

kDNSOption_ValidFlags

Ensemble de tous les indicateurs DNSOption valides.

IPAddressType

 IPAddressType

Famille d'adresses IP

Les valeurs du type IPAddressType sont renvoyées par la méthode IPAddress::Type(). Ils indiquent la famille d'adresses impliquée par 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

Numéros de certains protocoles de la famille d'adresses IP.

Propriétés
kIPProtocol_ICMPv4

ICMPv4.

kIPProtocol_ICMPv6

ICMPv6.

IPV6MulticastGroup

 IPV6MulticastGroup

Identifiants de groupe de multidiffusion par protocole Internet.

Les valeurs du type IPV6MulticastGroup sont utilisées pour appeler la méthode IPAddress::MakeIPv6Multicast(). Ils indiquent des identifiants de groupe distinct 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(). Ils 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 réseau.

kIPv6MulticastFlag_Transient

L'adresse de multidiffusion est (1) temporaire (c'est-à-dire attribuée dynamiquement) plutôt que (0) bien connue (c'est-à-dire attribuée par l'IANA).

IPv6MulticastScope

 IPv6MulticastScope

Champ d'application de l'adresse de multidiffusion par protocole Internet

Les valeurs du type IPv6MulticastScope sont utilisées pour appeler la méthode IPAddress::MakeIPv6Multicast(). Ils indiquent le champ d'application 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 Realm-local ("IPv4").

kIPv6MulticastScope_Interface

Champ d'application local de l'interface.

kIPv6MulticastScope_Link

Champ d'application de la liaison locale.

kIPv6MulticastScope_Organization

Champ d'application local de l'organisation.

kIPv6MulticastScope_Site

Champ d'application local du domaine.

Typedefs

InterfaceId

struct netif * InterfaceId

Indicateur des interfaces réseau système.

Pour assurer la portabilité, il faut ne jamais voir cet alias. Elle pourra être remplacée ultérieurement par une classe opaque concrète.

Remarque: Le terme "identifiant d'interface" fait également référence aux 64 bits inférieurs d'une adresse IPv6 dans tous les documents pertinents relatifs aux 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

distantes

CheckMulticastGroupArgs

INET_ERROR CheckMulticastGroupArgs(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

CloseIOCTLSocket

void CloseIOCTLSocket(
  void
)

Fermez le socket global créé par GetIOCTLSocket.

Cette fonction est fournie dans les cas où le fait de laisser le socket IOCTL global ouvert entraînait une fuite.

Remarque: Cette fonction n'est PAS thread-safe en ce qui concerne GetIOCTLSocket.

FormatInetLayerError

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

Pour une erreur de couche Inet, renvoie une chaîne C lisible par l'humain se terminant par une valeur NULL 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 de 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
)

Permet d'obtenir 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 mémoire pour écrire le nom de l'interface
[in] nameBufSize
taille de la région indiquée par nameBuf
Valeurs de retour
INET_NO_ERROR
un résultat positif, le nom de l'interface écrit
INET_ERROR_NO_MEMORY
Le nom est trop volumineux pour être écrit dans la mémoire tampon.
other
une autre erreur système ou de 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
La valeur est "true" si elle est comprise dans la plage énumérée. Sinon, la valeur est "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 à attribuer
Valeurs de retour
INET_NO_ERROR
avec succès, l'interface réseau indique
INET_ERROR_UNKNOWN_INTERFACE
aucune interface réseau trouvée
other
une autre erreur système ou de 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 une longueur de 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, ainsi qu'un numéro de port facultatif (séparés par le caractère ":"), dans les formats suivants:

  • :
  • :
  • []:

Détails
Paramètres
[in] aString
Chaîne lisible par l'humain à analyser.
[in] aStringLen
Longueur, en caractères, de l'objet aString.
[out] aHost
Pointeur vers la partie nom d'hôte de la chaîne analysée.
[out] aHostLen
Longueur, en caractères, d'unHost.
[out] aPort
Numéro de port, s'il est présent et analysé ; sinon, 0.
Renvoie
INET_ERROR_INVALID_HOST_NAME, si l'entrée à analyser est de longueur nulle ou incorrecte.
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 caractère ":") et un nom d 'interface facultatif (séparés par un trait d'union), prenant en charge les formats suivants:

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

Détails
Paramètres
[in] aString
Chaîne lisible par l'humain à analyser.
[in] aStringLen
Longueur, en caractères, de l'objet aString.
[out] aHost
Pointeur vers la partie nom d'hôte de la chaîne analysée.
[out] aHostLen
Longueur, en caractères, d'unHost.
[out] aPort
Numéro de port, s'il est présent et analysé ; sinon, 0.
[out] aInterface
Pointeur vers la partie interface de la chaîne analysée.
[out] aInterfaceLen
Longueur, en caractères, de aInterface.
Renvoie
INET_ERROR_INVALID_HOST_NAME, si l'entrée à analyser est de longueur nulle ou incorrecte.
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
)

Enregistrer 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
)