The current architecture provides three network characteristics:
The current architecture provides three network characteristics:
- Latency: Configured per segment, aggregated additively;
- Latency: Configured per segment, aggregated additively;
- Jitter: Standard deviation of RTT measurements;
- Jitter: Standard deviation of RTT measurements;
- Throughput: Modulated based on distance from POA (5 concentric steps);
- Throughput: Modulated based on distance from POA (5 concentric steps);
- Packet Loss: Configured per segment, aggregated using cumulative formula.
- Packet Loss: Configured per segment, aggregated using cumulative formula.
These network characteristics are calculated and applied at different stages:
These network characteristics are calculated and applied at different stages:
1. Configuration Stage: Characteristics are configured per network segment (POA, Zone, Domain)
1. Configuration Stage: Characteristics are configured per network segment (POA, Zone, Domain)
2. Application Stage: Characteristics are applied using Linux Traffic Control [\[i.2\]](#_ref_i.2),
1. Application Stage: Characteristics are applied using Linux Traffic Control [\[i.2\]](#_ref_i.2),
3. Measurement Stage: Actual characteristics are measured from network traffic
1. Measurement Stage: Actual characteristics are measured from network traffic
4. Aggregation Stage: Characteristics are aggregated along network paths
1. Aggregation Stage: Characteristics are aggregated along network paths
Too reflect the Signal Strength calculation in the UE network traffic, the current architecture uses a Linux tool name `tc netem`[\[i.2\]](#_ref_i.2). Several components are involved in the simulation:
Too reflect the Signal Strength calculation in the UE network traffic, the current architecture uses a Linux tool name `tc netem`[\[i.2\]](#_ref_i.2). Several components are involved in the simulation:
- The TC Engine (`go-apps/meep-tc-engine/`): To calculates network characteristics per flow;
- The TC Engine (`go-apps/meep-tc-engine/`): To calculates network characteristics per flow;
- The TC Sidecar (`go-apps/meep-tc-sidecar/`): To applies `tc netem`[\[i.2\]](#_ref_i.2) rules to pod network interfaces;
- The TC Sidecar (`go-apps/meep-tc-sidecar/`): To applies `tc netem`[\[i.2\]](#_ref_i.2) rules to pod network interfaces;
- The Network Characteristic Manager (`go-packages/meep-net-char-mgr/`): To aggregates network characteristics along network paths
- The Network Characteristic Manager (`go-packages/meep-net-char-mgr/`): To aggregates network characteristics along network paths
@@ -206,6 +209,7 @@ Regarding the implementation, the TC Sidecar component applies the network chara
tc qdisc change dev ifb<id> root netem delay <latency>ms <jitter>ms loss <packetLoss>% rate <throughput>bit
tc qdisc change dev ifb<id> root netem delay <latency>ms <jitter>ms loss <packetLoss>% rate <throughput>bit
```
```
This command requires:
This command requires:
- The network interface (ifb);
- The network interface (ifb);
- The calculated latency;
- The calculated latency;
- The calculated throughput;
- The calculated throughput;
@@ -214,6 +218,7 @@ This command requires:
##### A.2.2.2.2 Latency calculation
##### A.2.2.2.2 Latency calculation
The latency is set in the scenario configuration files (netChar.latency in milliseconds). It is applied to:
The latency is set in the scenario configuration files (netChar.latency in milliseconds). It is applied to: