Platform Overview

RBFS allows customers to select their preferred hardware platforms. This document provides information about RBFS-supported hardware platforms and the features available on each platform. It also includes information on firmware versions, the feature support matrix, and resource limits. This guide helps you understand the various supported platforms and their capabilities and help you evaluate and choose the right platform for your needs.

The RBFS Software runs as an LXC container on the Linux host operating system (ONL), deployed on bare-metal switches. The switch can function independently as standalone unit leveraging all functionalities into a single platform or can be combined into a leaf-spine architecture for scalable deployments. The software supports Zero-Touch Provisioning (ZTP) installation and provides REST-based APIs for configurations and operations.

The guide is organized into the following sections:

  • Platform Overview: A high-level summary of the platforms.

  • Platform Hardware Information: Detailed specifications of the hardware, including CPU, ASIC, Form Factors, memory, storage, and network interfaces.

  • Firmware Versions: Information on supported firmware versions and their compatibility with RBFS.

  • Feature Support Matrix: Information about RBFS features supported on various platforms and for various roles.

  • Resource Limits/Feature Support: Details on resource allocation, such as maximum routes and interfaces.

The following image shows a high-level overview of the platform architecture.

platform overview

Platform hardware consists of forwarding ASICs and an Open Network Linux (ONL) operating system. A RBFS container that resides on top of this software includes all necessary packages to deliver access and routing protocols.

Supported Platforms

RtBrick’s software has been validated on the following hardware platforms.

Hardware Platform Role

Edgecore CSR320 (AS7316-26XB)

L2 Wholesale (L2BSA)

Edgecore CSR440 (AS7535-28XB)

Multiservice Edge

Edgecore AGR400 (AS7946-30XB)

Spine

Edgecore AGR420 (AS7946-74XKSB)

Access Leaf, Multiservice Edge

UfiSpace S9510-28DC

Multiservice Edge

UfiSpace S9500-22XST

L2 Wholesale (L2BSA)

UfiSpace S9600-32X

Spine

UfiSpace S9600-72XC

Access Leaf, Multiservice Edge

UfiSpace S9600-102XC

Access Leaf, Multiservice Edge

For a list of features and sub-features supported by each platform, see Feature Support Matrix.

End-of-Life Policy

RtBrick periodically introduces software support for new hardware platforms and use cases. Likewise, support for older software is discontinued to ensure that RtBrick can provide appropriate attention to software critical to drive business functions. The End-of-Life Policy page details the platforms that are no longer supported or have limited support from RtBrick.

Guidelines and Limitations

QAX-based Platforms
  • An additional restriction applies to ports belonging to a port group on QAX-based platforms. For more information, see section Guidelines and Limitations of the Interfaces User Guide.

  • MPLS forwarding is not supported on double-tagged interfaces. It is supported only on untagged and single-tagged interfaces.

Brick Daemon (BD)

RBFS runs multiple Brick Daemons (BD). Every application that runs within RBFS is fundamentally a brick daemon. For example, forwarding daemon (fibd), configuration daemon (confd), BGP (bgp.iod or bgp.appd), or interface management daemon (ifmd).

Brick Daemon (BD) Restartability

If a brick daemon fails (for a limited number of times), RBFS will restart it automatically. If the automatic restart does not succeed, you can use the Ubuntu system control to start a daemon.

For more information about troubleshooting the Brick Daemons, see section "2.2. Brick Daemons" of the RBFS NOC Troubleshooting Guide.

Setting Up System Parameters

You can configure basic host system parameters such as 'element name' and 'pod name' using the set system host command.

Syntax:

set system host <attribute> <value>

Attribute Description

element-name <element-name>

Specify the name of the element (container). A pod can contain a group of elements.

pod name <pod-name>

Specifies the name of the Pod. Pod stands for point (zone) of deployment.

nameserver

Specify the IP address of the DNS server. It is allowed to configure a maximum of three servers.

role

Specify the role of the element. Roles include Spine, Access Leaf, Border Leaf, and so on.

