Note: All code (except MACE) is available under either BSD or GPL license. See specific code package for details.

Available Software

Badabing

An end-to-end packet loss measurement tool.

Publication: Improving accuracy in end-to-end packet loss measurement, ACM SIGCOMM 2005.
Available at http://wail.cs.wisc.edu/. Written in C++ and Python.

fs

A flow-level network measurement generator and simulator.

Publications: Efficient Network-wide Flow Record Generation, INFOCOM 2011; Fast, Accurate Simulation for SDN Prototyping, HotSDN, 2013; Controller-agnostic SDN debugging, CoNEXT, 2014. Available at http://github.com/jsommers/fs.

Harpoon

A flow-level network traffic generator.

Publication: Self-configuring network traffic generation, IMC 2004. Available at http://github.com/jsommers/harpoon. See https://jsommers.github.io/harpoon for documentation.
Written in C++.

langtags

A Python module for parsing and validating IANA language tags.

Publication: On the characteristics of language tags on the Web, PAM 2018. Available at https://github.com/jsommers/langtags See also https://pypi.python.org/pypi/langtags

MACE

A Malicious tRaffic Composition Environment

Publication: A framework for malicious workload generation, IMC 2004. Note: Due to its sensitive nature, MACE is only available upon request.

MAD

A multi-user active measurement system

Publication: An Active Measurement System for Shared Environments, IMC 2007. Available upon request.

NetPath

Highly scalable path emulation software (e.g., propagation delays, packet drops, etc.). Built on the Click modular router.

Publication: Scalable network path emulation, MASCOTS 2005. Available at http://wail.cs.wisc.edu/.

pytricia

A Python-based longest-prefix match lookup library for v4 and v6 network addresses.

Built upon Dave Plonka’s patricia library. Works with both Python 2 and 3, supports v4 and v6, and is a bit faster than other libraries out there (including pyradix, and SubnetTree). See the github page for documentation and performance numbers. Can be installed through standard Python tools like pip (name: pytricia). Available at http://github.com/jsommers/pytricia.

SLAm

A tool for multi-objective active monitoring

Publication: A framework for multi-objective SLA compliance monitoring (INFOCOM 2007 minisymposium), and Accurate and Efficient SLA Compliance Monitoring (ACM SIGCOMM 2007). Available upon request.

SoMeta

A system for automatic collection and analysis of metadata for active network measurement experiments.

Publication: Automatic Metadata Generation for Active Measurement, IMC 2017. Most recent version of the code is available at https://github.com/jsommers/someta. The version described in the IMC 2017 paper is at https://github.com/jsommers/metameasurement.

SPLAT

A Scatter and Phase-pLot Animation Tool.

Publication: SPLAT: a visualization tool for mining Internet measurements, PAM 2006. Available at http://wail.cs.wisc.edu/. Documentation: https://jsommers.github.io/pubs/splat_manual.pdf.

Switchyard

A framework for facilitating systems-type projects in networking courses (or intro to systems courses). It’s a Python framework within which you write code to implement the logic for a network device such as a switch, router, or middle-device. It includes a comprehensive testing framework, and code can be deployed in live networks, too.

Publication: Lowering the Barrier to Systems-level Networking Projects , SIGCSE 2015. Available at https://github.com/jsommers/switchyard. Documentation at https://jsommers.github.io/switchyard.

yaz

An available bandwidth measurement tool developed through a laboratory calibration environment. The tool is named after the Boston Red Sox great, Carl Yastrzemski.

Publication: A proposed framework for calibration of available bandwidth estimation tools, ISCC 2006. Available at http://github.com/jsommers/yaz.