Skip to content

Hardware virtualization

Amy Buck edited this page Apr 5, 2018 · 5 revisions

The overall OPX architecture does not change for the hardware simulation platform (see Architecture). The main difference is that the low-level device drivers for the SAI and SDI libraries are replaced with the packages that support hardware simulation, and interact with the hardware simulation infrastructure.

The hardware simulation is implemented using a database (sqlite3) that stores simulated hardware information. This allows user applications of the SDI and SAI VM libraries to set/get hardware state parameters (admin port status: enabled/disabled), and get simulated hardware status information (operational link status: up/down).

A simple host OS virtualization infrastructure allows user applications to create virtual machines. The current version of OPX supports virtualization using Virtual Box software.

Hardware simulation

Support for hardware simulation includes:

  • All create/set/get/delete operations supported by the CPS object library
  • Simulated hardware platform events
  • Limited control plane functionality (Layer 3 routing only)
  • Limited number of switch ports (virtual machine platform-independent)

Support for simulated hardware platform events includes:

  • Device (transceiver, PSU, fan tray) insertion/removal
  • Device (fan, PSU) failures
  • Device state change (temperature increase/decrease, power utilization increase/decrease, cable insertion/removal — link up/down)

Install software on virtual machine

You can install OPX on a virtual machine, similar to installing OpenSwitch on hardware platforms.

Main differences:

  • A host machine running Linux, Windows, or Mac OS X with at least 8GB of RAM and 100GB available disk space, and Virtual Box installed. The instructions to Create Virtual Machine have been tested on Ubuntu 16.04LTS, Windows 7, and Mac OS X El Capitan.
  • The virtual machine needs to have one network interface configured for the Management interface (Network Adapter 1, eth0). This is automatically created when using the VM tool (see Run virtual machine).
Clone this wiki locally