├── .gitignore ├── README.md ├── simulation_code ├── README.md ├── projects │ └── sppifo │ │ ├── analyze_all.sh │ │ └── runs │ │ ├── rackscale │ │ └── mix │ │ │ ├── HCSFQ.properties │ │ │ └── TCP.properties │ │ ├── sppifo_analysis │ │ ├── alternative_distributions │ │ │ ├── convex │ │ │ │ ├── FIFO.properties │ │ │ │ ├── Greedy.properties │ │ │ │ └── SPPIFO.properties │ │ │ ├── exponential │ │ │ │ ├── FIFO.properties │ │ │ │ ├── Greedy.properties │ │ │ │ └── SPPIFO.properties │ │ │ ├── inverse_exponential │ │ │ │ ├── FIFO.properties │ │ │ │ ├── Greedy.properties │ │ │ │ └── SPPIFO.properties │ │ │ └── poisson │ │ │ │ ├── FIFO.properties │ │ │ │ ├── Greedy.properties │ │ │ │ └── SPPIFO.properties │ │ └── uniform_rank_distribution │ │ │ ├── adaptation_strategies │ │ │ ├── SPPIFO_1.properties │ │ │ ├── SPPIFO_cost.properties │ │ │ ├── SPPIFO_queuebound.properties │ │ │ └── SPPIFO_rank.properties │ │ │ ├── uniform_32_queues │ │ │ ├── FIFO_32.properties │ │ │ ├── Fixed_queue_bounds_32.properties │ │ │ ├── Greedy_32.properties │ │ │ └── SPPIFO_32.properties │ │ │ ├── uniform_8_queues │ │ │ ├── FIFO.properties │ │ │ ├── Fixed_queue_bounds.properties │ │ │ ├── Greedy.properties │ │ │ ├── SPPIFO.properties │ │ │ └── TOY.properties │ │ │ └── utilization │ │ │ ├── FIFO_20.properties │ │ │ ├── FIFO_40.properties │ │ │ ├── FIFO_60.properties │ │ │ ├── FIFO_80.properties │ │ │ ├── FIFO_90.properties │ │ │ ├── Greedy_20.properties │ │ │ ├── Greedy_40.properties │ │ │ ├── Greedy_60.properties │ │ │ ├── Greedy_80.properties │ │ │ ├── Greedy_90.properties │ │ │ ├── SPPIFO_20.properties │ │ │ ├── SPPIFO_40.properties │ │ │ ├── SPPIFO_60.properties │ │ │ ├── SPPIFO_80.properties │ │ │ └── SPPIFO_90.properties │ │ └── sppifo_evaluation │ │ ├── fairness │ │ ├── data_mining_workload │ │ │ ├── 3600 │ │ │ │ ├── AFQ_32.properties │ │ │ │ ├── AFQ_8.properties │ │ │ │ ├── CSFQ.properties │ │ │ │ ├── DCTCP.properties │ │ │ │ ├── PIFOWFQ_32.properties │ │ │ │ ├── PIFOWFQ_8.properties │ │ │ │ ├── SPPIFOWFQ_32.properties │ │ │ │ ├── SPPIFOWFQ_8.properties │ │ │ │ └── TCP.properties │ │ │ ├── 5200 │ │ │ │ ├── AFQ_32.properties │ │ │ │ ├── AFQ_8.properties │ │ │ │ ├── CSFQ.properties │ │ │ │ ├── DCTCP.properties │ │ │ │ ├── PIFOWFQ_32.properties │ │ │ │ ├── PIFOWFQ_8.properties │ │ │ │ ├── SPPIFOWFQ_32.properties │ │ │ │ ├── SPPIFOWFQ_8.properties │ │ │ │ └── TCP.properties │ │ │ ├── 7000 │ │ │ │ ├── AFQ_32.properties │ │ │ │ ├── AFQ_8.properties │ │ │ │ ├── CSFQ.properties │ │ │ │ ├── DCTCP.properties │ │ │ │ ├── PIFOWFQ_32.properties │ │ │ │ ├── PIFOWFQ_8.properties │ │ │ │ ├── SPPIFOWFQ_32.properties │ │ │ │ ├── SPPIFOWFQ_8.properties │ │ │ │ └── TCP.properties │ │ │ ├── 8900 │ │ │ │ ├── AFQ_32.properties │ │ │ │ ├── AFQ_8.properties │ │ │ │ ├── CSFQ.properties │ │ │ │ ├── DCTCP.properties │ │ │ │ ├── PIFOWFQ_32.properties │ │ │ │ ├── PIFOWFQ_8.properties │ │ │ │ ├── SPPIFOWFQ_32.properties │ │ │ │ ├── SPPIFOWFQ_8.properties │ │ │ │ └── TCP.properties │ │ │ ├── 11100 │ │ │ │ ├── AFQ_32.properties │ │ │ │ ├── AFQ_8.properties │ │ │ │ ├── CSFQ.properties │ │ │ │ ├── DCTCP.properties │ │ │ │ ├── PIFOWFQ_32.properties │ │ │ │ ├── PIFOWFQ_8.properties │ │ │ │ ├── SPPIFOWFQ_32.properties │ │ │ │ ├── SPPIFOWFQ_8.properties │ │ │ │ └── TCP.properties │ │ │ ├── 14150 │ │ │ │ ├── AFQ_32.properties │ │ │ │ ├── AFQ_8.properties │ │ │ │ ├── CSFQ.properties │ │ │ │ ├── DCTCP.properties │ │ │ │ ├── PIFOWFQ_32.properties │ │ │ │ ├── PIFOWFQ_8.properties │ │ │ │ ├── SPPIFOWFQ_32.properties │ │ │ │ ├── SPPIFOWFQ_8.properties │ │ │ │ └── TCP.properties │ │ │ ├── 19000 │ │ │ │ ├── AFQ_32.properties │ │ │ │ ├── AFQ_8.properties │ │ │ │ ├── CSFQ.properties │ │ │ │ ├── DCTCP.properties │ │ │ │ ├── PIFOWFQ_32.properties │ │ │ │ ├── PIFOWFQ_8.properties │ │ │ │ ├── SPPIFOWFQ_32.properties │ │ │ │ ├── SPPIFOWFQ_8.properties │ │ │ │ └── TCP.properties │ │ │ ├── analyze_data_mining.py │ │ │ └── analyze_web_search_tput.py │ │ ├── incast │ │ │ └── web_search_workload │ │ │ │ ├── 3600 │ │ │ │ ├── AFQ_32.properties │ │ │ │ ├── AFQ_8.properties │ │ │ │ ├── CSFQ.properties │ │ │ │ ├── DCTCP.properties │ │ │ │ ├── HCSFQ.properties │ │ │ │ ├── PIFOWFQ_32.properties │ │ │ │ ├── PIFOWFQ_8.properties │ │ │ │ ├── SPPIFOWFQ_32.properties │ │ │ │ ├── SPPIFOWFQ_8.properties │ │ │ │ └── TCP.properties │ │ │ │ ├── 5200 │ │ │ │ ├── AFQ_32.properties │ │ │ │ ├── AFQ_8.properties │ │ │ │ ├── CSFQ.properties │ │ │ │ ├── DCTCP.properties │ │ │ │ ├── HCSFQ.properties │ │ │ │ ├── PIFOWFQ_32.properties │ │ │ │ ├── PIFOWFQ_8.properties │ │ │ │ ├── SPPIFOWFQ_32.properties │ │ │ │ ├── SPPIFOWFQ_8.properties │ │ │ │ └── TCP.properties │ │ │ │ ├── 7000 │ │ │ │ ├── AFQ_32.properties │ │ │ │ ├── AFQ_8.properties │ │ │ │ ├── CSFQ.properties │ │ │ │ ├── DCTCP.properties │ │ │ │ ├── HCSFQ.properties │ │ │ │ ├── PIFOWFQ_32.properties │ │ │ │ ├── PIFOWFQ_8.properties │ │ │ │ ├── SPPIFOWFQ_32.properties │ │ │ │ ├── SPPIFOWFQ_8.properties │ │ │ │ └── TCP.properties │ │ │ │ ├── 8900 │ │ │ │ ├── AFQ_32.properties │ │ │ │ ├── AFQ_8.properties │ │ │ │ ├── CSFQ.properties │ │ │ │ ├── DCTCP.properties │ │ │ │ ├── HCSFQ.properties │ │ │ │ ├── PIFOWFQ_32.properties │ │ │ │ ├── PIFOWFQ_8.properties │ │ │ │ ├── SPPIFOWFQ_32.properties │ │ │ │ ├── SPPIFOWFQ_8.properties │ │ │ │ └── TCP.properties │ │ │ │ ├── 11100 │ │ │ │ ├── AFQ_32.properties │ │ │ │ ├── AFQ_8.properties │ │ │ │ ├── CSFQ.properties │ │ │ │ ├── DCTCP.properties │ │ │ │ ├── HCSFQ.properties │ │ │ │ ├── PIFOWFQ_32.properties │ │ │ │ ├── PIFOWFQ_8.properties │ │ │ │ ├── SPPIFOWFQ_32.properties │ │ │ │ ├── SPPIFOWFQ_8.properties │ │ │ │ └── TCP.properties │ │ │ │ ├── 14150 │ │ │ │ ├── AFQ_32.properties │ │ │ │ ├── AFQ_8.properties │ │ │ │ ├── CSFQ.properties │ │ │ │ ├── DCTCP.properties │ │ │ │ ├── HCSFQ.properties │ │ │ │ ├── PIFOWFQ_32.properties │ │ │ │ ├── PIFOWFQ_8.properties │ │ │ │ ├── SPPIFOWFQ_32.properties │ │ │ │ ├── SPPIFOWFQ_8.properties │ │ │ │ └── TCP.properties │ │ │ │ ├── 19000 │ │ │ │ ├── AFQ_32.properties │ │ │ │ ├── AFQ_8.properties │ │ │ │ ├── CSFQ.properties │ │ │ │ ├── DCTCP.properties │ │ │ │ ├── HCSFQ.properties │ │ │ │ ├── PIFOWFQ_32.properties │ │ │ │ ├── PIFOWFQ_8.properties │ │ │ │ ├── SPPIFOWFQ_32.properties │ │ │ │ ├── SPPIFOWFQ_8.properties │ │ │ │ └── TCP.properties │ │ │ │ ├── analyze_web_search.py │ │ │ │ ├── analyze_web_search_hierarchy.py │ │ │ │ ├── analyze_web_search_tput.py │ │ │ │ └── queue_analysis │ │ │ │ ├── 3600 │ │ │ │ ├── AFQ_16.properties │ │ │ │ ├── AFQ_24.properties │ │ │ │ ├── AFQ_32.properties │ │ │ │ ├── AFQ_8.properties │ │ │ │ ├── PIFOWFQ_32.properties │ │ │ │ ├── SPPIFOWFQ_16.properties │ │ │ │ ├── SPPIFOWFQ_24.properties │ │ │ │ ├── SPPIFOWFQ_32.properties │ │ │ │ └── SPPIFOWFQ_8.properties │ │ │ │ ├── 7000 │ │ │ │ ├── AFQ_16.properties │ │ │ │ ├── AFQ_24.properties │ │ │ │ ├── AFQ_32.properties │ │ │ │ ├── AFQ_8.properties │ │ │ │ ├── PIFOWFQ_32.properties │ │ │ │ ├── SPPIFOWFQ_16.properties │ │ │ │ ├── SPPIFOWFQ_24.properties │ │ │ │ ├── SPPIFOWFQ_32.properties │ │ │ │ └── SPPIFOWFQ_8.properties │ │ │ │ ├── 11100 │ │ │ │ ├── AFQ_16.properties │ │ │ │ ├── AFQ_24.properties │ │ │ │ ├── AFQ_32.properties │ │ │ │ ├── AFQ_8.properties │ │ │ │ ├── PIFOWFQ_32.properties │ │ │ │ ├── SPPIFOWFQ_16.properties │ │ │ │ ├── SPPIFOWFQ_24.properties │ │ │ │ ├── SPPIFOWFQ_32.properties │ │ │ │ └── SPPIFOWFQ_8.properties │ │ │ │ └── 19000 │ │ │ │ ├── AFQ_16.properties │ │ │ │ ├── AFQ_24.properties │ │ │ │ ├── AFQ_32.properties │ │ │ │ ├── AFQ_8.properties │ │ │ │ ├── PIFOWFQ_32.properties │ │ │ │ ├── SPPIFOWFQ_16.properties │ │ │ │ ├── SPPIFOWFQ_24.properties │ │ │ │ ├── SPPIFOWFQ_32.properties │ │ │ │ └── SPPIFOWFQ_8.properties │ │ └── web_search_workload │ │ │ ├── 3600 │ │ │ ├── AFQ_32.properties │ │ │ ├── AFQ_8.properties │ │ │ ├── CSFQ.properties │ │ │ ├── DCTCP.properties │ │ │ ├── HCSFQ.properties │ │ │ ├── PIFOWFQ_32.properties │ │ │ ├── PIFOWFQ_8.properties │ │ │ ├── SPPIFOWFQ_32.properties │ │ │ ├── SPPIFOWFQ_8.properties │ │ │ └── TCP.properties │ │ │ ├── 5200 │ │ │ ├── AFQ_32.properties │ │ │ ├── AFQ_8.properties │ │ │ ├── CSFQ.properties │ │ │ ├── DCTCP.properties │ │ │ ├── HCSFQ.properties │ │ │ ├── PIFOWFQ_32.properties │ │ │ ├── PIFOWFQ_8.properties │ │ │ ├── SPPIFOWFQ_32.properties │ │ │ ├── SPPIFOWFQ_8.properties │ │ │ └── TCP.properties │ │ │ ├── 7000 │ │ │ ├── AFQ_32.properties │ │ │ ├── AFQ_8.properties │ │ │ ├── CSFQ.properties │ │ │ ├── DCTCP.properties │ │ │ ├── HCSFQ.properties │ │ │ ├── PIFOWFQ_32.properties │ │ │ ├── PIFOWFQ_8.properties │ │ │ ├── SPPIFOWFQ_32.properties │ │ │ ├── SPPIFOWFQ_8.properties │ │ │ └── TCP.properties │ │ │ ├── 8900 │ │ │ ├── AFQ_32.properties │ │ │ ├── AFQ_8.properties │ │ │ ├── CSFQ.properties │ │ │ ├── DCTCP.properties │ │ │ ├── HCSFQ.properties │ │ │ ├── PIFOWFQ_32.properties │ │ │ ├── PIFOWFQ_8.properties │ │ │ ├── SPPIFOWFQ_32.properties │ │ │ ├── SPPIFOWFQ_8.properties │ │ │ └── TCP.properties │ │ │ ├── 11100 │ │ │ ├── AFQ_32.properties │ │ │ ├── AFQ_8.properties │ │ │ ├── CSFQ.properties │ │ │ ├── DCTCP.properties │ │ │ ├── HCSFQ.properties │ │ │ ├── PIFOWFQ_32.properties │ │ │ ├── PIFOWFQ_8.properties │ │ │ ├── SPPIFOWFQ_32.properties │ │ │ ├── SPPIFOWFQ_8.properties │ │ │ └── TCP.properties │ │ │ ├── 14150 │ │ │ ├── AFQ_32.properties │ │ │ ├── AFQ_8.properties │ │ │ ├── CSFQ.properties │ │ │ ├── DCTCP.properties │ │ │ ├── HCSFQ.properties │ │ │ ├── PIFOWFQ_32.properties │ │ │ ├── PIFOWFQ_8.properties │ │ │ ├── SPPIFOWFQ_32.properties │ │ │ ├── SPPIFOWFQ_8.properties │ │ │ └── TCP.properties │ │ │ ├── 19000 │ │ │ ├── AFQ_32.properties │ │ │ ├── AFQ_8.properties │ │ │ ├── CSFQ.properties │ │ │ ├── DCTCP.properties │ │ │ ├── HCSFQ.properties │ │ │ ├── PIFOWFQ_32.properties │ │ │ ├── PIFOWFQ_8.properties │ │ │ ├── SPPIFOWFQ_32.properties │ │ │ ├── SPPIFOWFQ_8.properties │ │ │ └── TCP.properties │ │ │ ├── 25000 │ │ │ ├── AFQ_32.properties │ │ │ ├── AFQ_8.properties │ │ │ ├── CSFQ.properties │ │ │ ├── DCTCP.properties │ │ │ ├── HCSFQ.properties │ │ │ ├── PIFOWFQ_32.properties │ │ │ ├── PIFOWFQ_8.properties │ │ │ ├── SPPIFOWFQ_32.properties │ │ │ ├── SPPIFOWFQ_8.properties │ │ │ └── TCP.properties │ │ │ ├── 32000 │ │ │ ├── AFQ_32.properties │ │ │ ├── AFQ_8.properties │ │ │ ├── CSFQ.properties │ │ │ ├── DCTCP.properties │ │ │ ├── HCSFQ.properties │ │ │ ├── PIFOWFQ_32.properties │ │ │ ├── PIFOWFQ_8.properties │ │ │ ├── SPPIFOWFQ_32.properties │ │ │ ├── SPPIFOWFQ_8.properties │ │ │ └── TCP.properties │ │ │ ├── analyze_web_search.py │ │ │ ├── analyze_web_search_hierarchy.py │ │ │ ├── analyze_web_search_tput.py │ │ │ └── queue_analysis │ │ │ ├── 3600 │ │ │ ├── AFQ_16.properties │ │ │ ├── AFQ_24.properties │ │ │ ├── AFQ_32.properties │ │ │ ├── AFQ_8.properties │ │ │ ├── PIFOWFQ_32.properties │ │ │ ├── SPPIFOWFQ_16.properties │ │ │ ├── SPPIFOWFQ_24.properties │ │ │ ├── SPPIFOWFQ_32.properties │ │ │ └── SPPIFOWFQ_8.properties │ │ │ ├── 7000 │ │ │ ├── AFQ_16.properties │ │ │ ├── AFQ_24.properties │ │ │ ├── AFQ_32.properties │ │ │ ├── AFQ_8.properties │ │ │ ├── PIFOWFQ_32.properties │ │ │ ├── SPPIFOWFQ_16.properties │ │ │ ├── SPPIFOWFQ_24.properties │ │ │ ├── SPPIFOWFQ_32.properties │ │ │ └── SPPIFOWFQ_8.properties │ │ │ ├── 11100 │ │ │ ├── AFQ_16.properties │ │ │ ├── AFQ_24.properties │ │ │ ├── AFQ_32.properties │ │ │ ├── AFQ_8.properties │ │ │ ├── PIFOWFQ_32.properties │ │ │ ├── SPPIFOWFQ_16.properties │ │ │ ├── SPPIFOWFQ_24.properties │ │ │ ├── SPPIFOWFQ_32.properties │ │ │ └── SPPIFOWFQ_8.properties │ │ │ └── 19000 │ │ │ ├── AFQ_16.properties │ │ │ ├── AFQ_24.properties │ │ │ ├── AFQ_32.properties │ │ │ ├── AFQ_8.properties │ │ │ ├── PIFOWFQ_32.properties │ │ │ ├── SPPIFOWFQ_16.properties │ │ │ ├── SPPIFOWFQ_24.properties │ │ │ ├── SPPIFOWFQ_32.properties │ │ │ └── SPPIFOWFQ_8.properties │ │ └── pFabric │ │ ├── data_mining_workload │ │ ├── 4000 │ │ │ ├── CSFQ.properties │ │ │ ├── DCTCP.properties │ │ │ ├── PF.properties │ │ │ ├── PIFO.properties │ │ │ ├── SPPIFO.properties │ │ │ ├── TCP.properties │ │ │ └── TOY.properties │ │ ├── 6000 │ │ │ ├── CSFQ.properties │ │ │ ├── DCTCP.properties │ │ │ ├── PF.properties │ │ │ ├── PIFO.properties │ │ │ ├── SPPIFO.properties │ │ │ ├── TCP.properties │ │ │ └── TOY.properties │ │ ├── 10000 │ │ │ ├── CSFQ.properties │ │ │ ├── DCTCP.properties │ │ │ ├── PF.properties │ │ │ ├── PIFO.properties │ │ │ ├── SPPIFO.properties │ │ │ ├── TCP.properties │ │ │ └── TOY.properties │ │ ├── 15000 │ │ │ ├── CSFQ.properties │ │ │ ├── DCTCP.properties │ │ │ ├── PF.properties │ │ │ ├── PIFO.properties │ │ │ ├── SPPIFO.properties │ │ │ ├── TCP.properties │ │ │ └── TOY.properties │ │ ├── 22500 │ │ │ ├── CSFQ.properties │ │ │ ├── DCTCP.properties │ │ │ ├── PF.properties │ │ │ ├── PIFO.properties │ │ │ ├── SPPIFO.properties │ │ │ ├── TCP.properties │ │ │ └── TOY.properties │ │ ├── 37000 │ │ │ ├── CSFQ.properties │ │ │ ├── DCTCP.properties │ │ │ ├── PF.properties │ │ │ ├── PIFO.properties │ │ │ ├── SPPIFO.properties │ │ │ ├── TCP.properties │ │ │ └── TOY.properties │ │ ├── 60000 │ │ │ ├── CSFQ.properties │ │ │ ├── DCTCP.properties │ │ │ ├── PF.properties │ │ │ ├── PIFO.properties │ │ │ ├── SPPIFO.properties │ │ │ ├── TCP.properties │ │ │ └── TOY.properties │ │ └── 100000 │ │ │ ├── CSFQ.properties │ │ │ ├── DCTCP.properties │ │ │ ├── PIFO.properties │ │ │ ├── SPPIFO.properties │ │ │ ├── TCP.properties │ │ │ └── TOY.properties │ │ ├── data_mining_workload_modified │ │ ├── 4000 │ │ │ ├── DCTCP.properties │ │ │ ├── PIFO.properties │ │ │ ├── SPPIFO.properties │ │ │ ├── TCP.properties │ │ │ └── TOY.properties │ │ ├── 6000 │ │ │ ├── DCTCP.properties │ │ │ ├── PIFO.properties │ │ │ ├── SPPIFO.properties │ │ │ ├── TCP.properties │ │ │ └── TOY.properties │ │ ├── 10000 │ │ │ ├── DCTCP.properties │ │ │ ├── PIFO.properties │ │ │ ├── SPPIFO.properties │ │ │ ├── TCP.properties │ │ │ └── TOY.properties │ │ ├── 15000 │ │ │ ├── DCTCP.properties │ │ │ ├── PIFO.properties │ │ │ ├── SPPIFO.properties │ │ │ ├── TCP.properties │ │ │ └── TOY.properties │ │ ├── 22500 │ │ │ ├── DCTCP.properties │ │ │ ├── PIFO.properties │ │ │ ├── SPPIFO.properties │ │ │ ├── TCP.properties │ │ │ └── TOY.properties │ │ ├── 37000 │ │ │ ├── DCTCP.properties │ │ │ ├── PIFO.properties │ │ │ ├── SPPIFO.properties │ │ │ ├── TCP.properties │ │ │ └── TOY.properties │ │ └── 60000 │ │ │ ├── DCTCP.properties │ │ │ ├── PIFO.properties │ │ │ ├── SPPIFO.properties │ │ │ ├── TCP.properties │ │ │ └── TOY.properties │ │ └── web_search_workload │ │ ├── 3600 │ │ ├── DCTCP.properties │ │ ├── PF.properties │ │ ├── PIFO.properties │ │ ├── SPPIFO.properties │ │ ├── TCP.properties │ │ └── TOY.properties │ │ ├── 5200 │ │ ├── DCTCP.properties │ │ ├── PF.properties │ │ ├── PIFO.properties │ │ ├── SPPIFO.properties │ │ ├── TCP.properties │ │ └── TOY.properties │ │ ├── 7000 │ │ ├── DCTCP.properties │ │ ├── PF.properties │ │ ├── PIFO.properties │ │ ├── SPPIFO.properties │ │ ├── TCP.properties │ │ └── TOY.properties │ │ ├── 8900 │ │ ├── DCTCP.properties │ │ ├── PF.properties │ │ ├── PIFO.properties │ │ ├── SPPIFO.properties │ │ ├── TCP.properties │ │ └── TOY.properties │ │ ├── 11100 │ │ ├── DCTCP.properties │ │ ├── PF.properties │ │ ├── PIFO.properties │ │ ├── SPPIFO.properties │ │ ├── TCP.properties │ │ └── TOY.properties │ │ ├── 14150 │ │ ├── DCTCP.properties │ │ ├── PF.properties │ │ ├── PIFO.properties │ │ ├── SPPIFO.properties │ │ ├── TCP.properties │ │ └── TOY.properties │ │ └── 19000 │ │ ├── DCTCP.properties │ │ ├── PF.properties │ │ ├── PIFO.properties │ │ ├── SPPIFO.properties │ │ ├── TCP.properties │ │ └── TOY.properties ├── src │ └── main │ │ └── java │ │ ├── ch │ │ └── ethz │ │ │ └── systems │ │ │ └── netbench │ │ │ ├── core │ │ │ ├── Simulator.java │ │ │ ├── config │ │ │ │ ├── BaseAllowedProperties.java │ │ │ │ ├── GraphDetails.java │ │ │ │ ├── GraphReader.java │ │ │ │ ├── NBProperties.java │ │ │ │ ├── TopologyServerExtender.java │ │ │ │ └── exceptions │ │ │ │ │ ├── ConfigurationReadFailException.java │ │ │ │ │ ├── PropertyConflictException.java │ │ │ │ │ ├── PropertyMissingException.java │ │ │ │ │ ├── PropertyNotExistingException.java │ │ │ │ │ └── PropertyValueInvalidException.java │ │ │ ├── log │ │ │ │ ├── FlowLogger.java │ │ │ │ ├── LogFailureException.java │ │ │ │ ├── LoggerCallback.java │ │ │ │ ├── PortLogger.java │ │ │ │ └── SimulationLogger.java │ │ │ ├── network │ │ │ │ ├── Event.java │ │ │ │ ├── Intermediary.java │ │ │ │ ├── Link.java │ │ │ │ ├── NetworkDevice.java │ │ │ │ ├── OutputPort.java │ │ │ │ ├── Packet.java │ │ │ │ ├── PacketArrivalEvent.java │ │ │ │ ├── PacketDispatchedEvent.java │ │ │ │ ├── PacketHeader.java │ │ │ │ ├── Socket.java │ │ │ │ ├── TransportLayer.java │ │ │ │ ├── TransportLayer.java.changed │ │ │ │ └── UDPSendPacketEvent.java │ │ │ ├── random │ │ │ │ └── RandomManager.java │ │ │ ├── run │ │ │ │ ├── InfrastructureSelector.java │ │ │ │ ├── MainFromIntelliJ.java │ │ │ │ ├── MainFromIntelliJ.java.aifo │ │ │ │ ├── MainFromProperties.java │ │ │ │ ├── MainSimulation.java │ │ │ │ ├── RoutingSelector.java │ │ │ │ ├── TrafficSelector.java │ │ │ │ ├── infrastructure │ │ │ │ │ ├── BaseInitializer.java │ │ │ │ │ ├── IntermediaryGenerator.java │ │ │ │ │ ├── LinkGenerator.java │ │ │ │ │ ├── NetworkDeviceGenerator.java │ │ │ │ │ ├── OutputPortGenerator.java │ │ │ │ │ └── TransportLayerGenerator.java │ │ │ │ ├── routing │ │ │ │ │ └── RoutingPopulator.java │ │ │ │ └── traffic │ │ │ │ │ ├── FlowStartEvent.java │ │ │ │ │ └── TrafficPlanner.java │ │ │ └── utility │ │ │ │ └── UnitConverter.java │ │ │ ├── ext │ │ │ ├── bare │ │ │ │ ├── BarePacket.java │ │ │ │ ├── BarePacketResendEvent.java │ │ │ │ ├── BareSocket.java │ │ │ │ ├── BareTransportLayer.java │ │ │ │ └── BareTransportLayerGenerator.java │ │ │ ├── basic │ │ │ │ ├── EcnTailDropOutputPort.java │ │ │ │ ├── EcnTailDropOutputPortGenerator.java │ │ │ │ ├── IpHeader.java │ │ │ │ ├── IpPacket.java │ │ │ │ ├── PerfectSimpleLink.java │ │ │ │ ├── PerfectSimpleLinkGenerator.java │ │ │ │ ├── SplitBandwidthLinkGenerator.java │ │ │ │ ├── TcpHeader.java │ │ │ │ └── TcpPacket.java │ │ │ ├── demo │ │ │ │ ├── DemoIntermediary.java │ │ │ │ ├── DemoIntermediaryGenerator.java │ │ │ │ ├── DemoPacket.java │ │ │ │ ├── DemoPacketHeader.java │ │ │ │ ├── DemoSocket.java │ │ │ │ ├── DemoTransportLayer.java │ │ │ │ └── DemoTransportLayerGenerator.java │ │ │ ├── ecmp │ │ │ │ ├── EcmpRoutingUtility.java │ │ │ │ ├── EcmpSwitch.java │ │ │ │ ├── EcmpSwitchGenerator.java │ │ │ │ ├── EcmpSwitchRouting.java │ │ │ │ ├── EcmpSwitchRoutingInterface.java │ │ │ │ ├── ForwarderSwitch.java │ │ │ │ ├── ForwarderSwitchGenerator.java │ │ │ │ └── ForwarderSwitchRouting.java │ │ │ ├── flowlet │ │ │ │ ├── FixedGapFlowletIntermediary.java │ │ │ │ ├── FlowletIntermediary.java │ │ │ │ ├── FlowletLogger.java │ │ │ │ ├── IdentityFlowletIntermediary.java │ │ │ │ ├── IdentityFlowletIntermediaryGenerator.java │ │ │ │ ├── UniformFlowletIntermediary.java │ │ │ │ └── UniformFlowletIntermediaryGenerator.java │ │ │ ├── hybrid │ │ │ │ ├── EcmpThenValiantSwitch.java │ │ │ │ └── EcmpThenValiantSwitchGenerator.java │ │ │ ├── poissontraffic │ │ │ │ ├── FromStringArrivalPlanner.java │ │ │ │ ├── ParetoDistribution.java │ │ │ │ ├── PoissonArrivalPlanner.java │ │ │ │ ├── RandomCollection.java │ │ │ │ └── flowsize │ │ │ │ │ ├── FlowSizeDistribution.java │ │ │ │ │ ├── PFabricDataMiningLowerBoundFSD.java │ │ │ │ │ ├── PFabricDataMiningUpperBoundFSD.java │ │ │ │ │ ├── PFabricWebSearchLowerBoundFSD.java │ │ │ │ │ ├── PFabricWebSearchUpperBoundFSD.java │ │ │ │ │ ├── ParetoFSD.java │ │ │ │ │ ├── UniformFSD.java │ │ │ │ │ ├── pFabricDataMiningAlbert.java │ │ │ │ │ └── pFabricWebSearchAlbert.java │ │ │ ├── trafficpair │ │ │ │ └── TrafficPairPlanner.java │ │ │ └── valiant │ │ │ │ ├── RangeValiantSwitch.java │ │ │ │ ├── RangeValiantSwitchGenerator.java │ │ │ │ ├── ValiantEcmpSwitch.java │ │ │ │ ├── ValiantEncapsulation.java │ │ │ │ └── ValiantEncapsulationHeader.java │ │ │ └── xpt │ │ │ ├── asaf │ │ │ └── routing │ │ │ │ └── priority │ │ │ │ ├── PriorityFlowletIntermediary.java │ │ │ │ └── PriorityFlowletIntermediaryGenerator.java │ │ │ ├── newreno │ │ │ ├── TcpRetransmissionTimeOutEvent.java │ │ │ ├── newrenodctcp │ │ │ │ ├── NewRenoDctcpSocket.java │ │ │ │ ├── NewRenoDctcpTransportLayer.java │ │ │ │ └── NewRenoDctcpTransportLayerGenerator.java │ │ │ └── newrenotcp │ │ │ │ ├── NewRenoTcpSocket.java │ │ │ │ ├── NewRenoTcpTransportLayer.java │ │ │ │ └── NewRenoTcpTransportLayerGenerator.java │ │ │ ├── simple │ │ │ ├── TcpPacketResendEvent.java │ │ │ ├── simpledctcp │ │ │ │ ├── SimpleDctcpSocket.java │ │ │ │ ├── SimpleDctcpTransportLayer.java │ │ │ │ └── SimpleDctcpTransportLayerGenerator.java │ │ │ ├── simpletcp │ │ │ │ ├── SimpleTcpSocket.java │ │ │ │ ├── SimpleTcpTransportLayer.java │ │ │ │ └── SimpleTcpTransportLayerGenerator.java │ │ │ └── simpleudp │ │ │ │ ├── SimpleUdpPacket.java │ │ │ │ ├── SimpleUdpSocket.java │ │ │ │ ├── SimpleUdpTransportLayer.java │ │ │ │ └── SimpleUdpTransportLayerGenerator.java │ │ │ ├── sourcerouting │ │ │ ├── EcmpThenKspNoShortestRouting.java │ │ │ ├── EcmpThenKspRouting.java │ │ │ ├── EcmpThenSourceRoutingSwitch.java │ │ │ ├── EcmpThenSourceRoutingSwitchGenerator.java │ │ │ ├── KShortestPathsSwitchRouting.java │ │ │ ├── SourceRoutingEncapsulation.java │ │ │ ├── SourceRoutingPath.java │ │ │ ├── SourceRoutingSwitch.java │ │ │ └── SourceRoutingSwitchGenerator.java │ │ │ ├── sppifo │ │ │ └── ports │ │ │ │ ├── AFQ │ │ │ │ ├── AFQOutputPort.java │ │ │ │ ├── AFQOutputPortGenerator.java │ │ │ │ └── AFQQueue.java │ │ │ │ ├── CSFQ │ │ │ │ ├── CSFQOutputPort.java │ │ │ │ ├── CSFQOutputPortGenerator.java │ │ │ │ ├── EstFairShareRate.java │ │ │ │ └── FlowState.java │ │ │ │ ├── FIFO │ │ │ │ ├── FIFOOutputPort.java │ │ │ │ └── FIFOOutputPortGenerator.java │ │ │ │ ├── Greedy │ │ │ │ ├── GreedyOutputPortGenerator_Advanced.java │ │ │ │ ├── GreedyOutputPortGenerator_Simple.java │ │ │ │ ├── GreedyOutputPort_Advanced.java │ │ │ │ ├── GreedyOutputPort_Simple.java │ │ │ │ ├── GreedyQueue.java │ │ │ │ └── GreedyQueue_Advanced.java │ │ │ │ ├── HCSFQ │ │ │ │ ├── EstFairShareRate.java │ │ │ │ ├── FlowState.java │ │ │ │ ├── HCSFQOutputPort.java │ │ │ │ └── HCSFQOutputPortGenerator.java │ │ │ │ ├── PIFO │ │ │ │ ├── PIFOOutputPort.java │ │ │ │ ├── PIFOOutputPortGenerator.java │ │ │ │ └── PIFOQueue.java │ │ │ │ ├── PIFO_WFQ │ │ │ │ ├── WFQPIFOLeafQueue.java │ │ │ │ ├── WFQPIFOOutputPort.java │ │ │ │ ├── WFQPIFOOutputPort.java.two_layer │ │ │ │ ├── WFQPIFOOutputPortGenerator.java │ │ │ │ ├── WFQPIFOOutputPortGenerator.java.two_layer │ │ │ │ ├── WFQPIFOQueue.java │ │ │ │ └── WFQPIFOQueue.java.two_layer │ │ │ │ ├── SPPIFO │ │ │ │ ├── SPPIFOOutputPort.java │ │ │ │ ├── SPPIFOOutputPortGenerator.java │ │ │ │ └── SPPIFOQueue.java │ │ │ │ ├── SPPIFO_WFQ │ │ │ │ ├── WFQSPPIFOOutputPort.java │ │ │ │ ├── WFQSPPIFOOutputPortGenerator.java │ │ │ │ └── WFQSPPIFOQueue.java │ │ │ │ ├── TOY │ │ │ │ ├── TOYOutputPort.java │ │ │ │ └── TOYOutputPortGenerator.java │ │ │ │ └── TailDrop │ │ │ │ ├── TailDropOutputPort.java │ │ │ │ └── TailDropOutputPortGenerator.java │ │ │ ├── tcpbase │ │ │ ├── AckRange.java │ │ │ ├── AckRangeSet.java │ │ │ ├── EchoHeader.java │ │ │ ├── FullExtTcpPacket.java │ │ │ ├── PriorityHeader.java │ │ │ ├── SelectiveAckHeader.java │ │ │ └── TcpLogger.java │ │ │ ├── utility │ │ │ ├── ExcelCombinator.java │ │ │ ├── FTEcmpFC.java │ │ │ ├── FileLineComparator.java │ │ │ ├── FullCrossbarTopologyCreator.java │ │ │ ├── HashTestMain.java │ │ │ ├── NodeTransportLayerMapper.java │ │ │ ├── NormalizeIt.java │ │ │ ├── NumberShortestPathsCheck.java │ │ │ ├── SequenceUtility.java │ │ │ ├── TestMain.java │ │ │ ├── TestSkewness.java │ │ │ ├── TestSkewness2.java │ │ │ ├── TrafficPairProbabilitiesCreator.java │ │ │ ├── TwoExclusionRange.java │ │ │ ├── TwoSequenceHashTest.java │ │ │ ├── UniformServerLinksToNodesCreator.java │ │ │ ├── XpanderTrafficPairProbabilitiesCreator.java │ │ │ ├── dataprocessing │ │ │ │ ├── CalculateAverageStatistics.java │ │ │ │ ├── InFolderCombinator.java │ │ │ │ ├── InFolderCombinatorProjecToR.java │ │ │ │ ├── NiceExcelCreator.java │ │ │ │ ├── ProcessAll.java │ │ │ │ ├── SingularCombinator.java │ │ │ │ ├── SingularCombinatorParetoGraph.java │ │ │ │ └── SingularCombinatorProjector.java │ │ │ └── pairprob │ │ │ │ ├── NodePairProbabilityCreator.java │ │ │ │ ├── SPPCAllToAllInFraction.java │ │ │ │ ├── SPPCDegreeOfSkew.java │ │ │ │ ├── SPPCNodePairsFromFile.java │ │ │ │ └── deprecated │ │ │ │ ├── SkewedTrafficPairProbabilitiesCreator.java │ │ │ │ └── SkewedTrafficPairProbabilitiesOneStageCreator.java │ │ │ └── voijslav_and_sppifo │ │ │ ├── ports │ │ │ ├── BoundedPriorityOutputPort.java │ │ │ ├── BoundedPriorityOutputPortGenerator.java │ │ │ ├── PriorityOutputPort.java │ │ │ ├── PriorityOutputPortGenerator.java │ │ │ ├── UnlimitedOutputPort.java │ │ │ └── UnlimitedOutputPortGenerator.java │ │ │ ├── tcp │ │ │ ├── buffertcp │ │ │ │ ├── BufferTcpSocket.java │ │ │ │ ├── BufferTcpTransportLayer.java │ │ │ │ └── BufferTcpTransportLayerGenerator.java │ │ │ ├── distmeantcp │ │ │ │ ├── DistMeanTcpSocket.java │ │ │ │ ├── DistMeanTcpTransportLayer.java │ │ │ │ └── DistMeanTcpTransportLayerGenerator.java │ │ │ ├── distrandtcp │ │ │ │ ├── DistRandTcpSocket.java │ │ │ │ ├── DistRandTcpTransportLayer.java │ │ │ │ └── DistRandTcpTransportLayerGenerator.java │ │ │ ├── lstftcp │ │ │ │ ├── LstfTcpSocket.java │ │ │ │ ├── LstfTcpTransportLayer.java │ │ │ │ ├── LstfTcpTransportLayerGenerator.java │ │ │ │ └── RandomNumberGenerator.java │ │ │ ├── pfabric │ │ │ │ ├── PfabricSocket.java │ │ │ │ ├── PfabricTransportLayer.java │ │ │ │ └── PfabricTransportLayerGenerator.java │ │ │ ├── pfzero │ │ │ │ ├── PfzeroSocket.java │ │ │ │ ├── PfzeroTransportLayer.java │ │ │ │ └── PfzeroTransportLayerGenerator.java │ │ │ ├── sparktcp │ │ │ │ ├── SparkSocket.java │ │ │ │ ├── SparkTransportLayer.java │ │ │ │ └── SparkTransportLayerGenerator.java │ │ │ ├── sphalftcp │ │ │ │ ├── SpHalfTcpSocket.java │ │ │ │ ├── SpHalfTcpTransportLayer.java │ │ │ │ └── SpHalfTcpTransportLayerGenerator.java │ │ │ └── sptcp │ │ │ │ ├── SpTcpSocket.java │ │ │ │ ├── SpTcpTransportLayer.java │ │ │ │ └── SpTcpTransportLayerGenerator.java │ │ │ └── utility │ │ │ └── FctDistributions.java │ │ └── edu │ │ └── asu │ │ └── emit │ │ └── algorithm │ │ ├── graph │ │ ├── BaseElementWithWeight.java │ │ ├── BaseGraph.java │ │ ├── Graph.java │ │ ├── Path.java │ │ ├── VariableGraph.java │ │ ├── Vertex.java │ │ └── algorithms │ │ │ ├── DijkstraShortestPathAlg.java │ │ │ └── YenTopKShortestPathsAlg.java │ │ └── utils │ │ └── QYPriorityQueue.java └── temp │ └── .gitignore └── testbed_code ├── README.md ├── client_dpdk ├── README.md ├── client │ ├── Makefile │ ├── client.c │ └── util.h ├── server │ ├── Makefile │ ├── server.c │ └── util.h └── tools.sh ├── config.py ├── console.py ├── hcsfq ├── controller_init │ ├── ports.json │ └── test.py └── p4src │ ├── hcsfq.p4 │ ├── hcsfq_actions.p4 │ ├── hcsfq_blackboxs.p4 │ ├── hcsfq_routing.p4 │ ├── hcsfq_tables.p4 │ ├── includes │ ├── hcsfq_defines.p4 │ ├── hcsfq_defines_mixed.p4 │ ├── hcsfq_defines_normal.p4 │ ├── hcsfq_defines_tcp_alg.p4 │ ├── hcsfq_defines_tcp_converge.p4 │ ├── hcsfq_defines_tcp_diff.p4 │ ├── hcsfq_defines_tcp_equal.p4 │ ├── hcsfq_defines_tcp_hierarchy.p4 │ ├── hcsfq_defines_tcp_rtt.p4 │ ├── hcsfq_headers.p4 │ └── hcsfq_parser.p4 │ ├── pseudo.py │ └── tool.py └── simple_switch ├── controller_init ├── ports.json └── test.py └── p4src ├── includes ├── simpleswitch_defines.p4 ├── simpleswitch_headers.p4 └── simpleswitch_parser.p4 ├── simpleswitch.p4 ├── simpleswitch_actions.p4 ├── simpleswitch_blackboxs.p4 ├── simpleswitch_routing.p4 ├── simpleswitch_tables.p4 └── tool.py /.gitignore: -------------------------------------------------------------------------------- 1 | # Mac 2 | .DS_Store 3 | 4 | # Excutable file 5 | bin/ 6 | 7 | # Playground 8 | playground/ 9 | 10 | *.pcap 11 | 12 | # Backup file 13 | *.bak 14 | *.bak.* 15 | 16 | # Python byte code 17 | *.pyc 18 | 19 | # Object file 20 | *.o 21 | 22 | *.e 23 | 24 | # Temp file 25 | *.swp 26 | *.tmp 27 | tmp.* 28 | 29 | # Data 30 | *.csv 31 | *.in 32 | *.out 33 | *.stat 34 | 35 | # Figures 36 | !*.pdf 37 | 38 | # Function code 39 | simulator.py 40 | 41 | *.zip 42 | 43 | results/ 44 | *_bak/ 45 | .ipynb_checkpoints/ 46 | -------------------------------------------------------------------------------- /simulation_code/README.md: -------------------------------------------------------------------------------- 1 | ## Contents 2 | - projects: contains the parameters for different algorithms (e.g., AFQ, SP-PIFO, HCSFQ)
3 | - src: source code
4 | - temp: the log files are saved here
5 | - results: the results are generated here
6 | 7 | ## How to setup and run the simulator
8 | - Software dependencies
9 | - Java 8
10 | - Python 2
11 | - Building
12 | - `mvn clean compile assembly:single`
13 | - Running
14 | - `java -jar -ea NetBench.jar [config_dir]`
-------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/rackscale/mix/HCSFQ.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/rack.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=HCSFQ 8 | run_folder_base_dir=temp/rackscale/mix 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/analyze_web_search.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | second_transport_layer=udp 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=hcsfq 21 | output_port_max_size_packets=320 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=25000 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/rackscale/mix/TCP.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/rack.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=TCP 8 | run_folder_base_dir=temp/rackscale/mix 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/analyze_web_search.py 10 | 11 | # Transport layer protocol 12 | transport_layer=tcp 13 | second_transport_layer=udp 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=tail_drop 21 | output_port_max_queue_size_bytes=146000 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=25000 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all 33 | 34 | -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/data_mining_workload/11100/CSFQ.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=CSFQ 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/data_mining_workload/11100 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/data_mining_workload/analyze_data_mining.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | second_transport_layer=udp 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=csfq 21 | output_port_max_size_packets=320 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=11100 31 | traffic_flow_size_dist=pfabric_data_mining_lower_bound 32 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/data_mining_workload/14150/CSFQ.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=CSFQ 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/data_mining_workload/14150 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/data_mining_workload/analyze_data_mining.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | second_transport_layer=udp 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=csfq 21 | output_port_max_size_packets=320 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=14150 31 | traffic_flow_size_dist=pfabric_data_mining_lower_bound 32 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/data_mining_workload/19000/CSFQ.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=CSFQ 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/data_mining_workload/19000 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/data_mining_workload/analyze_data_mining.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | second_transport_layer=udp 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=csfq 21 | output_port_max_size_packets=320 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=19000 31 | traffic_flow_size_dist=pfabric_data_mining_lower_bound 32 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/data_mining_workload/5200/CSFQ.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=CSFQ 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/data_mining_workload/5200 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/data_mining_workload/analyze_data_mining.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | second_transport_layer=udp 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=csfq 21 | output_port_max_size_packets=320 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=5200 31 | traffic_flow_size_dist=pfabric_data_mining_lower_bound 32 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/data_mining_workload/7000/CSFQ.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=CSFQ 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/data_mining_workload/7000 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/data_mining_workload/analyze_data_mining.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | second_transport_layer=udp 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=csfq 21 | output_port_max_size_packets=320 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=7000 31 | traffic_flow_size_dist=pfabric_data_mining_lower_bound 32 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/data_mining_workload/8900/CSFQ.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=CSFQ 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/data_mining_workload/8900 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/data_mining_workload/analyze_data_mining.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | second_transport_layer=udp 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=csfq 21 | output_port_max_size_packets=320 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=8900 31 | traffic_flow_size_dist=pfabric_data_mining_lower_bound 32 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/incast/web_search_workload/11100/CSFQ.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=CSFQ 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/web_search_workload/11100 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/analyze_web_search.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | second_transport_layer=udp 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=csfq 21 | output_port_max_size_packets=320 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=11100 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/incast/web_search_workload/14150/CSFQ.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=CSFQ 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/web_search_workload/14150 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/analyze_web_search.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | second_transport_layer=udp 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=csfq 21 | output_port_max_size_packets=320 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=14150 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/incast/web_search_workload/19000/CSFQ.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=CSFQ 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/web_search_workload/19000 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/analyze_web_search.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | second_transport_layer=udp 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=csfq 21 | output_port_max_size_packets=320 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=19000 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/incast/web_search_workload/5200/CSFQ.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=CSFQ 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/web_search_workload/5200 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/analyze_web_search.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | second_transport_layer=udp 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=csfq 21 | output_port_max_size_packets=320 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=5200 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/incast/web_search_workload/5200/HCSFQ.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=HCSFQ 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/web_search_workload/5200 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/analyze_web_search.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | second_transport_layer=udp 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=hcsfq 21 | output_port_max_size_packets=320 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=5200 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/incast/web_search_workload/7000/CSFQ.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=CSFQ 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/web_search_workload/7000 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/analyze_web_search.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | second_transport_layer=udp 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=csfq 21 | output_port_max_size_packets=320 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=7000 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/incast/web_search_workload/7000/HCSFQ.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=HCSFQ 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/web_search_workload/7000 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/analyze_web_search.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | second_transport_layer=udp 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=hcsfq 21 | output_port_max_size_packets=320 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=7000 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/incast/web_search_workload/8900/CSFQ.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=CSFQ 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/web_search_workload/8900 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/analyze_web_search.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | second_transport_layer=udp 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=csfq 21 | output_port_max_size_packets=320 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=8900 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/incast/web_search_workload/8900/HCSFQ.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=HCSFQ 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/web_search_workload/8900 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/analyze_web_search.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | second_transport_layer=udp 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=hcsfq 21 | output_port_max_size_packets=320 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=8900 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/11100/CSFQ.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=CSFQ 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/web_search_workload/11100 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/analyze_web_search.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | second_transport_layer=udp 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=csfq 21 | output_port_max_size_packets=320 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=11100 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/11100/HCSFQ.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=HCSFQ 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/web_search_workload/11100 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/analyze_web_search.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | second_transport_layer=udp 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=hcsfq 21 | output_port_max_size_packets=320 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=11100 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/11100/PIFOWFQ_32.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=PIFOWFQ_32 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/web_search_workload/11100 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/analyze_web_search.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=wfqpifo 21 | output_port_max_size_packets=320 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=11100 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/11100/PIFOWFQ_8.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=PIFOWFQ_8 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/web_search_workload/11100 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/analyze_web_search.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=wfqpifo 21 | output_port_max_size_packets=80 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=11100 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/11100/TCP.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=TCP 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/web_search_workload/11100 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/analyze_web_search.py 10 | 11 | # Transport layer protocol 12 | transport_layer=tcp 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=tail_drop 21 | output_port_max_queue_size_bytes=146000 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=11100 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all 33 | 34 | -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/14150/CSFQ.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=CSFQ 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/web_search_workload/14150 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/analyze_web_search.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | second_transport_layer=udp 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=csfq 21 | output_port_max_size_packets=320 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=14150 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/14150/HCSFQ.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=HCSFQ 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/web_search_workload/14150 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/analyze_web_search.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | second_transport_layer=udp 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=hcsfq 21 | output_port_max_size_packets=320 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=14150 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/14150/PIFOWFQ_32.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=PIFOWFQ_32 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/web_search_workload/14150 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/analyze_web_search.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=wfqpifo 21 | output_port_max_size_packets=320 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=14150 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/14150/PIFOWFQ_8.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=PIFOWFQ_8 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/web_search_workload/14150 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/analyze_web_search.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=wfqpifo 21 | output_port_max_size_packets=80 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=14150 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/14150/TCP.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=TCP 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/web_search_workload/14150 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/analyze_web_search.py 10 | 11 | # Transport layer protocol 12 | transport_layer=tcp 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=tail_drop 21 | output_port_max_queue_size_bytes=146000 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=14150 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all 33 | 34 | -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/19000/CSFQ.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=CSFQ 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/web_search_workload/19000 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/analyze_web_search.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | second_transport_layer=udp 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=csfq 21 | output_port_max_size_packets=320 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=19000 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/19000/HCSFQ.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=HCSFQ 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/web_search_workload/19000 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/analyze_web_search.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | second_transport_layer=udp 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=hcsfq 21 | output_port_max_size_packets=320 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=19000 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/19000/PIFOWFQ_32.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=PIFOWFQ_32 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/web_search_workload/19000 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/analyze_web_search.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=wfqpifo 21 | output_port_max_size_packets=320 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=19000 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/19000/PIFOWFQ_8.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=PIFOWFQ_8 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/web_search_workload/19000 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/analyze_web_search.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=wfqpifo 21 | output_port_max_size_packets=80 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=19000 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/19000/TCP.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=TCP 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/web_search_workload/19000 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/analyze_web_search.py 10 | 11 | # Transport layer protocol 12 | transport_layer=tcp 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=tail_drop 21 | output_port_max_queue_size_bytes=146000 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=19000 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all 33 | 34 | -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/25000/CSFQ.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=CSFQ 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/web_search_workload/25000 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/analyze_web_search.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | second_transport_layer=udp 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=csfq 21 | output_port_max_size_packets=320 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=25000 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/25000/HCSFQ.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=HCSFQ 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/web_search_workload/25000 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/analyze_web_search.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | second_transport_layer=udp 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=hcsfq 21 | output_port_max_size_packets=320 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=25000 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/25000/PIFOWFQ_32.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=PIFOWFQ_32 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/web_search_workload/25000 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/analyze_web_search.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=wfqpifo 21 | output_port_max_size_packets=320 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=25000 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/25000/PIFOWFQ_8.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=PIFOWFQ_8 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/web_search_workload/25000 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/analyze_web_search.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=wfqpifo 21 | output_port_max_size_packets=80 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=25000 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/25000/TCP.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=TCP 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/web_search_workload/25000 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/analyze_web_search.py 10 | 11 | # Transport layer protocol 12 | transport_layer=tcp 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=tail_drop 21 | output_port_max_queue_size_bytes=146000 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=25000 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all 33 | 34 | -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/32000/CSFQ.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=CSFQ 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/web_search_workload/32000 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/analyze_web_search.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | second_transport_layer=udp 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=csfq 21 | output_port_max_size_packets=320 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=32000 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/32000/HCSFQ.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=HCSFQ 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/web_search_workload/32000 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/analyze_web_search.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | second_transport_layer=udp 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=hcsfq 21 | output_port_max_size_packets=320 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=32000 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/32000/PIFOWFQ_32.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=PIFOWFQ_32 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/web_search_workload/32000 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/analyze_web_search.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=wfqpifo 21 | output_port_max_size_packets=320 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=32000 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/32000/PIFOWFQ_8.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=PIFOWFQ_8 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/web_search_workload/32000 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/analyze_web_search.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=wfqpifo 21 | output_port_max_size_packets=80 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=32000 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/32000/TCP.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=TCP 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/web_search_workload/32000 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/analyze_web_search.py 10 | 11 | # Transport layer protocol 12 | transport_layer=tcp 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=tail_drop 21 | output_port_max_queue_size_bytes=146000 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=32000 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all 33 | 34 | -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/3600/CSFQ.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=CSFQ 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/web_search_workload/3600 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/analyze_web_search.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | second_transport_layer=udp 14 | 15 | # Switch type 16 | network_device=ecmp_switch 17 | network_device_routing=ecmp 18 | network_device_intermediary=identity 19 | 20 | # Output port 21 | output_port=csfq 22 | output_port_max_size_packets=320 23 | 24 | # Link 25 | link=split_bw 26 | link_delay_ns=20 27 | link_bandwidth_bit_per_ns=1 28 | 29 | # Traffic 30 | traffic=poisson_arrival 31 | traffic_lambda_flow_starts_per_s=3600 32 | traffic_flow_size_dist=pfabric_web_search_lower_bound 33 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/3600/HCSFQ.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=HCSFQ 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/web_search_workload/3600 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/analyze_web_search.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | second_transport_layer=udp 14 | 15 | # Switch type 16 | network_device=ecmp_switch 17 | network_device_routing=ecmp 18 | network_device_intermediary=identity 19 | 20 | # Output port 21 | output_port=hcsfq 22 | output_port_max_size_packets=320 23 | 24 | # Link 25 | link=split_bw 26 | link_delay_ns=20 27 | link_bandwidth_bit_per_ns=1 28 | 29 | # Traffic 30 | traffic=poisson_arrival 31 | traffic_lambda_flow_starts_per_s=3600 32 | traffic_flow_size_dist=pfabric_web_search_lower_bound 33 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/5200/CSFQ.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=CSFQ 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/web_search_workload/5200 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/analyze_web_search.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | second_transport_layer=udp 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=csfq 21 | output_port_max_size_packets=320 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=5200 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/5200/HCSFQ.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=HCSFQ 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/web_search_workload/5200 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/analyze_web_search.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | second_transport_layer=udp 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=hcsfq 21 | output_port_max_size_packets=320 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=5200 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/5200/PIFOWFQ_32.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=PIFOWFQ_32 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/web_search_workload/5200 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/analyze_web_search.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=wfqpifo 21 | output_port_max_size_packets=320 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=5200 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/5200/PIFOWFQ_8.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=PIFOWFQ_8 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/web_search_workload/5200 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/analyze_web_search.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=wfqpifo 21 | output_port_max_size_packets=80 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=5200 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/5200/TCP.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=TCP 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/web_search_workload/5200 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/analyze_web_search.py 10 | 11 | # Transport layer protocol 12 | transport_layer=tcp 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=tail_drop 21 | output_port_max_queue_size_bytes=146000 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=5200 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all 33 | 34 | -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/7000/CSFQ.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=CSFQ 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/web_search_workload/7000 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/analyze_web_search.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | second_transport_layer=udp 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=csfq 21 | output_port_max_size_packets=320 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=7000 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/7000/HCSFQ.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=HCSFQ 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/web_search_workload/7000 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/analyze_web_search.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | second_transport_layer=udp 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=hcsfq 21 | output_port_max_size_packets=320 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=7000 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/7000/PIFOWFQ_32.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=PIFOWFQ_32 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/web_search_workload/7000 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/analyze_web_search.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=wfqpifo 21 | output_port_max_size_packets=320 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=7000 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/7000/PIFOWFQ_8.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=PIFOWFQ_8 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/web_search_workload/7000 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/analyze_web_search.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=wfqpifo 21 | output_port_max_size_packets=80 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=7000 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/7000/TCP.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=TCP 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/web_search_workload/7000 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/analyze_web_search.py 10 | 11 | # Transport layer protocol 12 | transport_layer=tcp 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=tail_drop 21 | output_port_max_queue_size_bytes=146000 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=7000 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all 33 | 34 | -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/8900/CSFQ.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=CSFQ 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/web_search_workload/8900 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/analyze_web_search.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | second_transport_layer=udp 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=csfq 21 | output_port_max_size_packets=320 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=8900 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/8900/HCSFQ.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=HCSFQ 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/web_search_workload/8900 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/analyze_web_search.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | second_transport_layer=udp 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=hcsfq 21 | output_port_max_size_packets=320 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=8900 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/8900/PIFOWFQ_32.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=PIFOWFQ_32 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/web_search_workload/8900 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/analyze_web_search.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=wfqpifo 21 | output_port_max_size_packets=320 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=8900 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/8900/PIFOWFQ_8.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=PIFOWFQ_8 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/web_search_workload/8900 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/analyze_web_search.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=wfqpifo 21 | output_port_max_size_packets=80 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=8900 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/8900/TCP.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=TCP 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/fairness/web_search_workload/8900 9 | analysis_command=python3 projects/sppifo/runs/sppifo_evaluation/fairness/web_search_workload/analyze_web_search.py 10 | 11 | # Transport layer protocol 12 | transport_layer=tcp 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=tail_drop 21 | output_port_max_queue_size_bytes=146000 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=8900 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all 33 | 34 | -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/data_mining_workload/10000/CSFQ.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=CSFQ 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/data_mining_workload/10000 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | ## In pFabric RTO is hardcoded in the socket 13 | transport_layer=pfabric 14 | 15 | # Switch type 16 | network_device=ecmp_switch 17 | network_device_routing=ecmp 18 | network_device_intermediary=identity 19 | 20 | # Output port 21 | output_port=csfq 22 | output_port_max_size_packets=80 23 | 24 | # Link 25 | link=split_bw 26 | link_delay_ns=20 27 | link_bandwidth_bit_per_ns=1 28 | 29 | # Traffic 30 | traffic=poisson_arrival 31 | traffic_lambda_flow_starts_per_s=10000 32 | traffic_flow_size_dist=pfabric_data_mining_lower_bound 33 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/data_mining_workload/10000/DCTCP.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=DCTCP 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/data_mining_workload/10000 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=ecn_tail_drop 21 | output_port_max_queue_size_bytes=146000 22 | output_port_ecn_threshold_k_bytes=14600 23 | 24 | # Link 25 | link=split_bw 26 | link_delay_ns=20 27 | link_bandwidth_bit_per_ns=1 28 | 29 | # Traffic 30 | traffic=poisson_arrival 31 | traffic_lambda_flow_starts_per_s=10000 32 | traffic_flow_size_dist=pfabric_data_mining_lower_bound 33 | traffic_probabilities_generator=all_to_all 34 | 35 | -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/data_mining_workload/10000/PF.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=pfabric 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/data_mining_workload/10000 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | transport_layer=pfabric 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=tail_drop 21 | output_port_max_queue_size_bytes=146000 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=10000 31 | traffic_flow_size_dist=pfabric_data_mining_lower_bound 32 | traffic_probabilities_generator=all_to_all 33 | 34 | -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/data_mining_workload/10000/PIFO.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=PIFO 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/data_mining_workload/10000 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | ## In pFabric RTO is hardcoded in the socket 13 | transport_layer=pfabric 14 | 15 | # Switch type 16 | network_device=ecmp_switch 17 | network_device_routing=ecmp 18 | network_device_intermediary=identity 19 | 20 | # Output port 21 | output_port=pifo 22 | output_port_max_size_packets=80 23 | 24 | # Link 25 | link=split_bw 26 | link_delay_ns=20 27 | link_bandwidth_bit_per_ns=1 28 | 29 | # Traffic 30 | traffic=poisson_arrival 31 | traffic_lambda_flow_starts_per_s=10000 32 | traffic_flow_size_dist=pfabric_data_mining_lower_bound 33 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/data_mining_workload/10000/TCP.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=TCP 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/data_mining_workload/10000 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | transport_layer=tcp 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=tail_drop 21 | output_port_max_queue_size_bytes=146000 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=10000 31 | traffic_flow_size_dist=pfabric_data_mining_lower_bound 32 | traffic_probabilities_generator=all_to_all 33 | 34 | -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/data_mining_workload/10000/TOY.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=TOY 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/data_mining_workload/10000 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | ## In pFabric RTO is hardcoded in the socket 13 | transport_layer=pfabric 14 | 15 | # Switch type 16 | network_device=ecmp_switch 17 | network_device_routing=ecmp 18 | network_device_intermediary=identity 19 | 20 | # Output port 21 | output_port=toy 22 | output_port_max_size_packets=80 23 | window_size=1000 24 | items_per_window=800 25 | 26 | # Link 27 | link=split_bw 28 | link_delay_ns=20 29 | link_bandwidth_bit_per_ns=1 30 | 31 | # Traffic 32 | traffic=poisson_arrival 33 | traffic_lambda_flow_starts_per_s=10000 34 | traffic_flow_size_dist=pfabric_data_mining_lower_bound 35 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/data_mining_workload/100000/CSFQ.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=CSFQ 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/data_mining_workload/100000 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | ## In pFabric RTO is hardcoded in the socket 13 | transport_layer=pfabric 14 | 15 | # Switch type 16 | network_device=ecmp_switch 17 | network_device_routing=ecmp 18 | network_device_intermediary=identity 19 | 20 | # Output port 21 | output_port=csfq 22 | output_port_max_size_packets=80 23 | 24 | # Link 25 | link=split_bw 26 | link_delay_ns=20 27 | link_bandwidth_bit_per_ns=1 28 | 29 | # Traffic 30 | traffic=poisson_arrival 31 | traffic_lambda_flow_starts_per_s=100000 32 | traffic_flow_size_dist=pfabric_data_mining_lower_bound 33 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/data_mining_workload/100000/DCTCP.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=DCTCP 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/data_mining_workload/100000 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=ecn_tail_drop 21 | output_port_max_queue_size_bytes=146000 22 | output_port_ecn_threshold_k_bytes=14600 23 | 24 | # Link 25 | link=split_bw 26 | link_delay_ns=20 27 | link_bandwidth_bit_per_ns=1 28 | 29 | # Traffic 30 | traffic=poisson_arrival 31 | traffic_lambda_flow_starts_per_s=100000 32 | traffic_flow_size_dist=pfabric_data_mining_lower_bound 33 | traffic_probabilities_generator=all_to_all 34 | 35 | -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/data_mining_workload/100000/PIFO.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=PIFO 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/data_mining_workload/100000 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | ## In pFabric RTO is hardcoded in the socket 13 | transport_layer=pfabric 14 | 15 | # Switch type 16 | network_device=ecmp_switch 17 | network_device_routing=ecmp 18 | network_device_intermediary=identity 19 | 20 | # Output port 21 | output_port=pifo 22 | output_port_max_size_packets=80 23 | 24 | # Link 25 | link=split_bw 26 | link_delay_ns=20 27 | link_bandwidth_bit_per_ns=1 28 | 29 | # Traffic 30 | traffic=poisson_arrival 31 | traffic_lambda_flow_starts_per_s=100000 32 | traffic_flow_size_dist=pfabric_data_mining_lower_bound 33 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/data_mining_workload/100000/TCP.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=TCP 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/data_mining_workload/100000 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | transport_layer=tcp 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=tail_drop 21 | output_port_max_queue_size_bytes=146000 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=100000 31 | traffic_flow_size_dist=pfabric_data_mining_lower_bound 32 | traffic_probabilities_generator=all_to_all 33 | 34 | -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/data_mining_workload/15000/CSFQ.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=CSFQ 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/data_mining_workload/15000 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | ## In pFabric RTO is hardcoded in the socket 13 | transport_layer=pfabric 14 | 15 | # Switch type 16 | network_device=ecmp_switch 17 | network_device_routing=ecmp 18 | network_device_intermediary=identity 19 | 20 | # Output port 21 | output_port=csfq 22 | output_port_max_size_packets=80 23 | 24 | # Link 25 | link=split_bw 26 | link_delay_ns=20 27 | link_bandwidth_bit_per_ns=1 28 | 29 | # Traffic 30 | traffic=poisson_arrival 31 | traffic_lambda_flow_starts_per_s=15000 32 | traffic_flow_size_dist=pfabric_data_mining_lower_bound 33 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/data_mining_workload/15000/DCTCP.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=DCTCP 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/data_mining_workload/15000 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=ecn_tail_drop 21 | output_port_max_queue_size_bytes=146000 22 | output_port_ecn_threshold_k_bytes=14600 23 | 24 | # Link 25 | link=split_bw 26 | link_delay_ns=20 27 | link_bandwidth_bit_per_ns=1 28 | 29 | # Traffic 30 | traffic=poisson_arrival 31 | traffic_lambda_flow_starts_per_s=15000 32 | traffic_flow_size_dist=pfabric_data_mining_lower_bound 33 | traffic_probabilities_generator=all_to_all 34 | 35 | -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/data_mining_workload/15000/PF.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=pfabric 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/data_mining_workload/15000 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | transport_layer=pfabric 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=tail_drop 21 | output_port_max_queue_size_bytes=146000 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=15000 31 | traffic_flow_size_dist=pfabric_data_mining_lower_bound 32 | traffic_probabilities_generator=all_to_all 33 | 34 | -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/data_mining_workload/15000/PIFO.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=PIFO 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/data_mining_workload/15000 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | ## In pFabric RTO is hardcoded in the socket 13 | transport_layer=pfabric 14 | 15 | # Switch type 16 | network_device=ecmp_switch 17 | network_device_routing=ecmp 18 | network_device_intermediary=identity 19 | 20 | # Output port 21 | output_port=pifo 22 | output_port_max_size_packets=80 23 | 24 | # Link 25 | link=split_bw 26 | link_delay_ns=20 27 | link_bandwidth_bit_per_ns=1 28 | 29 | # Traffic 30 | traffic=poisson_arrival 31 | traffic_lambda_flow_starts_per_s=15000 32 | traffic_flow_size_dist=pfabric_data_mining_lower_bound 33 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/data_mining_workload/15000/TCP.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=TCP 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/data_mining_workload/15000 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | transport_layer=tcp 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=tail_drop 21 | output_port_max_queue_size_bytes=146000 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=15000 31 | traffic_flow_size_dist=pfabric_data_mining_lower_bound 32 | traffic_probabilities_generator=all_to_all 33 | 34 | -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/data_mining_workload/15000/TOY.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=TOY 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/data_mining_workload/15000 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | ## In pFabric RTO is hardcoded in the socket 13 | transport_layer=pfabric 14 | 15 | # Switch type 16 | network_device=ecmp_switch 17 | network_device_routing=ecmp 18 | network_device_intermediary=identity 19 | 20 | # Output port 21 | output_port=toy 22 | output_port_max_size_packets=80 23 | window_size=1000 24 | items_per_window=800 25 | 26 | # Link 27 | link=split_bw 28 | link_delay_ns=20 29 | link_bandwidth_bit_per_ns=1 30 | 31 | # Traffic 32 | traffic=poisson_arrival 33 | traffic_lambda_flow_starts_per_s=15000 34 | traffic_flow_size_dist=pfabric_data_mining_lower_bound 35 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/data_mining_workload/22500/CSFQ.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=CSFQ 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/data_mining_workload/22500 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | ## In pFabric RTO is hardcoded in the socket 13 | transport_layer=pfabric 14 | 15 | # Switch type 16 | network_device=ecmp_switch 17 | network_device_routing=ecmp 18 | network_device_intermediary=identity 19 | 20 | # Output port 21 | output_port=csfq 22 | output_port_max_size_packets=80 23 | 24 | # Link 25 | link=split_bw 26 | link_delay_ns=20 27 | link_bandwidth_bit_per_ns=1 28 | 29 | # Traffic 30 | traffic=poisson_arrival 31 | traffic_lambda_flow_starts_per_s=22500 32 | traffic_flow_size_dist=pfabric_data_mining_lower_bound 33 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/data_mining_workload/22500/DCTCP.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=DCTCP 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/data_mining_workload/22500 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=ecn_tail_drop 21 | output_port_max_queue_size_bytes=146000 22 | output_port_ecn_threshold_k_bytes=14600 23 | 24 | # Link 25 | link=split_bw 26 | link_delay_ns=20 27 | link_bandwidth_bit_per_ns=1 28 | 29 | # Traffic 30 | traffic=poisson_arrival 31 | traffic_lambda_flow_starts_per_s=22500 32 | traffic_flow_size_dist=pfabric_data_mining_lower_bound 33 | traffic_probabilities_generator=all_to_all 34 | 35 | -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/data_mining_workload/22500/PF.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=pfabric 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/data_mining_workload/22500 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | transport_layer=pfabric 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=tail_drop 21 | output_port_max_queue_size_bytes=146000 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=22500 31 | traffic_flow_size_dist=pfabric_data_mining_lower_bound 32 | traffic_probabilities_generator=all_to_all 33 | 34 | -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/data_mining_workload/22500/PIFO.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=PIFO 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/data_mining_workload/22500 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | ## In pFabric RTO is hardcoded in the socket 13 | transport_layer=pfabric 14 | 15 | # Switch type 16 | network_device=ecmp_switch 17 | network_device_routing=ecmp 18 | network_device_intermediary=identity 19 | 20 | # Output port 21 | output_port=pifo 22 | output_port_max_size_packets=80 23 | 24 | # Link 25 | link=split_bw 26 | link_delay_ns=20 27 | link_bandwidth_bit_per_ns=1 28 | 29 | # Traffic 30 | traffic=poisson_arrival 31 | traffic_lambda_flow_starts_per_s=22500 32 | traffic_flow_size_dist=pfabric_data_mining_lower_bound 33 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/data_mining_workload/22500/TCP.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=TCP 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/data_mining_workload/22500 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | transport_layer=tcp 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=tail_drop 21 | output_port_max_queue_size_bytes=146000 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=22500 31 | traffic_flow_size_dist=pfabric_data_mining_lower_bound 32 | traffic_probabilities_generator=all_to_all 33 | 34 | -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/data_mining_workload/22500/TOY.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=TOY 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/data_mining_workload/22500 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | ## In pFabric RTO is hardcoded in the socket 13 | transport_layer=pfabric 14 | 15 | # Switch type 16 | network_device=ecmp_switch 17 | network_device_routing=ecmp 18 | network_device_intermediary=identity 19 | 20 | # Output port 21 | output_port=toy 22 | output_port_max_size_packets=80 23 | window_size=1000 24 | items_per_window=800 25 | 26 | # Link 27 | link=split_bw 28 | link_delay_ns=20 29 | link_bandwidth_bit_per_ns=1 30 | 31 | # Traffic 32 | traffic=poisson_arrival 33 | traffic_lambda_flow_starts_per_s=22500 34 | traffic_flow_size_dist=pfabric_data_mining_lower_bound 35 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/data_mining_workload/37000/CSFQ.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=CSFQ 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/data_mining_workload/37000 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | ## In pFabric RTO is hardcoded in the socket 13 | transport_layer=pfabric 14 | 15 | # Switch type 16 | network_device=ecmp_switch 17 | network_device_routing=ecmp 18 | network_device_intermediary=identity 19 | 20 | # Output port 21 | output_port=csfq 22 | output_port_max_size_packets=80 23 | 24 | # Link 25 | link=split_bw 26 | link_delay_ns=20 27 | link_bandwidth_bit_per_ns=1 28 | 29 | # Traffic 30 | traffic=poisson_arrival 31 | traffic_lambda_flow_starts_per_s=37000 32 | traffic_flow_size_dist=pfabric_data_mining_lower_bound 33 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/data_mining_workload/37000/DCTCP.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=DCTCP 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/data_mining_workload/37000 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=ecn_tail_drop 21 | output_port_max_queue_size_bytes=146000 22 | output_port_ecn_threshold_k_bytes=14600 23 | 24 | # Link 25 | link=split_bw 26 | link_delay_ns=20 27 | link_bandwidth_bit_per_ns=1 28 | 29 | # Traffic 30 | traffic=poisson_arrival 31 | traffic_lambda_flow_starts_per_s=37000 32 | traffic_flow_size_dist=pfabric_data_mining_lower_bound 33 | traffic_probabilities_generator=all_to_all 34 | 35 | -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/data_mining_workload/37000/PF.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=pfabric 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/data_mining_workload/37000 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | transport_layer=pfabric 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=tail_drop 21 | output_port_max_queue_size_bytes=146000 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=37000 31 | traffic_flow_size_dist=pfabric_data_mining_lower_bound 32 | traffic_probabilities_generator=all_to_all 33 | 34 | -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/data_mining_workload/37000/PIFO.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=PIFO 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/data_mining_workload/37000 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | ## In pFabric RTO is hardcoded in the socket 13 | transport_layer=pfabric 14 | 15 | # Switch type 16 | network_device=ecmp_switch 17 | network_device_routing=ecmp 18 | network_device_intermediary=identity 19 | 20 | # Output port 21 | output_port=pifo 22 | output_port_max_size_packets=80 23 | 24 | # Link 25 | link=split_bw 26 | link_delay_ns=20 27 | link_bandwidth_bit_per_ns=1 28 | 29 | # Traffic 30 | traffic=poisson_arrival 31 | traffic_lambda_flow_starts_per_s=37000 32 | traffic_flow_size_dist=pfabric_data_mining_lower_bound 33 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/data_mining_workload/37000/TCP.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=TCP 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/data_mining_workload/37000 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | transport_layer=tcp 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=tail_drop 21 | output_port_max_queue_size_bytes=146000 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=37000 31 | traffic_flow_size_dist=pfabric_data_mining_lower_bound 32 | traffic_probabilities_generator=all_to_all 33 | 34 | -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/data_mining_workload/37000/TOY.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=TOY 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/data_mining_workload/37000 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | ## In pFabric RTO is hardcoded in the socket 13 | transport_layer=pfabric 14 | 15 | # Switch type 16 | network_device=ecmp_switch 17 | network_device_routing=ecmp 18 | network_device_intermediary=identity 19 | 20 | # Output port 21 | output_port=toy 22 | output_port_max_size_packets=80 23 | window_size=1000 24 | items_per_window=800 25 | 26 | # Link 27 | link=split_bw 28 | link_delay_ns=20 29 | link_bandwidth_bit_per_ns=1 30 | 31 | # Traffic 32 | traffic=poisson_arrival 33 | traffic_lambda_flow_starts_per_s=37000 34 | traffic_flow_size_dist=pfabric_data_mining_lower_bound 35 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/data_mining_workload/4000/CSFQ.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=CSFQ 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/data_mining_workload/4000 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | ## In pFabric RTO is hardcoded in the socket 13 | transport_layer=pfabric 14 | 15 | # Switch type 16 | network_device=ecmp_switch 17 | network_device_routing=ecmp 18 | network_device_intermediary=identity 19 | 20 | # Output port 21 | output_port=csfq 22 | output_port_max_size_packets=80 23 | 24 | # Link 25 | link=split_bw 26 | link_delay_ns=20 27 | link_bandwidth_bit_per_ns=1 28 | 29 | # Traffic 30 | traffic=poisson_arrival 31 | traffic_lambda_flow_starts_per_s=4000 32 | traffic_flow_size_dist=pfabric_data_mining_lower_bound 33 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/data_mining_workload/4000/DCTCP.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=DCTCP 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/data_mining_workload/4000 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=ecn_tail_drop 21 | output_port_max_queue_size_bytes=146000 22 | output_port_ecn_threshold_k_bytes=14600 23 | 24 | # Link 25 | link=split_bw 26 | link_delay_ns=20 27 | link_bandwidth_bit_per_ns=1 28 | 29 | # Traffic 30 | traffic=poisson_arrival 31 | traffic_lambda_flow_starts_per_s=4000 32 | traffic_flow_size_dist=pfabric_data_mining_lower_bound 33 | traffic_probabilities_generator=all_to_all 34 | 35 | -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/data_mining_workload/4000/PF.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=pfabric 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/data_mining_workload/4000 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | transport_layer=pfabric 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=tail_drop 21 | output_port_max_queue_size_bytes=146000 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=4000 31 | traffic_flow_size_dist=pfabric_data_mining_lower_bound 32 | traffic_probabilities_generator=all_to_all 33 | 34 | -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/data_mining_workload/4000/PIFO.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=PIFO 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/data_mining_workload/4000 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | ## In pFabric RTO is hardcoded in the socket 13 | transport_layer=pfabric 14 | 15 | # Switch type 16 | network_device=ecmp_switch 17 | network_device_routing=ecmp 18 | network_device_intermediary=identity 19 | 20 | # Output port 21 | output_port=pifo 22 | output_port_max_size_packets=80 23 | 24 | # Link 25 | link=split_bw 26 | link_delay_ns=20 27 | link_bandwidth_bit_per_ns=1 28 | 29 | # Traffic 30 | traffic=poisson_arrival 31 | traffic_lambda_flow_starts_per_s=4000 32 | traffic_flow_size_dist=pfabric_data_mining_lower_bound 33 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/data_mining_workload/4000/TCP.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=TCP 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/data_mining_workload/4000 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | transport_layer=tcp 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=tail_drop 21 | output_port_max_queue_size_bytes=146000 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=4000 31 | traffic_flow_size_dist=pfabric_data_mining_lower_bound 32 | traffic_probabilities_generator=all_to_all 33 | 34 | -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/data_mining_workload/4000/TOY.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=TOY 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/data_mining_workload/4000 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | ## In pFabric RTO is hardcoded in the socket 13 | transport_layer=pfabric 14 | 15 | # Switch type 16 | network_device=ecmp_switch 17 | network_device_routing=ecmp 18 | network_device_intermediary=identity 19 | 20 | # Output port 21 | output_port=toy 22 | output_port_max_size_packets=80 23 | window_size=1000 24 | items_per_window=800 25 | 26 | # Link 27 | link=split_bw 28 | link_delay_ns=20 29 | link_bandwidth_bit_per_ns=1 30 | 31 | # Traffic 32 | traffic=poisson_arrival 33 | traffic_lambda_flow_starts_per_s=4000 34 | traffic_flow_size_dist=pfabric_data_mining_lower_bound 35 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/data_mining_workload/6000/CSFQ.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=CSFQ 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/data_mining_workload/6000 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | ## In pFabric RTO is hardcoded in the socket 13 | transport_layer=pfabric 14 | 15 | # Switch type 16 | network_device=ecmp_switch 17 | network_device_routing=ecmp 18 | network_device_intermediary=identity 19 | 20 | # Output port 21 | output_port=csfq 22 | output_port_max_size_packets=80 23 | 24 | # Link 25 | link=split_bw 26 | link_delay_ns=20 27 | link_bandwidth_bit_per_ns=1 28 | 29 | # Traffic 30 | traffic=poisson_arrival 31 | traffic_lambda_flow_starts_per_s=6000 32 | traffic_flow_size_dist=pfabric_data_mining_lower_bound 33 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/data_mining_workload/6000/DCTCP.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=DCTCP 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/data_mining_workload/6000 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=ecn_tail_drop 21 | output_port_max_queue_size_bytes=146000 22 | output_port_ecn_threshold_k_bytes=14600 23 | 24 | # Link 25 | link=split_bw 26 | link_delay_ns=20 27 | link_bandwidth_bit_per_ns=1 28 | 29 | # Traffic 30 | traffic=poisson_arrival 31 | traffic_lambda_flow_starts_per_s=6000 32 | traffic_flow_size_dist=pfabric_data_mining_lower_bound 33 | traffic_probabilities_generator=all_to_all 34 | 35 | -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/data_mining_workload/6000/PF.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=pfabric 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/data_mining_workload/6000 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | transport_layer=pfabric 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=tail_drop 21 | output_port_max_queue_size_bytes=146000 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=6000 31 | traffic_flow_size_dist=pfabric_data_mining_lower_bound 32 | traffic_probabilities_generator=all_to_all 33 | 34 | -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/data_mining_workload/6000/PIFO.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=PIFO 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/data_mining_workload/6000 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | ## In pFabric RTO is hardcoded in the socket 13 | transport_layer=pfabric 14 | 15 | # Switch type 16 | network_device=ecmp_switch 17 | network_device_routing=ecmp 18 | network_device_intermediary=identity 19 | 20 | # Output port 21 | output_port=pifo 22 | output_port_max_size_packets=80 23 | 24 | # Link 25 | link=split_bw 26 | link_delay_ns=20 27 | link_bandwidth_bit_per_ns=1 28 | 29 | # Traffic 30 | traffic=poisson_arrival 31 | traffic_lambda_flow_starts_per_s=6000 32 | traffic_flow_size_dist=pfabric_data_mining_lower_bound 33 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/data_mining_workload/6000/TCP.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=TCP 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/data_mining_workload/6000 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | transport_layer=tcp 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=tail_drop 21 | output_port_max_queue_size_bytes=146000 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=6000 31 | traffic_flow_size_dist=pfabric_data_mining_lower_bound 32 | traffic_probabilities_generator=all_to_all 33 | 34 | -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/data_mining_workload/6000/TOY.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=TOY 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/data_mining_workload/6000 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | ## In pFabric RTO is hardcoded in the socket 13 | transport_layer=pfabric 14 | 15 | # Switch type 16 | network_device=ecmp_switch 17 | network_device_routing=ecmp 18 | network_device_intermediary=identity 19 | 20 | # Output port 21 | output_port=toy 22 | output_port_max_size_packets=80 23 | window_size=1000 24 | items_per_window=800 25 | 26 | # Link 27 | link=split_bw 28 | link_delay_ns=20 29 | link_bandwidth_bit_per_ns=1 30 | 31 | # Traffic 32 | traffic=poisson_arrival 33 | traffic_lambda_flow_starts_per_s=6000 34 | traffic_flow_size_dist=pfabric_data_mining_lower_bound 35 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/data_mining_workload/60000/CSFQ.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=CSFQ 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/data_mining_workload/60000 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | ## In pFabric RTO is hardcoded in the socket 13 | transport_layer=pfabric 14 | 15 | # Switch type 16 | network_device=ecmp_switch 17 | network_device_routing=ecmp 18 | network_device_intermediary=identity 19 | 20 | # Output port 21 | output_port=csfq 22 | output_port_max_size_packets=80 23 | 24 | # Link 25 | link=split_bw 26 | link_delay_ns=20 27 | link_bandwidth_bit_per_ns=1 28 | 29 | # Traffic 30 | traffic=poisson_arrival 31 | traffic_lambda_flow_starts_per_s=60000 32 | traffic_flow_size_dist=pfabric_data_mining_lower_bound 33 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/data_mining_workload/60000/DCTCP.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=DCTCP 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/data_mining_workload/60000 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=ecn_tail_drop 21 | output_port_max_queue_size_bytes=146000 22 | output_port_ecn_threshold_k_bytes=14600 23 | 24 | # Link 25 | link=split_bw 26 | link_delay_ns=20 27 | link_bandwidth_bit_per_ns=1 28 | 29 | # Traffic 30 | traffic=poisson_arrival 31 | traffic_lambda_flow_starts_per_s=60000 32 | traffic_flow_size_dist=pfabric_data_mining_lower_bound 33 | traffic_probabilities_generator=all_to_all 34 | 35 | -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/data_mining_workload/60000/PF.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=pfabric 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/data_mining_workload/60000 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | transport_layer=pfabric 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=tail_drop 21 | output_port_max_queue_size_bytes=146000 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=60000 31 | traffic_flow_size_dist=pfabric_data_mining_lower_bound 32 | traffic_probabilities_generator=all_to_all 33 | 34 | -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/data_mining_workload/60000/PIFO.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=PIFO 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/data_mining_workload/60000 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | ## In pFabric RTO is hardcoded in the socket 13 | transport_layer=pfabric 14 | 15 | # Switch type 16 | network_device=ecmp_switch 17 | network_device_routing=ecmp 18 | network_device_intermediary=identity 19 | 20 | # Output port 21 | output_port=pifo 22 | output_port_max_size_packets=80 23 | 24 | # Link 25 | link=split_bw 26 | link_delay_ns=20 27 | link_bandwidth_bit_per_ns=1 28 | 29 | # Traffic 30 | traffic=poisson_arrival 31 | traffic_lambda_flow_starts_per_s=60000 32 | traffic_flow_size_dist=pfabric_data_mining_lower_bound 33 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/data_mining_workload/60000/TCP.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=TCP 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/data_mining_workload/60000 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | transport_layer=tcp 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=tail_drop 21 | output_port_max_queue_size_bytes=146000 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=60000 31 | traffic_flow_size_dist=pfabric_data_mining_lower_bound 32 | traffic_probabilities_generator=all_to_all 33 | 34 | -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/data_mining_workload/60000/TOY.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=TOY 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/data_mining_workload/60000 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | ## In pFabric RTO is hardcoded in the socket 13 | transport_layer=pfabric 14 | 15 | # Switch type 16 | network_device=ecmp_switch 17 | network_device_routing=ecmp 18 | network_device_intermediary=identity 19 | 20 | # Output port 21 | output_port=toy 22 | output_port_max_size_packets=80 23 | window_size=1000 24 | items_per_window=800 25 | 26 | # Link 27 | link=split_bw 28 | link_delay_ns=20 29 | link_bandwidth_bit_per_ns=1 30 | 31 | # Traffic 32 | traffic=poisson_arrival 33 | traffic_lambda_flow_starts_per_s=60000 34 | traffic_flow_size_dist=pfabric_data_mining_lower_bound 35 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/data_mining_workload_modified/10000/TCP.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/simple/simple_n2.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=TCP 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/data_mining_workload/10000 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | transport_layer=tcp 13 | 14 | # Switch type 15 | network_device=forwarder_switch 16 | network_device_intermediary=identity 17 | network_device_routing=single_forward 18 | 19 | # Output port 20 | output_port=tail_drop 21 | output_port_max_queue_size_bytes=146000 22 | 23 | # Link 24 | link=perfect_simple 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=10 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=10000 31 | traffic_flow_size_dist=uniform 32 | traffic_flow_size_dist_uniform_mean_bytes=1000000 33 | traffic_probabilities_generator=all_to_all 34 | -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/data_mining_workload_modified/15000/TCP.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/simple/simple_n2.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=TCP 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/data_mining_workload/15000 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | transport_layer=tcp 13 | 14 | # Switch type 15 | network_device=forwarder_switch 16 | network_device_intermediary=identity 17 | network_device_routing=single_forward 18 | 19 | # Output port 20 | output_port=tail_drop 21 | output_port_max_queue_size_bytes=146000 22 | 23 | # Link 24 | link=perfect_simple 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=10 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=15000 31 | traffic_flow_size_dist=uniform 32 | traffic_flow_size_dist_uniform_mean_bytes=1000000 33 | traffic_probabilities_generator=all_to_all 34 | 35 | -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/data_mining_workload_modified/22500/TCP.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/simple/simple_n2.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=TCP 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/data_mining_workload/22500 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | transport_layer=tcp 13 | 14 | # Switch type 15 | network_device=forwarder_switch 16 | network_device_intermediary=identity 17 | network_device_routing=single_forward 18 | 19 | # Output port 20 | output_port=tail_drop 21 | output_port_max_queue_size_bytes=146000 22 | 23 | # Link 24 | link=perfect_simple 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=10 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=22500 31 | traffic_flow_size_dist=uniform 32 | traffic_flow_size_dist_uniform_mean_bytes=1000000 33 | traffic_probabilities_generator=all_to_all 34 | 35 | -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/data_mining_workload_modified/37000/TCP.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/simple/simple_n2.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=TCP 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/data_mining_workload/37000 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | transport_layer=tcp 13 | 14 | # Switch type 15 | network_device=forwarder_switch 16 | network_device_intermediary=identity 17 | network_device_routing=single_forward 18 | 19 | # Output port 20 | output_port=tail_drop 21 | output_port_max_queue_size_bytes=146000 22 | 23 | # Link 24 | link=perfect_simple 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=10 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=37000 31 | traffic_flow_size_dist=uniform 32 | traffic_flow_size_dist_uniform_mean_bytes=1000000 33 | traffic_probabilities_generator=all_to_all 34 | 35 | -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/data_mining_workload_modified/4000/TCP.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/simple/simple_n2.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=TCP 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/data_mining_workload/4000 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | transport_layer=tcp 13 | 14 | # Switch type 15 | network_device=forwarder_switch 16 | network_device_intermediary=identity 17 | network_device_routing=single_forward 18 | 19 | # Output port 20 | output_port=tail_drop 21 | output_port_max_queue_size_bytes=146000 22 | 23 | # Link 24 | link=perfect_simple 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=10 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=4000 31 | traffic_flow_size_dist=uniform 32 | traffic_flow_size_dist_uniform_mean_bytes=1000000 33 | traffic_probabilities_generator=all_to_all 34 | 35 | -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/data_mining_workload_modified/6000/TCP.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/simple/simple_n2.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=TCP 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/data_mining_workload/6000 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | transport_layer=tcp 13 | 14 | # Switch type 15 | network_device=forwarder_switch 16 | network_device_intermediary=identity 17 | network_device_routing=single_forward 18 | 19 | # Output port 20 | output_port=tail_drop 21 | output_port_max_queue_size_bytes=146000 22 | 23 | # Link 24 | link=perfect_simple 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=10 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=6000 31 | traffic_flow_size_dist=uniform 32 | traffic_flow_size_dist_uniform_mean_bytes=1000000 33 | traffic_probabilities_generator=all_to_all 34 | 35 | -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/data_mining_workload_modified/60000/TCP.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/simple/simple_n2.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=TCP 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/data_mining_workload/60000 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | transport_layer=tcp 13 | 14 | # Switch type 15 | network_device=forwarder_switch 16 | network_device_intermediary=identity 17 | network_device_routing=single_forward 18 | 19 | # Output port 20 | output_port=tail_drop 21 | output_port_max_queue_size_bytes=146000 22 | 23 | # Link 24 | link=perfect_simple 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=10 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=60000 31 | traffic_flow_size_dist=uniform 32 | traffic_flow_size_dist_uniform_mean_bytes=1000000 33 | traffic_probabilities_generator=all_to_all 34 | 35 | -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/web_search_workload/11100/DCTCP.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=DCTCP 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/web_search_workload/11100 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=ecn_tail_drop 21 | output_port_max_queue_size_bytes=146000 22 | output_port_ecn_threshold_k_bytes=14600 23 | 24 | # Link 25 | link=split_bw 26 | link_delay_ns=20 27 | link_bandwidth_bit_per_ns=1 28 | 29 | # Traffic 30 | traffic=poisson_arrival 31 | traffic_lambda_flow_starts_per_s=11100 32 | traffic_flow_size_dist=pfabric_web_search_lower_bound 33 | traffic_probabilities_generator=all_to_all 34 | 35 | -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/web_search_workload/11100/PF.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=pfabric 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/web_search_workload/11100 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | ## In pFabric RTO is hardcoded in the socket 13 | transport_layer=pfabric 14 | 15 | # Switch type 16 | network_device=ecmp_switch 17 | network_device_routing=ecmp 18 | network_device_intermediary=identity 19 | 20 | # Output port 21 | output_port=tail_drop 22 | output_port_max_queue_size_bytes=146000 23 | 24 | # Link 25 | link=split_bw 26 | link_delay_ns=20 27 | link_bandwidth_bit_per_ns=1 28 | 29 | # Traffic 30 | traffic=poisson_arrival 31 | traffic_lambda_flow_starts_per_s=11100 32 | traffic_flow_size_dist=pfabric_web_search_lower_bound 33 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/web_search_workload/11100/PIFO.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=PIFO 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/web_search_workload/11100 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | ## In pFabric RTO is hardcoded in the socket 13 | transport_layer=pfabric 14 | 15 | # Switch type 16 | network_device=ecmp_switch 17 | network_device_routing=ecmp 18 | network_device_intermediary=identity 19 | 20 | # Output port 21 | output_port=pifo 22 | output_port_max_size_packets=80 23 | 24 | # Link 25 | link=split_bw 26 | link_delay_ns=20 27 | link_bandwidth_bit_per_ns=1 28 | 29 | # Traffic 30 | traffic=poisson_arrival 31 | traffic_lambda_flow_starts_per_s=11100 32 | traffic_flow_size_dist=pfabric_web_search_lower_bound 33 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/web_search_workload/11100/TCP.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=TCP 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/web_search_workload/11100 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | transport_layer=tcp 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=tail_drop 21 | output_port_max_queue_size_bytes=146000 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=11100 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all 33 | 34 | -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/web_search_workload/11100/TOY.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=TOY 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/web_search_workload/11100 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | ## In pFabric RTO is hardcoded in the socket 13 | transport_layer=pfabric 14 | 15 | # Switch type 16 | network_device=ecmp_switch 17 | network_device_routing=ecmp 18 | network_device_intermediary=identity 19 | 20 | # Output port 21 | output_port=toy 22 | output_port_max_size_packets=80 23 | window_size=1000 24 | items_per_window=800 25 | 26 | # Link 27 | link=split_bw 28 | link_delay_ns=20 29 | link_bandwidth_bit_per_ns=1 30 | 31 | # Traffic 32 | traffic=poisson_arrival 33 | traffic_lambda_flow_starts_per_s=11100 34 | traffic_flow_size_dist=pfabric_web_search_lower_bound 35 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/web_search_workload/14150/DCTCP.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=DCTCP 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/web_search_workload/14150 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=ecn_tail_drop 21 | output_port_max_queue_size_bytes=146000 22 | output_port_ecn_threshold_k_bytes=14600 23 | 24 | # Link 25 | link=split_bw 26 | link_delay_ns=20 27 | link_bandwidth_bit_per_ns=1 28 | 29 | # Traffic 30 | traffic=poisson_arrival 31 | traffic_lambda_flow_starts_per_s=14150 32 | traffic_flow_size_dist=pfabric_web_search_lower_bound 33 | traffic_probabilities_generator=all_to_all 34 | 35 | -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/web_search_workload/14150/PF.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=pfabric 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/web_search_workload/14150 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | ## In pFabric RTO is hardcoded in the socket 13 | transport_layer=pfabric 14 | 15 | # Switch type 16 | network_device=ecmp_switch 17 | network_device_routing=ecmp 18 | network_device_intermediary=identity 19 | 20 | # Output port 21 | output_port=tail_drop 22 | output_port_max_queue_size_bytes=146000 23 | 24 | # Link 25 | link=split_bw 26 | link_delay_ns=20 27 | link_bandwidth_bit_per_ns=1 28 | 29 | # Traffic 30 | traffic=poisson_arrival 31 | traffic_lambda_flow_starts_per_s=14150 32 | traffic_flow_size_dist=pfabric_web_search_lower_bound 33 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/web_search_workload/14150/PIFO.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=PIFO 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/web_search_workload/14150 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | ## In pFabric RTO is hardcoded in the socket 13 | transport_layer=pfabric 14 | 15 | # Switch type 16 | network_device=ecmp_switch 17 | network_device_routing=ecmp 18 | network_device_intermediary=identity 19 | 20 | # Output port 21 | output_port=pifo 22 | output_port_max_size_packets=80 23 | 24 | # Link 25 | link=split_bw 26 | link_delay_ns=20 27 | link_bandwidth_bit_per_ns=1 28 | 29 | # Traffic 30 | traffic=poisson_arrival 31 | traffic_lambda_flow_starts_per_s=14150 32 | traffic_flow_size_dist=pfabric_web_search_lower_bound 33 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/web_search_workload/14150/TCP.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=TCP 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/web_search_workload/14150 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | transport_layer=tcp 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=tail_drop 21 | output_port_max_queue_size_bytes=146000 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=14150 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all 33 | 34 | -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/web_search_workload/14150/TOY.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=TOY 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/web_search_workload/14150 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | ## In pFabric RTO is hardcoded in the socket 13 | transport_layer=pfabric 14 | 15 | # Switch type 16 | network_device=ecmp_switch 17 | network_device_routing=ecmp 18 | network_device_intermediary=identity 19 | 20 | # Output port 21 | output_port=toy 22 | output_port_max_size_packets=80 23 | window_size=1000 24 | items_per_window=800 25 | 26 | # Link 27 | link=split_bw 28 | link_delay_ns=20 29 | link_bandwidth_bit_per_ns=1 30 | 31 | # Traffic 32 | traffic=poisson_arrival 33 | traffic_lambda_flow_starts_per_s=14150 34 | traffic_flow_size_dist=pfabric_web_search_lower_bound 35 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/web_search_workload/19000/DCTCP.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=DCTCP 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/web_search_workload/19000 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=ecn_tail_drop 21 | output_port_max_queue_size_bytes=146000 22 | output_port_ecn_threshold_k_bytes=14600 23 | 24 | # Link 25 | link=split_bw 26 | link_delay_ns=20 27 | link_bandwidth_bit_per_ns=1 28 | 29 | # Traffic 30 | traffic=poisson_arrival 31 | traffic_lambda_flow_starts_per_s=19000 32 | traffic_flow_size_dist=pfabric_web_search_lower_bound 33 | traffic_probabilities_generator=all_to_all 34 | 35 | -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/web_search_workload/19000/PF.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=pfabric 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/web_search_workload/19000 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | ## In pFabric RTO is hardcoded in the socket 13 | transport_layer=pfabric 14 | 15 | # Switch type 16 | network_device=ecmp_switch 17 | network_device_routing=ecmp 18 | network_device_intermediary=identity 19 | 20 | # Output port 21 | output_port=tail_drop 22 | output_port_max_queue_size_bytes=146000 23 | 24 | # Link 25 | link=split_bw 26 | link_delay_ns=20 27 | link_bandwidth_bit_per_ns=1 28 | 29 | # Traffic 30 | traffic=poisson_arrival 31 | traffic_lambda_flow_starts_per_s=19000 32 | traffic_flow_size_dist=pfabric_web_search_lower_bound 33 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/web_search_workload/19000/PIFO.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=PIFO 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/web_search_workload/19000 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | ## In pFabric RTO is hardcoded in the socket 13 | transport_layer=pfabric 14 | 15 | # Switch type 16 | network_device=ecmp_switch 17 | network_device_routing=ecmp 18 | network_device_intermediary=identity 19 | 20 | # Output port 21 | output_port=pifo 22 | output_port_max_size_packets=80 23 | 24 | # Link 25 | link=split_bw 26 | link_delay_ns=20 27 | link_bandwidth_bit_per_ns=1 28 | 29 | # Traffic 30 | traffic=poisson_arrival 31 | traffic_lambda_flow_starts_per_s=19000 32 | traffic_flow_size_dist=pfabric_web_search_lower_bound 33 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/web_search_workload/19000/TCP.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=TCP 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/web_search_workload/19000 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | transport_layer=tcp 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=tail_drop 21 | output_port_max_queue_size_bytes=146000 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=19000 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all 33 | 34 | -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/web_search_workload/19000/TOY.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=TOY 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/web_search_workload/19000 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | ## In pFabric RTO is hardcoded in the socket 13 | transport_layer=pfabric 14 | 15 | # Switch type 16 | network_device=ecmp_switch 17 | network_device_routing=ecmp 18 | network_device_intermediary=identity 19 | 20 | # Output port 21 | output_port=toy 22 | output_port_max_size_packets=80 23 | window_size=1000 24 | items_per_window=800 25 | 26 | # Link 27 | link=split_bw 28 | link_delay_ns=20 29 | link_bandwidth_bit_per_ns=1 30 | 31 | # Traffic 32 | traffic=poisson_arrival 33 | traffic_lambda_flow_starts_per_s=19000 34 | traffic_flow_size_dist=pfabric_web_search_lower_bound 35 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/web_search_workload/3600/DCTCP.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=DCTCP 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/web_search_workload/3600 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=ecn_tail_drop 21 | output_port_max_queue_size_bytes=146000 22 | output_port_ecn_threshold_k_bytes=14600 23 | 24 | # Link 25 | link=split_bw 26 | link_delay_ns=20 27 | link_bandwidth_bit_per_ns=1 28 | 29 | # Traffic 30 | traffic=poisson_arrival 31 | traffic_lambda_flow_starts_per_s=3600 32 | traffic_flow_size_dist=pfabric_web_search_lower_bound 33 | traffic_probabilities_generator=all_to_all 34 | 35 | -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/web_search_workload/3600/PF.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=pfabric 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/web_search_workload/3600 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | ## In pFabric RTO is hardcoded in the socket 13 | transport_layer=pfabric 14 | 15 | # Switch type 16 | network_device=ecmp_switch 17 | network_device_routing=ecmp 18 | network_device_intermediary=identity 19 | 20 | # Output port 21 | output_port=tail_drop 22 | output_port_max_queue_size_bytes=146000 23 | 24 | # Link 25 | link=split_bw 26 | link_delay_ns=20 27 | link_bandwidth_bit_per_ns=1 28 | 29 | # Traffic 30 | traffic=poisson_arrival 31 | traffic_lambda_flow_starts_per_s=3600 32 | traffic_flow_size_dist=pfabric_web_search_lower_bound 33 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/web_search_workload/3600/PIFO.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=PIFO 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/web_search_workload/3600 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | ## In pFabric RTO is hardcoded in the socket 13 | transport_layer=pfabric 14 | 15 | # Switch type 16 | network_device=ecmp_switch 17 | network_device_routing=ecmp 18 | network_device_intermediary=identity 19 | 20 | # Output port 21 | output_port=pifo 22 | output_port_max_size_packets=80 23 | 24 | # Link 25 | link=split_bw 26 | link_delay_ns=20 27 | link_bandwidth_bit_per_ns=1 28 | 29 | # Traffic 30 | traffic=poisson_arrival 31 | traffic_lambda_flow_starts_per_s=3600 32 | traffic_flow_size_dist=pfabric_web_search_lower_bound 33 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/web_search_workload/3600/TCP.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=TCP 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/web_search_workload/3600 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | transport_layer=tcp 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=tail_drop 21 | output_port_max_queue_size_bytes=146000 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=3600 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all 33 | 34 | -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/web_search_workload/3600/TOY.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=TOY 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/web_search_workload/3600 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | ## In pFabric RTO is hardcoded in the socket 13 | transport_layer=pfabric 14 | 15 | # Switch type 16 | network_device=ecmp_switch 17 | network_device_routing=ecmp 18 | network_device_intermediary=identity 19 | 20 | # Output port 21 | output_port=toy 22 | output_port_max_size_packets=80 23 | window_size=1000 24 | items_per_window=800 25 | 26 | # Link 27 | link=split_bw 28 | link_delay_ns=20 29 | link_bandwidth_bit_per_ns=1 30 | 31 | # Traffic 32 | traffic=poisson_arrival 33 | traffic_lambda_flow_starts_per_s=3600 34 | traffic_flow_size_dist=pfabric_web_search_lower_bound 35 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/web_search_workload/5200/DCTCP.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=DCTCP 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/web_search_workload/5200 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=ecn_tail_drop 21 | output_port_max_queue_size_bytes=146000 22 | output_port_ecn_threshold_k_bytes=14600 23 | 24 | # Link 25 | link=split_bw 26 | link_delay_ns=20 27 | link_bandwidth_bit_per_ns=1 28 | 29 | # Traffic 30 | traffic=poisson_arrival 31 | traffic_lambda_flow_starts_per_s=5200 32 | traffic_flow_size_dist=pfabric_web_search_lower_bound 33 | traffic_probabilities_generator=all_to_all 34 | 35 | -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/web_search_workload/5200/PF.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=pfabric 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/web_search_workload/5200 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | ## In pFabric RTO is hardcoded in the socket 13 | transport_layer=pfabric 14 | 15 | # Switch type 16 | network_device=ecmp_switch 17 | network_device_routing=ecmp 18 | network_device_intermediary=identity 19 | 20 | # Output port 21 | output_port=tail_drop 22 | output_port_max_queue_size_bytes=146000 23 | 24 | # Link 25 | link=split_bw 26 | link_delay_ns=20 27 | link_bandwidth_bit_per_ns=1 28 | 29 | # Traffic 30 | traffic=poisson_arrival 31 | traffic_lambda_flow_starts_per_s=5200 32 | traffic_flow_size_dist=pfabric_web_search_lower_bound 33 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/web_search_workload/5200/PIFO.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=PIFO 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/web_search_workload/5200 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | ## In pFabric RTO is hardcoded in the socket 13 | transport_layer=pfabric 14 | 15 | # Switch type 16 | network_device=ecmp_switch 17 | network_device_routing=ecmp 18 | network_device_intermediary=identity 19 | 20 | # Output port 21 | output_port=pifo 22 | output_port_max_size_packets=80 23 | 24 | # Link 25 | link=split_bw 26 | link_delay_ns=20 27 | link_bandwidth_bit_per_ns=1 28 | 29 | # Traffic 30 | traffic=poisson_arrival 31 | traffic_lambda_flow_starts_per_s=5200 32 | traffic_flow_size_dist=pfabric_web_search_lower_bound 33 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/web_search_workload/5200/TCP.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=TCP 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/web_search_workload/5200 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | transport_layer=tcp 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=tail_drop 21 | output_port_max_queue_size_bytes=146000 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=5200 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all 33 | 34 | -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/web_search_workload/5200/TOY.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=TOY 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/web_search_workload/5200 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | ## In pFabric RTO is hardcoded in the socket 13 | transport_layer=pfabric 14 | 15 | # Switch type 16 | network_device=ecmp_switch 17 | network_device_routing=ecmp 18 | network_device_intermediary=identity 19 | 20 | # Output port 21 | output_port=toy 22 | output_port_max_size_packets=80 23 | window_size=1000 24 | items_per_window=800 25 | 26 | # Link 27 | link=split_bw 28 | link_delay_ns=20 29 | link_bandwidth_bit_per_ns=1 30 | 31 | # Traffic 32 | traffic=poisson_arrival 33 | traffic_lambda_flow_starts_per_s=5200 34 | traffic_flow_size_dist=pfabric_web_search_lower_bound 35 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/web_search_workload/7000/DCTCP.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=DCTCP 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/web_search_workload/7000 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=ecn_tail_drop 21 | output_port_max_queue_size_bytes=146000 22 | output_port_ecn_threshold_k_bytes=14600 23 | 24 | # Link 25 | link=split_bw 26 | link_delay_ns=20 27 | link_bandwidth_bit_per_ns=1 28 | 29 | # Traffic 30 | traffic=poisson_arrival 31 | traffic_lambda_flow_starts_per_s=7000 32 | traffic_flow_size_dist=pfabric_web_search_lower_bound 33 | traffic_probabilities_generator=all_to_all 34 | 35 | -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/web_search_workload/7000/PF.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=pfabric 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/web_search_workload/7000 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | ## In pFabric RTO is hardcoded in the socket 13 | transport_layer=pfabric 14 | 15 | # Switch type 16 | network_device=ecmp_switch 17 | network_device_routing=ecmp 18 | network_device_intermediary=identity 19 | 20 | # Output port 21 | output_port=tail_drop 22 | output_port_max_queue_size_bytes=146000 23 | 24 | # Link 25 | link=split_bw 26 | link_delay_ns=20 27 | link_bandwidth_bit_per_ns=1 28 | 29 | # Traffic 30 | traffic=poisson_arrival 31 | traffic_lambda_flow_starts_per_s=7000 32 | traffic_flow_size_dist=pfabric_web_search_lower_bound 33 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/web_search_workload/7000/PIFO.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=PIFO 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/web_search_workload/7000 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | ## In pFabric RTO is hardcoded in the socket 13 | transport_layer=pfabric 14 | 15 | # Switch type 16 | network_device=ecmp_switch 17 | network_device_routing=ecmp 18 | network_device_intermediary=identity 19 | 20 | # Output port 21 | output_port=pifo 22 | output_port_max_size_packets=80 23 | 24 | # Link 25 | link=split_bw 26 | link_delay_ns=20 27 | link_bandwidth_bit_per_ns=1 28 | 29 | # Traffic 30 | traffic=poisson_arrival 31 | traffic_lambda_flow_starts_per_s=7000 32 | traffic_flow_size_dist=pfabric_web_search_lower_bound 33 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/web_search_workload/7000/TCP.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=TCP 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/web_search_workload/7000 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | transport_layer=tcp 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=tail_drop 21 | output_port_max_queue_size_bytes=146000 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=7000 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all 33 | 34 | -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/web_search_workload/7000/TOY.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=TOY 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/web_search_workload/7000 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | ## In pFabric RTO is hardcoded in the socket 13 | transport_layer=pfabric 14 | 15 | # Switch type 16 | network_device=ecmp_switch 17 | network_device_routing=ecmp 18 | network_device_intermediary=identity 19 | 20 | # Output port 21 | output_port=toy 22 | output_port_max_size_packets=80 23 | window_size=1000 24 | items_per_window=800 25 | 26 | # Link 27 | link=split_bw 28 | link_delay_ns=20 29 | link_bandwidth_bit_per_ns=1 30 | 31 | # Traffic 32 | traffic=poisson_arrival 33 | traffic_lambda_flow_starts_per_s=7000 34 | traffic_flow_size_dist=pfabric_web_search_lower_bound 35 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/web_search_workload/8900/DCTCP.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=DCTCP 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/web_search_workload/8900 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | transport_layer=dctcp 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=ecn_tail_drop 21 | output_port_max_queue_size_bytes=146000 22 | output_port_ecn_threshold_k_bytes=14600 23 | 24 | # Link 25 | link=split_bw 26 | link_delay_ns=20 27 | link_bandwidth_bit_per_ns=1 28 | 29 | # Traffic 30 | traffic=poisson_arrival 31 | traffic_lambda_flow_starts_per_s=8900 32 | traffic_flow_size_dist=pfabric_web_search_lower_bound 33 | traffic_probabilities_generator=all_to_all 34 | 35 | -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/web_search_workload/8900/PF.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=pfabric 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/web_search_workload/8900 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | ## In pFabric RTO is hardcoded in the socket 13 | transport_layer=pfabric 14 | 15 | # Switch type 16 | network_device=ecmp_switch 17 | network_device_routing=ecmp 18 | network_device_intermediary=identity 19 | 20 | # Output port 21 | output_port=tail_drop 22 | output_port_max_queue_size_bytes=146000 23 | 24 | # Link 25 | link=split_bw 26 | link_delay_ns=20 27 | link_bandwidth_bit_per_ns=1 28 | 29 | # Traffic 30 | traffic=poisson_arrival 31 | traffic_lambda_flow_starts_per_s=8900 32 | traffic_flow_size_dist=pfabric_web_search_lower_bound 33 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/web_search_workload/8900/PIFO.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=PIFO 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/web_search_workload/8900 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | ## In pFabric RTO is hardcoded in the socket 13 | transport_layer=pfabric 14 | 15 | # Switch type 16 | network_device=ecmp_switch 17 | network_device_routing=ecmp 18 | network_device_intermediary=identity 19 | 20 | # Output port 21 | output_port=pifo 22 | output_port_max_size_packets=80 23 | 24 | # Link 25 | link=split_bw 26 | link_delay_ns=20 27 | link_bandwidth_bit_per_ns=1 28 | 29 | # Traffic 30 | traffic=poisson_arrival 31 | traffic_lambda_flow_starts_per_s=8900 32 | traffic_flow_size_dist=pfabric_web_search_lower_bound 33 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/web_search_workload/8900/TCP.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=TCP 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/web_search_workload/8900 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | transport_layer=tcp 13 | 14 | # Switch type 15 | network_device=ecmp_switch 16 | network_device_routing=ecmp 17 | network_device_intermediary=identity 18 | 19 | # Output port 20 | output_port=tail_drop 21 | output_port_max_queue_size_bytes=146000 22 | 23 | # Link 24 | link=split_bw 25 | link_delay_ns=20 26 | link_bandwidth_bit_per_ns=1 27 | 28 | # Traffic 29 | traffic=poisson_arrival 30 | traffic_lambda_flow_starts_per_s=8900 31 | traffic_flow_size_dist=pfabric_web_search_lower_bound 32 | traffic_probabilities_generator=all_to_all 33 | 34 | -------------------------------------------------------------------------------- /simulation_code/projects/sppifo/runs/sppifo_evaluation/pFabric/web_search_workload/8900/TOY.properties: -------------------------------------------------------------------------------- 1 | # General 2 | scenario_topology_file=example/topologies/leaf_spine/pFabric_9leaf_4spine_16servers.topology 3 | 4 | seed=83599 5 | run_time_s=1 6 | 7 | run_folder_name=TOY 8 | run_folder_base_dir=temp/sppifo/sppifo_evaluation/pFabric/web_search_workload/8900 9 | analysis_command=python3 analysis/analyze.py 10 | 11 | # Transport layer protocol 12 | ## In pFabric RTO is hardcoded in the socket 13 | transport_layer=pfabric 14 | 15 | # Switch type 16 | network_device=ecmp_switch 17 | network_device_routing=ecmp 18 | network_device_intermediary=identity 19 | 20 | # Output port 21 | output_port=toy 22 | output_port_max_size_packets=80 23 | window_size=1000 24 | items_per_window=800 25 | 26 | # Link 27 | link=split_bw 28 | link_delay_ns=20 29 | link_bandwidth_bit_per_ns=1 30 | 31 | # Traffic 32 | traffic=poisson_arrival 33 | traffic_lambda_flow_starts_per_s=8900 34 | traffic_flow_size_dist=pfabric_web_search_lower_bound 35 | traffic_probabilities_generator=all_to_all -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/core/config/exceptions/ConfigurationReadFailException.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.core.config.exceptions; 2 | 3 | import ch.ethz.systems.netbench.core.config.NBProperties; 4 | 5 | import java.io.IOException; 6 | 7 | public class ConfigurationReadFailException extends RuntimeException { 8 | 9 | public ConfigurationReadFailException(NBProperties properties, IOException cause) { 10 | super("[" + properties.getFileName() + "]: " + cause.getMessage()); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/core/config/exceptions/PropertyConflictException.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.core.config.exceptions; 2 | 3 | import ch.ethz.systems.netbench.core.config.NBProperties; 4 | import org.apache.commons.lang3.StringUtils; 5 | 6 | public class PropertyConflictException extends RuntimeException { 7 | 8 | public PropertyConflictException(NBProperties properties, String... keys) { 9 | super("[" + properties.getFileName() + "]: properties {" + 10 | StringUtils.join(keys, ", ") + "} conflict in the configuration file."); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/core/config/exceptions/PropertyMissingException.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.core.config.exceptions; 2 | 3 | import ch.ethz.systems.netbench.core.config.NBProperties; 4 | 5 | public class PropertyMissingException extends RuntimeException { 6 | 7 | public PropertyMissingException(NBProperties config, String key) { 8 | super("[" + config.getFileName() + "]: essential property \"" + key + "\" was not found in the configuration file."); 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/core/config/exceptions/PropertyNotExistingException.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.core.config.exceptions; 2 | 3 | import ch.ethz.systems.netbench.core.config.NBProperties; 4 | 5 | public class PropertyNotExistingException extends RuntimeException { 6 | 7 | public PropertyNotExistingException(NBProperties properties, String key) { 8 | super("[" + properties.getFileName() + "]: property \"" + key + "\" is not a valid property key. " + 9 | "Three possibilities: (a) Did you make a typo in the code? " + 10 | "(b) Did you make a typo in the configuration file? " + 11 | "(c) Did you introduce your own property and forgot to add it to the static list in the NBProperties class?" 12 | ); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/core/config/exceptions/PropertyValueInvalidException.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.core.config.exceptions; 2 | 3 | import ch.ethz.systems.netbench.core.config.NBProperties; 4 | 5 | public class PropertyValueInvalidException extends RuntimeException { 6 | 7 | public PropertyValueInvalidException(NBProperties properties, String key) { 8 | super("[" + properties.getFileName() + "]: essential property \"" + key + "\" has invalid value \"" + properties.getPropertyOrFail(key) + "\"."); 9 | } 10 | 11 | } -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/core/log/LogFailureException.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.core.log; 2 | 3 | import java.io.IOException; 4 | 5 | /** 6 | * A logging action has failed, presumably due to failure of an I/O action. 7 | */ 8 | public class LogFailureException extends RuntimeException { 9 | 10 | public LogFailureException(IOException cause) { 11 | super(cause.getMessage()); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/core/log/LoggerCallback.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.core.log; 2 | 3 | public interface LoggerCallback { 4 | 5 | /** 6 | * Called by the {@link SimulationLogger} just before 7 | * all streams are closed. Can be used e.g. to write away overall statistics. 8 | */ 9 | void callBeforeClose(); 10 | 11 | } 12 | -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/core/network/UDPSendPacketEvent.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.core.network; 2 | 3 | import ch.ethz.systems.netbench.core.log.SimulationLogger; 4 | import ch.ethz.systems.netbench.xpt.tcpbase.FullExtTcpPacket; 5 | 6 | public class UDPSendPacketEvent extends Event { 7 | private final Socket udpsocket; 8 | public UDPSendPacketEvent(long timeFromNowNS, Socket udpsocket) { 9 | super(timeFromNowNS); 10 | this.udpsocket = udpsocket; 11 | } 12 | @java.lang.Override 13 | public void trigger() { 14 | this.udpsocket.start(); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/core/run/MainSimulation.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.core.run; 2 | 3 | public class MainSimulation { 4 | 5 | public static void main(String args[]) { 6 | if (args.length == 0) { 7 | System.out.println("Please specify which experiments to run!"); 8 | } 9 | 10 | for (String arg : args) { 11 | // switch(arg) { 12 | // } 13 | // MainFromProperties.main(new String[]{arg}); 14 | } 15 | MainFromIntelliJ.main(args); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/core/run/infrastructure/IntermediaryGenerator.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.core.run.infrastructure; 2 | 3 | import ch.ethz.systems.netbench.core.network.Intermediary; 4 | 5 | public abstract class IntermediaryGenerator { 6 | public abstract Intermediary generate(int networkDeviceIdentifier); 7 | } 8 | -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/core/run/infrastructure/LinkGenerator.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.core.run.infrastructure; 2 | 3 | import ch.ethz.systems.netbench.core.network.NetworkDevice; 4 | import ch.ethz.systems.netbench.core.network.Link; 5 | 6 | public abstract class LinkGenerator { 7 | public abstract Link generate(NetworkDevice fromNetworkDevice, NetworkDevice toNetworkDevice); 8 | } 9 | -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/core/run/infrastructure/NetworkDeviceGenerator.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.core.run.infrastructure; 2 | 3 | import ch.ethz.systems.netbench.core.network.NetworkDevice; 4 | import ch.ethz.systems.netbench.core.network.TransportLayer; 5 | 6 | public abstract class NetworkDeviceGenerator { 7 | public abstract NetworkDevice generate(int identifier); 8 | public abstract NetworkDevice generate(int identifier, TransportLayer server); 9 | } 10 | -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/core/run/infrastructure/OutputPortGenerator.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.core.run.infrastructure; 2 | 3 | import ch.ethz.systems.netbench.core.network.NetworkDevice; 4 | import ch.ethz.systems.netbench.core.network.Link; 5 | import ch.ethz.systems.netbench.core.network.OutputPort; 6 | 7 | public abstract class OutputPortGenerator { 8 | public abstract OutputPort generate(NetworkDevice ownNetworkDevice, NetworkDevice towardsNetworkDevice, Link link); 9 | } 10 | -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/core/run/infrastructure/TransportLayerGenerator.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.core.run.infrastructure; 2 | 3 | 4 | import ch.ethz.systems.netbench.core.network.TransportLayer; 5 | 6 | public abstract class TransportLayerGenerator { 7 | public abstract TransportLayer generate(int identifier); 8 | } 9 | -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/core/run/routing/RoutingPopulator.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.core.run.routing; 2 | 3 | public abstract class RoutingPopulator { 4 | public abstract void populateRoutingTables(); 5 | } 6 | -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/core/utility/UnitConverter.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.core.utility; 2 | 3 | public class UnitConverter { 4 | 5 | private UnitConverter() { 6 | // Cannot be instantiated 7 | } 8 | 9 | public static long convertSecondsToNanoseconds(double seconds) { 10 | return (long) (seconds * 1000000000L); 11 | } 12 | 13 | public static long convertSecondsToNanoseconds(long seconds) { 14 | return seconds * 1000000000L; 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/ext/bare/BarePacket.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.ext.bare; 2 | 3 | import ch.ethz.systems.netbench.ext.basic.TcpPacket; 4 | 5 | class BarePacket extends TcpPacket { 6 | 7 | BarePacket(long flowId, long dataSizeByte, int sourceId, int destinationId, long sequenceNumber, long acknowledgementNumber, boolean ECE, boolean ACK, double windowSize) { 8 | super( 9 | flowId, 10 | dataSizeByte, 11 | sourceId, 12 | destinationId, 13 | 0, 14 | 0, 15 | 0, 16 | sequenceNumber, 17 | acknowledgementNumber, 18 | false, 19 | false, 20 | ECE, 21 | false, 22 | ACK, 23 | false, 24 | false, 25 | false, 26 | false, 27 | windowSize 28 | ); 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/ext/bare/BareTransportLayerGenerator.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.ext.bare; 2 | 3 | import ch.ethz.systems.netbench.core.log.SimulationLogger; 4 | import ch.ethz.systems.netbench.core.network.TransportLayer; 5 | import ch.ethz.systems.netbench.core.run.infrastructure.TransportLayerGenerator; 6 | 7 | public class BareTransportLayerGenerator extends TransportLayerGenerator { 8 | 9 | public BareTransportLayerGenerator() { 10 | // No parameters needed 11 | SimulationLogger.logInfo("Transport layer", "BARE"); 12 | } 13 | 14 | @Override 15 | public TransportLayer generate(int identifier) { 16 | return new BareTransportLayer(identifier); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/ext/demo/DemoIntermediary.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.ext.demo; 2 | 3 | import ch.ethz.systems.netbench.core.network.Intermediary; 4 | import ch.ethz.systems.netbench.core.network.Packet; 5 | 6 | /** 7 | * The demonstrative basic identity intermediary does not match modify packets. 8 | */ 9 | public class DemoIntermediary extends Intermediary { 10 | 11 | DemoIntermediary() { 12 | super(); 13 | } 14 | 15 | @Override 16 | public Packet adaptOutgoing(Packet packet) { 17 | return packet; 18 | } 19 | 20 | @Override 21 | public Packet adaptIncoming(Packet packet) { 22 | return packet; 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/ext/demo/DemoIntermediaryGenerator.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.ext.demo; 2 | 3 | import ch.ethz.systems.netbench.core.log.SimulationLogger; 4 | import ch.ethz.systems.netbench.core.network.Intermediary; 5 | import ch.ethz.systems.netbench.core.run.infrastructure.IntermediaryGenerator; 6 | 7 | public class DemoIntermediaryGenerator extends IntermediaryGenerator { 8 | 9 | public DemoIntermediaryGenerator() { 10 | SimulationLogger.logInfo("Network device intermediary", "DEMO"); 11 | } 12 | 13 | @Override 14 | public Intermediary generate(int networkDeviceIdentifier) { 15 | return new DemoIntermediary(); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/ext/demo/DemoPacket.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.ext.demo; 2 | 3 | import ch.ethz.systems.netbench.ext.basic.IpPacket; 4 | 5 | class DemoPacket extends IpPacket implements DemoPacketHeader { 6 | 7 | private final long dataSizeByte; 8 | private final long ackSizeByte; 9 | 10 | DemoPacket(long flowId, long dataSizeByte, int sourceId, int destinationId, int TTL, long ackSizeByte) { 11 | super(flowId, dataSizeByte * 8, sourceId, destinationId, TTL); 12 | this.dataSizeByte = dataSizeByte; 13 | this.ackSizeByte = ackSizeByte; 14 | } 15 | 16 | @Override 17 | public long getDataSizeByte() { 18 | return dataSizeByte; 19 | } 20 | 21 | @Override 22 | public long getAckSizeByte() { 23 | return ackSizeByte; 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/ext/demo/DemoPacketHeader.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.ext.demo; 2 | 3 | public interface DemoPacketHeader { 4 | 5 | /** 6 | * Get the amount of data in bytes carried by the packet. 7 | * 8 | * @return Data carried in bytes 9 | */ 10 | long getDataSizeByte(); 11 | 12 | /** 13 | * Get the amount of bytes this packet acknowledges. 14 | * 15 | * @return Number of bytes acknowledged 16 | */ 17 | long getAckSizeByte(); 18 | 19 | } 20 | -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/ext/demo/DemoTransportLayerGenerator.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.ext.demo; 2 | 3 | import ch.ethz.systems.netbench.core.log.SimulationLogger; 4 | import ch.ethz.systems.netbench.core.network.TransportLayer; 5 | import ch.ethz.systems.netbench.core.run.infrastructure.TransportLayerGenerator; 6 | 7 | public class DemoTransportLayerGenerator extends TransportLayerGenerator { 8 | 9 | public DemoTransportLayerGenerator() { 10 | // No parameters needed 11 | SimulationLogger.logInfo("Transport layer", "DEMO"); 12 | } 13 | 14 | @Override 15 | public TransportLayer generate(int identifier) { 16 | return new DemoTransportLayer(identifier); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/ext/ecmp/EcmpSwitchRouting.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.ext.ecmp; 2 | 3 | import ch.ethz.systems.netbench.core.log.SimulationLogger; 4 | import ch.ethz.systems.netbench.core.network.NetworkDevice; 5 | import ch.ethz.systems.netbench.core.run.routing.RoutingPopulator; 6 | 7 | import java.util.Map; 8 | 9 | public class EcmpSwitchRouting extends RoutingPopulator { 10 | 11 | private final Map idToNetworkDevice; 12 | 13 | public EcmpSwitchRouting(Map idToNetworkDevice) { 14 | this.idToNetworkDevice = idToNetworkDevice; 15 | SimulationLogger.logInfo("Routing", "ECMP"); 16 | } 17 | 18 | /** 19 | * Initialize the multi-forwarding routing tables in the network devices. 20 | */ 21 | @Override 22 | public void populateRoutingTables() { 23 | EcmpRoutingUtility.populateShortestPathRoutingTables(idToNetworkDevice, true); 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/ext/ecmp/EcmpSwitchRoutingInterface.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.ext.ecmp; 2 | 3 | import ch.ethz.systems.netbench.core.network.OutputPort; 4 | 5 | public interface EcmpSwitchRoutingInterface { 6 | 7 | /** 8 | * Add another hop opportunity to the routing table for the given destination. 9 | * 10 | * @param destinationId Destination identifier 11 | * @param nextHopId A network device identifier where it could go to next (must have already been added 12 | * as connection}, else will throw an illegal 13 | * argument exception. 14 | */ 15 | void addDestinationToNextSwitch(int destinationId, int nextHopId); 16 | 17 | } 18 | -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/ext/ecmp/ForwarderSwitchRouting.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.ext.ecmp; 2 | 3 | import ch.ethz.systems.netbench.core.log.SimulationLogger; 4 | import ch.ethz.systems.netbench.core.network.NetworkDevice; 5 | import ch.ethz.systems.netbench.core.run.routing.RoutingPopulator; 6 | 7 | import java.util.Map; 8 | 9 | public class ForwarderSwitchRouting extends RoutingPopulator { 10 | 11 | private final Map idToNetworkDevice; 12 | 13 | public ForwarderSwitchRouting(Map idToNetworkDevice) { 14 | this.idToNetworkDevice = idToNetworkDevice; 15 | SimulationLogger.logInfo("Routing", "SINGLE_FORWARD"); 16 | } 17 | 18 | /** 19 | * Initialize the single-forward routing tables in the network devices. 20 | */ 21 | @Override 22 | public void populateRoutingTables() { 23 | EcmpRoutingUtility.populateShortestPathRoutingTables(idToNetworkDevice, false); 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/ext/flowlet/FlowletLogger.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.ext.flowlet; 2 | 3 | public class FlowletLogger { 4 | 5 | // TODO 6 | 7 | } 8 | -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/ext/flowlet/IdentityFlowletIntermediaryGenerator.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.ext.flowlet; 2 | 3 | import ch.ethz.systems.netbench.core.log.SimulationLogger; 4 | import ch.ethz.systems.netbench.core.network.Intermediary; 5 | import ch.ethz.systems.netbench.core.run.infrastructure.IntermediaryGenerator; 6 | 7 | public class IdentityFlowletIntermediaryGenerator extends IntermediaryGenerator { 8 | 9 | public IdentityFlowletIntermediaryGenerator() { 10 | SimulationLogger.logInfo("Network device flowlet intermediary", "IDENTITY"); 11 | } 12 | 13 | @Override 14 | public Intermediary generate(int networkDeviceIdentifier) { 15 | return new IdentityFlowletIntermediary(); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/ext/flowlet/UniformFlowletIntermediaryGenerator.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.ext.flowlet; 2 | 3 | import ch.ethz.systems.netbench.core.log.SimulationLogger; 4 | import ch.ethz.systems.netbench.core.network.Intermediary; 5 | import ch.ethz.systems.netbench.core.run.infrastructure.IntermediaryGenerator; 6 | 7 | public class UniformFlowletIntermediaryGenerator extends IntermediaryGenerator { 8 | 9 | public UniformFlowletIntermediaryGenerator() { 10 | SimulationLogger.logInfo("Network device flowlet intermediary", "UNIFORM"); 11 | } 12 | 13 | @Override 14 | public Intermediary generate(int networkDeviceIdentifier) { 15 | return new UniformFlowletIntermediary(); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/ext/poissontraffic/flowsize/FlowSizeDistribution.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.ext.poissontraffic.flowsize; 2 | 3 | import ch.ethz.systems.netbench.core.Simulator; 4 | 5 | import java.util.Random; 6 | 7 | public abstract class FlowSizeDistribution { 8 | 9 | Random independentRng; 10 | 11 | FlowSizeDistribution() { 12 | this.independentRng = Simulator.selectIndependentRandom("flow_size"); 13 | } 14 | 15 | public abstract long generateFlowSizeByte(); 16 | } 17 | -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/ext/valiant/ValiantEncapsulationHeader.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.ext.valiant; 2 | 3 | import ch.ethz.systems.netbench.ext.basic.TcpPacket; 4 | 5 | public interface ValiantEncapsulationHeader { 6 | 7 | /** 8 | * Retrieve the encapsulated packet. 9 | * 10 | * @return Encapsulated packet 11 | */ 12 | TcpPacket getPacket(); 13 | 14 | /** 15 | * Get the valiant destination. 16 | * 17 | * @return Valiant destination 18 | */ 19 | int getValiantDestination(); 20 | 21 | /** 22 | * Mark that it has passed the valiant node. 23 | */ 24 | void markPassedValiant(); 25 | 26 | /** 27 | * Check whether it has already passed the valiant node. 28 | * 29 | * @return True iff passed valiant (and should be directly routed to the true destination 30 | * of the underlying encapsulated packet) 31 | */ 32 | boolean passedValiant(); 33 | 34 | } 35 | -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/xpt/asaf/routing/priority/PriorityFlowletIntermediaryGenerator.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.xpt.asaf.routing.priority; 2 | 3 | import ch.ethz.systems.netbench.core.log.SimulationLogger; 4 | import ch.ethz.systems.netbench.core.run.infrastructure.IntermediaryGenerator; 5 | import ch.ethz.systems.netbench.ext.flowlet.FlowletIntermediary; 6 | 7 | public class PriorityFlowletIntermediaryGenerator extends IntermediaryGenerator{ 8 | 9 | public PriorityFlowletIntermediaryGenerator() { 10 | SimulationLogger.logInfo("Network device flowlet intermediary", "PRIORITY_UNIFORM_FLOWLET"); 11 | } 12 | 13 | @Override 14 | public FlowletIntermediary generate(int networkDeviceIdentifier) { 15 | return new PriorityFlowletIntermediary(); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/xpt/newreno/newrenodctcp/NewRenoDctcpTransportLayerGenerator.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.xpt.newreno.newrenodctcp; 2 | 3 | import ch.ethz.systems.netbench.core.log.SimulationLogger; 4 | import ch.ethz.systems.netbench.core.network.TransportLayer; 5 | import ch.ethz.systems.netbench.core.run.infrastructure.TransportLayerGenerator; 6 | 7 | public class NewRenoDctcpTransportLayerGenerator extends TransportLayerGenerator { 8 | 9 | public NewRenoDctcpTransportLayerGenerator() { 10 | // No parameters needed 11 | SimulationLogger.logInfo("Transport layer", "DCTCP"); 12 | } 13 | 14 | @Override 15 | public TransportLayer generate(int identifier) { 16 | return new NewRenoDctcpTransportLayer(identifier); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/xpt/newreno/newrenotcp/NewRenoTcpTransportLayerGenerator.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.xpt.newreno.newrenotcp; 2 | 3 | import ch.ethz.systems.netbench.core.log.SimulationLogger; 4 | import ch.ethz.systems.netbench.core.network.TransportLayer; 5 | import ch.ethz.systems.netbench.core.run.infrastructure.TransportLayerGenerator; 6 | 7 | public class NewRenoTcpTransportLayerGenerator extends TransportLayerGenerator { 8 | 9 | public NewRenoTcpTransportLayerGenerator() { 10 | // No parameters needed 11 | SimulationLogger.logInfo("Transport layer", "TCP"); 12 | } 13 | 14 | @Override 15 | public TransportLayer generate(int identifier) { 16 | return new NewRenoTcpTransportLayer(identifier); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/xpt/simple/simpledctcp/SimpleDctcpTransportLayerGenerator.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.xpt.simple.simpledctcp; 2 | 3 | import ch.ethz.systems.netbench.core.log.SimulationLogger; 4 | import ch.ethz.systems.netbench.core.network.TransportLayer; 5 | import ch.ethz.systems.netbench.core.run.infrastructure.TransportLayerGenerator; 6 | 7 | public class SimpleDctcpTransportLayerGenerator extends TransportLayerGenerator { 8 | 9 | public SimpleDctcpTransportLayerGenerator() { 10 | // No parameters needed 11 | SimulationLogger.logInfo("Transport layer", "SIMPLE_DCTCP"); 12 | } 13 | 14 | @Override 15 | public TransportLayer generate(int identifier) { 16 | return new SimpleDctcpTransportLayer(identifier); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/xpt/simple/simpletcp/SimpleTcpTransportLayerGenerator.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.xpt.simple.simpletcp; 2 | 3 | import ch.ethz.systems.netbench.core.log.SimulationLogger; 4 | import ch.ethz.systems.netbench.core.network.TransportLayer; 5 | import ch.ethz.systems.netbench.core.run.infrastructure.TransportLayerGenerator; 6 | 7 | public class SimpleTcpTransportLayerGenerator extends TransportLayerGenerator { 8 | 9 | public SimpleTcpTransportLayerGenerator() { 10 | // No parameters needed 11 | SimulationLogger.logInfo("Transport layer", "TCP"); 12 | } 13 | 14 | @Override 15 | public TransportLayer generate(int identifier) { 16 | return new SimpleTcpTransportLayer(identifier); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/xpt/simple/simpleudp/SimpleUdpTransportLayerGenerator.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.xpt.simple.simpleudp; 2 | 3 | 4 | import ch.ethz.systems.netbench.core.log.SimulationLogger; 5 | import ch.ethz.systems.netbench.core.network.TransportLayer; 6 | import ch.ethz.systems.netbench.core.run.infrastructure.TransportLayerGenerator; 7 | 8 | public class SimpleUdpTransportLayerGenerator extends TransportLayerGenerator { 9 | 10 | public SimpleUdpTransportLayerGenerator() { 11 | SimulationLogger.logInfo("Transport layer", "UDP"); 12 | } 13 | 14 | @Override 15 | public TransportLayer generate(int identifier) { 16 | return new SimpleUdpTransportLayer(identifier); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/xpt/sourcerouting/SourceRoutingPath.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.xpt.sourcerouting; 2 | 3 | import java.util.ArrayList; 4 | 5 | public class SourceRoutingPath extends ArrayList { 6 | // No adaptations needed, it is only created for 7 | // semantic purpose. 8 | } 9 | -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/xpt/sppifo/ports/HCSFQ/FlowState.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.xpt.sppifo.ports.HCSFQ; 2 | 3 | import ch.ethz.systems.netbench.core.Simulator; 4 | 5 | public class FlowState { 6 | private final double K; 7 | private long lastArrTime; 8 | private double r; 9 | 10 | public FlowState(double K) { 11 | this.K = K; 12 | this.lastArrTime = - 1; 13 | this.r = 0; 14 | } 15 | 16 | public double getEstArrRate(long newArrTime, long l) { 17 | // Only update estimate if coming from a different batch 18 | if (1==1) { 19 | long T = newArrTime - lastArrTime; 20 | double _inc = 20; 21 | // System.out.println(T); 22 | 23 | lastArrTime = newArrTime; 24 | r = (1 - Math.exp(-(T+_inc) / K)) * (l * 1.0 / (T+_inc)) + Math.exp(-(T+_inc) / K) * r; 25 | } 26 | 27 | return r; 28 | } 29 | 30 | public double getEstRate() { 31 | return r; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/xpt/sppifo/ports/PIFO/PIFOOutputPort.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.xpt.sppifo.ports.PIFO; 2 | 3 | import ch.ethz.systems.netbench.core.network.Link; 4 | import ch.ethz.systems.netbench.core.network.NetworkDevice; 5 | import ch.ethz.systems.netbench.core.network.OutputPort; 6 | import ch.ethz.systems.netbench.core.network.Packet; 7 | 8 | 9 | public class PIFOOutputPort extends OutputPort { 10 | 11 | 12 | public PIFOOutputPort(NetworkDevice ownNetworkDevice, NetworkDevice targetNetworkDevice, Link link, long sizePackets) { 13 | super(ownNetworkDevice, targetNetworkDevice, link, new PIFOQueue(sizePackets)); 14 | } 15 | 16 | /** 17 | * Enqueue the given packet. 18 | * 19 | * @param packet Packet instance 20 | */ 21 | @Override 22 | public void enqueue(Packet packet) { 23 | 24 | //Enqueue packet 25 | push(packet); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/xpt/sppifo/ports/PIFO/PIFOOutputPortGenerator.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.xpt.sppifo.ports.PIFO; 2 | 3 | import ch.ethz.systems.netbench.core.log.SimulationLogger; 4 | import ch.ethz.systems.netbench.core.network.Link; 5 | import ch.ethz.systems.netbench.core.network.NetworkDevice; 6 | import ch.ethz.systems.netbench.core.network.OutputPort; 7 | import ch.ethz.systems.netbench.core.run.infrastructure.OutputPortGenerator; 8 | 9 | public class PIFOOutputPortGenerator extends OutputPortGenerator { 10 | 11 | private final long sizePackets; 12 | 13 | public PIFOOutputPortGenerator(long sizePackets) { 14 | this.sizePackets = sizePackets; 15 | SimulationLogger.logInfo("Port", "PIFO(sizePackets=" + sizePackets + ")"); 16 | } 17 | 18 | @Override 19 | public OutputPort generate(NetworkDevice ownNetworkDevice, NetworkDevice towardsNetworkDevice, Link link) { 20 | return new PIFOOutputPort(ownNetworkDevice, towardsNetworkDevice, link, sizePackets); 21 | } 22 | 23 | } -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/xpt/tcpbase/AckRange.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.xpt.tcpbase; 2 | 3 | /** 4 | * Acknowledgment range (immutable object). 5 | */ 6 | public class AckRange { 7 | 8 | final long lowBound; 9 | final long highBound; 10 | 11 | AckRange(long lowBound, long highBound) { 12 | this.lowBound = lowBound; 13 | this.highBound = highBound; 14 | } 15 | 16 | long getLowBound() { 17 | return lowBound; 18 | } 19 | 20 | long getHighBound() { 21 | return highBound; 22 | } 23 | 24 | public String toString() { 25 | return "[" + lowBound + ", " + highBound + ")"; 26 | } 27 | 28 | public boolean isWithin(long intLowBound, long intHighBound) { 29 | return intLowBound >= this.lowBound && intHighBound <= this.highBound; 30 | } 31 | 32 | } -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/xpt/tcpbase/PriorityHeader.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.xpt.tcpbase; 2 | 3 | import ch.ethz.systems.netbench.ext.basic.TcpHeader; 4 | 5 | public interface PriorityHeader extends TcpHeader { 6 | 7 | /** 8 | * Retrieve the priority of the packet. 9 | * 10 | * @return Packet priority 11 | */ 12 | long getPriority(); 13 | 14 | /** 15 | * Increase the priority of the packet. 16 | */ 17 | void increasePriority(); 18 | 19 | /** 20 | * Set the current priority of the packet. 21 | * 22 | * @param val Priority value 23 | */ 24 | void setPriority(long val); 25 | 26 | } 27 | -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/xpt/tcpbase/SelectiveAckHeader.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.xpt.tcpbase; 2 | 3 | import ch.ethz.systems.netbench.core.network.Packet; 4 | import ch.ethz.systems.netbench.core.network.PacketHeader; 5 | 6 | import java.util.Collection; 7 | 8 | public interface SelectiveAckHeader extends PacketHeader { 9 | 10 | /** 11 | * Set the selective acknowledgment. 12 | * 13 | * @param selectiveAck Selective acknowledgment 14 | */ 15 | Packet setSelectiveAck(Collection selectiveAck); 16 | 17 | /** 18 | * Get the selective acknowledgment field. 19 | * 20 | * @return Selective acknowledgment 21 | */ 22 | Collection getSelectiveAck(); 23 | 24 | } 25 | -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/xpt/utility/FTEcmpFC.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.xpt.utility; 2 | 3 | public class FTEcmpFC { 4 | 5 | public static void main(String args[]) { 6 | 7 | System.out.println("#server_pair_id,src,dst,pdf_num_bytes"); 8 | int c = 0; 9 | for (int i = 320; i < 333; i++) { 10 | if (i > 324 && i < 328) { 11 | continue; 12 | } 13 | for (int j = 320; j < 333; j++) { 14 | if (j > 324 && j < 328) { 15 | continue; 16 | } 17 | if (i == j) { 18 | continue; 19 | } 20 | System.out.println(c + "," + i + "," + j + "," + (1.0/90.0)); 21 | c++; 22 | } 23 | } 24 | 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/xpt/utility/NodeTransportLayerMapper.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.xpt.utility; 2 | 3 | /** 4 | * Main utility tool to generate the node list whether a node has a transport 5 | * layer in a scenario topology file. 6 | */ 7 | public class NodeTransportLayerMapper { 8 | 9 | public static void main(String[] args) { 10 | 11 | int n = 100; 12 | for (int i = 0; i < n; i++) { 13 | if (matchCriteria(i)) { 14 | System.out.println(i + " 1"); 15 | } else { 16 | System.out.println(i + " 0"); 17 | } 18 | } 19 | 20 | } 21 | 22 | private static boolean matchCriteria(int i) { 23 | return i < 80; 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/xpt/utility/TestMain.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.xpt.utility; 2 | 3 | /** 4 | * Created by Zimon on 23/01/2017. 5 | */ 6 | public class TestMain { 7 | 8 | public static void main(String args[]) { 9 | 10 | int c = 0; 11 | for (int i = 0; i < 8; i++) { 12 | for (int j = 0; j < 8; j++) { 13 | System.out.println(c + "," + (216 + i) + "," + (728 + j) + "," + (1.0 / 64)); 14 | c++; 15 | } 16 | 17 | } 18 | 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/xpt/utility/dataprocessing/NiceExcelCreator.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.xpt.utility.dataprocessing; 2 | 3 | public class NiceExcelCreator { 4 | 5 | public static void main(String args[]) { 6 | 7 | // Read in files 8 | // Write out one-by-one header and file content... 9 | 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/xpt/voijslav_and_sppifo/ports/PriorityOutputPortGenerator.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.xpt.voijslav_and_sppifo.ports; 2 | 3 | import ch.ethz.systems.netbench.core.log.SimulationLogger; 4 | import ch.ethz.systems.netbench.core.network.Link; 5 | import ch.ethz.systems.netbench.core.network.NetworkDevice; 6 | import ch.ethz.systems.netbench.core.network.OutputPort; 7 | import ch.ethz.systems.netbench.core.run.infrastructure.OutputPortGenerator; 8 | 9 | public class PriorityOutputPortGenerator extends OutputPortGenerator { 10 | 11 | public PriorityOutputPortGenerator() { 12 | SimulationLogger.logInfo("Port", "PRIORITY_PORT"); 13 | } 14 | 15 | @Override 16 | public OutputPort generate(NetworkDevice ownNetworkDevice, NetworkDevice towardsNetworkDevice, Link link) { 17 | return new PriorityOutputPort(ownNetworkDevice, towardsNetworkDevice, link); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/xpt/voijslav_and_sppifo/ports/UnlimitedOutputPort.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.xpt.voijslav_and_sppifo.ports; 2 | 3 | 4 | import ch.ethz.systems.netbench.core.network.Link; 5 | import ch.ethz.systems.netbench.core.network.NetworkDevice; 6 | import ch.ethz.systems.netbench.core.network.OutputPort; 7 | import ch.ethz.systems.netbench.core.network.Packet; 8 | 9 | import java.util.concurrent.LinkedBlockingQueue; 10 | 11 | /** 12 | * The unlimited output port employs a First-In-First-Out output 13 | * queue without limiting the size it can take. 14 | */ 15 | public class UnlimitedOutputPort extends OutputPort { 16 | 17 | public UnlimitedOutputPort(NetworkDevice ownNetworkDevice, NetworkDevice targetNetworkDevice, Link link) { 18 | super(ownNetworkDevice, targetNetworkDevice, link, new LinkedBlockingQueue()); 19 | } 20 | 21 | @Override 22 | public void enqueue(Packet packet) { 23 | guaranteedEnqueue(packet); 24 | } 25 | 26 | } -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/xpt/voijslav_and_sppifo/ports/UnlimitedOutputPortGenerator.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.xpt.voijslav_and_sppifo.ports; 2 | 3 | 4 | import ch.ethz.systems.netbench.core.log.SimulationLogger; 5 | import ch.ethz.systems.netbench.core.network.Link; 6 | import ch.ethz.systems.netbench.core.network.NetworkDevice; 7 | import ch.ethz.systems.netbench.core.network.OutputPort; 8 | import ch.ethz.systems.netbench.core.run.infrastructure.OutputPortGenerator; 9 | 10 | public class UnlimitedOutputPortGenerator extends OutputPortGenerator { 11 | 12 | public UnlimitedOutputPortGenerator() { 13 | SimulationLogger.logInfo("Port", "UNLIMITED_PORT"); 14 | } 15 | 16 | @Override 17 | public OutputPort generate(NetworkDevice ownNetworkDevice, NetworkDevice towardsNetworkDevice, Link link) { 18 | return new UnlimitedOutputPort(ownNetworkDevice, towardsNetworkDevice, link); 19 | } 20 | 21 | } -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/xpt/voijslav_and_sppifo/tcp/buffertcp/BufferTcpTransportLayerGenerator.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.xpt.voijslav_and_sppifo.tcp.buffertcp; 2 | 3 | 4 | import ch.ethz.systems.netbench.core.Simulator; 5 | import ch.ethz.systems.netbench.core.log.SimulationLogger; 6 | import ch.ethz.systems.netbench.core.network.TransportLayer; 7 | import ch.ethz.systems.netbench.core.run.infrastructure.TransportLayerGenerator; 8 | 9 | public class BufferTcpTransportLayerGenerator extends TransportLayerGenerator { 10 | 11 | public BufferTcpTransportLayerGenerator() { 12 | // No parameters needed 13 | SimulationLogger.logInfo("Transport layer", "BufferTCP"); 14 | } 15 | 16 | @Override 17 | public TransportLayer generate(int identifier) { 18 | return new BufferTcpTransportLayer( 19 | identifier, 20 | Simulator.getConfiguration().getLongPropertyOrFail("seed") 21 | ); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/xpt/voijslav_and_sppifo/tcp/distmeantcp/DistMeanTcpTransportLayerGenerator.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.xpt.voijslav_and_sppifo.tcp.distmeantcp; 2 | 3 | import ch.ethz.systems.netbench.core.Simulator; 4 | import ch.ethz.systems.netbench.core.log.SimulationLogger; 5 | import ch.ethz.systems.netbench.core.network.TransportLayer; 6 | import ch.ethz.systems.netbench.core.run.infrastructure.TransportLayerGenerator; 7 | 8 | public class DistMeanTcpTransportLayerGenerator extends TransportLayerGenerator { 9 | 10 | public DistMeanTcpTransportLayerGenerator() { 11 | // No parameters needed 12 | SimulationLogger.logInfo("Transport layer", "DistMeanTcp"); 13 | } 14 | 15 | @Override 16 | public TransportLayer generate(int identifier) { 17 | return new DistMeanTcpTransportLayer( 18 | identifier, 19 | Simulator.getConfiguration().getLongPropertyOrFail("seed") 20 | ); 21 | } 22 | 23 | } -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/xpt/voijslav_and_sppifo/tcp/distrandtcp/DistRandTcpTransportLayerGenerator.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.xpt.voijslav_and_sppifo.tcp.distrandtcp; 2 | 3 | import ch.ethz.systems.netbench.core.Simulator; 4 | import ch.ethz.systems.netbench.core.log.SimulationLogger; 5 | import ch.ethz.systems.netbench.core.network.TransportLayer; 6 | import ch.ethz.systems.netbench.core.run.infrastructure.TransportLayerGenerator; 7 | 8 | public class DistRandTcpTransportLayerGenerator extends TransportLayerGenerator { 9 | 10 | public DistRandTcpTransportLayerGenerator() { 11 | // No parameters needed 12 | SimulationLogger.logInfo("Transport layer", "DistRandTcp"); 13 | } 14 | 15 | @Override 16 | public TransportLayer generate(int identifier) { 17 | return new DistRandTcpTransportLayer( 18 | identifier, 19 | Simulator.getConfiguration().getLongPropertyOrFail("seed") 20 | ); 21 | } 22 | 23 | } -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/xpt/voijslav_and_sppifo/tcp/lstftcp/LstfTcpTransportLayerGenerator.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.xpt.voijslav_and_sppifo.tcp.lstftcp; 2 | 3 | import ch.ethz.systems.netbench.core.log.SimulationLogger; 4 | import ch.ethz.systems.netbench.core.network.TransportLayer; 5 | import ch.ethz.systems.netbench.core.run.infrastructure.TransportLayerGenerator; 6 | 7 | public class LstfTcpTransportLayerGenerator extends TransportLayerGenerator { 8 | 9 | private String rankDistribution; 10 | private long rankBound; 11 | 12 | public LstfTcpTransportLayerGenerator(String rankDistribution, long rankBound) { 13 | SimulationLogger.logInfo("Transport layer", "LSTF TCP"); 14 | this.rankDistribution = rankDistribution; 15 | this.rankBound = rankBound; 16 | } 17 | 18 | @Override 19 | public TransportLayer generate(int identifier) { 20 | return new LstfTcpTransportLayer(identifier, rankDistribution, rankBound); 21 | } 22 | 23 | } -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/xpt/voijslav_and_sppifo/tcp/pfabric/PfabricTransportLayerGenerator.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.xpt.voijslav_and_sppifo.tcp.pfabric; 2 | 3 | 4 | import ch.ethz.systems.netbench.core.Simulator; 5 | import ch.ethz.systems.netbench.core.log.SimulationLogger; 6 | import ch.ethz.systems.netbench.core.network.TransportLayer; 7 | import ch.ethz.systems.netbench.core.run.infrastructure.TransportLayerGenerator; 8 | 9 | public class PfabricTransportLayerGenerator extends TransportLayerGenerator { 10 | 11 | public PfabricTransportLayerGenerator() { 12 | // No parameters needed 13 | SimulationLogger.logInfo("Transport layer", "PFABRIC"); 14 | } 15 | 16 | @Override 17 | public TransportLayer generate(int identifier) { 18 | return new PfabricTransportLayer( 19 | identifier, 20 | Simulator.getConfiguration().getLongPropertyOrFail("seed") 21 | ); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/xpt/voijslav_and_sppifo/tcp/pfzero/PfzeroTransportLayerGenerator.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.xpt.voijslav_and_sppifo.tcp.pfzero; 2 | 3 | 4 | import ch.ethz.systems.netbench.core.Simulator; 5 | import ch.ethz.systems.netbench.core.log.SimulationLogger; 6 | import ch.ethz.systems.netbench.core.network.TransportLayer; 7 | import ch.ethz.systems.netbench.core.run.infrastructure.TransportLayerGenerator; 8 | 9 | public class PfzeroTransportLayerGenerator extends TransportLayerGenerator { 10 | 11 | public PfzeroTransportLayerGenerator() { 12 | // No parameters needed 13 | SimulationLogger.logInfo("Transport layer", "PFZERO"); 14 | } 15 | 16 | @Override 17 | public TransportLayer generate(int identifier) { 18 | return new PfzeroTransportLayer( 19 | identifier, 20 | Simulator.getConfiguration().getLongPropertyOrFail("seed") 21 | ); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/xpt/voijslav_and_sppifo/tcp/sparktcp/SparkTransportLayerGenerator.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.xpt.voijslav_and_sppifo.tcp.sparktcp; 2 | 3 | 4 | import ch.ethz.systems.netbench.core.Simulator; 5 | import ch.ethz.systems.netbench.core.log.SimulationLogger; 6 | import ch.ethz.systems.netbench.core.network.TransportLayer; 7 | import ch.ethz.systems.netbench.core.run.infrastructure.TransportLayerGenerator; 8 | 9 | public class SparkTransportLayerGenerator extends TransportLayerGenerator { 10 | 11 | public SparkTransportLayerGenerator() { 12 | // No parameters needed 13 | SimulationLogger.logInfo("Transport layer", "SparkTCP"); 14 | } 15 | 16 | @Override 17 | public TransportLayer generate(int identifier) { 18 | return new SparkTransportLayer( 19 | identifier, 20 | Simulator.getConfiguration().getLongPropertyOrFail("seed") 21 | ); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/xpt/voijslav_and_sppifo/tcp/sphalftcp/SpHalfTcpTransportLayerGenerator.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.xpt.voijslav_and_sppifo.tcp.sphalftcp; 2 | 3 | import ch.ethz.systems.netbench.core.log.SimulationLogger; 4 | import ch.ethz.systems.netbench.core.network.TransportLayer; 5 | import ch.ethz.systems.netbench.core.run.infrastructure.TransportLayerGenerator; 6 | 7 | public class SpHalfTcpTransportLayerGenerator extends TransportLayerGenerator { 8 | 9 | public SpHalfTcpTransportLayerGenerator() { 10 | // No parameters needed 11 | SimulationLogger.logInfo("Transport layer", "SP HALF TCP"); 12 | } 13 | 14 | @Override 15 | public TransportLayer generate(int identifier) { 16 | return new SpHalfTcpTransportLayer(identifier); 17 | } 18 | 19 | } -------------------------------------------------------------------------------- /simulation_code/src/main/java/ch/ethz/systems/netbench/xpt/voijslav_and_sppifo/tcp/sptcp/SpTcpTransportLayerGenerator.java: -------------------------------------------------------------------------------- 1 | package ch.ethz.systems.netbench.xpt.voijslav_and_sppifo.tcp.sptcp; 2 | 3 | import ch.ethz.systems.netbench.core.log.SimulationLogger; 4 | import ch.ethz.systems.netbench.core.network.TransportLayer; 5 | import ch.ethz.systems.netbench.core.run.infrastructure.TransportLayerGenerator; 6 | 7 | public class SpTcpTransportLayerGenerator extends TransportLayerGenerator { 8 | 9 | public SpTcpTransportLayerGenerator() { 10 | // No parameters needed 11 | SimulationLogger.logInfo("Transport layer", "SP TCP"); 12 | } 13 | 14 | @Override 15 | public TransportLayer generate(int identifier) { 16 | return new SpTcpTransportLayer(identifier); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /simulation_code/temp/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netx-repo/HCSFQ/01574b9fbc64c8c63d1fbf916795e6860395c100/simulation_code/temp/.gitignore -------------------------------------------------------------------------------- /testbed_code/client_dpdk/README.md: -------------------------------------------------------------------------------- 1 | # server (netx8): 2 | go to `/home/user/hz/incast_dpdk/server` 3 | 4 | Compile: 5 | `make` 6 | 7 | Run: 8 | `sudo ./build/server -l 0` 9 | 10 | ### Note: 11 | - `-l` denotes the list of thread IDs. 12 | 13 | 14 | # client (netx1,2,3) 15 | go to `/home/user/hz/incast_dpdk/client` 16 | 17 | Compile: 18 | `make` 19 | 20 | Run: 21 | `sudo ./build/client -l 0 -- -x 1 -s 100000` 22 | 23 | ### how to modify the ethernet frame size: 24 | modify the length of the int array on L93 in `util/util.h` 25 | 26 | ### Note: 27 | - `-l` denotes the list of thread IDs. 28 | - `-x 1`: specify the client_ip: "10.1.0." 29 | - `-s 100000`: pkts/ms 30 | -------------------------------------------------------------------------------- /testbed_code/client_dpdk/client/Makefile: -------------------------------------------------------------------------------- 1 | ifeq ($(RTE_SDK),) 2 | $(error "Please define RTE_SDK environment variable") 3 | endif 4 | 5 | # Default target, can be overriden by command line or environment 6 | RTE_TARGET ?= x86_64-native-linuxapp-gcc 7 | 8 | include $(RTE_SDK)/mk/rte.vars.mk 9 | 10 | # binary name 11 | APP = client 12 | 13 | # all source are stored in SRCS-y 14 | SRCS-y := client.c 15 | 16 | CFLAGS += -O3# -g for gdb debugging 17 | #CFLAGS += $(WERROR_FLAGS) 18 | 19 | include $(RTE_SDK)/mk/rte.extapp.mk 20 | -------------------------------------------------------------------------------- /testbed_code/client_dpdk/server/Makefile: -------------------------------------------------------------------------------- 1 | ifeq ($(RTE_SDK),) 2 | $(error "Please define RTE_SDK environment variable") 3 | endif 4 | 5 | # Default target, can be overriden by command line or environment 6 | RTE_TARGET ?= x86_64-native-linuxapp-gcc 7 | 8 | include $(RTE_SDK)/mk/rte.vars.mk 9 | 10 | # binary name 11 | APP = server 12 | 13 | # all source are stored in SRCS-y 14 | SRCS-y := server.c 15 | 16 | CFLAGS += -O3# -g #for gdb debugging 17 | #CFLAGS += $(WERROR_FLAGS) 18 | 19 | include $(RTE_SDK)/mk/rte.extapp.mk 20 | -------------------------------------------------------------------------------- /testbed_code/hcsfq/p4src/includes/hcsfq_defines_tcp_alg.p4: -------------------------------------------------------------------------------- 1 | #define CSFQ_PORT 8888 2 | #define LOWER_BOUND 0 3 | #define UPPER_BOUND 15 4 | #define NUM_FLOWS 600 5 | #define NUM_TENANTS 10 6 | #define RATE_ESTIMATED 1 7 | #ifdef BPS 8 | #define EPOCH_THRESHOLD 1000 * 8 9 | #define WINDOW_SIZE 4382 10 | #else 11 | #define EPOCH_THRESHOLD 30720 12 | #define WINDOW_SIZE 5001 13 | #endif 14 | 15 | #define RECIRCULATED 1 16 | #define UPDATE_ALPHA 1 17 | #define UPDATE_TOTAL_ALPHA 1 18 | #define UPDATE_RATE 1 19 | #define bitwidth 1 20 | 21 | #ifdef BPS 22 | #define C 1151456 23 | #define DELTA_C 4800 24 | #define INIT_C 215145 25 | #else 26 | #define C 35000 27 | #define DELTA_C 123 28 | #endif -------------------------------------------------------------------------------- /testbed_code/hcsfq/p4src/includes/hcsfq_defines_tcp_diff.p4: -------------------------------------------------------------------------------- 1 | #define CSFQ_PORT 8888 2 | #define LOWER_BOUND 0 3 | #define UPPER_BOUND 15 4 | #define NUM_FLOWS 600 5 | #define NUM_TENANTS 10 6 | #define RATE_ESTIMATED 1 7 | #ifdef BPS 8 | #define EPOCH_THRESHOLD 100000 * 8 9 | #define WINDOW_SIZE 43828 10 | #else 11 | #define EPOCH_THRESHOLD 30720 12 | #define WINDOW_SIZE 5001 13 | #endif 14 | 15 | #define RECIRCULATED 1 16 | #define UPDATE_ALPHA 1 17 | #define UPDATE_TOTAL_ALPHA 1 18 | #define UPDATE_RATE 1 19 | #define bitwidth 1 20 | 21 | #ifdef BPS 22 | #define C 115145657 23 | #define INIT_C 11514565 24 | #else 25 | #define C 35000 26 | #define DELTA_C 123 27 | #endif -------------------------------------------------------------------------------- /testbed_code/hcsfq/p4src/includes/hcsfq_defines_tcp_hierarchy.p4: -------------------------------------------------------------------------------- 1 | #define CSFQ_PORT 8888 2 | #define LOWER_BOUND 0 3 | #define UPPER_BOUND 15 4 | #define NUM_FLOWS 600 5 | #define NUM_TENANTS 10 6 | #define RATE_ESTIMATED 1 7 | #ifdef BPS 8 | #define EPOCH_THRESHOLD 1000 * 8 9 | // #define EPOCH_THRESHOLD 2382 10 | // #define EPOCH_THRESHOLD (238 * 2) 11 | #define WINDOW_SIZE 4382 12 | #else 13 | #define EPOCH_THRESHOLD 30720 14 | #define WINDOW_SIZE 5001 15 | #endif 16 | 17 | #define RECIRCULATED 1 18 | #define UPDATE_ALPHA 1 19 | #define UPDATE_TOTAL_ALPHA 1 20 | #define UPDATE_RATE 1 21 | #define bitwidth 1 22 | 23 | #ifdef BPS 24 | #define C 1151456 25 | #define DELTA_C 6000 26 | #define INIT_C 215145 27 | #else 28 | #define C 35000 29 | #define DELTA_C 123 30 | #endif -------------------------------------------------------------------------------- /testbed_code/hcsfq/p4src/includes/hcsfq_defines_tcp_rtt.p4: -------------------------------------------------------------------------------- 1 | #define CSFQ_PORT 8888 2 | #define LOWER_BOUND 0 3 | #define UPPER_BOUND 15 4 | #define NUM_FLOWS 600 5 | #define NUM_TENANTS 10 6 | #define RATE_ESTIMATED 1 7 | #ifdef BPS 8 | #define EPOCH_THRESHOLD 1000 * 8 9 | #define WINDOW_SIZE 4382 10 | #else 11 | #define EPOCH_THRESHOLD 30720 12 | #define WINDOW_SIZE 5001 13 | #endif 14 | 15 | #define RECIRCULATED 1 16 | #define UPDATE_ALPHA 1 17 | #define UPDATE_TOTAL_ALPHA 1 18 | #define UPDATE_RATE 1 19 | #define bitwidth 1 20 | 21 | #ifdef BPS 22 | #define C 1151456 23 | #define DELTA_C 4800 24 | #define INIT_C 215145 25 | #else 26 | #define C 35000 27 | #define DELTA_C 123 28 | #endif -------------------------------------------------------------------------------- /testbed_code/simple_switch/p4src/includes/simpleswitch_defines.p4: -------------------------------------------------------------------------------- 1 | #define CSFQ_PORT 8888 2 | #define LOWER_BOUND 0 3 | #define UPPER_BOUND 15 4 | #define NUM_FLOWS 65536 5 | #define EPOCH_THRESHOLD 1024 6 | #define WINDOW_SIZE 1024 7 | #define RECIRCULATED 1 8 | #define C 5120 9 | #define DELTA_C 250 -------------------------------------------------------------------------------- /testbed_code/simple_switch/p4src/simpleswitch_actions.p4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netx-repo/HCSFQ/01574b9fbc64c8c63d1fbf916795e6860395c100/testbed_code/simple_switch/p4src/simpleswitch_actions.p4 -------------------------------------------------------------------------------- /testbed_code/simple_switch/p4src/simpleswitch_blackboxs.p4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netx-repo/HCSFQ/01574b9fbc64c8c63d1fbf916795e6860395c100/testbed_code/simple_switch/p4src/simpleswitch_blackboxs.p4 -------------------------------------------------------------------------------- /testbed_code/simple_switch/p4src/simpleswitch_tables.p4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netx-repo/HCSFQ/01574b9fbc64c8c63d1fbf916795e6860395c100/testbed_code/simple_switch/p4src/simpleswitch_tables.p4 --------------------------------------------------------------------------------