Skip to content

Introduce rate based fluid flow wan workload - #269

Open
sanjaychari wants to merge 8 commits into
codes-org:masterfrom
sanjaychari:rate_based_fluid_flow_wan
Open

sanjaychari wants to merge 8 commits into
codes-org:masterfrom
sanjaychari:rate_based_fluid_flow_wan

Conversation

@sanjaychari

Copy link
Copy Markdown
Collaborator

This PR introduces a workload that simulates WAN traffic as a series of user defined fluid flows through the network. The simulation currently supports Ethernet-based links, and implements max-min analytical flow rate limiting with switch buffer threshold-based PAUSE mechanisms.

It has been tested and validated against SimGrid's[1] raw analytical network simulator.

[1] https://simgrid.org/

@sanjaychari

Copy link
Copy Markdown
Collaborator Author

FYI @carothersc-zz @caitlinross @kevinabrown, this implements the rate-based fluid flow logic we discussed. I validated it analytically and against SimGrid, which is a simpler analytical flow simulator, and it is working as expected. You can find all the experiments I ran here[1].

[1] https://github.com/sanjaychari/fluid-flow-wan-experiments

Add an independent upstream offer rate to prevent downstream
switches from reserving excess bandwidth for flows constrained
by upstream contention.

- Compute upstream offers independently of downstream feedback.
- Propagate offers through FLOW_REGISTER and DATA_RATE_UPDATE.
- Trigger updates when upstream offers change, even if actual
  transmission rates remain unchanged.
- Preserve existing event semantics and PAUSE/RESUME behavior.
- Include new allocation state in reverse computation.
Improve distributed max-min allocation to prevent upstream-constrained
flows from reserving excess bandwidth on downstream links.

- Propagate upstream offers independently of actual transmission rates.
- Account for upstream constraints when allocating outgoing bandwidth.
- Compute counterfactual feedback rates to avoid reflecting upstream
  restrictions back as downstream bottlenecks.
- Eliminate unnecessary feedback round trips during rate recovery.
- Preserve existing PAUSE/RESUME and buffer management behavior.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant