200 likes | 350 Views
HP OpenFlow Plugin and Libraries. June 30, 2014. Why We Are Here. We are new to this community and have taken the opportunity to learn and explore where we can help and how we can contribute.
E N D
HP OpenFlow Plugin and Libraries June 30, 2014
Why We Are Here • We are new to this community and have taken the opportunity to learn and explore where we can help and how we can contribute. • One way we hope to contribute is by sharing the learnings we’ve gathered from productizing our SDN controller. • Our efforts to support OpenFlow on the various HP switches and the performance challenges that we’ve overcome is one of the first steps that we are hoping to take to contribute back to the community.
Performance • Performance is important • especially for productization • It is our experience that performance is affected both by • how the SAL is structured • how the controller handles I/O
Performance Numbers • We are able to achieve consistent and sustained performance of ~3Mpps. Xeon 2.93 GHz 24core PC with 12 GB RAM
How We Got There • Abstraction • Abstract access to the network model • IOLoop • Efficient handling of connections and I/O • Testing & Quality • Maintain high level of coverage and regression
Abstraction • Allows caching to provide fast access to commonly used views • Allows us to summarize and extract information from the data, without forcing app users to process the model directly • Allows us to change the underlying implementation and optimize how we acquire, process, distribute, and track the data
IOLoop • We started out with Netty, but discovered a critical limitation • Fails to aggressively pack multiple messages into a single frame • Performance capped at ~1.2Mpps • We adapted an existing network I/O library allowing us to achieve throughput of ~3Mpps • The I/O library itself is capable of 10s of Mpps, the ~3Mpps is performance obtained end-to-end, including encoding/decoding of packets, network service processing, etc…
Testing & Quality • Unit test code coverage >80% • Extensive Javadoc documentation
System Abstraction Service & Model API Drivers Packet Flow Path Link Host Node Topo Managers Suppliers & Brokers Facets API Base Drivers Packet Flow Path Link Host Node Topo Base Drivers Packet Flow Path Link Host Node Topo Suppliers . . . SNMP NETCONF OpenFlow Protocols