нл:: инет

Резюме

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

@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
При ошибке Inet Layer возвращает удобочитаемую строку C с завершающим нулем, описывающую ошибку.
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::Inet::DNSResolver

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

nl::Inet::EndPointBasis

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

nl:: Inet:: IP-адрес

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

nl::Inet::IPEndPointBasis

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

nl::Inet::IPPacketInfo

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

nl::Inet::IPPrefix

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

nl::Inet::InetLayer

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

nl::Inet::InetLayerBasis

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

nl:: Inet:: InterfaceAddressIterator

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

nl::Inet::InterfaceIterator

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

nl::Inet::RawEndPoint

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

nl::Inet::SocketEvents

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

нл:: Инет:: TCPEndPoint

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

nl::Inet::TunEndPoint

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

nl::Inet::UDPEndPoint

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

Союзы

nl::Inet::PeerSockAddr

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

nl::Inet::Платформа

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

@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.

IPV6MulticastGroup

 IPV6MulticastGroup

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

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

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

RFC 4291.

IP-версия

 IPVersion

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

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

IPv4.

kIPVersion_6

IPv6.

Флаг многоадресной рассылки IPv6

 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». В этом тексте термин «индикатор интерфейса» относится к значениям псевдонима этого типа.

Переменные

sIOCTLSокет

int sIOCTLSocket = -1

Функции

CheckMulticastGroupArgs

INET_ERROR CheckMulticastGroupArgs(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

Закрыть IOCTLSocket

void CloseIOCTLSocket(
  void
)

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

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

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

FormatInetLayerError

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

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

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

GetIOCTLSocket

int GetIOCTLSocket(
  void
)

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

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

GetInterfaceName

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 System Layer.
Возвращает
истина, если она попадает в перечисленный диапазон; в противном случае ложно.

InterfaceNameToId

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
другая ошибка системы или платформы

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
)

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

ParseHostAndPort

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
Длина в символах узла aHost.
[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
Длина в символах узла aHost.
[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.

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
)