нл:: инет

Краткое содержание

Перечисления

@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)
}
перечисление
Определения типов событий уровня 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
}
перечисление
Параметры, управляющие выполнением разрешения IP-адресов.
IPAddressType {
kIPAddressType_Unknown = 0,
kIPAddressType_IPv4 = 1,
kIPAddressType_IPv6 = 2,
kIPAddressType_Any = 3
}
перечисление
Семейство адресов интернет-протокола.
IPProtocol {
kIPProtocol_ICMPv6 = 58,
kIPProtocol_ICMPv4 = 1
}
перечисление
Номера некоторых протоколов семейства IP.
IPV6MulticastGroup {
kIPV6MulticastGroup_AllRouters = 2
}
перечисление
Идентификаторы групп многоадресной рассылки интернет-протокола.
IPVersion {
kIPVersion_6 = 6,
kIPVersion_4 = 4
}
перечисление
Версия используемого IP-протокола.
IPv6MulticastFlag {
kIPv6MulticastFlag_Transient = 0x01,
kIPv6MulticastFlag_Prefix = 0x02
}
перечисление
Флаги многоадресной рассылки интернет-протокола v6.
IPv6MulticastScope {
kIPv6MulticastScope_Interface = 1,
kIPv6MulticastScope_Link = 2,
kIPv6MulticastScope_IPv4 = 3,
kIPv6MulticastScope_Admin = 4,
kIPv6MulticastScope_Site = 5,
kIPv6MulticastScope_Organization = 8,
kIPv6MulticastScope_Global = 14
}
перечисление
Область группового адреса интернет-протокола.

Определения типов

InterfaceId определение типа
struct netif *
Индикатор сетевых интерфейсов системы.

Переменные

sIOCTLSocket = -1
int

Функции

CheckMulticastGroupArgs (InterfaceId aInterfaceId, const IPAddress & aAddress)
CloseIOCTLSocket (void)
void
Закройте глобальный сокет, созданный GetIOCTLSocket .
FormatInetLayerError (char *buf, uint16_t bufSize, int32_t err)
bool
При ошибке уровня Интернета возвращает удобочитаемую строку C с завершающим NULL, описывающую ошибку.
GetIOCTLSocket (void)
int
Возвращает глобальный сокет общего назначения, полезный для вызова определенных сетевых IOCTL.
GetInterfaceName (InterfaceId intfId, char *nameBuf, size_t nameBufSize)
NL_DLL_EXPORT INET_ERROR
Получить имя сетевого интерфейса.
INET_IsInetEvent (Weave::System::EventType aType)
bool
Проверьте, является ли System::EventType допустимым типом события уровня Inet.
InterfaceNameToId (const char *intfName, InterfaceId & intfId)
NL_DLL_EXPORT INET_ERROR
Найдите в списке сетевых интерфейсов указанное имя.
LwIPBindInterface (struct raw_pcb *aRaw, InterfaceId intfId)
LwIPBindInterface (struct udp_pcb *aUDP, InterfaceId intfId)
NetmaskToPrefixLength (const uint8_t *netmask, uint16_t netmaskLen)
uint8_t
Вычислите длину префикса по сетевой маске переменной длины.
ParseHostAndPort (const char *aString, uint16_t aStringLen, const char *& aHost, uint16_t & aHostLen, uint16_t & aPort)
Анализируйте удобочитаемую строку, содержащую хост или IP-адрес и необязательный номер порта (разделенные знаком «:»), поддерживающую следующие форматы:
ParseHostPortAndInterface (const char *aString, uint16_t aStringLen, const char *& aHost, uint16_t & aHostLen, uint16_t & aPort, const char *& aInterface, uint16_t & aInterfaceLen)
Анализируйте удобочитаемую строку, содержащую хост или IP-адрес, необязательный номер порта (через ':') и необязательное имя интерфейса (через ''), поддерживая следующие форматы:
RegisterInetLayerErrorFormatter (void)
void
Зарегистрируйте средство форматирования текстовых ошибок для ошибок 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)

Классы

nl::Inet::AsyncDNSResolverSockets

Это внутренний класс InetLayer , который предоставляет вспомогательные API для разрешения асинхронной системы доменных имен (DNS) в InetLayer .

