nl::Inet

Riepilogo

Enumerazioni

@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
Definizioni del tipo di evento dello strato 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
Opzioni che controllano come viene eseguita la risoluzione degli indirizzi IP.
IPAddressType{
  kIPAddressType_Unknown = 0,
  kIPAddressType_IPv4 = 1,
  kIPAddressType_IPv6 = 2,
  kIPAddressType_Any = 3
}
enum
Famiglia di indirizzi del protocollo Internet.
IPProtocol{
  kIPProtocol_ICMPv6 = 58,
  kIPProtocol_ICMPv4 = 1
}
enum
I numeri di alcuni protocolli della famiglia IP.
IPV6MulticastGroup{
  kIPV6MulticastGroup_AllRouters = 2
}
enum
Identificatori di gruppo multicast del protocollo internet.
IPVersion{
  kIPVersion_6 = 6,
  kIPVersion_4 = 4
}
enum
La versione del protocollo IP in uso.
IPv6MulticastFlag{
  kIPv6MulticastFlag_Transient = 0x01,
  kIPv6MulticastFlag_Prefix = 0x02
}
enum
Flag multicast Internet Protocol v6.
IPv6MulticastScope{
  kIPv6MulticastScope_Interface = 1,
  kIPv6MulticastScope_Link = 2,
  kIPv6MulticastScope_IPv4 = 3,
  kIPv6MulticastScope_Admin = 4,
  kIPv6MulticastScope_Site = 5,
  kIPv6MulticastScope_Organization = 8,
  kIPv6MulticastScope_Global = 14
}
enum
Ambito degli indirizzi multicast del protocollo internet.

Typedef

InterfaceId typedef
struct netif *
Indicatore delle interfacce di rete del sistema.

Variabili

sIOCTLSocket = -1
int

Funzioni

CheckMulticastGroupArgs(InterfaceId aInterfaceId, const IPAddress & aAddress)
CloseIOCTLSocket(void)
void
Chiudi il socket globale creato da GetIOCTLSocket.
FormatInetLayerError(char *buf, uint16_t bufSize, int32_t err)
bool
Dato un errore di livello Inet, restituisce una stringa C con terminazione NULL e leggibile da una persona che descrive l'errore.
GetIOCTLSocket(void)
int
Restituisce un socket per uso generico globale utile per richiamare determinati IOCTL di rete.
GetInterfaceName(InterfaceId intfId, char *nameBuf, size_t nameBufSize)
NL_DLL_EXPORT INET_ERROR
Recupera il nome di un'interfaccia di rete.
INET_IsInetEvent(Weave::System::EventType aType)
bool
Controlla per verificare se un System::EventType è un tipo di evento di livello Inet valido.
InterfaceNameToId(const char *intfName, InterfaceId & intfId)
NL_DLL_EXPORT INET_ERROR
Cerca nell'elenco delle interfacce di rete il nome indicato.
LwIPBindInterface(struct raw_pcb *aRaw, InterfaceId intfId)
LwIPBindInterface(struct udp_pcb *aUDP, InterfaceId intfId)
NetmaskToPrefixLength(const uint8_t *netmask, uint16_t netmaskLen)
uint8_t
Calcola la lunghezza del prefisso a partire da una netmask di lunghezza variabile.
ParseHostAndPort(const char *aString, uint16_t aStringLen, const char *& aHost, uint16_t & aHostLen, uint16_t & aPort)
Analizza una stringa leggibile contenente un indirizzo host o IP e un numero di porta facoltativo (separato da ':'), che supporta i seguenti formati:
ParseHostPortAndInterface(const char *aString, uint16_t aStringLen, const char *& aHost, uint16_t & aHostLen, uint16_t & aPort, const char *& aInterface, uint16_t & aInterfaceLen)
Analizza una stringa leggibile contenente un host o un indirizzo IP, un numero di porta facoltativo (separato da ':') e un nome di interfaccia facoltativo (separato da un ''), che supporta i seguenti formati:
RegisterInetLayerErrorFormatter(void)
void
Registra un formattatore degli errori di testo per gli errori di tipo Inet Layer.
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)

Corsi

nl::Inet::AsyncDNSResolverSockets

Questa è una classe interna di InetLayer che fornisce API helper per la risoluzione DNS (Asynchronous Domain Name System) in InetLayer.

