Span Computation for SDN Configuration Dispatching
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In software-defined data centers, managing configurations for large numbers of logical networking entities such as logical switches and routers is inefficient due to the need for all physical hosts to be aware of these entities, leading to high memory requirements and time-consuming configuration updates, especially when VMs migrate and disconnect.
Innovation Solution
A method to dynamically compute the span of each logical entity, representing the hosts that need its configuration, and dispatching configurations only to those hosts using an abstract model that converts directed graphs into acyclic graphs to reduce memory consumption and optimize configuration updates.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If configuration of logical entities is pushed to all hosts, then all hosts can apply correct policies and establish connections, but memory consumption and configuration update time increase significantly
Solution Approach 1:
The patent implements local quality by making configuration distribution selective rather than universal. Each host receives configurations only for logical entities that are relevant to its local VMs and network context. The controller determines which hosts need which configurations based on the logical entity's span (the set of hosts with VMs connected to that logical entity), ensuring that configuration data is distributed locally only where needed rather than to all hosts uniformly.
2Reliability
If configuration of logical entities is pushed to all hosts, then all hosts can apply correct policies and establish connections, but configuration update time increases with the number of hosts
Solution Approach 1:
The patent implements local quality by making configuration distribution selective rather than universal. Each host receives configurations only for logical entities that are relevant to its local VMs and network context. The controller determines which hosts need which configurations based on the logical entity's span (the set of hosts with VMs connected to that logical entity), ensuring that configuration data is distributed locally only where needed rather than to all hosts uniformly.
3Adaptability or versatility
If all hosts store configuration of all logical entities, then any host can handle any logical entity, but the system cannot scale to tens of thousands of logical entities
Solution Approach 1:
The patent applies segmentation by dividing the configuration management system into two distinct roles: a controller that maintains the global view of all logical entities and their spans, and hosts that maintain only the local subset of configurations relevant to their VMs. This segmentation allows the system to scale because hosts do not need to store or process configurations for all logical entities, only those within their local scope. The controller handles the global coordination and span computation, enabling the system to manage tens of thousands of logical entities without overwhelming individual hosts.
4Reliability
If configuration is pushed to hosts proactively, then hosts are always up-to-date, but unnecessary configurations are transmitted when VMs migrate or disconnect
Solution Approach 1:
The patent implements feedback by establishing a bidirectional communication mechanism between hosts and the controller. When VMs migrate or disconnect from logical entities, hosts notify the controller of these changes. The controller then recomputes the spans of affected logical entities and updates configuration distributions accordingly, pushing configurations only to hosts that currently have VMs connected to those logical entities. This feedback loop ensures that hosts remain up-to-date with configurations only when necessary, avoiding unnecessary transmission when no VMs are affected.
Data Source
AI summary
A method of determining the span of logical entities in a network is provided. The method generates a directed graph. Each node of the graph corresponds to a logical network entity. Each edge of the graph has one or two directions. A direction from a first node to a second node identifies the first node as the source of span for the second node. The method determines the span of each node based on the direction of the edges of the directed graph. The method groups each set of nodes that are accessible by all other nodes in the set in a strongly connected group (SCC) sub-graph. The method generates a group node in a directed acyclic graph (DAG) to correspond to each SCC sub-graph in the directed graph. The method assigns the span of each SCC to the corresponding group node of the DAG.


