Commit Graph

413 Commits

Author SHA1 Message Date
Marek Wolan
ddbbcf66e8 Merge remote-tracking branch 'origin/dev' into backport-3.2 [skip ci] 2024-08-01 13:03:52 +01:00
Charlie Crane
19d7774440 #2706 - Changed how Terminal Class handles its connections. Terminal now has a list of TerminalClientConnection objects that holds all active connections. Corrected a typo in ssh.py 2024-08-01 12:34:21 +01:00
Marek Wolan
2a715d8d0a backport 3.2 changes to core 2024-08-01 11:08:41 +01:00
Marek Wolan
b599257433 #2676 - update configs to use new nmne schema; fix test and warnings 2024-08-01 09:06:35 +01:00
Marek Wolan
2abd1969fe #2800 - Consolidate software install and uninstall to a single method 2024-07-31 16:41:59 +01:00
Marek Wolan
bd1e23db7d 2676 - make ntwk intf use default nmne config 2024-07-31 15:25:02 +01:00
Marek Wolan
9bf8d0f8cb #2676 Put NMNE back into network module 2024-07-31 13:20:15 +01:00
Czar Echavez
5e3a169999 #2735: add usermanager and usersessionmanager into describe_state 2024-07-30 12:48:11 +01:00
Archer.Bowen
556239a535 #2689 Initial base class implementation 2024-07-30 11:17:10 +01:00
Charlie Crane
bb0ecb93a4 #2706 - Correcting whitespace change in database_service.py and actioning some review comments 2024-07-30 09:57:47 +01:00
Czar Echavez
3d13669671 #2735: fixes to broken items 2024-07-29 15:12:24 +01:00
Chris McCarthy
265632669e #2778 - added request managers for USerManager and UserSessionManager classes 2024-07-29 10:29:12 +01:00
Chris McCarthy
2e35549c95 #2735 - added docstrings to the User, UserManager, and UserSessionManager classes 2024-07-29 09:29:20 +01:00
Chris McCarthy
d0c8aeae30 #2735 - implemented remote logins. Added action remote sessions to UserSessionManager describe_state. Added suite of tests for UserSessionManager logins 2024-07-24 17:08:18 +01:00
Charlie Crane
a7f9e4502e #2712 - Updates to the login logic and fixing resultant test failures. Updates to terminal.rst and ssh.py 2024-07-23 15:18:20 +01:00
Nick Todd
e4ade6ba54 #2676: Merge nmne.py with io.py 2024-07-19 12:02:43 +01:00
Charlie Crane
5c04f4fa4c Merge branch 'dev' into feature/2712-Terminal_Login_Handling 2024-07-19 11:18:34 +01:00
Charlie Crane
155562cb68 #2712 - Commit before merging in changes on dev 2024-07-19 11:18:17 +01:00
Charlie Crane
2104a7ec7d #2712 - Commit before merging in changes on dev 2024-07-19 11:17:54 +01:00
Nick Todd
9fb3790c1a #2726: Resolve pydantic validators PR comment 2024-07-19 11:10:57 +01:00
Chris McCarthy
8702dc7067 #2735 - tidies up some oif the api, temporarily integrated login checks to ping for testing, added temp test 2024-07-19 10:34:32 +01:00
Nick Todd
4361734014 #2676: Code review changes 2024-07-17 17:50:55 +01:00
Charlie Crane
fee7f202a6 #2711 - Amending some minor changes spotted whilst raising PR 2024-07-15 10:06:28 +01:00
Nick Todd
0e3227c691 Merge branch 'dev' into bugfix/2676_NMNE_var_access 2024-07-15 09:27:11 +01:00
Charlie Crane
2eb36149b2 #2710 - Prep for draft PR 2024-07-15 08:20:11 +01:00
Chris McCarthy
93350ecd30 Merge branch 'dev' into feature/2735_Implement-UserManager-class-and-integrate-into-Node 2024-07-12 17:14:57 +01:00
Chris McCarthy
cde632066c #2745 implemented overriding of frequency max capacities on the airspace. updated documentation to reflect the changes in airspace.py. 2024-07-11 21:11:27 +01:00
Chris McCarthy
cf563149ec #2745 carried over changes from internal that backtracked on the complex channel width stuff for now and focussed on getting a stable data rate baked in for each frequency 2024-07-11 15:07:58 +01:00
Charlie Crane
dc3558bc4d #2710 - End of Day commit 2024-07-10 17:39:45 +01:00
Charlie Crane
42602be953 #2710 - Initial implementation f the receive/send methods. Committing to change branch 2024-07-09 11:54:33 +01:00
Christopher McCarthy
b45f6bbd40 Merged PR 447: Bandwidth load / capacity checks before transmission
## Summary

