nl::Inet

Resumen

Enumeraciones

@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
Las definiciones del tipo de evento de la capa de 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
Opciones que controlan cómo se realiza la resolución de la dirección IP.
IPAddressType{
  kIPAddressType_Unknown = 0,
  kIPAddressType_IPv4 = 1,
  kIPAddressType_IPv6 = 2,
  kIPAddressType_Any = 3
}
enum
Familia de direcciones de protocolo de Internet.
IPProtocol{
  kIPProtocol_ICMPv6 = 58,
  kIPProtocol_ICMPv4 = 1
}
enum
Los números de algunos de los protocolos de la familia de IP.
IPV6MulticastGroup{
  kIPV6MulticastGroup_AllRouters = 2
}
enum
Identificadores de grupo de multidifusión del protocolo de Internet
IPVersion{
  kIPVersion_6 = 6,
  kIPVersion_4 = 4
}
enum
La versión del protocolo IP que se usa.
IPv6MulticastFlag{
  kIPv6MulticastFlag_Transient = 0x01,
  kIPv6MulticastFlag_Prefix = 0x02
}
enum
Marcas de multidifusión del 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
Alcance de direcciones multicast del protocolo de Internet.

Typedefs

InterfaceId typedef
struct netif *
Indicador para las interfaces de red del sistema.

Variables

sIOCTLSocket = -1
int

Funciones

CheckMulticastGroupArgs(InterfaceId aInterfaceId, const IPAddress & aAddress)
CloseIOCTLSocket(void)
void
Cierra el socket global que creó GetIOCTLSocket.
FormatInetLayerError(char *buf, uint16_t bufSize, int32_t err)
bool
Cuando se produce un error de capa de Inet, se muestra una cadena C terminada en NULL, legible por humanos, que describe el error.
GetIOCTLSocket(void)
int
Muestra un socket global de uso general útil para invocar ciertos IOCTL de red.
GetInterfaceName(InterfaceId intfId, char *nameBuf, size_t nameBufSize)
NL_DLL_EXPORT INET_ERROR
Obtiene el nombre de una interfaz de red.
INET_IsInetEvent(Weave::System::EventType aType)
bool
Comprueba si un sistema System::EventType es un tipo de evento de capa de Inet válido.
InterfaceNameToId(const char *intfName, InterfaceId & intfId)
NL_DLL_EXPORT INET_ERROR
Busca el nombre indicado en la lista de interfaces de red.
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 una longitud de prefijo a partir de una máscara de red de longitud variable.
ParseHostAndPort(const char *aString, uint16_t aStringLen, const char *& aHost, uint16_t & aHostLen, uint16_t & aPort)
Analiza una cadena legible que contenga un host o una dirección IP y un número de puerto opcional (separado por un signo ':') que admita los siguientes formatos:
ParseHostPortAndInterface(const char *aString, uint16_t aStringLen, const char *& aHost, uint16_t & aHostLen, uint16_t & aPort, const char *& aInterface, uint16_t & aInterfaceLen)
Analiza una cadena legible que contenga un host o una dirección IP, un número de puerto opcional (separado por un ':') y un nombre de interfaz opcional (separado por un ''), que admite los siguientes formatos:
RegisterInetLayerErrorFormatter(void)
void
Registra un formateador de errores de texto para errores de la capa de 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)

Clases

nl::Inet::AsyncDNSResolverSockets

Esta es una clase interna de InetLayer que proporciona APIs auxiliares para la resolución del sistema de nombres de dominio asíncrono (DNS) en InetLayer.

nl::Inet::DNSResolver

Esta es una clase interna de InetLayer que proporciona la abstracción de la resolución del sistema de nombres de dominio (DNS) en InetLayer.

nl::Inet::EndPointBasis

Base de clases de extremos de transporte de Internet.

nl::Inet::IPAddress

dirección de protocolo de Internet.

nl::Inet::IPEndPointBasis

