Today’s networking industry is grappling with some profoundly important questions. One question that comes up frequently is centered on the first of the three fundamental networking technology building blocks: Silicon, Systems, and Software.
Q: What’s the best silicon engine to solve today’s most pressing network challenges?
Custom network processors such as those developed by Juniper
Merchant network processors (e.g. Broadcom and Marvel)
General purpose processors (CPUs such as Intel x86 or ARM).
The correct answer is that we need them all.
Let’s take a closer look. Networking can be divided into four distinct functions, often referred to as ‘networking planes’: management, control, services, and data. Partitioning networking elements, like switches and routers, into these distinct planes is essential for a variety of reasons. One of the most important reasons is that there is no single silicon engine type that is optimal for all networking planes and for all networking use cases.
At Juniper, we live by a set of engineering principles (see box) that guide our innovation and development. If you live by these principles, then the decision of which silicon engine type to use and where to use it becomes clear.
ENGINEERING PRINCIPLE #1: Partition around clear, stable interfaces
By partitioning around clear, stable interfaces we enable networking equipment to use the optimal engine for each plane. The interfaces between planes can exist within a modern networking element or between layers of an SDN network which disaggregates the planes into distinct network layers.
Juniper’s first product, the M40, leveraged a Pentium-class x86 processor for control and management. Although this approach was novel at the time in the late 1990s, it has become common practice in the industry today. Control and management functions have relatively high processing and low packet forwarding requirements that make them ideal for CPUs.
To keep things simple, I’ll limit the definition of services to stateful L4-L7 services such as security, load balancing, and network address translation. Companies like Broadcom/Netlogic and Cavium have developed highly programmable silicon with hardware acceleration functions that have served such services well historically. More recently, advances in CPU (x86) performance have made these processors very suitable for high-complexity stateful services, especially in scale-out service delivery architectures that leverage Network Function Virtualization.
That brings us to the data plane. The determination of an optimal silicon engine for the data plane involves a multidimensional tradeoff of factors including capital cost, power consumption, footprint, packet processing performance, packet forwarding performance, and programmability. Each type of silicon (custom, merchant, or CPU) occupies a different sweet spot in a continuum of tradeoffs between each of these dimensions. For example, CPUs are excellent for high performance packet processing but will not be cost effective or power/space efficient for high-performance packet forwarding. On the other hand, custom and merchant silicon, are both ideal for high performance packet forwarding, but each optimizing a different balance of programmability, power efficiency, and packet processing performance.
ENGINEERING PRINCIPLE #2: Use high-volume components wherever possible
At Juniper we are very proud of the silicon developed in-house to fuel some of the most successful products we’ve ever built like our MX Universal Edge Router. But we also live true to our second engineering principle: leveraging high-volume components wherever possible. If we can find merchant silicon that achieves our design objectives, we will combine such silicon with our Junos operating system to maximize its capabilities. If we can satisfy a customer use case by leveraging CPUs for the data plane, then that’s exactly what we’ll do. If there’s a high-performance networking problem that requires our own silicon innovation, I believe that we are very fortunate to have the team that can accomplish just that.
In fact, you’ll see examples of each approach on Juniper’s price list today (see table):
High performance, scale, deep buffering, and QoS coupled with vast flexibility and programmability to satisfy many different use cases
High performance density and low latency in a cost-effective package
Ultimate software-driven flexibility coupled with dynamic scale-out performance
ENGINEERING PRINCIPLE #3: Let technology set the limits, not preconceptions
The silicon landscape is constantly evolving. Products designed by the Juniper Development & Innovation team leverage the bleeding edge of all three types of silicon engine: custom, merchant and CPU. You can count on Juniper to continue to approach each new development project with a clean sheet of paper letting technology set the limits, not preconceived notions of what’s possible and what’s not.