Smart NIC Bandwidth Optimization via MetaPacket Extraction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current communication network systems face bottlenecks due to high CPU resource utilization from increased network interface bandwidth and complex data plane operations, particularly in cloud data centers, where traditional NICs are limited by PCI bandwidth, and require significant host-side changes for offloading protocols.
Innovation Solution
A communication system with a smart NIC equipped with a logic/programmable processor and local memory, using a communication bus to forward only relevant data from packets for networking decisions, forming MetaPackets with descriptors like memory locations, timestamps, and statistics, and applying an aging mechanism to optimize bandwidth usage.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If traditional NICs are used with increased network interface bandwidth, then network throughput is improved, but CPU resource utilization increases and PCI bandwidth becomes a bottleneck
Solution Approach 1:
The patent extracts the protocol processing functions from the host CPU and relocates them to the smart NIC. The smart NIC includes a protocol processing engine that can handle transport layer protocols (TCP, UDP, SCTP) and network layer protocols (IP, IPv6), effectively removing the I/O bottleneck from the host system and allowing the CPU to focus on application processing.
Solution Approach 2:
The smart NIC acts as an intermediary between the network and the host CPU. It includes a receive side scaling (RSS) engine that distributes network traffic across multiple CPU cores, and a protocol processing engine that handles protocol operations before data reaches the host, thereby mediating the data flow and reducing CPU burden.
2Device complexity
If protocol processing is offloaded to smart NIC, then CPU resource utilization is reduced, but host-side software changes are required
Solution Approach 1:
The smart NIC is designed with universal protocol processing capabilities that can handle multiple transport protocols (TCP, UDP, SCTP) and network protocols (IP, IPv6) through a single reconfigurable engine. This multi-functionality reduces the need for protocol-specific hardware and simplifies the overall system architecture.
Solution Approach 2:
The protocol processing engine in the smart NIC is dynamically reconfigurable, allowing it to adapt to different protocol requirements and processing modes. The engine can be programmed to handle various protocol stacks and can dynamically adjust its behavior based on the traffic patterns and performance requirements.
3Productivity
If fixed-function offload technologies are applied, then performance is improved, but networking data plane fungibility is reduced
Solution Approach 1:
The smart NIC employs a dynamically reconfigurable protocol processing engine that can be programmed to handle different protocol stacks and networking scenarios. This dynamic capability allows the data plane to adapt to changing requirements while maintaining high performance, unlike fixed-function offload technologies.
Solution Approach 2:
The smart NIC allows for parameter changes in the protocol processing engine through software configuration. The engine can be programmed with different protocol parameters, window sizes, and processing behaviors to optimize performance for specific applications while maintaining fungibility across different networking scenarios.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A communication system comprising at least one smart network interface card ("NIC") provided with a logic/programmable processor and a local memory, and a computing element, wherein a communication bus is used to connect said smart NIC and said computing element to enable forwarding data there-between, wherein the system is characterized in that said smart NIC is configured to receive data packets, to extract data therefrom and to forward less than all data comprised in the received data packets, to said computing element along said communication bus, and wherein the forwarded data comprises data which is preferably required for making networking decisions that relate to that respective data packet.