Chris McCarthy
596ad20cc6
#1800 - Added better logging and error messages to AccessControlList class. Updated usage of extra following pydantic deprecated warning "pydantic.config.Extra is deprecated, use literal values instead (e.g. extra='allow')"
2023-09-04 16:44:29 +01:00
Chris McCarthy
ccad5ba8a3
#1800 - Ran pre-commit
2023-09-04 16:34:55 +01:00
Chris McCarthy
5981bc7255
Merge remote-tracking branch 'devops/feature/1800_model-a-basic-router-subclass-of-node' into feature/1800_model-a-basic-router-subclass-of-node
2023-09-04 14:58:52 +01:00
Chris McCarthy
3075d1985b
#1800 - Renamed all ip fields so that they're post-fixed with ip_address
2023-09-04 14:58:34 +01:00
Christopher McCarthy
d9feb67e02
Apply suggestions from code review
2023-09-04 11:20:40 +00: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
5111affeeb
#1800 - Added more docstrings and rst docs.
...
- Extended the .show functionality to enable markdown format too.
2023-09-01 16:58:21 +01:00
Chris McCarthy
89ad22aceb
#1800 - Synced with dev.
...
- Added the UC2 network.
- Added a Computer class.
2023-08-31 13:35:56 +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
Marek Wolan
7759c178bb
Add logging and service restarting
2023-08-31 11:20:16 +01:00
Chris McCarthy
e73d7f49d6
#1800 - Fixed routing and processing of ICMP packets in the Router class
2023-08-31 11:03:38 +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
40d3e04e64
Move init action manager function to the top
2023-08-29 14:33:28 +01:00
Marek Wolan
f0b82cbdfb
Add ability to uninstall service
2023-08-29 14:15:49 +01:00
Marek Wolan
9c8b7a7b7a
Merge remote-tracking branch 'origin/feature/1789-add-convenience-methods-to-network-object' into feature/1801-Database
2023-08-29 13:22:14 +01:00
Marek Wolan
94325d1fde
Add Install method to software.
2023-08-29 13:21:34 +01:00
Marek Wolan
319e87d200
Make changes to the way actions work
2023-08-28 22:34:20 +01:00
Marek Wolan
ae6e835955
Apply suggestions from code review.
2023-08-25 15:58:07 +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
f38b423886
Update comment
2023-08-24 10:27:30 +01:00
Marek Wolan
4077eb3a5c
Add tests for network node adding/removal
2023-08-24 10:26:17 +01:00
Marek Wolan
1613bbe27a
Add methods for adding/removing nodes form network
2023-08-23 14:41:30 +01:00
SunilSamra
1a13af2f5e
#1752 - Changed DNSReply and DNSResponse to have 1 parameter only
2023-08-21 14:11:53 +01:00
Marek Wolan
7e64acd368
Update container docstrings
2023-08-21 10:04:23 +01:00
Marek Wolan
01c912c094
fix type hints and describe state functions
2023-08-20 18:38:02 +01:00
Marek Wolan
6ca53803cd
Describe state
2023-08-17 15:32:12 +01:00
SunilSamra
2919be3796
#1752 - Added web_browser.py application for DNS modelling
2023-08-17 14:20:09 +01:00
Marek Wolan
ced45d4275
Connect actions of top-level sim components
2023-08-16 16:45:52 +01:00
SunilSamra
72cd9fd8e2
#1752 - Created dns.py protocol file with DNSPacket and DNSRequest and DNSReply packets
...
- Added reset_component logic for dns_server.py and dns_client.py
2023-08-16 13:00:16 +01:00
Chris McCarthy
9ee0ef2fd6
#1706 - Applied some final changes from PR. Fixed the PCAP log name on SwitchPort so that a pcap file is generated for each port.
2023-08-10 13:26:51 +01:00
Chris McCarthy
ad81a81949
#1706 - Applied some code suggestions from the PR
2023-08-09 20:38:45 +01:00
Chris McCarthy
b46057841d
#1706 - Refactored a bunch of if statements in base.py to improve readability
2023-08-09 20:31:42 +01:00
Chris McCarthy
a840159460
#1706 - Fixed the "smart" merging of SimComponent that PyCharm performed. Integrated the Filesystem class into the Node. Added prettytable to deps in pyproject.toml
2023-08-08 20:30:37 +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
209f934abd
#1706 - Added some extra logging
2023-08-02 22:01:15 +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
95f5515d69
#1724 - Added documentation for the transport layer down to data link layer
2023-08-02 12:12:08 +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
0f33b837aa
#1715 - Fixed up pr code suggestion flake8 issues
2023-08-01 12:45:36 +01:00
Christopher McCarthy
5ee3eff0e9
Apply suggestions from code review
2023-08-01 11:14:36 +00:00
Christopher McCarthy
2769b1bfb1
Apply suggestions from code review
2023-08-01 11:04:16 +00:00
Chris McCarthy
8785089a1c
#1715 - Moved IPv4Address conversions to the NIC init. Mak wake_on_lan not optional. Ignored ANN002 and ANN003 in .flake8 so we don't get silly 'ANN002 Missing type annotation for *args' and 'ANN003 Missing type annotation for **kwargs' flake8 failures
2023-08-01 10:32:16 +01:00
Chris McCarthy
557caeaac4
#1715 - Added suppress-none-returning and suppress-dummy-args to .flake8 as flake8-annotations can get very annoying
2023-08-01 08:19:28 +01:00
Chris McCarthy
e4b6f266e8
#1715 - Added timestep int as a param to the apply_timestep function in core.py. Also added a reset_component_for_episode function. Updated docs with details of Link and NIC.
2023-07-31 20:05:36 +01:00