Merge "Add VTN Release Notes for Carbon"
[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.5.x-Boron.zip
44    distribution-karaf-0.5.x-Boron.zip
45    $ unzip distribution-karaf-0.5.x-Boron.zip
46    Archive:  distribution-karaf-0.5.x-Boron.zip
47       creating: distribution-karaf-0.5.x-Boron/
48       creating: distribution-karaf-0.5.x-Boron/configuration/
49       creating: distribution-karaf-0.5.x-Boron/data/
50       creating: distribution-karaf-0.5.x-Boron/data/tmp/
51       creating: distribution-karaf-0.5.x-Boron/deploy/
52       creating: distribution-karaf-0.5.x-Boron/etc/
53       creating: distribution-karaf-0.5.x-Boron/externalapps/
54       ...
55       inflating: distribution-karaf-0.5.x-Boron/bin/start.bat
56       inflating: distribution-karaf-0.5.x-Boron/bin/status.bat
57       inflating: distribution-karaf-0.5.x-Boron/bin/stop.bat
58    $ cd distribution-karaf-0.5.x-Boron
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-dlux-all
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 supports the following collection data:
356
357         * OpenFlow statistics
358         * NETFLOW statistics
359         * sFlow statistics
360         * OpenFlow Controller metrics
361         * SNMP data
362         * SysLog data
363         * RestConf data
364
365         TSDR supports the following data stores:
366
367         * HSQLDB
368         * HBase
369         * Cassandra
370
371         TSDR supports the default OpenDaylight RESTCONF and API interfaces and an
372         ElasticSearch interface for all data stores.
373       - odl-tsdr-core, odl-tsdr-hsqldb
374       - all
375
376     * - TSDR Data Collectors
377       - TSDR collector features include support for collecting the following
378         data:
379
380         * OpenFlow statistics
381         * NETFLOW statistics
382         * sFlow statistics
383         * OpenFlow Controller metrics
384         * SNMP data
385         * SysLog data
386         * RESTCONF data.
387
388       - * odl-tsdr-openflow-statistics-collector
389         * odl-tsdr-netflow-statistics-collector
390         * odl-tsdr-sflow-statistics-collector
391         * odl-tsdr-controller-metrics-collector
392         * odl-tsdr-snmp-data-collector
393         * odl-tsdr-syslog-collector
394         * odl-tsdr-restconf-collector
395       - all
396
397     * - TSDR Data Stores
398       - TSDR enables support for the following data stores:
399         * HSQLDB
400         * HBase
401         * Cassandra
402       - * odl-tsdr-hsqldb
403         * odl-tsdr-hbase
404         * odl-tsdr-cassandra
405       - all
406
407     * - TSDR Data Query
408       - TSDR supports the default OpenDaylight RESTCONF and ODL API interfaces
409         for queries to all data stores.  It also supports an integrated ElasticSearch query.
410       - odl-tsdr-elasticsearch
411       - all
412
413     * - Topology Processing Framework
414       - Enables merged and filtered views of network topologies
415       - odl-topoprocessing-framework
416       - all
417
418     * - Unified Secure Channel (USC)
419       - Enables support for secure, remote connections to network devices
420       - odl-usc-channel-ui
421       - all
422
423     * - VTN Manager
424       - Enables Virtual Tenant Network support
425       - odl-vtn-manager-rest
426       - self+all
427
428     * - VTN Manager Neutron
429       - Enables OpenStack Neutron support of VTN Manager
430       - odl-vtn-manager-neutron
431       - self+all
432
433
434 Other OpenDaylight features
435 ===========================
436
437 .. list-table:: Other OpenDaylight features
438     :widths: 10 25 10 5
439     :header-rows: 1
440
441     * - Feature Name
442       - Feature Description
443       - Karaf feature name
444       - Compatibility
445
446     * - OpFlex
447       - Provides OpFlex agent for Open vSwitch to enforce network policy, such
448         as GBP, for locally-attached virtual machines or containers
449       - n/a
450       - all
451
452     * - NeXt
453       - Provides a developer toolkit for designing network-centric topology
454         user interfaces
455       - n/a
456       - all
457
458
459 Experimental OpenDaylight Features
460 ==================================
461 The following functionality is labeled as experimental in this OpenDaylight
462 release and should be used accordingly. In general, it is not supposed to be
463 used in production unless its limitations are well understood by those
464 deploying it.
465
466 .. list-table:: Other features
467     :widths: 10 25 10 5
468     :header-rows: 1
469
470     * - Feature Name
471       - Feature Description
472       - Karaf feature name
473       - Compatibility
474
475     * - Authorization
476       - Enables configurable role-based authorization
477       - odl-aaa-authz
478       - all
479
480     * - ALTO
481       - Enables support for Application-Layer Traffic Optimization
482       - odl-alto-core
483       - self+all
484
485     * - CAPWAP
486       - Enables control of supported wireless APs
487       - odl-capwap-ac-rest
488       - all
489
490     * - Clustered Authentication
491       - Enables the use of the MD-SAL clustered data store for the
492         authentication database
493       - odl-aaa-authn-mdsal-cluster
494       - all
495
496     * - Controller Shield
497       - Provides controller security information to northbound applications
498       - odl-usecplugin
499       - all
500
501     * - GBP IO Visor Renderer
502       - Provides support for rendering Group Based Policy to IO Visor
503       - odl-groupbasedpolicy-iovisor
504       - all
505
506     * - Internet of Things Data Management
507       - Enables support for the oneM2M specification
508       - odl-iotdm-onem2m
509       - all
510
511     * - LISP Flow Mapping OpenStack Network Virtualization
512       - Experimental support for OpenStack Neutron virtualization
513       - odl-lispflowmapping-neutron
514       - self+all
515
516     * - Network Intent Composition (NIC)
517       - Provides abstraction layer for communcating network intents (including
518         a distributed intent mapping service REST API) using either Hazelcast
519         or the MD-SAL as the backing data store for intents
520       - odl-nic-core-hazelcast or odl-nic-core-mdsal
521       - all
522
523     * - NIC Console
524       - Provides a Karaf CLI extension for intent CRUD operations and mapping
525         service operations
526       - odl-nic-console
527       - all
528
529     * - NIC VTN renderer
530       - Virtual Tenant Network renderer for Network Intent Composition
531       - odl-nic-renderer-vtn
532       - self+all
533
534     * - NIC GBP renderer
535       - Group Based Policy renderer for Network Intent Composition
536       - odl-nic-renderer-gbp
537       - self+all
538
539     * - NIC OpenFlow renderer
540       - OpenFlow renderer for Network Intent Composition
541       - odl-nic-renderer-of
542       - self+all
543
544     * - NIC NEMO renderer
545       - NEtwork MOdeling renderer for Network Intent Composition
546       - odl-nic-renderer-nemo
547       - self+all
548
549     * - OVSDB NetVirt UI
550       - OVSDB DLUX UI
551       - odl-ovsdb-ui
552       - all
553
554     * - Secure Networking Bootstrap
555       - Defines a SNBi domain and associated white lists of devices to be
556         accommodated to the domain
557       - odl-snbi-all
558       - self+all
559
560     * - UNI Manager
561       - Initiates the development of data models and APIs to facilitate
562         configuration and provisioning connectivity services for OpenDaylight
563         applications and services
564       - odl-unimgr
565       - all
566
567     * - YANG PUBSUB
568       - Allows subscriptions to be placed on targeted subtrees of YANG
569         datastores residing on remote devices to obviate the need for
570         OpenDaylight to make continuous fetch requests
571       - odl-yangpush-rest
572       - all
573
574 Install support for REST APIs
575 =============================
576 Most components that offer REST APIs will automatically load the RESTCONF API
577 Support component, but if for whatever reason they seem to be missing, install
578 the “odl-restconf” feature to activate this support.