Jump to: navigation, search

Simultaneous Release/Lithium/SR2/Release Notes

This page details changes and bug fixes between the Lithium Service Release 1 (Lithium-SR1) and the Lithium Service Release 2 (Lithium-SR2) of OpenDaylight

Projects with no noteworthy changes

The following projects had no noteworthy changes in the Lithium-SR2 release:

  • ALTO
  • Control And Provisioning of Wireless Access Points (CAPWAP)
  • Device Identification and Driver Management (DIDM)
  • L2 Switch
  • Link Aggregation Control Protocol (LACP)
  • Network Intent Composition
  • OpFlex
  • Packet Cable/PCMM
  • Reservation
  • SDN Interface Application
  • Secure Network Bootstrapping Infrastructure (SNBI)
  • SNMP Plugin
  • TCP-MD5
  • Topology Processing Framework
  • Time Series Data Repository (TSDR)
  • Unified Secure Channel (USC)
  • VPN Service

Authentication, Authorization and Accounting (AAA)

  • c8e1ee BUG-4430: Unclear error message when Basic Authentication has a bad header format
  • 67669f BUG-4168: Deprecate inappropriate uses of StringBuilder



  • de587f Fix DistributedEntityOwnershipIntegrationTest failure
  • e6076f Fix NPE in AbstractFeatureWrapper
  • dd6976 Add getOwnershipState method to EntityOwnershipService
  • 23e756 Fix typo in thrown exception in RestconfImpl.java
  • 862e4d BUG-4327: Fixed DataTreeChangeListener registration in PingPongDataBroker
  • a3a041 BUG-4105: Fix intermittent failure in DistributedEntityOwnershipIntegrationTest
  • 6b0f99 BUG-4105: Remove EntityOwnershipCandidate
  • 0a7e13 BUG-4094: Fix DCNs on initial registration
  • 061d4e BUG-4105: Add hasOwner param to EntityOwnershipListener#ownershipChanged
  • 547cd2 CDS: Fix intermittent DistributedDataStoreRemotingIntegrationTest failure
  • f68d96 BUG-4105: Fixed feature test failure due to missing dependency.
  • b079e2 BUG-4291: odl-clustering-test-app feature must depend on odl-mdsal-broker
  • ec83fa BUG-4105: Remove candidates on PeerDown
  • fecc74 BUG-4105: Implement EntityOwnershipListener registration/notification
  • d13b05 BUG-4105: Pass ModuleShardConfiguration with CreateShard
  • 36101c BUG-4105: Add entity ownership integration test
  • 3033b1 BUG-4105: Change ownership on member down/up
  • 5955f5 BUG-4105: Add Cars RPC to test entity ownership
  • b5aa5b BUG-4105: Add general-entities yang model
  • 7ccbe6 BUG-4105: Add dynamic module/shard config for entity-owners shard
  • 5de1fd BUG-4105: Implement UnregisterCandidateLocal in EntityOwnershipShard
  • 6c792c BUG-4105: Integrate EntityOwnerChangeListener with EntityOwnershipShard
  • 97181a BUG-4105: Choose Owner for an Entity based on first come first served basis
  • 90adab BUG-4105: Change commit retry mechanism in EntityOwnershipShard
  • 6a7b78 BUG-4105: Add EntityOwnerDataChangeListener
  • 07b189 BUG-4105: Add EntityOwnershipListenerActor and support
  • bd8ff4 BUG-4105: Move Configuration classes to config package
  • dedfd8 BUG-4105: Implement RegisterCandidate in EntityOwnershipShard
  • 11da79 BUG-4105: Implement candidate registration close
  • 5a7e1f BUG-4105: Implement DistributedEntityOwnershipService#registerCandidate
  • 0d9b80 BUG-4105: Add EntityOwnershipShard
  • 789221 entity-owners.yang module
  • 12b67e BUG-4105: Added DistributedEntityOwnershipService and wiring
  • ea91ce BUG-4105: Add public EntityOwnershipService interface
  • 76e5d5 BUG-4105: Add CreateShard message in ShardManager
  • c3ba77 BUG-4105: Add method to get all unique member names
  • 47890e BUG-2185: Expand the scope of sync status to cover a slow follower
  • 3abc8b BUG-4234: Add count field to cars stress-test RPC.
  • 8c3896 BUG-2185: Follower should request forceInstallSnapshot in out-of-sync scenario
  • 9baf6a BUG-2185: Disable all internal switching of behavior
  • f3c389 BUG-4214: Add support for configurable snapshot chunk size.
  • 3a59e9 BUG-2185: Add JMX API to change the state of a Shard
  • 5fef22 Enabling Data Change Notifications for all nodes in cluster.
  • bf63fb BUG-4212: Follower should not reschedule election timeout in certain cases.
  • 6b66fc BUG-4213: Candidate should switch to Follower when it receives AppendEntries from new Leader
  • 69637d BUG-3708: APIdoc explorer URLs contain extra 'node' in REST calls
  • 69497c Re-enable tests and bump aaa version


  • f6f8be Add the option to toggle the left menu bar
  • ad1c6b Re-enable DLUX distribution.


  • 3da09d Created OpenStack VTN Support to OpenStack how to.
  • 645b28 Table offset description in Group Based Policy
  • 475bd3 adding Lithium-SR1 release notes
  • 2534b6 Update VTN SCVMM Support to user guide.

