NS-3 Summer of Code
- Project Name: L4S evaluation framework
- Student: Harsha Sharma
- Mentors: Tom Henderson, others TBD
- Project Goals: This project aims to make it easier for users of ns-3 to rapidly publish the results of repeatable ns-3 experiments (specifically the l4s-evaluation modules, but in future, other modules too)
- Repository: https://gitlab.com/hs256/l4s-evaluation/-/tree/nsoc
- About: https://harshasharma.in. I am a final year undergraduate student at IIT Roorkee. I have previously done GSoC with Netfilter organization and outreachy internship with linux kernel. I am interested in research in systems and networking.
- Abstract: This project aims to design a software framework to conduct reproducible experiments on congestion control and active queue management (AQM) using the ns-3 network simulator. We plan to develop this framework to perform experiments for L4S (Low Latency, Low Loss, Scalable Throughput Internet Service) architecture to complement the existing testbed experiments for supporting the technical evaluation of L4S by the IETF Transport Area Working Group. The framework will be a synthesis of previous work on ns-3 models, scripting for ns-3 simulation replication, and Python data science tools. We also plan to showcase some selected experimental results using this new tool to demonstrate the current capabilities.
Week 1 : June 1st - June 7th
- Updated L4S Evaluation module to ns-3-dev.
- Working on reproducing an experiment which was recently posted on TCP Prague mailing list in which two competing TCP Prague flows (one starting 5 seconds after the other one) competes for fair share on a bottleneck link.
(https://mailarchive.ietf.org/arch/msg/tcpprague/khEqpww9ne99DdsFsIQJN8JCJpU/). We use ns-3 DCTCP in a similar configuration.
- Exploring SEM (Simulation Execution Manager) to easily reproduce experimental data and plots by varying different parameters.
Week 2-4 : June 7th - June 26th
- Discussion with Prof. Tom Henderson, Prof. Mohit P. Tahiliani and Davide Magrin on project and we decided to implement Flent application API in ns-3 which will have commands similar to Toke Høiland-Jørgensen's Flent tool which is widely used for testbed experiments. Similar to flent which is a wrapper around netperf, iperf and ping, flent application in ns-3 is a wrapper around existing ns-3 applications.
Week 5 : June 26th - July 5th
- Added basic Flent application API which initially supports V4Ping Application and outputs Ping RTT.
- Added an example to test this API.
- Code can be tracked here : https://gitlab.com/hs256/l4s-evaluation/-/tree/nsoc and https://gitlab.com/hs256/ns-3-dev/-/tree/flent
=== Weeks 6-onward : July through October
- The project has continued, targeting a Flent application release by end of October. Code can be tracked here : https://gitlab.com/hs256/l4s-evaluation/-/tree/nsoc and https://gitlab.com/hs256/ns-3-dev/-/tree/flent