Loading proto/analytics_frontend.proto +40 −20 Original line number Diff line number Diff line // 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 ) {} Loading @@ -15,18 +29,22 @@ 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 { Loading @@ -34,14 +52,16 @@ message AnalyzerFilter { // 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 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 { Loading proto/device.proto +5 −6 Original line number Diff line number Diff line Loading @@ -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 ) {} Loading @@ -28,8 +27,8 @@ service DeviceService { } message MonitoringSettings { kpi_manager.KpiId kpi_id = 1; kpi_manager.KpiDescriptor kpi_descriptor = 2; 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; } proto/monitoring.proto +29 −16 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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" Loading @@ -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; } Loading @@ -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; } Loading Loading @@ -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" Loading @@ -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; } Loading proto/optical_attack_detector.proto +2 −4 Original line number Diff line number Diff line Loading @@ -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 { Loading @@ -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" } proto/policy_condition.proto +4 −5 Original line number Diff line number Diff line Loading @@ -15,12 +15,11 @@ 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; monitoring.KpiId kpiId = 1; // to be migrated to: "kpi_manager.KpiId" NumericalOperator numericalOperator = 2; monitoring.KpiValue kpiValue = 3; } Loading Loading
proto/analytics_frontend.proto +40 −20 Original line number Diff line number Diff line // 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 ) {} Loading @@ -15,18 +29,22 @@ 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 { Loading @@ -34,14 +52,16 @@ message AnalyzerFilter { // 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 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 { Loading
proto/device.proto +5 −6 Original line number Diff line number Diff line Loading @@ -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 ) {} Loading @@ -28,8 +27,8 @@ service DeviceService { } message MonitoringSettings { kpi_manager.KpiId kpi_id = 1; kpi_manager.KpiDescriptor kpi_descriptor = 2; 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; }
proto/monitoring.proto +29 −16 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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" Loading @@ -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; } Loading @@ -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; } Loading Loading @@ -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" Loading @@ -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; } Loading
proto/optical_attack_detector.proto +2 −4 Original line number Diff line number Diff line Loading @@ -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 { Loading @@ -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" }
proto/policy_condition.proto +4 −5 Original line number Diff line number Diff line Loading @@ -15,12 +15,11 @@ 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; monitoring.KpiId kpiId = 1; // to be migrated to: "kpi_manager.KpiId" NumericalOperator numericalOperator = 2; monitoring.KpiValue kpiValue = 3; } Loading