Group Based Policy (GBP)


  • 49a9c8 Remove <repositories> and <pluginRepositories> sections
  • 984459 Add robot test files for VTN Coordinator features
  • c46fcc Keyword to log messages to controller's karaf log
  • 29b9a7 Modifying "Find Max Links" keyword to gracefully exit if failure (timeout) occurs around mininet
  • 4f1a42 Added Tests For Flowfilter With Attributes.
  • fed22a Updated ADSAL Test references to "Library RequestsLibrary"
  • f129b0 Full and Generic Datastore CRUD Library
  • 4cc3b2 Updated versions of VTN Coordinator.
  • 1f4987 Modifying openflow switch scale test to gracefully handle failures (mininet timeouts)
  • 1e6a4a Added a check to verify controller has no Null Pointer Exceptions
  • 708cb2 Add support for HOLDTIME=0
  • cbf07e Make hold time configurable via Robot variable
  • 551939 Updated Test references to "Library RequestsLibrary"
  • fe6d38 lispflowmapping: update RPC URL
  • 1de843 Fixed failure due to a too sensitive command
  • 0ac2ae Switched to "Get|Put|Delete" from "[Get|Put|Delete]_Request"
  • 43c783 Fixed SSH login not working
  • 170605 Updated the MessageError to produce less confusing messages
  • 511d2c Add Tests to check the FlowEntry installed by VTN.
  • 116171 Updated OpenStack references to "Library RequestsLibrary"
  • e60cea Add Tests for VTN Renderer feature of NIC.
  • 7336be Updated some Test references to "Library RequestsLibrary"
  • 39800c Added a small testcase to debug the issue with testcase failures
  • bdf821 Updated Vpnservice references to "Library RequestsLibrary"
  • a3026e Fix typo in filled.json for bgpuser suite
  • 55d0d3 Introduce Keywords for flexible SSH login
  • c1427f ${starttime} is a local variable, so we need to pass it to "Save Setup Time"
  • e3483e Test case 2: OVSDB openflow extension
  • 05c406 Updated some Test references to "Library RequestsLibrary"
  • 7cc3b6 Improve Regex in Isolation Library

Internet of Things Data Management (IoTDM)

  • 436160 Modify cb short name and put child into resource.
  • c3e241 Conform to json spec: prefix resource reps with "m2m:", or "<rt>"
  • fb1ea7 Fix the bug that rcn = 4 only for Retrieve. Bug number 4294.
  • 9b5d06 Return only Assigned attributes
  • 2f2271 Fix the queryString bugs.
  • 1318f1 Updated short names for elements of notifications
  • c609fa Parallel reads, single writer creates and deletes and bugs