Los objetos de esta clase representan extremos de protocolo de IP que no admiten instancias.

nl::Inet::IPPacketInfo

Información sobre una conexión o un mensaje entrante/saliente.

nl::Inet::IPPrefix

Es el prefijo de la dirección de protocolo de Internet.

nl::Inet::InetLayer

Esto proporciona acceso a los servicios de Internet, incluidos los temporizadores, la resolución del sistema de nombres de dominio (DNS), el transporte de red TCP, de red UDP y de red sin procesar, para un solo subproceso.

nl::Inet::InetLayerBasis

Es la clase base de los objetos que cuentan por referencia y que administra un objeto InetLayer.

nl::Inet::InterfaceAddressIterator

Iterador para la lista de direcciones IP de la interfaz de red del sistema.

nl::Inet::InterfaceIterator

Iterador para la lista de interfaces de red del sistema.

nl::Inet::RawEndPoint

Los objetos de esta clase representan extremos de red de IP sin procesar.

nl::Inet::SocketEvents

Representa un conjunto de eventos de E/S solicitados o pendientes en un socket.

nl::Inet::TCPEndPoint

Los objetos de esta clase representan extremos de transporte de TCP.

nl::Inet::TunEndPoint

Los objetos de esta clase representan interfaces de túnel.

nl::Inet::UDPEndPoint

Los objetos de esta clase representan extremos de transporte UDP.

Uniones

nl::Inet::PeerSockAddr

Espacios de nombres

nl::Inet::Platform

Enumeraciones

@7

 @7

Las definiciones del tipo de evento de la capa de Inet.

Propiedades
kInetEvent_DNSResolveComplete

El evento para la finalización de la resolución de nombres de DNS.

kInetEvent_RawDataReceived

Es el evento para la recepción de datos a través de un extremo sin procesar InetLayer.

kInetEvent_TCPConnectComplete

El evento para que se complete la conexión TCP.

kInetEvent_TCPConnectionReceived

El evento para la recepción de la conexión TCP.

kInetEvent_TCPDataReceived

El evento de recepción de datos a través de una conexión TCP.

kInetEvent_TCPDataSent

El evento de transmisión de datos a través de una conexión TCP.

kInetEvent_TCPError

El evento de un error en una conexión TCP.

kInetEvent_TunDataReceived

El evento para la recepción de datos a través de un túnel de Weave.

kInetEvent_UDPDataReceived

El evento para la recepción de datos a través de UDP.

DNSOptions

 DNSOptions

Opciones que controlan cómo se realiza la resolución de la dirección IP.

Propiedades
kDNSOption_AddrFamily_Any

Muestra las direcciones IPv4 o IPv6 en el orden que muestra el servidor de nombres.

kDNSOption_AddrFamily_IPv4Only

Mostrar solo direcciones IPv4.

kDNSOption_AddrFamily_IPv4Preferred

Muestra las direcciones IPv4 o IPv6, con las direcciones IPv4 enumeradas primero.

kDNSOption_AddrFamily_IPv6Only

Mostrar solo direcciones IPv6.

kDNSOption_AddrFamily_IPv6Preferred

Muestra las direcciones IPv4 o IPv6, con las direcciones IPv6 enumeradas primero.

kDNSOption_AddrFamily_Mask

Bits dentro de un valor entero de DNSOptions que representan la familia de direcciones deseada.

kDNSOption_Flags_Mask

Bits dentro de un valor entero de DNSOptions reservados para marcas.

kDNSOption_ValidFlags

Conjunto de todas las marcas de DNSOption válidas.

IPAddressType

 IPAddressType

Familia de direcciones de protocolo de Internet.

El método IPAddress::Type() muestra valores de tipo IPAddressType. Indican la familia de direcciones que implica el uso de estas.

Propiedades
kIPAddressType_Any

La dirección de Internet no especificada (independientemente de la versión del protocolo)

kIPAddressType_IPv4

Protocolo de Internet versión 4.

