== Getting and Installing OpenDaylight Lithium === Downloading and installing OpenDaylight Lithium The default distribution can be found on the OpenDaylight software download page: http://www.opendaylight.org/software/downloads The Karaf distribution has no features enabled by default. However, all of the features are available to be installed. NOTE: For compatibility reasons, you cannot enable all the features simultaneously. We try to document known incompatibilities <<_installing_the_components,below>>. ==== Running the karaf distribution To run the Karaf distribution: . Unzip the zip file. . Navigate to the directory. . run `./bin/karaf`. For Example: [frame="none"] |=== a| ---- $ ls distribution-karaf-0.3.0-Lithium.zip distribution-karaf-0.3.0-Lithium.zip $ unzip distribution-karaf-0.3.0-Lithium.zip Archive: distribution-karaf-0.3.0-Lithium.zip creating: distribution-karaf-0.3.0-Lithium/ creating: distribution-karaf-0.3.0-Lithium/configuration/ creating: distribution-karaf-0.3.0-Lithium/data/ creating: distribution-karaf-0.3.0-Lithium/data/tmp/ creating: distribution-karaf-0.3.0-Lithium/deploy/ creating: distribution-karaf-0.3.0-Lithium/etc/ creating: distribution-karaf-0.3.0-Lithium/externalapps/ ... inflating: distribution-karaf-0.3.0-Lithium/bin/start.bat inflating: distribution-karaf-0.3.0-Lithium/bin/status.bat inflating: distribution-karaf-0.3.0-Lithium/bin/stop.bat $ cd distribution-karaf-0.3.0-Lithium $ ./bin/karaf ________ ________ .__ .__ .__ __ \_____ \ ______ ____ ____ \______ \ _____ ___.__.\| \| \|__\| ____ \| \|___/ \|_ / \| \\____ \_/ __ \ / \ \| \| \\__ \< \| \|\| \| \| \|/ ___\\| \| \ __\ / \| \ \|_> > ___/\| \| \\| ` \/ __ \\___ \|\| \|_\| / /_/ > Y \ \| \_______ / __/ \___ >___\| /_______ (____ / ____\|\|____/__\___ /\|___\| /__\| \/\|__\| \/ \/ \/ \/\/ /_____/ \/ ---- * Press *tab* for a list of available commands * Typing *[cmd] --help* will show help for a specific command. * Press *ctrl-d* or type *system:shutdown* or *logout* to shutdown OpenDaylight. |=== === Installing the components The section describes a list of components in OpenDaylight Lithium and the relevant Karaf feature to install in order to enable that component. To install a feature use the following command: ----- feature:install ----- For Example: ----- feature:install ----- Multiple features can be installed using the following command: ----- feature:install ... ----- .Lithium Components [options="header",cols="18%,50%,18%,14%"] |==== | Component Name | Component Description | Karaf feature name | Compatibility | ALTO | Enable support for Application-Layer Traffic Optimization | odl-alto-all | self+all | BGP | Enables support for BGP | odl-bgpcep-bgp-all | all | CAPWAP | Enables control of supported wireless APs | odl-capwap-ac-rest | all | DIDM | Device Identification and Driver Management | odl-didm-identification-api, odl-didm-identification, and odl-didm-drivers-api | all | Group Based Policy | Enable Endpoint Registry and Policy Repository REST APIs and associated functionality for Group Based Policy | odl-groupbasedpolicy-ofoverlay | self+all | Internet of Things Data Management | Enables support for the oneM2M specification | odl-iotdm-onem2m | all | L2 Switch | Provides L2 (Ethernet) forwarding across connected OppenFlow switches and support for host tracking | odl-l2switch-switch-ui | self+all | LACP | Enable support for the Link Aggregation Control Protocol | odl-lacp-ui | self+all | LISP Flow Mapping | Enable LISP control plane services including the mapping system services REST API and LISP protocol SB plugin | odl-lispflowmapping-all | all | MD-SAL Clustering | Provides support for operating a cluster of OpenDaylight instances | odl-mdsal-clustering | special | NETCONF over SSH | Provides support to manage NETCONF-enabled devices over SSH | odl-netconf-connector-ssh | all | Network Intent Composition | Enable support for high-level network control via intents | odl-nic-core | self+all | OVS Management | Enables OVS management using OVSDB plugin and its associated OVSDB northbound APIs | odl-ovsdb-all | all | OVSDB OpenStack Neutron | OpenStack Network Virtualization using OpenDaylight's OVSDB support | odl-ovsdb-openstack | self+all | OpFlex | Enables support for the OpFlex protocol | special (see user/developer guide) | all | OpenFlow Flow Programming | Enables discovery and control of OpenFlow switches and the topology between them | odl-openflowplugin-flow-services-ui | all | OpenFlow Table Type Patterns | Allows OpenFlow Table Type Patterns to be manually associated with network elements | odl-ttp-all | all | PCEP | Enables support for PCEP | odl-bgpcep-pcep-all | all | Packetcable PCMM | Enables flow-based dynamic QoS management of CMTS using in the DOCSIS infrastructure | odl-packetcable-all | self+all | Packetcable Policy Server | Enables support for the PacketCable policy server | odl-packetcable-policy-server-all | self+all | RESTCONF API Support | Enables REST API access to the MD-SAL including the data store | odl-restconf | all | SDN Interface | Provides support for interaction and sharing of state between (non-clustered) OpenDaylight instances | odl-sdninterfaceapp-all | all | SFC over L2 | Supports implementing SFC using Layer 2 forwarding | odl-sfcofl2 | self+all | SFC over LISP | Supports implementing SFC using LISP | odl-sfclisp | all | SFC over REST | Supports implementing SFC using REST CRUD operations on network elements | odl-sfc-sb-rest | all | SFC over VXLAN | Supports implementing SFC using VXLAN tunnels | odl-sfc-ovs | self+all | SNMP Plugin | Enables monitoring and control of network elements via SNMP | odl-snmp-plugin | all | SNMP4SDN | Enables OpenFlow-like control of network elements via SNMP | odl-snmp4sdn-all | all | SSSD Federated Authentication | Enable support for federated authentication using SSSD | odl-aaa-sssd-plugin | all | Secure Networking Bootstrap | Defines a SNBI domain and associated white lists of devices to be accommodated to the domain | odl-snbi-all | self+all | Secure tag eXchange Protocol (SXP) | Enables distribution of shared tags to network devices | odl-sxp-controller | all | Service Flow Chaining (SFC) | Enables support for applying chains of network services to certain traffic | odl-sfc-all | all | Time Series Data Repository (TSDR) | Enables historical tracking of OpenFlow statistics | odl-tsdr-all | self+all | Topology Processing Framework | Enables merged and filtered views of network topologies | odl-topoprocessing-framework | all | Unified Secure Channel (USC) | Enables support for secure, remote connections to network devices | odl-usc-channel-ui | all | VPN Service | Enables support for OpenStack VPNaaS | odl-vpnservice-core | all | VTN Manager | Enables Virtual Tenant Network support | odl-vtn-manager-rest | self+all | VTN Manager Neutron | Enables OpenStack Neutron support of VTN Manager | odl-vtn-manager-neutron | self+all |==== In the table a compatibility value of *all* means that it can be run with other features. A value of *self+all* indicates that the feature can be installed with other features with a value of *all*, but may interact badly other features with a value of *self+all*. .Experimental Lithium Components [options="header",cols="18%,50%,18%,14%"] |==== | Component Name | Component Description | Karaf feature name | Compatibility | Persistence | Enables saving of data to external databases | odl-persistence-api | self+all | Reservation | Enables bandwidth calendaring using the TL1 protocol | odl-reservation-models | all |==== ==== Listing available features To find the complete list of Karaf features, run the following command: ---- feature:list ---- To list the installed Karaf features, run the following command: ---- feature:list -i ---- // Commenting out this section until we can actually provide some content. // // === Verifying your installation // TBD === Installing support for REST APIs Most components that offer REST APIs will automatically load the RESTCONF API Support component, but if for whatever reason they seem to be missing, you can activate this support by installing the `odl-restconf` feature. // Commenting out this section until we can actually provide a tutorial that a // user could follow // // === Making RESTCONF calls // RESTCONF is a protocol that provides a programmatic interface over HTTP to access data that is defin // ed in a YANG model and stored in data stores defined in the NETCONF protocol. // RESTCONF protocol is implemented in `sal-rest-connector` artifact that is packed with the Karaf bundle. // For more information on the RESTCONF protocol, refer to http://tools.ietf.org/html/draft-bierman-net // conf-restconf-02 // // RESTCONF allows access to datastores in the controller. // The datastores available are: // // * config - contains data inserted using controller // * operational - contains other data // // ==== Making a RESCONF call using cURL // // TBD // Commenting this out as it appears to be out of date and there is already // information about installing and using DLUX above. // //=== Installing the DLUX web interface // //The OpenDaylight web interface; DLUX, draws information from topology and host databases to display information about the topology of the network, //flow statistics, host locations. You can either use DLUX as a stand-alone plug-in or integrate with OpenDaylight. //To install DLUX as a standalone application, refer to https://wiki.opendaylight.org/view/OpenDaylight_DLUX:Setup_and_Run //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 //would like to access using DLUX. Each feature can be enabled or disabled separately. // //[IMPORTANT] //Ensure that you have created a topology and enabled MD-SAL feature in the Karaf distribution before you use DLUX for network management. //For more information about enabling the Karaf features for DLUX, refer to https://wiki.opendaylight.org/view/OpenDaylight_DLUX:DLUX_Karaf_Feature === Installing MD-SAL clustering The MD-SAL clustering feature has "special" compatibility criteria. You *must* install clustering, before other features are installed. To install clustering, run the following command on the Karaf CLI console: ---- feature:install odl-mdsal-clustering ---- // Commenting out this section until we can actually provide a tutorial that // walks through getting everything set up. Maybe we should just point to the // L2 Switch docs? // // === Getting started with OpenFlow and Mininet // // ==== Downloading and installing Mininet // // Mininet downloads are available at: http://mininet.org // // The OVS version must be 2.1 or earlier. // // The instructions for installation are available at: http://mininet.org. // // ===== Verifying mininet installation // To verify your mininet installation run the following command: // `test=pingall` // // ---- // odluser@odl-vm:~\$ sudo mn --test=pingall // *** Creating network // *** Adding controller // *** Adding hosts: // h1 h2 // *** Adding switches: // s1 // *** Adding links: // (h1, s1) (h2, s1) // *** Configuring hosts // h1 h2 // *** Starting controller // *** Starting 1 switches // s1 OVSswitch opts: // *** Ping: testing ping reachability // h1 -> h2 // h2 -> h1 // *** Results: 0% dropped (2/2 received) // *** Stopping 1 switches // s1 .. // *** Stopping 2 hosts // h1 h2 // *** Stopping 1 controllers // c0 // *** Done // completed in 0.541 seconds // ---- // // ==== Enabling the OpenFlow plugin and L2 Switch // // To enable these features, run: // // ---- // feature:install odl-l2switch-switch-ui // ---- // // This will install the OpenFlow plugin and the L2 Switch application. // // ==== Running Mininet using OpenDaylight as the controller // // TODO