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érer
Les définitions de type d'événement de 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érer
Options contrôlant la manière dont la résolution d'adresse IP est effectuée.
IPAddressType {
kIPAddressType_Unknown = 0,
kIPAddressType_IPv4 = 1,
kIPAddressType_IPv6 = 2,
kIPAddressType_Any = 3
}
énumérer
Famille d'adresses de protocole Internet.
IPProtocol {
kIPProtocol_ICMPv6 = 58,
kIPProtocol_ICMPv4 = 1
}
énumérer
Les numéros de certains des protocoles de la famille IP.
IPV6MulticastGroup {
kIPV6MulticastGroup_AllRouters = 2
}
énumérer
Identifiants de groupe de multidiffusion de protocole Internet.
IPVersion {
kIPVersion_6 = 6,
kIPVersion_4 = 4
}
énumérer
La version du protocole IP utilisé.
IPv6MulticastFlag {
kIPv6MulticastFlag_Transient = 0x01,
kIPv6MulticastFlag_Prefix = 0x02
}
énumérer
Indicateurs 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érer
Portée de l'adresse de multidiffusion du protocole Internet.

Typedefs

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

Variables

sIOCTLSocket = -1
int

Les fonctions

CheckMulticastGroupArgs (InterfaceId aInterfaceId, const IPAddress & aAddress)
CloseIOCTLSocket (void)
void
Fermez la socket globale créée par GetIOCTLSocket .
FormatInetLayerError (char *buf, uint16_t bufSize, int32_t err)
bool
Étant donné une erreur de couche Inet, renvoie une chaîne C terminée par NULL lisible par l'homme décrivant l'erreur.
GetIOCTLSocket (void)
int
Renvoie un socket global à usage général utile pour appeler certains IOCTL du 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 un System::EventType est un type d'événement de couche Inet valide.
InterfaceNameToId (const char *intfName, InterfaceId & intfId)
NL_DLL_EXPORT INET_ERROR
Recherchez dans la liste des interfaces réseau le nom indiqué.
LwIPBindInterface (struct raw_pcb *aRaw, InterfaceId intfId)
LwIPBindInterface (struct udp_pcb *aUDP, InterfaceId intfId)
NetmaskToPrefixLength (const uint8_t *netmask, uint16_t netmaskLen)
uint8_t
Calculer 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 par l'homme contenant un hôte ou une adresse IP et un numéro de port facultatif (séparé par un ':'), 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 par l'homme contenant un hôte ou une adresse IP, un numéro de port facultatif (séparé par un ':') et un nom d'interface facultatif (séparé par un ''), prenant en charge les formats suivants :
RegisterInetLayerErrorFormatter (void)
void
Enregistrez un formateur d'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)

Des classes

nl :: Inet :: AsyncDNSResolverSockets

Ceci est une classe interne InetLayer qui fournit des API d' assistance pour la résolution de noms de domaine Asynchronous System (DNS) dans InetLayer .

nl :: Inet :: DNSResolver

Ceci est une classe interne InetLayer qui fournit l'abstraction de la résolution Domain Name System (DNS) dans InetLayer .

nl :: Inet :: EndPointBasis

Base des classes de points de terminaison de transport Internet.

nl :: Inet :: IPAddress

Adresse de protocole Internet.

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/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

Ceci est la classe de base des objets gérés par référence compté par un InetLayer objet.

nl :: Inet :: InterfaceAddressIterator

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

nl :: Inet :: InterfaceIterator

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

nl :: Inet :: RawEndPoint

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

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 les interfaces de tunnel.

nl :: Inet :: UDPEndPoint

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

Syndicats

nl :: Inet :: PeerSockAddr

Espaces de noms

nl :: Inet :: Plate - forme

Énumérations

@7

 @7

Les définitions de type d'événement de couche Inet.

Propriétés
kInetEvent_DNSResolveComplete

L'événement pour l'achèvement de la résolution de nom DNS.

kInetEvent_RawDataReceived

L'événement pour la réception de données sur un InetLayer point final brut.

kInetEvent_TCPConnectComplete

L'événement pour l'achèvement de la connexion TCP.

kInetEvent_TCPConnectionReceived

L'événement pour la réception de la connexion TCP.

kInetEvent_TCPDataReceived

L'événement pour la réception de données via une connexion TCP.

kInetEvent_TCPDataSent

L'événement pour la transmission de données sur une connexion TCP.

kInetEvent_TCPError

L'événement pour une erreur sur une connexion TCP.

kInetEvent_TunDataReceived

L'événement pour la réception de données sur un tunnel Weave.

kInetEvent_UDPDataReceived

L'événement pour la réception de données via UDP.

Options DNS

 DNSOptions

Options contrôlant la manière dont la résolution d'adresse 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, les adresses IPv6 étant 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és aux indicateurs.

kDNSOption_ValidFlags

Ensemble de tous les indicateurs DNSOption valides.

Type d'adresse IP

 IPAddressType

Famille d'adresses de protocole Internet.

Les valeurs du IPAddressType type sont retournés par le IPAddress::Type() méthode. Ils indiquent la famille d'adresses qu'entraîne l'utilisation de l'adresse.

Propriétés
kIPAddressType_Any

L'adresse internet non spécifiée (indépendamment de la version du protocole)

kIPAddressType_IPv4

Protocole Internet version 4.

kIPAddressType_IPv6

Protocole Internet version 6.

kIPAddressType_Unknown

Non utilisé.

IPProtocole

 IPProtocol

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

Propriétés
kIPProtocol_ICMPv4

ICMPv4.

kIPProtocol_ICMPv6

ICMPv6.

