Linearizability: a correctness condition for concurrent objects
ACM Transactions on Programming Languages and Systems (TOPLAS)
Towards an Active Network Architecture
DANCE '02 Proceedings of the 2002 DARPA Active Networks Conference and Exposition
Why flow-completion time is the right metric for congestion control
ACM SIGCOMM Computer Communication Review
OpenFlow: enabling innovation in campus networks
ACM SIGCOMM Computer Communication Review
Abstractions for network update
Proceedings of the ACM SIGCOMM 2012 conference on Applications, technologies, architectures, and protocols for computer communication
Where is the debugger for my software-defined network?
Proceedings of the first workshop on Hot topics in software defined networks
Veriflow: verifying network-wide invariants in real time
ACM SIGCOMM Computer Communication Review - Special october issue SIGCOMM '12
Real time network policy checking using header space analysis
nsdi'13 Proceedings of the 10th USENIX conference on Networked Systems Design and Implementation
Forwarding metamorphosis: fast programmable match-action processing in hardware for SDN
Proceedings of the ACM SIGCOMM 2013 conference on SIGCOMM
Hi-index | 0.00 |
Networking researchers and practitioners strive for a greater degree of control and programmability to rapidly innovate in production networks. While this desire enjoys commercial success in the control plane through efforts such as OpenFlow, the dataplane has eluded such programmability. In this paper, we show how end-hosts can coordinate with the network to implement a wide-range of network tasks, by embedding tiny programs into packets that execute directly in the dataplane. Our key contribution is a programmatic interface between end-hosts and the switch ASICs that does not sacrifice raw performance. This interface allows network tasks to be refactored into two components: (a) a simple program that executes on the ASIC, and (b) an expressive task distributed across end-hosts. We demonstrate the promise of this approach by implementing three tasks using read/write programs: (i) detecting short-lived congestion events in high speed networks, (ii) a rate-based congestion control algorithm, and (iii) a forwarding plane network debugger.