  This paper presents a practical approach to rapidly introduce new dataplane
functionality into networks: End-hosts embed tiny programs into packets to
actively query and manipulate a network's internal state. We show how this
"tiny packet program" (TPP) interface gives end-hosts unprecedented visibility
into network behavior, enabling them to work with the network to achieve a
common goal. Our design leverages what each component does best: (a) switches
forward and execute tiny packet programs (at most 5 instructions) at line rate,
and (b) end-hosts perform arbitrary computation on network state, which are
easy to evolve. Using a hardware prototype on a NetFPGA, we show our design is
feasible, at a reasonable cost. By implementing three different research
proposals, we show that TPPs are also useful. And finally, we present an
architecture in which they can be made secure.
