Decoupling Packet Statistics from Flow Lifetimes in SDN
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Network virtualization platforms face inaccuracies in packet statistics due to the shared lifetime of flow statistics, which are deleted when corresponding flows are removed, leading to incomplete data reported to the management plane.
Innovation Solution
A dedicated statistics collection flow table is created, where flows are installed only once and remain until the logical entity is deleted, with matching criteria based on the logical entity identifier and statistics counter type, allowing for accurate and independent tracking of packet statistics without actions other than metadata note actions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If flow statistics are shared with the same lifetime as the flow, then the system can use fewer separate data structures, but the statistics become inaccurate or incomplete when the flow is deleted
Solution Approach 1:
The patent segments the flow table into two separate tables: a flow table for packet processing and a statistics collection table for accurate counting. This segmentation allows the statistics collection to be independent from flow lifecycle changes, ensuring statistics remain accurate even when flows are deleted or modified.
Solution Approach 2:
The patent introduces a statistics collection table as an intermediary between packet processing flows and the management plane. This intermediary table专门 collects statistics with a different lifetime (until logical entity deletion) rather than sharing the flow's lifetime, acting as a mediator that decouples statistics collection from flow management.
2Reliability
If the daemon adds additional intelligence to track flow churn, then statistics accuracy can be maintained, but the daemon complexity increases
Solution Approach 1:
The patent extracts the statistics collection function from the daemon and implements it directly in the flow table structure. By taking out the statistics collection logic from the daemon's responsibility and embedding it in the forwarding element's flow table, the daemon no longer needs to track flow churn or add additional intelligence, reducing its complexity while maintaining accuracy.
Solution Approach 2:
The flow table itself provides the statistics collection functionality through its dedicated table structure and note actions, making the system self-sufficient. The flow table automatically collects and maintains statistics without requiring the daemon to actively manage or track flow changes, enabling the system to serve its own statistics collection needs independently.
3Adaptability or versatility
If flows are deleted when configuration changes, then the forwarding element adapts to new configurations, but the corresponding statistics are also deleted resulting in incomplete data
Solution Approach 1:
The patent segments the flow table into two separate tables: a flow table for packet processing and a statistics collection table for accurate counting. This segmentation allows the statistics collection to be independent from flow lifecycle changes, ensuring statistics remain accurate even when flows are deleted or modified.
Solution Approach 2:
The patent implements preliminary action by installing flows with note actions that collect statistics before the flow is potentially deleted or modified. The statistics are collected in advance and stored in the dedicated table, ensuring that when configuration changes occur and flows are reinstalled, the statistics data is already preserved and not lost.
Data Source
AI summary
A method of collecting statistics for a set of logical entities associated with a flow-based managed forwarding element. A statistics collection flow table is created for collecting statistics for logical entities. For each pair of logical entity and collected statistics type, a flow entry is added to the statistics collection flow table and includes a matching criteria for matching the identification the logical entity and the type of the statistics collected by the flow entry. When a particular statistics for a logical entity is to be updated during the processing of a packet by a flow table, the packet is submitted by the flow table to the statistics collection flow table. The statistics are updated for the logical entity by matching the identification of the logical entity and the particular statistics type with the matching criteria of a flow entry in the statistics collection flow table.


