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