Commit Graph

42 Commits

Author SHA1 Message Date
Chris McCarthy
1ac3e1c6b4 #2149 - Created a Router-specific version of SessionManager that looks at route table rather than default gateway when dst ip address isn't for a locally attached network. Carried these changes through to arp. Added test for this. Made some minor improvements to show functions in container and node that assist debugging. 2024-03-28 15:52:08 +00:00
Czar Echavez
f2c6f10c21 #2350: apply PR suggestions 2024-03-12 12:20:02 +00:00
Czar Echavez
ec4818e4d3 Merge remote-tracking branch 'origin/dev' into feature/2350-confirm-action-observation-space-conforms-to-CAOS-0.7 2024-03-12 09:11:30 +00:00
Marek Wolan
66ab5ec980 Fix last tests 2024-03-11 09:18:31 +00:00
Czar Echavez
cc721056d8 #2350: configurable NMNE category thresholds 2024-03-08 19:32:07 +00:00
Czar Echavez
b13725721d #2350: splitting observations into separate files 2024-03-08 13:49:00 +00:00
Marek Wolan
76752fd9af Change the nmne clear to happen at apply_timestep instead of within describe_state 2024-03-07 14:44:44 +00:00
Marek Wolan
a900d59f7b Update NMNE to only count MNEs in the last step. 2024-03-07 12:15:30 +00:00
Chris McCarthy
771a68dccb #2238 - Implement NMNE detection and logging in NetworkInterface.
- Enhance NicObservation for detailed NMNE event monitoring.
- Add nmne_config options to simulation settings for customizable NMNE capturing.
- Update documentation and tests for new NMNE features and simulation config.
2024-02-22 22:43:14 +00:00
Chris McCarthy
7b64d99a63 #2205 - Final suggestions from PR 2024-02-13 12:56:41 +00:00
Chris McCarthy
426c0a6682 2205 - Slimmed down the capability of the wireless router for now 2024-02-13 10:18:06 +00:00
Chris McCarthy
cfd64333e2 #2205 - Added wireless router tests and documentation. Refactored some code based on PR suggestions. 2024-02-12 12:31:08 +00:00
Chris McCarthy
58af58810d #2205 - Introduced a Firewall class for enhanced network security and control, extending Router functionalities. Updated ACLRule to support IP ranges via wildcard masking for refined traffic filtering. Includes documentation updates. 2024-02-09 23:29:06 +00:00
Chris McCarthy
411f0a320f #2248 - Final run over all the docstrings after running pre-commit. All tests now working. Updated CHANGELOG.md. 2024-02-08 10:53:30 +00:00
Chris McCarthy
0c96fef3ec #2248 - All tests (bar the one config file test) now working. Still need to tidy up docstrings and some docs. Almost there 2024-02-07 23:05:34 +00:00
Chris McCarthy
7bbfd564fb #2248 - Big refactor of base with all Network Interface subclasses created to allow for proper management of ports on devices as it was starting to get messy with the Router. Some routing tests still need fixing as ARP doesn't seem to be working properly 2024-02-05 08:44:10 +00:00
Chris McCarthy
cb002d644f #2248 - Tidying up the tests so that they use updated networks 2024-02-02 16:55:43 +00:00
Chris McCarthy
dc5aeede33 #2248 - ICMP now working as a service using the session manager for transmission. Now started to comb through the tests to fix anything up. 2024-02-02 16:20:15 +00:00
Chris McCarthy
d2d628b676 #2139 - Fixed unicast and broadcast functionality properly 2024-01-05 22:11:37 +00:00
Chris McCarthy
ddf7fbf88b #2139 - Included a test that tests services over multi-hop routing. Added some PR suggestions around logging. 2024-01-05 15:27:10 +00:00
Chris McCarthy
ade5f133d0 #2139 - Implemented routing 2023-12-22 10:31:11 +00:00
Czar Echavez
b2a52b2ec0 #2084: created a fixture that we can use to test things at a non end to end level 2023-11-29 16:31:21 +00:00
Czar Echavez
19d534395b #2084: beginning the introduction of code coverage + adding tests to try to meet the 80% code coverage target 2023-11-29 01:28:40 +00:00
Czar.Echavez
8b85d5d55b #1947: node startup/shutdown now take multiple timesteps to complete 2023-10-24 10:11:50 +01:00
Marek Wolan
610517d817 Underscore 'parent' refs to make pydantic happy.
Rename attributes like connected_link and connected_node to start with
an underscore.

