Repository navigation
Conversation
…-layer SNR modeling
Add static and semi-static design workloads alongside legacy dynamic traffic. Permanent demands never release; semi-static ordering preserves arrival times and breaks ties only between simultaneous arrivals. Import demand matrices without rounding fractional bandwidths, and load TopologyBench real networks with their published kilometre distances and source provenance. File-by-file changes: - .gitignore: exclude the downloaded TopologyBench archive from version control. - README.md: link the traffic-design and TopologyBench usage guides. - docs/traffic-design.md: document traffic modes, ordering, matrix formats, TEFNET24 import, exact bandwidth requirements and experiment limitations. - docs/topologybench.md: document dataset download, topology selection, node matching, provenance and validation of the 105 published real networks. - fusion/cli/config_setup.py: load traffic/topology options, resolve input paths relative to the INI, apply CLI/thread overrides and reject invalid traffic settings. - fusion/cli/parameters/network.py: expose topology file and archive member options. - fusion/cli/parameters/traffic.py: expose traffic modes, ordering and matrix options. - fusion/cli/tests/test_topology_config.py: test topology paths, overrides and rejection of a topology selector without a file. - fusion/cli/tests/test_traffic_config.py: test traffic overrides, relative matrix paths and invalid configuration handling. - fusion/configs/cli_to_config.py: map new CLI options to configuration sections. - fusion/configs/schema.py: register optional traffic and topology setting types. - fusion/configs/schemas/main.json: validate new settings and permit imported topology labels in the network field. - fusion/configs/templates/static_design.ini: provide a complete static NSFNet example. - fusion/configs/templates/topologybench_static.ini: provide a static ABILENE example using the locally downloaded TopologyBench archive. - fusion/core/adapters/grooming_adapter.py: preserve fractional groomed capacity and request allocations when bridging legacy and domain representations. - fusion/core/adapters/spectrum_adapter.py: preserve fractional achieved bandwidth in spectrum pipeline results. - fusion/core/grooming.py: retain fractional demand and remaining capacity during grooming allocation and release. - fusion/core/metrics.py: retain fractional bandwidth in statistics, normalize bandwidth keys and use actual generated request counts for design workloads. - fusion/core/request.py: dispatch design/imported workloads to the new generator and reject generated traffic with fewer than two eligible nodes. - fusion/core/sdn_controller.py: preserve fractional bandwidth through allocation, partial-service accounting and lightpath release handling. - fusion/core/simulation.py: validate traffic settings, prepare imported demands, record final design utilization and process failure/RL arrivals chronologically. - fusion/core/snr_measurements.py: avoid truncating requested and achieved bandwidth when evaluating SNR responses. - fusion/core/spectrum_assignment.py: retain fractional bandwidth in tier selection, lightpath request allocations and spectrum-assignment responses. - fusion/core/tests/test_design_traffic.py: cover permanent events, seeded demand generation, ordering, timing validation and design utilization. - fusion/core/tests/test_fractional_design.py: test fractional bandwidth across request/lightpath conversion, allocation and design statistics. - fusion/core/traffic.py: implement static/semi-static generation, deterministic bandwidth counts and metric ordering that preserves semi-static arrival times. - fusion/domain/config.py: validate and round-trip traffic/import configuration through the immutable simulation configuration. - fusion/domain/lightpath.py: support fractional capacities and request allocations without truncating values during legacy conversion. - fusion/domain/request.py: support fractional request bandwidth in domain objects and legacy request conversion. - fusion/io/tests/test_topologybench.py: test workbook/ZIP import, malformed graph rejection, checksum handling, provenance and all three traffic modes. - fusion/io/tests/test_traffic_matrix.py: test demand files, square matrices, spreadsheet/XML imports and demand validation. - fusion/io/topologybench.py: load real-network workbooks or ZIP members, preserve node metadata and distances, reject unsupported graph structures and provide checksum-verified download/list/inspect commands. - fusion/io/traffic_matrix.py: import CSV/JSON demands, CSV/XLSX matrices and SNDlib XML; validate endpoints and exact modulation bandwidths; download files. - fusion/modules/spectrum/light_path_slicing.py: preserve fractional requested, allocated and remaining bandwidth during slicing and rollback. - fusion/sim/input_setup.py: connect topology and traffic imports to simulation setup, retain node attributes and save reproducible topology snapshots. - fusion/utils/bandwidth.py: centralize finite bandwidth parsing and canonical keys while preserving fractional values. Validation: - Traffic regression suite: 1309 passed, 10 baseline failures, 1 skipped. - Topology/config/input regression suite: 605 passed, 5 baseline failures. - Final topology-specific tests: 27 passed; lint and diff checks passed. - Reproduced reported regression failures on the unchanged branch. - Full CLI ABILENE simulations completed in dynamic, static and semi-static modes. - Verified pinned dataset download and checked all 105 real workbooks: 98 import directly; 7 reject source self-links or duplicate/conflicting edges. Scope: synthetic TopologyBench collections remain unsupported. Fractional demands require matching modulation definitions. Local virtual environments, private working configs and request dumps are excluded from this commit.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.