You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+43-42Lines changed: 43 additions & 42 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -104,31 +104,31 @@ seed: 42
104
104
blueprints:
105
105
Clos_Fabric:
106
106
nodes:
107
-
spine: {count: 2, template: "spine{n}"}
108
-
leaf: {count: 4, template: "leaf{n}"}
107
+
spine: {count: 2, template: "spine{n}"}
108
+
leaf: { count: 4, template: "leaf{n}"}
109
109
links:
110
-
- source: /leaf
111
-
target: /spine
112
-
pattern: mesh
113
-
capacity: 100
114
-
cost: 1
115
-
- source: /spine
116
-
target: /leaf
117
-
pattern: mesh
118
-
capacity: 100
119
-
cost: 1
110
+
- source: /leaf
111
+
target: /spine
112
+
pattern: mesh
113
+
capacity: 100
114
+
cost: 1
115
+
- source: /spine
116
+
target: /leaf
117
+
pattern: mesh
118
+
capacity: 100
119
+
cost: 1
120
120
121
121
# Instantiate network from templates
122
122
network:
123
123
nodes:
124
-
site1: {blueprint: Clos_Fabric}
125
-
site2: {blueprint: Clos_Fabric}
124
+
site1: {blueprint: Clos_Fabric}
125
+
site2: {blueprint: Clos_Fabric}
126
126
links:
127
-
- source: {path: site1/spine}
128
-
target: {path: site2/spine}
129
-
pattern: one_to_one
130
-
capacity: 50
131
-
cost: 10
127
+
- source: {path: site1/spine}
128
+
target: {path: site2/spine}
129
+
pattern: one_to_one
130
+
capacity: 50
131
+
cost: 10
132
132
133
133
# Define failure policy for Monte Carlo analysis
134
134
failures:
@@ -149,24 +149,24 @@ demands:
149
149
mode: combine
150
150
flow_policy: SHORTEST_PATHS_ECMP
151
151
152
-
# Analysis workflow: find max supported demand, then test under failures
152
+
# Analysis workflow: find max capacity, then test under failures
153
153
workflow:
154
-
- type: NetworkStats
155
-
name: stats
156
-
- type: MaxFlow
157
-
name: site_capacity
158
-
source: ^site1/leaf/
159
-
target: ^site2/leaf/
160
-
mode: combine
161
-
- type: MaximumSupportedDemand
162
-
name: max_demand
163
-
demand_set: global_traffic
164
-
- type: TrafficMatrixPlacement
165
-
name: placement_at_max
166
-
demand_set: global_traffic
167
-
alpha_from_step: max_demand# Use alpha_star from MSD step
168
-
failure_policy: random_link
169
-
iterations: 100
154
+
- type: NetworkStats
155
+
name: stats
156
+
- type: MaxFlow
157
+
name: site_capacity
158
+
source: ^site1/leaf/
159
+
target: ^site2/leaf/
160
+
mode: combine
161
+
- type: MaximumSupportedDemand
162
+
name: max_demand
163
+
demand_set: global_traffic
164
+
- type: TrafficMatrixPlacement
165
+
name: placement_at_max
166
+
demand_set: global_traffic
167
+
alpha_from_step: max_demand # Use alpha_star from MSD step
168
+
failure_policy: random_link
169
+
iterations: 100
170
170
```
171
171
172
172
The workflow demonstrates **step chaining**: `MaximumSupportedDemand` finds the maximum feasible demand multiplier (`alpha_star=1.0`), then `TrafficMatrixPlacement` uses that value via `alpha_from_step` to run Monte Carlo placement under random link failures. Results show baseline placement at 100% and worst-case failure at 50% (when a spine-to-spine link fails).
@@ -175,14 +175,15 @@ The workflow demonstrates **step chaining**: `MaximumSupportedDemand` finds the
175
175
176
176
```text
177
177
ngraph/ # Python package source
178
+
analysis/ # Core algorithm wrappers and placement
178
179
dsl/ # Scenario parsing and blueprint expansion
179
-
model/ # Network and flow domain models
180
-
solver/ # Algorithms and Core wrappers
181
-
workflow/ # Analysis steps and orchestration
180
+
model/ # Network, demand, and flow domain models
181
+
results/ # Result artifacts and storage
182
+
workflow/ # Workflow steps and orchestration
182
183
scenarios/ # Example scenario definitions
183
-
tests/ # Pytest suite (unit and integration)
184
+
tests/ # Pytest suite
184
185
docs/ # Documentation source (MkDocs)
185
-
dev/ # Development tools and scripts
186
+
dev/ # Development scripts
186
187
```
187
188
188
189
## Development
@@ -197,7 +198,7 @@ make docs-serve # Preview documentation
197
198
198
199
## Requirements
199
200
200
-
- **Python**: 3.9+
201
+
- **Python**: 3.11+
201
202
- **NetGraph-Core**: Compatible C++ backend version
0 commit comments