// Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) // // 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 { // 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 model features float c_pkts_all = 1; float c_ack_cnt = 2; float c_bytes_uniq = 3; float c_pkts_data = 4; float c_bytes_all = 5; float s_pkts_all = 6; float s_ack_cnt = 7; float s_bytes_uniq = 8; float s_pkts_data = 9; float s_bytes_all = 10; // Conection identifier string ip_o = 11; string port_o = 12; string ip_d = 13; string port_d = 14; string flow_id = 15; context.ServiceId service_id = 16; context.EndPointId endpoint_id = 17; string protocol = 18; float time_start = 19; float time_end = 20; } 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; } */