Программа 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;
}
...