The hostname is defined in the DHCP server. The maximum length of the hostname is restricted to 64 characters.

Example: System Parameters Configuration

supervisor@rtbrick>LEAF01: op> show config system host
{
  "rtbrick-config:host": {
    "element-name": "ufi10.q2c.u9.r4.nbg.rtbrick.net",
    "pod-name": "nbg4"
  }
}

CPU Watchdog Timer Utility for Hardware Platforms

The CPU watchdog timer utility is located in BMC and helps to detect any CPU failure. It also enables the CPU to recover from faults. By default, Watchdog Timer functionality is enabled, and it does not require any configuration from users. However, you can configure it to change the default settings.

Enable CPU Watchdog Timer in Hardware

Use the following command to enable watchdog timer on the hardware.

Syntax:

set system platform-management watchdog CPU <attribute> <value>

Attribute Description

action

Specifies the possible timeout actions:

  • hard-reset: A reset will take place based on the configured settings.

  • no-action: No action will be taken.

  • power-cycle: The watchdog timer will power cycle the device.

  • shutdown: The device will shut down per the configured setting.

Default value: power-cycle.

interval

Specifies the watchdog timer interval in seconds. Default value: 1800 seconds.

Example: Enable CPU Watchdog Timer

supervisor@rtbrick>LEAF01: op> show config system platform-management watchdog
{
    "rtbrick-config:watchdog": [
      {
        "type": "CPU",
        "action": "hard-reset",
        "interval": 3600
      }
    ]
  }

You can use the ipmitool utility to view the status of the CPU watchdog timer.

Log into the ONL and enter the command as shown below to validate CPU watchdog timer functionality.

supervisor@onl>rtbrick:~ $ sudo ipmitool mc watchdog get
Watchdog Timer Use:     OS Load (0x43)
Watchdog Timer Is:      Started/Running
Watchdog Timer Actions: Power Cycle (0x03)
Pre-timeout interval:   0 seconds
Timer Expiration Flags: 0x00
Initial Countdown:      1800 sec
Present Countdown:      1795 sec

Displaying Platform Information

To display platform information, use the show platform command, as shown in the example below.

supervisor@rtbrick>LEAF01: op> show platform
x86_64-ufispace_s9600_72xc-r0
  Role                 : multiservice-edge
  Platform             : q2c(BCM88820_A1)
  External Processor   : OP2(X-0x1069a17f)
  Vendor               : Ufi Space
  Manufacturer         : Ufi Space
  Manufacture date     : 06/28/2021 10:51:29
  MAC address          : e8:c5:7a:8f:78:0d
  Part number          : S9600-72XC-RB6B
  Serial number        : WJ91B67T00009B3
  Product name         : S9600-72XC
  Onie version         : 2020.02v01
  Label revision       : N/A
  Diag version         : 0.1.4
  Country code         : CN
  • Information about external processors is displayed only for Q2C platforms and non-spine image roles. "N/A" displayed otherwise.

  • When using virtual platforms, the "show platform" CLI command does not provide any output.

Displaying RBFS Version Information

To display RBFS version information, use the show version command, as shown in the example below.

supervisor@rtbrick>LEAF01: op> show version
UUID        : 9368481c-4531-42ea-b7dd-ed1f44693e24
Version     : 25.1.0-g6daily.20250217161921+Bdevelopment.Ca42128c0
Role        : multiservice-edge
Platform    : q2c
Format      : lxd
Build date  : 2025-02-17 16:19:21 UTC

To display detailed version information for RBFS along with library versions, use the show version detail command, as shown in the example below.

