Skip to content

Commit

Permalink
update website
Browse files Browse the repository at this point in the history
  • Loading branch information
mengleiz committed Aug 17, 2023
1 parent ede8f06 commit 743cd06
Show file tree
Hide file tree
Showing 21 changed files with 125 additions and 124 deletions.
4 changes: 2 additions & 2 deletions _sources/api/network_gym_client.md.txt
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ style northbound_interface fill:#1E90FF,color:white,stroke:white

```

NetworkGym Client includes the three components, a **custom gymnasium.env**, **adapter** and **northbound interface**.
NetworkGym Client includes the three components, a **custom gymnasium.env**, **adapter** and **northbound** interface.
- The **custom gymnasium.env** inherets the environment class of [gymnasium](https://gymnasium.farama.org/) and communicates with the agent using the standard gymnasium interfaces. E.g., exchange obs, reward and action in the reset() and step() functions.
```python
import gymnasium as gym
Expand All @@ -60,4 +60,4 @@ class Env(gym.Env):
return observation, info
```
- The **adapter** transform the data format from gymnasium to network_gym or the other way around. E.g., it transforms network stats to obs and reward, and changes action to policy.
- The **northbound interface** connects the client to the server, configure the environment parameters, communicate network stats and policy between client and network_gym envrionment.
- The **northbound** interface connects the client to the server, configure the environment parameters, communicate network stats and policy between client and network_gym envrionment.
8 changes: 4 additions & 4 deletions _sources/api/network_gym_env.md.txt
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,11 @@ click configure "./network_gym_env/configure.html" _blank
style configure fill:#1E90FF,color:white,stroke:white

```
The NetworkGym Environment comprises two core components: the **Environment Configure** and the **NetworkGym Simulator**. These components establish a connection with the Server via the designated **SouthBound Interface**.
The NetworkGym Environment comprises two core components: the **environment configure** and the **NetworkGym simulator**. These components establish a connection with the Server via the designated **southBound** interface.

- The **SouthBound Interface** serves as the bridge between the environment and the server. It facilitates communication of network configurations, network statistics, and policies between the environment and the server.
- The **Environment Configure** module keeps the connection alive by periodically dispatching an "Env Hello" message to the server. Upon receiving a "Env Start" request, it disengages from the server and initiates the simulator.
- Upon activation, the ns-3 based **NetworkGym Simulator** establishes a connection with the server and instigates the exchange of measurements. Plans for incorporating an emulator and testbed alternative are earmarked for future release.
- The **southbound** interface serves as the bridge between the environment and the server. It facilitates communication of network configurations, network statistics, and policies between the environment and the server.
- The **environment configure** module keeps the connection alive by periodically dispatching an "Env Hello" message to the server. Upon receiving a "Env Start" request, it disengages from the server and initiates the simulator.
- Upon activation, the ns-3 based **NetworkGym smulator** establishes a connection with the server and instigates the exchange of measurements. Plans for incorporating an emulator and testbed alternative are earmarked for future release.

## NetworkGym UML Sequence Diagram

Expand Down
2 changes: 1 addition & 1 deletion _sources/api/network_gym_server.md.txt
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ end

```

The NetworkGym Server includes two components, the **northbound interface** manages the connections with the clients, and the **southbound interface** manages the connections with the environments.
The NetworkGym Server includes two components, the **northbound** interface manages the connections with the clients, and the **southbound** interface manages the connections with the environments.
When a client connects, the server selects an idle environment instance and add the client to envrionment mapping to the routing table.

```{note}
Expand Down
14 changes: 7 additions & 7 deletions _sources/content/motivation.md.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,17 +11,17 @@ title: Motivation
width: 100%
---
```
## Network AI Developer's Challenges
## Challenges Faced by Network AI Developers
1. real-world dataset controlled by network operator, difficult to acquire, not aligned with specific usage or requirement.
2. dataset by itself not enough, also need environment to train/test AI models, e.g., Reinforcement Learning, etc.
```{admonition} Why NetworkGym?
✔️ at present, NetworkGym environment enable 3 use cases: multi-access traffic splitting, QoS-aware traffic steering, and (cellular) RAN slicing.
```{admonition} NetworkGym's Approach to Addressing this Challenge
✔️ Currently, NetworkGym environment enable 3 use cases: multi-access traffic splitting, QoS-aware traffic steering, and (cellular) RAN slicing.
```
3. network simulation tools (e.g., ns-3, etc.) often very complex and difficult to use, especially for Network AI researcher and developer.
```{admonition} Why NetworkGym?
✔️ working with NetworkGym requires zero knowledge of network simulation to train the agent.
```{admonition} NetworkGym's Approach to Addressing this Challenge
✔️ NetworkGym enables agent training without the requirement of network simulation expertise.
```
4. lack of common simulation environment with simple APIs to develop, evaluate, and benchmark Network AI models and algorithms.
```{admonition} Why NetworkGym?
✔️ NetworkGym follows the standard gymnasium API for AI model training and provides additional API for network simulation configuration.
```{admonition} NetworkGym's Approach to Addressing this Challenge
✔️ NetworkGym adheres to the standard gymnasium API for AI model training and additionally offers an API for network simulation configuration.
```
19 changes: 9 additions & 10 deletions _sources/content/overview.md.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,9 @@ title: Overview

