Authors: Vimalkumar Jeyakumar (Stanford University), Mohammad Alizadeh (Insieme Networks), Changhoon Kim (Windows Azure), David Mazieres (Stanford University).
With efforts such as OpenFlow, network operators have been able to exercise a great deal of control and programmability in the control plane, but the data plane has been a good deal less flexible. Tasks such as congestion control are better handled in the hardware of the data plane, but it takes years to develop improvements here. Similarly, control plane tasks are too slow to satisfy some monitoring needs and lack context in debugging.
Any programmable protocol for the data plane is bound by stringent performance needs and would ideally be capable of handling relatively complex tasks, such as control protocols (e.g., RCP).
This paper proposes a system by which end-hosts can write a set of very simple instructions and embed it in a packet that is executed on the data plane. These instructions, known as a Tiny Packet Programs, have access to all switch memory in hardware. A TPP can load statistics from the switch, resulting in the data being embedded in the exiting packet. Once read, another end-host can use this data to write a new TPP and affect network policy.
Q: What about malicious hosts inserting TPP's in their packets
A: All TPP's can be stripped from packets originating from untrusted sources.
Q: Is this comparable to dedicated RCP hardware.
A: They are not comparable. TPP systems may have more information. They do not have to send TPP with each packet.
Q: You mention the naming of certain variables to fetch data from the switch's memory, but ASICS do not have uniform memory layouts.
A: For simplication in the talk devices were assumed to be homogenous, but this is not true in reality. Hopefully vendors will give data sheets that allows creation of a memory map. Ultimately some standardization would be helpful but not necessary.