ECMP Hash Reordering to Prevent Multi-Stage Path Polarization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Equal-Cost Multi-Path (ECMP) routing in computer networks experiences polarization due to correlated routing decisions across stages, leading to suboptimal network utilization, especially in Massively Scalable Data Centers, where Cyclic Redundancy Check (CRC) functions exacerbate the issue by not affecting the distribution of routing decisions effectively.

Innovation Solution

The method involves generating a Load Balancing Flow Vector (LBFV) and partitioning it into blocks, which are then reordered at each network element using a unique reordering sequence different from others, followed by hashing to select a next hop link, thereby differentiating ECMP decisions across stages and preventing correlation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional CRC functions are used for load balancing in ECMP routing, then the routing process is simple and fast, but polarization occurs and network utilization becomes suboptimal

Engineering Contradiction:
Improvenetwork utilizationVSAvoidrouting decision complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the Load Balancing Flow Vector (LBFV) into multiple blocks and applies different reordering sequences to different segments. This segmentation allows each network element to process different portions of the flow vector differently, breaking the correlation that causes polarization while maintaining the overall load balancing function.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies local quality by making each network element use a unique reordering sequence specific to its location in the network. This local differentiation ensures that routing decisions at different network elements are not correlated, preventing polarization while keeping each individual element's processing relatively simple.

Inventive Principle:
Principle #3Local quality

2Productivity

If ECMP routing decisions are correlated across stages, then routing implementation is simplified, but network utilization deteriorates due to polarization

Engineering Contradiction:
Improvenetwork utilizationVSAvoidrouting decision correlation
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The patent changes the parameter of reordering sequence across different network elements. By varying this parameter (the specific reordering sequence applied to LBFV blocks) at each network element, the routing decisions become uncorrelated across stages, improving network utilization without significantly complicating the routing process.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If CRC seed is kept constant for simplicity, then implementation is easier, but distribution of routing decisions becomes poor leading to polarization

Engineering Contradiction:
Improverouting decision distributionVSAvoidCRC function complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by reordering the LBFV blocks before applying the CRC function. This preprocessing step ensures that the CRC function receives differently ordered input at each network element, which improves the distribution of routing decisions and prevents polarization, while the CRC function itself remains relatively simple.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11695428B2Effective seeding of CRC functions for flows' path polarization prevention in networks
Publication Date: 2023.07.04 CISCO TECHNOLOGY INC
  • US11695428B2 patent drawing
  • US11695428B2 patent drawing
  • US11695428B2 patent drawing

AI summary

A network element is configured to efficiently load balance packets through a computer network. The network element receives a packet associated with flow attributes and generates a Load Balancing Flow Vector (LBFV) from the flow attributes. The network element partitions the LBFV into a plurality of LBFV blocks and reorders the LBFV blocks to generate a reordered LBFV. The LBFV blocks are reordered based on a reordering sequence that is different from reordering sequences on other network elements in the computer network. The network element hashes the reordered LBFV to generate a hash key for the packet and selects a next hop link based on the hash key. The next hop link connects the network elements to a next hop network element in the computer network.