## NetworkGym Components and Interfaces

The NetworkGym framework consists of three essential components - the **Client**, the **Server**, and the **Environment** - each playing a crucial role in the system. Additionally, it encompasses two interfaces - the **Northbound** and the **Southbound interfaces**, facilitating seamless communication and interaction within the framework.

The graphical representation below illustrates the architecture of NetworkGym:
The NetworkGym framework consists of three essential components - the **Client**, the **Server**, and the **Environment** - each playing a crucial role in the system. Additionally, it encompasses two interfaces - the **Northbound** and the **Southbound** Interfaces, facilitating seamless communication and interaction within the framework.

Displayed below is a graphical depiction of the NetworkGym architecture:

```{mermaid}
flowchart TB
Expand Down Expand Up @@ -70,13 +69,13 @@ click configure "../api/network_gym_env/configure.html" _blank
style configure fill:#1E90FF,color:white,stroke:white

```
In this diagram, you can see how the components and interfaces of NetworkGym work together to create a cohesive and efficient Simulation-as-a-Service framework for Network AI Research and Development.
This visual aid provides an overview of how the diverse components and interfaces of NetworkGym collaborate harmoniously, forming a streamlined and effective Simulation-as-a-Service framework tailored for the advancement of Network AI Research and Development. By clicking on the blue boxes, you can navigate directly to the corresponding API pages for the respective components.

## Client
The NetworkGym Client comprises three main elements: a **customized Gymnasium environment**, an **Adapter**, and the **Northbound Interface**. The environment-specific Adapter is responsible for transforming the NetworkGym data format into the Gymnasium data format, allowing seamless communication with Gymnasium-compatible agents like stable-baselines3 and cleanRL. The Northbound Interface establishes the connection between the client and the server. It enables the client to select and configure the desired network environment.
## [Client API](../api/network_gym_client.md)
The NetworkGym client comprises three main elements: a **customized Gymnasium environment**, an **Adapter**, and the **Northbound** interface. The environment-specific Adapter is responsible for transforming the NetworkGym data format into the Gymnasium data format, allowing seamless communication with Gymnasium-compatible agents like stable-baselines3 and cleanRL. The Northbound Interface establishes the connection between the client and the server. It enables the client to select and configure the desired network environment.

## Server
The NetworkGymServer component plays a central role in communication between the client and the environment. It utilizes the **Northbound Interface** to interact with the client and the **Southbound Interface** to communicate with the environment. Additionally, the server maintains a routing map, which keeps track of each active client and its assigned environment during a connected session.
## [Server API](../api/network_gym_server.md)
The NetworkGym server component plays a central role in communication between the client and the environment. It utilizes the **Northbound** interface to interact with the client and the **Southbound** interface to communicate with the environment. Additionally, the server maintains a routing map, which keeps track of each active client and its assigned environment during a connected session.

## Environment
The NetworkGym environment (either a simulator, emulator, or testbed) connects to the server through the **Southbound Interface**. At present, the framework supports the **ns-3** based simulator, offering **three** distinct network environments.
## [Environment API](../api/network_gym_env.md)
The NetworkGym environment (either a simulator, emulator, or testbed) connects to the server through the **Southbound** interface. At present, the framework supports the **ns-3** based simulator, offering **three** distinct network environments.
3 changes: 1 addition & 2 deletions _sources/content/quickstart.md.txt
Original file line number Diff line number Diff line change
Expand Up @@ -91,9 +91,8 @@ First, the configuration file is loaded using the `load_config_file` function by

Next, the agent performs an action in the environment, `step`. As a result, the agent receives a new observation from the updated environment along with a reward for taking the action. One such action-observation exchange is referred to as a timestep.

