Multi-Core Packet Steering via Cached Port Mapping
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In cloud computing environments, traditional VLANs limit network identifiers, leading to potential VLAN overlaps and increased latency and resource consumption when steering packets through multi-core devices acting as tunnel endpoints, as they require additional overheads for RSS computation and steering.
Innovation Solution
Implementing a system that allocates source ports to packets, allowing response packets to be steered directly to the same core that handled the request, by caching and using the source port in the outer header, thereby avoiding additional RSS computation and steering overheads.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If packets are steered through multi-core devices acting as tunnel endpoints using traditional RSS computation on outer tunnel headers, then packet distribution across cores is achieved, but additional latency and system resource consumption occur due to overheads for RSS computation and steering
Solution Approach 1:
The patent applies preliminary action by pre-computing and caching the mapping between source ports and cores before packet arrival. When a packet enters the tunnel endpoint, the source port is already associated with a specific core in a cache table, eliminating the need for real-time RSS computation on the outer tunnel header. This pre-established mapping allows immediate packet steering to the correct core, reducing latency while maintaining balanced packet distribution across cores.
2Productivity
If traditional RSS computation is performed on outer tunnel headers for packet distribution, then packets are distributed across multiple cores, but system resource consumption increases due to additional computation and steering overheads
Solution Approach 1:
The patent uses copying by creating and maintaining a cache table that stores the mapping between source ports and cores. Instead of performing complex RSS computations on each incoming packet's outer tunnel header, the system copies the pre-computed mapping relationship from the cache table directly to guide packet steering. This cached copy of the mapping information replaces the need for repeated computational operations, significantly reducing system resource consumption while maintaining effective packet distribution across multiple cores.
3Reliability
If VLANs are used to isolate applications and tenants in cloud computing environment, then network isolation is achieved, but the limit of 4096 network identifiers causes address exhaustion in large cloud environments
Solution Approach 1:
The patent applies dimensionality change by transitioning from a single-dimension VLAN identification system (limited to 4096 identifiers) to a multi-dimensional tunnel endpoint architecture. Instead of relying solely on VLAN tags, the system introduces additional dimensions including source ports, destination ports, and tunnel endpoint identifiers. This multi-dimensional approach allows for exponentially more unique packet identification and routing combinations, enabling network isolation to be maintained while scaling to accommodate large cloud environments with numerous tenants and applications.
Data Source
AI summary
The present disclosure is directed towards systems and methods of steering packets received by a multi-core device serving as a tunnel endpoint. A device including a plurality of cores identifies a core corresponding to a request to transmit to a destination via a tunnel. The tunnel is established between the first tunnel endpoint and a second tunnel endpoint. The device identifies, from a port allocation table, a source port based on the identified core, a first IP address of the first tunnel endpoint, a second IP address of the second tunnel endpoint and the destination port to steer a response to the request to the identified core. The device modifies a packet of the request to include in an outer header of the packet of the request, a first tuple identifying the first IP address, the second IP address, the destination port and the identified source port.


