RtBrick's FullStack routing software is a new way to build and run your network, applying a cloud-native approach to deliver multiservice edge routing software that is more robust, more controllable and costs far less than a conventional network. Disaggregating your routing software from hardware allows you to build a lower-cost and more flexible network, using software that delivers at carrier-scale.

Multservice Use-Cases and Applications

RtBrick's modular code makes it suitable for many use-cases that require robust and highly scalable IP/MPLS routing, including:

The code can be provided in an image that provides different combinations of edge services, as required.


How do we make this work?

We’ve done three fundamental, new things that have changed everything:

  1. We’ve used one ‘state database’ in each network element (separated from run-code)
  2. We’ve created ‘composable’ code – built from simple blocks
  3. We’ve used ‘cloud-native’ design principles: with independent microservices running in Linux containers

One state-database – a massive simplification

In the past, limitations in silicon performance meant that routing code had to optimize for CPU and memory utilization. This led to hundreds of different state databases in each router, each optimized for a different job. But we’ve replaced all of these with a single database, operating independently from run-code. This has brought a huge gain in simplicity.

  • ~1000 times fewer database interactions to manage
  • It’s more robust - everything is versioned and preserved in one place, enabling fast restart and re-sync of state
  • We can scale by using hundreds of processor cores - this is how the cloud-natives scale (Amazon uses 128 cores in a server). Even mobile phones can do that, yet traditional routers can’t!
  • It’s easier to program, with every element exposed to higher level systems via a single interface
  • And this simplicity makes it possible to automate the testing of every feature to reduce the risk of bugs

Modular 'composable' code – deploy only what you need, test everything you use

We’ve taken an approach to our software that is native to virtual IT environments. You get your own unique code-version, built from discrete blocks and delivered as a Linux container. Your code is no longer bloated with features that you don’t use. This allows us to upgrade or add each feature independently, in sub-milliseconds, with no service disruption. As a result, route-processing, updates and restart is 20x faster than traditional operating systems. And we publish open interfaces – so you can even develop your own unique features if you want to.

From Carrier-Grade to Web-Scale – the cloud-native approach

Rather than try to build an unattainable flawless system, we’ve taken a web-scale approach and focused on self-healing systems.

Our composable code and single state database makes it easier to contain risk. For example, we can isolate different routing universes (such as public and enterprise networks) and watchdogs can detect issues and redeploy software if needed. And it’s inherently simpler to control, as we’ve replaced a ‘full-mesh’ of logical relationships between the control system and many network element databases with single links.

Resulting in a simpler, safer, lower-cost operating environment

You can manage your whole network from a single browser window. And you get automation straight out-of-the-box. Simply power-on your bare metal switches and they will self-register, download the correct software image, discover their topology and all microservices self-start. Automated software version management reduces risk of human error, and new microservices can be updated and tested independently of other operating software. The system also includes tools to simplify repair, such as ‘clone a switch’ for zero-touch replacement of broken hardware. And there’s in-depth alarm and status management, with thresholds and abnormalities automatically flagged: from data rates to fan speeds. You can glue this into your existing OSS using our consumer-driven Management API, which can create a client in your choice of programming language.

Is this like CUPS?

RtBrick's software is compatible with CUPS (Control and User Plane Separation). The control plane is independent of the forwarding (or user) plane. The difference is that the control plane is usually collocated with the forwarding plane on the same bare-metal switch, taking advantage of the x86 processors that the switch already provides. But the two don't have to be collocated. For example, RtBrick's high availability solution uses the control plane of one switch to control the user plane of a remote failover switch and share state in real-time between them. The control plane could be run remotely on dedicated x86 infrastructure, using RtBrick's state synchronisation protocol to communicate between the two. But compared to using a centralized Control plane, a distributed system does bring certain benefits. It is:

  • Lower risk – a highly distributed control system is more robust and can contain any ‘blast radius’
  • More scalable – unrestricted by the I/O limits of a single controller
  • Easier to operate and migrate - network elements can work side-by-side with legacy routers, and can even be controlled by a classical SDN system

Products

The software is available in a number of discrete products, such as a BNG (Broadband Network Gateway) and a PE Router (Provider Edge).

Features

The features supported by RtBrick FullStack are expanding all the time, because it's much faster for us to add and test new features than it is using a traditional monolithic code base. Currently supported features include:

Features *BNGPE Router



General

Routing Policy
LDP
L2X
BGP

IPv4
IPv6
LU-v4
LU-v6
VPNv4
VPNv6
Add-path
Multi-path
Multi-hop
Segment Routing
4-Byte AS
TCP-AO
ISIS

IPv4
IPv6
Segment Routing
OSPFv2

IPv4
IPv6

Segment Routing
Forwarding Plane

VPP
ACLs (IPv4/6, L2)
QoS (policing, scheduling, queuing, hierarchical)
Access

Radius support
PPPoE
IPoE


L2TPv2(L3BSA)
L2BSA - L2 Bitstream Access
Accounting (Time/Volume based)
IPTV

Multicast - PIM, MVPN, IGMP v2/3 (all partial RFC compliance)
Multicast - SSM Mapping
Radius integration for subscriber channel policy, blacklisting and whitelisting
Sub-second channel zap time
Preview up to 15 other channels
Preview up to 15 other channels
IPTV usage statistics
CGNAT

CGNAT 444

Operations

ResmondD (RtBrick resource monitoring application)
CLI
REST API
RESTCONF

SNMPv2C/v3

ZTP Provisioning
RBMS (RtBrick Management System)

Rules Engine
Topology Discovery & Inventory
REST API
Microservice
Dynamic Service Selection



* may include some road-map features

Compatible Hardware

RtBrick's Full Stack routing software can operate on many bare metal switches, depending on your performance and port count requirements. You can find details of compatible hardware here