CASTAN: Cycle Approximating Symbolic Timing Analysis for Network Functions

 CASTAN Poster @ SIGCOMM'18

Software network functions promise to simplify the deployment of network services and reduce network operation cost. However, they face the challenge of unpredictable performance. Given this performance variability, it is imperative that during deployment, network operators consider the performance of the NF not only for typical but also adversarial workloads. We contribute a tool – CASTAN – that helps solve this challenge: it takes as input the LLVM code of a network function and outputs packet sequences that trigger slow execution paths. Under the covers, it combines directed symbolic execution with a sophisticated cache model to look for execution paths that incur many CPU cycles and involve adversarial memory-access patterns. We used our tool on 11 network functions that implement a variety of data structures and discovered workloads that can in some cases triple latency and cut throughput by 19% relative to typical testing workloads.

CASTAN attacks performance on three fronts:

1. Algorithmic Complexity, which induces more instructions per packet;
2. CPU Cache Hierarchy, which induces more DRAM accesses and thus more cycles per instruction;
3. Reversing Hash-functions, which exposes data-structure internals and allows the the first two techniques to take hold.

As a result, CASTAN is able to automatically generate adversarial workloads, in the form of PCAP files, which induce poor performance in the network function. This helps both developers and network operators to debug performance issues and provision resources defensively.

Luis Pedrosa, Rishabh Iyer, Arseniy Zaostrovnykh, Jonas Fietz, and Katerina Argyraki; Automated Synthesis of Adversarial Workloads for Network Functions. In Proceedings of the ACM Conference of the Special Interest Group on Data Communication (SIGCOMM'18). 2018

Luis Pedrosa, Rishabh Iyer, Arseniy Zaostrovnykh, Jonas Fietz, and Katerina Argyraki; Automated Synthesis of Adversarial Workloads for Network Functions. Presented at The ACM Conference of the Special Interest Group on Data Communication (SIGCOMM'18), Budapest, Hungary. 2018

Luis Pedrosa, Rishabh Iyer, Arseniy Zaostrovnykh, Jonas Fietz, and Katerina Argyraki; Automated Synthesis of Adversarial Workloads for Network Functions. Presented at The Intel ISRA SDN/NFV Retreat, Hillsboro, OR, USA. 2018

Luis Pedrosa, Rishabh Iyer, Arseniy Zaostrovnykh, Jonas Fietz, and Katerina Argyraki; Automated Synthesis of Adversarial Workloads for Network Functions. Presented at the ACM Conference of the Special Interest Group on Data Communication (SIGCOMM'18). 2018

Getting the Source

The CASTAN source code is hosted on the NAL GitHub project website. To create a local copy of the repository run:

git clone https://github.com/nal-epfl/castan.git


People

• Luis Pedrosa (EPFL)
• Rishabh Iyer (EPFL)
• Arseniy Zaostrovnykh (EPFL)
• Jonas Fietz (EPFL)
• Katerina Argyraki (EPFL)