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 dei tipi di evento del livello 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 il modo in cui viene eseguita la risoluzione dell'indirizzo IP.
IPAddressType{
  kIPAddressType_Unknown = 0,
  kIPAddressType_IPv4 = 1,
  kIPAddressType_IPv6 = 2,
  kIPAddressType_Any = 3
}
enum
Famiglia di indirizzi IP.
IPProtocol{
  kIPProtocol_ICMPv6 = 58,
  kIPProtocol_ICMPv4 = 1
}
enum
I numeri di alcuni protocolli della famiglia IP.
IPV6MulticastGroup{
  kIPV6MulticastGroup_AllRouters = 2
}
enum
Identificatori di gruppi multicast con 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 del protocollo 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
Ambito dell'indirizzo 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 leggibile che descrive l'errore.
GetIOCTLSocket(void)
int
Restituisce un socket globale per uso generico utile per richiamare determinati IOCTL di rete.
GetInterfaceName(InterfaceId intfId, char *nameBuf, size_t nameBufSize)
NL_DLL_EXPORT INET_ERROR
Ottieni il nome di un'interfaccia di rete.
INET_IsInetEvent(Weave::System::EventType aType)
bool
Controlla se System::EventType è un tipo di evento di livello Inet valido.
InterfaceNameToId(const char *intfName, InterfaceId & intfId)
NL_DLL_EXPORT INET_ERROR
Cerca nell'elenco di 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 di un prefisso utilizzando una netmask a 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 ":"), in modo da supportare 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 un ":") e un nome di interfaccia facoltativo (separato da un "'") in grado di supportare i seguenti formati:
RegisterInetLayerErrorFormatter(void)
void
Registra un formattatore degli errori di testo per errori del livello 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)

Corsi

nl::Inet::AsyncDNSResolverSockets

Si tratta di una classe interna a InetLayer che fornisce API helper per la risoluzione DNS (Async Domain Name System) in InetLayer.

nl::Inet::DNSResolver

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

nl::Inet::EndPointBasis

Base per le classi di endpoint di trasporto internet.

nl::Inet::IPAddress

Indirizzo IP.

nl::Inet::IPEndPointBasis

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

nl::Inet::IPPacketInfo

Informazioni su un messaggio/connessione in entrata/uscita.

nl::Inet::IPPrefix

Prefisso dell'indirizzo del protocollo internet.

nl::Inet::InetLayer

Ciò consente di accedere ai servizi internet, inclusi 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

Si tratta della classe base degli oggetti conteggiati nei riferimenti gestiti da un oggetto InetLayer.

nl::Inet::InterfaceAddressIterator

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

nl::Inet::InterfaceIterator

Iteratore 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

Rappresentano 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.

Unione

nl::Inet::PeerSockAddr

Spazi dei nomi

nl::Inet::Platform

Enumerazioni

@7

 @7

Definizioni dei tipi di evento del livello Inet.

Proprietà
kInetEvent_DNSResolveComplete

L'evento per il completamento della risoluzione dei nomi DNS.

kInetEvent_RawDataReceived

L'evento per la ricezione dei 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 dei dati su una connessione TCP.

kInetEvent_TCPDataSent

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

kInetEvent_TCPError

Evento per un errore su una connessione TCP.

kInetEvent_TunDataReceived

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

kInetEvent_UDPDataReceived

L'evento per la ricezione dei dati su UDP.

DNSOptions

 DNSOptions

Opzioni che controllano il modo in cui viene eseguita la risoluzione dell'indirizzo 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 per i flag.

kDNSOption_ValidFlags

Set di tutti i flag DNSOption validi.

IPAddressType

 IPAddressType

Famiglia di indirizzi IP.

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

Proprietà
kIPAddressType_Any

Indirizzo internet non specificato (indipendentemente dalla versione del protocollo)

kIPAddressType_IPv4

Protocollo internet versione 4.

kIPAddressType_IPv6

Protocollo internet 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 gruppi multicast con protocollo internet.

I valori del tipo IPV6MulticastGroup vengono utilizzati per chiamare il metodo IPAddress::MakeIPv6Multicast(). Indicano identificatori di gruppi distinti registrati da IETF con 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 del protocollo internet 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 con IANA.

Proprietà
kIPv6MulticastFlag_Prefix

L'indirizzo multicast è (1) e si basa su un prefisso di rete.

