NIC Teaming Configuration Flip Without Live Traffic Interruption
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current NIC teaming configurations require synchronization and locking, which are expensive and block I/O threads during configuration changes, limiting high-performance network processing.
Innovation Solution
The system allows multiple I/O threads to run concurrently without synchronization by maintaining both current and new NIC teaming configurations, flipping between them during iterations, enabling continuous operation without locking.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If locking mechanism is used to synchronize configuration changes, then configuration reliability is improved, but processing speed deteriorates due to blocking I/O threads
Solution Approach 1:
The patent segments the NIC teaming device into a data plane (for packet processing) and a control plane (for configuration changes). The data plane continues processing packets without interruption while the control plane handles configuration modifications separately, eliminating the need for locks during packet processing.
Solution Approach 2:
The patent applies preliminary action by preparing configuration changes in advance and applying them during idle periods or when I/O threads are not actively processing. The system can switch configurations without interrupting active packet processing by preparing the new configuration state beforehand.
2Reliability
If locking is applied to protect configuration changes, then data integrity is improved, but productivity deteriorates due to thread blocking
Solution Approach 1:
The patent divides the NIC teaming device operations into separate data plane and control plane functions. The data plane handles packet processing independently without acquiring locks, while the control plane manages configuration changes separately, ensuring both data integrity and productivity.
Solution Approach 2:
The patent creates a copy of the NIC teaming device configuration in memory, allowing configuration changes to be made on the copy while the original configuration continues to be used by I/O threads. This enables non-blocking configuration updates that maintain data integrity without sacrificing productivity.
3Reliability
If I/O threads acquire and release locks frequently, then configuration synchronization is improved, but system overhead increases
Solution Approach 1:
The patent segments the synchronization mechanism by separating data plane operations from control plane operations. I/O threads in the data plane no longer need to acquire locks for configuration changes, as the control plane handles synchronization independently, significantly reducing system overhead.
Solution Approach 2:
The patent extracts the locking mechanism from the packet processing path and places it in the configuration management path. This extraction removes the overhead of frequent lock acquisition and release from I/O thread operations while maintaining configuration synchronization through separate control mechanisms.
Data Source
AI summary
Systems and methods described herein facilitate configuration changes to an NIC teaming device while enabling multiple I/O threads continue to run through the NIC teaming device concurrently without interruption. At a given time, multiple configurations of the NIC teaming device, e.g., one for a current configuration of the NIC teaming device and one for a new configuration of the NIC teaming device, can co-exist. For the duration of one iteration, the current configuration of the NIC teaming device used by a specific I/O thread does not change and the new configuration of the NIC teaming device is not adopted by the I/O thread until the start of the next iteration. Once all of the I/O threads finish their current iteration, the configuration of the NIC teaming device is flipped from the current configuration to the new configuration and the current configuration is deleted.


