l3_centralizedattackdetector.proto 2.27 KB
Newer Older
Lluis Gifre Renom's avatar
Lluis Gifre Renom committed
// 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.

ldemarcosm's avatar
ldemarcosm committed
syntax = "proto3";
ldemarcosm's avatar
ldemarcosm committed

import "context.proto";

ldemarcosm's avatar
ldemarcosm committed
service L3Centralizedattackdetector {
delacal's avatar
delacal committed
  // Sends single input to the ML model in the CAD component
  rpc SendInput (L3CentralizedattackdetectorMetrics) returns (Empty) {}
delacal's avatar
delacal committed

  // Sends a batch of inputs to the ML model in the CAD component
  rpc SendInputBatch (L3CentralizedattackdetectorModelInput) returns (Empty) {}
delacal's avatar
delacal committed

  // DAD request of the list of features in CAD
  rpc SendFeatures (Empty) returns (AutoFeatures) {}
message Feature {
	float feature = 1;
}

message L3CentralizedattackdetectorMetrics {
delacal's avatar
delacal committed
	// Input sent by the DAD compoenent to the ML model integrated in the CAD component.
ldemarcosm's avatar
ldemarcosm committed

	// 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;
delacal's avatar
delacal committed

ldemarcosm's avatar
ldemarcosm committed

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;
delacal's avatar
delacal committed
// Collection of int values representing ML features
message AutoFeatures {
	repeated float autoFeatures = 1;
}

delacal's avatar
delacal committed
// Collection (batcb) of model inputs that will be sent to the model
message L3CentralizedattackdetectorModelInput {
	repeated L3CentralizedattackdetectorMetrics metrics = 1;
delacal's avatar
delacal committed
message Empty {
	string message = 1;
ldemarcosm's avatar
ldemarcosm committed
}

// Collections or streams?
/*
ldemarcosm's avatar
ldemarcosm committed
message InputCollection {
ldemarcosm's avatar
ldemarcosm committed
	repeated model_input = 1;
}
*/