Transmit-Side Scaling Tables for RSS-Aligned NIC Queue Assignment
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
There is no mechanism for transmit side scaling (TSS) in which the network interface card (NIC) specifies to the operating system the manner in which data packets transmitted by the OS are to be distributed, leading to processing latency, memory consumption, and packet drops, and there is no alignment between receive side scaling (RSS) and TSS.
Innovation Solution
Implementing TSS configuration information in an outbound transmission table of the host OS to specify data packet distribution to the NIC and aligning RSS and TSS through an inbound transmission table that maps data packets to CPUs and transmit queues.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of time
If data packets are transmitted without transmit side scaling configuration, then the system structure remains simple, but processing latency increases and packet drops occur
Solution Approach 1:
The system performs preliminary configuration by creating transmit side scaling tables (TST and TST-A) that pre-map data packet types to transmit queues. This advance preparation eliminates the need for complex real-time decisions during packet transmission, reducing processing latency while maintaining a manageable control structure.
Solution Approach 2:
The patent introduces transmit side scaling tables as intermediary structures between the operating system and the network interface card. These tables act as mediators that translate high-level transmission requirements into specific queue assignments, reducing both latency and the perceived complexity of the control mechanism.
2Reliability
If transmit side scaling is implemented without alignment to receive side scaling, then transmit queue distribution can be optimized independently, but data packets may be requeued causing packet drops
Solution Approach 1:
The patent merges transmit side scaling configuration with receive side scaling configuration by aligning the TST tables with the existing RSS tables. This integration ensures that data packets received by a particular CPU are transmitted from the same CPU's associated transmit queue, eliminating unnecessary requeuing and packet drops while maintaining a unified scaling approach.
Solution Approach 2:
The system enforces homogeneity between receive and transmit scaling configurations by ensuring that the same CPU handles both receiving and transmitting of data packets for a given flow. This consistent mapping across receive and transmit paths prevents packet drops caused by mismatched queue assignments.
3Adaptability or versatility
If transmit side scaling configuration is stored in the operating system, then flexibility in configuration is improved, but memory consumption increases
Solution Approach 1:
The patent creates compact copies of scaling configuration data in the form of TST and TST-A tables that are stored in memory. These tables contain only the essential mapping information (data packet type to transmit queue) rather than full configuration details, providing the needed flexibility while minimizing memory consumption through efficient data representation.
Data Source
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.


