Metadata-Driven FPGA Counter Parsing in Network Devices

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing network device parsers for FPGA counter data records require time-consuming updates when new counter types are introduced, as they are hard-coded for specific counter data record types, making them inefficient for re-programmable FPGAs.

Innovation Solution

A metadata-driven framework that generates a counter descriptor file during FPGA image creation, allowing for generic parsing logic by using registry entries to define counter data record types, enabling efficient parsing without requiring frequent updates.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If hard-coded parsing logic is used for specific counter data record types, then parsing accuracy for known counter types is maintained, but parser updates become time-consuming when new counter types are introduced

Engineering Contradiction:
Improveparser adaptabilityVSAvoidparser update time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The system performs preliminary action by generating and storing a counter descriptor file during FPGA image creation, which contains definitions of all counter data record types. This pre-prepared metadata enables the parser to immediately understand new counter types without requiring updates to the parser itself, thus resolving the contradiction between adaptability and update time.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The counter descriptor file acts as an intermediary between the FPGA application image and the parser. Instead of modifying the parser to handle new counter types, the descriptor file provides the parser with the necessary information about counter data record structures, eliminating the need for parser updates while maintaining full adaptability.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If hard-coded parsing logic is used for specific counter data record types, then parser implementation is straightforward, but the parser cannot efficiently handle re-programmable FPGA counter types

Engineering Contradiction:
Improveparsing efficiencyVSAvoidparser complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The counter descriptor file serves as an intermediary that contains all the complexity of counter type definitions. The parser itself remains simple and generic, merely reading the descriptor file and using the provided information to parse counter data records. This separates the complexity from the parser, improving parsing efficiency while managing device complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

All complex counter type definitions are prepared in advance in the counter descriptor file during FPGA image creation. The parser only needs to perform simple lookups and parsing operations based on this pre-prepared information, significantly improving parsing efficiency without requiring a complex parser implementation.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS20250298615A1Parsing FPGA Counter Data Records in Network Devices with FPGAs
Publication Date: 2025.09.25 ARISTA NETWORKS INC
  • US20250298615A1 patent drawing
  • US20250298615A1 patent drawing
  • US20250298615A1 patent drawing

AI summary

Techniques for parsing FPGA counter data records in a network device with an FPGA are provided. In one set of embodiments these techniques include ingesting, by the network device, a metadata file associated with an application image programmed in (or configured to be programmed in) the FPGA, where the metadata file includes definitions of counter data record types that are used (i.e., reported via counter messages) by the application image. The techniques further include receiving a counter message from the FPGA that includes one or more counter data records and, for each record, retrieving the ingested definition of that record's type and parsing the record in accordance with the definition.