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