nl::Инет::DNSResolver

Это внутренний класс InetLayer , который обеспечивает абстракцию разрешения системы доменных имен (DNS) в InetLayer .

nl::Inet::EndPointBasis

Основа классов конечных точек интернет-транспорта.

nl::Инет::IP-адрес

Адрес интернет-протокола.

nl::Inet::IPEndPointBasis

Объекты этого класса представляют собой конечные точки протокола IP, которые не могут быть созданы.

nl::Инет::IPPacketInfo

Информация о входящем/исходящем сообщении/соединении.

nl::Инет::IPPrefix

Префикс адреса интернет-протокола.

nl::Инет::InetLayer

Это обеспечивает доступ к службам Интернета, включая таймеры, разрешение системы доменных имен (DNS), сетевой транспорт TCP, сетевой транспорт UDP и необработанный сетевой транспорт, для одного потока.

nl::Inet::InetLayerBasis

Это базовый класс объектов с подсчетом ссылок, управляемых объектом InetLayer .

nl::Inet::InterfaceAddressIterator

Итератор для списка IP-адресов сетевых интерфейсов системы.

nl::Inet::InterfaceIterator

Итератор списка сетевых интерфейсов системы.

nl::Инет::RawEndPoint

Объекты этого класса представляют конечные точки необработанной IP-сети.

nl::Инет::SocketEvents

Представляет набор событий ввода-вывода, запрошенных/ожидающих в сокете.

nl::Инет::TCCPEndPoint

Объекты этого класса представляют конечные точки транспорта TCP.

nl::Инет::TunEndPoint

Объекты этого класса представляют туннельные интерфейсы.

nl::Инет::UDPEndPoint

Объекты этого класса представляют конечные точки транспорта UDP.

Союзы

nl::Инет::PeerSockAddr

Пространства имен

nl::Инет::Платформа

Перечисления

@7

 @7

Определения типов событий уровня Inet.

Характеристики
kInetEvent_DNSResolveComplete

Событие завершения разрешения имен DNS.

kInetEvent_RawDataReceived

Событие для приема данных через необработанную конечную точку InetLayer .

kInetEvent_TCPConnectComplete

Событие завершения TCP-соединения.

kInetEvent_TCPConnectionReceived

Событие приема TCP-соединения.

kInetEvent_TCPDataReceived

Событие приема данных по TCP-соединению.

kInetEvent_TCPDataSent

Событие передачи данных по TCP-соединению.

kInetEvent_TCPError

Событие ошибки TCP-соединения.

kInetEvent_TunDataReceived

Событие приема данных по туннелю Weave.

kInetEvent_UDPDataReceived

Событие приема данных по UDP.

DNSOptions

 DNSOptions

Параметры, управляющие выполнением разрешения IP-адресов.

Характеристики
kDNSOption_AddrFamily_Any

Возвращайте адреса IPv4 и/или IPv6 в порядке, возвращенном сервером имен.

kDNSOption_AddrFamily_IPv4Only

Возвращать только адреса IPv4.

kDNSOption_AddrFamily_IPv4Preferred

Возвращайте адреса IPv4 и/или IPv6, причем адреса IPv4 указаны первыми.

kDNSOption_AddrFamily_IPv6Only

Возвращать только адреса IPv6.

kDNSOption_AddrFamily_IPv6Preferred

Возвращайте адреса IPv4 и/или IPv6, причем адреса IPv6 указаны первыми.

kDNSOption_AddrFamily_Mask

Биты целочисленного значения DNSOptions, представляющие желаемое семейство адресов.

kDNSOption_Flags_Mask

Биты целочисленного значения DNSOptions зарезервированы для флагов.

kDNSOption_ValidFlags

Набор всех допустимых флагов DNSOption.

Тип IP-адреса

 IPAddressType

Семейство адресов интернет-протокола.

Значения типа IPAddressType возвращаются методом IPAddress::Type() . Они указывают семейство адресов, связанное с использованием адреса.

Характеристики
kIPAddressType_Any

Неуказанный интернет-адрес (независимо от версии протокола)

kIPAddressType_IPv4

