IPv6

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

Резюме

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

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.
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
}
перечисление
Номера интернет-протокола.

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

otIp6Address определение типа
struct otIp6Address
Эта структура представляет адрес IPv6.
otIp6AddressCallback )(const otIp6AddressInfo *aAddressInfo, bool aIsAdded, void *aContext) определение типа
void(*
Этот указатель функции вызывается при добавлении или удалении внутреннего IPv6-адреса.
otIp6AddressComponents определение типа
Эта структура представляет компоненты адреса IPv6.
otIp6AddressInfo определение типа
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.
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.
otIp6GetMulticastAddresses ( otInstance *aInstance)
Получите список многоадресных адресов IPv6, подписанных на интерфейс Thread.
otIp6GetUnicastAddresses ( otInstance *aInstance)
Получите список IPv6-адресов, назначенных интерфейсу Thread.
otIp6GetUnsecurePorts ( otInstance *aInstance, uint8_t *aNumEntries)
const uint16_t *
Эта функция возвращает указатель на список незащищенных портов.
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.
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)
Эта функция удаляет порт из списка разрешенных незащищенных портов.
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)
Эта функция устанавливает Mesh Local IID (в целях тестирования).
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)
Подпишите интерфейс потока на многоадресный адрес сетевого интерфейса.
otIp6UnsubscribeMulticastAddress ( otInstance *aInstance, const otIp6Address *aAddress)
Отмените подписку интерфейса потока на многоадресный адрес сетевого интерфейса.

Структуры

otIp6Адрес

Эта структура представляет адрес IPv6.

otIp6AddressComponents

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

otIp6AddressInfo

Эта структура представляет информацию об адресе IPv6.

otIp6InterfaceIdentifier

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

otIp6NetworkPrefix

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

префикс otIp6

Эта структура представляет собой префикс IPv6.

otMessageInfo

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

otNetifAddress

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

otNetifMulticastAddress

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

otSockAddr

Эта структура представляет адрес сокета IPv6.

Союзы

otIp6InterfaceIdentifier:: OT_TOOL_PACKED_FIELD

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

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

 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

Без ЭСТ.

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

 anonymous enum

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

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

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

OT_IP6_PROTO_FRAGMENT

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

OT_IP6_PROTO_HOP_OPTS

Опция IPv6 Hop-by-Hop.

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

Дейтаграмма пользователя.

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

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

otIp6InterfaceIdentifier

struct otIp6InterfaceIdentifier otIp6InterfaceIdentifier

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

otIp6NetworkPrefix

struct otIp6NetworkPrefix otIp6NetworkPrefix

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

префикс otIp6

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 .
[in] aFailedAddresses
Указатель на сбойные IPv6-адреса, когда aError имеет значение OT_ERROR_NONE.
[in] aFailedAddressNum
Количество неудачных IPv6-адресов, когда ошибка равна aError .
Смотрите также:
otIp6RegisterMulticastListeners

otIp6SlaacPrefixФильтр

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

Этот указатель функции позволяет пользователю фильтровать префиксы и запрещать добавление адреса SLAAC на основе префикса.

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

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

otMessageInfo

struct otMessageInfo otMessageInfo

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

otNetifAddress

struct otNetifAddress otNetifAddress

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

otNetifMulticastAddress

struct otNetifMulticastAddress otNetifMulticastAddress

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

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
Указатель на строку с нулевым завершением.
[out] aAddress
Указатель на адрес IPv6.
Возвращаемые значения
OT_ERROR_NONE
Успешно проанализирована строка.
OT_ERROR_INVALID_ARGS
Не удалось разобрать строку.

otIp6AddressToString

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 не совпадают.

otIp6GetMulticastAddresses

const otNetifMulticastAddress * otIp6GetMulticastAddresses(
  otInstance *aInstance
)

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

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

otIp6GetUnicastAddresses

const otNetifAddress * otIp6GetUnicastAddresses(
  otInstance *aInstance
)

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

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

otIp6GetUnsecurePorts

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

Эта функция возвращает указатель на список незащищенных портов.

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

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 отключен.

otIp6IsMulticastPromiscuousEnabled

bool otIp6IsMulticastPromiscuousEnabled(
  otInstance *aInstance
)

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

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

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

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 .

otIp6ProtoString

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 (например, Комиссар не запущен, Первичный магистральный маршрутизатор не найден).
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
Порт не найден в списке незащищенных портов.

otIp6SelectSourceAddress

otError otIp6SelectSourceAddress(
  otInstance *aInstance,
  otMessageInfo *aMessageInfo
)

Эта функция выполняет выбор исходного адреса OpenThread.

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

otIp6Отправить

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
При обработке сообщения обнаружен неверный заголовок.

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

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

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

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

otIp6SetEnabled

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
)

Эта функция устанавливает Mesh Local IID (в целях тестирования).

Доступно только при OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE .

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

otIp6SetMulticastPromiscuousEnabled

void otIp6SetMulticastPromiscuousEnabled(
  otInstance *aInstance,
  bool aEnabled
)

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

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

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
otIsReceiveIp6FilterEnabled

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 имеет формат «[

]: "где`
отображается как 16 шестнадцатеричных значений, разделенных знаком ':' и это номер порта в десятичном формате (т.е. "[%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
)

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

Переданный в экземпляре 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
Сетевой интерфейс уже хранит максимально допустимые внешние многоадресные адреса.

otIp6UnsubscribeMulticastAddress

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

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

Подробности
Параметры
[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_IID_SIZE

 OT_IP6_IID_SIZE 8

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

OT_IP6_MAX_MLR_АДРЕСЫ

 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 . Чтобы получить дополнительную информацию или внести свой вклад в нашу документацию, обратитесь к разделу Ресурсы .