2ab22a0ea0682ef9751bd62842845070dfe808b6
[docs.git] / manuals / getting-started-guide / src / main / asciidoc / general_installation.adoc
1 == Getting and Installing OpenDaylight Lithium
2
3 // Commenting out this section until we can actually provide some content.
4 //
5 // === System requirements and prerequisites
6 // * *Hardware Requirements*: <To be added>
7 //
8 // * *Software Requirements*:
9 // If you are using Oracle, JDK version 1.7.0_45 or later is required.
10 //
11 // ==== For Execution
12 // The OpenDaylight controller source files are portable and require a Java 7-compliant JVM to run.
13 //
14 // ==== For Development
15 // TBD
16
17 === Downloading and installing OpenDaylight Lithium
18 The default distribution can be found on the OpenDaylight software download page:
19 http://www.opendaylight.org/software/downloads
20
21 The Karaf distribution has no features enabled by default. However, you can install all the features.
22
23 NOTE: You cannot enable all the features at the same time.
24
25
26 ==== Running the karaf distribution
27 To run the Karaf distribution:
28
29 . Unzip the zip file.
30 . Navigate to the directory.
31 . run `./bin/karaf`.
32
33 For Example:
34
35 [frame="none"]
36 |===
37 a|
38 ----
39 $ ls distribution-karaf-0.3.0-Lithium.zip
40 distribution-karaf-0.3.0-Lithium.zip
41 $ unzip distribution-karaf-0.3.0-Lithium.zip
42 Archive:  distribution-karaf-0.3.0-Lithium.zip
43    creating: distribution-karaf-0.3.0-Lithium/
44    creating: distribution-karaf-0.3.0-Lithium/configuration/
45    creating: distribution-karaf-0.3.0-Lithium/data/
46    creating: distribution-karaf-0.3.0-Lithium/data/tmp/
47    creating: distribution-karaf-0.3.0-Lithium/deploy/
48    creating: distribution-karaf-0.3.0-Lithium/etc/
49    creating: distribution-karaf-0.3.0-Lithium/externalapps/
50 ...
51   inflating: distribution-karaf-0.3.0-Lithium/bin/start.bat
52   inflating: distribution-karaf-0.3.0-Lithium/bin/status.bat
53   inflating: distribution-karaf-0.3.0-Lithium/bin/stop.bat
54 $ cd distribution-karaf-0.3.0-Lithium
55 $ ./bin/karaf
56
57     ________                       ________                .__  .__       .__     __
58     \_____  \ ______   ____   ____ \______ \ _____  ___.__.\|  \| \|__\| ____ \|  \|___/  \|_
59      /   \|   \\____ \_/ __ \ /    \ \|    \|  \\__  \<   \|  \|\|  \| \|  \|/ ___\\|  \|  \   __\
60     /    \|    \  \|_> >  ___/\|   \|  \\|    `   \/ __ \\___  \|\|  \|_\|  / /_/  >   Y  \  \|
61     \_______  /   __/ \___  >___\|  /_______  (____  / ____\|\|____/__\___  /\|___\|  /__\|
62             \/\|__\|        \/     \/        \/     \/\/            /_____/      \/
63
64
65 ----
66 Press *tab* for a list of available commands and *[cmd] --help* for help on a specific command.
67 Press *ctrl-d* or type *system:shutdown* or *logout* to shutdown OpenDaylight.
68 |===
69 === Installing the components
70
71 The section describes a list of components in OpenDaylight Lithium and the relevant Karaf feature to install in order to enable that component.
72
73 To install a feature use the following command:
74 -----
75 feature:install
76 -----
77 For Example:
78
79 -----
80 feature:install <feature-name>
81 -----
82
83 Multiple features can be installed using the following command:
84
85 -----
86 feature:install <feature1-name> <feature2-name> ... <featureN-name>
87 -----
88
89 .Lithium Components
90 [options="header",cols="18%,50%,18%,14%"]
91 |====
92 | Component Name                   | Component Description | Karaf feature name | Compatibility
93 | BGPCEP                           | Enables support for BGP LS PCEP | odl-bgpcep-all | all
94 | Defense4All                      | Enable DDoS detection and protection | n/a | all
95 | Group Based Policy               | Enable Endpoint Registry and Policy Repository REST APIs and associated functionality for the Group Based Policy Proof of Concept demonstration | odl-groupbasedpolicy-ofoverlay | self+all
96 | L2 Switch                        | Provides L2 (Ethernet) forwarding across connected OppenFlow switches and support for host tracking | odl-l2switch-switch-ui                | self+all
97 | LISP Flow Mapping                | Enable LISP control plane services including the mapping system services REST API and LISP protocol SB plugin | odl-lispflowmapping-all               | all
98 | MD-SAL Clustering                | Provides support for operating a cluster of OpenDaylight instances | odl-mdsal-clustering                  | special
99 | Netconf over SSH                 | Provides support to manage Netconf-enabled devices over SSH | odl-netconf-connector-ssh             | all
100 | OpenFlow Flow Programming        | Enables discovery and control of OpenFlow switches and the topology between them | odl-openflowplugin-flow-services-ui   | all
101 | OpenFlow Table Type Patterns     | Allows OpenFlow Table Type Patterns to be manually associated with network elements | odl-ttp-all                          |all
102 | OVS Management                   | Enables OVS management using OVSDB plugin and its associated OVSDB northbound APIs | odl-ovsdb-all                        | all
103 | OVSDB OpenStack Neutron          | OpenStack Network Virtualization using OpenDaylight's OVSDB support | odl-ovsdb-openstack                   | all
104 | Packetcable PCMM                 | Enables flow-based dynamic QoS management of CMTS using in the DOCSIS infrastructure | odl-packetcable-all                   | all
105 | Plugin to OpenContrail           | Provides OpenStack Neutron support via OpenContrail | odl-plugin2oc                         | self+all
106 | RESTCONF API Support             | Enables REST API access to the MD-SAL including the data store | odl-restconf                          | all
107 | SDN Interface                    | Provides support for interaction and sharing of state between (non-clustered) OpenDaylight instances | odl-sdninterfaceapp-all               | all
108 | Secure Networking Bootstrap      | Defines a SNBI domain and associated white lists of devices to be accommodated to the domain | odl-snbi-all                          | all
109 | Service Flow Chaining (SFC)      | Enables support for applying chains of network services to certain traffic | odl-sfc-all                           | all
110 | SFC over LISP                    | Supports implementing SFC using LISP | odl-sfclisp                           | all
111 | SFC over L2                      | Supports implementing SFC using Layer 2 forwarding | odl-sfcofl2                           | all
112 | SFC over VXLAN                   | Supports implementing SFC using VXLAN via OVSDB | odl-ovsdb-ovssfc                      | self+all
113 | SNMP4SDN                         | Enables monitoring and control of network elements via SNMP | odl-snmp4sdn-all                      | all
114 | VTN Manager                      | Enables Virtual Tenant Network support | odl-vtn-manager-rest | self+all
115 | VTN Manager Neutron              | Enables OpenStack Neutron support of VTN Manager | odl-vtn-manager-neutron | self+all
116 |====
117
118 In the table a compatibility value of *all* means that it can be run with other features. A value of *self+all* indicates that the feature can be installed with other features with a value of *all*, but not other features with a value of *self+all*.
119
120 ==== Listing available features
121 To find the complete list of Karaf features, run the following command:
122
123 ----
124 feature:list
125 ----
126
127 To list the installed Karaf features, run the following command:
128
129 ----
130 feature:list -i
131 ----
132
133 // Commenting out this section until we can actually provide some content.
134 //
135 // === Verifying your installation
136 // TBD
137
138 === Installing support for REST APIs
139 Most components that offer REST APIs will automatically load the RESTCONF API Support
140 component, but if for whatever reason they seem to be missing, you can activate this
141 support by installing the `odl-restconf` feature.
142
143 // Commenting out this section until we can actually provide a tutorial that a
144 // user could follow
145 //
146 // === Making RESTCONF calls
147 // RESTCONF is a protocol that provides a programmatic interface over HTTP to access data that is defin
148 // ed in a YANG model and stored in data stores defined in the NETCONF protocol.
149 // RESTCONF protocol is implemented in `sal-rest-connector` artifact that is packed with the Karaf bundle.
150 // For more information on the RESTCONF protocol, refer to http://tools.ietf.org/html/draft-bierman-net
151 // conf-restconf-02
152 //
153 // RESTCONF allows access to datastores in the controller.
154 // The datastores available are:
155 //
156 // * config - contains data inserted using controller
157 // * operational - contains other data
158 //
159 // ==== Making a RESCONF call using cURL
160 //
161 // TBD
162
163 === Installing the DLUX web interface
164
165 The OpenDaylight web interface; DLUX, draws information from topology and host databases to display information about the topology of the network,
166 flow statistics, host locations. You can either use DLUX as a stand-alone plug-in or integrate with the Opendaylight controller.
167 To install DLUX as a standalone application, refer to  https://wiki.opendaylight.org/view/OpenDaylight_DLUX:Setup_and_Run
168 To integrate with Opendaylight Controller you must enable DLUX Karaf feature. You can enable AD-SAL, MD-SAL and various other bundles within Karaf depending on the features you
169 would like to access using DLUX. Each feature can be enabled or disabled separately.
170 [Important]
171 Ensure that you have created a topology and enabled MD-SAL feature in the Karaf distribution before you use DLUX for network management.
172 For more information about enabling the Karaf features for DLUX, refer to https://wiki.opendaylight.org/view/OpenDaylight_DLUX:DLUX_Karaf_Feature
173
174 === Installing MD-SAL clustering
175 The MD-SAL clustering feature has "special" compatibility criteria. You *must*
176 install clustering, before other features are installed. To install clustering,
177 run the following command on the Karaf CLI console:
178
179 ----
180 feature:install odl-mdsal-clustering
181 ----
182
183 // Commenting out this section until we can actually provide a tutorial that
184 // walks through getting everything set up. Maybe we should just point to the
185 // L2 Switch docs?
186 //
187 // === Getting started with OpenFlow and Mininet
188 //
189 // ==== Downloading and installing Mininet
190 //
191 // Mininet downloads are available at: http://mininet.org
192 //
193 // The OVS version must be 2.1 or earlier.
194 //
195 // The instructions for installation are available at: http://mininet.org.
196 //
197 // ===== Verifying mininet installation
198 // To verify your mininet installation run the following command:
199 // `test=pingall`
200 //
201 // ----
202 // odluser@odl-vm:~\$ sudo mn --test=pingall
203 // *** Creating network
204 // *** Adding controller
205 // *** Adding hosts:
206 // h1 h2
207 // *** Adding switches:
208 // s1
209 // *** Adding links:
210 // (h1, s1) (h2, s1)
211 // *** Configuring hosts
212 // h1 h2
213 // *** Starting controller
214 // *** Starting 1 switches
215 // s1 OVSswitch opts:
216 // *** Ping: testing ping reachability
217 // h1 -> h2
218 // h2 -> h1
219 // *** Results: 0% dropped (2/2 received)
220 // *** Stopping 1 switches
221 // s1 ..
222 // *** Stopping 2 hosts
223 // h1 h2
224 // *** Stopping 1 controllers
225 // c0
226 // *** Done
227 // completed in 0.541 seconds
228 // ----
229 //
230 // ==== Enabling the OpenFlow plugin and L2 Switch
231 //
232 // To enable these features, run:
233 //
234 // ----
235 // feature:install odl-l2switch-switch-ui
236 // ----
237 //
238 // This will install the OpenFlow plugin and the L2 Switch application.
239 //
240 // ==== Running Mininet using OpenDaylight as the controller
241 //
242 // TODO