Skip to content

Commit b1ad1e4

Browse files
committed
Refine formatting and update Python version requirement in README
1 parent b391fda commit b1ad1e4

1 file changed

Lines changed: 43 additions & 42 deletions

File tree

README.md

Lines changed: 43 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -104,31 +104,31 @@ seed: 42
104104
blueprints:
105105
Clos_Fabric:
106106
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}" }
109109
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
120120

121121
# Instantiate network from templates
122122
network:
123123
nodes:
124-
site1: {blueprint: Clos_Fabric}
125-
site2: {blueprint: Clos_Fabric}
124+
site1: { blueprint: Clos_Fabric }
125+
site2: { blueprint: Clos_Fabric }
126126
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
132132

133133
# Define failure policy for Monte Carlo analysis
134134
failures:
@@ -149,24 +149,24 @@ demands:
149149
mode: combine
150150
flow_policy: SHORTEST_PATHS_ECMP
151151

152-
# Analysis workflow: find max supported demand, then test under failures
152+
# Analysis workflow: find max capacity, then test under failures
153153
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
170170
```
171171
172172
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
175175

176176
```text
177177
ngraph/ # Python package source
178+
analysis/ # Core algorithm wrappers and placement
178179
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
182183
scenarios/ # Example scenario definitions
183-
tests/ # Pytest suite (unit and integration)
184+
tests/ # Pytest suite
184185
docs/ # Documentation source (MkDocs)
185-
dev/ # Development tools and scripts
186+
dev/ # Development scripts
186187
```
187188

188189
## Development
@@ -197,7 +198,7 @@ make docs-serve # Preview documentation
197198

198199
## Requirements
199200

200-
- **Python**: 3.9+
201+
- **Python**: 3.11+
201202
- **NetGraph-Core**: Compatible C++ backend version
202203

203204
## Documentation

0 commit comments

Comments
 (0)