nl::Inet

Resumo

Enumerações

@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
As definições do tipo de evento da camada 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
Opções que controlam como a resolução de endereços IP é executada.
IPAddressType{
  kIPAddressType_Unknown = 0,
  kIPAddressType_IPv4 = 1,
  kIPAddressType_IPv6 = 2,
  kIPAddressType_Any = 3
}
enum
Família de endereços de protocolo de Internet.
IPProtocol{
  kIPProtocol_ICMPv6 = 58,
  kIPProtocol_ICMPv4 = 1
}
enum
Os números de alguns dos protocolos na família de IP.
IPV6MulticastGroup{
  kIPV6MulticastGroup_AllRouters = 2
}
enum
Identificadores de grupo multicast de protocolo de Internet.
IPVersion{
  kIPVersion_6 = 6,
  kIPVersion_4 = 4
}
enum
A versão do protocolo IP que está sendo usado.
IPv6MulticastFlag{
  kIPv6MulticastFlag_Transient = 0x01,
  kIPv6MulticastFlag_Prefix = 0x02
}
enum
Sinalizações de multicast do protocolo de 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
Escopo do endereço multicast do protocolo de Internet.

Typedefs

InterfaceId typedef
struct netif *
Indicador das interfaces de rede do sistema.

Variáveis

sIOCTLSocket = -1
int

remotas

CheckMulticastGroupArgs(InterfaceId aInterfaceId, const IPAddress & aAddress)
CloseIOCTLSocket(void)
void
Feche o soquete global criado por GetIOCTLSocket.
FormatInetLayerError(char *buf, uint16_t bufSize, int32_t err)
bool
Dado um erro de Inet Layer, retorna uma string C legível por humanos com terminação NULL que descreve o erro.
GetIOCTLSocket(void)
int
Retorna um soquete de uso geral global útil para invocar determinadas IOCTLs de rede.
GetInterfaceName(InterfaceId intfId, char *nameBuf, size_t nameBufSize)
NL_DLL_EXPORT INET_ERROR
Consiga o nome de uma interface de rede.
INET_IsInetEvent(Weave::System::EventType aType)
bool
Verifique se um System::EventType é um tipo de evento de camada Inet válido.
InterfaceNameToId(const char *intfName, InterfaceId & intfId)
NL_DLL_EXPORT INET_ERROR
Procure o nome indicado na lista de interfaces de rede.
LwIPBindInterface(struct raw_pcb *aRaw, InterfaceId intfId)
LwIPBindInterface(struct udp_pcb *aUDP, InterfaceId intfId)
NetmaskToPrefixLength(const uint8_t *netmask, uint16_t netmaskLen)
uint8_t
Calcule um comprimento de prefixo a partir de uma máscara de rede de comprimento variável.
ParseHostAndPort(const char *aString, uint16_t aStringLen, const char *& aHost, uint16_t & aHostLen, uint16_t & aPort)
Analisa uma string legível que contém um host ou endereço IP e um número de porta opcional (separados por ":") com suporte aos seguintes formatos:
ParseHostPortAndInterface(const char *aString, uint16_t aStringLen, const char *& aHost, uint16_t & aHostLen, uint16_t & aPort, const char *& aInterface, uint16_t & aInterfaceLen)
Analisa uma string legível que contém um host ou endereço IP, um número de porta opcional (separados por um ":") e um nome de interface opcional (separados por um ""), oferecendo suporte aos seguintes formatos:
RegisterInetLayerErrorFormatter(void)
void
Registra um formatador de erro de texto para erros de camada 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)

Aulas

nl::Inet::AsyncDNSResolverSockets

Esta é uma classe interna para InetLayer que fornece APIs auxiliares para resolução assíncrona do Sistema de Nomes de Domínio (DNS) no InetLayer.

nl::Inet::DNSResolver

Esta é uma classe interna para InetLayer que fornece a abstração da resolução do Sistema de Nomes de Domínio (DNS) no InetLayer.

