Download PDF
Home

1. Introduction

An optic transceiver sends and receives data between devices using fiber optic medium. The optics modules available in a network may not be available to Brick Data Store (BDS). The BDS might not be able to access the optics information directly on the network, and hence it relies on i2c tools to interact with optics modules.

The RBFS optics support functionality provides a mechanism to represent optics modules in BDS, and it comes with the following features.

  • Supports the following optics modules:

    • SFP, SFP+, QSFP, QSFP+, QSFP28 (DAC are not supported)

  • Provides a mechanism to discover and monitor optics modules

  • Provides CLIs to write to optics modules

  • Provides show commands to visualize optics inventory and status of each module

  • Logs the status of the optics module

The RBFS implementation supports pluggable optics modules on whitebox switches only.

This document describes how you can integrate and monitor the optics modules into the resource monitoring daemon (resmond) on RBFS. This functionality leverages the Open Optics Monitoring (OOM) tool from OCP for reading from or writing to optics modules from different vendors.

The RBFS optics integration is decoupled into two components: resmond-agent and resmond.

  • resmond-agent: This daemon runs inside a container, which is responsible for interacting with optics modules.

  • resmond: This daemon is responsible for managing optics in BDS.

This resmond daemon performs the following tasks:

  • Optics inventory accounting: Identifying the following details of a discovered optics module.

    • Port

    • Type

    • Vendor

    • Serial Number

    • Part Number

  • Read the following optics data from a module:

    • RX/TX alarming (loss of light and loss of signal)

    • RX/TX power status

    • Voltage and BIAS status

    • Temperature

  • Write the optics data to an optics module

  • Enabling high power class on QSFP28

  • Shutdown lasers (QSFP28, SFP+ and SFP)

1.1. Supported Hardware

  • Edgecore AS5916-XKS

1.2. Guidelines and Limitations

  • The current RBFS optics integration does not support the following functionalities:

    • Interrupt-based optics notification

    • Alarms

2. Components of RBFS Optics Integration

The RBFS optics integration is decoupled into two components: resmond-agent and resmond.

2.1. Resmond-agent

The resmond-agent is a daemon, which interacts with an optics module through an OCP-based OOM package. The resmond-agent exposes REST APIs so that the external applications can interact with optical modules.

image
Figure 1. RBFS Optical Integration

The resmond-agent performs the following functions:

  • Reads (Electrically Erasable Programmable Read-Only Memory) EEPROM data from the optics modules at specified intervals, and creates resmond optics BDS objects.

  • Writes values to specified fields of optics module. The supported fields are:

    • TX_DISABLE: This field can be True or False

    • HIGH_POWER_CLASS_ENABLE: This field can be True or False

  • Provides following URIs:

    • /resmond-agent/optics/get: It collects optics module information available from all available ports

    • /resmond-agent/optics/set: It sets value to the specified field of an optics module

2.2. Resmond

The resmond is a BD running inside the RtBrick container, which manages every optics module discovered by the resmond-agent. It polls hardware at specified interval to discover available optics modules.

2.2.1. Reading from optics

The resmond creates and maintains an inventory table and optics module table named global.loc_0.resource.optics.inventory and global.loc_0.resource.optics.module to keep information of each optics module. Objects corresponding to these tables are added by the resmond-agent.

The following optics modules are supported:

  • SFP

  • SFP+

  • QSFP

  • QSFP+

  • QSFP28

Writing to optics

The resmond receives configuration related to the write operation. It sends REST query to resmond-agent (/resmond-agent/optics/set URI) to perform write operation to optics. The resmond receives set operation status code from the resmond-agent.

The following operations are supported:

  • Enabling or disabling high-power class on the QSFP28 optics module

  • Enabling or disabling lasers on optics module

2.2.2. Resmond Logging

The resmond can log the following events:

  • Module temperature high alarm

  • Module temperature high warning

  • Module temperature low alarm

  • Module temperature low warning

  • Module voltage high alarm

  • Module voltage high warning

  • Module voltage low alarm

  • Module voltage low warning

  • Module lane power high alarm

  • Module lane power high warning

  • Module lane power low alarm

  • Module lane power low warning

  • Module lane bias high alarm

  • Module lane bias high warning

  • Module lane bias low alarm

  • Module lane bias low warning

3. Configuration Commands

3.1. Interface Level Commands

3.1.1. resmon monitoring poll-interval

This command sets the poll-interval for the resmond to discover optics.

Syntax

set poll-interval <poll_interval>

Command arguments

<poll_interval>

Specifies the interval (in milliseconds) at which optics should be polled. The interval can range from 1000 to 4294967295 milliseconds. The default interval is 5000.

Example
root@rtbrick: cfg> set poll-interval 15000

3.1.2. high-power-class-enable

This command enables or disables the high-power class of an optics module on a specific interface.

Syntax

set high-power-class-enable <false | true>

Command arguments

<true | false>

false - Disables high power class for optical module

true - Enables high power class for optical module

Example
root@rtbrick: cfg> set resmon optics interface ifp-0/0/53 high-power-class enable

3.1.3. tx-disable

This command allows you to enable or disable lasers for an optical module.

Syntax

set tx-disable <false | true>

Command arguments

<true | false>

false - Enables lasers for optical module

true - Disables lasers for optical module

Example
root@rtbrick: cfg> set resmon optics interface ifp-0/0/53 tx enable

4. Show Commands

4.1. show optics all

This command displays all optics inventory information.

Syntax

show optics all

Example
show optics all

4.2. show optics

This command displays all optics information of a module in the specified port.

Syntax

show optics <port name>

Command arguments

<port name >

Name of the physical interface, for example, ifp-0/0/0

Example
show optics

©Copyright 2020 RtBrick, Inc. All rights reserved. The information contained herein is subject to change without notice. The trademarks, logos and service marks ("Marks") displayed in this documentation are the property of RtBrick in the United States and other countries. Use of the Marks are subject to RtBrickā€™s Term of Use Policy, available at https://www.rtbrick.com/privacy. Use of marks belonging to other parties is for informational purposes only.