Интернет-протокол версии 4.

kIPAddressType_IPv6

Интернет-протокол версии 6.

kIPAddressType_Unknown

Не используется.

IP-протокол

 IPProtocol

Номера некоторых протоколов семейства IP.

Характеристики
kIPProtocol_ICMPv4

ICMPv4.

kIPProtocol_ICMPv6

ICMPv6.

IPV6Многоадресная группа

 IPV6MulticastGroup

Идентификаторы групп многоадресной рассылки интернет-протокола.

Значения типа IPV6MulticastGroup используются для вызова метода IPAddress::MakeIPv6Multicast() . Они указывают отличительные идентификаторы групп, зарегистрированные IETF с IANA.

Характеристики
kIPV6MulticastGroup_AllRouters

РФК 4291.

IPверсия

 IPVersion

Версия используемого IP-протокола.

Характеристики
kIPVersion_4

IPv4.

kIPVersion_6

IPv6.

IPv6MulticastФлаг

 IPv6MulticastFlag

Флаги многоадресной рассылки интернет-протокола v6.

Значения типа IPv6MulticastFlag используются для вызова методов IPAddress::MakeIPv6Multicast() . Они указывают тип создаваемого многоадресного адреса IPv6. Эти номера зарегистрированы IETF в IANA.

Характеристики
kIPv6MulticastFlag_Prefix

Адрес многоадресной рассылки (1) основан на префиксе сети.

kIPv6MulticastFlag_Transient

Адрес многоадресной рассылки является (1) временным (т. е. назначается динамически), а не (0) общеизвестным (т. е. назначается IANA).

IPv6MulticastScope

 IPv6MulticastScope

Область группового адреса интернет-протокола.

Значения типа IPv6MulticastScope используются для вызова метода IPAddress::MakeIPv6Multicast() . Они указывают маршрутизируемую область группы многоадресной рассылки, обозначенную результатом. Эти номера зарегистрированы IETF в IANA.

Характеристики
kIPv6MulticastScope_Admin

Локальная область действия.

kIPv6MulticastScope_Global

Глобальный масштаб.

kIPv6MulticastScope_IPv4

Локальная область («IPv4»).

kIPv6MulticastScope_Interface

Локальная область интерфейса.

kIPv6MulticastScope_Link

Ссылка-локальная область действия.

kIPv6MulticastScope_Organization

Организационно-локальный масштаб.

kIPv6MulticastScope_Site

Локальная область действия.

Определения типов

Идентификатор интерфейса

struct netif * InterfaceId

Индикатор сетевых интерфейсов системы.

Переносимость зависит от того, чтобы этот псевдоним никогда не был свидетелем. В будущем он может быть заменен конкретным непрозрачным классом.

Обратите внимание: термин «идентификатор интерфейса» также традиционно относится к младшим 64 битам адреса IPv6 во всех соответствующих документах по стандартам IETF, где часто используется аббревиатура «IID». В этом тексте термин «индикатор интерфейса» относится к значениям псевдонима этого типа.

Переменные

sIOCTLSocket

int sIOCTLSocket = -1

Функции

CheckMulticastGroupArgs