supervisor@rtbrick>LEAF01: op> show version detail
UUID        : 9368481c-4531-42ea-b7dd-ed1f44693e24
Version     : 25.1.0-g6daily.20250217161921+Bdevelopment.Ca42128c0
Role        : multiservice-edge
Platform    : q2c
Format      : lxd
Build date  : 2025-02-17 16:19:21 UTC
Component                   Version                                                  Timestamp                Branch
alertmanager                ....0-g6daily.20241218185800+Bdevelopment.Ce27337d1      2024-08-21 06:42:34      development
cligen                      0.1.0-g6daily.20250123114818+Bdevelopment.C600e64ec      2025-01-23 08:47:43      development
clixon                      4.3.1-g6daily.20250217153657+Bdevelopment.Ca2f6b7a0      2025-02-14 05:33:15      development
ems-service-event           0.2.0-g6daily.20241218185813+Bdevelopment.Cf91a7d20      2024-11-06 14:09:41      development
etcd                        ....0-g6daily.20241218192158+Bdevelopment.C234591e7      2024-11-12 09:38:31      development
fwd-plugin-bcm-q2c-s96...   4.2.0-g6daily.20250217155339+Bdevelopment.C44d58fa2      2025-02-17 14:47:42      development
hostconfd                   ....0-g6daily.20250217153014+Bdevelopment.C7238110b      2025-02-17 11:05:17      development
hostnetconfd                0.6.0-g6daily.20241219102010+Bdevelopment.Ce4b93935      2024-12-19 10:19:55      development
json-builder                0.1.0-g6daily.20241218190227+Bdevelopment.Cab48d5f3      2024-02-27 19:42:08      development
json-parser                 1.1.0-g6daily.20241218185818+Bdevelopment.Cde3044f9      2024-02-27 19:42:09      development
libbgp                      1.2.0-g6daily.20250217155306+Bdevelopment.Ce151c5f9      2025-02-14 04:43:33      development
libcjson                    1.0.0-g6daily.20241218185809+Bdevelopment.Ca555247b      2024-02-27 19:42:00      development
libconfd                    1.1.1-g6daily.20250217154029+Bdevelopment.C33c52583      2025-02-13 11:54:00      development
libdict                     1.0.1-g6daily.20241218185819+Bdevelopment.C19540f37      2024-11-12 09:38:29      development
libegrep                    1.1.0-g6daily.20241218185824+Bdevelopment.C1643b0eb      2024-11-06 14:32:37      development
libforwarding               4.2.0-g6daily.20250217154606+Bdevelopment.C44d58fa2      2025-02-17 14:47:42      development
libh2o                      2.2.6-g6daily.20241218191420+Bdevelopment.Ca85b1f6b      2024-11-25 12:07:00      development
libigmp                     1.1.0-g6daily.20250217154255+Bdevelopment.C0f2c2cf8      2024-11-12 09:38:29      development
libisis                     1.2.0-g6daily.20250217155306+Bdevelopment.C70f6f560      2025-02-07 11:45:28      development
liblacp                     0.2.0-g6daily.20250217160755+Bdevelopment.Cfabe7d2b      2025-02-11 09:57:09      development
libldp                      0.3.0-g6daily.20250217154026+Bdevelopment.C2fe224c6      2025-02-07 11:45:31      development
liblldp                     1.1.1-g6daily.20250217160755+Bdevelopment.C42c7cc74      2025-02-12 04:26:15      development
liblwip                     1.2.0-g6daily.20250207114919+Bdevelopment.C43081b5d      2025-02-07 11:49:02      development
libnat                      1.3.0-g6daily.20250217154255+Bdevelopment.C6e862a61      2025-02-14 11:23:02      development
libng-access                1.2.0-g6daily.20250217154257+Bdevelopment.C35d3c06b      2025-02-12 09:47:42      development
libospf                     1.4.0-g6daily.20250217155311+Bdevelopment.C2a9abbfa      2025-02-11 09:00:56      development
libpim                      1.2.0-g6daily.20250217155306+Bdevelopment.Cb3365ef7      2025-02-07 11:46:04      development
libpolicycog                1.3.0-g6daily.20250217153858+Bdevelopment.C510d7ed8      2025-02-07 11:46:01      development
libpoold                    1.2.0-g6daily.20250217153655+Bdevelopment.Cd7615cc8      2025-02-07 11:45:58      development
libprotocolinfra            1.2.0-g6daily.20250217141154+Bdevelopment.C0c06016e      2025-02-17 14:11:20      development
librd                       0.2.0-g6daily.20250210203745+Bdevelopment.C40f1d882      2024-11-06 15:40:27      development
libresmon                   1.1.1-g6daily.20250217154029+Bdevelopment.C055060ea      2025-02-07 11:46:42      development
librtbshark                 1.1.0-g6daily.20250217153701+Bdevelopment.Cf0bbd31f      2024-11-12 09:38:28      development
<...>

