Fixed Helium reference in general-installation.adoc
[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 including support for OpenStack Neutron | odl-vtn-manager-all                   | self+all
115 |====
116
117 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*.
118
119 ==== Listing available features
120 To find the complete list of Karaf features, run the following command:
121
122 ----
123 feature:list
124 ----
125
126 To list the installed Karaf features, run the following command:
127
128 ----
129 feature:list -i
130 ----
131
132 // Commenting out this section until we can actually provide some content.
133 //
134 // === Verifying your installation
135 // TBD
136
137 === Installing support for REST APIs
138 Most components that offer REST APIs will automatically load the RESTCONF API Support
139 component, but if for whatever reason they seem to be missing, you can activate this
140 support by installing the `odl-restconf` feature.
141
142 // Commenting out this section until we can actually provide a tutorial that a
143 // user could follow
144 //
145 // === Making RESTCONF calls
146 // RESTCONF is a protocol that provides a programmatic interface over HTTP to access data that is defin
147 // ed in a YANG model and stored in data stores defined in the NETCONF protocol.
148 // RESTCONF protocol is implemented in `sal-rest-connector` artifact that is packed with the Karaf bundle.
149 // For more information on the RESTCONF protocol, refer to http://tools.ietf.org/html/draft-bierman-net
150 // conf-restconf-02
151 //
152 // RESTCONF allows access to datastores in the controller.
153 // The datastores available are:
154 //
155 // * config - contains data inserted using controller
156 // * operational - contains other data
157 //
158 // ==== Making a RESCONF call using cURL
159 //
160 // TBD
161
162 === Installing the DLUX web interface
163
164 The OpenDaylight web interface; DLUX, draws information from topology and host databases to display information about the topology of the network,
165 flow statistics, host locations. You can either use DLUX as a stand-alone plug-in or integrate with the Opendaylight controller.
166 To install DLUX as a standalone application, refer to  https://wiki.opendaylight.org/view/OpenDaylight_DLUX:Setup_and_Run
167 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
168 would like to access using DLUX. Each feature can be enabled or disabled separately.
169 [Important]
170 Ensure that you have created a topology and enabled MD-SAL feature in the Karaf distribution before you use DLUX for network management.
171 For more information about enabling the Karaf features for DLUX, refer to https://wiki.opendaylight.org/view/OpenDaylight_DLUX:DLUX_Karaf_Feature
172
173 === Installing MD-SAL clustering
174 The MD-SAL clustering feature has "special" compatibility criteria. You *must*
175 install clustering, before other features are installed. To install clustering,
176 run the following command on the Karaf CLI console:
177
178 ----
179 feature:install odl-mdsal-clustering
180 ----
181
182 // Commenting out this section until we can actually provide a tutorial that
183 // walks through getting everything set up. Maybe we should just point to the
184 // L2 Switch docs?
185 //
186 // === Getting started with OpenFlow and Mininet
187 //
188 // ==== Downloading and installing Mininet
189 //
190 // Mininet downloads are available at: http://mininet.org
191 //
192 // The OVS version must be 2.1 or earlier.
193 //
194 // The instructions for installation are available at: http://mininet.org.
195 //
196 // ===== Verifying mininet installation
197 // To verify your mininet installation run the following command:
198 // `test=pingall`
199 //
200 // ----
201 // odluser@odl-vm:~\$ sudo mn --test=pingall
202 // *** Creating network
203 // *** Adding controller
204 // *** Adding hosts:
205 // h1 h2
206 // *** Adding switches:
207 // s1
208 // *** Adding links:
209 // (h1, s1) (h2, s1)
210 // *** Configuring hosts
211 // h1 h2
212 // *** Starting controller
213 // *** Starting 1 switches
214 // s1 OVSswitch opts:
215 // *** Ping: testing ping reachability
216 // h1 -> h2
217 // h2 -> h1
218 // *** Results: 0% dropped (2/2 received)
219 // *** Stopping 1 switches
220 // s1 ..
221 // *** Stopping 2 hosts
222 // h1 h2
223 // *** Stopping 1 controllers
224 // c0
225 // *** Done
226 // completed in 0.541 seconds
227 // ----
228 //
229 // ==== Enabling the OpenFlow plugin and L2 Switch
230 //
231 // To enable these features, run:
232 //
233 // ----
234 // feature:install odl-l2switch-switch-ui
235 // ----
236 //
237 // This will install the OpenFlow plugin and the L2 Switch application.
238 //
239 // ==== Running Mininet using OpenDaylight as the controller
240 //
241 // TODO