Blackbird Release
Version: 1.1.0
Release Date: 17th March, 2015
Download here
ONOS 1.1.0 release is primarily aimed at improving performance & scale characteristics of ONOS, specifically in the following areas:
intent operation (submit/withdraw) throughput performance and scalability
flow operation (add/remove) throughput performance and scalability
topology change (device/port/link) throughput and latency
intent reactive repair (path re-routing) latency
The detailed performance results are available on the Wiki. While the Blackbird release made a number of significant advancements in these areas, there are a number of remaining optimizations to be made that will further improve the performance and scalability aspects of ONOS in subsequent releases.
In addition to performance improvements, Blackbird release also contains a number of robustness and functionality enhancements:
cleaner intent subsystem API
revised flow subsystem API with multi-table support
application subsystem for cluster-wide app deployment and management
component configuration subsystem for cluster-wide component configuration
eventually consistent map mechanism with gossip-based anti-entropy
strongly consistent map mechanism (based on RAFT)
device driver framework as a foundation for future device & network configuration
foundations for modular and dynamically extensible GUI
IPv6 support
- REST API
Sub-task
- [ONOS-253] - Test for p2p intent in the same switch ports.
- [ONOS-443] - Null FlowProvider
- [ONOS-444] - Null DeviceProvider
- [ONOS-490] - Pushing optical topology fails in multi-instance scenario
- [ONOS-492] - Fix application in multi-instance environment
- [ONOS-510] - Implement IPv6, ICMP6 and NeighborAdvertisement
- [ONOS-511] - Implement NeighborSolicitation, RouterSolicitation, RouterAdvertisement and Redirect
- [ONOS-512] - Implement IPv6 Extension Headers
- [ONOS-625] - Driver Framework API
- [ONOS-626] - Implement driver management component(s)
- [ONOS-636] - Integrate SDN-IP IPv6 support with the Intent Framework
- [ONOS-637] - Integrate SDN-IP IPv6 support with the HostService
- [ONOS-638] - Update BGP to support IPv6
- [ONOS-639] - Update SDN-IP Router and IntentSynchronizer to support IPv6
- [ONOS-640] - Updated the SDN-IP related CLI commands to support IPv6
- [ONOS-665] - Null PacketProvider
- [ONOS-707] - Investigate bug-609 with tshark logic instead of tcpdump
- [ONOS-714] - complete NB latency test script per test plan
- [ONOS-717] - Complete Automated Test Script for SB Latency Tests
- [ONOS-724] - Run test on Baremetal cluster
- [ONOS-729] - Complete test script for SB TP
- [ONOS-772] - Implement a testcase to cover ONOS-151 bug to verify if ONOS outputs exception on installing one-hop intent
- [ONOS-775] - TopoView - Load background Map on Zoomable SVG
- [ONOS-783] - Update PeerConnectivityManager to handle IPv6
- [ONOS-793] - Get up and running with latest Copycat changes
- [ONOS-794] - Fix NettyTcpProtocol
- [ONOS-795] - Fix quorum calculation + single node cluster set up.
- [ONOS-797] - Implement Map spanning multiple RAFT clusters
- [ONOS-798] - Support a forwarding state machine proxy
- [ONOS-817] - Create scrollable table
- [ONOS-818] - Fix header on table
- [ONOS-870] - Optical device annotations not honored in multi-instance scenario
- [ONOS-919] - Profile and Optimize Single-Node ONOS
- [ONOS-921] - Create onos-maven-plugin
- [ONOS-933] - Use RDS db and google chart API to present SB TP data on wiki
- [ONOS-935] - use RDS db and google chart API to post NB latency data on wiki
- [ONOS-936] - use RDS db and google chart API to post NB TP data on wiki
- [ONOS-945] - Stage our copycat fork on nexus maven repo
- [ONOS-946] - ONOS messaging protocol plugin for Copycat.
- [ONOS-947] - Push all copycat fixes upstream in github
- [ONOS-948] - Update ONOS tablet configuration to support mulitple partitions.
- [ONOS-949] - Create a standalone performance test script that can mesure the througput of our partitioned raft solution.
- [ONOS-951] - Clean up prototype code and integrate with ONOS.
- [ONOS-965] - Choose mechanism to connect to LINC CLI
- [ONOS-966] - Deduce mapping between Mininet and LINC
- [ONOS-967] - Start/stop LINC optical port from Mininet
- [ONOS-968] - Start/stop LINC switch from Mininet
- [ONOS-1070] - Test SB TP with multi-theaded Null Link Flicker to baseline maximum throughput
- [ONOS-1071] - create Test Script using flow_test.py to test Flow performance
- [ONOS-1072] - create wiki presentation page for logging flow test data
- [ONOS-1122] - Investigate open source NETCONF implementations
- [ONOS-1127] - Design extended Provider interfaces for L0
- [ONOS-1128] - Design ROADM specific interface between Provider and vendor plugin
- [ONOS-1188] - Update SDN-IP Wiki documentation to include IPv6
Technical task
- [ONOS-696] - Introduce an hack in ONOS to interpret correctly the VLAN value sent by the FSFW
- [ONOS-697] - We need to express flows using specific port numbers, instead of wildcard them
Bug
- [ONOS-261] - FlowRule entries are not removed accordingly after P2P Intents are removed
- [ONOS-329] - Ping all from Mininet fails intermittently and ONOS reports device does not exist
- [ONOS-333] - FlowEntryBuilder needs to parse 1.3 set-field actions from OpenFlow
- [ONOS-384] - "push-test-intent" test with 3+ nodes return wide-range latency
- [ONOS-389] - ONOS stop working while stressing with push-test-intent
- [ONOS-393] - NullPointerException when bringing down a link between 2 devices
- [ONOS-423] - LinkResourceStore should store should throw appropriate Exceptions
- [ONOS-426] - Definition of org.onosproject.net.resource.Bandwidth value is unclear
- [ONOS-432] - MessageSubject needs a scheme/naming convention to avoid collisions
- [ONOS-435] - GossipDeviceStore: Timeout during executor shutdown
- [ONOS-436] - Hosts learned via Gossip sometimes are missing ips
- [ONOS-439] - OpticalLinkProvider.processLink throws NPE
- [ONOS-440] - OpticalPathProvisioner NPE
- [ONOS-447] - HostLocationProviderTest.java build error in eclipse
- [ONOS-468] - Failed to respond to peer's getFlowEntries request java.io.IOException: io.netty.util.concurrent.BlockingOperationException: DefaultChannelPromise@26bd6338(incomplete)
- [ONOS-471] - Clean up/refactor IntentManager
- [ONOS-473] - GossipLinkStore {src, dst}Links is not concurrent access safe.
- [ONOS-474] - LinkManager logs "link vanished", even if no links vanished
- [ONOS-477] - NPE when restarting an ONOS node with intents installed
- [ONOS-478] - NPE in Mobility app
- [ONOS-487] - onos-install fails when group name differs from user name
- [ONOS-537] - Requesting output to controller results in receiving PacketIn messages with 0-length packet data
- [ONOS-541] - single-inst ONOS VM stuck at high CPU after connecting to 500 switch topo
- [ONOS-554] - Intents-events-metrics counts do not match even when there are no failed/stuck intents in ONOS
- [ONOS-566] - ONOS "stuck" when "push-test-intent" of 100000 intents
- [ONOS-577] - java.lang.ArrayIndexOutOfBoundsException during Hazelcast event processing
- [ONOS-581] - Chordal ring topology does not converge on ONOS until ONOS restart
- [ONOS-605] - Exceptions thrown while deserializing truncated or malformed packets
- [ONOS-606] - ClassNotFound exception when deploying ONOS with onos-test command
- [ONOS-609] - Moderately large numbers of intents do not generate correct number of FlowMods
- [ONOS-653] - Null Device Provider causes exceptions in multi-node configuration
- [ONOS-654] - onos-install show the cksum error: No such file or directory
- [ONOS-661] - ICMP packets are dropped by deafult from OF 1.3 switches even when reactive forwarding is active
- [ONOS-666] - Heap memory stuck at high usage level after long run of "demo installer"
- [ONOS-675] - deleting a device(switch) with flow rule installed cause intent to stuck at WITHDRAW_REQ state
- [ONOS-704] - onos-install returns an error when trying to deploy on a remote cell after switching branch
- [ONOS-705] - Exception while running ONOS (master) - against Pica8 switch: java.lang.IllegalArgumentException: Device with ID of:5e3e486e73000187 not found
- [ONOS-706] - Wrong log configuration file in CLI
- [ONOS-711] - Intent Stress test (demo-installer) causes intent install drop after ~3min load
- [ONOS-712] - Using demo Installer, intents cannot be installed on instances that has no mastership of switches
- [ONOS-722] - Proxy ARP sometimes floods packets out the port they came in
- [ONOS-735] - Sometimes, SDN-IP can not start together with ONOS as a feature in cell
- [ONOS-776] - ConfigReader gives errors converting port 46864 to short
- [ONOS-779] - NullPointerException thrown while deserializing malformed BDDP packets
- [ONOS-787] - ONOS sends DELETE flow mods containing actions in OF1.0
- [ONOS-807] - Can't install multi-point to single-point intents on the FSFW
- [ONOS-808] - Fix Bug ONOS-807 - use explicit incoming port matching for Multi-point-to-single point Intents
- [ONOS-832] - Null Devices started on one ONOS node can not be re-assigned mastership to another
- [ONOS-833] - uninstall onos-null feature causes Null devices in unexpected states
- [ONOS-835] - can not install and start two null link provider concurrently on two ONOS nodes
- [ONOS-836] - "flicker" does not run, if reinstall "onos-null" after uninstall
- [ONOS-864] - NPE in Hazelcast during backup
- [ONOS-868] - "NoClassDefFound" exception in onos-intent thread
- [ONOS-871] - When running two simultaneous demo installer on two nodes, one of the nodes get extremely low operation rate
- [ONOS-886] - onos-core-net NPE when running demo installer
- [ONOS-890] - Null Link Provider creates extra links when being run on multiple nodes
- [ONOS-955] - Caught "NoSuchElement" exception while installing large-size intents using "push-test-intents"
- [ONOS-959] - BgpSessionManagerTest unit test failure: BGP route entry lookup
- [ONOS-974] - L2/L3 modification instruction equality is checking for wrong class
- [ONOS-987] - PushHeaderInstructions contains incomplete Ethernet object
- [ONOS-988] - With null link flickering test, scaling onos from 5 to 6(7) nodes causes all nodes thrashing and very low topo performance
- [ONOS-997] - onos:cluster-devices argument "id" is incorrectly optional
- [ONOS-1009] - ICMPv6 class has bad checksum calculation.
- [ONOS-1010] - ProxyArpManager class has bug with creating IPv6 ND advertisement
- [ONOS-1021] - Forwarding IPv6 NDP requests on external ports uses incorrect IPv6 source address
- [ONOS-1112] - when install with large # of flows (flow-test.py), deleting flows takes long time
- [ONOS-1113] - No links present on ONOS after bring up of att-topo from Mininet
- [ONOS-1114] - All ONOS instances crashed after restarting mininet (NPE at WAIT_SWITCH_DRIVER_SUB_HANDSHAKE)
- [ONOS-1151] - Filtering options in ONOS CLI shell are not working & causing some test scripts to fail
- [ONOS-1155] - Topology won't converge in multinode cluster (switches and links)
- [ONOS-1157] - "memory leak" after flow-tester.py test
- [ONOS-1161] - Kryo exceptions in EventuallyConsistentMap under load
- [ONOS-1162] - Hazelcast exceptions under load
- [ONOS-1163] - Hazelcast Exceptions under load
- [ONOS-1171] - NPE in GossipDeviceStore when disconnecting switches
- [ONOS-1173] - exception during flow-tester.py testing flow throughput
- [ONOS-1185] - flow-tester.py timeout/return "elapse" without error in log
- [ONOS-1187] - flow-tester.py test results with large variance under light load
- [ONOS-1189] - If a node has device mastership it will be placed in the standby queue when disconnecting from the cluster
- [ONOS-1193] - ConcurrentModificationException while processing Device Event
- [ONOS-1198] - Hazelcast exception: Current thread is not owner of the lock!
- [ONOS-1208] - Gossip Link Store Exception: Requesting link timestamp without mastership
- [ONOS-1210] - Instability when using demo installer to test intent installation performance
- [ONOS-1212] - NPE - when running Intent (demo installer) test
- [ONOS-1214] - Null provider can not form deterministic topology
- [ONOS-1222] - ONOS takes over 60sec to load Null provider bundle
- [ONOS-1286] - Links vanish when devices change mastership
- [ONOS-1313] - Links are not discovered properly in multi-instance scenarios
- [ONOS-1315] - IntentPerfInstaller does not read in correct config
- [ONOS-1317] - Intents pending cli command does not support json output
Epic
- [ONOS-578] - Improve Southbound Performance
- [ONOS-643] - We need to complete integration tests for SDN-IP
Improvement
- [ONOS-419] - LinkDiscovery: Suppress discovery on ports which have been configured not to be involved in link discovery
- [ONOS-434] - summary command should print # of active nodes instead of all known nodes
- [ONOS-461] - Maven version mismatch in bash_profile
- [ONOS-470] - Username is statically configured in onos.conf
- [ONOS-536] - `onos-group` for batching commands to all controllers in a cell
- [ONOS-607] - controller port visualized uncorrectly into ONOS CLI
- [ONOS-852] - Intent install concurrency
- [ONOS-975] - equality check for type() in some of Instruction classes are redundant.
- [ONOS-1003] - Add an option to flows command to print flows added per device
New Feature
- [ONOS-451] - Augment Glyph library to be extensible
- [ONOS-506] - Handle IPv6 Neighbor Solicitation in ReactiveForwarding
- [ONOS-507] - Trace Neighbor Solicitation/Advertisement and IPv6 Data Packets in HostLocationProvider
- [ONOS-508] - Implement IPv6 related classes in org.onlab.packet
- [ONOS-535] - Show through the CLI the IP of the switches connecting to ONOS
- [ONOS-539] - See port names
- [ONOS-540] - Create a module to install default flows upon switches connection
- [ONOS-624] - Distributed Application Management Framework
Story
- [ONOS-9] - Define, Document and Automate HA test cases
- [ONOS-11] - Document and Automate OF1.0/1.3 Functionality Tests (Single & Multi Instance)
- [ONOS-24] - BW Calendaring App - Adding latency constaint
- [ONOS-80] - Support sharding (partitioning) for DatabaseManager
- [ONOS-101] - Extensible navigation & view framework
- [ONOS-214] - How to: contribute to testing
- [ONOS-278] - Show ports on links
- [ONOS-279] - Clean up GUI Technical Debt
- [ONOS-422] - Support IPv6 in SDN-IP
- [ONOS-442] - Null Providers
- [ONOS-450] - Implement Dark theme.
- [ONOS-456] - UI Framework: migrate to AngularJS
- [ONOS-481] - Revisit FlowRule equals design
- [ONOS-483] - SDN-IP: support for 4-byte AS in BGP
- [ONOS-491] - Start/stop LINC network elements from Mininet
- [ONOS-494] - Deploy ONOS and SDN-IP on the local Internet2 testlab network
- [ONOS-495] - Deploy ONOS 1.0.0 and SDN-IP on AL2S network
- [ONOS-509] - Extend Selector and Treatment for IPv6-related Criteria
- [ONOS-542] - ONOS Application as a distributed construct & deployable entity
- [ONOS-561] - TestON Framework and Process Improvements
- [ONOS-562] - HA Assessment and Test Enhancements
- [ONOS-563] - Update CHO Test Plan on wiki with new Test cases
- [ONOS-564] - Feature Test Enhancements
- [ONOS-567] - Add a monitoring mechanism based on MadDash to the testlab deployment
- [ONOS-584] - Finalized Network + Intent Performance Testing Methods and Metrics
- [ONOS-589] - TestON Test Script preparation for Network TP Testing
- [ONOS-593] - TestON Script Preparation for Intent TP Tests
- [ONOS-608] - Test Coverage of Release 1.0.1 bug fixes
- [ONOS-616] - FlowRuleService API enhancements
- [ONOS-617] - FlowRuleManager refactoring
- [ONOS-618] - IntentService API enhancements
- [ONOS-619] - IntentStore refactoring
- [ONOS-621] - TopologyManager refactoring
- [ONOS-622] - Integration - Multi-ring RAFT store implementation
- [ONOS-623] - Device Driver Framework
- [ONOS-629] - Server-side processing of index.html
- [ONOS-630] - Understand the behavior of SDN in case of network reset/re-configuration
- [ONOS-632] - Intent dependency tracking
- [ONOS-635] - Add IPv6 support to HostMonitor
- [ONOS-650] - Intent-based Performance Test-Profile-Optimization Iterations
- [ONOS-658] - Create Production testbed for HA and Functional testing
- [ONOS-678] - Develop Intent Latency Test Script
- [ONOS-693] - SDN-IP tutorial script for IPv6
- [ONOS-698] - Write a technical document to describe SDN-IP and ONOS behavior - version 1
- [ONOS-713] - Build a 7-node baremetal server cluster for Perf/Scale tests
- [ONOS-716] - Develop SB Latency Test Script
- [ONOS-719] - Develop SB TP Test Script
- [ONOS-720] - Develop Intent TP Test Script
- [ONOS-739] - SB Performance Test-Profile-Optimization-Retest Optimization
- [ONOS-740] - Distributed Intent processing leveraging new Intent Store
- [ONOS-742] - Multi-ring RAFT store prototype
- [ONOS-746] - Improve intent stability for long-running test
- [ONOS-747] - Repicate and understand ONOS bug ONOS-712
- [ONOS-748] - Fix ONOS-735. Replicate the problem and put the correct dependencies between the modules involved in ONOS-735
- [ONOS-757] - Start re-implementing modular Topology View
- [ONOS-758] - FlashService implementation
- [ONOS-759] - PanelService implementation
- [ONOS-760] - QuickHelpService implementation
- [ONOS-761] - VeilService implementation
- [ONOS-762] - WebSocketService implementation
- [ONOS-764] - Basic DeviceListView implementation
- [ONOS-769] - Complete re-implementation of modular Topology View
- [ONOS-841] - ONOS Thread names
- [ONOS-855] - Improve SB Perf Data Presentation and Logging
- [ONOS-856] - Improve NB+Core Performance Data Presentation and Logging
- [ONOS-874] - Intent subsystem refactoring
- [ONOS-893] - New CHO test scripts to run on 3 different topologies (ATT, Chordal, Spine)
- [ONOS-907] - Add separate jenkins job for running CHO on maintenance branch
- [ONOS-909] - Update and clean up TestON Github Main page and other links
- [ONOS-910] - Write up a beginners tutorial on TestON and publish to onosproject wiki
- [ONOS-924] - Add support for IPv6 Neighbor Discovery Proxy
- [ONOS-925] - Develop Flow Rule Performance Test
- [ONOS-927] - Delete FlowRules from disconnect devices
- [ONOS-943] - Metrics for FlowService
- [ONOS-957] - Add basic onos-app-ifwd test to be verified on all 3 CHO topologies
- [ONOS-979] - Demonstrate scale-out for IP/optical app
- [ONOS-1005] - Investigate if python threading could be used in test cases to call ONOS driver functions
- [ONOS-1014] - Modify current Jenkins results script for CHO to include new topology tests
- [ONOS-1033] - Restructure NullLinkProvider.
- [ONOS-1054] - IntentStore cleanup for Performance
- [ONOS-1058] - Intent CLI Command cleanup
- [ONOS-1067] - SB Performance Test-Profile-Optimization-Retest Optimization
- [ONOS-1074] - CLI for querying DatabaseManager's state (partition members, leaders, etc)
- [ONOS-1077] - Develop Intent TP Test Script: Part 2
- [ONOS-1078] - Propose vendor-neutral ROADM model
- [ONOS-1118] - Button Factory
- [ONOS-1119] - Toolbar Service
- [ONOS-1120] - Toolbar API
- [ONOS-1145] - Centralized component configuration
- [ONOS-1180] - MultiThreaded HA Tests
- [ONOS-1306] - Update the topology CLI driver function in TestON to work with new o/p format
Task
- [ONOS-183] - Save and load hazelcast.xml from TestON dependencies folder to avoid overwrite
- [ONOS-368] - Sporadic MasterShipStore unittest failure
- [ONOS-588] - Document Final Test Plan on Wiki
- [ONOS-773] - Implement a testcase for ONOS-260 bug to verify :Ping cannot go through when both P2P and H2H intent configured
- [ONOS-869] - ONOS core extended flow rule and store for installing service data to network elements