nl::Inet::EndPointBasis

Base das classes de endpoint de transporte da Internet.

nl::Inet::IPAddress

Endereço do protocolo de Internet.

nl::Inet::IPEndPointBasis

Os objetos dessa classe representam endpoints do protocolo IP não instanciáveis.

nl::Inet::IPPacketInfo

Informações sobre uma conexão/mensagem recebida/enviada.

nl::Inet::IPPrefix

Prefixo do endereço do protocolo de Internet.

nl::Inet::InetLayer

Isso fornece acesso a serviços da Internet, incluindo timers, resolução de Sistema de Nomes de Domínio (DNS), transporte de rede TCP, transporte de rede UDP e transporte de rede bruta, para uma única linha de execução.

nl::Inet::InetLayerBasis

Essa é a classe de base dos objetos contados por referência, gerenciados por um objeto InetLayer.

nl::Inet::InterfaceAddressIterator

Iterador da lista de endereços IP da interface de rede do sistema.

nl::Inet::InterfaceIterator

Iterador da lista de interfaces de rede do sistema.

nl::Inet::RawEndPoint

Os objetos dessa classe representam endpoints da rede IP brutos.

nl::Inet::SocketEvents

Representa um conjunto de eventos de E/S solicitados/pendentes em um soquete.

nl::Inet::TCPEndPoint

Os objetos dessa classe representam endpoints de transporte TCP.

nl::Inet::TunEndPoint

Os objetos dessa classe representam interfaces de túnel.

nl::Inet::UDPEndPoint

Os objetos desta classe representam endpoints de transporte UDP.

Sindicatos

nl::Inet::PeerSockAddr

Namespaces

nl::Inet::Platform

Enumerações

@7

 @7

As definições do tipo de evento da camada Inet.

Propriedades
kInetEvent_DNSResolveComplete

O evento para conclusão da resolução de nome DNS.

kInetEvent_RawDataReceived

O evento para recebimento de dados em um endpoint bruto de InetLayer.

kInetEvent_TCPConnectComplete

O evento para conclusão da conexão TCP.

kInetEvent_TCPConnectionReceived

O evento para a recepção de conexão TCP.

kInetEvent_TCPDataReceived

O evento para recebimento de dados em uma conexão TCP.

kInetEvent_TCPDataSent

O evento de transmissão de dados por uma conexão TCP.

kInetEvent_TCPError

O evento para um erro em uma conexão TCP.

kInetEvent_TunDataReceived

O evento para recebimento de dados em um túnel Weave.

kInetEvent_UDPDataReceived

O evento para recebimento de dados por UDP.

DNSOptions

 DNSOptions

Opções que controlam como a resolução de endereços IP é executada.

Propriedades
kDNSOption_AddrFamily_Any

Retorne endereços IPv4 e/ou IPv6 na ordem retornada pelo servidor de nomes.

kDNSOption_AddrFamily_IPv4Only

Retorne apenas endereços IPv4.

kDNSOption_AddrFamily_IPv4Preferred

Retorne endereços IPv4 e/ou IPv6, com os endereços IPv4 listados primeiro.

kDNSOption_AddrFamily_IPv6Only

Retorne apenas endereços IPv6.

kDNSOption_AddrFamily_IPv6Preferred

Retorne endereços IPv4 e/ou IPv6, com os endereços IPv6 listados primeiro.

kDNSOption_AddrFamily_Mask

Bits em um valor inteiro de DNSOptions que representa a família de endereços desejada.

kDNSOption_Flags_Mask

Bits em um valor inteiro de DNSOptions reservado para sinalizações.

kDNSOption_ValidFlags

Conjunto de todos os sinalizadores DNSOption válidos.

IPAddressType

 IPAddressType

Família de endereços de protocolo de Internet.

Os valores do tipo IPAddressType são retornados pelo método IPAddress::Type(). Elas indicam a família de endereços envolvendo o uso do endereço.

