Software Defined

Marko Tišler
4 min readAug 24, 2016

--

Different people see SDN in different ways. This seems to be true throughout the tech industry, especially when you move horizontally through the organisation. But when we start throwing around different terms like Software Defined Networking (SDN), Network Function Virtualisation (NFV), virtual Network Function (vNF), Software Defined Radio (SDR), Software Defined WAN (SD-WAN), Software Defined Data Centre (SDDC), Software Defined Storage (SDS), we risk losing ourselves in all the acronyms and missing the point of what exactly is software defined and why we wanted it in the first place?

To understand that, we need to first take a look at network hardware design. Traditionally, network switches use application-specific integrated circuits (ASIC) to make forwarding decisions and move packets from an incoming port to outgoing port(s). Historically, ASICs have been more efficient at performing this function compared to a CPU, however, ASICs can only perform what they were designed to do and cannot be reprogrammed, which led to the development of Field Programmable Gate Arrays (FPGA). An FPGA can be reprogrammed by a software update after the device has already left manufacturing and is being used in the field. Unlike ASICs, these chips can be repurposed, but they are more expensive and while the performance may be a bit worse, it is still superior to letting the CPU handle packet forwarding decisions. When something is handled by the CPU, we normally say it is implemented in software, because somebody needs to write code, which is a set of CPU instructions, to perform a specific task. CPUs need to handle several applications and need to switch between different tasks, which results in slow forwarding decisions and poor network performance. Network devices have always been running software — just not for everything.

However, the CPUs, or should I say the x86 architecture, has become really fast. While it may not achieve the switching speed achieved by using ASICs or FPGAs, it may actually be good enough to start considering replacing purposed network devices with general purpose devices based on the x86 architecture. Why? Because a general purpose device can be a switch, a router, a firewall or all three at the same time. Why again? Because this would, in some cases, reduce the investment in hardware. In this case, the term software defined networking means that a function that was normally handled by specific hardware is now implemented as software and runs on the CPU(s). There is more to SDN than that though.

It also gets more complicated, when we introduce the concept of virtualisation. Virtualisation means we abstract the hardware and expose it to an operating system through something called a hypervisor. In that way, several operating systems can co-exist on the same physical hardware. The hardware is normally based on the general purpose x86 architecture. If we now take a router or a firewall that can perform its function without ASICs or FGPAs and run it on the hypervisor, the router or the firewall runs on software, relying on the underlying x86 CPU to do the work. Instead of software defined however, we call this Network Function Virtualisation. The virtual machine is not general purpose — it is still a firewall or a router and it performs a network function (hence the term virtual Network Function), but now several of these devices can share the same physical hardware.

The What?

So to understand the Software Defined, we need to ask, which key function is implemented in hardware and then ported into software. For example, if we ask what is a Software Defined Radio, we first need to understand how a radio is built. A radio has several hardware components like amplifiers, filters, mixers etc. However, the same functions can be implemented by digital signal processing, provided we can achieve fast enough sampling rate. For example, digital signal processing uses algorithms implemented as a set of instructions to the CPU to implement filters. In a software defined radio, ideally the only hardware components would be the antenna and the A/D converter.

The Why?

We also need to understand the why. Why would we want a software defined radio in the first place? The answer is: flexibility. For example, filters determine which part of the RF spectrum we are focusing on. If they are implemented in hardware, we cannot just decide we want a different part of the RF spectrum without replacing the filters. If the filters are implemented in software, we can change them to whatever we need. The same physical device can now either be a 3G/4G radio, a 2.4GHz WiFi radio, a 5GHz WiFi radio etc.

--

--

Marko Tišler

I like to take things apart and put them back together. I also like bikes. And snow.