In NetworkGym, an environment includes multiple episodes. The terminal state for an episode and environment is signaled using the truncated and terminated signals returned by `step`. For example, after a fixed number of timesteps, an episode is ended by issuing a truncated signal. After multiple episodes, the environment terminates with a terminated signal. If `truncated` is `True`, then reset should be called next to restart the episode. If the `terminated` is `True`, then the client needs to restart the environment. See [Handling Time Limits](../tutorials/handling_time_limits.md) for more details.
In NetworkGym, an environment includes multiple episodes. The terminal state for an episode and environment is signaled using the truncated and terminated signals returned by `step`. For example, after a fixed number of timesteps, an episode is ended by issuing a truncated signal. After multiple episodes, the environment terminates with a terminated signal. If `truncated` is `True`, then reset should be called next to restart the episode. If the `terminated` is `True`, then the client needs to restart the environment. For scenarios where sequential training is essential, the agent can initiate multiple environment sessions in succession. Further insights into effectively managing time constraints can be found in the [Handling Time Limits](../tutorials/handling_time_limits.md). An illustrative example is presented below.

An example is provided in the following.
```{mermaid}
sequenceDiagram

Expand Down
6 changes: 3 additions & 3 deletions _sources/index.md.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ width: 100%

## Benefits of NetworkGym
NetworkGym is partitioned into Open-Source (Agent/Client) and Service (Environment) components, yielding the following benefits:
- **Agent Training without Needing Network Simulation Expertise**: The Agent is tailored for open-source utilization, whereas the Environment is under our management. By utilizing open-source client software, the Agent interacts with the Environment through public internet connections, enabling agent training without the requirement of network simulation expertise.
- **Agent Training without Needing Network Simulation Expertise**: The Agent is tailored for open-source utilization, whereas the Environment is under our management. By utilizing open-source NetworkGym Client and API, the Agent interacts with the Environment through public internet connections, enabling agent training without the requirement of network simulation expertise.
- **Flexibility in Language and Platform**: The separation of the Agent and Environment provides the freedom to employ various programming languages. For instance, a Python-based Agent can smoothly interact with a C++(ns-3) based simulation Environment.
- **Controlled Access through the NetworkGym API**: By leveraging the networkgym API for message exchanges, users are prevented from direct access to the simulator or the underlying network environment implementation. This controlled access maintains security and oversight.
- **Independent Deployment**: Separating the Agent and Environment allows them to be deployed on distinct machines or platforms, optimized for specific workloads. This approach also accommodates the scenario where they can be developed and maintained by different entities.
Expand All @@ -25,8 +25,8 @@ NetworkGym is partitioned into Open-Source (Agent/Client) and Service (Environme
NetworkGym offers four types of network agents, each serving a specific purpose when interacting with NetworkGym Environments:
- **System Default Agent**: By sending an "empty" action to the environment, this agent enables the collection of data for offline training purposes.
- **Custom Algorithm Agent**: A flexible option that allows users to define their own specialized agents.
- **Stable-Baselines3 Agent**: A powerful RL agent with advanced stability and reliability features.
- **CleanRL Agent**: An efficient and clean RL agent option for custom algorithms.
- **Stable-Baselines3 Agent**: A RL agent includes the State-of-the-Art (SOTA) Reinforcement Learning (RL) algorithms sourced from Stable-Baselines3.
- **CleanRL Agent**: A CleanRL agent is available for custom algorithms.

We have included additional information on how to train the agent in the [Training Agents](tutorials/training_agents.md) tutorial. This tutorial provides detailed guidance and instructions for effectively training your agent using various network agents offered by NetworkGym.

Expand Down
6 changes: 3 additions & 3 deletions _sources/tutorials/customizing_observation_and_reward.md.txt
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,9 @@ Personalizing the observation and reward functions to match your experimental go
27 All DL 6000 GMA y_loc 5900 [0, 1, 2, 3] [6.167369006263322, 2.450729590703729, 9.45877...
```

## Working with the DataFrame
## Working with the Measurement

### Columns
### Measurement Columns

The network statistics measurement contains 8 columns, with each field's explanation provided below:

Expand All @@ -55,7 +55,7 @@ The network statistics measurement contains 8 columns, with each field's explana
| user | A list of user IDs for this measurement. |
| value | A list of measured values for this measurement (user and value should have the same size). |

### Rows
### Measurement Rows

Now, we elaborate on each row:

Expand Down
Loading

0 comments on commit 743cd06

Please sign in to comment.