Propriedades
kIPAddressType_Any

O endereço de Internet não especificado (independente da versão do protocolo)

kIPAddressType_IPv4

Protocolo de Internet versão 4.

kIPAddressType_IPv6

Protocolo de Internet versão 6.

kIPAddressType_Unknown

Não utilizado.

IPProtocol

 IPProtocol

Os números de alguns dos protocolos na família de IP.

Propriedades
kIPProtocol_ICMPv4

ICMPv4.

kIPProtocol_ICMPv6

ICMPv6.

IPV6MulticastGroup

 IPV6MulticastGroup

Identificadores de grupo multicast de protocolo de Internet.

Os valores do tipo IPV6MulticastGroup são usados para chamar o método IPAddress::MakeIPv6Multicast(). Eles indicam identificadores de grupo distintos registrados pelo IETF na IANA.

Propriedades
kIPV6MulticastGroup_AllRouters

RFC 4291;

IPVersion

 IPVersion

A versão do protocolo IP que está sendo usado.

Propriedades
kIPVersion_4

IPv4.

kIPVersion_6

IPv6.

IPv6MulticastFlag

 IPv6MulticastFlag

Sinalizações de multicast do protocolo de Internet v6.

Os valores do tipo IPv6MulticastFlag são usados para chamar os métodos IPAddress::MakeIPv6Multicast(). Elas indicam o tipo de endereço multicast IPv6 a ser criado. Esses números são registrados pela IETF com a IANA.

Propriedades
kIPv6MulticastFlag_Prefix

O endereço multicast é (1) baseado em um prefixo de rede.

kIPv6MulticastFlag_Transient

O endereço multicast é (1) temporário (ou seja, atribuído dinamicamente) em vez de (0) conhecido (ou seja, atribuído pela IANA).

IPv6MulticastScope

 IPv6MulticastScope

Escopo do endereço multicast do protocolo de Internet.

Os valores do tipo IPv6MulticastScope são usados para chamar o método IPAddress::MakeIPv6Multicast(). Elas indicam o escopo roteável do grupo multicast designado pelo resultado. Esses números são registrados pela IETF com a IANA.

Propriedades
kIPv6MulticastScope_Admin

Escopo Realm-local.

kIPv6MulticastScope_Global

Escopo global.

kIPv6MulticastScope_IPv4

escopo Realm-local ("IPv4").

kIPv6MulticastScope_Interface

Escopo da interface local.

kIPv6MulticastScope_Link

Escopo link-local.

kIPv6MulticastScope_Organization

Escopo da organização local.

kIPv6MulticastScope_Site

Escopo Realm-local.

Typedefs

InterfaceId

struct netif * InterfaceId

Indicador das interfaces de rede do sistema.

A portabilidade depende de nunca ser testemunhado desse alias. Ela poderá ser substituída por uma classe opaca concreta no futuro.

Observação: o termo "identificador de interface" também se refere, convencionalmente, aos 64 bits mais baixos de um endereço IPv6 em todos os documentos padrões IETF relevantes, nos quais a abreviação "IID" é frequentemente usada. Nesse texto, o termo "indicador de interface" refere-se aos valores desse tipo alias.

Variáveis

sIOCTLSocket

int sIOCTLSocket = -1

remotas

CheckMulticastGroupArgs

