Packet Steering Hot-Path Detection With Dynamic Node Counters
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Network devices face challenges in identifying and addressing bottlenecks in packet processing due to the lack of efficient tracking of packet paths through match-and-action tables, which are typically processed in hardware, making it difficult to optimize performance based on traffic patterns.
Innovation Solution
Implementing per-node packet counters that are dynamically assigned to different nodes of a graph representing match-and-action tables to count packets traversing these nodes, allowing for intermittent sampling and reassignment over time to identify hot paths and spots without significantly affecting steering performance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If per-node packet counters are implemented to track packet paths through match-and-action tables, then measurement precision of traffic patterns is improved, but device complexity increases
Solution Approach 1:
The patent implements dynamic reassignment of packet counters to different graph nodes at different time periods. Instead of statically assigning counters to specific nodes, the system periodically reassigns counters to track different portions of the graph, enabling comprehensive packet path monitoring while reusing the same physical counter resources multiple times.
Solution Approach 2:
The system performs periodic sampling and reassignment of packet counters at scheduled intervals. During each sampling period, counters track packet flows through specific nodes, then are reassigned to different nodes in subsequent periods. This periodic operation enables complete graph coverage over time while maintaining simple hardware at any given moment.
2Measurement precision
If packet counters are updated for every packet traversal, then measurement precision is improved, but productivity of packet processing decreases
Solution Approach 1:
Instead of updating counters for every single packet, the system implements intermittent sampling where counters are updated for a subset of packets during each sampling period. This partial action approach provides sufficient statistical information about traffic patterns while significantly reducing the overhead compared to tracking every packet.
Solution Approach 2:
The system updates packet counters periodically rather than continuously for every packet. Sampling occurs at scheduled intervals, allowing normal packet processing to proceed at full speed between sampling events, thus maintaining high productivity while still gathering accurate traffic pattern data.
3Speed
If packet processing is performed in hardware for high speed, then speed is improved, but difficulty of detecting and measuring packet paths increases
Solution Approach 1:
The patent introduces per-node packet counters as intermediary components between the hardware packet processing path and the software monitoring system. These counters act as mediators that capture packet path information in hardware without interfering with the high-speed processing flow, then make this information accessible to software for analysis.
Solution Approach 2:
The hardware packet processing system automatically updates the packet counters as packets traverse through match-and-action tables, without requiring external intervention or additional processing steps. The counting function is self-service, embedded within the existing hardware processing path, maintaining speed while enabling measurement.
Data Source
AI summary
In one embodiment, a network device includes an interface to receive packets, packet processing circuitry including a steering engine to process the packets according to match-and-action tables, the match-and-action tables defining nodes in a graph so that during the processing of the packets by the steering engine the packets traverse paths in the graph, and a plurality of per-node packet counters to count ones of the packets traversing respective ones of the nodes of the graph.