nl::Inet::DNSResolver

Si tratta di una classe interna di InetLayer che fornisce l'astrazione della risoluzione DNS (Domain Name System) in InetLayer.

nl::Inet::EndPointBasis

Base delle classi degli endpoint del trasporto internet.

nl::Inet::IPAddress

Indirizzo del protocollo Internet.

nl::Inet::IPEndPointBasis

Gli oggetti di questa classe rappresentano endpoint del protocollo IP non dimostrabili.

nl::Inet::IPPacketInfo

Informazioni su un messaggio o una connessione in arrivo/in uscita.

nl::Inet::IPPrefix

Prefisso dell'indirizzo Internet Protocol.

nl::Inet::InetLayer

Ciò consente di accedere a servizi internet, tra cui timer, risoluzione DNS (Domain Name System), trasporto di rete TCP, trasporto di rete UDP e trasporto di rete non elaborato, per un singolo thread.

nl::Inet::InetLayerBasis

Questa è la classe base degli oggetti conteggiati nei riferimenti gestiti da un oggetto InetLayer.

nl::Inet::InterfaceAddressIterator

Iterator per l'elenco degli indirizzi IP delle interfacce di rete del sistema.

nl::Inet::InterfaceIterator

Iterator per l'elenco delle interfacce di rete del sistema.

nl::Inet::RawEndPoint

Gli oggetti di questa classe rappresentano endpoint di rete IP non elaborati.

nl::Inet::SocketEvents

Rappresenta un insieme di eventi di I/O richiesti/in attesa su un socket.

nl::Inet::TCPEndPoint

Gli oggetti di questa classe rappresentano gli endpoint di trasporto TCP.

nl::Inet::TunEndPoint

Gli oggetti di questa classe rappresentano le interfacce dei tunnel.

nl::Inet::UDPEndPoint

Gli oggetti di questa classe rappresentano gli endpoint di trasporto UDP.

Sindacati

nl::Inet::PeerSockAddr

Spazi dei nomi

nl::Inet::Platform

Enumerazioni

@7

 @7

Definizioni del tipo di evento dello strato Inet.

Proprietà
kInetEvent_DNSResolveComplete

L'evento per il completamento della risoluzione del nome DNS.

kInetEvent_RawDataReceived

L'evento per la ricezione di dati su un endpoint non elaborato InetLayer.

kInetEvent_TCPConnectComplete

L'evento per il completamento della connessione TCP.

kInetEvent_TCPConnectionReceived

L'evento per la ricezione della connessione TCP.

kInetEvent_TCPDataReceived

L'evento per la ricezione di dati su una connessione TCP.

kInetEvent_TCPDataSent

L'evento per la trasmissione di dati tramite una connessione TCP.

kInetEvent_TCPError

L'evento per un errore su una connessione TCP.

kInetEvent_TunDataReceived

L'evento per la ricezione di dati su un tunnel Weave.

kInetEvent_UDPDataReceived

L'evento per la ricezione di dati su UDP.

DNSOptions

 DNSOptions

Opzioni che controllano come viene eseguita la risoluzione degli indirizzi IP.

Proprietà
kDNSOption_AddrFamily_Any

Restituisci gli indirizzi IPv4 e/o IPv6 nell'ordine restituito dal server dei nomi.

kDNSOption_AddrFamily_IPv4Only

Restituisci solo indirizzi IPv4.

kDNSOption_AddrFamily_IPv4Preferred

Restituisci gli indirizzi IPv4 e/o IPv6, con gli indirizzi IPv4 elencati per primi.

kDNSOption_AddrFamily_IPv6Only

Restituisci solo indirizzi IPv6.

kDNSOption_AddrFamily_IPv6Preferred

Restituisci gli indirizzi IPv4 e/o IPv6, con gli indirizzi IPv6 elencati per primi.

kDNSOption_AddrFamily_Mask

Bit all'interno di un valore intero DNSOptions che rappresenta la famiglia di indirizzi desiderata.

kDNSOption_Flags_Mask

Bit all'interno di un valore intero DNSOptions riservato ai flag.

kDNSOption_ValidFlags

Insieme di tutti i flag DNSOption validi.

IPAddressType

 IPAddressType

Famiglia di indirizzi del protocollo Internet.

