Fabric As A Service

Project type: Main

FaaS is an interesting component of ODL. It creates a common abstraction layer on top of a physical network. This makes it easy for you to map the northbound API and the real physical network his mk according to their own needs even if they don't have too muc the real physical network  .

SDN (Software defined Networking) allows users and administrators to define a logical network according to their own needs even if they don't have too much of information about the physical details or the vendor CLI commands. A network is an infrastructure that could provide network services, such as connectivity, QoS, and policy, to applications. The language used to define a networking infrastructure should be unified and simple. It should focus on networking and should only declare networking needs and nothing else.

FaaS defines the following top-level basic abstracted network primitives and presents them to users over northbound APIs:

  • Logical switch
  • Gateway
  • Logical router
  • Tunnel between the logical switch and logical router
  • ACL

The common abstraction layer that FaaS provides builds a model of the physical network as a topology that consists of abstracted nodes and fabrics (physical or virtual).

Fabric is an abstraction; it is a portion of the network. Normally, it is within the same control plane and uses technologies such as VXLAN or VLAN. Every fabric offers a set of unified services as well as primitive constructs to create and manage a logical network based on user requirements.

For example, you can build an SDN application to use FaaS or create a VLAN between five racks in a data center. As a network programmer, you just need to declare how the fabric (in this example, layer 2 VLAN) should look. FaaS will do the rest. It will find out how the physical switches in the network are configured and which southbound protocols do they support (when it uses DIDM). After doing this, it will deliver an outcome which will be the VALN fabric you requested for.

Applications built on top of FaaS can use high-level primitives to build a network. For example, using FaaS to build applications is like using a C library other than an assembly to program a machine.

Currently, as you know, network applications and administrators mostly rely on low-level interfaces, such as CLI, SNMP, OVSDB, NETCONF, or OpenFlow, to directly configure individual devices for network service provisioning. As a core feature of ODL and SDN, FaaS provides an abstraction of the network topology that could work with any underlying network gear and vendor. This means that as a network programmer, you only need to learn how to build SDN applications or use the APIs; there is no need to either use or learn complex CLI commands of vendors such as IOS, Junos OS, EOS, Comware, and so on.

FaaS tries to provide fabric abstraction of the physical network. Using this abstraction, FaaS presents devices, vendors, or network details, such as control and optimization, into bigger building blocks. This is illustrated by the term fabric in the following diagram  . Each fabric provides common network services; these include L2/L3 routing and switching, connectivity, Quality of Services (QoS), and security and access controls. In  traditional networking we used to configure each and every network device individually, however with FaaS, you can build and an application to configure network components such as routers and switches.

A simple network could just be a fabric, such as VXLAN. In reality though (as in the preceding diagram), a network usually consists of multiple fabrics, such as VXLAN fabric, VLAN, TRILL/SPB, and so on. Hence, FaaS not only defines services within a fabric, but also provides services across multiple heterogeneous fabrics.