From 56da57dd896c58986faecd3ef278e05edb11dc75 Mon Sep 17 00:00:00 2001 From: vmattoo2 Date: Tue, 4 Nov 2025 06:53:28 -0600 Subject: [PATCH] feat: added initial support for simulation with edge bandwidth limits specified --- tornettools/generate.py | 8 ++++++++ tornettools/tornettools | 6 ++++++ 2 files changed, 14 insertions(+) diff --git a/tornettools/generate.py b/tornettools/generate.py index 74789eb..1fef92c 100644 --- a/tornettools/generate.py +++ b/tornettools/generate.py @@ -150,6 +150,14 @@ def __generate_shadow_config(args, network, authorities, relays, tgen_servers, p config["network"]["graph"]["file"]["path"] = str(args.atlas_path) config["network"]["graph"]["file"]["compression"] = "xz" + # Optional per-edge bandwidth limiting flags (purely opt-in) + if getattr(args, "use_edge_bandwidth_limiting", False): + logging.info("Enabling edge bandwidth limiting in Shadow config") + config.setdefault("experimental", {}) + config["experimental"]["edge_bandwidth_limiting_enabled"] = True + config["experimental"]["edge_bandwidth_algorithm"] = "token-bucket" + config["experimental"]["edge_bandwidth_burst_ratio"] = 1.5 + used_addresses = set() for (fp, authority) in sorted(authorities.items(), key=lambda kv: kv[1]['nickname']): diff --git a/tornettools/tornettools b/tornettools/tornettools index 7405947..b3dbf52 100644 --- a/tornettools/tornettools +++ b/tornettools/tornettools @@ -386,6 +386,12 @@ def main(): action="store", dest="geoip_path", default=None) + # Optional per-edge bandwidth limiting in generated configs + generate_parser.add_argument('--use-edge-bandwidth-limiting', + help="Enable per-edge bandwidth limiting. Adds flags to Shadow config.", + action="store_true", dest="use_edge_bandwidth_limiting", + default=False) + ############ # simulate # ############