FlexSwitch on the Wedge 100

This document explains the steps required to install the SnapRoute FlexSwitch networking stack on a Wedge 100 running Open Network Install Environment (ONIE). Initial configuration is made using the device’s console port, with the management port used for the ONIE kick process.


Wedge-100 Platform

Manufacturer: Edgecore (Accton)
Model: Wedge 100-32X
CPU: x86
Port Configuration: 32x100G QSFP

Console Settings

Speed: 9600, Data Bits: 8, Parity: None, Stop Bits: 1, Flow Control: None

OpenBMC

The board keeping functions of the Wedge 100 are managed by OpenBMC, serving as a completely independent mechanism for managing the device. The BMC is responsible for all board keeping functions and environments, such as fans, power, and temperature. The BMC and operates completely independently from the CPU complex and Network Operating System.

The console port on the front-panel of the Wedge 100 interfaces directly with the BMC, upon boot the following prompt is presented.

OpenBMC Release lightning-v0.4-126-g05178db

bmc login:

Note

The login credentials are:
Username: root
Password: 0penBmc

Once logged in, OpenBMC provides a Linux shell with detailed information available about the current status of the system and environmental attributes.

The information in the EEPROM can be displayed via the weutil utility.

The following are examples of platform information that are displayed via OpenBMC:

root@bmc:~# weutil
Wedge EEPROM :
Version: 1
Product Name: Wedge100ACFO
Product Part Number: 76-32055A
System Assembly Part Number: CP3-ZZ7632-05
Facebook PCBA Part Number: NP3-ZZ7632-02
Facebook PCB Part Number: 142-000001-38
ODM PCBA Part Number: NP3ZZ7632025
ODM PCBA Serial Number: AG44009166
Product Production State: 4
Product Version: 1
Product Sub-Version: 1
Product Serial Number: AG44009166
Product Asset Tag: 
System Manufacturer: Accton
System Manufacturing Date: 10-28-16
PCB Manufacturer: ISU
Assembled At: Accton
Local MAC: 8C:EA:1B:43:1D:FF
Extended MAC Base: 8C:EA:1B:43:1E:00
Extended MAC Address Size: 128
Location on Fabric: WEDGE100
CRC8: 0x5f

A complete dump of all sensor data can also be done with the sensors command.

root@bmc:~# sensors
com_e_driver-i2c-4-33
Adapter: ast_i2c.4
CPU Vcore:      +0.95 V 
+3V Voltage:    +3.30 V 
+5V Voltage:    +5.20 V 
+12V Voltage:  +12.21 V 
VDIMM Voltage:  +1.35 V 
Memory Temp:    +26.0 C 
CPU Temp:       +31.0 C 

fancpld-i2c-8-33
Adapter: ast_i2c.8
Fan 1 front: 9300 RPM
Fan 1 rear:  6450 RPM
Fan 2 front: 9300 RPM
Fan 2 rear:  6450 RPM
Fan 3 front: 9300 RPM
Fan 3 rear:  6600 RPM
Fan 4 front: 9300 RPM
Fan 4 rear:  6450 RPM
Fan 5 front: 9300 RPM
Fan 5 rear:  6450 RPM

ltc4151-i2c-7-6f
Adapter: ast_i2c.7
vout1:            N/A 
iout1:            N/A 

tmp75-i2c-3-48
Adapter: ast_i2c.3
Outlet Middle Temp:  +27.0 C  (high = +80.0 C, hyst = +75.0 C)

tmp75-i2c-3-49
Adapter: ast_i2c.3
Inlet Middle Temp:  +25.0 C  (high = +80.0 C, hyst = +75.0 C)

tmp75-i2c-3-4a
Adapter: ast_i2c.3
Inlet Left Temp:  +25.0 C  (high = +80.0 C, hyst = +75.0 C)

tmp75-i2c-3-4b
Adapter: ast_i2c.3
Switch Temp:  +35.0 C  (high = +80.0 C, hyst = +75.0 C)

tmp75-i2c-3-4c
Adapter: ast_i2c.3
Inlet Right Temp:  +25.0 C  (high = +80.0 C, hyst = +75.0 C)

tmp75-i2c-8-48
Adapter: ast_i2c.8
Outlet Right Temp:  +25.5 C  (high = +80.0 C, hyst = +75.0 C)

tmp75-i2c-8-49
Adapter: ast_i2c.8
Outlet Left Temp:  +24.0 C  (high = +80.0 C, hyst = +75.0 C)

More information about OpenBMC and its capabilities can be found here at the project’s GitHub Page.

Accessing the Microserver

The microserver on the Wedge 100 is accessible From the OpenBMC shell– allowing for console management of ONIE and accompanying Network Operating System.

Use the sol.sh utility to access the console of the microserver from OpenBMC.

root@bmc:~# sol.sh
Starting client to connect to microserver...
------------------TERMINAL MULTIPLEXER---------------------
  CTRL-L ?  : Display help message.
  CTRL-X    : Terminate the connection.
  /var/log/mTerm_wedge.log : Log location

-----------------------------------------------------------

** Installer Mode Enabled **
ONIE:/ # 

The console session can be terminated by pressing CTRL+X. You are returned to the OpenBMC shell.

Since the microserver is independent from the BMC it can be power-cycled from the OpenBMC shell with the wedge_power.sh reset command.

root@bmc:~# wedge_power.sh reset
Power reset microserver ... Done