LISP Flow Mapping

  • 2513cb Fix junit-dep moved to junit:junit

Neutron Northbound

  • 713754 Fix -Dkaraf.debug
  • 051070 Add support for karaf.debug

ODL Root Parent

  • 62d899 Moving dependency-check plugin up to odlparent.

OpenFlow Protocol Library

OpenFlow Plugin

Known Issue

Using OpenFlow plugin with the alternate performance improvement design karaf feature set (openflow-flow-services-li), the OpenFlow switches are not cleared from operational datastore after disconnect. This problem does not happen with the existing design Karaf feature set (openflow-flow-services). The existing design Karaf feature set is loaded by default and used by all the existing applications/dependent projects in the Lithium release. This issue has been fixed and the fix will be available in Lithium SR-3.

Changes / Fixes

  • 6836a3 RPC Registration changes for clustering
  • 41d5ef Getting latest state from Ownership RPC
  • 95dd73 RoleManager,SalRoleService Impl and Test
  • da8cdf BUG-4270: Add missing versions, dependencies
  • a53ca6 BUG-4270: adding reference to Li bundle to Li Nicira extension.
  • 8c466a BUG-4083: Li: knob to disable statistics collecting
  • b8555a Coverage - StatisticsManagerImpl.
  • 19d99e Coverage - StatisticsContextImpl
  • 495d66 Cover - StatisticsContextImpl.
  • 08d535 BUG-4083: Li: Enabling polling of statistics via config subsystem.
  • 882944 BUG-4177: Li - flowMod result ignores errors from device
  • 0545b4 Coverage - SalFlowServiceImpl.
  • aef92b Coverage - SalFlowServiceImpl.
  • 365c2a BUG-2429: Need to close the ODL Denial of Service interface
  • 6d1aeb BUG-2664: Buckets in groups are not ordered
  • c48b2b BUG-4343: Ipaddress not set in FlowCapableNode
  • f6d239 sal role service and role injection
  • b4a79d Convert features to features-parent
  • 660539 Remove nagasena dependency
  • 54b663 Removed commented code
  • f5a72d Using equals() method to compare objects
  • ac9d87 Removed commented code
  • 613b45 Fixed constant pattern name
  • 6536a7 Removed useless boolean object instantiation
  • 95de07 Fixed magic numbers
  • 7372db Re-enable DLUX feature.
  • dd1464 BUG-4123: Li:flow statistics are not passed into DS/operational

