A Kilo of Cisco Contributions

“Voices of Cisco” is a short-term blog series that will feature insight from Cisco OpenStack experts in the lead-up to the OpenStack Summit in Vancouver. The intent is to shine light on our involvement in the project, explain some of the newest features that are coming out, and explain how our own products are engineered to take advantage of all that this powerful platform has to offer. The first post in the series comes courtesy of Patrick Amor, Director of Engineering, OpenStack:

OpenStack has gathered considerable momentum and I’m looking forward to the community release of Kilo and the upcoming Summit in Vancouver. Here at Cisco, we have been busy this month putting the final touches on our contributions across the various OpenStack projects in which we are actively involved. As one might expect from a company known for networking, Cisco has completed several blueprints in the Neutron project as well as in other projects such as Horizon, Ceilometer, Barbican, Magnum, and Kolla. We are committed to helping OpenStack mature and succeed so that our customers can succeed. In my engineering team this has always been our focus and this is now reflected in our corporate theme for the Summit. “Committed to OpenStack. Committed to You.”

OpenStack is often perceived as an ever expanding universe, with new projects, new services, and new features being added everywhere and frequently. That’s a fine thing as long as the center of the universe remains stable. That center, or core, roughly defined as compute, storage, and networking, need to be strong, stable, and robust or else that universe will start to contract.

In the networking space, Cisco continues to play a leading role in the Neutron project, making contributions such as bringing in much desired IPv6 support to OpenStack. With most operators faced with the reality of IPv4 address scarcity, making the switch to IPv6 is often imperative. In the Juno release we have developed the support for Router Advertisement Daemon (radvd) for IPv6 and in Kilo we have added support for multiple IPv6 prefixes for IPv6 networks. Since IPv6 standards allow for multiple IPv6 prefixes and addresses to be associated to an interface, OpenStack Neutron’s APIs needed to be enhanced to support such semantics. Cisco has also contributed changes to Neutron for IPv6 routing support. This allows the Link-Local Address (LLA) for the gateway port to be used as the external gateway to connect to the upstream router.

Networking is often perceived as mysterious magic and the whole point of making OpenStack networking its own service is to treat that magic as an abstraction that the cloud tenant doesn’t need to worry about. They just want to connect things and let data flow between them. Unbeknownst to them are the layers of complexity involved in getting that packet of data from A to B. It’s not enough that the data gets there, but it has to get there as efficiently as possible. Packet fragmentation along that path can severely hamper throughput and the maximum transmission unit (MTU) size of a packet is highly dependent on the magic (the alphabet soup of VLAN, VXLAN, GRE tunnels, etc.) being employed to connect points A and B. Cisco has introduced an extension in Kilo which allows the L2 plugins to calculate a suitable MTU and observe the limits of the network MTU to avoid problems such as fragmentation and dropped packets. This functionality was added to support Network Function Virtualization (NFV) use cases, a topic which I’ll cover in more detail along with other features we added in a future blog post.

I’m also excited to announce that Cisco has introduced a new Neutron plugin that integrates OpenStack networking with Cisco’s Unified Computing Solution (UCS) Manager. This Modular Layer Two (ML2) Mechanism Driver allows SR-IOV ports to be assigned to Nova VMs and configure use of Cisco’s VM Fabric Extender (VM-FEX) on these ports. Using SR-IOV allows a direct PCI map from the guest VM to the virtual interface card (VIC), eliminating virtual L2 switching at the compute host. This offloads switching cycles from the host CPU to the network processor on Cisco¹s Fabric Interconnect improving performance and saving CPU resources.

As I mentioned earlier, Cisco has also been contributing to other OpenStack projects such as Ceilometer, Heat, and Horizon to integrate networking or to add new features to address customer requirements. For example, both the Heat orchestration project and Horizon dashboard project have been enhanced to support the various new features we have added to Neutron. We have updated Heat and Horizon to support PCI pass-through ports for Single Root I/O Virtualization (SRIOV) features and for the UCS Manager VM-FEX plugin mentioned above, and we’ve also given Horizon a new panel to monitor and manage Ceph deployments.

Cisco has also been instrumental in bringing containers to OpenStack with contributions to the Magnum project and the Kolla project and I’ll talk about some of those exciting developments there in a follow-on post.