Configuring Platform Profiles

Network operators can determine ASIC scale profiles and features to meet their specific business requirements. Currently, the platform profile configuration is supported on the Multiservice Edge image on the Q2C and Q2A platforms. The profiles can be viewed using the "show platform-profile" command.

Guidelines & Limitations

  • The system only allows the configuration of the profiles and features it supports.

  • This system allows to configure any one of the supported profiles.

  • You can configure multiple features for one profile.

  • You can make changes to the features, such as removing or modifying them.

  • To activate the configuration changes, system reboot is required.

Platform Profile Support

Platform Supported Profile Supported Features Default

Q2C Multiservice Edge

nat_1q, nat_4q

ipoe-n-1

nat_4q

Q2A Multiservice Edge

1q, 4q

ipoe-n-1, access-multifield-classifier

4q (ipoe-n-1)

To configure profile for a specific platform, use the command below.

Syntax:

set system platform profile <profile_name[1-64]>

Attribute Description

<profile-name>

Specifies the profile that you want to activate. The new platform profile will be activated only after a system reboot

feature <feature>

Specifies the feature that enabled along with the profile.

ipoe mode

Choose the desired redundancy mode: standby-forwarding or standby-non-forwarding.

Example: Enabling the feature ipoe-n-1 for the profile nat_1q

supervisor@switch: cfg> set system platform profile nat_1q feature ipoe-n-1
"rtbrick-config:system": {
      "platform": {
        "profile": [
          {
            "profile_name": "nat_1q"
          }
        ]
      }
    }

"rtbrick-config:system": {
      "platform": {
        "profile": [
          {
            "profile_name": "nat_1q",
            "feature": [
              "ipoe-n-1"
              ]
          }
        ]
      }
    }

Example: Enabling the redundancy mode for the profile nat_1q

supervisor@switch: cfg>set system platform profile nat_1q ipoe-mode standby-non-forwarding
platform": {
        "profile": [
          {
            "profile_name": "nat_1q",
            "feature": [
              "ipoe-n-1"
              ],
            "ipoe-mode": "standby-non-forwarding"
          }
        ]
      }

To view the profiles configured for a platform after reboot, use the show platform-profile command as shown in the example below

Example: Viewing Platform Profile on the Q2A Platform

supervisor@rtbrick>LEAF01: op>show platform-profile
Platform-profile: 4q
  Role: multiservice-edge
  MDB Profile: custom_q2a_scale_4q
    Counter Profile: multiservice_edge
  Features: -|ipoe-n-1|-|-
supervisor@rtbrick>LEAF01: op>show platform-profile
Platform-profile: nat_4q
  Address Translation Service: True
  Role: multiservice-edge
  MDB Profile: custom_q2a_scale_nat
    Counter Profile: multiservice_edge_nat_extend
  Features: -|ipoe-n-1|-|sflow

Example: Viewing Platform Profile on the Q2C Platform

supervisor@rtbrick>LEAF01: op> show platform-profile
Platform-profile: nat_4q
  External Processor Variant: OP2_M
  Address Translation Service: True
  Role: multiservice-edge
  MDB Profile: custom_rtb_multiservice_edge_nat
    Counter Profile: multiservice_edge_nat_extend
    Forwarding Routes on External Processor: False
    Ingress Accounting is External: False
    Egress Accounting is External: True