OpenFlow Switch Flow Entry Modification for Load Balancing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current OpenFlow-based load balancing architectures face latency issues due to the separation of controllers and switches, leading to delayed data packet transfer and high resource consumption, as they require extensive involvement of the controller in flow management and maintenance.
Innovation Solution
Implement a method where flow entries in the switch's flow table are dynamically modified to include multiple servers, allowing data packets to be transmitted to both servers without continuous controller intervention, and dedicated flow entries are installed for established data flows, reducing the need for frequent abort message handling and controller involvement.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If an external OpenFlow controller is used to manage flow entries in the switch, then flexibility in policy and robustness to failure are improved, but latency increases and resource consumption increases due to continuous controller involvement
Solution Approach 1:
The controller pre-installs flow entries with multiple server destinations in the switch's flow table before steady-state operation begins. This preliminary configuration allows the switch to autonomously forward packets to multiple servers without continuous controller intervention, reducing latency while maintaining the flexible load balancing policy designed by the controller.
Solution Approach 2:
The switch is empowered to autonomously modify flow entries by adding server destinations based on packet inspection and load balancing rules, without requiring continuous controller involvement. This self-service capability reduces latency and controller resource consumption while the controller retains overall policy control through initial configuration and monitoring.
2Adaptability or versatility
If an external OpenFlow controller is used to manage flow entries in the switch, then flexibility in policy and robustness to failure are improved, but resource consumption increases due to continuous controller involvement
Solution Approach 1:
The controller performs flow table configuration and load balancing rule installation in advance, during which it consumes computational resources. Once configured, the switch autonomously executes load balancing operations locally, significantly reducing ongoing controller resource consumption while preserving the flexible policy framework established by the controller.
Solution Approach 2:
The switch takes over the computational workload of evaluating load balancing rules and modifying flow entries during steady-state operation, performing these operations locally without requiring continuous controller processing. This transfers resource consumption from the controller to the switch, reducing overall system resource usage while maintaining policy flexibility.
3Productivity
If flow entries are dynamically modified to include multiple servers, then load distribution is improved and controller involvement is reduced, but flow table complexity increases
Solution Approach 1:
Multiple server destinations are merged into single flow table entries as alternative destinations rather than creating separate flow entries for each server. This consolidation improves load distribution efficiency by reducing the number of table lookups required while the switch's flow modifier systematically manages the complexity of multi-destination entries through automated addition and removal of server destinations based on load conditions.
Data Source
AI summary
A method of operating a load balancing switch may include providing a flow entry in a flow table, the flow entry may include a match pattern that is satisfied by a data flow identification, and the flow entry may identify a first server. A first data packet including a first data flow identification may be received, and the first data packet may be transmitted to the first server responsive to the first data flow identification satisfying the match pattern. After transmitting the first data packet to the first server, the flow entry may be modified so that the flow entry identifies the first server and a second server. After modifying the flow entry, a second data packet including a second data flow identification may be received, and the second data packet may be transmitted to the first and second servers responsive to the second data flow identification satisfying the match pattern.


