XSQL Overview ....................12 Installing XSQL ....................12 XSQL Console Commands ................12 XSQL Queries ....................13 4. Setting Up Clustering on an OpenDaylight Controller ......... 15 Clustering Overview ..................15 Single Node Clustering .................. 15 Multiple Node Clustering ................16 II.
Page 4
User Guide List of Figures 2.1. DLUX Modules ......................4 2.2. Topology Module ..................... 6 2.3. Yang UI ........................7 2.4. Yang API Specification ....................8 2.5. Yang UI API Specification ..................9 2.6. DLUX Yang Topology ..................... 10 2.7. DLUX List Warnings ....................11 2.8.
Page 5
User Guide List of Tables 3.1. Supported XSQL Console Commands ..............12 3.2. Supported XSQL Query Criteria Operators .............. 13...
Part I. Getting Started with Opendaylight This first part of the user guide covers the basic user operations of the OpenDaylight Release using the generic base functionality.
User Guide 1. OpenDaylight Controller Overview The OpenDaylight controller is JVM software and can be run from any operating system and hardware as long as it supports Java. The controller is an implementation of the Software Defined Network (SDN) concept and makes use of the following tools: •...
SAL services to obtain network related information and use it to provide network management capabilities. Getting Started with DLUX You can either use DLUX as a stand-alone plug-in or integrate with the Opendaylight controller. To install DLUX as a standalone application see OpenDaylight DLUX:Setup and Run.
To get a complete DLUX feature list, install restconf, odl l2 switch, and switch while you start the DLUX distribution. For more information about enabling features on DLUX, see OpenDaylight DLUX:DLUX Karaf Feature. Figure 2.1. DLUX Modules Modules that use the MD SAL based apis are : •...
User Guide Modules that use the AD SAL based apis are: • Connection manager • Container • Network • Flows Note DLUX enables only those modules, whose APIs are responding. If you enable just the MD-SAL in beginning and then start dlux, only MD-SAL related tabs will be visible.
3. Zoom in and zoom out using mouse scroll to verify topology for huge topologies. Figure 2.2. Topology Module Interacting with the Open Daylight Controller (ODL) The Yang UI module enables you to interact with the ODL. For more information about Yang Tools, see https://wiki.opendaylight.org/view/YANG_Tools:Main [YANG_Tools].
User Guide Figure 2.3. Yang UI To use Yang UI: 1. Select Yang UI on the left pane. The right pane is divided in two parts. 2. The top part displays a tree of APIs and subAPIs and buttons to call possible functions (GET, POST, PUT, DELETE, …).
User Guide Figure 2.4. Yang API Specification 3. The bottom part of the right pane displays inputs according to the chosen subAPI. Every subAPI is represented by list elements of list statement. It is possible to have a many list elements of one list. + For example, a device can store multiple flows. In this case “flow” is name of the list and every list element is different by a key value.
User Guide Figure 2.5. Yang UI API Specification 4. Click Show Preview button under API tree to display request that will be sent to ODL. A pane is displayed on the right side with text of request when some input is filled. Displaying Topology on the Yang UI To display topology: 1.
User Guide Figure 2.6. DLUX Yang Topology Configuring List Elements on the Yang UI The list is displayed like tree structure with possibility to expand or collapse by the arrow before name of the list. To configure list elements on the Yang UI: 1.
User Guide Figure 2.7. DLUX List Warnings 4. When the list obtains at least one list element, after + icon is icon for selecting the list element displayed. You can choose one of them by clicking the icon. The name button of the list element and name buttons of its neighbours will be displayed in the row list. You can can forward or backward row list of list elements name buttons by clicking on the arrow button on the end of row.
Installing XSQL Before you can run commands from the XSQL console, you must first install XSQL onto your system: 1. Navigate to the directory in which you unzipped the OpenDaylight source files. 2. Start Karaf: ./karaf 3. Install XSQL: feature:install odl-mdsal-xsql XSQL Console Commands When entering a command in the XSQL console, structure it as follows: odl:xsql <XSQL...
User Guide point, the XSQL receives a notification, confirms that the module’s YANG model resides in the Schema Context, and then maps the model to XSQL by setting up the necessary vtables and vfields. This command is useful when you need to determine vtable information for a query.
Page 19
User Guide is null Lists results for which no value is assigned. not null Lists results for which any value is assigned. skip Use this operator to list matching results from a child node, even if its parent node does not meet the specified criteria.
In reality, your search request is processed by thousands of web servers connected in a cluster. Similarly, you can have multiple instances of the OpenDaylight controller working together as one entity. There are a number of uses for clustering: •...
• Every device that belongs to a cluster needs to have an identifier. For this purpose, OpenDaylight uses the node’s role. After you define the first node’s role as member-1 in the akka.conf file, OpenDaylight uses member-1 to identify that node.
Page 22
For functional testing, yes. For HA testing, you need to run all three nodes. Setting Up a Multiple Node Cluster To run an OpenDaylight controller in a three node cluster, do the following: 1. Determine the three machines that will make up the cluster and copy the controller distribution to each of those machines.
Page 23
• JAVA_MAX_MEM=4G JAVA_MAX_PERM_MEM=512m ./karaf • JAVA_MAX_MEM=4G JAVA_MAX_PERM_MEM=512m ./karaf The OpenDaylight controller can now run in a three node cluster. Use any of the three member nodes to access the data residing in the datastore. Say you want to view information about shard designated as member-1 on a node. To do so, query the shard’s data by making the following HTTP request:...
Page 24
User Guide This request should return the following information: "timestamp": 1410524741, "status": 200, "request": { "mbean": "org.opendaylight.controller:Category=Shards,name=member-1-shard- inventory-config,type=DistributedConfigDatastore", "type": "read" "value": { "ReadWriteTransactionCount": 0, "LastLogIndex": -1, "MaxNotificationMgrListenerQueueSize": 1000, "ReadOnlyTransactionCount": 0, "LastLogTerm": -1, "CommitIndex": -1, "CurrentTerm": 1, "FailedReadTransactionsCount": 0, "Leader": "member-1-shard-inventory-config", "ShardName": "member-1-shard-inventory-config",...
Page 25
User Guide Here are a couple sample data short names: • member-1-shard-topology-config • member-2-shard-default-operational Enabling HA on a Multiple Node Cluster To enable HA in a three node cluster: 1. Open the configuration/initial/module-shards.conf file on each cluster node. 2. Add member-2 and member-3 to the replica list for each data shard. 3.
Page 26
User Guide name = "toaster" shards = [ name="toaster" replicas = [ "member-1", "member-2", "member-3" When HA is enabled on multiple nodes, shards will replicate the data for those nodes. Whenever the lead replica on a data shard is brought down, another replica takes its place. As a result, the cluster should remain available.
PCEP ..........................26 BGP LS OpenDaylight comes pre-configured in the installation. You can find it in the opendaylight/ configuration/initial directory and it consists of two files: 31-bgp.xml, which defines the basic parser and RIB support. Unless you need to add a new AFI/SAFI, you should keep this file as is.
Page 29
User Guide <holdtimer>180</holdtimer> 1. Configure connection attributes (all in milliseconds) <module> <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:reconnectstrategy"> prefix:timed-reconnect-strategy </type> <name>example-reconnect-strategy</name> <min-sleep>1000</min-sleep> // Minimum sleep time in between reconnect tries <max-sleep>180000</max-sleep> // Maximum sleep time in between reconnect tries <sleep-factor>2.00</sleep-factor> // Power factor of the sleep time between reconnect tries <connect-time>5000</connect-time>...
Page 30
To add BGP Peer configuration into the registry, it is necessary to configure regular BGP peer just like in example in 41-bgp-example.xml. Notice that the BGP peer depends on the same bgp-peer-registry as bgp-speaker: <module> <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:bgp:rib:impl"> prefix:bgp-peer </type> <name>example-bgp-peer</name> <host>192.0.2.1</host>...
</type> <name>binding-data-broker</name> </data-broker> </module> PCEP OpenDaylight is pre-configured with baseline PCEP configuration. The default shipped configuration will start a PCE server on port 4189. 32-pcep.xml - basic PCEP configuration, including session parameters 39-pcep-provider.xml configuration for PCEP provider Configure draft versions...
Page 32
<!--extension> <type>pcepspi:extension</type> <name>pcep-parser-ietf-stateful07</name> </extension> <extension> <type>pcepspi:extension</type> <name>pcep-parser-ietf-initiated00</name> </extension--> <!-- This block is draft-ietf-pce-stateful-pce-02 + draft-crabbe-pce- inititated-pce-00 --> <extension> <type xmlns:pcepspi="urn:opendaylight:params:xml:ns:yang:controller:pcep:spi"> pcepspi:extension </type> <name>pcep-parser-ietf-stateful02</name> </extension> <extension> <type xmlns:pcepspi="urn:opendaylight:params:xml:ns:yang:controller:pcep:spi"> pcepspi:extension </type> <name>pcep-parser-crabbe-initiated00</name> </extension> 1. In the same file, make sure the proposal matches your chosen draft version. Change stateful07-proposal to stateful02-proposal: <pcep-session-proposal-factory>...
Defense4All is an SDN application for detecting and mitigating DDoS attacks. The figure below depicts the positioning of Defense4All in OpenDaylight environment. Figure 6.1. Defense4All Overview The application communicates with OpenDaylight Controller through the ODC north- bound REST API. Through the REST API Defense4All performs the following tasks: 1.
User Guide the AMSs. The API to AMS is not standardized, and in any case beyond the scope of the OpenDaylight work. Defense4All contains a reference implementation pluggable driver to communicate with Radware’s DefensePro AMS. The application presents its north-bound REST and CLI APIs to allow its manager to: Control and configure the application (runtime parameters, ODC connectivity, AMSs in domain, PNs, and so on.).
Page 37
User Guide Parameter Description Password Password to log into the SDN Controller. Confirm Password Confirmation of the password of the SDN Controller. 1. Click Submit. Note The SDN controller cannot be changed or removed. Only one (1) SDN controller can be configured. To change the SDN controller, you must reset Defense4All to factory settings.
Page 38
User Guide Than or Equal to 1 blocking must be configured to avoid Layer 2 loops. For more information, refer to the discussion on Packet Anomaly protection in the DefensePro User Guide. 1. Click Submit. 2. In the FrameWork Setup pane, to the right of the Net Nodes label, click Add. 3.
Page 39
User Guide FrameWork Reports You can generate reports containing syslog messages that have been saved over a period of time. To generate FrameWork reports: 1. From an Internet browser enter the IP address for the host that is running Defense4All. 2.
Page 40
User Guide 4. In the Add Protected Object (PO) pane, set the following parameters: Parameter Description Name Name of the PO. Valid characters: A–Z, a–z, 0-9, _ NOTE: A PO cannot be removed when under attack. IP Address IP address and net mask of the PO. 1.
Open vSwitch, OpenFlow, and OVSDB. Users can create policies and endpoints using the RESTCONF northbound API. Architecture and Model The Group-Based Policy architecture and model are described in the OpenDaylight Developer’s Guide. Tutorial This section will walk you through setting up a simple demo of the OpenFlow overlay renderer using mininet.
Page 42
User Guide Configuring the Test The test script is found in the source tree under util/testOfOverlay. Copy the .py files from this directory to each of your test systems. Open config.py in an editor. You can play with this file later, but for now, just find the section that reads: switches = [{'name': 's1', 'tunnelIp': '10.160.9.20', 'dpid': '1'},...
Page 49
User Guide h35_4 -> h35_5 h36_4 h36_5 h35_5 -> h35_4 h36_4 h36_5 h36_4 -> h35_4 h35_5 h36_5 h36_5 -> h35_4 h35_5 h36_4 The hosts h35_[n] are in EG1, in the subnet 10.0.35.1/24. Hosts h36_[n] are in EG2, in the subnet 10.0.36.1/24. These two tests therefore shows broadcast within the flood domain working to enable ARP, bridging within the endpoint group, and the functioning of the virtual router which is routing traffic between the two subnets.
Page 50
User Guide Dload Upload Total Spent Left Speed 72944 0 --:--:-- --:--:-- --:--:-- 97600 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"><html> <title>Directory listing for /</title> <body> <h2>Directory listing for /</h2> <hr> <ul> <li><a href="config.py">config.py</a> <li><a href="config.pyc">config.pyc</a> <li><a href="mininet_gbp.py">mininet_gbp.py</a> <li><a href="mininet_gbp.pyc">mininet_gbp.pyc</a> <li><a href="odl_gbp.py">odl_gbp.py</a>...
User Guide 0 --:--:-- 0:00:03 --:--:-- curl: (28) Connection timed out after 3001 milliseconds Contact Information Mailing List groupbasedpolicy-users@lists.opendaylight.org freenode.net →opendaylight-group-policy Repository https://git.opendaylight.org/gerrit/groupbasedpolicy...
The L2Switch project provides Layer2 switch functionality. Running the L2Switch project Check out the project using git git clone https://git.opendaylight.org/gerrit/p/l2switch.git The above command will create a directory called "l2switch" with the project. Run the distribution To run the base distribution, you can use the following command ./distribution/base/target/distributions-l2switch-base-0.1.0-SNAPSHOT-...
Checking Address Observations Address Observations are added to the Inventory data tree. The Address Observations on a Node Connector can be checked through a browser or a REST Client. http://10.194.126.91:8080/restconf/operational/opendaylight-inventory:nodes/ node/openflow:1/node-connector/openflow:1:1 Figure 8.1. Address Observations Checking Hosts Host information is added to the Topology data tree.
• A status of "forwarding" means the link is active and packets are flowing on it. • A status of "discarding" means the link is inactive and packets are not sent over it. The STP status of a link can be checked through a browser or a REST Client. http://10.194.126.91:8080/restconf/operational/opendaylight-inventory:nodes/ node/openflow:1/node-connector/openflow:1:2...
User Guide Figure 8.3. STP status Miscellaneous mininet commands link s1 s2 down This will bring the link between switch1 (s1) and switch2 (s2) down link s1 s2 up This will bring the link between switch1 (s1) and switch2 (s2) up link s1 h1 down This will bring the link between switch1 (s1) and host1 (h1) down Components of the L2Switch •...
Configuration of L2Switch Components This section details the configuration settings for the components that can be configured. The base distribution configuration files are located in distribution/base/target/ distributions-l2switch-base-0.1.0-SNAPSHOT-osgipackage/opendaylight/configuration/initial The karaf distribution configuration files are located in distribution/karaf/target/assembly/ etc/opendaylight/karaf • Loop Remover (52-loopremover.xml) •...
Page 57
User Guide • A graph of the network is maintained and gets updated as network elements go up/ down (i.e. links go up/down and switches go up/down) • After a network element going up/down, it waits graph-refresh-delay seconds before recomputing the graph •...
Page 58
User Guide • The flood flow will timeout (removed from the switch) after x seconds, regardless of how many packets it is forwarding • This field is only relevant when "is-proactive-flood-mode" is set to "true" • arp-flow-table-id • The ARP flow will be installed on the specified flow table of each switch •...
Page 59
User Guide • "false" means this flow will not be installed • dropall-flow-table-id • The dropall flow will be installed on the specified flow table of each switch • This field is only relevant when "is-install-dropall-flow" is set to "true" •...
Page 60
User Guide • reactive-flow-hard-timeout • The reactive flow will timeout (removed from the switch) after x seconds, regardless of how many packets it is forwarding • This field is only relevant when "is-learning-only-mode" is set to "false"...
User Guide 9. ODL-SDNi The User Guide for ODL-SDNi can be found on the OpenDaylight wiki here: https:// wiki.opendaylight.org/view/ODL-SDNiApp:User_Guide...
User Guide 10. Packet Cable MultiMedia (PCMM) Service Table of Contents Overview ........................57 Architecture ........................58 Features ........................59 Support ......................... 59 Packet Cable MultiMedia (PCMM) provides an interface to control and management service flow for CMTS network elements. A service flows constitute a DOCSIS data path between a CMTS and a subscriber’s cable modem (CM) guaranteed application specific quality of service (QoS), known as Dynamic Quality of Service (DQoS).
• A robust security infrastructure that provides integrity and appropriate levels of protection across all interfaces. The goal of this project is to utilizes the OpenDayLight controller platform as for the Application Manager and parts of the Policy Server and leverage the as many existing components offered by the platform.
• RESTCONF APIs for provisioning QoS (or metering) parameters • SAL extensions for DOCSIS specific data model and configuration APIs • PCMM/COPS protocol transport plugin Install opendaylight-user@root>feature:install odl-packetcable-all Support For support please contact the packetcable project at: • PCMM PacketCable mailing list:...
User Guide 11. Plugin for OpenContrail The User Guide for the Plugin for OpenContrail can be found on the OpenDaylight wiki here: https://wiki.opendaylight.org/view/ Southbound_Plugin_to_the_OpenContrail_Platform:User_Guide...
User Guide 12. TCP-MD5 The User Guide for TCP-MD5 can be found on the OpenDaylight wiki here: https:// wiki.opendaylight.org/view/TCPMD5:Helium_User_Guide...
Need help?
Do you have a question about the Opendaylight and is the answer not in the manual?
Questions and answers