kIPAddressType_IPv6

Protocolo de Internet versión 6.

kIPAddressType_Unknown

No se usa.

IPProtocol

 IPProtocol

Los números de algunos de los protocolos de la familia de IP.

Propiedades
kIPProtocol_ICMPv4

ICMPv4

kIPProtocol_ICMPv6

ICMPv6

IPV6MulticastGroup

 IPV6MulticastGroup

Identificadores de grupo de multidifusión del protocolo de Internet

Los valores del tipo IPV6MulticastGroup se usan para llamar al método IPAddress::MakeIPv6Multicast(). Indican identificadores de grupos distinguidos registrados por IETF con IANA.

Propiedades
kIPV6MulticastGroup_AllRouters

RFC 4291

IPVersion

 IPVersion

La versión del protocolo IP que se usa.

Propiedades
kIPVersion_4

IPv4:

kIPVersion_6

IPv6:

IPv6MulticastFlag

 IPv6MulticastFlag

Marcas de multidifusión del protocolo de Internet v6.

Los valores del tipo IPv6MulticastFlag se usan para llamar a los métodos IPAddress::MakeIPv6Multicast(). Indican el tipo de dirección de multidifusión IPv6 que se creará. El IETF registra estos números con la IANA.

Propiedades
kIPv6MulticastFlag_Prefix

La dirección de multidifusión (1) se basa en un prefijo de red.

kIPv6MulticastFlag_Transient

La dirección de multidifusión es (1) transitoria (es decir, asignada de forma dinámica) en lugar de (0) conocida (es decir, asignada por IANA).

IPv6MulticastScope

 IPv6MulticastScope

Alcance de direcciones multicast del protocolo de Internet.

Los valores del tipo IPv6MulticastScope se usan para llamar al método IPAddress::MakeIPv6Multicast(). Indican el alcance enrutable del grupo multicast designado por el resultado. El IETF registra estos números con la IANA.

Propiedades
kIPv6MulticastScope_Admin

Alcance local del dominio.

kIPv6MulticastScope_Global

Alcance global.

kIPv6MulticastScope_IPv4

Alcance local (“IPv4”).

kIPv6MulticastScope_Interface

Alcance de la interfaz local.

kIPv6MulticastScope_Link

Alcance de vínculo local.

kIPv6MulticastScope_Organization

Alcance local de la organización.

kIPv6MulticastScope_Site

Alcance local del dominio.

Typedefs

InterfaceId

struct netif * InterfaceId

Indicador para las interfaces de red del sistema.

La portabilidad depende de que nunca haya presencia este alias. Podría ser reemplazada por una clase opaca concreta en el futuro.

Ten en cuenta que el término “identificador de interfaz” también se refiere, por lo general, a los 64 bits inferiores de una dirección IPv6 en todos los documentos de estándares IETF relevantes, donde la abreviatura "IID" se usa a menudo. En este texto, el término "indicador de interfaz" se refiere a valores de este tipo de alias.

Variables

sIOCTLSocket

int sIOCTLSocket = -1

Funciones

CheckMulticastGroupArgs

