• Distributed network monitoring and debugging with SwitchPointer [NSDI’18]

Many existing debugging tools are based on in-network monitoring approaches that are limited by the available switch resources, thus have to rely on sampling or approximate counters which are often not accurate enough for revealing the problems. In a sharp contrast to these approaches, where switches store the data necessary to monitor and debug network problems, SwitchPointer switches store pointers to end-hosts where the relevant data is stored. The key design choice of thinking about network switch storage as a directory service rather than a data store allows SwitchPointer to efficiently solve many application performance problems (e.g., due to packet loss, congestion, and timeouts) that are hard or even infeasible for existing systems.

  • Simplifying network debugging with PathDump [OSDI’16]

Data center networks are complex and the tools to debug these networks are even more complex. PathDump is an end-host based debugger that simplifies network debugging with minimal in-network functionality; free from complex operations like per-packet log generation, dynamic rule updates, packet sampling, packet mirroring, etc. Yet, PathDump allows to debug large class of network problems, and keeps already complex networks and corresponding debugging tools as simple as possible.

  • Fault localization in large-scale network-policy deployment [techreport]

Debugging network policy deployment failures takes time (minutes to hours). Network admins require a fully-automated means that quickly nail down to the part of the policy they should look into in order to fix a large number of observed failures. Addressing this problem, we build Scout, an end-to-end system that localizes part of the policy that becomes faulty, and also points the network admins to the physical-level failures behind the faults.

  • Tracing packet trajectory in software-defined datacenter networks [SOSR’15]

A particularly interesting problem in SDN debugging is to be able to reason about flow of traffic (e.g., tracing individual packet trajectories) through the network. Such a functionality enables several network measurement and debugging tasks such as measuring traffic matrix, localizing network failures, or simply ensuring that forwarding behavior at the data plane matches the policies at the control plane. In this project, we design CherryPick, a simple and scalable packet trajectory tracing technique for SDN-enabled datacenter networks. The main idea in CherryPick is to exploit the structure in datacenter network topologies to minimize number of switch flow rules and packet header space required to trace packet trajectories.