diff --git a/proto/analytics_frontend.proto b/proto/analytics_frontend.proto index c37acceaafd5c36b0372fc0e21edde7778965f77..096c1ee035ae663359d9f4df1e071d3997a0d351 100644 --- a/proto/analytics_frontend.proto +++ b/proto/analytics_frontend.proto @@ -1,9 +1,23 @@ +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + syntax = "proto3"; -package device; +package analytics_frontend; import "context.proto"; import "kpi_manager.proto"; -import "kpi_sample_types.proto"; +//import "kpi_sample_types.proto"; service AnalyticsFrontendService { rpc StartAnalyzer (Analyzer ) returns (AnalyzerId ) {} @@ -15,33 +29,39 @@ message AnalyzerId { context.Uuid analyzer_id = 1; } -enum AnalyzerMode { - ANALYZERMODE_BATCH = 0; - ANALYZERMODE_STRAMING = 1; +enum AnalyzerOperationMode { + ANALYZEROPERATIONMODE_BATCH = 0; + ANALYZEROPERATIONMODE_STREAMING = 1; } message Analyzer { - repeated kpi_manager.KpiId kpi_id = 1; // The KPI Ids to be processed by the analyzer - AnalyzerMode mode = 2; // Operation mode of the analyzer - float batch_min_duration_s = 3; // In batch mode, min duration to collect before executing batch - float batch_max_duration_s = 4; // In batch mode, max duration collected to execute the batch - uint64 batch_min_size = 5; // In batch mode, min number of samples to collect before executing batch - uint64 batch_max_size = 6; // In batch mode, max number of samples collected to execute the batch + string algorithm_name = 1; // The algorithm to be executed + repeated kpi_manager.KpiId input_kpi_ids = 2; // The KPI Ids to be processed by the analyzer + repeated kpi_manager.KpiId output_kpi_ids = 3; // The KPI Ids produced by the analyzer + AnalyzerOperationMode operation_mode = 4; // Operation mode of the analyzer + + // In batch mode... + float batch_min_duration_s = 5; // ..., min duration to collect before executing batch + float batch_max_duration_s = 6; // ..., max duration collected to execute the batch + uint64 batch_min_size = 7; // ..., min number of samples to collect before executing batch + uint64 batch_max_size = 8; // ..., max number of samples collected to execute the batch } message AnalyzerFilter { // Analyzer that fulfill the filter are those that match ALL the following fields. // An empty list means: any value is accepted. // All fields empty means: list all Analyzers - repeated AnalyzerId analyzer_id = 1; - repeated kpi_manager.KpiId kpi_id = 2; - repeated kpi_sample_types.KpiSampleType kpi_sample_type = 3; - repeated context.DeviceId device_id = 4; - repeated context.EndPointId endpoint_id = 5; - repeated context.ServiceId service_id = 6; - repeated context.SliceId slice_id = 7; - repeated context.ConnectionId connection_id = 8; - repeated context.LinkId link_id = 9; + repeated AnalyzerId analyzer_id = 1; + repeated string algorithm_names = 2; + repeated kpi_manager.KpiId input_kpi_ids = 3; + repeated kpi_manager.KpiId output_kpi_ids = 4; + //repeated kpi_sample_types.KpiSampleType kpi_sample_type = 5; // Not implemented + //repeated context.DeviceId device_id = 6; // Not implemented + //repeated context.EndPointId endpoint_id = 7; // Not implemented + //repeated context.ServiceId service_id = 8; // Not implemented + //repeated context.SliceId slice_id = 9; // Not implemented + //repeated context.ConnectionId connection_id = 10; // Not implemented + //repeated context.LinkId link_id = 11; // Not implemented } message AnalyzerList { diff --git a/proto/device.proto b/proto/device.proto index 57780adae83ad45ca719d024c3014f740f12bb33..a1882f33f8e177502c456672a0517928f0259ef5 100644 --- a/proto/device.proto +++ b/proto/device.proto @@ -16,8 +16,7 @@ syntax = "proto3"; package device; import "context.proto"; -//import "monitoring.proto"; -import "kpi_manager.proto"; +import "monitoring.proto"; // to be migrated to: "kpi_manager.proto" service DeviceService { rpc AddDevice (context.Device ) returns (context.DeviceId ) {} @@ -28,8 +27,8 @@ service DeviceService { } message MonitoringSettings { - kpi_manager.KpiId kpi_id = 1; - kpi_manager.KpiDescriptor kpi_descriptor = 2; - float sampling_duration_s = 3; - float sampling_interval_s = 4; + monitoring.KpiId kpi_id = 1; // to be migrated to: "kpi_manager.KpiId" + monitoring.KpiDescriptor kpi_descriptor = 2; // to be migrated to: "kpi_manager.KpiDescriptor" + float sampling_duration_s = 3; + float sampling_interval_s = 4; } diff --git a/proto/monitoring.proto b/proto/monitoring.proto index f240fc3ceb12885557be26cf62597a98e35619f4..96423bb4952abfbde0fb72b5dae3497485592d1b 100755 --- a/proto/monitoring.proto +++ b/proto/monitoring.proto @@ -16,14 +16,14 @@ syntax = "proto3"; package monitoring; import "context.proto"; -import "kpi_manager.proto"; -//import "kpi_sample_types.proto"; +import "monitoring.proto"; +import "kpi_sample_types.proto"; service MonitoringService { -// rpc SetKpi (KpiDescriptor ) returns (KpiId ) {} // Stable not final -// rpc DeleteKpi (KpiId ) returns (context.Empty ) {} // Stable and final -// rpc GetKpiDescriptor (KpiId ) returns (KpiDescriptor ) {} // Stable and final -// rpc GetKpiDescriptorList (context.Empty ) returns (KpiDescriptorList ) {} // Stable and final + rpc SetKpi (KpiDescriptor ) returns (KpiId ) {} // Stable not final + rpc DeleteKpi (KpiId ) returns (context.Empty ) {} // Stable and final + rpc GetKpiDescriptor (KpiId ) returns (KpiDescriptor ) {} // Stable and final + rpc GetKpiDescriptorList (context.Empty ) returns (KpiDescriptorList ) {} // Stable and final rpc IncludeKpi (Kpi ) returns (context.Empty ) {} // Stable and final rpc MonitorKpi (MonitorKpiRequest ) returns (context.Empty ) {} // Stable and final rpc QueryKpiData (KpiQuery ) returns (RawKpiTable ) {} // Not implemented @@ -36,21 +36,32 @@ service MonitoringService { rpc GetAlarmDescriptor (AlarmID ) returns (AlarmDescriptor ) {} // Stable and final rpc GetAlarmResponseStream(AlarmSubscription ) returns (stream AlarmResponse) {} // Not Stable not final rpc DeleteAlarm (AlarmID ) returns (context.Empty ) {} // Stable and final -// rpc GetStreamKpi (KpiId ) returns (stream Kpi ) {} // Stable not final -// rpc GetInstantKpi (KpiId ) returns (Kpi ) {} // Stable not final + rpc GetStreamKpi (KpiId ) returns (stream Kpi ) {} // Stable not final + rpc GetInstantKpi (KpiId ) returns (Kpi ) {} // Stable not final } - +message KpiDescriptor { + KpiId kpi_id = 1; + string kpi_description = 2; + repeated KpiId kpi_id_list = 3; + kpi_sample_types.KpiSampleType kpi_sample_type = 4; + context.DeviceId device_id = 5; + context.EndPointId endpoint_id = 6; + context.ServiceId service_id = 7; + context.SliceId slice_id = 8; + context.ConnectionId connection_id = 9; + context.LinkId link_id = 10; +} message MonitorKpiRequest { - kpi_manager.KpiId kpi_id = 1; + KpiId kpi_id = 1; float monitoring_window_s = 2; float sampling_rate_s = 3; // Pending add field to reflect Available Device Protocols } message KpiQuery { - repeated kpi_manager.KpiId kpi_ids = 1; + repeated KpiId kpi_ids = 1; float monitoring_window_s = 2; uint32 last_n_samples = 3; // used when you want something like "get the last N many samples context.Timestamp start_timestamp = 4; // used when you want something like "get the samples since X date/time" @@ -64,7 +75,7 @@ message RawKpi { // cell } message RawKpiList { // column - kpi_manager.KpiId kpi_id = 1; + KpiId kpi_id = 1; repeated RawKpi raw_kpis = 2; } @@ -72,10 +83,12 @@ message RawKpiTable { // table repeated RawKpiList raw_kpi_lists = 1; } - +message KpiId { + context.Uuid kpi_id = 1; +} message Kpi { - kpi_manager.KpiId kpi_id = 1; + KpiId kpi_id = 1; context.Timestamp timestamp = 2; KpiValue kpi_value = 3; } @@ -109,7 +122,7 @@ message KpiList { message SubsDescriptor{ SubscriptionID subs_id = 1; - kpi_manager.KpiId kpi_id = 2; + KpiId kpi_id = 2; float sampling_duration_s = 3; float sampling_interval_s = 4; context.Timestamp start_timestamp = 5; // used when you want something like "get the samples since X date/time" @@ -134,7 +147,7 @@ message AlarmDescriptor { AlarmID alarm_id = 1; string alarm_description = 2; string name = 3; - kpi_manager.KpiId kpi_id = 4; + KpiId kpi_id = 4; KpiValueRange kpi_value_range = 5; context.Timestamp timestamp = 6; } diff --git a/proto/optical_attack_detector.proto b/proto/optical_attack_detector.proto index bf5cf4db1976932e1126da2263378c7ebdd18b30..f74eea68b8c5a588f5ecc06a59916058cb8d9695 100644 --- a/proto/optical_attack_detector.proto +++ b/proto/optical_attack_detector.proto @@ -12,13 +12,11 @@ // See the License for the specific language governing permissions and // limitations under the License. -// protocol buffers documentation: https://developers.google.com/protocol-buffers/docs/proto3 syntax = "proto3"; package optical_attack_detector; import "context.proto"; -//import "monitoring.proto"; -import "kpi_manager.proto"; +import "monitoring.proto"; // to be migrated to: "kpi_manager.proto" service OpticalAttackDetectorService { @@ -29,5 +27,5 @@ service OpticalAttackDetectorService { message DetectionRequest { context.ServiceId service_id = 1; - kpi_manager.KpiId kpi_id = 2; + monitoring.KpiId kpi_id = 2; // to be migrated to: "kpi_manager.KpiId" } diff --git a/proto/policy_condition.proto b/proto/policy_condition.proto index 2904f475635b8f87a998418790e6deac37b5bf1a..612dcb1af8eb8adb0db65b8ae47301c87ad6b9ef 100644 --- a/proto/policy_condition.proto +++ b/proto/policy_condition.proto @@ -15,14 +15,13 @@ syntax = "proto3"; package policy; -import "monitoring.proto"; -import "kpi_manager.proto"; +import "monitoring.proto"; // to be migrated to: "kpi_manager.proto" // Condition message PolicyRuleCondition { - kpi_manager.KpiId kpiId = 1; - NumericalOperator numericalOperator = 2; - monitoring.KpiValue kpiValue = 3; + monitoring.KpiId kpiId = 1; // to be migrated to: "kpi_manager.KpiId" + NumericalOperator numericalOperator = 2; + monitoring.KpiValue kpiValue = 3; } // Operator to be used when comparing Kpis with condition values