OVSDB Integration

  • 91461a If controller joins the cluster late, and the owner of the device is already decided, EntityOwnershipService won't notify new candidate that register for ownership. Adding a proactive check on the ownership state of the device, so if it's already owned, adding the connection instances in the connection cache.
  • 412bef Send a canonical IPv4 prefix in table 60 routing rules
  • 64ec5a Added postman collection and postman environment files for Southbound plugin to test in Single and 3 Node cluster environment
  • 2c295f BUG-4277: Deleted Network flow entries retained in br-int, if network associated and disassociated from virutalrouter interface
  • ad0cb7 BUG-4208: Unstack and restack existing compute
  • 910337 Less restriction on shared networks: it can be allowed on externals
  • 5e98a3 Use the memorized service reference
  • 152a12 L3: Add eth to br-ex
  • 781c88 Controller initiated connections always connect to one manager listening in ptcp: mode. In clustered mode, all the three controller will connect to the device, and in case any of the connection will flip that instance will remove OvsdbNode from operational data store because it will see only one manager in manager list. But because switch is listening in passive mode, there can be multiple connection to same manager. To handle this scenario, this patch adds number_of_connection attribute to OvsdbNodeAugmentation to maintain the number of active connection to specific manager. In case of switch initiated connection this value is going to be 1 for each manager, but in case switch listening in passive mode, this value will represent active connections (extraced from Manager tables status column n_connections attributes).
  • 528390 BUG-3989: - Fix the original patch. Original patch can break the functioning if there are more then one data change and the first data change is OvsdbNodeAugmentation for which connection already exist. It will return out of OnDataChanged() when it see that connection already exist, without processing rest of the data
  • 6051e1 Fix ovsdb node update in clustered environment In cluster environment same switch can be connected to multiple controller instance running southbound plugin. In the existing implementation if device disconnect from any of the controller instances OVSDB-SB remove OvsdbNode from operational data store. In cluster environment that will break contract with customer, given that device is still connected to atleast one of the two controller instances running. This patch modifying the behavior where controller will see if its the only connected controller, then it will delete the data from operational data store, else it will skip any clean up from operational data store, because other instances will anyway update about the disconnected controller manager entry in the managers list.
  • fb8421 Add YangInstanceIdentifer to InstanceIdentifier converter method
  • 1da353 Added manager list to Ovsdb Node. For application southbound plugin only give a device level view and not a connection level view. To make net-virt cluster aware, it needs to the managers of the ovsdb server, so that when it creates ovs bridges, it can connect them to the same controllers through OF plugin
  • 3509e4 Added manager list to Ovsdb Node. For application southbound plugin only give a device level view and not a connection level view. To make net-virt cluster aware, it needs to the managers of the ovsdb server, so that when it creates ovs bridges, it can connect them to the same controllers through OF plugin
  • 5e07c1 Add hasDeviceOwnership flag to OvsdbConnectionInstance
  • 01f073 Enable remote notification for southbound plugin
  • 44ad1c Wire entity ownership service to OVSDB southbound plugin
  • 4b3ea4 Fix Java 8 javadoc compatibility
  • d53d3b BUG-3989: clear the connection info
  • a7a794 SecGroup: Handle cases when security group has empty rules
  • 61e67c A few cleanups
  • fb7ae3 Updating fix for BUG-3989: based on discussion in OVSDB meeting
  • 095826 Clean up plugin management
  • 3badc7 BUG-4045: ipv6 work around
  • 38eef6 Fix for defect 4135
  • 03f373 Added IPV4, Custom TCP and UDP SG rules.
  • 748f11 BUG-4163: null pointer exception NeutronL3Adapter.getExternalNetworkSubnet
  • 642bca Replace StringBuilder with more efficient String concatenation
  • 6edca2 Use org.junit instead of junit.framework
  • 27286f Mention "fig up" and sudo for integration tests
  • c53482 Fixing Test Failures with the Change# 24618
  • 3749bb Fix for BUG-4067: (LBaaS flows don't get installed in the switch.)
  • eb9879 OVSDB netvirt southbound - set correct datapath type for OVS with DPDK
  • da7666 BUG-4160: null pointer exception in getDHCPServerPort()


  • 56e229 Fix persistence dependency version to match stable/lithium current
  • 295aaa Fixing the feature persistence build fail and related issues with JDK8

Service Function Chaining (SFC)

  • d8a0e0 Added new sfc-provider unit tests and some code which was tested

Source-Group Tag eXchange Protocol (SXP)

Table Type Patterns (TTP)

  • 10dd14 fixed null pointer bug when no built_ins, undid ofdpa built_in edits, and added count of flowpaths to each tablepath hop
  • 1c6942 Added built_in_flow_mods to dot and flowpaths

Virtual Tenant Network (VTN)

YANG Tools

  • cd2903 BUG-4301: Incorrect union generated code when using decimal64
  • 9b5828 BUG-4183: Yang parser not able to deal with short-case-stmt in augment/uses-augment
  • c283a2 BUG-4309: include iana-afn-safi in model features
  • e0ac42 BUG-4275: Improve MapAdaptor and LazyContainerNode map overhead
  • b0a062 BUG-4145: check if entire YangInstanceIdentifier is present in SchemaContext
  • b79eb7 BUG-4278: Improve TOUCH operation effects
  • c24df4 BUG-4145: Issue augmenting choice inside a list
  • 496479 BUG-4258: implement enumeration value canonicalization
  • 38f234 BUG-3859: Use of reference keyword in a YANG extension causes YangSyntaxErrorException
  • 267961 Use odlparent version for maven-plugin-plugin