// 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 single input to the ML model in the CAD component rpc SendInput (L3CentralizedattackdetectorMetrics) returns (Empty) {} // Sends a batch of inputs to the ML model in the CAD component rpc SendInputBatch (L3CentralizedattackdetectorModelInput) returns (Empty) {} } 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 /* 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;*/ repeated Feature features = 1; ConnectionMetadata connection_metadata = 2; /* string ip_o = 2; string port_o = 3; string ip_d = 4; string port_d = 5; string flow_id = 6; context.ServiceId service_id = 7; context.EndPointId endpoint_id = 8; string protocol = 9; float time_start = 10; float time_end = 11; */ } 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 (batcb) of model inputs that will be sent to the model message L3CentralizedattackdetectorModelInput { repeated L3CentralizedattackdetectorMetrics metrics = 1; } message Empty { string message = 1; } // Collections or streams? /* message InputCollection { repeated model_input = 1; } */