Kaspersky IoT Secure Gateway 1000 SDK

Программа RoutingTable

30 июля 2024

ID 246350

Программа RoutingTable реализует таблицу маршрутизации данных между программами. Таблица маршрутизации в Kaspersky IoT Secure Gateway 1000 может содержать не более 256 записей маршрутов.

API программы RoutingTable предоставляет следующие интерфейсы:

  • IEndpointNameProvider

    Содержит метод, позволяющий получить имена конечных точек (endpoints) программ. Реализация метода осуществляется на стороне клиента.

  • IRouteProvider

    Содержит метод, позволяющий получить существующие записи маршрутов для программ.

Использование API программы RoutingTable вы можете посмотреть в примере routing_table_example_package.

Обратите внимание: имена конечных точек программ в Kaspersky IoT Secure Gateway 1000 должны быть уникальны. Уникальность имен конечных точек системой Kaspersky IoT Secure Gateway 1000 не проверяется. Корректная работоспособность программы RoutingTable при маршрутизации данных к разным конечным точкам с одинаковым именем не гарантируется.

Структура записи маршрута

Запись маршрута определена структурой applications::routing::Route. Одна или несколько записей маршрутов могут объединяться в вектор RouteList. Каждая запись маршрута содержит три параметра:

  • source

    Источник.

  • destination

    Получатель.

  • active

    Флаг, определяющий активен маршрут или нет.

Источник и получатель описываются структурой applications::routing::ApplicationEndpointName, содержащей идентификатор программы и ее конечную точку (endpoint). Одна или несколько структур applications::routing::ApplicationEndpointName могут объединяться в вектор ApplicationEndpointNameList.

Получение идентификаторов программ

API программы RoutingTable позволяет получить идентификатор программы с помощью следующих методов:

  • applications::routing::GetAppIdByTaskName()

    Метод возвращает идентификатор программы по входному значению имени задачи. Если идентификатор программы не найден, метод возвращает значение INVALID_APP_ID.

  • applications::routing::GetAppId()

    Метод возвращает идентификатор программы, статически скомпонованной с библиотекой программы RoutingTable. Если идентификатор программы не найден, метод возвращает значение INVALID_APP_ID.

Описание методов получения идентификатора программы представлено в файле /opt/KasperskyOS-SDK-KISG-Platform-<version>/sysroot-*-kos/include/component/secure_platform/routing_table/route_provider_api/application_id_api.h.

application_id_api.h (фрагмент)

...

namespace applications::routing {

AppId GetAppIdByTaskName(const std::string& task) noexcept;

AppId GetAppId() noexcept;

}

...

В этом разделе справки

Интерфейс IEndpointNameProvider

Интерфейс IRouteProvider

Вам помогла эта статья?
Что нам нужно улучшить?
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!