OVSDB:Beryllium Release Notes
Contents
Major Features
Beryllium marked the fourth release of the OVSDB NetVirt project. The release delivers increased code and testing coverage and improved network virtualization integration with OpenStack.
Release Deliverables
Code quality, stability and usability
Remove deprecated AD-SAL APIs
Netvirt updates for flow optimizations and config migration
ODL SFC and OPNFV SFC integration, application pipeline coexistence
Increased Neutron parity by adding Security Groups and Metadata support
Enhanced L3 DVR functionality
Hardware VTEP southbound support
Open_vSwitch southbound support for QoS and Queue
Clustering/HA/Persistence support
DPDK enhancements to the Southbound and NetVirt to support DPDK
Experimental Deliverables
Experimental support is added for the following features:
Clustering using the OpenFlow plugin-li plugin. The feature is odl-ovsdb-openstack-clusteraware.
Network Virtualization DLUX user interface. The feature is the odl-ovsdb-ui.
Target Environment
For Execution
Same as the usual JRE requirements for OpenDaylight
For Development
Same as the usual JDK and Maven requirements for OpenDaylight
Known Issues and Limitations
OpenStack SFC integration requires a workaround when used with the current NSH OVS implementation as described in VTEP Workaround for OpenStack Instantiated VMs.
The DLUX integration is considered an experimental feature. The feature works well but has not been extensively tested.
Full ODL OVSDB L3 functionality requires a minimum OVS version of 2.3.2. The version is required for ARP responder flows in table 20.
Stateful Security Groups support using conntrack requires a minimum OVS version of 2.5. Stateless Security Groups without conntrack is supported from OVS 2.3.2 and later.
ODL OVSDB L3
The L3 functionality is disabled by default. To enable the L3 functionality add ovsdb.l3.fwd.enabled=yes to the etc/custom.properties file.
Security Groups with Conntrack
Conntrack functionality is disabled by default. To enable the conntrack support add <conntrack-enabled>true</conntrack-enabled> to the etc/opendaylight/karaf/netvirt-impl-default-config.xml file.
Service Function Chaining
Some configuration is required due to application co-existence for the OpenFlow programming. The SFC project programs flow for the SFC overlay and NetVirt programs flow for the tenant overlay. Coexistence is achieved by each application owning a unique set of tables and providing a simple handoff between the tables.
First, configure NetVirt to use table 1 as it's starting table:
http://localhost:8181/restconf/config/netvirt-providers-config:netvirt-providers-config
{
"netvirt-providers-config": {
"table-offset": 1
}
}
Next, configure SFC to start at table 150 and configure the table handoff. The configuration starts SFC at table 150 and sets the handoff to table 11 which is the NetVirt SFC classification table.
http://localhost:8181/restconf/config/sfc-of-renderer:sfc-of-renderer-config
{
"sfc-of-renderer-config": {
"sfc-of-app-egress-table-offset": 11,
"sfc-of-table-offset": 150
}
}
Known Bugs
Bug 5351 - Security group connection tracking flows are not getting inserted in OVS https://bugs.opendaylight.org/show_bug.cgi?id=5351 The solution was tested against OVS 2.4.9 and pre-release patches. There has been a change in the connection tracking state bit values in the official OVS 2.5 release. The workaround is to use the OVS 2.4.9 with pre-release patches or to use a later ODL build with the current fix: https://git.opendaylight.org/gerrit/#/c/34655/.
Changes Since Previous Releases
New APIs for supporting SFC integration and using NetVirt as the classifier:
http://localhost:8181/restconf/config/netvirt-providers-config:netvirt-providers-config
{
"netvirt-providers-config": {
"table-offset": 1
}
}
http://localhost:8181/restconf/config/ietf-access-control-list:access-lists
{
"access-lists": {
"acl": [
{
"acl-name": "http-acl",
"access-list-entries": {
"ace": [
{
"rule-name": "http-rule",
"matches": {
"destination-port-range": {
"lower-port": "80",
"upper-port": "80"
},
"source-port-range": {
"lower-port": "0",
"upper-port": "0"
},
"protocol": "6"
},
"actions": {
"netvirt-sfc-acl:sfc-name": "SFCNETVIRT"
}
}
]
}
}
]
}
}
Bugs Fixed in this Release
4924 Fixed IPs of dhcp_port are not updated when a new subnet is added to the network.
5278 Service Unavailable exception when associating a Neutron router with a tenant subnet.
5331 unable to read topology after recovering a failed controller in cluster
5040 LLDP Spoofing attack warning when using Openstack with ODL Cluster (both features)
4569 Ownership changed consistently without down any node
5038 Instances are not reachable in Openstack when ODL used as cluster (using OFPlugin He design)
5062 Creating Bridge in Cluster Mode returns 500 and throws exception in karaf log
5018 No Flow Entries are installed to br-int while trying the NetVirt Cluster (clusteraware)
3974 br-int is not getting created with lithium 0.3.0 snapshot
4277 Deleted Network flow entries retained in br-int,if network associated and disassociated from virutalrouter interface
4888 Ovsdb Southbound Clustering Inconsistent output for sudo ovs-vsctl list bridge br-int
4916 In OVSDB Single node clustering 2 switches registered with same manager there are two "OWNER" found in southbound, and with this two "OWNER" replication also happens
5134 Address exceptions when SG remote_group_id has both IPv4 and IPv6 addresses
5172 lldp: SchemaVersionMismatchException: The schema version used to access the table/column (7.8.0) does not match the required version (from 7.11.2 to 0.0.0)
4811 topic/netvirt-clustering branch: the Openstack Integration failing due to OpenFlowPlugin failures
5110 Pinging router on different network does not work
4892 Not getting Arp flows if there is no Router
5187 Remote security group insertion fails when port is not found in cache
5169 Retrieval of Bridge and Port fails from Operational Store in csit test
4904 Singleton Cluster is not happened
5149 Enhancement: Support LLDP on ovsdb interface
5161 In OVSDB 3 node cluster northbound remote ip address validation missing in configuration data store
4373 Released Floating IP (on compute node1 vm) is not reaching to external network, if reuse the floating IP to another VM ( VM hosted on compute node2
4374 On Release of Floating IP doesn’t detached port on openstack external network
4280 VM Floating IP Address unable to reach the External GW when L3 routing enabled.
5107 Flow tables mentioned in goto_table actions are not created
4132 Unable to ping gateway when using L3 DVR - Lithium
5131 Hard-coded base url in Ovsdb UI
5147 Wrong logging level for ConfigProperties not found with defaults
4794 IllegalArgumentException in operational delete: unable to connect ovs to plugin
4844 GatewayMacResolverService continues to try to resolve gateway after nodes have disconnected.
4769 Security group : default ip flows fails to delete intermittently
4643 Remote Security Group - Terminating an instance fails to remove the corresponding rules
4874 distributed arp in old l3 for ovsdb is not installing rules when it should
3052 race condition between northbound and southbound events
2173 Remaining OF 1.3 rules after full neutron resources removal
3097 Do not delete interfaces in PortHandler
5056 Beryllium RC0: Data did not pass validation
5065 Data did not pass validation
5066 ConflictingModificationAppliedException: Node was created by other transaction.
5069 ARP request from public gateway not answered
5007 Reenable SG IT
5039 External Interface errors in karaf log when using Openstack with ODL Cluster (odl-ovsdb-openstack)
4311 null pointer exceptions in ovsdb routemgr
4971 SG needs to be independent from which L3 stack is used in ovsdb netvirt
5013 SG exception when running openstack tempest: org.opendaylight.ovsdb.utils.mdsal.openflow.MatchUtils.createICMPv4Match(MatchUtils.java:223)[283:org.opendaylight.ovsdb.openstack.net-virt-providers:1.1.4.SNAPSHOT]
4205 VM delete doesnot removed all related flows(i.e specific to VMs)
4997 Fix for ConnectionInfo parsing in showMdsal tool
4908 cannot create a bridge using northbound REST api with clustering.
4927 Rules added by MacResolverServices in br-ex are not removed if no arp responses make it back to br-ex
4913 flow rules for security group aren't populated on port creation
4912 NeutronL3Adapter: missing/reordered enabled check
4911 IllegalArgumentException in RoutingService.programRouterInterface
4881 org.opendaylight.ovsdb.openstack.netvirt.AbstractEventTest failure
4737 ovsdb can create vxlan port in OVS,but cant't delete it
4736 missing null pointer check of getFixedIPs()
4429 Sending non-canonical IPv4 prefix resulted in table 60 rules not getting added
4472 IllegalArgumentException in programIpRewriteExclusion
4416 Unreliable ERROR message as Unable to resolve Externalgateway Mac address,while unstacking one of compute node on openstack
4348 NoClassDefFoundError and ODL doesn't allowed to create network from openstack
4346 Restack/new compute node VM doesn’t communicated north-south traffic
4282 NPEs and inability to provision SFF in SFC project via GBP between SR1 and current stable lithium
4339 northbound depends on obsolete commons.northbound and sal
1519 SouthboundHandler: isUpdateOfInterest is too inclusive
4228 Externalgateway Mac address keeps on try to resolve,after cleared the GW on Openstack externalNetwork
1802 Karaf : InventoryListener Event replay code missing in Library on plugin bundle start
4067 LbaaS OF flows are not getting installed in the switch
2732 When large JSON responses are received by the switch in response to ODL queries, ODL's OVSDB interface becomes unusable.
2923 Need to define OVSDB Clustering/Data Persistence Behavior
2660 Network shared attribute should be allowed
905 ovsdbConfigService.getRows() returns mutable maps
913 Can't delete QOS from java api
1972 Flows failed to get programmed in a very random fashion
2132 Bad openflow rules removal when VM is deleted
2125 ODL shouldn't set the controller to every brige
2024 ovsdb throws exception, fails to try to program flows if ovs is running already at controller startup
1750 Add the missing apply-actions on outbound NAT table
1696 Ingress ACL table is dropping the LLDP traffic
1662 Typed Schema based Special handling is missing
1642 Northbound API fails to insert/delete rows if the parentTable/parentColumn json data is missing on the POST message
1357 Wrong status code sent if Node does not exist
4331 arp responder periodic timer should refresh node picked for packet-out
4920 MAC address for gateway can not be resolved, because external bridge is not connected to controller.
4029 org.opendaylight.ovsdb.openstack.netvirt.impl.NeutronL3Adapter.handleNeutronPortEvent(NeutronL3Adapter.java:251)[271:org.opendaylight.ovsdb.openstack.net-virt:1.2.0.SNAPSHOT]
4579 Periodic ARP resolver is missing calls to NeutronL3Adapter::updateExternalRouterMac()
4265 NPE while programming Port Security ACL
4752 distributed arp in old l3 for ovsdb should not install rules for arp unless tenant network exists in the compute node
1844 Callback from neutron's router interface events should be handled via neutron port events
4611 NPE at org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13.services.IngressAclService.programPortSecurityGroup(IngressAclService.java:88)
4642 IP ingress rule is not seen after a VM is spawned with the default Security Group
4756 southbound fails to delete OvsdbNode from config and operational
4776 ovsdb netvirt needs to handle cases when network/subnet contains no tentant id
4733 NPE in SouthboundImpl
4735 NPE in SouthboundImpl
4734 NPE in GatewayMacResolverService
4718 NPE in NeutronSubnetChangeListener.java
4711 Compile errors when building openstack.net-virt
4704 compile error of missing symbol of getSubnets
4546 Southbound plugin throws java.lang.IllegalStateException while shutting down and loops forever
4463 IlligalArgumentException when deleting router port
4144 Periodic ARP resolver should use unicast MAC destination address whenever possible; instead of broadcast
3378 ovsdb netvirt needs help in getting mac for a given ip in br-ex
3989 Posting multiple OVSDB nodes with different node-id but same connection-info does not clean operational MD-SAL
4208 Unstack and restack existing same compute unable to communicate the existing network VM's
4014 pipeline flows not programmed on manually added br-int
3962 Event dispatcher found no handler for NorthboundEvent
4347 br-ex doesn’t listing any OF flows on compute node instance
4229 Stale OF entries retained in br-int flow table on openstack-controller side,when VM resides on unstacked compute node
3796 Config datastore empty on reconnect to ovsdb-node
4206 Network delete doesnot removed the Vxlan tunnel entries on ovs switch
4135 pipeline flows not programmed because controller address is not set on OVSDB node
4045 exception when ipv6 addressed port is received
4160 null pointer exception in SecurityServicesImpl.getDHCPServerPort()
4163 null pointer exception in NeutronL3Adapter.getExternalNetworkSubnet()
3545 Updates to termination point configuration for existing termination points broken
3909 SSLv3 should be disabled for ovsdb server
Migration from Previous Releases
Migration from previous releases has not been tested.
Compatibility with Previous Releases
Yes, compatible with previous releases.
Deprecated, End of Life, and/or Retired Features/APIs
The OVSDB Plugin compatibility layer and related ADSAL dependencies were deprecated in Lithium and removed in Beryllium.