Loading proto/l3_attackmitigator.proto +14 −14 Original line number Diff line number Diff line syntax = "proto2"; syntax = "proto3"; service l3_attackmitigator{ service L3Attackmitigator{ // Sends a greeting rpc send_output (output) returns (empty_mitigator) {} rpc SendOutput (Output) returns (EmptyMitigator) {} // Sends another greeting rpc get_mitigation (empty_mitigator) returns (empty_mitigator) {} rpc GetMitigation (EmptyMitigator) returns (EmptyMitigator) {} } message empty_mitigator { message EmptyMitigator { optional string message = 1; } message output { required float confidence = 1; required string timestamp = 2; required string ip_o = 3; required string tag_name = 4; required int32 tag = 5; required string flow_id = 6; required string protocol = 7; required string port_d = 8; message Output { 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; Loading proto/l3_centralizedattackdetector.proto +31 −31 Original line number Diff line number Diff line syntax = "proto2"; syntax = "proto3"; service l3_centralizedattackdetector { service L3Centralizedattackdetector { // Sends a greeting rpc send_input (model_input) returns (empty) {} rpc SendInput (ModelInput) returns (Empty) {} // Sends another greeting rpc get_output (empty) returns (model_output) {} rpc GetOutput (Empty) returns (ModelOutput) {} } message model_input { message ModelInput { /* Model input sent to the Inferencer by the client There are currently 9 values and */ // Machine learning required float n_packets_server_seconds = 1; required float n_packets_client_seconds = 2; required float n_bits_server_seconds = 3; required float n_bits_client_seconds = 4; required float n_bits_server_n_packets_server = 5; required float n_bits_client_n_packets_client = 6; required float n_packets_server_n_packets_client = 7; required float n_bits_server_n_bits_client = 8; 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 required string ip_o = 9; required string port_o = 10; required string ip_d = 11; required string port_d = 12; required string flow_id = 13; required string protocol = 14; 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 { message Empty { optional string message = 1; } message model_output { required float confidence = 1; required string timestamp = 2; required string ip_o = 3; required string tag_name = 4; required int32 tag = 5; required string flow_id = 6; required string protocol = 7; required string port_d = 8; 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; Loading @@ -54,11 +54,11 @@ message model_output { // Collections or streams? /* message input_collection { message InputCollection { repeated model_input = 1; } message output_collection { message OutputCollection { repeated model_output = 1; } */ src/l3_attackmitigator/client/l3_attackmitigatorClient.py +0 −6 Original line number Diff line number Diff line import grpc, logging from common.tools.client.RetryDecorator import retry, delay_exponential from l3_attackmitigator.proto.context_pb2 import Empty from l3_attackmitigator.proto.monitoring_pb2 import KpiList #from l3_attackmitigator.proto.l3_attackmitigator_pb2 import ( # CentralizedAttackDetecitor, # CentralizedAttackDetectorId, #) # ConnectionList, Service, ServiceId, ServiceList from l3_attackmitigator.proto.l3_attackmitigator_pb2_grpc import ( l3_attackmitigatorStub, ) Loading src/l3_attackmitigator/proto/l3_attackmitigator_pb2.py +87 −55 Original line number Diff line number Diff line Loading @@ -16,25 +16,25 @@ _sym_db = _symbol_database.Default() DESCRIPTOR = _descriptor.FileDescriptor( name='l3_attackmitigator.proto', package='', syntax='proto2', syntax='proto3', serialized_options=None, create_key=_descriptor._internal_create_key, serialized_pb=b'\n\x18l3_attackmitigator.proto\"\"\n\x0f\x65mpty_mitigator\x12\x0f\n\x07message\x18\x01 \x01(\t\"\xc4\x01\n\x06output\x12\x12\n\nconfidence\x18\x01 \x02(\x02\x12\x11\n\ttimestamp\x18\x02 \x02(\t\x12\x0c\n\x04ip_o\x18\x03 \x02(\t\x12\x10\n\x08tag_name\x18\x04 \x02(\t\x12\x0b\n\x03tag\x18\x05 \x02(\x05\x12\x0f\n\x07\x66low_id\x18\x06 \x02(\t\x12\x10\n\x08protocol\x18\x07 \x02(\t\x12\x0e\n\x06port_d\x18\x08 \x02(\t\x12\r\n\x05ml_id\x18\t \x01(\t\x12\x12\n\ntime_start\x18\n \x01(\x02\x12\x10\n\x08time_end\x18\x0b \x01(\x02\x32x\n\x12l3_attackmitigator\x12*\n\x0bsend_output\x12\x07.output\x1a\x10.empty_mitigator\"\x00\x12\x36\n\x0eget_mitigation\x12\x10.empty_mitigator\x1a\x10.empty_mitigator\"\x00' serialized_pb=b'\n\x18l3_attackmitigator.proto\"2\n\x0e\x45mptyMitigator\x12\x14\n\x07message\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_message\"\xf9\x01\n\x06Output\x12\x12\n\nconfidence\x18\x01 \x01(\x02\x12\x11\n\ttimestamp\x18\x02 \x01(\t\x12\x0c\n\x04ip_o\x18\x03 \x01(\t\x12\x10\n\x08tag_name\x18\x04 \x01(\t\x12\x0b\n\x03tag\x18\x05 \x01(\x05\x12\x0f\n\x07\x66low_id\x18\x06 \x01(\t\x12\x10\n\x08protocol\x18\x07 \x01(\t\x12\x0e\n\x06port_d\x18\x08 \x01(\t\x12\x12\n\x05ml_id\x18\t \x01(\tH\x00\x88\x01\x01\x12\x17\n\ntime_start\x18\n \x01(\x02H\x01\x88\x01\x01\x12\x15\n\x08time_end\x18\x0b \x01(\x02H\x02\x88\x01\x01\x42\x08\n\x06_ml_idB\r\n\x0b_time_startB\x0b\n\t_time_end2r\n\x11L3Attackmitigator\x12(\n\nSendOutput\x12\x07.Output\x1a\x0f.EmptyMitigator\"\x00\x12\x33\n\rGetMitigation\x12\x0f.EmptyMitigator\x1a\x0f.EmptyMitigator\"\x00\x62\x06proto3' ) _EMPTY_MITIGATOR = _descriptor.Descriptor( name='empty_mitigator', full_name='empty_mitigator', _EMPTYMITIGATOR = _descriptor.Descriptor( name='EmptyMitigator', full_name='EmptyMitigator', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( name='message', full_name='empty_mitigator.message', index=0, name='message', full_name='EmptyMitigator.message', index=0, number=1, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, Loading @@ -48,95 +48,100 @@ _EMPTY_MITIGATOR = _descriptor.Descriptor( ], serialized_options=None, is_extendable=False, syntax='proto2', syntax='proto3', extension_ranges=[], oneofs=[ _descriptor.OneofDescriptor( name='_message', full_name='EmptyMitigator._message', index=0, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), ], serialized_start=28, serialized_end=62, serialized_end=78, ) _OUTPUT = _descriptor.Descriptor( name='output', full_name='output', name='Output', full_name='Output', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( name='confidence', full_name='output.confidence', index=0, number=1, type=2, cpp_type=6, label=2, name='confidence', full_name='Output.confidence', index=0, number=1, type=2, cpp_type=6, label=1, has_default_value=False, default_value=float(0), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( name='timestamp', full_name='output.timestamp', index=1, number=2, type=9, cpp_type=9, label=2, name='timestamp', full_name='Output.timestamp', index=1, number=2, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( name='ip_o', full_name='output.ip_o', index=2, number=3, type=9, cpp_type=9, label=2, name='ip_o', full_name='Output.ip_o', index=2, number=3, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( name='tag_name', full_name='output.tag_name', index=3, number=4, type=9, cpp_type=9, label=2, name='tag_name', full_name='Output.tag_name', index=3, number=4, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( name='tag', full_name='output.tag', index=4, number=5, type=5, cpp_type=1, label=2, name='tag', full_name='Output.tag', index=4, number=5, type=5, cpp_type=1, label=1, has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( name='flow_id', full_name='output.flow_id', index=5, number=6, type=9, cpp_type=9, label=2, name='flow_id', full_name='Output.flow_id', index=5, number=6, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( name='protocol', full_name='output.protocol', index=6, number=7, type=9, cpp_type=9, label=2, name='protocol', full_name='Output.protocol', index=6, number=7, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( name='port_d', full_name='output.port_d', index=7, number=8, type=9, cpp_type=9, label=2, name='port_d', full_name='Output.port_d', index=7, number=8, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( name='ml_id', full_name='output.ml_id', index=8, name='ml_id', full_name='Output.ml_id', index=8, number=9, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( name='time_start', full_name='output.time_start', index=9, name='time_start', full_name='Output.time_start', index=9, number=10, type=2, cpp_type=6, label=1, has_default_value=False, default_value=float(0), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( name='time_end', full_name='output.time_end', index=10, name='time_end', full_name='Output.time_end', index=10, number=11, type=2, cpp_type=6, label=1, has_default_value=False, default_value=float(0), message_type=None, enum_type=None, containing_type=None, Loading @@ -150,67 +155,94 @@ _OUTPUT = _descriptor.Descriptor( ], serialized_options=None, is_extendable=False, syntax='proto2', syntax='proto3', extension_ranges=[], oneofs=[ _descriptor.OneofDescriptor( name='_ml_id', full_name='Output._ml_id', index=0, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), _descriptor.OneofDescriptor( name='_time_start', full_name='Output._time_start', index=1, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), _descriptor.OneofDescriptor( name='_time_end', full_name='Output._time_end', index=2, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), ], serialized_start=65, serialized_end=261, serialized_start=81, serialized_end=330, ) DESCRIPTOR.message_types_by_name['empty_mitigator'] = _EMPTY_MITIGATOR DESCRIPTOR.message_types_by_name['output'] = _OUTPUT _EMPTYMITIGATOR.oneofs_by_name['_message'].fields.append( _EMPTYMITIGATOR.fields_by_name['message']) _EMPTYMITIGATOR.fields_by_name['message'].containing_oneof = _EMPTYMITIGATOR.oneofs_by_name['_message'] _OUTPUT.oneofs_by_name['_ml_id'].fields.append( _OUTPUT.fields_by_name['ml_id']) _OUTPUT.fields_by_name['ml_id'].containing_oneof = _OUTPUT.oneofs_by_name['_ml_id'] _OUTPUT.oneofs_by_name['_time_start'].fields.append( _OUTPUT.fields_by_name['time_start']) _OUTPUT.fields_by_name['time_start'].containing_oneof = _OUTPUT.oneofs_by_name['_time_start'] _OUTPUT.oneofs_by_name['_time_end'].fields.append( _OUTPUT.fields_by_name['time_end']) _OUTPUT.fields_by_name['time_end'].containing_oneof = _OUTPUT.oneofs_by_name['_time_end'] DESCRIPTOR.message_types_by_name['EmptyMitigator'] = _EMPTYMITIGATOR DESCRIPTOR.message_types_by_name['Output'] = _OUTPUT _sym_db.RegisterFileDescriptor(DESCRIPTOR) empty_mitigator = _reflection.GeneratedProtocolMessageType('empty_mitigator', (_message.Message,), { 'DESCRIPTOR' : _EMPTY_MITIGATOR, EmptyMitigator = _reflection.GeneratedProtocolMessageType('EmptyMitigator', (_message.Message,), { 'DESCRIPTOR' : _EMPTYMITIGATOR, '__module__' : 'l3_attackmitigator_pb2' # @@protoc_insertion_point(class_scope:empty_mitigator) # @@protoc_insertion_point(class_scope:EmptyMitigator) }) _sym_db.RegisterMessage(empty_mitigator) _sym_db.RegisterMessage(EmptyMitigator) output = _reflection.GeneratedProtocolMessageType('output', (_message.Message,), { Output = _reflection.GeneratedProtocolMessageType('Output', (_message.Message,), { 'DESCRIPTOR' : _OUTPUT, '__module__' : 'l3_attackmitigator_pb2' # @@protoc_insertion_point(class_scope:output) # @@protoc_insertion_point(class_scope:Output) }) _sym_db.RegisterMessage(output) _sym_db.RegisterMessage(Output) _L3_ATTACKMITIGATOR = _descriptor.ServiceDescriptor( name='l3_attackmitigator', full_name='l3_attackmitigator', _L3ATTACKMITIGATOR = _descriptor.ServiceDescriptor( name='L3Attackmitigator', full_name='L3Attackmitigator', file=DESCRIPTOR, index=0, serialized_options=None, create_key=_descriptor._internal_create_key, serialized_start=263, serialized_end=383, serialized_start=332, serialized_end=446, methods=[ _descriptor.MethodDescriptor( name='send_output', full_name='l3_attackmitigator.send_output', name='SendOutput', full_name='L3Attackmitigator.SendOutput', index=0, containing_service=None, input_type=_OUTPUT, output_type=_EMPTY_MITIGATOR, output_type=_EMPTYMITIGATOR, serialized_options=None, create_key=_descriptor._internal_create_key, ), _descriptor.MethodDescriptor( name='get_mitigation', full_name='l3_attackmitigator.get_mitigation', name='GetMitigation', full_name='L3Attackmitigator.GetMitigation', index=1, containing_service=None, input_type=_EMPTY_MITIGATOR, output_type=_EMPTY_MITIGATOR, input_type=_EMPTYMITIGATOR, output_type=_EMPTYMITIGATOR, serialized_options=None, create_key=_descriptor._internal_create_key, ), ]) _sym_db.RegisterServiceDescriptor(_L3_ATTACKMITIGATOR) _sym_db.RegisterServiceDescriptor(_L3ATTACKMITIGATOR) DESCRIPTOR.services_by_name['l3_attackmitigator'] = _L3_ATTACKMITIGATOR DESCRIPTOR.services_by_name['L3Attackmitigator'] = _L3ATTACKMITIGATOR # @@protoc_insertion_point(module_scope) src/l3_attackmitigator/proto/l3_attackmitigator_pb2_grpc.py +32 −32 Original line number Diff line number Diff line Loading @@ -2,10 +2,10 @@ """Client and server classes corresponding to protobuf-defined services.""" import grpc from . import l3_attackmitigator_pb2 as l3__attackmitigator__pb2 import l3_attackmitigator_pb2 as l3__attackmitigator__pb2 class l3_attackmitigatorStub(object): class L3AttackmitigatorStub(object): """Missing associated documentation comment in .proto file.""" def __init__(self, channel): Loading @@ -14,29 +14,29 @@ class l3_attackmitigatorStub(object): Args: channel: A grpc.Channel. """ self.send_output = channel.unary_unary( '/l3_attackmitigator/send_output', request_serializer=l3__attackmitigator__pb2.output.SerializeToString, response_deserializer=l3__attackmitigator__pb2.empty_mitigator.FromString, self.SendOutput = channel.unary_unary( '/L3Attackmitigator/SendOutput', request_serializer=l3__attackmitigator__pb2.Output.SerializeToString, response_deserializer=l3__attackmitigator__pb2.EmptyMitigator.FromString, ) self.get_mitigation = channel.unary_unary( '/l3_attackmitigator/get_mitigation', request_serializer=l3__attackmitigator__pb2.empty_mitigator.SerializeToString, response_deserializer=l3__attackmitigator__pb2.empty_mitigator.FromString, self.GetMitigation = channel.unary_unary( '/L3Attackmitigator/GetMitigation', request_serializer=l3__attackmitigator__pb2.EmptyMitigator.SerializeToString, response_deserializer=l3__attackmitigator__pb2.EmptyMitigator.FromString, ) class l3_attackmitigatorServicer(object): class L3AttackmitigatorServicer(object): """Missing associated documentation comment in .proto file.""" def send_output(self, request, context): def SendOutput(self, request, context): """Sends a greeting """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def get_mitigation(self, request, context): def GetMitigation(self, request, context): """Sends another greeting """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) Loading @@ -44,30 +44,30 @@ class l3_attackmitigatorServicer(object): raise NotImplementedError('Method not implemented!') def add_l3_attackmitigatorServicer_to_server(servicer, server): def add_L3AttackmitigatorServicer_to_server(servicer, server): rpc_method_handlers = { 'send_output': grpc.unary_unary_rpc_method_handler( servicer.send_output, request_deserializer=l3__attackmitigator__pb2.output.FromString, response_serializer=l3__attackmitigator__pb2.empty_mitigator.SerializeToString, 'SendOutput': grpc.unary_unary_rpc_method_handler( servicer.SendOutput, request_deserializer=l3__attackmitigator__pb2.Output.FromString, response_serializer=l3__attackmitigator__pb2.EmptyMitigator.SerializeToString, ), 'get_mitigation': grpc.unary_unary_rpc_method_handler( servicer.get_mitigation, request_deserializer=l3__attackmitigator__pb2.empty_mitigator.FromString, response_serializer=l3__attackmitigator__pb2.empty_mitigator.SerializeToString, 'GetMitigation': grpc.unary_unary_rpc_method_handler( servicer.GetMitigation, request_deserializer=l3__attackmitigator__pb2.EmptyMitigator.FromString, response_serializer=l3__attackmitigator__pb2.EmptyMitigator.SerializeToString, ), } generic_handler = grpc.method_handlers_generic_handler( 'l3_attackmitigator', rpc_method_handlers) 'L3Attackmitigator', rpc_method_handlers) server.add_generic_rpc_handlers((generic_handler,)) # This class is part of an EXPERIMENTAL API. class l3_attackmitigator(object): class L3Attackmitigator(object): """Missing associated documentation comment in .proto file.""" @staticmethod def send_output(request, def SendOutput(request, target, options=(), channel_credentials=None, Loading @@ -77,14 +77,14 @@ class l3_attackmitigator(object): wait_for_ready=None, timeout=None, metadata=None): return grpc.experimental.unary_unary(request, target, '/l3_attackmitigator/send_output', l3__attackmitigator__pb2.output.SerializeToString, l3__attackmitigator__pb2.empty_mitigator.FromString, return grpc.experimental.unary_unary(request, target, '/L3Attackmitigator/SendOutput', l3__attackmitigator__pb2.Output.SerializeToString, l3__attackmitigator__pb2.EmptyMitigator.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @staticmethod def get_mitigation(request, def GetMitigation(request, target, options=(), channel_credentials=None, Loading @@ -94,8 +94,8 @@ class l3_attackmitigator(object): wait_for_ready=None, timeout=None, metadata=None): return grpc.experimental.unary_unary(request, target, '/l3_attackmitigator/get_mitigation', l3__attackmitigator__pb2.empty_mitigator.SerializeToString, l3__attackmitigator__pb2.empty_mitigator.FromString, return grpc.experimental.unary_unary(request, target, '/L3Attackmitigator/GetMitigation', l3__attackmitigator__pb2.EmptyMitigator.SerializeToString, l3__attackmitigator__pb2.EmptyMitigator.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) Loading
proto/l3_attackmitigator.proto +14 −14 Original line number Diff line number Diff line syntax = "proto2"; syntax = "proto3"; service l3_attackmitigator{ service L3Attackmitigator{ // Sends a greeting rpc send_output (output) returns (empty_mitigator) {} rpc SendOutput (Output) returns (EmptyMitigator) {} // Sends another greeting rpc get_mitigation (empty_mitigator) returns (empty_mitigator) {} rpc GetMitigation (EmptyMitigator) returns (EmptyMitigator) {} } message empty_mitigator { message EmptyMitigator { optional string message = 1; } message output { required float confidence = 1; required string timestamp = 2; required string ip_o = 3; required string tag_name = 4; required int32 tag = 5; required string flow_id = 6; required string protocol = 7; required string port_d = 8; message Output { 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; Loading
proto/l3_centralizedattackdetector.proto +31 −31 Original line number Diff line number Diff line syntax = "proto2"; syntax = "proto3"; service l3_centralizedattackdetector { service L3Centralizedattackdetector { // Sends a greeting rpc send_input (model_input) returns (empty) {} rpc SendInput (ModelInput) returns (Empty) {} // Sends another greeting rpc get_output (empty) returns (model_output) {} rpc GetOutput (Empty) returns (ModelOutput) {} } message model_input { message ModelInput { /* Model input sent to the Inferencer by the client There are currently 9 values and */ // Machine learning required float n_packets_server_seconds = 1; required float n_packets_client_seconds = 2; required float n_bits_server_seconds = 3; required float n_bits_client_seconds = 4; required float n_bits_server_n_packets_server = 5; required float n_bits_client_n_packets_client = 6; required float n_packets_server_n_packets_client = 7; required float n_bits_server_n_bits_client = 8; 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 required string ip_o = 9; required string port_o = 10; required string ip_d = 11; required string port_d = 12; required string flow_id = 13; required string protocol = 14; 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 { message Empty { optional string message = 1; } message model_output { required float confidence = 1; required string timestamp = 2; required string ip_o = 3; required string tag_name = 4; required int32 tag = 5; required string flow_id = 6; required string protocol = 7; required string port_d = 8; 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; Loading @@ -54,11 +54,11 @@ message model_output { // Collections or streams? /* message input_collection { message InputCollection { repeated model_input = 1; } message output_collection { message OutputCollection { repeated model_output = 1; } */
src/l3_attackmitigator/client/l3_attackmitigatorClient.py +0 −6 Original line number Diff line number Diff line import grpc, logging from common.tools.client.RetryDecorator import retry, delay_exponential from l3_attackmitigator.proto.context_pb2 import Empty from l3_attackmitigator.proto.monitoring_pb2 import KpiList #from l3_attackmitigator.proto.l3_attackmitigator_pb2 import ( # CentralizedAttackDetecitor, # CentralizedAttackDetectorId, #) # ConnectionList, Service, ServiceId, ServiceList from l3_attackmitigator.proto.l3_attackmitigator_pb2_grpc import ( l3_attackmitigatorStub, ) Loading
src/l3_attackmitigator/proto/l3_attackmitigator_pb2.py +87 −55 Original line number Diff line number Diff line Loading @@ -16,25 +16,25 @@ _sym_db = _symbol_database.Default() DESCRIPTOR = _descriptor.FileDescriptor( name='l3_attackmitigator.proto', package='', syntax='proto2', syntax='proto3', serialized_options=None, create_key=_descriptor._internal_create_key, serialized_pb=b'\n\x18l3_attackmitigator.proto\"\"\n\x0f\x65mpty_mitigator\x12\x0f\n\x07message\x18\x01 \x01(\t\"\xc4\x01\n\x06output\x12\x12\n\nconfidence\x18\x01 \x02(\x02\x12\x11\n\ttimestamp\x18\x02 \x02(\t\x12\x0c\n\x04ip_o\x18\x03 \x02(\t\x12\x10\n\x08tag_name\x18\x04 \x02(\t\x12\x0b\n\x03tag\x18\x05 \x02(\x05\x12\x0f\n\x07\x66low_id\x18\x06 \x02(\t\x12\x10\n\x08protocol\x18\x07 \x02(\t\x12\x0e\n\x06port_d\x18\x08 \x02(\t\x12\r\n\x05ml_id\x18\t \x01(\t\x12\x12\n\ntime_start\x18\n \x01(\x02\x12\x10\n\x08time_end\x18\x0b \x01(\x02\x32x\n\x12l3_attackmitigator\x12*\n\x0bsend_output\x12\x07.output\x1a\x10.empty_mitigator\"\x00\x12\x36\n\x0eget_mitigation\x12\x10.empty_mitigator\x1a\x10.empty_mitigator\"\x00' serialized_pb=b'\n\x18l3_attackmitigator.proto\"2\n\x0e\x45mptyMitigator\x12\x14\n\x07message\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_message\"\xf9\x01\n\x06Output\x12\x12\n\nconfidence\x18\x01 \x01(\x02\x12\x11\n\ttimestamp\x18\x02 \x01(\t\x12\x0c\n\x04ip_o\x18\x03 \x01(\t\x12\x10\n\x08tag_name\x18\x04 \x01(\t\x12\x0b\n\x03tag\x18\x05 \x01(\x05\x12\x0f\n\x07\x66low_id\x18\x06 \x01(\t\x12\x10\n\x08protocol\x18\x07 \x01(\t\x12\x0e\n\x06port_d\x18\x08 \x01(\t\x12\x12\n\x05ml_id\x18\t \x01(\tH\x00\x88\x01\x01\x12\x17\n\ntime_start\x18\n \x01(\x02H\x01\x88\x01\x01\x12\x15\n\x08time_end\x18\x0b \x01(\x02H\x02\x88\x01\x01\x42\x08\n\x06_ml_idB\r\n\x0b_time_startB\x0b\n\t_time_end2r\n\x11L3Attackmitigator\x12(\n\nSendOutput\x12\x07.Output\x1a\x0f.EmptyMitigator\"\x00\x12\x33\n\rGetMitigation\x12\x0f.EmptyMitigator\x1a\x0f.EmptyMitigator\"\x00\x62\x06proto3' ) _EMPTY_MITIGATOR = _descriptor.Descriptor( name='empty_mitigator', full_name='empty_mitigator', _EMPTYMITIGATOR = _descriptor.Descriptor( name='EmptyMitigator', full_name='EmptyMitigator', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( name='message', full_name='empty_mitigator.message', index=0, name='message', full_name='EmptyMitigator.message', index=0, number=1, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, Loading @@ -48,95 +48,100 @@ _EMPTY_MITIGATOR = _descriptor.Descriptor( ], serialized_options=None, is_extendable=False, syntax='proto2', syntax='proto3', extension_ranges=[], oneofs=[ _descriptor.OneofDescriptor( name='_message', full_name='EmptyMitigator._message', index=0, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), ], serialized_start=28, serialized_end=62, serialized_end=78, ) _OUTPUT = _descriptor.Descriptor( name='output', full_name='output', name='Output', full_name='Output', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( name='confidence', full_name='output.confidence', index=0, number=1, type=2, cpp_type=6, label=2, name='confidence', full_name='Output.confidence', index=0, number=1, type=2, cpp_type=6, label=1, has_default_value=False, default_value=float(0), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( name='timestamp', full_name='output.timestamp', index=1, number=2, type=9, cpp_type=9, label=2, name='timestamp', full_name='Output.timestamp', index=1, number=2, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( name='ip_o', full_name='output.ip_o', index=2, number=3, type=9, cpp_type=9, label=2, name='ip_o', full_name='Output.ip_o', index=2, number=3, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( name='tag_name', full_name='output.tag_name', index=3, number=4, type=9, cpp_type=9, label=2, name='tag_name', full_name='Output.tag_name', index=3, number=4, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( name='tag', full_name='output.tag', index=4, number=5, type=5, cpp_type=1, label=2, name='tag', full_name='Output.tag', index=4, number=5, type=5, cpp_type=1, label=1, has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( name='flow_id', full_name='output.flow_id', index=5, number=6, type=9, cpp_type=9, label=2, name='flow_id', full_name='Output.flow_id', index=5, number=6, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( name='protocol', full_name='output.protocol', index=6, number=7, type=9, cpp_type=9, label=2, name='protocol', full_name='Output.protocol', index=6, number=7, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( name='port_d', full_name='output.port_d', index=7, number=8, type=9, cpp_type=9, label=2, name='port_d', full_name='Output.port_d', index=7, number=8, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( name='ml_id', full_name='output.ml_id', index=8, name='ml_id', full_name='Output.ml_id', index=8, number=9, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( name='time_start', full_name='output.time_start', index=9, name='time_start', full_name='Output.time_start', index=9, number=10, type=2, cpp_type=6, label=1, has_default_value=False, default_value=float(0), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( name='time_end', full_name='output.time_end', index=10, name='time_end', full_name='Output.time_end', index=10, number=11, type=2, cpp_type=6, label=1, has_default_value=False, default_value=float(0), message_type=None, enum_type=None, containing_type=None, Loading @@ -150,67 +155,94 @@ _OUTPUT = _descriptor.Descriptor( ], serialized_options=None, is_extendable=False, syntax='proto2', syntax='proto3', extension_ranges=[], oneofs=[ _descriptor.OneofDescriptor( name='_ml_id', full_name='Output._ml_id', index=0, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), _descriptor.OneofDescriptor( name='_time_start', full_name='Output._time_start', index=1, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), _descriptor.OneofDescriptor( name='_time_end', full_name='Output._time_end', index=2, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), ], serialized_start=65, serialized_end=261, serialized_start=81, serialized_end=330, ) DESCRIPTOR.message_types_by_name['empty_mitigator'] = _EMPTY_MITIGATOR DESCRIPTOR.message_types_by_name['output'] = _OUTPUT _EMPTYMITIGATOR.oneofs_by_name['_message'].fields.append( _EMPTYMITIGATOR.fields_by_name['message']) _EMPTYMITIGATOR.fields_by_name['message'].containing_oneof = _EMPTYMITIGATOR.oneofs_by_name['_message'] _OUTPUT.oneofs_by_name['_ml_id'].fields.append( _OUTPUT.fields_by_name['ml_id']) _OUTPUT.fields_by_name['ml_id'].containing_oneof = _OUTPUT.oneofs_by_name['_ml_id'] _OUTPUT.oneofs_by_name['_time_start'].fields.append( _OUTPUT.fields_by_name['time_start']) _OUTPUT.fields_by_name['time_start'].containing_oneof = _OUTPUT.oneofs_by_name['_time_start'] _OUTPUT.oneofs_by_name['_time_end'].fields.append( _OUTPUT.fields_by_name['time_end']) _OUTPUT.fields_by_name['time_end'].containing_oneof = _OUTPUT.oneofs_by_name['_time_end'] DESCRIPTOR.message_types_by_name['EmptyMitigator'] = _EMPTYMITIGATOR DESCRIPTOR.message_types_by_name['Output'] = _OUTPUT _sym_db.RegisterFileDescriptor(DESCRIPTOR) empty_mitigator = _reflection.GeneratedProtocolMessageType('empty_mitigator', (_message.Message,), { 'DESCRIPTOR' : _EMPTY_MITIGATOR, EmptyMitigator = _reflection.GeneratedProtocolMessageType('EmptyMitigator', (_message.Message,), { 'DESCRIPTOR' : _EMPTYMITIGATOR, '__module__' : 'l3_attackmitigator_pb2' # @@protoc_insertion_point(class_scope:empty_mitigator) # @@protoc_insertion_point(class_scope:EmptyMitigator) }) _sym_db.RegisterMessage(empty_mitigator) _sym_db.RegisterMessage(EmptyMitigator) output = _reflection.GeneratedProtocolMessageType('output', (_message.Message,), { Output = _reflection.GeneratedProtocolMessageType('Output', (_message.Message,), { 'DESCRIPTOR' : _OUTPUT, '__module__' : 'l3_attackmitigator_pb2' # @@protoc_insertion_point(class_scope:output) # @@protoc_insertion_point(class_scope:Output) }) _sym_db.RegisterMessage(output) _sym_db.RegisterMessage(Output) _L3_ATTACKMITIGATOR = _descriptor.ServiceDescriptor( name='l3_attackmitigator', full_name='l3_attackmitigator', _L3ATTACKMITIGATOR = _descriptor.ServiceDescriptor( name='L3Attackmitigator', full_name='L3Attackmitigator', file=DESCRIPTOR, index=0, serialized_options=None, create_key=_descriptor._internal_create_key, serialized_start=263, serialized_end=383, serialized_start=332, serialized_end=446, methods=[ _descriptor.MethodDescriptor( name='send_output', full_name='l3_attackmitigator.send_output', name='SendOutput', full_name='L3Attackmitigator.SendOutput', index=0, containing_service=None, input_type=_OUTPUT, output_type=_EMPTY_MITIGATOR, output_type=_EMPTYMITIGATOR, serialized_options=None, create_key=_descriptor._internal_create_key, ), _descriptor.MethodDescriptor( name='get_mitigation', full_name='l3_attackmitigator.get_mitigation', name='GetMitigation', full_name='L3Attackmitigator.GetMitigation', index=1, containing_service=None, input_type=_EMPTY_MITIGATOR, output_type=_EMPTY_MITIGATOR, input_type=_EMPTYMITIGATOR, output_type=_EMPTYMITIGATOR, serialized_options=None, create_key=_descriptor._internal_create_key, ), ]) _sym_db.RegisterServiceDescriptor(_L3_ATTACKMITIGATOR) _sym_db.RegisterServiceDescriptor(_L3ATTACKMITIGATOR) DESCRIPTOR.services_by_name['l3_attackmitigator'] = _L3_ATTACKMITIGATOR DESCRIPTOR.services_by_name['L3Attackmitigator'] = _L3ATTACKMITIGATOR # @@protoc_insertion_point(module_scope)
src/l3_attackmitigator/proto/l3_attackmitigator_pb2_grpc.py +32 −32 Original line number Diff line number Diff line Loading @@ -2,10 +2,10 @@ """Client and server classes corresponding to protobuf-defined services.""" import grpc from . import l3_attackmitigator_pb2 as l3__attackmitigator__pb2 import l3_attackmitigator_pb2 as l3__attackmitigator__pb2 class l3_attackmitigatorStub(object): class L3AttackmitigatorStub(object): """Missing associated documentation comment in .proto file.""" def __init__(self, channel): Loading @@ -14,29 +14,29 @@ class l3_attackmitigatorStub(object): Args: channel: A grpc.Channel. """ self.send_output = channel.unary_unary( '/l3_attackmitigator/send_output', request_serializer=l3__attackmitigator__pb2.output.SerializeToString, response_deserializer=l3__attackmitigator__pb2.empty_mitigator.FromString, self.SendOutput = channel.unary_unary( '/L3Attackmitigator/SendOutput', request_serializer=l3__attackmitigator__pb2.Output.SerializeToString, response_deserializer=l3__attackmitigator__pb2.EmptyMitigator.FromString, ) self.get_mitigation = channel.unary_unary( '/l3_attackmitigator/get_mitigation', request_serializer=l3__attackmitigator__pb2.empty_mitigator.SerializeToString, response_deserializer=l3__attackmitigator__pb2.empty_mitigator.FromString, self.GetMitigation = channel.unary_unary( '/L3Attackmitigator/GetMitigation', request_serializer=l3__attackmitigator__pb2.EmptyMitigator.SerializeToString, response_deserializer=l3__attackmitigator__pb2.EmptyMitigator.FromString, ) class l3_attackmitigatorServicer(object): class L3AttackmitigatorServicer(object): """Missing associated documentation comment in .proto file.""" def send_output(self, request, context): def SendOutput(self, request, context): """Sends a greeting """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def get_mitigation(self, request, context): def GetMitigation(self, request, context): """Sends another greeting """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) Loading @@ -44,30 +44,30 @@ class l3_attackmitigatorServicer(object): raise NotImplementedError('Method not implemented!') def add_l3_attackmitigatorServicer_to_server(servicer, server): def add_L3AttackmitigatorServicer_to_server(servicer, server): rpc_method_handlers = { 'send_output': grpc.unary_unary_rpc_method_handler( servicer.send_output, request_deserializer=l3__attackmitigator__pb2.output.FromString, response_serializer=l3__attackmitigator__pb2.empty_mitigator.SerializeToString, 'SendOutput': grpc.unary_unary_rpc_method_handler( servicer.SendOutput, request_deserializer=l3__attackmitigator__pb2.Output.FromString, response_serializer=l3__attackmitigator__pb2.EmptyMitigator.SerializeToString, ), 'get_mitigation': grpc.unary_unary_rpc_method_handler( servicer.get_mitigation, request_deserializer=l3__attackmitigator__pb2.empty_mitigator.FromString, response_serializer=l3__attackmitigator__pb2.empty_mitigator.SerializeToString, 'GetMitigation': grpc.unary_unary_rpc_method_handler( servicer.GetMitigation, request_deserializer=l3__attackmitigator__pb2.EmptyMitigator.FromString, response_serializer=l3__attackmitigator__pb2.EmptyMitigator.SerializeToString, ), } generic_handler = grpc.method_handlers_generic_handler( 'l3_attackmitigator', rpc_method_handlers) 'L3Attackmitigator', rpc_method_handlers) server.add_generic_rpc_handlers((generic_handler,)) # This class is part of an EXPERIMENTAL API. class l3_attackmitigator(object): class L3Attackmitigator(object): """Missing associated documentation comment in .proto file.""" @staticmethod def send_output(request, def SendOutput(request, target, options=(), channel_credentials=None, Loading @@ -77,14 +77,14 @@ class l3_attackmitigator(object): wait_for_ready=None, timeout=None, metadata=None): return grpc.experimental.unary_unary(request, target, '/l3_attackmitigator/send_output', l3__attackmitigator__pb2.output.SerializeToString, l3__attackmitigator__pb2.empty_mitigator.FromString, return grpc.experimental.unary_unary(request, target, '/L3Attackmitigator/SendOutput', l3__attackmitigator__pb2.Output.SerializeToString, l3__attackmitigator__pb2.EmptyMitigator.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @staticmethod def get_mitigation(request, def GetMitigation(request, target, options=(), channel_credentials=None, Loading @@ -94,8 +94,8 @@ class l3_attackmitigator(object): wait_for_ready=None, timeout=None, metadata=None): return grpc.experimental.unary_unary(request, target, '/l3_attackmitigator/get_mitigation', l3__attackmitigator__pb2.empty_mitigator.SerializeToString, l3__attackmitigator__pb2.empty_mitigator.FromString, return grpc.experimental.unary_unary(request, target, '/L3Attackmitigator/GetMitigation', l3__attackmitigator__pb2.EmptyMitigator.SerializeToString, l3__attackmitigator__pb2.EmptyMitigator.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata)