Mirror Buffer for Flexible Packet Processing in SDN Switches
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing hardware switches in Software Defined Networking (SDN) are inflexible and inefficient due to their limited ability to process a fixed set of packet fields and actions, which hinders the effective implementation of the match-action paradigm.
Innovation Solution
The introduction of temporary storages, or mirror buffers, outside the standard packet processing pipeline, which allow for the copying and re-insertion of packet copies into the forwarding element pipeline, enabling flexible packet processing and monitoring by storing specific portions of packets and appending metadata for traffic monitoring.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If hardware switches process only a fixed set of fields with limited packet processing actions, then device complexity is reduced and manufacturing is easier, but adaptability and versatility of packet processing are limited
Solution Approach 1:
The patent introduces a mirror buffer as an intermediary component between the packet processing pipeline and monitoring functions. This mirror buffer receives packet copies from the main processing flow and enables monitoring operations without requiring the main switch architecture to be redesigned for each monitoring requirement, thus improving adaptability while maintaining manageable complexity
Solution Approach 2:
The patent segments the packet processing function by separating the main forwarding pipeline from the monitoring function. The mirror buffer acts as a dedicated segment for monitoring operations, allowing independent optimization of each function. This segmentation enables the main switch to maintain its simple fixed-set processing while adding versatile monitoring capabilities through the separate mirror buffer component
2Adaptability or versatility
If packet copies are stored in temporary storage for later re-insertion into the forwarding element pipeline, then traffic monitoring capability is improved, but device complexity and memory requirements increase
Solution Approach 1:
The patent extracts only the necessary portion of packet data (headers and relevant fields) into the mirror buffer rather than storing complete packet copies. This extraction approach provides sufficient data for traffic monitoring and analysis while significantly reducing the memory storage requirements compared to storing entire packets
Solution Approach 2:
The mirror buffer implements partial action by storing only a subset of packet data (specific headers and fields) rather than complete packets. This partial storage approach provides adequate information for monitoring purposes while avoiding the excessive memory consumption that would result from storing full packet copies
3Measurement precision
If packet copies are re-inserted into the forwarding element pipeline with additional metadata, then monitoring precision and information quality are improved, but processing time and device complexity increase
Solution Approach 1:
The patent applies preliminary action by pre-calculating and attaching metadata to packet copies while they are being stored in the mirror buffer, before these copies are re-inserted into the forwarding element pipeline. This preliminary preparation of monitoring data eliminates the need for time-consuming metadata generation during the critical packet forwarding path, thus improving monitoring information quality without significantly increasing overall processing time
Data Source
AI summary
Some embodiments provide a method for a hardware forwarding element. Based on a set of characteristics of a packet, the method determines to copy a packet to a particular temporary storage of a set of temporary storages of the hardware forwarding element. Based on a property of the particular temporary storage, the method stores only a particular portion of the packet in the particular temporary storage. A same size portion of each packet copied to the particular temporary storage is stored in the particular temporary storage.