This will prevent circular dependency and stack recursion depth error.
2023-09-19 11:28:13 +01:00
Chris McCarthy
05959e5408 #1800 - Moved the Switch code to a dedicated switch.py module.
- Added more switch tests.
- Updated ACL tests to use router acl.
- Updated more docs.
- Moved the Jupyter notebooks to _package_data and fixed up the setup to move all notebooks to ~/primaite/notebooks/example_notebooks.
2023-09-04 12:14:24 +01:00
Chris McCarthy
415ee3b3a7 Merge branch 'dev' into feature/1800_model-a-basic-router-subclass-of-node 2023-08-31 11:39:21 +01:00
Chris McCarthy
1bf51c7741 #1800 - Added ACL and routing classes.
- Added .show() methods to new router classes to enable inspection of the components as you would a real router.
- Removed gateway from the NIC and added default_gateway to Node so that Node has a single default gateway.
- Added some routing tests to check that ping can be performed when router between subnets.
2023-08-30 21:38:55 +01:00
Marek Wolan
6e602aa151 Fix unit tests by removing warning checks 2023-08-25 17:56:05 +01:00
Chris McCarthy
c6f71600fc #1800 - Fixed the ping functionality so that it actually checks for replies and returns True if the right number of replies have been received.
- Added the foundations of a Router class along with ACLRule and RouteTableEntry classes.
2023-08-25 09:07:32 +01:00
Marek Wolan
fec44aef53 Rename connect_nodes to connect and fix minor bug 2023-08-24 13:03:16 +01:00
Marek Wolan
7058c7e9a8 Rename networkcontainer to network 2023-08-24 12:41:46 +01:00
Marek Wolan
a818de8f01 Add ability to connect nodes via the network. 2023-08-24 12:40:00 +01:00
Marek Wolan
4077eb3a5c Add tests for network node adding/removal 2023-08-24 10:26:17 +01:00
Chris McCarthy
ad81a81949 #1706 - Applied some code suggestions from the PR 2023-08-09 20:38:45 +01:00
Chris McCarthy
9fbc3c91f7 #1706 - Finished up the Node and Switch MVP. Added full extensive documentation on what's happening at each step. 2023-08-08 20:22:18 +01:00
Chris McCarthy
139d739732 #1706 - Tidies up the sysLog ARPCache, and ICMP classes and integrated them into the Node. Tidied up the base implementation of SoftwareManager and SessionManager. Tidies up the public API for Services and Applications. Added the SwitchPort and Switch classes. Added a basic test in test_frame_transmission.py that tests sending a frame from one node to another across a multi-switch network. 2023-08-07 19:33:52 +01:00
Chris McCarthy
04f1cb0dc6 #1706 - Got the code services, application, and process base classes stubbed out. Need them now so that I can leverage them for core node services required. 2023-08-03 21:30:13 +01:00
Chris McCarthy
cac4779244 #1706 - Started adding the core node software required by all nodes. Made some tweaks to the Frame to have send and receive timestamp. 2023-08-03 14:37:55 +01:00
Chris McCarthy
897dbdf10c #1706 - Got the core Node class build and working with ARP and the ability to ping another node. Added some basic tests in. Next job is to create the Node subclasses. Then move ARP and ICMP into a service that is used by all nodes. 2023-08-02 21:54:21 +01:00
Chris McCarthy
9d17a9b0d3 #1724 - Added the primaite/simulator/network/transmission sub-package with modules for each layer. They come together to build a minimal but fairly realistic network Frame. A custom PrimaiteHeader has been included to hold primaite specific metadata required in transmission for reward function and RL agent downstream. Added some basic tests that check the proper configuration of Frames with matching headers for protocols. Updated the frame typehints in NIC and Link classes. 2023-08-01 22:25:00 +01:00
Chris McCarthy
0532db960a #1715 - Added more tests. MAde use of the pydantic model_post_init function for proper ipv4 cofiguration checking. Added NetworkError to exceptions.py. 2023-07-31 16:55:45 +01:00