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 é realizada.
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 do 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 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

Funções

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 Camada Inet, retorna uma string C terminada em NULL legível por humanos que descreve o erro.
GetIOCTLSocket(void)
int
Retorna um soquete de uso geral global útil para invocar determinados IOCTLs de rede.
GetInterfaceName(InterfaceId intfId, char *nameBuf, size_t nameBufSize)
NL_DLL_EXPORT INET_ERROR
Extrai o nome de uma interface de rede.
INET_IsInetEvent(Weave::System::EventType aType)
bool
Verifique se um System::EventType é um tipo de evento válido da camada Inet.
InterfaceNameToId(const char *intfName, InterfaceId & intfId)
NL_DLL_EXPORT INET_ERROR
Pesquise a lista de interfaces de rede para o nome indicado.
LwIPBindInterface(struct raw_pcb *aRaw, InterfaceId intfId)
LwIPBindInterface(struct udp_pcb *aUDP, InterfaceId intfId)
NetmaskToPrefixLength(const uint8_t *netmask, uint16_t netmaskLen)
uint8_t
Calcula um tamanho de prefixo 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 (separado por ':'), compatível com os 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 (separado por ':') e um nome de interface opcional (separado por um ''), compatível com os seguintes formatos:
RegisterInetLayerErrorFormatter(void)
void
Registre um formatador de erro de texto para erros da 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)

Classes

nl::Inet::AsyncDNSResolverSockets

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

nl::Inet::DNSResolver

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

nl::Inet::EndPointBasis

Base das classes de endpoint de transporte da Internet.

nl::Inet::IPAddress

Endereço de Protocolo de Internet.

nl::Inet::IPEndPointBasis

Os objetos desta classe representam endpoints de 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 de 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 um único thread.

nl::Inet::InetLayerBasis

Esta é a classe de base de 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 desta classe representam endpoints de 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 desta classe representam interfaces de túnel.

nl::Inet::UDPEndPoint

Os objetos dessa classe representam endpoints de transporte UDP.

União

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 a recepção de dados em um endpoint bruto InetLayer.

kInetEvent_TCPConnectComplete

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 a recepção de dados em uma conexão TCP.

kInetEvent_TCPDataSent

O evento para 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 a recepção de dados em um túnel do Weave.

kInetEvent_UDPDataReceived

O evento para a recepção de dados por UDP.

DNSOptions

 DNSOptions

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

Propriedades
kDNSOption_AddrFamily_Any

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

kDNSOption_AddrFamily_IPv4Only

Retornar apenas endereços IPv4.

kDNSOption_AddrFamily_IPv4Preferred

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

kDNSOption_AddrFamily_IPv6Only

Retornar 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 reservados para sinalizações.

kDNSOption_ValidFlags

Conjunto de todas as sinalizações DNSOption válidas.

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 associada ao 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 do protocolo de Internet.

Os valores do tipo IPV6MulticastGroup são usados para chamar o método IPAddress::MakeIPv6Multicast(). Eles indicam identificadores distintos de grupo registrados pelo IETF com a 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 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 pelo IETF junto à IANA.

Propriedades
kIPv6MulticastFlag_Prefix

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

kIPv6MulticastFlag_Transient

O endereço multicast é (1) transitório (ou seja, atribuído dinamicamente), em vez de (0) bem 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 pelo IETF junto à IANA.

Propriedades
kIPv6MulticastScope_Admin

Escopo realm-local.

kIPv6MulticastScope_Global

Escopo global.

kIPv6MulticastScope_IPv4

escopo realm-local ("IPv4").

kIPv6MulticastScope_Interface

Escopo de interface local.

kIPv6MulticastScope_Link

Escopo link-local.

kIPv6MulticastScope_Organization

Escopo local da organização.

kIPv6MulticastScope_Site

Escopo realm-local.

Typedefs

InterfaceId

struct netif * InterfaceId

Indicador das interfaces de rede do sistema.

A portabilidade depende de nunca testemunhar esse alias. Ele pode ser substituído 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 de padrões IETF relevantes, onde a abreviação "IID" é muito usada. Neste texto, o termo "indicador de interface" refere-se a valores desse tipo alias.

Variáveis

sIOCTLSocket

int sIOCTLSocket = -1

Funções

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: esta função NÃO é segura para linhas de execução em relação a GetIOCTLSocket.

FormatInetLayerError

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

Dado um erro de Camada Inet, retorna uma string C terminada em NULL legível por humanos que descreve o erro.

Detalhes
Parâmetros
[in] buf
Buffer no qual a string de erro será colocada.
[in] bufSize
Tamanho do buffer fornecido em bytes.
[in] err
O erro a ser descrito.
Retornos
true Se uma string de descrição foi gravada no buffer fornecido.
Retornos
false Se o erro fornecido não tiver sido um erro de camada Inet.

GetIOCTLSocket

int GetIOCTLSocket(
  void
)

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

Essa função é segura para linhas de execução em todas as plataformas.

GetInterfaceName

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

Extrai 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 da 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 escrito
INET_ERROR_NO_MEMORY
o nome é muito grande para ser escrito em buffer
other
outro erro do sistema ou da plataforma

INET_IsInetEvent

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

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

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

InterfaceNameToId

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

Pesquise a lista de interfaces de rede para o nome indicado.

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
da interface de rede para atribuir
Valores de retorno
INET_NO_ERROR
sucesso, interface de rede indicada
INET_ERROR_UNKNOWN_INTERFACE
nenhuma interface de rede encontrada
other
outro erro do sistema ou da 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
)

Calcula um tamanho de prefixo 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 (separado por ':'), compatível com os seguintes formatos:

  • :
  • :
  • []:

Detalhes
Parâmetros
[in] aString
A string confiável para análise.
[in] aStringLen
O comprimento, em caracteres, de umaString.
[out] aHost
Um ponteiro para a parte do nome do host da string analisada.
[out] aHostLen
O tamanho, em caracteres, de aHost.
[out] aPort
o número da porta, se presente e analisado com sucesso; caso contrário, 0.
Retornos
INET_ERROR_INVALID_HOST_NAME Se a entrada a ser analisada for de tamanho zero ou ter algum formato incorreto.
Retornos
INET_ERROR_HOST_NAME_TOO_LONG: se o nome do host exceder 253 caracteres.
Retornos
INET_NO_ERROR Em caso de sucesso.

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 (separado por ':') e um nome de interface opcional (separado por um ''), compatível com os seguintes formatos:

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

Detalhes
Parâmetros
[in] aString
A string confiável para análise.
[in] aStringLen
O comprimento, em caracteres, de umaString.
[out] aHost
Um ponteiro para a parte do nome do host da string analisada.
[out] aHostLen
O tamanho, em caracteres, de aHost.
[out] aPort
o número da porta, se presente e analisado com sucesso; caso contrário, 0.
[out] aInterface
Um ponteiro para a parte da interface da string analisada.
[out] aInterfaceLen
O tamanho, em caracteres, de uma Interface.
Retornos
INET_ERROR_INVALID_HOST_NAME Se a entrada a ser analisada for de tamanho zero ou ter algum formato incorreto.
Retornos
INET_ERROR_HOST_NAME_TOO_LONG: se o nome do host exceder 253 caracteres.
Retornos
INET_NO_ERROR Em caso de sucesso.

RegisterInetLayerErrorFormatter

void RegisterInetLayerErrorFormatter(
  void
)

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