INET_ERROR CheckMulticastGroupArgs(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

ЗакрытьIOCTLSocket

void CloseIOCTLSocket(
  void
)

Закройте глобальный сокет, созданный GetIOCTLSocket .

Эта функция предназначена для случаев, когда оставление открытого глобального сокета IOCTL будет зарегистрировано как утечка.

NB: эта функция НЕ является потокобезопасной по отношению к GetIOCTLSocket .

Форматинетлаереррор

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

При ошибке уровня Интернета возвращает удобочитаемую строку C с завершающим NULL, описывающую ошибку.

Подробности
Параметры
[in] buf
Буфер, в который будет помещена строка ошибки.
[in] bufSize
Размер предоставленного буфера в байтах.
[in] err
Ошибка, которую необходимо описать.
Возврат
true Если строка описания была записана в предоставленный буфер.
Возврат
false Если предоставленная ошибка не была ошибкой Inet Layer.

ПолучитьIOCTLSocket

int GetIOCTLSocket(
  void
)

Возвращает глобальный сокет общего назначения, полезный для вызова определенных сетевых IOCTL.

Эта функция является потокобезопасной на всех платформах.

Получить имя интерфейса

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

Получить имя сетевого интерфейса.

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.

Подробности
Параметры
[in] intfId
сетевой интерфейс
[in] nameBuf
область памяти для записи имени интерфейса
[in] nameBufSize
размер региона, обозначенного nameBuf
Возвращаемые значения
INET_NO_ERROR
успешный результат, имя интерфейса записано
INET_ERROR_NO_MEMORY
имя слишком велико для записи в буфер
other
другая ошибка системы или платформы

INET_IsInetEvent

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

Проверьте, является ли System::EventType допустимым типом события уровня Inet.

Подробности
Параметры
[in] aType
Тип события уровня системы Weave.
Возврат
true, если оно попадает в перечислимый диапазон; в противном случае ложь.

ИмяИнтерфейсаToId

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

Найдите в списке сетевых интерфейсов указанное имя.

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.

Подробности
Параметры
[in] intfName
имя сетевого интерфейса, который нужно найти
[out] intfId
индикатор сетевого интерфейса, который нужно назначить
Возвращаемые значения
INET_NO_ERROR
успех, указан сетевой интерфейс
INET_ERROR_UNKNOWN_INTERFACE
сетевой интерфейс не найден
other
другая ошибка системы или платформы

LwIPBindИнтерфейс

INET_ERROR LwIPBindInterface(
  struct raw_pcb *aRaw,
  InterfaceId intfId
)

LwIPBindИнтерфейс

INET_ERROR LwIPBindInterface(
  struct udp_pcb *aUDP,
  InterfaceId intfId
)

Сетевая маскаToPrefixLength

uint8_t NetmaskToPrefixLength(
  const uint8_t *netmask,
  uint16_t netmaskLen
)

Вычислите длину префикса по сетевой маске переменной длины.

Разбор хоста и порта

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

Анализируйте удобочитаемую строку, содержащую хост или IP-адрес и необязательный номер порта (разделенные знаком «:»), поддерживающую следующие форматы:

  • :
  • :
  • [ ]:

Подробности
Параметры
[in] aString
Удобная для человека строка для анализа.
[in] aStringLen
Длина строки aString в символах.
[out] aHost
Указатель на часть имени хоста анализируемой строки.
[out] aHostLen
Длина хоста в символах.
[out] aPort
Номер порта, если он присутствует и успешно проанализирован; в противном случае 0.
Возврат
INET_ERROR_INVALID_HOST_NAME Если анализируемые входные данные имеют нулевую длину или иным образом искажены.
Возврат
INET_ERROR_HOST_NAME_TOO_LONG Если имя хоста превышает 253 символа.
Возврат
INET_NO_ERROR В случае успеха.

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
)

Анализируйте удобочитаемую строку, содержащую хост или IP-адрес, необязательный номер порта (через ':') и необязательное имя интерфейса (через ''), поддерживая следующие форматы:

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

Подробности
Параметры
[in] aString
Удобная для человека строка для анализа.
[in] aStringLen
Длина строки aString в символах.
[out] aHost
Указатель на часть имени хоста анализируемой строки.
[out] aHostLen
Длина хоста в символах.
[out] aPort
Номер порта, если он присутствует и успешно проанализирован; в противном случае 0.
[out] aInterface
Указатель на интерфейсную часть анализируемой строки.
[out] aInterfaceLen
Длина интерфейса в символах.
Возврат
INET_ERROR_INVALID_HOST_NAME Если анализируемые входные данные имеют нулевую длину или иным образом искажены.
Возврат
INET_ERROR_HOST_NAME_TOO_LONG Если имя хоста превышает 253 символа.
Возврат
INET_NO_ERROR В случае успеха.

Регистринетлаереррорформаттер

void RegisterInetLayerErrorFormatter(
  void
)

Зарегистрируйте средство форматирования текстовых ошибок для ошибок Inet Layer.

СокетыIPv4ПрисоединитьсяВыйтиМногоадресная группа

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

СокетыIPv6ПрисоединитьсяВыйтиМногоадресная группа

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
)