kIPv6MulticastFlag_Transient

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

IPv6MulticastScope

 IPv6MulticastScope

Ambito dell'indirizzo multicast del protocollo internet.

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

Proprietà
kIPv6MulticastScope_Admin

Ambito locale dell'area di autenticazione.

kIPv6MulticastScope_Global

Ambito globale.

kIPv6MulticastScope_IPv4

Ambito Realm-local ("IPv4").

kIPv6MulticastScope_Interface

Ambito locale dell'interfaccia.

kIPv6MulticastScope_Link

Ambito locale rispetto al collegamento.

kIPv6MulticastScope_Organization

Ambito locale dell'organizzazione.

kIPv6MulticastScope_Site

Ambito locale dell'area di autenticazione.

Typedef

InterfaceId

struct netif * InterfaceId

Indicatore delle interfacce di rete del sistema.

La portabilità dipende dalla possibilità di non rilevare mai questo alias. In futuro potrebbe essere sostituita da una classe opaca concreta.

Nota bene: Il termine "identificatore di interfaccia" si riferisce anche convenzionalmente ai 64 bit inferiori di un indirizzo IPv6 in tutti i documenti relativi agli standard IETF, dove l'abbreviazione "IID" è spesso utilizzata. In questo testo, il termine "indicatore di interfaccia" si riferisce ai valori di questo tipo di 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 per i casi in cui, lasciando aperto il socket IOCTL globale, verrebbero registrati come perdite.

Nota: questa funzione NON è thread-safe in relazione 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 leggibile che descrive l'errore.

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

GetIOCTLSocket

int GetIOCTLSocket(
  void
)

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

Questa funzione è a prova di thread su tutte le piattaforme.

GetInterfaceName

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

Ottieni 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
dimensione della regione indicata da 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 del sistema o della piattaforma

INET_IsInetEvent

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

Controlla se 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; in caso contrario, false.

InterfaceNameToId

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

Cerca nell'elenco di 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
indicatore dell'interfaccia di rete per assegnare
Valori restituiti
INET_NO_ERROR
operazione riuscita, è stata indicata l'interfaccia di rete
INET_ERROR_UNKNOWN_INTERFACE
nessuna interfaccia di rete trovata
other
un altro errore del sistema o della 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 di un prefisso utilizzando una netmask a 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 ":"), in modo da supportare i seguenti formati:

  • :
  • :
  • []:

Dettagli
Parametri
[in] aString
La stringa rilevabile dall'uomo da analizzare.
[in] aStringLen
La lunghezza, in caratteri, di unaStringa.
[out] aHost
Un puntatore alla parte del nome host della stringa analizzata.
[out] aHostLen
La lunghezza, in caratteri, di un Host.
[out] aPort
Il numero di porta, se presente e analizzato correttamente; in caso contrario, 0.
Restituisce
INET_ERROR_INVALID_HOST_NAME Se l'input da analizzare ha una lunghezza pari a zero o non è valido in altro modo.
Restituisce
INET_ERROR_HOST_NAME_TOO_LONG Se il nome host supera i 253 caratteri.
Restituisce
INET_NO_ERROR Se l'operazione va a buon fine.

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 un ":") e un nome di interfaccia facoltativo (separato da un "'") in grado di supportare i seguenti formati:

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

Dettagli
Parametri
[in] aString
La stringa rilevabile dall'uomo da analizzare.
[in] aStringLen
La lunghezza, in caratteri, di unaStringa.
[out] aHost
Un puntatore alla parte del nome host della stringa analizzata.
[out] aHostLen
La lunghezza, in caratteri, di un Host.
[out] aPort
Il numero di porta, se presente e analizzato correttamente; in caso contrario, 0.
[out] aInterface
Un puntatore alla parte dell'interfaccia della stringa analizzata.
[out] aInterfaceLen
La lunghezza, in caratteri, di un'interfaccia.
Restituisce
INET_ERROR_INVALID_HOST_NAME Se l'input da analizzare ha una lunghezza pari a zero o non è valido in altro modo.
Restituisce
INET_ERROR_HOST_NAME_TOO_LONG Se il nome host supera i 253 caratteri.
Restituisce
INET_NO_ERROR Se l'operazione va a buon fine.

RegisterInetLayerErrorFormatter

void RegisterInetLayerErrorFormatter(
  void
)

Registra un formattatore degli errori di testo per errori del livello 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
)