syntax = "proto3"; service L3Centralizedattackdetector { // Sends a greeting rpc SendInput (ModelInput) returns (Empty) {} // Sends another greeting rpc GetOutput (Empty) returns (ModelOutput) {} } message ModelInput { /* 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; optional float time_start = 15; optional float time_end = 16; } message Empty { optional string message = 1; } message ModelOutput { 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; optional string ml_id = 9; optional float time_start = 10; optional float time_end = 11; } // Collections or streams? /* message InputCollection { repeated model_input = 1; } message OutputCollection { repeated model_output = 1; } */