Broadcast Log for CPU-to-Forwarding Engine Data Transfer

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The existing process of writing configuration data from a central processing unit (CPU) to multiple hardware forwarding engines is slow due to the need for confirmation and data transfer across buses, especially when updating large or frequently changing data like routing or media access control (MAC) tables in network elements with multiple forwarding engines.

Innovation Solution

Implementing a broadcast log that stores data for transfer between the CPU and co-processors, allowing direct access by co-processors using a DMA controller, enabling the CPU to write data for multiple hardware forwarding engines without waiting for confirmation, and allowing co-processors to signal the CPU when data is available for reading, thereby speeding up the data transfer process.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If the CPU writes configuration data to multiple hardware forwarding engines using traditional bus transfer, then data is delivered to all forwarding engines, but the process is slow due to confirmation waiting and bus transfer time

Engineering Contradiction:
Improvedata transfer speedVSAvoidtime for updating configuration data
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The patent segments the data transfer process by introducing a broadcast log that stores configuration data in a structured format with individual entries for each hardware forwarding engine. Each entry contains a target identifier and data payload, allowing parallel processing and eliminating sequential confirmation waits. The CPU writes all entries to the broadcast log simultaneously, and each co-processor independently retrieves its designated data without blocking others.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The broadcast log acts as an intermediary data structure between the CPU and multiple hardware forwarding engines. Instead of direct CPU-to-engine communication requiring confirmations, the CPU writes to the broadcast log once, and co-processors autonomously retrieve their data from the log. This intermediary eliminates the need for synchronous confirmation handshakes between CPU and each forwarding engine.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If the CPU waits for confirmation that data is stored in the data plane before proceeding, then data integrity is ensured, but the overall writing process becomes slow

Engineering Contradiction:
Improvedata storage confirmationVSAvoidconfiguration data writing throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The CPU performs preliminary writing of all configuration data entries to the broadcast log in a single batch operation without waiting for confirmation from each co-processor. The broadcast log structure预先 (in advance) organizes all target forwarding engine identifiers and their corresponding data payloads, enabling the CPU to proceed with subsequent operations while co-processors independently retrieve and process their assigned data in the background.

Inventive Principle:
Principle #10Preliminary action

3Quantity of substance

If configuration data is transferred across the bus between control plane and data plane, then data reaches the forwarding engines, but the bus transfer time significantly delays the process

Engineering Contradiction:
Improveconfiguration data volumeVSAvoidbus transfer speed
Core Design Contradiction:
Quantity of substanceVSSpeed

Solution Approach 1:

The patent merges multiple individual data transfer operations into a single broadcast log write operation. Instead of transferring configuration data separately to each hardware forwarding engine through the bus (which would require multiple slow bus transactions), the CPU consolidates all data into a structured broadcast log and performs one efficient write operation. Co-processors then retrieve their respective data from the log without additional bus contention.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentEP2801914B1Method and device for broadcasting data to multiple hardware forwarding engines
Publication Date: 2020.08.26 ARISTA NETWORKS INC
  • EP2801914B1 patent drawingFigure 1
  • EP2801914B1 patent drawingFigure 2
  • EP2801914B1 patent drawingFigure 3

AI summary

A method and apparatus of a device that broadcasts data to multiple hardware forwarding engines is described. In an exemplary embodiment, a central processing unit of the device receives the data to broadcast to the plurality of hardware forwarding engines. The device further writes the data to a broadcast log. In addition, the device transmits a signal to one or more co-processors that the data is available to be read, wherein each of the plurality of hardware forwarding corresponds to one of the one or more co-processors. Each of these co-processors reads the data in the broadcast log by receiving the signal that the data is ready to be read from the broadcast log. In addition, each co-processor determines a broadcast log entry for the data for that co-processor. Each co-processor further reads the data from the broadcast log entry via a direct memory access in memory that stores the broadcast log and the plurality of hardware forwarding engines use the data to process network traffic.