// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (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"; import "context.proto"; service L3Centralizedattackdetector { // Analyze single input to the ML model in the CAD component rpc AnalyzeConnectionStatistics (L3CentralizedattackdetectorMetrics) returns (Empty) {} // Analyze a batch of inputs to the ML model in the CAD component rpc AnalyzeBatchConnectionStatistics (L3CentralizedattackdetectorBatchInput) returns (Empty) {} // Get the list of features used by the ML model in the CAD component rpc GetFeaturesIds (Empty) returns (AutoFeatures) {} } message Feature { float feature = 1; } message L3CentralizedattackdetectorMetrics { // Input sent by the DAD compoenent to the ML model integrated in the CAD component. // Machine learning model features repeated Feature features = 1; ConnectionMetadata connection_metadata = 2; } message ConnectionMetadata { string ip_o = 1; string port_o = 2; string ip_d = 3; string port_d = 4; string flow_id = 5; context.ServiceId service_id = 6; context.EndPointId endpoint_id = 7; string protocol = 8; float time_start = 9; float time_end = 10; } // Collection of values representing ML features message AutoFeatures { repeated float auto_features = 1; } // Collection (batch) of model inputs that will be sent to the model message L3CentralizedattackdetectorBatchInput { repeated L3CentralizedattackdetectorMetrics metrics = 1; } message Empty { string message = 1; }