Kaspersky IoT Secure Gateway 1000 SDK

Программа RoutingTable

23 января 2025

ID 246350

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

Чтобы получить доступ к API программы RoutingTable, скомпонуйте вашу программу с библиотекой, используя CMake-команду target_link_libraries().

CMakeLists.txt

target_link_libraries(${EXECUTABLE_NAME} ${routing_table_ROUTE_PROVIDER_LIB})

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;

}

...

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