Merge "Update honeycomb/vbd release notes"
[docs.git] / docs / getting-started-guide / installing_opendaylight.rst
1 .. _install_odl:
2
3 ***********************
4 Installing OpenDaylight
5 ***********************
6
7 You complete the following steps to install your networking environment, with
8 specific instructions provided in the subsections below.
9
10 Before detailing the instructions for these, we address the following:
11 Java Runtime Environment (JRE) and operating system information
12 Target environment
13 Known issues and limitations
14
15
16 Install OpenDaylight
17 ====================
18
19 Downloading and installing OpenDaylight
20 ---------------------------------------
21
22 The default distribution can be found on the OpenDaylight software
23 download page: http://www.opendaylight.org/software/downloads
24
25 The Karaf distribution has no features enabled by default. However, all
26 of the features are available to be installed.
27
28 .. note:: For compatibility reasons, you cannot enable all the features
29           simultaneously. We try to document known incompatibilities in
30           the `Install the Karaf features`_ section below.
31
32 Running the karaf distribution
33 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
34
35 To run the Karaf distribution:
36
37 #. Unzip the zip file.
38 #. Navigate to the directory.
39 #. run ``./bin/karaf``.
40
41 For Example::
42
43    $ ls distribution-karaf-0.7.x-Nitrogen.zip
44    distribution-karaf-0.7.x-Nitrogen.zip
45    $ unzip distribution-karaf-0.7.x-Nitrogen.zip
46    Archive:  distribution-karaf-0.7.x-Nitrogen.zip
47       creating: distribution-karaf-0.7.x-Nitrogen/
48       creating: distribution-karaf-0.7.x-Nitrogen/configuration/
49       creating: distribution-karaf-0.7.x-Nitrogen/data/
50       creating: distribution-karaf-0.7.x-Nitrogen/data/tmp/
51       creating: distribution-karaf-0.7.x-Nitrogen/deploy/
52       creating: distribution-karaf-0.7.x-Nitrogen/etc/
53       creating: distribution-karaf-0.7.x-Nitrogen/externalapps/
54       ...
55       inflating: distribution-karaf-0.7.x-Nitrogen/bin/start.bat
56       inflating: distribution-karaf-0.7.x-Nitrogen/bin/status.bat
57       inflating: distribution-karaf-0.7.x-Nitrogen/bin/stop.bat
58    $ cd distribution-karaf-0.7.x-Nitrogen
59    $ ./bin/karaf
60
61        ________                       ________                .__  .__       .__     __
62        \_____  \ ______   ____   ____ \______ \ _____  ___.__.\|  \| \|__\| ____ \|  \|___/  \|_
63         /   \|   \\____ \_/ __ \ /    \ \|    \|  \\__  \<   \|  \|\|  \| \|  \|/ ___\\|  \|  \   __\
64        /    \|    \  \|_> >  ___/\|   \|  \\|    `   \/ __ \\___  \|\|  \|_\|  / /_/  >   Y  \  \|
65        \_______  /   __/ \___  >___\|  /_______  (____  / ____\|\|____/__\___  /\|___\|  /__\|
66                \/\|__\|        \/     \/        \/     \/\/            /_____/      \/
67
68
69
70 * Press ``tab`` for a list of available commands
71 * Typing ``[cmd] --help`` will show help for a specific command.
72 * Press ``ctrl-d`` or type ``system:shutdown`` or ``logout`` to shutdown OpenDaylight.
73
74 .. note:: Please take a look at the :ref:`security_deployment_recommendations`
75           and following sections under :ref:`security_considerations` if you're
76           planning on running OpenDaylight outside of an isolated test lab
77           environment.
78
79 Install the Karaf features
80 ==========================
81 To install a feature, use the following command, where feature1 is the feature
82 name listed in the table below::
83
84     feature:install <feature1>
85
86 You can install multiple features using the following command::
87
88
89     feature:install <feature1> <feature2> ... <featureN-name>
90
91 .. note:: For compatibility reasons, you cannot enable all Karaf features
92    simultaneously. The table below documents feature installation names and
93    known incompatibilities.Compatibility values indicate the following:
94
95 * **all** - the feature can be run with other features.
96 * **self+all** - the feature can be installed with other features with a value of
97   **all**, but may interact badly with other features that have a value of
98   **self+all**. Not every combination has been tested.
99
100 Uninstalling features
101 ---------------------
102 To uninstall a feature, you must shut down OpenDaylight, delete the data
103 directory, and start OpenDaylight up again.
104
105 .. important:: Uninstalling a feature using the Karaf feature:uninstall command
106    is not supported and can cause unexpected and undesirable behavior.
107
108 Listing available features
109 --------------------------
110 To find the complete list of Karaf features, run the following command::
111
112     feature:list
113
114 To list the installed Karaf features, run the following command::
115
116     feature:list -i
117
118 Features to implement networking functionality provide release notes, which
119 you can find in the :ref:`proj_rel_notes` section.
120
121 Karaf running on Windows 10
122 ---------------------------
123
124 Windows 10 cannot be identify by Karaf (equinox).
125 Issue occurs during installation of karaf features e.g.::
126
127    opendaylight-user@root>feature:install odl-restconf
128    Error executing command: Can't install feature odl-restconf/0.0.0:
129    Could not start bundle mvn:org.fusesource.leveldbjni/leveldbjni-all/1.8-odl in feature(s) odl-akka-leveldb-0.7: The bundle "org.fusesource.leveldbjni.leveldbjni-all_1.8.0 [300]" could not be resolved. Reason: No match found for native code: META-INF/native/windows32/leveldbjni.dll; processor=x86; osname=Win32, META-INF/native/windows64/leveldbjni.dll; processor=x86-64; osname=Win32, META-INF/native/osx/libleveldbjni.jnilib; processor=x86; osname=macosx, META-INF/native/osx/libleveldbjni.jnilib; processor=x86-64; osname=macosx, META-INF/native/linux32/libleveldbjni.so; processor=x86; osname=Linux, META-INF/native/linux64/libleveldbjni.so; processor=x86-64; osname=Linux, META-INF/native/sunos64/amd64/libleveldbjni.so; processor=x86-64; osname=SunOS, META-INF/native/sunos64/sparcv9/libleveldbjni.so; processor=sparcv9; osname=SunOS
130
131 Workaround is to add
132
133    org.osgi.framework.os.name = Win32
134
135 to the karaf file
136
137    etc/system.properties
138
139 The workaround and further info are in this thread:
140 http://stackoverflow.com/questions/35679852/karaf-exception-is-thrown-while-installing-org-fusesource-leveldbjni
141
142
143 Karaf OpenDaylight Features
144 ===========================
145
146 .. list-table:: Karaf OpenDaylight features
147     :widths: 10 25 10 5
148     :header-rows: 1
149
150     * - Feature Name
151       - Feature Description
152       - Karaf feature name
153       - Compatibility
154
155     * - Authentication
156       - Enables authentication with support for federation using Apache Shiro
157       - odl-aaa-shiro
158       - all
159
160     * - BGP
161       - Provides support for Border Gateway Protocol (including Link-State
162         Distribution) as a source of L3 topology information
163       - odl-bgpcep-bgp
164       - all
165
166     * - BMP
167       - Provides support for BGP Monitoring Protocol as a monitoring station
168       - odl-bgpcep-bmp
169       - all
170
171     * - DIDM
172       - Device Identification and Driver Management
173       - odl-didm-all
174       - all
175
176     * - Centinel
177       - Provides interfaces for streaming analytics
178       - odl-centinel-all
179       - all
180
181     * - DLUX
182       - Provides an intuitive graphical user interface for OpenDaylight
183       - odl-dluxapps-applications
184       - all
185     * - Fabric as a Service (Faas)
186       - Creates a common abstraction layer on top of a physical network so
187         northbound APIs or services can be more easiliy mapped onto the
188         physical network as a concrete device configuration
189       - odl-faas-all
190       - all
191
192     * - Group Based Policy
193       - Enables Endpoint Registry and Policy Repository REST APIs and associated
194         functionality for Group Based Policy with the default renderer for
195         OpenFlow renderers
196       - odl-groupbasedpolicy-ofoverlay
197       - all
198
199     * - GBP User Interface
200       - Enables a web-based user interface for Group Based Policy
201       - odl-groupbasedpolicyi-ui
202       - all
203
204     * - GBP FaaS renderer
205       - Enables the Fabric as a Service renderer for Group Based Policy
206       - odl-groupbasedpolicy-faas
207       - self+all
208
209     * - GBP Neutron Support
210       - Provides OpenStack Neutron support using Group Based Policy
211       - odl-groupbasedpolicy-neutronmapper
212       - all
213
214     * - L2 Switch
215       - Provides L2 (Ethernet) forwarding across connected OpenFlow switches and
216         support for host tracking
217       - odl-l2switch-switch-ui
218       - self+all
219
220     * - LACP
221       - Enables support for the Link Aggregation Control Protocol
222       - odl-lacp-ui
223       - self+all
224
225     * - LISP Flow Mapping
226       - Enables LISP control plane services including the mapping system
227         services REST API and LISP protocol SB plugin
228       - odl-lispflowmapping-msmr
229       - all
230
231     * - NEMO CLI
232       - Provides intent mappings and implementation with CLI for legacy devices
233       - odl-nemo-cli-renderer
234       - all
235
236     * - NEMO OpenFlow
237       - Provides intent mapping and implementation for OpenFlow devices
238       - odl-nemo-openflow-renderer
239       - self+all
240
241     * - NetIDE
242       - Enables portabilty and cooperation inside a single network by using a
243         client/server multi-controller architecture
244       - odl-netide-rest
245       - all
246
247     * - NETCONF over SSH
248       - Provides support to manage NETCONF-enabled devices over SSH
249       - odl-netconf-connector-ssh
250       - all
251
252     * - OF-CONFIG
253       - Enables remote configuration of OpenFlow datapaths
254       - odl-of-config-rest
255       - all
256
257     * - OVSDB OpenStack Neutron
258       - OpenStack Network Virtualization using OpenDaylight's OVSDB support
259       - odl-ovsdb-openstack
260       - all
261
262     * - OVSDB Southbound
263       - OVSDB MDSAL southbound plugin for Open_vSwitch schema
264       - odl-ovsdb-southbound-impl-ui
265       - all
266
267     * - OVSDB HWVTEP Southbound
268       - OVSDB MDSAL hwvtep southbound plugin for the hw_vtep schema
269       - odl-ovsdb-hwvtepsouthbound-ui
270       - all
271
272     * - OVSDB NetVirt SFC
273       - OVSDB NetVirt support for SFC
274       - odl-ovsdb-sfc-ui
275       - all
276
277     * - OpenFlow Flow Programming
278       - Enables discovery and control of OpenFlow switches and the topoology
279         between them
280       - odl-openflowplugin-flow-services-ui
281       - all
282
283     * - OpenFlow Table Type Patterns
284       - Allows OpenFlow Table Type Patterns to be manually associated with
285         network elements
286       - odl-ttp-all
287       - all
288
289     * - Packetcable PCMM
290       - Enables flow-based dynamic QoS management of CMTS use in the DOCSIS
291         infrastructure and a policy server
292       - odl-packetcable-policy-server
293       - self+all
294
295     * - PCEP
296       - Enables support for PCEP
297       - odl-bgpcep-pcep
298       - all
299
300     * - RESTCONF API Support
301       - Enables REST API access to the MD-SAL including the data store
302       - odl-restconf
303       - all
304
305     * - SDNinterface
306       - Provides support for interaction and sharing of state between
307         (non-clustered) OpenDaylight instances
308       - odl-sdninterfaceapp-all
309       - all
310
311     * - SFC over L2
312       - Supports implementing Service Function Chaining using Layer 2
313         forwarding
314       - odl-sfcofl2
315       - self+all
316
317     * - SFC over LISP
318       - Supports implementing Service Function Chaining using LISP
319       - odl-sfclisp
320       - all
321
322     * - SFC over REST
323       - Supports implementing Service Function Chaining using REST CRUD
324         operations on network elements
325       - odl-sfc-sb-rest
326       - all
327
328     * - SFC over VXLAN
329       - Supports implementing Service Function Chaining using VXLAN tunnels
330       - odl-sfc-ovs
331       - self+all
332
333     * - SNMP Plugin
334       - Enables monitoring and control of network elements via SNMP
335       - odl-snmp-plugin
336       - all
337
338     * - SNMP4SDN
339       - Enables OpenFlow-like control of network elements via SNMP
340       - odl-snmp4sdn-all
341       - all
342
343     * - SSSD Federated Authentication
344       - Enables support for federated authentication using SSSD
345       - odl-aaa-sssd-plugin
346       - all
347
348     * - Secure tag eXchange Protocol (SXP)
349       - Enables distribution of shared tags to network devices
350       - odl-sxp-controller
351       - all
352
353     * - Time Series Data Repository (TSDR)
354       - Enables support for collecting, storing and querying time series data.
355         TSDR collects and supports the following collection data:
356         * OpenFlow statistics
357         * NETFLOW statistics
358         * sFlow statistics
359         * OpenFlow Controller metrics
360         * SNMP data
361         * SysLog data
362         * RestConf data
363         TSDR supports the following Data Stores:
364         * HSQLDB
365         * HBase
366         * Cassandra
367         TSDR Data Query REST API
368         TSDR supports OpenDaylight RESTCONF and API interfaces
369         for queries to all data stores.
370         TSDR supports an integrated ElasticSearch query.
371         TSDR supports a Grafana interface.
372
373       - odl-tsdr-openflow-statistics-collector
374         odl-tsdr-netflow-statistics-collector
375         odl-tsdr-sflow-statistics-collector
376         odl-tsdr-controller-metrics-collector
377         odl-tsdr-snmp-data-collector
378         odl-tsdr-syslog-collector
379         odl-tsdr-restconf-collector
380
381         odl-tsdr-core
382         odl-tsdr-hsqldb
383         odl-tsdr-hbase
384         odl-tsdr-cassandra
385       - all
386
387     * - Topology Processing Framework
388       - Enables merged and filtered views of network topologies
389       - odl-topoprocessing-framework
390       - all
391
392     * - Unified Secure Channel (USC)
393       - Enables support for secure, remote connections to network devices
394       - odl-usc-channel-ui
395       - all
396
397     * - VTN Manager
398       - Enables Virtual Tenant Network support
399       - odl-vtn-manager-rest
400       - self+all
401
402     * - VTN Manager Neutron
403       - Enables OpenStack Neutron support of VTN Manager
404       - odl-vtn-manager-neutron
405       - self+all
406
407
408 Other OpenDaylight features
409 ===========================
410
411 .. list-table:: Other OpenDaylight features
412     :widths: 10 25 10 5
413     :header-rows: 1
414
415     * - Feature Name
416       - Feature Description
417       - Karaf feature name
418       - Compatibility
419
420     * - OpFlex
421       - Provides OpFlex agent for Open vSwitch to enforce network policy, such
422         as GBP, for locally-attached virtual machines or containers
423       - n/a
424       - all
425
426     * - NeXt
427       - Provides a developer toolkit for designing network-centric topology
428         user interfaces
429       - n/a
430       - all
431
432
433 Experimental OpenDaylight Features
434 ==================================
435 The following functionality is labeled as experimental in this OpenDaylight
436 release and should be used accordingly. In general, it is not supposed to be
437 used in production unless its limitations are well understood by those
438 deploying it.
439
440 .. list-table:: Other features
441     :widths: 10 25 10 5
442     :header-rows: 1
443
444     * - Feature Name
445       - Feature Description
446       - Karaf feature name
447       - Compatibility
448
449     * - Authorization
450       - Enables configurable role-based authorization
451       - odl-aaa-authz
452       - all
453
454     * - ALTO
455       - Enables support for Application-Layer Traffic Optimization
456       - odl-alto-release
457       - self+all
458
459     * - CAPWAP
460       - Enables control of supported wireless APs
461       - odl-capwap-ac-rest
462       - all
463
464     * - Clustered Authentication
465       - Enables the use of the MD-SAL clustered data store for the
466         authentication database
467       - odl-aaa-authn-mdsal-cluster
468       - all
469
470     * - Controller Shield
471       - Provides controller security information to northbound applications
472       - odl-usecplugin
473       - all
474
475     * - GBP IO Visor Renderer
476       - Provides support for rendering Group Based Policy to IO Visor
477       - odl-groupbasedpolicy-iovisor
478       - all
479
480     * - Internet of Things Data Management
481       - Enables support for the oneM2M specification
482       - odl-iotdm-onem2m
483       - all
484
485     * - LISP Flow Mapping OpenStack Network Virtualization
486       - Experimental support for OpenStack Neutron virtualization
487       - odl-lispflowmapping-neutron
488       - self+all
489
490     * - Network Intent Composition (NIC)
491       - Provides abstraction layer for communcating network intents (including
492         a distributed intent mapping service REST API) using either Hazelcast
493         or the MD-SAL as the backing data store for intents
494       - odl-nic-core-hazelcast or odl-nic-core-mdsal
495       - all
496
497     * - NIC Console
498       - Provides a Karaf CLI extension for intent CRUD operations and mapping
499         service operations
500       - odl-nic-console
501       - all
502
503     * - NIC VTN renderer
504       - Virtual Tenant Network renderer for Network Intent Composition
505       - odl-nic-renderer-vtn
506       - self+all
507
508     * - NIC GBP renderer
509       - Group Based Policy renderer for Network Intent Composition
510       - odl-nic-renderer-gbp
511       - self+all
512
513     * - NIC OpenFlow renderer
514       - OpenFlow renderer for Network Intent Composition
515       - odl-nic-renderer-of
516       - self+all
517
518     * - NIC NEMO renderer
519       - NEtwork MOdeling renderer for Network Intent Composition
520       - odl-nic-renderer-nemo
521       - self+all
522
523     * - OVSDB NetVirt UI
524       - OVSDB DLUX UI
525       - odl-ovsdb-ui
526       - all
527
528     * - Secure Networking Bootstrap
529       - Defines a SNBi domain and associated white lists of devices to be
530         accommodated to the domain
531       - odl-snbi-all
532       - self+all
533
534     * - UNI Manager
535       - Initiates the development of data models and APIs to facilitate
536         configuration and provisioning connectivity services for OpenDaylight
537         applications and services
538       - odl-unimgr
539       - all
540
541     * - YANG PUBSUB
542       - Allows subscriptions to be placed on targeted subtrees of YANG
543         datastores residing on remote devices to obviate the need for
544         OpenDaylight to make continuous fetch requests
545       - odl-yangpush-rest
546       - all
547
548 Install support for REST APIs
549 =============================
550 Most components that offer REST APIs will automatically load the RESTCONF API
551 Support component, but if for whatever reason they seem to be missing, install
552 the “odl-restconf” feature to activate this support.