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

Existing debugging systems based on in-network monitoring are often limited by the available data plane resources (switch memory and/or network bandwidth), thus have to rely on sampling or approximate counters; not accurate enough to diagnose the network problems. In a sharp contrast to these approaches, where switches store the telemetry data necessary to monitor and debug network problems, SwitchPointer switches store pointers to end-hosts where the relevant data is stored. In SwitchPointer, distributed switch storage operates as a distributed directory service rather than a data store. It allows SwitchPointer to efficiently debug many short-lived performance problems (e.g., high end-to-end delays, packet drops) 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.