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 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 direcciones 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
Son los identificadores de grupos multicast de 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 la dirección multidifusión del protocolo de Internet.

Typedefs

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

Variables

sIOCTLSocket = -1
int

remotas

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
Dado un error de Inet Layer, muestra una cadena C terminada en NULL que describe el error.
GetIOCTLSocket(void)
int
Muestra un socket global de uso general que es útil para invocar ciertos IOCTL de red.
GetInterfaceName(InterfaceId intfId, char *nameBuf, size_t nameBufSize)
NL_DLL_EXPORT INET_ERROR
Obtén el nombre de una interfaz de red.
INET_IsInetEvent(Weave::System::EventType aType)
bool
Verifica si un tipo de evento System::EventType es un tipo de evento de capa 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 una dirección IP o un host 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 signo ":") y un nombre de interfaz opcional (separado por un signo ""), que admite los siguientes formatos:
RegisterInetLayerErrorFormatter(void)
void
Registra un formateador de errores de texto para errores de 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)

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 (DNS) asíncrono 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 las clases de extremos de transporte de Internet.

nl::Inet::IPAddress

la dirección de protocolo de Internet.

nl::Inet::IPEndPointBasis

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

nl::Inet::IPPacketInfo

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

nl::Inet::IPPrefix

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, el transporte de red UDP y el transporte de red sin procesar para un solo subproceso.

nl::Inet::InetLayerBasis

Esta es la clase básica de objetos con cuenta de referencia administrados por 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 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 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.

Unión

nl::Inet::PeerSockAddr

Espacios de nombres

nl::Inet::Platform

Enumeraciones

@7

 @7

Las definiciones del tipo de evento de la capa Inet.

Propiedades
kInetEvent_DNSResolveComplete

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

kInetEvent_RawDataReceived

El evento de recepción de datos en un extremo sin procesar de InetLayer.

kInetEvent_TCPConnectComplete

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

kInetEvent_TCPConnectionReceived

El evento de 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 para la 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

Es el evento de recepción de datos en 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 direcciones IP.

Propiedades
kDNSOption_AddrFamily_Any

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

kDNSOption_AddrFamily_IPv4Only

Muestra solo las direcciones IPv4.

kDNSOption_AddrFamily_IPv4Preferred

Muestra las direcciones IPv4 o IPv6, con las direcciones IPv4 en primer lugar.

kDNSOption_AddrFamily_IPv6Only

Muestra solo las direcciones IPv6.

kDNSOption_AddrFamily_IPv6Preferred

Muestra las direcciones IPv4 o IPv6, con las direcciones IPv6 en primer lugar.

kDNSOption_AddrFamily_Mask

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

kDNSOption_Flags_Mask

Bits dentro de un valor entero DNSOptions reservados para marcas.

kDNSOption_ValidFlags

Conjunto de todas las marcas válidas de DNSOption.

IPAddressType

 IPAddressType

Familia de direcciones de protocolo de Internet.

El método IPAddress::Type() muestra los valores del tipo IPAddressType. Indican la familia de direcciones que implica el uso de la dirección.

Propiedades
kIPAddressType_Any

La dirección de Internet no especificada (independiente 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

Son los identificadores de grupos multicast de 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 de 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 multidifusión es (1) basada en un prefijo de red.

kIPv6MulticastFlag_Transient

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

IPv6MulticastScope

 IPv6MulticastScope

Alcance de la dirección multidifusión 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 de realm-local (“IPv4”).

kIPv6MulticastScope_Interface

Alcance de la interfaz local.

kIPv6MulticastScope_Link

Alcance de vínculo local.

kIPv6MulticastScope_Organization

Permiso local de la organización.

kIPv6MulticastScope_Site

Alcance local del dominio.

Typedefs

InterfaceId

struct netif * InterfaceId

Indicador de las interfaces de red del sistema.

La portabilidad depende de no ver nunca este alias. Es posible que se reemplace por una clase opaca concreta en el futuro.

Nota: El término “identificador de interfaz” también hace referencia convencionalmente a los 64 bits inferiores de una dirección IPv6 en todos los documentos relevantes de los estándares IETF, donde a menudo se usa la abreviatura "IID". En este texto, el término "indicador de interfaz" hace referencia a valores de este tipo de alias.

Variables

sIOCTLSocket

int sIOCTLSocket = -1

remotas

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 IOCTL global abierto 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
)

Dado un error de Inet Layer, muestra una cadena C terminada en NULL que describe el error.

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

GetIOCTLSocket

int GetIOCTLSocket(
  void
)

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

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

GetInterfaceName

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

Obtén 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 que se muestran
INET_NO_ERROR
resultado correcto, nombre de la interfaz escrito
INET_ERROR_NO_MEMORY
el nombre es demasiado grande para escribirlo en el búfer
other
otro error del sistema o de la plataforma

INET_IsInetEvent

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

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

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

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 buscar
[out] intfId
indicador de la interfaz de red para asignar
Valores que se muestran
INET_NO_ERROR
correcto, la interfaz de red indica
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 una dirección IP o un host y un número de puerto opcional (separado por un signo ":"), que admita los siguientes formatos:

  • :
  • :
  • []:

Detalles
Parámetros
[in] aString
Es la string confiable que se analizará.
[in] aStringLen
Es la longitud, en caracteres, de aString.
[out] aHost
Un puntero a la parte del nombre de host de la string analizada.
[out] aHostLen
Es la longitud, en caracteres, de aHost.
[out] aPort
El número de puerto, si está presente y se analizó correctamente; de lo contrario, es 0.
Qué muestra
INET_ERROR_INVALID_HOST_NAME: Si la entrada que se analizará tiene una longitud cero o tiene un formato incorrecto.
Qué muestra
INET_ERROR_HOST_NAME_TOO_LONG Si el nombre de host supera los 253 caracteres.
Qué 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 signo ":") y un nombre de interfaz opcional (separado por un signo ""), que admite los siguientes formatos:

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

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

RegisterInetLayerErrorFormatter

void RegisterInetLayerErrorFormatter(
  void
)

Registra un formateador de errores de texto para errores de Inet Layer.

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
)