IPv6

Этот модуль включает функции, управляющие связью IPv6.

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

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

anonymous enum {
OT_IP6_PROTO_HOP_OPTS = 0,
OT_IP6_PROTO_TCP = 6,
OT_IP6_PROTO_UDP = 17,
OT_IP6_PROTO_IP6 = 41,
OT_IP6_PROTO_ROUTING = 43,
OT_IP6_PROTO_FRAGMENT = 44,
OT_IP6_PROTO_ICMP6 = 58,
OT_IP6_PROTO_NONE = 59,
OT_IP6_PROTO_DST_OPTS = 60
}
перечисление
Номера интернет-протоколов.
anonymous enum {
OT_ADDRESS_ORIGIN_THREAD = 0,
OT_ADDRESS_ORIGIN_SLAAC = 1,
OT_ADDRESS_ORIGIN_DHCPV6 = 2,
OT_ADDRESS_ORIGIN_MANUAL = 3
}
перечисление
Происхождение адреса IPv6.
anonymous enum {
OT_ECN_NOT_CAPABLE = 0x0,
OT_ECN_CAPABLE_0 = 0x2,
OT_ECN_CAPABLE_1 = 0x1,
OT_ECN_MARKED = 0x3
}
перечисление
Статусы ECN, представленные в заголовке IP.

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

