// 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"; service L3Centralizedattackdetector { // Sends a greeting rpc SendInput (L3CentralizedattackdetectorMetrics) returns (Empty) {} // Sends another greeting rpc GetOutput (Empty) returns (L3CentralizedattackdetectorModelOutput) {} } message L3CentralizedattackdetectorMetrics { /* Model input sent to the Inferencer by the client There are currently 9 values and */ // Machine learning float n_packets_server_seconds = 1; float n_packets_client_seconds = 2; float n_bits_server_seconds = 3; float n_bits_client_seconds = 4; float n_bits_server_n_packets_server = 5; float n_bits_client_n_packets_client = 6; float n_packets_server_n_packets_client = 7; float n_bits_server_n_bits_client = 8; // Conection identifier string ip_o = 9; string port_o = 10; string ip_d = 11; string port_d = 12; string flow_id = 13; string protocol = 14; float time_start = 15; float time_end = 16; } message Empty { string message = 1; } message L3CentralizedattackdetectorModelOutput { float confidence = 1; string timestamp = 2; string ip_o = 3; string tag_name = 4; int32 tag = 5; string flow_id = 6; string protocol = 7; string port_d = 8; string ml_id = 9; float time_start = 10; float time_end = 11; } // Collections or streams? /* message InputCollection { repeated model_input = 1; } message OutputCollection { repeated model_output = 1; } */