The sedge_poer.sh reset command allows you to remotely reboot the microserver and accompanying Network Operating System with physical access to the device.

Installing ONIE

If ONIE is not pre-installed on the device, it will be necessary to update the Wedge 100 via a USB drive. ONIE is required for installing the base Network Operating System.

Follow these steps if ONIE is not installed on the target device:

1) Download the ONIE recover image that is specifically built for the Wedge 100 platform.

onie-recovery-x86-64-facebook-wedge100-r0.iso

2) Insert a USB drive and execute the sudo fdisk –l command to determine the device name:

sudo fdisk –l
Disk /dev/sdb: 15.9 GB, 15938355200 bytes
64 heads, 32 sectors/track, 15200 cylinders, total 31129600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x6f20736b

Identify the device that matches the size of USB drive in use, the example above shows that a 16GB USB drive is represented as /dev/sdb. Take note of this name as it will be used in the following steps.

3) Validate that the USB drive is not mounted.

mount | grep /dev/sdb

If this command returns no output, proceed to the next step. Otherwise, take note of each of the mounts listed.

mount | grep /dev/sdb
/dev/sdb1 on /media/usb type iso9660 (ro)
/dev/sdb2 on /media/usb type vfat (rw)

For each item listed, run the umount command to unmount it.

Important

The order is important. Start with the bottom of the list first.

sudo umount /dev/sdb2
sudo umount /dev/sdb1

If the partitions are unmounted out of order an error similar to the following will be presented.

sudo umount /dev/sdb1
umount: cannot unmount /dev/sdb1 -- /dev/sdb2 is mounted over it on the same point

The USB drive should show no mounts after the unmounting operation is completed.

mount | grep /dev/sdb

4) Write the Wedge 100 ONIE recovery ISO to the USB Drive.

sudo dd bs=1M if=onie-recovery-x86-64-facebook-wedge100-r0.iso of=/dev/sdb
27+0 records in
27+0 records out
28311552 bytes (28 MB) copied, 4.71769 s, 6.0 MB/s

In this example if (input file) is the ONIE recovery iso and of (output file) is the USB device name identified in Step 2.

5) Remove the USB drive from the host device and insert it into the front-panel USB port on the Wedge 100 and power-cycle the switch. Initiate a console session using the front-panel console port and log into the OpenBMC shell.

From the OpenBMC shell, the microserver can be power-cycled without the need for powering down the entire device.

Use the wedge_power.sh reset command to reset the microserver from the OpenBMC shell.

root@bmc:~# wedge_power.sh reset
Power reset microserver ... Done

Be sure to have a console connection to the switch and a session to the microserver as described in Accessing the Microserver using the sol.sh utility, before proceeding.

6) After bootup of the Wedge 100, wait for the following screen to appear.

Version 2.17.1249. Copyright (C) 2016 American Megatrends, Inc.                 
Portwell, Inc. PCOM-B632VG-ECC-FB-ACCTON-D BIOS Rev.:R1.00.E3 ( 10032016 )      
Press <DEL> or <ESC> to enter setup.                                           

Press DEL or ESC to enter the BIOS setup menu, as described in the output above.

The BIOS setup utility should look something like this:

BIOS Setup Utility 1

7) Using the arrow keys, select the Boot tab.

BIOS Setup Utility 2 and Boot mode select**_ are set to Legacy:

BIOS Setup Utility 3 BIOS Setup Utility 4

9) Set the USB drive as Boot Option #1 to ensure that it boots before the SSD.

BIOS Setup Utility 5

In this list, there should be a device that is the USB drive which was previously inserted. In this case, it’s the General UDisk 5.00 device. If it’s not obvious which device is the installed USB disk, simply boot once without the USB disk and then boot the device again with it installed and take note of which device is listed only when the USB disk is inserted.

10) Use the arrow keys to navigate to the Save & Exit tab:

BIOS Setup Utility 6

Select the first option listed Save Changed and Exit and press Enter.

This should result in the device exiting the BIOS menus and booting from the first device in the boot list (the USB disk).

11) After exiting the BIOS the following screen will be presented with the option to embed ONIE.

                     GNU GRUB  version 2.02~beta2+e4a1fe391

 +----------------------------------------------------------------------------+
 | ONIE: Rescue                                                               | 
 |*ONIE: Embed ONIE                                                           |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            | 
 +----------------------------------------------------------------------------+

      Use the ^ and v keys to select which entry is highlighted.          
      Press enter to boot the selected OS, `e' to edit the commands       
      before booting or `c' for a command-line.            

Use the arrow keys to select Embed ONIE in this menu. This will drop into the automatic ONIE-embed mode, which does not requires no user interaction. After the installation is complete, remove the USB drive and power-cycle the device.

12) After a successful installation the ONIE boot menu should be presented.

                    GNU GRUB  version 2.02~beta2+e4a1fe391

 +----------------------------------------------------------------------------+
 |*ONIE: Install OS                                                           | 
 | ONIE: Rescue                                                               |
 | ONIE: Uninstall OS                                                         |
 | ONIE: Update ONIE                                                          |
 | ONIE: Embed ONIE                                                           |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            | 
 +----------------------------------------------------------------------------+

      Use the ^ and v keys to select which entry is highlighted.          
      Press enter to boot the selected OS, `e' to edit the commands       
      before booting or `c' for a command-line.

At this point, ONIE is installed on the Wedge 100 and the FlexSwitch on Whitebox Harware guide can be followed to continue with setup and configuration.