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

Typedefs

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

Структуры

otIp6Address

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

otIp6AddressComponents

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

otIp6AddressInfo

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

otIp6InterfaceIdentifier

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

otIp6NetworkPrefix

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

otIp6Prefix

Эта структура представляет собой префикс 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

ECT (0)

OT_ECN_CAPABLE_1

ECT (1)

OT_ECN_MARKED

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

OT_ECN_NOT_CAPABLE

Без ECT.

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

 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

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

Typedefs

otIp6Address

struct otIp6Address otIp6Address

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

otIp6AddressCallback

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 старших разряда адреса).

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
Статус регистрации Multicast Listener , когда 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] aInstacne
Указатель на экземпляр 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
)

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

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

otIp6IsReceiveFilterEnabled

bool otIp6IsReceiveFilterEnabled(
  otInstance *aInstance
)

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

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
Возврат
ИСТИНА, если трафик управления потоком отфильтрован, иначе - ЛОЖЬ.
Смотрите также:
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 .

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
Количество Multicast адреса для регистрации (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 не запущен, Primary Backbone Router не найден).
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 неизменно.

otIp6Send

otError otIp6Send(
  otInstance *aInstance,
  otMessage *aMessage
)

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

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

otIp6SetAddressCallback

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
)

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

Подробности
Параметры
[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
ИСТИНА, если трафик управления потоком отфильтрован, иначе - ЛОЖЬ.
Смотрите также:
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 .

otIp6ПодписатьсяMulticastAddress

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

otIp6Отписаться

otError otIp6UnsubscribeMulticastAddress(
  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 не был найден.

Макросы

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