otBorderRoutingCounters определение типа
Представляет счетчики пакетов, пересылаемых через пограничную маршрутизацию.
otIp6Address определение типа
struct otIp6Address
Представляет адрес IPv6.
otIp6AddressCallback )(const otIp6AddressInfo *aAddressInfo, bool aIsAdded, void *aContext) определение типа
void(*
Указатель вызывается при добавлении или удалении внутреннего IPv6-адреса.
otIp6AddressComponents определение типа
Представляет компоненты адреса IPv6.
otIp6AddressInfo определение типа
Представляет информацию об адресе IPv6.
otIp6InterfaceIdentifier определение типа
Представляет идентификатор интерфейса IPv6-адреса.
otIp6NetworkPrefix определение типа
Представляет сетевой префикс адреса IPv6 (старшие 64 бита адреса).
otIp6Prefix определение типа
struct otIp6Prefix
Представляет префикс IPv6.
otIp6ReceiveCallback )(otMessage *aMessage, void *aContext) определение типа
void(*
Указатель вызывается при получении датаграммы IPv6.
otIp6RegisterMulticastListenersCallback )(void *aContext, otError aError, uint8_t aMlrStatus, const otIp6Address *aFailedAddresses, uint8_t aFailedAddressNum) определение типа
void(*
Указатель вызывается с результатами otIp6RegisterMulticastListeners .
otIp6SlaacPrefixFilter )(otInstance *aInstance, const otIp6Prefix *aPrefix) определение типа
bool(*
Указатель позволяет пользователю фильтровать префиксы и не разрешать добавление адреса SLAAC на основе префикса.
otMessageInfo определение типа
Представляет локальные и одноранговые адреса сокетов IPv6.
otNetifAddress определение типа
Представляет одноадресный адрес сетевого интерфейса IPv6.
otNetifMulticastAddress определение типа
Представляет адрес многоадресной рассылки сетевого интерфейса IPv6.
otPacketsAndBytes определение типа
Представляет счетчики пакетов и байтов.
otSockAddr определение типа
struct otSockAddr
Представляет адрес сокета IPv6.

Переменные

OT_TOOL_PACKED_END

Функции

otIp6AddUnicastAddress ( otInstance *aInstance, const otNetifAddress *aAddress)
Добавляет адрес сетевого интерфейса к интерфейсу потока.
otIp6AddUnsecurePort ( otInstance *aInstance, uint16_t aPort)
Добавляет порт в список разрешенных незащищенных портов.
otIp6AddressFromString (const char *aString, otIp6Address *aAddress)
Преобразует удобочитаемую строку адреса IPv6 в двоичное представление.
otIp6AddressToString (const otIp6Address *aAddress, char *aBuffer, uint16_t aSize)
void
Преобразует заданный адрес IPv6 в удобочитаемую строку.
otIp6ArePrefixesEqual (const otIp6Prefix *aFirst, const otIp6Prefix *aSecond)
bool
Проверьте, совпадают ли два префикса IPv6.
otIp6GetBorderRoutingCounters ( otInstance *aInstance)
Получает счетчики пограничной маршрутизации.
otIp6GetMulticastAddresses ( otInstance *aInstance)
Получает список адресов многоадресной рассылки IPv6, подписанных на интерфейс Thread.
otIp6GetPrefix (const otIp6Address *aAddress, uint8_t aLength, otIp6Prefix *aPrefix)
void
Получает префикс с aLength из aAddress .
otIp6GetUnicastAddresses ( otInstance *aInstance)
Получает список адресов IPv6, назначенных интерфейсу потока.
otIp6GetUnsecurePorts ( otInstance *aInstance, uint8_t *aNumEntries)
const uint16_t *
Возвращает указатель на список незащищенных портов.
otIp6HasUnicastAddress ( otInstance *aInstance, const otIp6Address *aAddress)
bool
Указывает, назначен ли одноадресный IPv6-адрес интерфейсу потока.
otIp6IsAddressEqual (const otIp6Address *aFirst, const otIp6Address *aSecond)
bool
Проверьте, совпадают ли два адреса IPv6.
otIp6IsAddressUnspecified (const otIp6Address *aAddress)
bool
Указывает, является ли данный адрес IPv6 неопределенным адресом.
otIp6IsEnabled ( otInstance *aInstance)
bool
Указывает, включен ли интерфейс IPv6.
otIp6IsMulticastPromiscuousEnabled ( otInstance *aInstance)
bool
Проверяет, включен ли неразборчивый режим многоадресной рассылки на интерфейсе Thread.
otIp6IsReceiveFilterEnabled ( otInstance *aInstance)
bool
Указывает, фильтруется ли трафик управления потоками при доставке датаграмм IPv6 через обратный вызов, указанный в otIp6SetReceiveCallback() .
otIp6IsSlaacEnabled ( otInstance *aInstance)
bool
Указывает, включен или нет модуль SLAAC.
otIp6NewMessage ( otInstance *aInstance, const otMessageSettings *aSettings)
Выделите новый буфер сообщений для отправки сообщения IPv6.
otIp6NewMessageFromBuffer ( otInstance *aInstance, const uint8_t *aData, uint16_t aDataLength, const otMessageSettings *aSettings)
Выделите новый буфер сообщений и запишите в него дейтаграмму IPv6 для отправки сообщения IPv6.
otIp6PrefixFromString (const char *aString, otIp6Prefix *aPrefix)
Преобразует удобочитаемую строку префикса IPv6 в двоичное представление.
otIp6PrefixMatch (const otIp6Address *aFirst, const otIp6Address *aSecond)
uint8_t
Возвращает длину совпадения префикса (в битах) для двух адресов IPv6.
otIp6PrefixToString (const otIp6Prefix *aPrefix, char *aBuffer, uint16_t aSize)
void
Преобразует заданный префикс IPv6 в удобочитаемую строку.
otIp6ProtoToString (uint8_t aIpProto)
const char *
Преобразует заданный номер IP-протокола в удобочитаемую строку.
otIp6RegisterMulticastListeners ( otInstance *aInstance, const otIp6Address *aAddresses, uint8_t aAddressNum, const uint32_t *aTimeout, otIp6RegisterMulticastListenersCallback aCallback, void *aContext)
Регистрирует прослушиватели многоадресной рассылки на основном магистральном маршрутизаторе.
otIp6RemoveAllUnsecurePorts ( otInstance *aInstance)
void
Удаляет все порты из списка разрешенных незащищенных портов.
otIp6RemoveUnicastAddress ( otInstance *aInstance, const otIp6Address *aAddress)
Удаляет адрес сетевого интерфейса из интерфейса потока.
otIp6RemoveUnsecurePort ( otInstance *aInstance, uint16_t aPort)
Удаляет порт из списка разрешенных незащищенных портов.
otIp6ResetBorderRoutingCounters ( otInstance *aInstance)
void
Сбрасывает счетчики пограничной маршрутизации.
otIp6SelectSourceAddress ( otInstance *aInstance, otMessageInfo *aMessageInfo)
Выполните выбор исходного адреса OpenThread.
otIp6Send ( otInstance *aInstance, otMessage *aMessage)
Отправляет датаграмму IPv6 через интерфейс Thread.
otIp6SetAddressCallback ( otInstance *aInstance, otIp6AddressCallback aCallback, void *aCallbackContext)
void
Регистрирует обратный вызов для уведомления об изменении внутреннего IPv6-адреса.
otIp6SetEnabled ( otInstance *aInstance, bool aEnabled)
Включает или выключает интерфейс IPv6.
otIp6SetMeshLocalIid ( otInstance *aInstance, const otIp6InterfaceIdentifier *aIid)
Устанавливает локальный IID Mesh (для целей тестирования).
otIp6SetMulticastPromiscuousEnabled ( otInstance *aInstance, bool aEnabled)
void
Включает или отключает беспорядочный режим многоадресной рассылки в интерфейсе Thread.
otIp6SetReceiveCallback ( otInstance *aInstance, otIp6ReceiveCallback aCallback, void *aCallbackContext)
void
Регистрирует обратный вызов для предоставления полученных датаграмм IPv6.
otIp6SetReceiveFilterEnabled ( otInstance *aInstance, bool aEnabled)
void
Устанавливает, фильтруется ли трафик управления потоками при доставке датаграмм IPv6 через обратный вызов, указанный в otIp6SetReceiveCallback() .
otIp6SetSlaacEnabled ( otInstance *aInstance, bool aEnabled)
void
Включает/отключает модуль SLAAC.
otIp6SetSlaacPrefixFilter ( otInstance *aInstance, otIp6SlaacPrefixFilter aFilter)
void
Устанавливает обработчик фильтра модуля SLAAC.
otIp6SockAddrToString (const otSockAddr *aSockAddr, char *aBuffer, uint16_t aSize)
void
Преобразует заданный адрес сокета IPv6 в удобочитаемую строку.
otIp6SubscribeMulticastAddress ( otInstance *aInstance, const otIp6Address *aAddress)
Подписывает интерфейс Thread на адрес многоадресной рассылки сетевого интерфейса.
otIp6UnsubscribeMulticastAddress ( otInstance *aInstance, const otIp6Address *aAddress)
Отменяет подписку интерфейса Thread на адрес многоадресной рассылки сетевого интерфейса.

Структуры

otBorderRoutingCounters

Представляет счетчики пакетов, пересылаемых через пограничную маршрутизацию.

otIp6Адрес

Представляет адрес IPv6.

otIp6AddressComponents

Представляет компоненты адреса IPv6.

otIp6AddressInfo

Представляет информацию об адресе IPv6.

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

Представляет идентификатор интерфейса IPv6-адреса.

otIp6NetworkPrefix

Представляет сетевой префикс адреса IPv6 (старшие 64 бита адреса).

otIp6Prefix

Представляет префикс IPv6.

отмессажеинфо

Представляет локальные и одноранговые адреса сокетов IPv6.

отнетифадрес

Представляет одноадресный адрес сетевого интерфейса IPv6.

otNetifMulticastAddress

Представляет адрес многоадресной рассылки сетевого интерфейса IPv6.

otPacketsAndBytes

Представляет счетчики пакетов и байтов.

otSockAddr

Представляет адрес сокета IPv6.

Союзы

otIp6InterfaceIdentifier::OT_TOOL_PACKED_FIELD

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

анонимное перечисление

 anonymous enum

Номера интернет-протоколов.

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

Параметры назначения для IPv6.

OT_IP6_PROTO_FRAGMENT

Заголовок фрагмента для IPv6.

OT_IP6_PROTO_HOP_OPTS

Пошаговый вариант IPv6.

OT_IP6_PROTO_ICMP6

ICMP для IPv6.

OT_IP6_PROTO_IP6

Инкапсуляция IPv6.

OT_IP6_PROTO_NONE

Нет следующего заголовка для IPv6.

OT_IP6_PROTO_ROUTING

Заголовок маршрутизации для IPv6.

OT_IP6_PROTO_TCP

Протокол управления передачей.

OT_IP6_PROTO_UDP

Пользовательская датаграмма.

анонимное перечисление

 anonymous enum

Происхождение адреса IPv6.

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

Адрес, назначенный DHCPv6.

OT_ADDRESS_ORIGIN_MANUAL

Адрес, присвоенный вручную.

OT_ADDRESS_ORIGIN_SLAAC

Адрес, присвоенный SLAAC.

OT_ADDRESS_ORIGIN_THREAD

Адрес, назначенный потоку (ALOC, RLOC, MLEID и т. д.)

анонимное перечисление

 anonymous enum

Статусы ECN, представленные в заголовке IP.

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

ДЭХ(0)

OT_ECN_CAPABLE_1

ДЭХ(1)

OT_ECN_MARKED

Обнаружена перегрузка (CE)

OT_ECN_NOT_CAPABLE

Не ЭСТ.

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

otBorderRoutingCounters

struct otBorderRoutingCounters otBorderRoutingCounters

Представляет счетчики пакетов, пересылаемых через пограничную маршрутизацию.

otIp6Адрес

struct otIp6Address otIp6Address

Представляет адрес IPv6.

otIp6AddressОбратный вызов

void(* otIp6AddressCallback)(const otIp6AddressInfo *aAddressInfo, bool aIsAdded, void *aContext)

Указатель вызывается при добавлении или удалении внутреннего IPv6-адреса.

Подробности
Параметры
[in] aAddressInfo
Указатель на информацию об адресе IPv6.
[in] aIsAdded
TRUE, если aAddress был добавлен, FALSE, если aAddress был удален.
[in] aContext
Указатель на контекст конкретного приложения.

otIp6AddressComponents

struct otIp6AddressComponents otIp6AddressComponents

Представляет компоненты адреса IPv6.

otIp6AddressInfo

struct otIp6AddressInfo otIp6AddressInfo

Представляет информацию об адресе IPv6.

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

struct otIp6InterfaceIdentifier otIp6InterfaceIdentifier

Представляет идентификатор интерфейса IPv6-адреса.

otIp6NetworkPrefix

struct otIp6NetworkPrefix otIp6NetworkPrefix

Представляет сетевой префикс адреса IPv6 (старшие 64 бита адреса).

otIp6Prefix

struct otIp6Prefix otIp6Prefix

Представляет префикс IPv6.

otIp6ReceiveCallback

void(* otIp6ReceiveCallback)(otMessage *aMessage, void *aContext)

Указатель вызывается при получении датаграммы IPv6.

Подробности
Параметры
[in] aMessage
Указатель на буфер сообщений, содержащий полученную датаграмму IPv6. Эта функция передает право собственности на aMessage получателю обратного вызова. Сообщение должно быть освобождено получателем обратного вызова после его обработки (см. otMessageFree() ).
[in] aContext
Указатель на контекст конкретного приложения.

otIp6RegisterMulticastListenersCallback

void(* otIp6RegisterMulticastListenersCallback)(void *aContext, otError aError, uint8_t aMlrStatus, const otIp6Address *aFailedAddresses, uint8_t aFailedAddressNum)

Указатель вызывается с результатами otIp6RegisterMulticastListeners .

Подробности
Параметры
[in] aContext
Указатель на контекст пользователя.
[in] aError
OT_ERROR_NONE, когда MLR.req успешно отправлен и получен MLR.rsp, OT_ERROR_RESPONSE_TIMEOUT, когда не удалось получить MLR.rsp, OT_ERROR_PARSE, когда не удалось проанализировать MLR.rsp.
[in] aMlrStatus
Состояние регистрации прослушивателя многоадресной рассылки, когда aError равна OT_ERROR_NONE.
[in] aFailedAddresses
Указатель на неудачные адреса IPv6, когда aError равна OT_ERROR_NONE.
[in] aFailedAddressNum
Количество неудачных адресов IPv6, когда aError равна OT_ERROR_NONE.
Смотрите также:
otIp6RegisterMulticastListeners

otIp6SlaacPrefixFilter

bool(* otIp6SlaacPrefixFilter)(otInstance *aInstance, const otIp6Prefix *aPrefix)

Указатель позволяет пользователю фильтровать префиксы и не разрешать добавление адреса SLAAC на основе префикса.

otIp6SetSlaacPrefixFilter() можно использовать для установки обработчика фильтра. Обработчик фильтра вызывается модулем SLAAC, когда он собирается добавить адрес SLAAC на основе префикса. Его логическое возвращаемое значение определяет, фильтруется ли адрес (не добавляется) или нет.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
[in] aPrefix
Указатель на префикс, для которого будет добавлен адрес SLAAC.
Возвращаемые значения
TRUE
Указывает, что адрес SLAAC на основе префикса следует фильтровать, а НЕ добавлять.
FALSE
Указывает, что следует добавить адрес SLAAC на основе префикса.

отмессажеинфо

struct otMessageInfo otMessageInfo

Представляет локальные и одноранговые адреса сокетов IPv6.

отнетифадрес

struct otNetifAddress otNetifAddress

Представляет одноадресный адрес сетевого интерфейса IPv6.

otNetifMulticastAddress

struct otNetifMulticastAddress otNetifMulticastAddress

Представляет адрес многоадресной рассылки сетевого интерфейса IPv6.

otPacketsAndBytes

struct otPacketsAndBytes otPacketsAndBytes

Представляет счетчики пакетов и байтов.

otSockAddr

struct otSockAddr otSockAddr

Представляет адрес сокета IPv6.

Переменные

OT_TOOL_PACKED_END

OT_TOOL_PACKED_BEGIN struct otIp6InterfaceIdentifier OT_TOOL_PACKED_END

Функции

otIp6AddUnicastAddress

otError otIp6AddUnicastAddress(
  otInstance *aInstance,
  const otNetifAddress *aAddress
)

Добавляет адрес сетевого интерфейса к интерфейсу потока.

Переданный экземпляр aAddress копируется интерфейсом Thread. Интерфейс Thread поддерживает только фиксированное количество добавляемых извне одноадресных адресов. См. OPENTHREAD_CONFIG_IP6_MAX_EXT_UCAST_ADDRS .

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
[in] aAddress
Указатель на адрес сетевого интерфейса.
Возвращаемые значения
OT_ERROR_NONE
Адрес сетевого интерфейса успешно добавлен (или обновлен).
OT_ERROR_INVALID_ARGS
IP-адрес, указанный aAddress , является внутренним адресом.
OT_ERROR_NO_BUFS
Сетевой интерфейс уже хранит максимально разрешенные внешние адреса.

otIp6AddUnsecurePort

otError otIp6AddUnsecurePort(
  otInstance *aInstance,
  uint16_t aPort
)

Добавляет порт в список разрешенных незащищенных портов.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
[in] aPort
Значение порта.
Возвращаемые значения
OT_ERROR_NONE
Порт был успешно добавлен в список разрешенных незащищенных портов.
OT_ERROR_INVALID_ARGS
Порт недействителен (значение 0 зарезервировано для внутреннего использования).
OT_ERROR_NO_BUFS
Список незащищенных портов заполнен.

otIp6AddressFromString

otError otIp6AddressFromString(
  const char *aString,
  otIp6Address *aAddress
)

Преобразует удобочитаемую строку адреса IPv6 в двоичное представление.

Подробности
Параметры
[in] aString
Указатель на строку, завершающуюся NULL.
[out] aAddress
Указатель на IPv6-адрес.
Возвращаемые значения
OT_ERROR_NONE
Успешно проанализирован aString и обновлен aAddress .
OT_ERROR_PARSE
Не удалось проанализировать aString как адрес IPv6.

отIp6AddressToString

void otIp6AddressToString(
  const otIp6Address *aAddress,
  char *aBuffer,
  uint16_t aSize
)

Преобразует заданный адрес IPv6 в удобочитаемую строку.

Строка адреса IPv6 форматируется как 16 шестнадцатеричных значений, разделенных символом «:» (т. е. «%x:%x:%x:...:%x»).

Если результирующая строка не помещается в aBuffer (в пределах символов aSize ), строка будет усечена, но выводимая строка всегда заканчивается нулем.

Подробности
Параметры
[in] aAddress
Указатель на адрес IPv6 (НЕ ДОЛЖЕН быть NULL).
[out] aBuffer
Указатель на массив символов для вывода строки (НЕ ДОЛЖЕН быть NULL).
[in] aSize
Размер aBuffer (в байтах). Рекомендуется использовать OT_IP6_ADDRESS_STRING_SIZE .

otIp6ArePrefixesEqual

bool otIp6ArePrefixesEqual(
  const otIp6Prefix *aFirst,
  const otIp6Prefix *aSecond
)

Проверьте, совпадают ли два префикса IPv6.

Подробности
Параметры
[in] aFirst
Указатель на первый префикс IPv6 для сравнения.
[in] aSecond
Указатель на второй префикс IPv6 для сравнения.
Возвращаемые значения
TRUE
Два префикса IPv6 одинаковы.
FALSE
Два префикса IPv6 не совпадают.

otIp6GetBorderRoutingCounters

const otBorderRoutingCounters * otIp6GetBorderRoutingCounters(
  otInstance *aInstance
)

Получает счетчики пограничной маршрутизации.

OPENTHREAD_CONFIG_IP6_BR_COUNTERS_ENABLE функция времени сборки должна быть включена.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
Возврат
Указатель на счетчики пограничной маршрутизации.

otIp6GetMulticastAddresses

const otNetifMulticastAddress * otIp6GetMulticastAddresses(
  otInstance *aInstance
)

Получает список адресов многоадресной рассылки IPv6, подписанных на интерфейс Thread.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
Возврат
Указатель на первый адрес многоадресной рассылки сетевого интерфейса.

otIp6GetPrefix

void otIp6GetPrefix(
  const otIp6Address *aAddress,
  uint8_t aLength,
  otIp6Prefix *aPrefix
)

Получает префикс с aLength из aAddress .

Подробности
Параметры
[in] aAddress
Указатель на IPv6-адрес.
[in] aLength
Длина префикса в битах.
[out] aPrefix
Указатель для вывода префикса IPv6.

otIp6GetUnicastAddresses

const otNetifAddress * otIp6GetUnicastAddresses(
  otInstance *aInstance
)

Получает список адресов IPv6, назначенных интерфейсу потока.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
Возврат
Указатель на первый адрес сетевого интерфейса.

otIp6GetUnsecurePorts

const uint16_t * otIp6GetUnsecurePorts(
  otInstance *aInstance,
  uint8_t *aNumEntries
)

Возвращает указатель на список незащищенных портов.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
[out] aNumEntries
Количество записей в списке.
Возврат
Указатель на список незащищенных портов.

otIp6HasUnicastAddress

bool otIp6HasUnicastAddress(
  otInstance *aInstance,
  const otIp6Address *aAddress
)

Указывает, назначен ли одноадресный IPv6-адрес интерфейсу потока.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
[in] aAddress
Указатель на одноадресный адрес.
Возвращаемые значения
TRUE
Если aAddress назначен интерфейсу Thread.
FALSE
Если aAddress не назначен интерфейсу Thread.

otIp6IsAddressEqual

bool otIp6IsAddressEqual(
  const otIp6Address *aFirst,
  const otIp6Address *aSecond
)

Проверьте, совпадают ли два адреса IPv6.

Подробности
Параметры
[in] aFirst
Указатель на первый IPv6-адрес для сравнения.
[in] aSecond
Указатель на второй IPv6-адрес для сравнения.
Возвращаемые значения
TRUE
Два адреса IPv6 одинаковы.
FALSE
Два адреса IPv6 не совпадают.

otIp6IsAddressUnspecified

bool otIp6IsAddressUnspecified(
  const otIp6Address *aAddress
)

Указывает, является ли данный адрес IPv6 неопределенным адресом.

Подробности
Параметры
[in] aAddress
Указатель на IPv6-адрес.
Возвращаемые значения
TRUE
Если адрес IPv6 является неуказанным адресом.
FALSE
Если адрес IPv6 не является неопределенным адресом.

otIp6IsEnabled

bool otIp6IsEnabled(
  otInstance *aInstance
)

Указывает, включен ли интерфейс IPv6.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
Возвращаемые значения
TRUE
Интерфейс IPv6 включен.
FALSE
Интерфейс IPv6 отключен.

otIp6IsMulticastPromiscousEnabled

bool otIp6IsMulticastPromiscuousEnabled(
  otInstance *aInstance
)

Проверяет, включен ли неразборчивый режим многоадресной рассылки на интерфейсе Thread.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
Смотрите также:
otIp6SetMulticastPromiscousEnabled

otIp6IsReceiveFilterEnabled

bool otIp6IsReceiveFilterEnabled(
  otInstance *aInstance
)

Указывает, фильтруется ли трафик управления потоками при доставке датаграмм IPv6 через обратный вызов, указанный в otIp6SetReceiveCallback() .

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
Возврат
TRUE, если трафик управления потоками отфильтровывается, в противном случае FALSE.
Смотрите также:
otIp6SetReceiveCallback
otIp6SetReceiveFilterEnabled

otIp6IsSlaacEnabled

bool otIp6IsSlaacEnabled(
  otInstance *aInstance
)

Указывает, включен или нет модуль SLAAC.

Должна быть включена функция OPENTHREAD_CONFIG_IP6_SLAAC_ENABLE во время сборки.

Подробности
Возвращаемые значения
TRUE
Модуль SLAAC включен.
FALSE
Модуль SLAAC отключен.

otIp6NewMessage

otMessage * otIp6NewMessage(
  otInstance *aInstance,
  const otMessageSettings *aSettings
)

Выделите новый буфер сообщений для отправки сообщения IPv6.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
[in] aSettings
Указатель на настройки сообщения или NULL, чтобы установить настройки по умолчанию.
Возврат
Указатель на буфер сообщений или NULL, если буферы сообщений недоступны или параметры недопустимы.
Смотрите также:
otMessageFree

otIp6NewMessageFromBuffer

otMessage * otIp6NewMessageFromBuffer(
  otInstance *aInstance,
  const uint8_t *aData,
  uint16_t aDataLength,
  const otMessageSettings *aSettings
)

Выделите новый буфер сообщений и запишите в него дейтаграмму IPv6 для отправки сообщения IPv6.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
[in] aData
Указатель на буфер датаграмм IPv6.
[in] aDataLength
Размер буфера датаграмм IPv6, на который указывает aData .
[in] aSettings
Указатель на настройки сообщения или NULL, чтобы установить настройки по умолчанию.
Возврат
Указатель на сообщение или NULL, если доступен неверный заголовок IPv6 или недостаточно буферов сообщений.
Смотрите также:
otMessageFree

otIp6PrefixFromString

otError otIp6PrefixFromString(
  const char *aString,
  otIp6Prefix *aPrefix
)

Преобразует удобочитаемую строку префикса IPv6 в двоичное представление.

Параметр aString должен быть строкой в ​​формате "

/ ", где
это IPv6-адрес и длина префикса.

Подробности
Параметры
[in] aString
Указатель на строку, завершающуюся NULL.
[out] aPrefix
Указатель на префикс IPv6.
Возвращаемые значения
OT_ERROR_NONE
Строка успешно проанализирована как префикс IPv6 и обновлена aPrefix .
OT_ERROR_PARSE
Не удалось проанализировать aString как префикс IPv6.

otIp6PrefixMatch

uint8_t otIp6PrefixMatch(
  const otIp6Address *aFirst,
  const otIp6Address *aSecond
)

Возвращает длину совпадения префикса (в битах) для двух адресов IPv6.

Подробности
Параметры
[in] aFirst
Указатель на первый адрес IPv6.
[in] aSecond
Указатель на второй адрес IPv6.
Возврат
Длина соответствия префикса в битах.

otIp6PrefixToString

void otIp6PrefixToString(
  const otIp6Prefix *aPrefix,
  char *aBuffer,
  uint16_t aSize
)

Преобразует заданный префикс IPv6 в удобочитаемую строку.

Строка адреса IPv6 форматируется как «%x:%x:%x:...[::]/plen».

Если результирующая строка не помещается в aBuffer (в пределах символов aSize ), строка будет усечена, но выводимая строка всегда заканчивается нулем.

Подробности
Параметры
[in] aPrefix
Указатель на префикс IPv6 (НЕ ДОЛЖЕН быть NULL).
[out] aBuffer
Указатель на массив символов для вывода строки (НЕ ДОЛЖЕН быть NULL).
[in] aSize
Размер aBuffer (в байтах). Рекомендуется использовать OT_IP6_PREFIX_STRING_SIZE .

otIp6ProtoToString

const char * otIp6ProtoToString(
  uint8_t aIpProto
)

Преобразует заданный номер IP-протокола в удобочитаемую строку.

Подробности
Параметры
[in] aIpProto
Номер IP-протокола (перечисление OT_IP6_PROTO_* ).
Возврат
Строка, представляющая aIpProto .

otIp6RegisterMulticastListeners

otError otIp6RegisterMulticastListeners(
  otInstance *aInstance,
  const otIp6Address *aAddresses,
  uint8_t aAddressNum,
  const uint32_t *aTimeout,
  otIp6RegisterMulticastListenersCallback aCallback,
  void *aContext
)

Регистрирует прослушиватели многоадресной рассылки на основном магистральном маршрутизаторе.

OPENTHREAD_CONFIG_TMF_PROXY_MLR_ENABLE и OPENTHREAD_CONFIG_COMMISSIONER_ENABLE должны быть включены.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
[in] aAddresses
Массив адресов многоадресной рассылки для регистрации.
[in] aAddressNum
Количество регистрируемых адресов многоадресной рассылки (0, если aAddresses имеет значение NULL).
[in] aTimeout
Указатель на значение тайм-аута (в секундах), которое необходимо включить в MLR.req. Значение таймаута 0 удаляет соответствующий прослушиватель многоадресной рассылки. Если NULL, MLR.req по умолчанию не будет иметь Timeout Tlv.
[in] aCallback
Указатель на функцию обратного вызова.
[in] aContext
Указатель на контекст пользователя.
Возвращаемые значения
OT_ERROR_NONE
MLR.req успешно отправлен. aCallback будет вызываться, если этот метод возвращает OT_ERROR_NONE.
OT_ERROR_BUSY
Если предыдущая регистрация продолжалась.
OT_ERROR_INVALID_ARGS
Если один или несколько аргументов недействительны.
OT_ERROR_INVALID_STATE
Если устройство не было в состоянии, позволяющем отправлять MLR.req (например, Commissioner не запущен, основной магистральный маршрутизатор не найден).
OT_ERROR_NO_BUFS
Если недостаточно доступных буферов сообщений.
Смотрите также:
otIp6RegisterMulticastListenersCallback

otIp6RemoveAllUnsecurePorts

void otIp6RemoveAllUnsecurePorts(
  otInstance *aInstance
)

Удаляет все порты из списка разрешенных незащищенных портов.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.

otIp6RemoveUnicastAddress

otError otIp6RemoveUnicastAddress(
  otInstance *aInstance,
  const otIp6Address *aAddress
)

Удаляет адрес сетевого интерфейса из интерфейса потока.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
[in] aAddress
Указатель на IP-адрес.
Возвращаемые значения
OT_ERROR_NONE
Адрес сетевого интерфейса успешно удален.
OT_ERROR_INVALID_ARGS
IP-адрес, указанный aAddress , является внутренним адресом.
OT_ERROR_NOT_FOUND
IP-адрес, указанный aAddress , не найден.

otIp6RemoveUnsecurePort

otError otIp6RemoveUnsecurePort(
  otInstance *aInstance,
  uint16_t aPort
)

Удаляет порт из списка разрешенных незащищенных портов.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
[in] aPort
Значение порта.
Возвращаемые значения
OT_ERROR_NONE
Порт успешно удален из списка разрешенных незащищенных портов.
OT_ERROR_INVALID_ARGS
Порт недействителен (значение 0 зарезервировано для внутреннего использования).
OT_ERROR_NOT_FOUND
Порт не найден в списке незащищенных портов.

otIp6ResetBorderRoutingCounters

void otIp6ResetBorderRoutingCounters(
  otInstance *aInstance
)

Сбрасывает счетчики пограничной маршрутизации.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.

otIp6SelectSourceAddress

otError otIp6SelectSourceAddress(
  otInstance *aInstance,
  otMessageInfo *aMessageInfo
)

Выполните выбор исходного адреса OpenThread.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
[in,out] aMessageInfo
Указатель на информацию сообщения.
Возвращаемые значения
OT_ERROR_NONE
Нашел исходный адрес и заполнил его в mSockAddr aMessageInfo .
OT_ERROR_NOT_FOUND
Исходный адрес не найден, aMessageInfo не изменен.

otIp6Send

otError otIp6Send(
  otInstance *aInstance,
  otMessage *aMessage
)

Отправляет датаграмму IPv6 через интерфейс Thread.

Вызывающая сторона передает право собственности на aMessage при совершении этого вызова. OpenThread освободит aMessage после завершения обработки, в том числе когда возвращается значение, отличное от OT_ERROR_NONE .

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
[in] aMessage
Указатель на буфер сообщений, содержащий датаграмму IPv6.
Возвращаемые значения
OT_ERROR_NONE
Сообщение успешно обработано.
OT_ERROR_DROP
Сообщение было правильно сформировано, но не было полностью обработано из-за правил обработки пакетов.
OT_ERROR_NO_BUFS
Не удалось выделить необходимые буферы сообщений при обработке дейтаграммы.
OT_ERROR_NO_ROUTE
Нет маршрута к хосту.
OT_ERROR_INVALID_SOURCE_ADDRESS
Адрес источника недействителен, например адрес произвольной рассылки или адрес многоадресной рассылки.
OT_ERROR_PARSE
При обработке сообщения обнаружен неверный заголовок.
OT_ERROR_INVALID_ARGS
Метаданные сообщения недействительны, например, в качестве источника сообщения используется OT_MESSAGE_ORIGIN_THREAD_NETIF .

otIp6SetAddressCallback

void otIp6SetAddressCallback(
  otInstance *aInstance,
  otIp6AddressCallback aCallback,
  void *aCallbackContext
)

Регистрирует обратный вызов для уведомления об изменении внутреннего IPv6-адреса.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
[in] aCallback
Указатель на функцию, которая вызывается при добавлении или удалении внутреннего IPv6-адреса. NULL, чтобы отключить обратный вызов.
[in] aCallbackContext
Указатель на контекст конкретного приложения.

отIp6SetEnabled

otError otIp6SetEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Включает или выключает интерфейс IPv6.

Вызовите это, чтобы включить или отключить связь IPv6.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
[in] aEnabled
TRUE для включения IPv6, FALSE в противном случае.
Возвращаемые значения
OT_ERROR_NONE
Успешно включил/отключил интерфейс IPv6.
OT_ERROR_INVALID_STATE
Интерфейс IPv6 недоступен, поскольку устройство работает в режиме необработанного соединения (применимо только при включенной функции OPENTHREAD_CONFIG_LINK_RAW_ENABLE ).

otIp6SetMeshLocalIid

otError otIp6SetMeshLocalIid(
  otInstance *aInstance,
  const otIp6InterfaceIdentifier *aIid
)

Устанавливает локальный IID Mesh (для целей тестирования).

Требуется OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE .

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
[in] aIid
Указатель на локальный IID Mesh, который необходимо установить.
Возвращаемые значения
OT_ERROR_NONE
Успешно установили локальный IID Mesh.
OT_ERROR_INVALID_STATE
Протоколы потоков включены.

otIp6SetMulticastPromiscousEnabled

void otIp6SetMulticastPromiscuousEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Включает или отключает беспорядочный режим многоадресной рассылки в интерфейсе Thread.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
[in] aEnabled
TRUE для включения режима многоадресной рассылки, в противном случае FALSE.
Смотрите также:
otIp6IsMulticastPromiscousEnabled

otIp6SetReceiveCallback

void otIp6SetReceiveCallback(
  otInstance *aInstance,
  otIp6ReceiveCallback aCallback,
  void *aCallbackContext
)

Регистрирует обратный вызов для предоставления полученных датаграмм IPv6.

По умолчанию этот обратный вызов не передает трафик управления потоками. См. otIp6SetReceiveFilterEnabled() , чтобы изменить настройку фильтра трафика управления потоками.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
[in] aCallback
Указатель на функцию, которая вызывается при получении датаграммы IPv6, или NULL, чтобы отключить обратный вызов.
[in] aCallbackContext
Указатель на контекст конкретного приложения.
Смотрите также:
otIp6IsReceiveFilterEnabled
otIp6SetReceiveFilterEnabled

otIp6SetReceiveFilterEnabled

void otIp6SetReceiveFilterEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Устанавливает, фильтруется ли трафик управления потоками при доставке датаграмм IPv6 через обратный вызов, указанный в otIp6SetReceiveCallback() .

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
[in] aEnabled
TRUE, если трафик управления потоками отфильтровывается, в противном случае FALSE.
Смотрите также:
otIp6SetReceiveCallback
отисрецеивеип6филтеренаблед

otIp6SetSlaacEnabled

void otIp6SetSlaacEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Включает/отключает модуль SLAAC.

Должна быть включена функция OPENTHREAD_CONFIG_IP6_SLAAC_ENABLE во время сборки.

Когда модуль SLAAC включен, адреса SLAAC (на основе префиксов в сети в сетевых данных) добавляются к интерфейсу. Когда модуль SLAAC отключен, любой ранее добавленный адрес SLAAC удаляется.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
[in] aEnabled
TRUE для включения, FALSE для отключения.

otIp6SetSlaacPrefixFilter

void otIp6SetSlaacPrefixFilter(
  otInstance *aInstance,
  otIp6SlaacPrefixFilter aFilter
)

Устанавливает обработчик фильтра модуля SLAAC.

Должна быть включена функция OPENTHREAD_CONFIG_IP6_SLAAC_ENABLE во время сборки.

Обработчик фильтра вызывается модулем SLAAC, когда он собирается добавить адрес SLAAC на основе префикса, чтобы решить, следует ли добавлять адрес или нет.

Обработчик фильтра NULL отключает фильтрацию и позволяет добавлять все адреса SLAAC.

Если эта функция не вызывается, фильтр по умолчанию, используемый модулем SLAAC, будет NULL (фильтрация отключена).

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
[in] aFilter
Указатель на обработчик фильтра префикса SLAAC или NULL для отключения фильтрации.

otIp6SockAddrToString

void otIp6SockAddrToString(
  const otSockAddr *aSockAddr,
  char *aBuffer,
  uint16_t aSize
)

Преобразует заданный адрес сокета IPv6 в удобочитаемую строку.

Строка адреса сокета IPv6 форматируется как [ address ]: port , где address отображается как 16 шестнадцатеричных значений, разделенных : а port — это номер порта в десятичном формате, например «[%x:%x:...:%x ]:%u".

Если результирующая строка не помещается в aBuffer (в пределах символов aSize ), строка будет усечена, но выводимая строка всегда заканчивается нулем.

Подробности
Параметры
[in] aSockAddr
Указатель на адрес сокета IPv6 (НЕ ДОЛЖЕН быть NULL).
[out] aBuffer
Указатель на массив символов для вывода строки (НЕ ДОЛЖЕН быть NULL).
[in] aSize
Размер aBuffer (в байтах). Рекомендуется использовать OT_IP6_SOCK_ADDR_STRING_SIZE .

otIp6SubscribeMulticastAddress

otError otIp6SubscribeMulticastAddress(
  otInstance *aInstance,
  const otIp6Address *aAddress
)

Подписывает интерфейс Thread на адрес многоадресной рассылки сетевого интерфейса.

Переданный экземпляр aAddress будет скопирован интерфейсом Thread. Интерфейс Thread поддерживает только фиксированное количество добавленных извне адресов многоадресной рассылки. См. OPENTHREAD_CONFIG_IP6_MAX_EXT_MCAST_ADDRS .

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
[in] aAddress
Указатель на IP-адрес.
Возвращаемые значения
OT_ERROR_NONE
Успешная подписка на адрес многоадресной рассылки сетевого интерфейса.
OT_ERROR_ALREADY
Адрес многоадресной рассылки уже подписан.
OT_ERROR_INVALID_ARGS
IP-адрес, указанный aAddress , является недопустимым адресом многоадресной рассылки.
OT_ERROR_REJECTED
IP-адрес, указанный aAddress , является внутренним адресом многоадресной рассылки.
OT_ERROR_NO_BUFS
Сетевой интерфейс уже хранит максимально разрешенные внешние адреса многоадресной рассылки.

otIp6Отменить подпискуАдрес многоадресной рассылки

otError otIp6UnsubscribeMulticastAddress(
  otInstance *aInstance,
  const otIp6Address *aAddress
)

Отменяет подписку интерфейса Thread на адрес многоадресной рассылки сетевого интерфейса.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
[in] aAddress
Указатель на IP-адрес.
Возвращаемые значения
OT_ERROR_NONE
Успешно отписана подписка на адрес многоадресной рассылки сетевого интерфейса.
OT_ERROR_REJECTED
IP-адрес, указанный aAddress , является внутренним адресом.
OT_ERROR_NOT_FOUND
IP-адрес, указанный aAddress , не найден.

Макросы

OT_IP6_ADDRESS_SIZE

 OT_IP6_ADDRESS_SIZE 16

Размер IPv6-адреса (байты)

OT_IP6_ADDRESS_STRING_SIZE

 OT_IP6_ADDRESS_STRING_SIZE 40

Рекомендуемый размер для строкового представления адреса IPv6.

OT_IP6_HEADER_PROTO_OFFSET

 OT_IP6_HEADER_PROTO_OFFSET 6

Смещение поля proto в заголовке IPv6 (байты)

OT_IP6_HEADER_SIZE

 OT_IP6_HEADER_SIZE 40

Размер заголовка IPv6 (в байтах)

OT_IP6_IID_SIZE

 OT_IP6_IID_SIZE 8

Размер идентификатора интерфейса IPv6 (в байтах)

OT_IP6_MAX_MLR_ADDRESSES

 OT_IP6_MAX_MLR_ADDRESSES 15

Максимальное количество адресов IPv6, поддерживаемых регистрацией прослушивателя многоадресной рассылки.

OT_IP6_PREFIX_BITSIZE

 OT_IP6_PREFIX_BITSIZE (OT_IP6_PREFIX_SIZE * 8)

Размер префикса IPv6 (биты)

OT_IP6_PREFIX_SIZE

 OT_IP6_PREFIX_SIZE 8

Размер префикса IPv6 (в байтах)

OT_IP6_PREFIX_STRING_SIZE

 OT_IP6_PREFIX_STRING_SIZE 45

Рекомендуемый размер строкового представления префикса IPv6.

OT_IP6_SOCK_ADDR_STRING_SIZE

 OT_IP6_SOCK_ADDR_STRING_SIZE 48

Рекомендуемый размер для строкового представления адреса сокета IPv6.

Ресурсы

Справочные разделы API OpenThread взяты из исходного кода, доступного на GitHub . Для получения дополнительной информации или внесения вклада в нашу документацию обратитесь к Ресурсам .