1 == DIDM Developer Guide
4 The Device Identification and Driver Management (DIDM) project addresses the
5 need to provide device-specific functionality. Device-specific functionality is
6 code that performs a feature, and the code is knowledgeable of the capability
7 and limitations of the device. For example, configuring VLANs and adjusting
8 FlowMods are features, and there may be different implementations for different
9 device types. Device-specific functionality is implemented as Device Drivers.
10 Device Drivers need to be associated with the devices they can be used with. To
11 determine this association requires the ability to identify the device type.
14 The DIDM project creates the infrastructure to support the following functions:
16 * *Discovery* - Determination that a device exists in the controller
17 management domain and connectivity to the device can be established. For
18 devices that support the OpenFlow protocol, the existing discovery
19 mechanism in OpenDaylight suffices. Devices that do not support OpenFlow
20 will be discovered through manual means such as the operator entering
21 device information via GUI or REST API.
22 * *Identification* – Determination of the device type.
23 * *Driver Registration* – Registration of Device Drivers as routed RPCs.
24 * *Synchronization* – Collection of device information, device configuration,
25 and link (connection) information.
26 * *Data Models for Common Features* – Data models will be defined to
27 perform common features such as VLAN configuration. For example,
28 applications can configure a VLAN by writing the VLAN data to the data store
29 as specified by the common data model.
30 * *RPCs for Common Features* – Configuring VLANs and adjusting
31 FlowMods are example of features. RPCs will be defined that specify the
32 APIs for these features. Drivers implement features for specific devices and
33 support the APIs defined by the RPCs. There may be different Driver
34 implementations for different device types.
36 TODO: Add more info and diagram.
38 === Key APIs and Interfaces
41 === API Reference Documentation
42 TODO: Provide links to JavaDoc, REST API documentation, etc.