IPV6Groupe de multidiffusion

 IPV6MulticastGroup

Identifiants de groupe de multidiffusion de protocole Internet.

Les valeurs du IPV6MulticastGroup type sont utilisés pour appeler le IPAddress::MakeIPv6Multicast() méthode. Ils indiquent les identifiants de groupe distinctifs enregistrés par l'IETF auprès de l'IANA.

Propriétés
kIPV6MulticastGroup_AllRouters

RFC 4291.

Version IP

 IPVersion

La version du protocole IP utilisé.

Propriétés
kIPVersion_4

IPv4.

kIPVersion_6

IPv6.

Drapeau de multidiffusion IPv6

 IPv6MulticastFlag

Indicateurs de multidiffusion du protocole Internet v6.

Les valeurs du IPv6MulticastFlag type sont utilisés pour appeler les IPAddress::MakeIPv6Multicast() méthodes. Ils indiquent le type d'adresse multicast 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) plutôt que (0) bien connue (c'est-à-dire attribuée à l'IANA).

Portée de multidiffusion IPv6

 IPv6MulticastScope

Portée de l'adresse de multidiffusion du protocole Internet.

Les valeurs du IPv6MulticastScope type sont utilisés pour appeler le IPAddress::MakeIPv6Multicast() méthode. Ils indiquent la portée routable du groupe multicast 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

Portée locale du domaine.

kIPv6MulticastScope_Global

Portée mondiale.

kIPv6MulticastScope_IPv4

Portée du domaine local ("IPv4").

kIPv6MulticastScope_Interface

Portée locale de l'interface.

kIPv6MulticastScope_Link

Portée lien-local.

kIPv6MulticastScope_Organization

Portée locale de l'organisation.

kIPv6MulticastScope_Site

Portée locale du domaine.

Typedefs

Id de l'interface

struct netif * InterfaceId

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

La portabilité dépend du fait de ne jamais être témoin de cet alias. Il pourrait être remplacé par une classe opaque concrète à l'avenir.

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

Variables

sIOCTLSocket

int sIOCTLSocket = -1

Les fonctions

VérifierMulticastGroupArgs

INET_ERROR CheckMulticastGroupArgs(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

FermerIOCTLSocket

void CloseIOCTLSocket(
  void
)

Fermez la socket globale créée par GetIOCTLSocket .

Cette fonction est fournie pour les cas où laisser le socket IOCTL global ouvert serait enregistré comme une fuite.

NB: Cette fonction est thread-safe par rapport à GetIOCTLSocket .

FormatInetLayerError

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

Étant donné une erreur de couche Inet, renvoie une chaîne C terminée par NULL lisible par l'homme décrivant l'erreur.

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

ObtenirIOCTLSocket

int GetIOCTLSocket(
  void
)

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

Cette fonction est thread-safe sur toutes les plateformes.

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.

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

INET_IsInetEvent

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

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

Des détails
Paramètres
[in] aType
Un type d'événement Weave System Layer.
Retour
true s'il se situe dans la plage énumérée ; sinon, faux.

NomInterfaceVersId

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

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

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.

Des détails
Paramètres
[in] intfName
nom de l'interface réseau à rechercher
[out] intfId
indicateur de l'interface réseau à attribuer
Valeurs de retour
INET_NO_ERROR
succès, interface réseau indiquée
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
)

Calculer 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 par l'homme contenant un hôte ou une adresse IP et un numéro de port facultatif (séparé par un ':'), prenant en charge les formats suivants :

  • :
  • :
  • [ ] :

Des détails
Paramètres
[in] aString
La chaîne lisible par l'homme à analyser.
[in] aStringLen
La longueur, en caractères, d'une chaîne.
[out] aHost
Un pointeur vers la partie du nom d'hôte de la chaîne analysée.
[out] aHostLen
La longueur, en caractères, de aHost.
[out] aPort
Le numéro de port, s'il est présent et analysé avec succès ; sinon, 0.
Retour
INET_ERROR_INVALID_HOST_NAME Si l'entrée à analyser est de longueur nulle ou autre malformé.
Retour
INET_ERROR_HOST_NAME_TOO_LONG Si le nom d'hôte dépasse 253 caractères.
Retour
INET_NO_ERROR En cas de succès.

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 par l'homme contenant un hôte ou une adresse IP, un numéro de port facultatif (séparé par un ':') et un nom d'interface facultatif (séparé par un ''), prenant en charge les formats suivants :

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

Des détails
Paramètres
[in] aString
La chaîne lisible par l'homme à analyser.
[in] aStringLen
La longueur, en caractères, d'une chaîne.
[out] aHost
Un pointeur vers la partie du nom d'hôte de la chaîne analysée.
[out] aHostLen
La longueur, en caractères, de aHost.
[out] aPort
Le numéro de port, s'il est présent et analysé avec succès ; sinon, 0.
[out] aInterface
Un pointeur vers la partie interface de la chaîne analysée.
[out] aInterfaceLen
La longueur, en caractères, d'une Interface.
Retour
INET_ERROR_INVALID_HOST_NAME Si l'entrée à analyser est de longueur nulle ou autre malformé.
Retour
INET_ERROR_HOST_NAME_TOO_LONG Si le nom d'hôte dépasse 253 caractères.
Retour
INET_NO_ERROR En cas de succès.

EnregistrerInetLayerErrorFormatter

void RegisterInetLayerErrorFormatter(
  void
)

Enregistrez un formateur d'erreurs de texte pour les erreurs de couche Inet.

SocketsIPv4JoindreQuitterMulticastGroup

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

SocketsIPv6JoindreQuitterMulticastGroup

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
)