This pull request introduces significant enhancements to the AirSpace class within our network simulation software, aimed at improving the realism, configurability, and accuracy of wireless network simulations. These changes include the addition of new enums and attributes, enhancements to the configuration schema, and improvements in bandwidth management and transmission logic.

**Additions**

-   **Enums and Attributes:**

-   **AirSpaceEnvironmentType Enum**: Defines various environmental settings that affect wireless signal propagation and interference.
-   **ChannelWidth Enum**: Specifies available channel width options for wireless interfaces.
-   **Channel Width Attribute**: Added to WirelessNetworkInterface for dynamic adjustments based on the operational environment.
-   **airspace_key Attribute**: A tuple identifying the frequency and channel width combination for bandwidth management.
-   **airspace_environment_type Attribute**: Sets the overall environmental context of the airspace, influencing all contained devices.

-   **Functional Enhancements:**

-   **SNR and Capacity Calculation Functions**: New functions estimate_snr and calculate_total_channel_capacity have been implemented to compute signal-to-noise ratios and channel capacities dynamically.
-   **show_bandwidth_load Function**: Provides a visual representation of the current bandwidth load across different channels.
-   **Dynamic Speed Setting**: The speed attribute of WirelessInterface is now adjusted dynamically based on frequency, channel width, and environment.

-   **Configuration and Testing:**

-   **Configuration Schema Update**: The simulation.network config file schema now supports setting the airspace_environment_type.

**Changes**

-   **Interface and Performance Adjustments:**

-   **NetworkInterface Speed Type**: Changed from int to float for more precise speed definitions.
-   **Transmission Feasibility Check**: Updated the _can_transmit function in Link to better handle current load and bandwidth capacities.
-   **WirelessRouter Configurations**: The configure_wireless_access_point function now takes channel_width as an additional parameter.
-   **Grouping Adjustments**: WirelessNetworkInterfaces are now categorized by both AirSpaceFrequency and ChannelWidth.

-   **Transmission Logic Overhaul:**

-   **Interface Adjustments**: Modifying an interface's settings now necessitates its temporary removal from the airspace, followed by a recalculation of its data rate and reintegration under new settings.
-   **Blocking Overloads**: Strengthened the logic in AirSpace to prevent transmissions that would surpass the available capacity.

**Fixes**

-   **Transmission Permission Logic**: Fixed the can_transmit_frame function to accurately enforce transmission limits based on current network load and available bandwidth.

**Conclusion**

These updates significantly enhance the fidelity and flexibility of our network simulation tool, enabling more accurate m...
2024-07-09 10:47:56 +00:00
Chris McCarthy
47a1daa580 #2735 - Initial work done around User, UserManager, and UserSessionManager 2024-07-08 15:10:06 +01:00
Charlie Crane
61c2ee0ee8 Merged PR 450: Terminal Service Class
## Summary
This PR is the base implementation of the Terminal Service Class, containing the skeleton structure for #2711.

## Test process
Future me's problem - see #2714

## Checklist
- [X] PR is linked to a **work item**
- [X] **acceptance criteria** of linked ticket are met
- [X] performed **self-review** of the code
- [ ] written **tests** for any new functionality added with this PR
- [] updated the **documentation** if this PR changes or adds functionality
- [ ] written/updated **design docs** if this PR implements new functionality
- [X] updated the **change log**
- [X] ran **pre-commit** checks for code style
- [ ] attended to any **TO-DOs** left in the code