I valori del tipo IPAddressType vengono restituiti dal metodo IPAddress::Type(). Indicano la famiglia di indirizzi necessaria per l'utilizzo dell'indirizzo stesso.

Proprietà
kIPAddressType_Any

L'indirizzo internet non specificato (indipendentemente dalla versione del protocollo)

kIPAddressType_IPv4

Internet Protocol versione 4.

kIPAddressType_IPv6

Internet Protocol versione 6.

kIPAddressType_Unknown

Non utilizzato.

IPProtocol

 IPProtocol

I numeri di alcuni protocolli della famiglia IP.

Proprietà
kIPProtocol_ICMPv4

ICMPv4.

kIPProtocol_ICMPv6

ICMPv6.

IPV6MulticastGroup

 IPV6MulticastGroup

Identificatori di gruppo multicast del protocollo internet.

I valori del tipo IPV6MulticastGroup vengono utilizzati per chiamare il metodo IPAddress::MakeIPv6Multicast(). Indicano gli identificatori di gruppi distinti registrati dalla IETF presso IANA.

Proprietà
kIPV6MulticastGroup_AllRouters

RFC 4291.

IPVersion

 IPVersion

La versione del protocollo IP in uso.

Proprietà
kIPVersion_4

IPv4.

kIPVersion_6

IPv6.

IPv6MulticastFlag

 IPv6MulticastFlag

Flag multicast Internet Protocol v6.

I valori del tipo IPv6MulticastFlag vengono utilizzati per chiamare i metodi IPAddress::MakeIPv6Multicast(). Indicano il tipo di indirizzo multicast IPv6 da creare. Questi numeri sono registrati dalla IETF presso l'IANA.

Proprietà
kIPv6MulticastFlag_Prefix

L'indirizzo multicast è (1) basato su un prefisso di rete.

kIPv6MulticastFlag_Transient

L'indirizzo multicast è (1) temporaneo (ovvero assegnato dinamicamente) anziché (0) ben noto (ovvero assegnato da IANA).

IPv6MulticastScope

 IPv6MulticastScope

Ambito degli indirizzi multicast del protocollo internet.

I valori del tipo IPv6MulticastScope vengono utilizzati per chiamare il metodo IPAddress::MakeIPv6Multicast(). Indicano l'ambito instradabile del gruppo multicast designato dal risultato. Questi numeri sono registrati dalla IETF presso l'IANA.

Proprietà
kIPv6MulticastScope_Admin

Ambito locale nell'area di autenticazione.

kIPv6MulticastScope_Global

Ambito globale.

kIPv6MulticastScope_IPv4

Ambito Realm-local ("IPv4").

kIPv6MulticastScope_Interface

Ambito locale nell'interfaccia.

kIPv6MulticastScope_Link

Ambito locale rispetto al collegamento.

kIPv6MulticastScope_Organization

Ambito locale dell'organizzazione.

kIPv6MulticastScope_Site

Ambito locale nell'area di autenticazione.

Typedef

InterfaceId

struct netif * InterfaceId

Indicatore delle interfacce di rete del sistema.

La portabilità dipende dalla possibilità di non vedere mai questo alias. In futuro può essere sostituita da una classe calcestruzzo opaco.

Nota bene: il termine "identificatore di interfaccia" convenzionalmente si riferisce anche ai 64 bit inferiori di un indirizzo IPv6 in tutti i documenti pertinenti relativi agli standard IETF, dove l'abbreviazione "IID" spesso utilizzato. In questo testo, il termine "indicatore di interfaccia" si riferisce ai valori di questo tipo alias.

Variabili

sIOCTLSocket

int sIOCTLSocket = -1

Funzioni

CheckMulticastGroupArgs

