StarFlow Telemetry System Paper Review



How to create a telemetry system based on the programmable forwarding engine, which achieves both flexibility and efficiency?


Traditional switch hardware are unable to provide fine-grain statistics and servers are hard to scale yet network bandwith has been increasing. Development in software-defined forwarding plane yet provides a new direction for telemetry systems.

Previous Work

Marple defines a high-level query language allowing querying on the PFE-accelerated measurement framework. It utilizes compiled queries for PFE so as to achieve flexibility. However, the compilation process would harm the concurrency.


This paper removes the barrier of compilation-induced overhead for change in measurement query. However, this paper still retains the high performance by ASIC hardware. Without optimization, *Flow still gains higher efficiency in resource use comparing to Marple.

The system works by decoupling the processing job into two parts. On reconfigurable ASICs, *Flow Cache conducts the common preprocessing task. These pieces of information are then sent to the server (Agent) for higher-level query processing (e.g. grouping).


Grouped packet vector stream that contains features for each packet is used to effectively communicate between cache and the agents. The author introduces Cache Eviction method which is to evict (to Agents) tracked flow if an untracked flow arrives and results in a collision. Additionally, Memory Allocation is proposed, which is to rollover buffer when a tracked flow is full. All these methods enable the *Flow to gain efficiency from the ASIC hardware.

Future Work

This problem is fully solved. However, there could still be improvement on reducing use of resource and increasing in flexibility as introduced by Sonata.