Patent ID: 8755377

Claim:
A system comprising: a first set of elements and a second set of elements that implement one or more virtual networks, wherein the first set of elements includes a first server device and the second set of elements includes a second server device, each of the first server device and the second server device comprising a respective virtual network switch having one or more forwarding tables configured to forward network traffic for the respective server device over the one or more virtual networks; a first controller node device configured to control operation of the first set of elements in the one or more virtual networks; and a second controller node device configured to control operation of the second set of elements in the one or more virtual networks, wherein the first controller node device and the second controller node device are peers according to a peering protocol by which the first controller node device and the second controller node device exchange information relating to the operation of the first set of elements and the second set of elements, and wherein each of the first controller node device and the second controller node device comprises: a control plane virtual machine to communicate with the virtual network switches using an eXtensible Messaging and Presence Protocol (XMPP); a configuration virtual machine to store and manage at least a portion of a configuration database that stores configuration information for the virtual network switches; an analytics virtual machine to store and manage at least a portion of an analytics database that stores diagnostic information for the virtual network switches, wherein the configuration virtual machine and analytics virtual machine communicate with the control plane virtual machine using an Interface for Metadata Access Points protocol, wherein the control plane virtual machine configures the virtual network switches by using XMPP to send route data and configuration information to the virtual network switches, and wherein the control plane virtual machine uses XMPP to receive logging information for the virtual network switches and routes the logging information to the analytics virtual machine for storage to the analytics database.