Rule-Caching Algorithms for Software-Defined Networks
- Publication date
- Publisher
Abstract
Software-Defined Networking (SDN) allows control applications to install fine-grained forwarding policies in the underlying switches, using a standard API like OpenFlow. Highspeed Ternary Content Addressable Memory (TCAM) allows hardware switches to store these rules and perform a parallel lookup to quickly identify the highest-priority match for each packet. While TCAM enables fast lookups with flexible wildcard rule patterns, the cost and power requirements limit the number of rules the switches can support. To make matters worse, these hardware switches cannot sustain a high rate of updates to the rule table. In this paper, we show how to give applications the illusion of highspeed forwarding, large rule tables, and fast updates by combining the best of hardware and software processing. Our CacheFlow system “caches ” the most popular rules in the small TCAM, while relying on software to handle the small amount of “cache miss ” traffic. However, we cannot blindly apply existing cache-replacement algorithms, because of dependencies between rules with overlapping patterns. Rather than cache large chains of dependent rules, we “splice ” long dependency chains to cache smaller groups of rules while preserving the semantics of the policy. Experiments with our CacheFlow prototype—on both real and synthetic workloads and policies—demonstrate that rule splicing makes effective use of limited TCAM space, while adapting quickly to changes in the policy and the traffic demands. 1