Infinite CacheFlow in Software-Defined Networks
Software-Defined Networking (SDN) enables firewalls, load balancers, routers, traffic monitoring, and other functionality to be built using commodity hardware. While Ternary Content Addressable Memory (TCAM) enables OpenFlow switches to process packets at high speed based on multiple header fields, today?s commodity switches support just thousands to tens of thousands of rules. To realize the potential of SDN on this hardware, we need efficient ways to support the abstraction of an infinite switch. To do so, we define a new hardware-software architecture called CacheFlow. In designing CacheFlow, we observe that any infinite SDN switch must satisfy four core criteria: (1) elasticity (combining the best of hardware and software switches), (2) transparency (supporting native OpenFlow semantics faithfully), (3) fine-grained rule caching (placing popular rules in the TCAM, despite dependencies on less-popular rules), and (4) malleability (to enable incremental changes to rule caching as traffic demands change). We propose a new architecture called CacheFlow that, unlike previous caching systems, supports all these properties while rewriting, reordering and caching important switch rules using a novel set of algorithms specifically tailored for the challenges and opportunities in SDN.