INET_ERROR CheckMulticastGroupArgs(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

CloseIOCTLSocket

void CloseIOCTLSocket(
  void
)

Chiudi il socket globale creato da GetIOCTLSocket.

Questa funzione viene fornita nei casi in cui, se lasciare aperto il socket globale IOCTL venga registrato come una perdita.

Nota: questa funzione NON è sicura per i thread rispetto a GetIOCTLSocket.

FormatInetLayerError

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

Dato un errore di livello Inet, restituisce una stringa C con terminazione NULL e leggibile da una persona che descrive l'errore.

Dettagli
Parametri
[in] buf
Buffer in cui verrà inserita la stringa di errore.
[in] bufSize
Dimensioni del buffer fornito in byte.
[in] err
L'errore da descrivere.
Restituisce
true Se una stringa descrittiva è stata scritta nel buffer fornito.
Restituisce
false Se l'errore fornito non era un errore di livello Inet.

GetIOCTLSocket

int GetIOCTLSocket(
  void
)

Restituisce un socket per uso generico globale utile per richiamare determinati IOCTL di rete.

Questa funzione è sicura per i thread su tutte le piattaforme.

GetInterfaceName

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

Recupera il nome di un'interfaccia di rete.

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.

Dettagli
Parametri
[in] intfId
un'interfaccia di rete
[in] nameBuf
regione di memoria per scrivere il nome dell'interfaccia
[in] nameBufSize
dimensioni della regione indicata con nameBuf
Valori restituiti
INET_NO_ERROR
risultato riuscito, nome dell'interfaccia scritto
INET_ERROR_NO_MEMORY
nome troppo grande per essere scritto nel buffer
other
un altro errore di sistema o di piattaforma

INET_IsInetEvent

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

Controlla per verificare se un System::EventType è un tipo di evento di livello Inet valido.

Dettagli
Parametri
[in] aType
Un tipo di evento Weave System Layer.
Restituisce
true se rientra nell'intervallo enumerato; altrimenti false.

InterfaceNameToId

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

Cerca nell'elenco delle interfacce di rete il nome indicato.

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.

Dettagli
Parametri
[in] intfName
nome dell'interfaccia di rete per trovare
[out] intfId
dell'interfaccia di rete per assegnare
Valori restituiti
INET_NO_ERROR
operazione riuscita, interfaccia di rete indicata
INET_ERROR_UNKNOWN_INTERFACE
nessuna interfaccia di rete trovata
other
un altro errore di sistema o di piattaforma

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
)

Calcola la lunghezza del prefisso a partire da una netmask di lunghezza variabile.

ParseHostAndPort

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

Analizza una stringa leggibile contenente un indirizzo host o IP e un numero di porta facoltativo (separato da ':'), che supporta i seguenti formati:

  • :
  • :
  • []:

Dettagli
Parametri
[in] aString
La stringa identificabile da esseri umani da analizzare.
[in] aStringLen
La lunghezza, in caratteri, di aString.
[out] aHost
Un puntatore alla parte del nome host della stringa analizzata.
[out] aHostLen
La lunghezza, in caratteri, di aHost.
[out] aPort
il numero di porta, se presente e analizzato correttamente; altrimenti 0.
Restituisce
INET_ERROR_INVALID_HOST_NAME Se l'input da analizzare ha lunghezza pari a zero o è in un formato non corretto.
Restituisce
INET_ERROR_HOST_NAME_TOO_LONG Se il nome host supera i 253 caratteri.
Restituisce
INET_NO_ERROR Al completamento dell'operazione.

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
)

Analizza una stringa leggibile contenente un host o un indirizzo IP, un numero di porta facoltativo (separato da ':') e un nome di interfaccia facoltativo (separato da un ''), che supporta i seguenti formati:

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

Dettagli
Parametri
[in] aString
La stringa identificabile da esseri umani da analizzare.
[in] aStringLen
La lunghezza, in caratteri, di aString.
[out] aHost
Un puntatore alla parte del nome host della stringa analizzata.
[out] aHostLen
La lunghezza, in caratteri, di aHost.
[out] aPort
il numero di porta, se presente e analizzato correttamente; altrimenti 0.
[out] aInterface
Un puntatore alla parte dell'interfaccia della stringa analizzata.
[out] aInterfaceLen
La lunghezza, in caratteri, di aInterface.
Restituisce
INET_ERROR_INVALID_HOST_NAME Se l'input da analizzare ha lunghezza pari a zero o è in un formato non corretto.
Restituisce
INET_ERROR_HOST_NAME_TOO_LONG Se il nome host supera i 253 caratteri.
Restituisce
INET_NO_ERROR Al completamento dell'operazione.

RegisterInetLayerErrorFormatter

void RegisterInetLayerErrorFormatter(
  void
)

Registra un formattatore degli errori di testo per gli errori di tipo Inet Layer.

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
)