nl:: Inet

Sommario

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
Le definizioni del tipo 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 come viene eseguita la risoluzione dell'indirizzo 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 dei 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 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 di indirizzi multicast del protocollo Internet.

Typedef

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

Variabili

sIOCTLSocket = -1
int

Funzioni

CheckMulticastGroupArgs (InterfaceId aInterfaceId, const IPAddress & aAddress)
CloseIOCTLSocket (void)
void
Chiudere 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 dall'uomo che descrive l'errore.
GetIOCTLSocket (void)
int
Restituisce un socket generico globale 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
Controllare 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 una lunghezza del prefisso da una maschera di rete 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 host o un indirizzo IP e un numero di porta opzionale (separato da un ':'), 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 opzionale (separato da un ':') e un nome di interfaccia facoltativo (separato da un ''), che supporta i seguenti formati:
RegisterInetLayerErrorFormatter (void)
void
Registra un formattatore di errori di testo per gli errori di 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)

Classi

nl :: :: Inet AsyncDNSResolverSockets

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

nl :: :: Inet DNSResolver

Questa è una classe interna per InetLayer che prevede l'estrazione di risoluzione (DNS) Domain Name System in InetLayer .

nl :: :: Inet EndPointBasis

Base delle classi di endpoint di trasporto Internet.

nl :: :: Inet IPAddress

Indirizzo del protocollo Internet.

nl :: :: Inet IPEndPointBasis

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

nl :: :: Inet IPPacketInfo

Informazioni su un messaggio/connessione in entrata/uscita.

nl :: :: Inet IPPrefix

Prefisso dell'indirizzo del protocollo Internet.

nl :: :: Inet InetLayer

Ciò fornisce l'accesso 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

Questa è la classe base di oggetti di riferimento contati gestite da un InetLayer oggetto.

nl :: :: Inet InterfaceAddressIterator

Iteratore per l'elenco degli indirizzi IP dell'interfaccia 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

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 del trasporto TCP.

nl :: :: Inet TunEndPoint

Gli oggetti di questa classe rappresentano interfacce tunnel.

nl :: :: Inet UDPEndPoint

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

sindacati

nl :: :: Inet PeerSockAddr

Spazi dei nomi

nl :: :: Inet Platform

Enumerazioni

@7

 @7

Le definizioni del tipo 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 di dati su un InetLayer endpoint crudo.

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

L'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.

Opzioni DNS

 DNSOptions

Opzioni che controllano come viene eseguita la risoluzione dell'indirizzo IP.

Proprietà
kDNSOption_AddrFamily_Any

Restituire gli indirizzi IPv4 e/o IPv6 nell'ordine restituito dal nameserver.

kDNSOption_AddrFamily_IPv4Only

Restituisci solo indirizzi IPv4.

kDNSOption_AddrFamily_IPv4Preferred

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

kDNSOption_AddrFamily_IPv6Only

Restituire solo indirizzi IPv6.

kDNSOption_AddrFamily_IPv6Preferred

Restituire 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

Set di tutti i flag DNSOption validi.

IPAddressType

 IPAddressType

Famiglia di indirizzi del protocollo Internet.

Valori del IPAddressType tipo vengono restituiti dal IPAddress::Type() metodo. Indicano la famiglia di indirizzi implicata dall'uso dell'indirizzo.

Proprietà
kIPAddressType_Any

L'indirizzo Internet non specificato (indipendente dalla versione del protocollo)

kIPAddressType_IPv4

Protocollo Internet versione 4.

kIPAddressType_IPv6

Protocollo Internet versione 6.

kIPAddressType_Unknown

Non usato.

Protocollo IP

 IPProtocol

I numeri di alcuni dei protocolli della famiglia IP.

Proprietà
kIPProtocol_ICMPv4

ICMPv4.

kIPProtocol_ICMPv6

ICMPv6.

IPV6Gruppo Multicast

 IPV6MulticastGroup

Identificatori di gruppo multicast del protocollo Internet.

Valori del IPV6MulticastGroup tipo sono usati per chiamare IPAddress::MakeIPv6Multicast() metodo. Indicano identificatori di gruppo 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.

Flag IPv6Multicast

 IPv6MulticastFlag

Flag multicast del protocollo Internet v6.

Valori del IPv6MulticastFlag tipo sono utilizzati per chiamare i IPAddress::MakeIPv6Multicast() metodi. Indicano il tipo di indirizzo multicast IPv6 da creare. Questi numeri sono registrati da IETF con IANA.

Proprietà
kIPv6MulticastFlag_Prefix

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

kIPv6MulticastFlag_Transient

