#2676: Code review changes

This commit is contained in:
Nick Todd
2024-07-17 17:50:55 +01:00
parent 061509dffd
commit 4361734014
3 changed files with 8 additions and 12 deletions

View File

@@ -26,7 +26,7 @@ from primaite.simulator.network.hardware.nodes.network.firewall import Firewall
from primaite.simulator.network.hardware.nodes.network.router import Router from primaite.simulator.network.hardware.nodes.network.router import Router
from primaite.simulator.network.hardware.nodes.network.switch import Switch from primaite.simulator.network.hardware.nodes.network.switch import Switch
from primaite.simulator.network.hardware.nodes.network.wireless_router import WirelessRouter from primaite.simulator.network.hardware.nodes.network.wireless_router import WirelessRouter
from primaite.simulator.network.nmne import NmneData, store_nmne_config from primaite.simulator.network.nmne import store_nmne_config
from primaite.simulator.network.transmission.transport_layer import Port from primaite.simulator.network.transmission.transport_layer import Port
from primaite.simulator.sim_container import Simulation from primaite.simulator.sim_container import Simulation
from primaite.simulator.system.applications.application import Application from primaite.simulator.system.applications.application import Application
@@ -110,9 +110,6 @@ class PrimaiteGame:
self._reward_calculation_order: List[str] = [name for name in self.agents] self._reward_calculation_order: List[str] = [name for name in self.agents]
"""Agent order for reward evaluation, as some rewards can be dependent on other agents' rewards.""" """Agent order for reward evaluation, as some rewards can be dependent on other agents' rewards."""
self.nmne_config: NmneData = None
""" Config data from Number of Malicious Network Events."""
def step(self): def step(self):
""" """
Perform one step of the simulation/agent loop. Perform one step of the simulation/agent loop.

View File

@@ -19,7 +19,7 @@ from primaite.simulator.core import RequestFormat, RequestManager, RequestPermis
from primaite.simulator.domain.account import Account from primaite.simulator.domain.account import Account
from primaite.simulator.file_system.file_system import FileSystem from primaite.simulator.file_system.file_system import FileSystem
from primaite.simulator.network.hardware.node_operating_state import NodeOperatingState from primaite.simulator.network.hardware.node_operating_state import NodeOperatingState
from primaite.simulator.network.nmne import NmneData from primaite.simulator.network.nmne import NMNEConfig
from primaite.simulator.network.transmission.data_link_layer import Frame from primaite.simulator.network.transmission.data_link_layer import Frame
from primaite.simulator.network.transmission.network_layer import IPProtocol from primaite.simulator.network.transmission.network_layer import IPProtocol
from primaite.simulator.system.applications.application import Application from primaite.simulator.system.applications.application import Application
@@ -99,7 +99,7 @@ class NetworkInterface(SimComponent, ABC):
pcap: Optional[PacketCapture] = None pcap: Optional[PacketCapture] = None
"A PacketCapture instance for capturing and analysing packets passing through this interface." "A PacketCapture instance for capturing and analysing packets passing through this interface."
nmne_config: ClassVar[NmneData] = None nmne_config: ClassVar[NMNEConfig] = None
"A dataclass defining malicious network events to be captured." "A dataclass defining malicious network events to be captured."
nmne: Dict = Field(default_factory=lambda: {}) nmne: Dict = Field(default_factory=lambda: {})

View File

@@ -1,15 +1,14 @@
# © Crown-owned copyright 2024, Defence Science and Technology Laboratory UK # © Crown-owned copyright 2024, Defence Science and Technology Laboratory UK
from dataclasses import dataclass, field from pydantic import BaseModel
from typing import Dict, List from typing import Dict, List
@dataclass class NMNEConfig(BaseModel):
class NmneData:
"""Store all the information to perform NMNE operations.""" """Store all the information to perform NMNE operations."""
capture_nmne: bool = True capture_nmne: bool = True
"""Indicates whether Malicious Network Events (MNEs) should be captured.""" """Indicates whether Malicious Network Events (MNEs) should be captured."""
nmne_capture_keywords: List[str] = field(default_factory=list) nmne_capture_keywords: List[str] = []
"""List of keywords to identify malicious network events.""" """List of keywords to identify malicious network events."""
capture_by_direction: bool = True capture_by_direction: bool = True
"""Captures should be organized by traffic direction (inbound/outbound).""" """Captures should be organized by traffic direction (inbound/outbound)."""
@@ -23,7 +22,7 @@ class NmneData:
"""Captures should be filtered and categorised based on specific keywords.""" """Captures should be filtered and categorised based on specific keywords."""
def store_nmne_config(nmne_config: Dict) -> NmneData: def store_nmne_config(nmne_config: Dict) -> NMNEConfig:
""" """
Store configuration for capturing Malicious Network Events (MNEs). Store configuration for capturing Malicious Network Events (MNEs).
@@ -51,4 +50,4 @@ def store_nmne_config(nmne_config: Dict) -> NmneData:
if not isinstance(nmne_capture_keywords, list): if not isinstance(nmne_capture_keywords, list):
nmne_capture_keywords = [] # Reset to empty list if the provided value is not a list nmne_capture_keywords = [] # Reset to empty list if the provided value is not a list
return NmneData(capture_nmne=capture_nmne, nmne_capture_keywords=nmne_capture_keywords) return NMNEConfig(capture_nmne=capture_nmne, nmne_capture_keywords=nmne_capture_keywords)