Common Connection Tracker for Logical Switches
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Providing a stateful service across multiple equal cost multipathing (ECMP) paths is challenging due to the inability of service engines to track state information when different paths are used for forward and return data messages, leading to incorrect path selection and loss of state information.
Innovation Solution
A network edge device bonds interfaces to maintain deterministic forwarding and associate data messages with ingress interface identifiers, ensuring all traffic for an ECMP group goes through the same logical switches and service engine, maintaining state information across the network edge device.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If multiple ECMP paths are used for data message forwarding, then path selection flexibility and load distribution are improved, but stateful service tracking capability deteriorates because service engines cannot track state information when different paths are used for forward and return data messages
Solution Approach 1:
The patent introduces a path identifier as an intermediary element that is inserted into data messages at the ingress interface and read at the egress interface. This path identifier acts as a mediator that carries path selection information through the network infrastructure, enabling the service engine to identify which ECMP path was used without breaking the ECMP path selection mechanism. The path identifier bridges the gap between multiple ECMP paths and stateful service tracking requirements.
Solution Approach 2:
The path identifier is nested within the data message structure, embedded in fields such as VLAN tags, IP headers, or TCP/UDP headers. This nesting approach allows the path identifier to travel with the data message through the network without requiring separate signaling channels or modifying the external network architecture. The path identifier is embedded within existing message structures, much like a nested doll, enabling state tracking while maintaining ECMP path flexibility.
2Productivity
If separate logical switches are used for separate ECMP paths, then path-specific processing is improved, but state information consistency deteriorates because return data messages may use different paths and lose state information
Solution Approach 1:
The patent merges the state tracking capability across multiple ECMP paths by using a common state table that is accessible by all logical switches handling different ECMP paths. The path identifier serves as a key to look up state information in this shared state table, ensuring that regardless of which ECMP path is used, the service engine can retrieve the correct state information. This merging approach maintains state consistency while allowing path-specific processing to occur.
3Ease of operation
If path selection is made transparent to forwarding elements, then network simplicity is improved, but path tracking capability deteriorates because forwarding elements are not aware of the network edge device interposition
Solution Approach 1:
The path identifier acts as an intermediary that enables path tracking without making the network edge device non-transparent. By embedding the path identifier within existing data message fields (such as VLAN tags or IP headers), the network edge device can insert and read path information without requiring forwarding elements to be aware of its presence or to perform additional processing. The path identifier mediates between the transparent forwarding requirement and the path tracking capability need.
Data Source
AI summary
Some embodiments of the invention provide novel methods for providing a stateful service at a network edge device (e.g., an NSX edge) that has a plurality of north-facing interfaces (e.g., interfaces to an external network) and a plurality of corresponding south-facing interfaces (e.g., interfaces to a logical network). In some embodiments, each interface associated with a different bridge calls a service engine based on identifiers included in data messages received at the interface. Each data message flow is associated with a particular identifier that is associated with a particular service engine instance that provides the stateful service. In some embodiments, the interface that receives a data message identifies a service engine to provide the stateful service and provides the data message to the identified service engine. After processing the data message, the service engine provides the data message to the egress interface associated with the ingress interface.