L'indirizzo multicast è (1) transitorio (cioè assegnato dinamicamente) piuttosto che (0) ben noto (cioè assegnato da IANA).

IPv6MulticastScope

 IPv6MulticastScope

Ambito di indirizzi multicast del protocollo Internet.

Valori del IPv6MulticastScope tipo sono usati per chiamare IPAddress::MakeIPv6Multicast() metodo. Indicano l'ambito instradabile del gruppo multicast designato dal risultato. Questi numeri sono registrati da IETF con IANA.

Proprietà
kIPv6MulticastScope_Admin

Ambito locale del regno.

kIPv6MulticastScope_Global

Ambito globale.

kIPv6MulticastScope_IPv4

Ambito locale del dominio ("IPv4").

kIPv6MulticastScope_Interface

Ambito interfaccia-locale.

kIPv6MulticastScope_Link

Ambito link-local.

kIPv6MulticastScope_Organization

Ambito organizzazione-locale.

kIPv6MulticastScope_Site

Ambito locale del regno.

Typedefs

ID interfaccia

struct netif * InterfaceId

Indicatore per le interfacce di rete del sistema.

La portabilità dipende dal non vedere mai questo alias. Potrebbe essere sostituito da una classe opaca concreta in futuro.

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 viene spesso utilizzata l'abbreviazione "IID". In questo testo, il termine "indicatore di interfaccia" si riferisce a valori di questo tipo alias.

Variabili

sIOCTLSocket

int sIOCTLSocket = -1

Funzioni

CheckMulticastGroupArgs

INET_ERROR CheckMulticastGroupArgs(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

ChiudiIOCTLSocket

void CloseIOCTLSocket(
  void
)

Chiudere il socket globale creato da GetIOCTLSocket .

Questa funzione viene fornita per i casi in cui lasciare aperto il socket IOCTL globale si registrerebbe come una perdita.

NB: Questa funzione non è thread-safe rispetto al 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 dall'uomo che descrive l'errore.

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

GetIOCTLSocket

int GetIOCTLSocket(
  void
)

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

Questa funzione è thread-safe su tutte le piattaforme.

OttieniNomeInterfaccia

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 con nameBuf
Valori di ritorno
INET_NO_ERROR
risultato positivo, nome dell'interfaccia scritto
INET_ERROR_NO_MEMORY
il nome è troppo grande per essere scritto nel buffer
other
un altro errore di sistema o piattaforma

INET_IsInetEvent

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

Controllare 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.
ritorna
true se rientra nell'intervallo enumerato; altrimenti, falso.

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 da trovare
[out] intfId
indicatore dell'interfaccia di rete da assegnare
Valori di ritorno
INET_NO_ERROR
successo, interfaccia di rete indicata
INET_ERROR_UNKNOWN_INTERFACE
nessuna interfaccia di rete trovata
other
un altro errore di sistema o 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 una lunghezza del prefisso da una maschera di rete a lunghezza variabile.

AnalizzaHostAndPort

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

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

  • :
  • :
  • [ ]:

Dettagli
Parametri
[in] aString
La stringa umana da analizzare.
[in] aStringLen
La lunghezza, in caratteri, di aString.
[out] aHost
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 con successo; altrimenti 0.
ritorna
INET_ERROR_INVALID_HOST_NAME Se l'ingresso da analizzare è di lunghezza zero o altrimenti malformati.
ritorna
INET_ERROR_HOST_NAME_TOO_LONG Se il nome host supera i 253 caratteri.
ritorna
INET_NO_ERROR In caso di successo.

Analizza HostPortAndInterface

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 opzionale (separato da un ':') e un nome di interfaccia opzionale (separato da un ''), che supporta i seguenti formati:

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

Dettagli
Parametri
[in] aString
La stringa umana da analizzare.
[in] aStringLen
La lunghezza, in caratteri, di aString.
[out] aHost
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 con successo; altrimenti 0.
[out] aInterface
Puntatore alla porzione di interfaccia della stringa analizzata.
[out] aInterfaceLen
La lunghezza, in caratteri, di aInterface.
ritorna
INET_ERROR_INVALID_HOST_NAME Se l'ingresso da analizzare è di lunghezza zero o altrimenti malformati.
ritorna
INET_ERROR_HOST_NAME_TOO_LONG Se il nome host supera i 253 caratteri.
ritorna
INET_NO_ERROR In caso di successo.

RegisterInetLayerErrorFormatter

void RegisterInetLayerErrorFormatter(
  void
)

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

SocketsIPv4UniscitiLeaveMulticastGroup

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

SocketsIPv6UniscitiLeaveMulticastGroup

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
)