Transmit Queue Alignment for Receive-Transmit Side Scaling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
There is currently no mechanism for transmit side scaling, where the network interface card specifies to the operating system the manner in which data packets transmitted by the operating system are to be distributed, and there is also no alignment between receive and transmit side scaling, leading to processing latency, memory consumption, and packet drops.
Innovation Solution
Implementing transmission side configuration information in an outbound transmission table and aligning it with inbound transmission table to specify how data packets are distributed between processors and network interface cards, ensuring aligned transmit and receive side scaling.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If receive side scaling is implemented without transmit side scaling, then data packets received by the network interface card can be distributed among processors, but data packets transmitted by the operating system cannot be efficiently distributed to the network interface card, leading to processing latency
Solution Approach 1:
The patent divides the packet processing function into two separate scaling mechanisms: receive side scaling for incoming packets and transmit side scaling for outgoing packets. Each scaling mechanism independently manages packet distribution to different transmit queues, enabling parallel processing and reducing latency without requiring a single monolithic processing structure.
Solution Approach 2:
The outbound transmission table is pre-configured with transmit queue information before packet transmission occurs. This preliminary setup allows the network interface card to immediately determine the appropriate transmit queue for each packet based on pre-calculated hash values, eliminating the need for runtime decision-making and reducing processing latency.
2Productivity
If transmit side scaling is implemented without alignment to receive side scaling, then transmit packet distribution can be controlled, but packet drops occur due to mismatched processing paths
Solution Approach 1:
The patent establishes a feedback mechanism where the outbound transmission table is configured based on the receive side scaling configuration. The host operating system communicates the receive scaling parameters to the network interface card, which then configures its transmit side scaling accordingly. This feedback loop ensures that both scaling mechanisms work in harmony, preventing packet drops caused by misalignment.
Solution Approach 2:
The patent dynamically adjusts the transmit side scaling parameters to match the receive side scaling configuration. By changing the scaling parameters in the outbound transmission table to align with the inbound transmission table, the system ensures consistent packet handling across both receive and transmit paths, maintaining reliability while enabling controlled distribution.
3Productivity
If transmit side scaling is implemented without alignment to receive side scaling, then transmit queue distribution can be specified, but memory consumption increases due to unintentional requeuing
Solution Approach 1:
The outbound transmission table is pre-configured with the correct transmit queue mappings before packets arrive. This preliminary configuration eliminates the need for dynamic requeuing operations, as packets can be directly routed to the appropriate queue based on pre-calculated hash values. By performing the distribution decision in advance, the system avoids the memory overhead associated with temporary buffering and requeuing operations.
Data Source
Figure 1
Figure 2A
Figure 2B
AI summary
Examples of the present disclosure describe systems and methods for transmit side scaling. In examples, transmission side configuration information is received by a host operating system from a guest operating system, where the transmission side scaling configuration information specifies the manner in which data packets transmitted by the host operating system are to be distributed to a network interface card of the host operating system. The transmission side configuration scaling information is implemented in an outbound transmission table of the host operating system. When a data packet is received by the host operating system, the host operating system evaluates the data packet using the outbound transmission table. Based on the evaluation, that data packet is transmitted using a specified transmit queue of the network interface card.