Core Group Assignment for Fragmented Packet Affinity
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing network devices struggle to effectively distribute load across multiple cores while maintaining packet flow affinity, especially with fragmented packets, leading to inefficiencies and increased latency.
Innovation Solution
The techniques involve defining core groups within network devices, assigning traffic flows to specific core groups, and using a routing engine to manage the distribution of packet data across cores, ensuring that fragmented packets are reassembled and network services are applied efficiently.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If fragmented packets are distributed across multiple cores for processing, then load balancing is improved, but packet flow affinity is lost causing increased latency
Solution Approach 1:
The patent segments the multi-core processor into multiple core groups, where each core group is assigned to handle specific packet flows. This segmentation allows the system to maintain packet flow affinity within each core group while still achieving load balancing across different core groups. The routing engine distributes packet flows to different core groups based on available capacity, ensuring that related packets (fragments) remain together while balancing the workload across the processor.
Solution Approach 2:
The routing engine performs preliminary assignment of packet flows to core groups before actual packet processing begins. By pre-establishing which core group handles which packet flow, the system ensures that all fragments of a given packet flow are directed to the same core group in advance, preventing latency caused by dynamic routing decisions during packet processing.
2Loss of time
If packet flows are assigned to specific cores, then packet flow affinity is maintained, but load distribution across cores becomes uneven
Solution Approach 1:
The patent introduces dynamic load balancing among core groups while maintaining static assignment within each core group. The routing engine monitors the load status of different core groups and dynamically distributes new packet flows to underutilized core groups. This dynamic approach ensures that packet flow affinity is preserved within core groups (reducing latency) while achieving balanced load distribution across the entire multi-core system (improving productivity).
Data Source
AI summary
Techniques are disclosed for maintaining processing unit core affinity for fragmented packets. In one example, a service physical interface card (PIC) implementing a service plane of a network device receives fragmented and/or non-fragmented packet data for a traffic flow. The service PIC comprises at least one processing unit comprising multiple cores. A routing engine operating in a control plane of the network device defines one or more core groups comprising a subset of the cores. The routing engine assigns the traffic flow to a core group and a forwarding engine operating in a forwarding plane of the network device forwards the packet data for the traffic flow to the assigned core group. A core of the assigned core group applies a network service to the fragmented and/or non-fragmented packet data for the traffic flow, and the forwarding engine forwards the packet data for the traffic flow toward a destination.


