Modified documents with new references for Be release
[docs.git] / manuals / user-guide / src / main / asciidoc / didm / didm-user.adoc
1 == DIDM User Guide
2
3 === Overview
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.
12
13 === DIDM Architecture
14 The DIDM project creates the infrastructure to support the following functions:
15
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.
35
36 === Installing DIDM
37
38 To install DIDM, download OpenDaylight and use the Karaf console to install the following features:
39
40 * odl-openflowplugin-all
41 * odl-didm-all
42
43 odl-didm-all installs the following required features:
44
45 * odl-didm-ovs-all
46 * odl-didm-ovs-impl
47 * odl-didm-util
48 * odl-didm-identification
49 * odl-didm-drivers
50 * odl-didm-hp-all
51
52 === Configuring DIDM
53
54 This section shows an example configuration steps for installing a driver (HP 3800 OpenFlow switch driver).
55
56 === Install DIDM features:
57
58 ----
59 feature:install odl-didm-identification-api
60 feature:install odl-didm-drivers
61 ----
62
63 In order to identify the device, device driver needs to be installed first.
64 Identification Manager will be notified when a new device connects to the controller.
65
66 === Install HP driver
67
68 feature:install odl-didm-hp-all installs the following features
69
70 * odl-didm-util
71 * odl-didm-identification
72 * odl-didm-drivers
73 * odl-didm-hp-all
74 * odl-didm-hp-impl
75
76 Now at this point, the driver has written all of the identification information in to the MD-SAL datastore.
77 The identification manager should have that information so that it can try to identify the HP 3800 device when it connects to the controller.
78
79 Configure the switch and connect it to the controller from the switch CLI.
80
81 === Run REST GET command to verify the device details:
82
83 http://<CONTROLLER-IP:8181>/restconf/operational/opendaylight-inventory:nodes
84
85 === Run REST adjust-flow command to adjust flows and push to the device
86
87 .Flow mod driver for HP 3800 device is added in Beryllium release
88 This driver adjusts the flows and push the same to the device. 
89 This API takes the flow to be adjusted as input and displays the adjusted flow as output in the REST output container.
90 Here is the REST API to adjust and push flows to HP 3800 device:
91
92 http://<CONTROLLER-IP:8181>/restconf/operations/openflow-feature:adjust-flow