We present insights on the novel design principles of the TeraFlowSDN, which builds on a highly disaggregated service-based architecture design with loosely coupled - thus fully-independent - network operating system (NOS) components implemented as cloud-native microservices with unprecedented performance, scalability, and dynamicity. The TeraFlowSDN components are classified into two categories, namely core OS components and overlay netapps. All of these components implement state-of-the-art programming language-agnostic communication interfaces (i.e., gRPC) to form a powerful NOS that provides smart connectivity services atop the most advanced programmable networking infrastructures to date, including P4, OpenConfig, TAPI, etc.

TeraFlow does not only pave the way to SDN disaggregation, but also provides elevated policy and stakeholder-driven SDN automation features. Specifically, TeraFlow Automation leverages important system events to realize service and device (re)configuration in a zero-touch manner, thus greatly contributing to reduced operational expenses for network operators.

We intuitively explain the role of each core TeraFlowSDN component by highlighting their key features, component interactions and placement within the TeraFlowSDN architecture shown in the following figure.

Image
Teraflow SDN core components

Context component: stores the configurations and attributes (e.g., topologies, devices, links, and services) of the different network elements managed by the TeraFlowSDN, acting as a dynamic network information base.

Monitoring component: provides a database for storing monitoring information (i.e., metrics and/or KPIs) from the Device component and relevant events from the Context component along with an API for interacting with the monitoring database via pub-sub calls.

Device component: interacts with the networking equipment through a plugin-based driver API which allows developers to implement protocols & data models for different device types, including (but not limited to) P4, OpenConfig, TAPI, & ONF TR-532/IETF mmWave devices.

Service component: manages the life-cycle of connectivity services via a plugin-based service handler API that supports different data models, configuration protocols and service types, including (but not limited to) L2-VPN, L3-VPN, TAPI, and ACLs.

TE component: establishes and optimizes segment routing paths in the infrastructure exposed by the Device component and the topology exposed by the Context component.

Policy component: evaluates policy statements in the form of event-condition-action service-level objectives (via the Monitoring component) and initiates service (re)configuration when a policy violation is detected (via the Automation and Service components).

Automation component: provides zero-touch device and service (re)configuration as a service to TeraFlowSDN and/or external systems.

Slice component: manages transport network slices both at the optical and packet domains and associates those slices with isolation and SLA requirements.

Compute component: acts as a wide area network infrastructure manager (WIM) that maps connectivity service calls by external NFV orchestrators (e.g., OSM) to TeraFlowSDN Service calls.

DLT component: establishes a blockchain network of multiple TeraFlowSDN domains and facilitates the peering of TeraFlowSDN nodes with the blockchain.

The core TeraFlowSDN components are implemented as Java (Automation and Policy) and Python (the rest) microservices, deployed on top of a Kubernetes-based environment at the CTTC premises in Barcelona, Spain.

More information can be found at the official TeraFlow web page and the public TeraFlowSDN source code repository.