Reference Guide

Table Of Contents
Device Driver Framework
Device Driver Framework Overview
The SDN Controller provides a Device Driver Framework with the following capabilities:
Maintains identity information about the types of physical devices recognized by the
framework.
Determines the type of each physical device using information discovered through the
OpenFlow handshake, as well as direct interaction with the device.
Communicates with the physical device directly to extract configuration information and
adjust its type if necessary.
Persists the discovered device and its configuration information as well as it interface list.
For OpenFlow devices, the interface information is reported via the OpenFlow handshake.
For non-OpenFlow devices, software known as a Handler Facet are used to interact with
the device to obtain the interface list.
Allows device-specific software components to be written to interact with devices (known
as Facets and Handler Facets); these software implementations are associated with a
device type.
Maintains security credentials to allow interaction with devices using protocols such as
SNMP and NetConf.
Each of these capabilities is discussed in more detail below.
Facets and Handler Facets
One of the primary reasons for the Device Driver Framework is to allow software components to
be developed that can interact with a device. In order to interact with a device, the software
component must know the capabilities and characteristics of the device. These software
components are referred to as “Facets” and “Handler Facets. Below are the definitions for a
Facet and Handler Facet.
Facet: Software that is used to perform a function that does not require direct interaction with the
device, but requires knowledge of the device’s capabilities and limitations.
Handler Facet: Software that is used to perform a function that requires interaction with a
device.
Note: although there is a difference between Facets and Handler Facets, the term Facet is used
throughout this section to refer to either one.
Facets are written to access a particular attribute or feature on a device and therefore are tied to
specific device types. For example, there may be different Facet implementations for configuring
VLANs on HP devices and Cisco devices. They may be different Facet implementations even
though they perform the same function (configuring VLANs). Device information stored in XML
files (see below) will indicate that it supports the Vlan Facet, but when the Vlan Facet is accessed,
the type of device will determine which implementation is used. In this way, the application or
114