Adding the feature table from Denise's GSG
[docs.git] / manuals / getting-started-guide / src / main / asciidoc / general_installation.adoc
1 == Getting and Installing OpenDaylight
2
3 === Downloading and installing OpenDaylight
4
5 The default distribution can be found on the OpenDaylight software
6 download page: http://www.opendaylight.org/software/downloads
7
8 The Karaf distribution has no features enabled by default. However, all
9 of the features are available to be installed.
10
11 NOTE: For compatibility reasons, you cannot enable all the features
12 simultaneously. We try to document known incompatibilities
13 <<_installing_the_components,below>>.
14
15 ==== Running the karaf distribution
16 To run the Karaf distribution:
17
18 . Unzip the zip file.
19 . Navigate to the directory.
20 . run `./bin/karaf`.
21
22 For Example:
23
24 [frame="none"]
25 |===
26 a|
27 ----
28 $ ls distribution-karaf-0.4.0-Beryllium.zip
29 distribution-karaf-0.4.0-Beryllium.zip
30 $ unzip distribution-karaf-0.4.0-Beryllium.zip
31 Archive:  distribution-karaf-0.4.0-Beryllium.zip
32    creating: distribution-karaf-0.4.0-Beryllium/
33    creating: distribution-karaf-0.4.0-Beryllium/configuration/
34    creating: distribution-karaf-0.4.0-Beryllium/data/
35    creating: distribution-karaf-0.4.0-Beryllium/data/tmp/
36    creating: distribution-karaf-0.4.0-Beryllium/deploy/
37    creating: distribution-karaf-0.4.0-Beryllium/etc/
38    creating: distribution-karaf-0.4.0-Beryllium/externalapps/
39 ...
40   inflating: distribution-karaf-0.4.0-Beryllium/bin/start.bat
41   inflating: distribution-karaf-0.4.0-Beryllium/bin/status.bat
42   inflating: distribution-karaf-0.4.0-Beryllium/bin/stop.bat
43 $ cd distribution-karaf-0.4.0-Beryllium
44 $ ./bin/karaf
45
46     ________                       ________                .__  .__       .__     __
47     \_____  \ ______   ____   ____ \______ \ _____  ___.__.\|  \| \|__\| ____ \|  \|___/  \|_
48      /   \|   \\____ \_/ __ \ /    \ \|    \|  \\__  \<   \|  \|\|  \| \|  \|/ ___\\|  \|  \   __\
49     /    \|    \  \|_> >  ___/\|   \|  \\|    `   \/ __ \\___  \|\|  \|_\|  / /_/  >   Y  \  \|
50     \_______  /   __/ \___  >___\|  /_______  (____  / ____\|\|____/__\___  /\|___\|  /__\|
51             \/\|__\|        \/     \/        \/     \/\/            /_____/      \/
52
53
54 ----
55 * Press *tab* for a list of available commands
56 * Typing *[cmd] --help* will show help for a specific command.
57 * Press *ctrl-d* or type *system:shutdown* or *logout* to shutdown OpenDaylight.
58 |===
59
60 === Installing the components
61
62 The section describes a list of components in OpenDaylight Beryllium and
63 the relevant Karaf feature to install in order to enable that component.
64
65 To install a feature use the following command:
66 -----
67 feature:install
68 -----
69 For Example:
70
71 -----
72 feature:install <feature-name>
73 -----
74
75 Multiple features can be installed using the following command:
76
77 -----
78 feature:install <feature1-name> <feature2-name> ... <featureN-name>
79 -----
80
81 .Beryllium Features
82
83 [options="header",cols="18%,50%,18%,14%"]
84 |====
85 | Feature Name  | Feature Description | Karaf feature name | Compatibility
86 | Authentication | Enables authentication with support for federation using Apache Shiro | odl-aaa-shiro | all
87 | BGP             | Provides support for Border Gateway Protocol (including Link-State Distribution) as a source of L3 topology information | odl-bgpcep-bgp | all
88 | BMP            | Provides support for BGP Monitoring Protocol as a monitoring station    | odl-bgpcep-bmp     | all
89 | DIDM                               | Device Identification and Driver Management | odl-didm-all | all
90 | Centinel        | Provides interfaces for streaming analytics | odl-centinel-all | all
91 | DLUX            | Provides an intuitive graphical user interface for OpenDaylight |  odl-dlux-all    | all
92 | Fabric as a Service (FaaS) | Creates a common abstraction layer on top of a physical network so northbound APIs or services can be more easily mapped onto the physical network as a concrete device configuration.  |  odl-faas-all  | self+all
93 | Group Based Policy (GBP)           | Enables Endpoint Registry and Policy Repository REST APIs and associated functionality for Group Based Policy with the default renderer for OpenFlow renderers | odl-groupbasedpolicy-ofoverlay | self+all
94 | GBP User Interface                 | Enables a web-based user interface for Group Based Policy | odl-groupbasedpolicy-ui | all
95 | GBP FaaS renderer                  | Enables the Fabric as a Service renderer for Group Based Policy | odl-groupbasedpolicy-faas | self+all
96 | GBP Neutron Support                | Provides OpenStack Neutron support using Group Based Policy | odl-groupbasedpolicy-neutronmapper | all
97 | L2 Switch                          | Provides L2 (Ethernet) forwarding across connected OpenFlow switches and support for host tracking | odl-l2switch-switch-ui | self+all
98 | LACP                               | Enables support for the Link Aggregation Control Protocol | odl-lacp-ui | self+all
99 | LISP Flow Mapping                  | Enables LISP control plane services including the mapping system services REST API and LISP protocol SB plugin | odl-lispflowmapping-msmr | all
100 | NEMO CLI | Provides intent mapping and implementation with CLI for legacy devices    | odl-nemo-cli-renderer |  all
101 | NEMO OpenFlow | Provides intent mapping and implementation for OpenFlow devices    | odl-nemo-openflow-renderer | self+all
102 | NetIDE        | Enables portability and cooperation inside a single network by using a client/server multi-controller architecture    |    odl-netide-rest        | all
103 | NETCONF over SSH                   | Provides support to manage NETCONF-enabled devices over SSH | odl-netconf-connector-ssh | all
104 | OF-CONFIG            | Enables remote configuration of OpenFlow datapaths    | odl-of-config-rest     | all
105 | OVSDB OpenStack Neutron            | OpenStack Network Virtualization using OpenDaylight's OVSDB support | odl-ovsdb-openstack | all
106 | OVSDB Southbound | OVSDB MDSAL southbound plugin for the Open_vSwitch schema | odl-ovsdb-southbound-impl-ui | all
107 | OVSDB HWVTEP Southbound | OVSDB MDSAL hwvtep southbound plugin for the hw_vtep schema | odl-ovsdb-hwvtepsouthbound-ui | all
108 | OVSDB NetVirt SFC | OVSDB NetVirt support for SFC | odl-ovsdb-sfc-ui | all
109 | OpenFlow Flow Programming          | Enables discovery and control of OpenFlow switches and the topology between them | odl-openflowplugin-flow-services-ui | all
110 | OpenFlow Table Type Patterns       | Allows OpenFlow Table Type Patterns to be manually associated with network elements | odl-ttp-all | all
111 | Packetcable PCMM                   | Enables flow-based dynamic QoS management of CMTS use in the DOCSIS infrastructure and a policy server | odl-packetcable-policy-server | self+all
112 | PCEP |  Enables support for PCEP | odl-bgpcep-pcep | all
113 | RESTCONF API Support               | Enables REST API access to the MD-SAL including the data store | odl-restconf | all
114 | SDNinterface                      | Provides support for interaction and sharing of state between (non-clustered) OpenDaylight instances | odl-sdninterfaceapp-all | all
115 | SFC over L2                        | Supports implementing Service Function Chaining using Layer 2 forwarding | odl-sfcofl2 | self+all
116 | SFC over LISP                      | Supports implementing Service Function Chaining using LISP | odl-sfclisp | all
117 | SFC over REST                      | Supports implementing Service Function Chaining using REST CRUD operations on network elements | odl-sfc-sb-rest | all
118 | SFC over VXLAN                     | Supports implementing Service Function Chaining using VXLAN tunnels | odl-sfc-ovs | self+all
119 | SNMP Plugin                        | Enables monitoring and control of network elements via SNMP | odl-snmp-plugin | all
120 | SNMP4SDN                           | Enables OpenFlow-like control of network elements via SNMP | odl-snmp4sdn-all | all
121 | SSSD Federated Authentication      | Enables support for federated authentication using SSSD | odl-aaa-sssd-plugin | all
122 | Secure tag eXchange Protocol (SXP) | Enables distribution of shared tags to network devices | odl-sxp-controller | all
123 | Time Series Data Repository (TSDR) | Enables support for storing and querying time series data with the default data collector for OpenFlow statistics the default data store for HSQLDB | odl-tsdr-hsqldb-all | all
124 | TSDR Data Collectors               | Enables support for various TSDR data sources (collectors) including OpenFlow statistics, NetFlow statistics, SNMP data, Syslog, and OpenDaylight (controler) metrics | odl-tsdr-openflow-statistics-collector, odl-tsdr-netflow-statistics-collector, odl-tsdr-snmp-data-collector, odl-tsdr-syslog-collector, and/or odl-tsdr-controller-metrics-collector | all
125 | TSDR Data Stores                   | Enables support for TSDR data stores including HSQLDB, HBase, and Cassandra | odl-tsdr-hsqldb, odl-tsdr-hbase, or odl-tsdr-cassandra | all
126 | Topology Processing Framework      | Enables merged and filtered views of network topologies | odl-topoprocessing-framework | all
127 | Unified Secure Channel (USC)       | Enables support for secure, remote connections to network devices | odl-usc-channel-ui | all
128 | VPN Service                        | Enables support for OpenStack VPNaaS | odl-vpnservice-core | all
129 | VTN Manager                        | Enables Virtual Tenant Network support | odl-vtn-manager-rest | self+all
130 | VTN Manager Neutron                | Enables OpenStack Neutron support of VTN Manager | odl-vtn-manager-neutron | self+all
131 |====
132
133
134 ==== Other Beryllium features
135
136 .Other Beryllium features
137 [options="header",cols="18%,50%,18%,14%"]
138 |====
139 | Feature Name                     | Description | Feature name | Compatibility
140 | OpFlex    | Provides OpFlex Agent for Open VSwitch to enforce network policy, such as GBP, for locally-attached virtual machines or containers    | n/a | all
141 | NeXt            | Provides a developer toolkit for designing network-centric topology user interfaces | n/a | all
142 |====
143
144
145 ==== Beryllium experimental features
146 The following functionality is labeled as experimental in OpenDaylight Beryllium and should be used accordingly. In general, it is not supposed to be used in production unless its limitations are well understood by those deploying it.
147
148
149 .Experimental Beryllium Features
150 [options="header",cols="18%,50%,18%,14%"]
151 |====
152 | Feature Name                     | Description | Karaf feature name | Compatibility
153 | Authorization | Enables configurable role-based authorization | odl-aaa-authz | all
154 | ALTO                               | Enables support for Application-Layer Traffic Optimization | odl-alto-core | self+all
155 | CAPWAP                             | Enables control of supported wireless APs | odl-capwap-ac-rest | all
156 | Clustered Authentication | Enables the use of the MD-SAL clustered data store for the authentication database | odl-aaa-authn-mdsal-cluster | all
157 | Controller Shield        | Provides controller security information to northbound applications            | odl-usecplugin | all
158 | GPB IO Visor Renderer | Provides support for rendering Group Based Policy to IO Visor | odl-groupbasedpolicy-iovisor | all
159 | Internet of Things Data Management | Enables support for the oneM2M specification | odl-iotdm-onem2m | all
160 | LISP Flow Mapping OpenStack Network Virtualization   | Experimental support for OpenStack Neutron virtualization | odl-lispflowmapping-neutron | self+all
161 | Messaging4Transport        | Introduces an AMQP Northbound to MD-SAL    | odl-messaging4transport | all
162 | Network Intent Composition (NIC) | Provides abstraction layer for communicating network intents (including a distributed intent mapping service REST API) using either Hazelcast or the MD-SAL as the backing data store for intents | odl-nic-core-hazelcast or  odl-nic-core-mdsal |  all
163 | NIC Console    |  Provides a Karaf CLI extension for intent CRUD operations and mapping service operations    | odl-nic-console | all
164 | NIC VTN renderer |  Virtual Tenant Network renderer for Network Intent Composition     | odl-nic-renderer-vtn       |    self+all
165 | NIC GBP renderer       | Group Based Policy renderer for Network Intent Composition    | odl-nic-renderer-gbp        | self+all
166 | NIC OpenFlow renderer       | OpenFlow renderer for Network Intent Composition        | odl-nic-renderer-of     | self+all
167 | NIC NEMO renderer       | NEtwork MOdeling renderer for Network Intent Composition    |  odl-nic-renderer-nemo    | self+all
168 | OVSDB NetVirt UI | OVSDB DLUX UI | odl-ovsdb-ui | all
169 | Secure Networking Bootstrap        | Defines a SNBi domain and associated white lists of devices to be accommodated to the domain | odl-snbi-all | self+all
170 | UNI Manager        | Initiates the development of data models and APIs to facilitate configuration and provisioning connectivity services    for OpenDaylight applications and services    | odl-unimgr     | all
171 | YANG PUBSUB     |   Allows subscriptions to be placed on targeted subtrees of YANG datastores residing on remote devices to obviate the need for OpenDaylight to make continuous fetch requests     | odl-yangpush-rest | all
172 |====
173
174 ==== Listing available features
175 To find the complete list of Karaf features, run the following command:
176
177 ----
178 feature:list
179 ----
180
181 To list the installed Karaf features, run the following command:
182
183 ----
184 feature:list -i
185 ----
186
187 // Commenting out this section until we can actually provide some content.
188 //
189 // === Verifying your installation
190 // TBD
191
192 === Installing support for REST APIs
193 Most components that offer REST APIs will automatically load the RESTCONF API Support
194 component, but if for whatever reason they seem to be missing, you can activate this
195 support by installing the `odl-restconf` feature.
196
197 // Commenting out this section until we can actually provide a tutorial that a
198 // user could follow
199 //
200 // === Making RESTCONF calls
201 // RESTCONF is a protocol that provides a programmatic interface over HTTP to access data that is defin
202 // ed in a YANG model and stored in data stores defined in the NETCONF protocol.
203 // RESTCONF protocol is implemented in `sal-rest-connector` artifact that is packed with the Karaf bundle.
204 // For more information on the RESTCONF protocol, refer to http://tools.ietf.org/html/draft-bierman-net
205 // conf-restconf-02
206 //
207 // RESTCONF allows access to datastores in the controller.
208 // The datastores available are:
209 //
210 // * config - contains data inserted using controller
211 // * operational - contains other data
212 //
213 // ==== Making a RESCONF call using cURL
214 //
215 // TBD
216
217 // Commenting this out as it appears to be out of date and there is already
218 // information about installing and using DLUX above.
219 //
220 //=== Installing the DLUX web interface
221 //
222 //The OpenDaylight web interface; DLUX, draws information from topology and host databases to display information about the topology of the network,
223 //flow statistics, host locations. You can either use DLUX as a stand-alone plug-in or integrate with OpenDaylight.
224 //To install DLUX as a standalone application, refer to  https://wiki.opendaylight.org/view/OpenDaylight_DLUX:Setup_and_Run
225 //To integrate with OpenDaylight you must enable DLUX Karaf feature. You can enable AD-SAL, MD-SAL and various other bundles within Karaf depending on the features you
226 //would like to access using DLUX. Each feature can be enabled or disabled separately.
227 //
228 //[IMPORTANT]
229 //Ensure that you have created a topology and enabled MD-SAL feature in the Karaf distribution before you use DLUX for network management.
230 //For more information about enabling the Karaf features for DLUX, refer to https://wiki.opendaylight.org/view/OpenDaylight_DLUX:DLUX_Karaf_Feature
231
232 === Installing MD-SAL clustering
233 The MD-SAL clustering feature has "special" compatibility criteria. You *must*
234 install clustering, before other features are installed. To install clustering,
235 run the following command on the Karaf CLI console:
236
237 ----
238 feature:install odl-mdsal-clustering
239 ----
240
241 // Commenting out this section until we can actually provide a tutorial that
242 // walks through getting everything set up. Maybe we should just point to the
243 // L2 Switch docs?
244 //
245 // === Getting started with OpenFlow and Mininet
246 //
247 // ==== Downloading and installing Mininet
248 //
249 // Mininet downloads are available at: http://mininet.org
250 //
251 // The OVS version must be 2.1 or earlier.
252 //
253 // The instructions for installation are available at: http://mininet.org.
254 //
255 // ===== Verifying mininet installation
256 // To verify your mininet installation run the following command:
257 // `test=pingall`
258 //
259 // ----
260 // odluser@odl-vm:~\$ sudo mn --test=pingall
261 // *** Creating network
262 // *** Adding controller
263 // *** Adding hosts:
264 // h1 h2
265 // *** Adding switches:
266 // s1
267 // *** Adding links:
268 // (h1, s1) (h2, s1)
269 // *** Configuring hosts
270 // h1 h2
271 // *** Starting controller
272 // *** Starting 1 switches
273 // s1 OVSswitch opts:
274 // *** Ping: testing ping reachability
275 // h1 -> h2
276 // h2 -> h1
277 // *** Results: 0% dropped (2/2 received)
278 // *** Stopping 1 switches
279 // s1 ..
280 // *** Stopping 2 hosts
281 // h1 h2
282 // *** Stopping 1 controllers
283 // c0
284 // *** Done
285 // completed in 0.541 seconds
286 // ----
287 //
288 // ==== Enabling the OpenFlow plugin and L2 Switch
289 //
290 // To enable these features, run:
291 //
292 // ----
293 // feature:install odl-l2switch-switch-ui
294 // ----
295 //
296 // This will install the OpenFlow plugin and the L2 Switch application.
297 //
298 // ==== Running Mininet using OpenDaylight as the controller
299 //
300 // TODO