Platform Overview

The RtBrick FullStack (RBFS) software runs as a LXC container on a Linux host operating system in the bare-metal switches, which are capable of Layer 2 and Layer 3 switching. Multiple switches can be combined to support several subscribers using a leaf and spine architecture or deployed as a standalone unit using the consolidated BNG approach. Additionally, the ZTP (Zero-Touch-Provisioning) and REST-based APIs that expose the state of the system are also supported.

The image below 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.

This guide looks at the platform features, the different supported hardware platforms, and features that are supported on each hardware platform.

Supported Platforms

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

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.

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 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                 : consolidated-bng
  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        : a54edaa0-29ab-4ffe-ac6a-82775016c677
Version     : 23.8.1-candidate.0
Role        : consolidated-bng
Platform    : q2c
Format      : lxd
Build date  : 2023-08-22 10:48:50 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        : a54edaa0-29ab-4ffe-ac6a-82775016c677
Version     : 23.8.1-candidate.0
Role        : consolidated-bng
Platform    : q2c
Format      : lxd
Build date  : 2023-08-22 10:48:50 UTC
Component                         Version                                                  Timestamp                  Branch
alertmanager                      0.24.0-xdaily.20230818085706+Cfa52d276                   2023-07-04 08:22:19        master
cligen                            0.1.0-xdaily.20230818085715+Ccd1eae0c                    2023-06-13 10:08:18        master
clixon                            4.3.1-xdaily.20230821154020+Ca22bfa87                    2023-08-18 05:04:44        master
ems-service-event                 0.1.0-xdaily.20230818090808+C3ace4161                    2023-06-02 12:32:04        master
etcd                              0.9.1-xdaily.20230821154544+Cd4e0a651                    2023-06-12 10:46:20        master
fwd-plugin-bcm-q2c-combined-cbng  2.0.3-xdaily.20230822104744+C5ef9e1b7                    2023-08-21 16:33:00        master
fwd-plugin-bcm-q2c-s9600-72xc-cbng  2.0.3-xdaily.20230821165134+C5ef9e1b7                  2023-08-21 16:33:00        master
hostconfd                         0.6.0-xdaily.20230818085705+C05f4a7df                    2023-07-31 16:22:34        master
hostnetconfd                      0.3.0-xdaily.20230818085718+Ce2adec98                    2023-08-09 07:13:46        master
json-builder                      0.1.0-xdaily.20230818091101+C7e7495bd                    2023-05-03 11:33:18        master
json-parser                       1.1.0-xdaily.20230818085719+Cf2b50ee5                    2023-05-03 11:33:56        master
libbgp                            1.0.2-xdaily.20230821155936+Cad5b378a                    2023-08-14 13:47:44        master
libcjson                          1.0.0-xdaily.20230818085714+Cd6550b9a                    2023-03-27 09:37:06        master
libconfd                          1.0.3-xdaily.20230821154549+C51dc7de6                    2023-08-18 04:53:01        master

<...>

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 Consolidated BNG (C-BNG) 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 C-BNG

nat_1q, nat_4q

ipoe-n-1

nat_4q

Q2A C-BNG

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.

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"
              ]
          }
        ]
      }
    }

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: consolidated-bng
  MDB Profile: custom_q2a_scale
    Counter Profile: cbng
  Features: -|ipoe-n-1|access-multifield-classifier

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: consolidated-bng
  MDB Profile: custom_rtb_cbng_nat
    Counter Profile: cbng_nat_extend
    Forwarding Routes on External Processor: False
    Ingress Accounting is External: False
    Egress Accounting is External: True