INET_ERROR CheckMulticastGroupArgs(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

CloseIOCTLSocket

void CloseIOCTLSocket(
  void
)

Feche o soquete global criado por GetIOCTLSocket.

Essa função é fornecida para casos em que deixar o soquete IOCTL global aberto seria registrado como um vazamento.

Observação: essa função NÃO é thread-safe em relação a GetIOCTLSocket.

FormatInetLayerError

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

Dado um erro de Inet Layer, retorna uma string C legível por humanos com terminação NULL que descreve o erro.

Detalhes
Parâmetros
[in] buf
Buffer em que a string de erro será colocada.
[in] bufSize
Tamanho do buffer fornecido em bytes.
[in] err
O erro a ser descrito.
Retorna
true se uma string de descrição foi escrita no buffer fornecido.
Retorna
false se o erro fornecido não foi um erro da camada Inet.

GetIOCTLSocket

int GetIOCTLSocket(
  void
)

Retorna um soquete de uso geral global útil para invocar determinadas IOCTLs de rede.

Essa função é thread-safe em todas as plataformas.

GetInterfaceName

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

Consiga o nome de uma interface de rede.

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.

Detalhes
Parâmetros
[in] intfId
uma interface de rede
[in] nameBuf
região de memória para gravar o nome da interface
[in] nameBufSize
tamanho da região indicada por nameBuf
Valores de retorno
INET_NO_ERROR
resultado bem-sucedido, nome da interface gravado
INET_ERROR_NO_MEMORY
O nome é grande demais para ser gravado no buffer
other
outro erro de sistema ou plataforma

INET_IsInetEvent

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

Verifique se um System::EventType é um tipo de evento de camada Inet válido.

Detalhes
Parâmetros
[in] aType
Um tipo de evento de camada do sistema Weave.
Retorna
verdadeiro se estiver dentro do intervalo enumerado; caso contrário, falso.

InterfaceNameToId

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

Procure o nome indicado na lista de interfaces de rede.

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.

Detalhes
Parâmetros
[in] intfName
da interface de rede para encontrar
[out] intfId
indicador da interface de rede para atribuir
Valores de retorno
INET_NO_ERROR
bem-sucedido, a interface de rede está indicada
INET_ERROR_UNKNOWN_INTERFACE
nenhuma interface de rede foi encontrada
other
outro erro de sistema ou plataforma

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
)

Calcule um comprimento de prefixo a partir de uma máscara de rede de comprimento variável.

ParseHostAndPort

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

Analisa uma string legível que contém um host ou endereço IP e um número de porta opcional (separados por ":") com suporte aos seguintes formatos:

  • :
  • :
  • []:

Detalhes
Parâmetros
[in] aString
A string reconhecível por humanos a ser analisada.
[in] aStringLen
O comprimento, em caracteres, de uma String.
[out] aHost
Um ponteiro para a parte do nome do host da string analisada.
[out] aHostLen
O tamanho, em caracteres, de um host.
[out] aPort
O número da porta, se presente e analisado. Caso contrário, 0.
Retorna
INET_ERROR_INVALID_HOST_NAME: se a entrada a ser analisada tiver tamanho zero ou estiver incorreta.
Retorna
INET_ERROR_HOST_NAME_TOO_LONG Se o nome do host exceder 253 caracteres.
Retorna
INET_NO_ERROR Em caso de êxito.

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
)

Analisa uma string legível que contém um host ou endereço IP, um número de porta opcional (separados por um ":") e um nome de interface opcional (separados por um ""), oferecendo suporte aos seguintes formatos:

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

Detalhes
Parâmetros
[in] aString
A string reconhecível por humanos a ser analisada.
[in] aStringLen
O comprimento, em caracteres, de uma String.
[out] aHost
Um ponteiro para a parte do nome do host da string analisada.
[out] aHostLen
O tamanho, em caracteres, de um host.
[out] aPort
O número da porta, se presente e analisado. Caso contrário, 0.
[out] aInterface
Um ponteiro para a parte da interface da string analisada.
[out] aInterfaceLen
O tamanho, em caracteres, de umaInterface.
Retorna
INET_ERROR_INVALID_HOST_NAME: se a entrada a ser analisada tiver tamanho zero ou estiver incorreta.
Retorna
INET_ERROR_HOST_NAME_TOO_LONG Se o nome do host exceder 253 caracteres.
Retorna
INET_NO_ERROR Em caso de êxito.

RegisterInetLayerErrorFormatter

void RegisterInetLayerErrorFormatter(
  void
)

Registra um formatador de erro de texto para erros de camada 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
)