Related work items: #2711
2024-07-08 09:46:53 +00:00
Chris McCarthy
4410e05e3e #2967 - Updated the DB filesize so that it doesn't fill the 100mbit link. moved the can transmit checks to the network interface to enable frame dropped syslog. narrowed the scope of the NODE_NMAP_PORT_SCAN action in nmap_port_scan_red_agent_config.yaml to select ports and protocols as the link was filling up on the full box scan. 2024-07-05 16:27:03 +01:00
Czar Echavez
2a0695d0d1 #2688: apply the request validators + fixing the fix duration test + refactor test class names 2024-07-05 15:06:17 +01:00
Nick Todd
2dcabc9fa7 Merge branch 'dev' into bugfix/2676_NMNE_var_access 2024-07-05 14:20:50 +01:00
Nick Todd
18ae3acf37 #2676: Update nmne tests 2024-07-05 14:09:39 +01:00
Nick Todd
589ea2fed4 #2676: Add local nmne dict 2024-07-05 12:19:52 +01:00
Chris McCarthy
c6b1d35215 #2967 - Enhance AirSpace simulation with dynamic environment and bandwidth/channel management
This commit introduces several key enhancements to the AirSpace class, improving the realism and configurability of the wireless network. Major additions include the AirSpaceEnvironmentType and ChannelWidth enums, dynamic adjustment of interface speeds based on environmental settings, and comprehensive bandwidth management features. Additionally, the software now supports configuration of channel widths via the config file, incorporates accurate SNR and capacity calculations, and enforces bandwidth limits more effectively across wireless interfaces. Updated tests ensure that the new functionalities integrate seamlessly with existing systems.
2024-07-04 20:45:42 +01:00
Nick Todd
3867ec40c9 #2676: Fix nmne_config dict conversion 2024-07-04 17:05:00 +01:00
Nick Todd
47df2aa569 #2676: Store NMNE config data in class variable. 2024-07-04 15:41:13 +01:00
Charlie Crane
ebf6e7a90e #2711 - Added in remote_login and process_login methods. Minor updates to make pydantic happy. Starting to flesh out functionality of Terminal Service in more detail 2024-07-02 16:47:39 +01:00
Charlie Crane
bd05f4d4e8 #2711 - Initial commit of Terminal Service Skeleton framework. Added in a placeholder SSHPacket class. Currently, this allows the Terminal 'service' to be installed onto a HostNode class, and Port 22 - SSH to be visible when using .show(). Functionality and testing still to be completed 2024-07-02 15:02:59 +01:00
Marek Wolan
feabe5117c #2700 Fix docstrings in application configure methods 2024-07-02 12:48:23 +01:00
Nick Todd
dbc1d73c34 #2676: Update naming of NMNE class 2024-07-02 11:15:31 +01:00
Marek Wolan
dc2c64b2f6 #2701 - Remove ip address option from node application install 2024-07-01 16:23:10 +01:00
Nick Todd
4796cee2dc #2676: Put global variables in dataclass 2024-06-26 16:51:30 +01:00
Marek Wolan
28dabad66b #2682 Backport changes to core PrimAITE 2024-06-25 11:04:52 +01:00
Charlie Crane
923d2629ca Merged PR 418: Update Pre-Commit to check for valid copyright
## Summary
Updates Pre-commit with the a check to ensure valid copyright headers

## Test process
*How have you tested this (if applicable)?*

## Checklist
- [X] PR is linked to a **work item**
- [ ] **acceptance criteria** of linked ticket are met
- [ ] performed **self-review** of the code
- [ ] written **tests** for any new functionality added with this PR
- [ ] updated the **documentation** if this PR changes or adds functionality
- [ ] written/updated **design docs** if this PR implements new functionality
- [ ] updated the **change log**
- [ ] ran **pre-commit** checks for code style
- [ ] attended to any **TO-DOs** left in the code

Related work items: #2646
2024-06-13 18:54:48 +00:00
Marek Wolan
fad8d936e6 Merge remote-tracking branch 'origin/dev' into feature/2646_Update-pre-commit-to-check-for-valid-copyright 2024-06-13 12:52:09 +01:00