INET_ERROR CheckMulticastGroupArgs(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

CloseIOCTLSocket

void CloseIOCTLSocket(
  void
)

Cierra el socket global que creó GetIOCTLSocket.

Esta función se proporciona para los casos en los que el socket global IOCTL se registraría como una fuga.

Nota: Esta función NO es segura para subprocesos con respecto a GetIOCTLSocket.

FormatInetLayerError

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

Cuando se produce un error de capa de Inet, se muestra una cadena C terminada en NULL, legible por humanos, que describe el error.

Detalles
Parámetros
[in] buf
Es el búfer en el que se colocará la cadena de error.
[in] bufSize
Tamaño del búfer proporcionado en bytes.
[in] err
El error que se describirá.
Resultado que se muestra
true Si se escribió una cadena de descripción en el búfer proporcionado.
Resultado que se muestra
false Si el error proporcionado no fue un error de capa de Inet.

GetIOCTLSocket

int GetIOCTLSocket(
  void
)

Muestra un socket global de uso general útil para invocar ciertos IOCTL de red.

Esta función es segura para subprocesos en todas las plataformas.

GetInterfaceName

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

Obtiene el nombre de una interfaz de red.

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.

Detalles
Parámetros
[in] intfId
una interfaz de red
[in] nameBuf
región de la memoria para escribir el nombre de la interfaz
[in] nameBufSize
tamaño de la región indicado por nameBuf
Valores de retorno
INET_NO_ERROR
resultado exitoso, nombre de la interfaz escrito
INET_ERROR_NO_MEMORY
el nombre es demasiado grande para escribirlo en un búfer
other
otro error del sistema o de la plataforma

INET_IsInetEvent

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

Comprueba si un sistema System::EventType es un tipo de evento de capa de Inet válido.

Detalles
Parámetros
[in] aType
Un tipo de evento de la capa del sistema de Weave.
Resultado que se muestra
true si se encuentra dentro del rango enumerado; de lo contrario, es falso.

InterfaceNameToId

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

Busca el nombre indicado en la lista de interfaces de red.

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.

Detalles
Parámetros
[in] intfName
nombre de la interfaz de red para encontrar
[out] intfId
indicador de la interfaz de red para asignar
Valores de retorno
INET_NO_ERROR
éxito, la interfaz de red indicada
INET_ERROR_UNKNOWN_INTERFACE
no se encontró ninguna interfaz de red
other
otro error del sistema o de la 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 una longitud de prefijo a partir de una máscara de red de longitud variable.

ParseHostAndPort

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

Analiza una cadena legible que contenga un host o una dirección IP y un número de puerto opcional (separado por un signo ':') que admita los siguientes formatos:

  • :
  • :
  • []:

Detalles
Parámetros
[in] aString
La cadena confiable que se va a analizar.
[in] aStringLen
La longitud de aString en caracteres.
[out] aHost
Un puntero a la parte del nombre de host de la cadena analizada.
[out] aHostLen
Es la longitud de aHost en caracteres.
[out] aPort
El número de puerto, si está presente y se analizó correctamente. de lo contrario, 0.
Resultado que se muestra
INET_ERROR_INVALID_HOST_NAME Si la entrada que se analizará tiene una longitud cero o presenta errores de formato.
Resultado que se muestra
INET_ERROR_HOST_NAME_TOO_LONG Si el nombre del host supera los 253 caracteres.
Resultado que se muestra
INET_NO_ERROR Si la operación es exitosa.

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
)

Analiza una cadena legible que contenga un host o una dirección IP, un número de puerto opcional (separado por un ':') y un nombre de interfaz opcional (separado por un ''), que admite los siguientes formatos:

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

Detalles
Parámetros
[in] aString
La cadena confiable que se va a analizar.
[in] aStringLen
La longitud de aString en caracteres.
[out] aHost
Un puntero a la parte del nombre de host de la cadena analizada.
[out] aHostLen
Es la longitud de aHost en caracteres.
[out] aPort
El número de puerto, si está presente y se analizó correctamente. de lo contrario, 0.
[out] aInterface
Un puntero a la parte de la interfaz de la string analizada.
[out] aInterfaceLen
Indica la longitud de aInterface en caracteres.
Resultado que se muestra
INET_ERROR_INVALID_HOST_NAME Si la entrada que se analizará tiene una longitud cero o presenta errores de formato.
Resultado que se muestra
INET_ERROR_HOST_NAME_TOO_LONG Si el nombre del host supera los 253 caracteres.
Resultado que se muestra
INET_NO_ERROR Si la operación es exitosa.

RegisterInetLayerErrorFormatter

void RegisterInetLayerErrorFormatter(
  void
)

Registra un formateador de errores de texto para errores de la capa de 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
)