Data Plane Program Verification Using P4 to GCL Translation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current network verification tools face challenges in integrating multiple tools to verify cross-layer properties and extending them with new functionality, particularly in handling stateful devices like load balancers or firewalls, and struggle to ensure end-to-end performance, reliability, and security properties in network behavior verification.

Innovation Solution

A method is provided to verify data plane programs by documenting assumptions about the control plane using annotations, translating programs from P4 to Guarded Command Language (GCL), introducing zombie state to capture control plane behaviors, and using satisfiability modulo theory (SMT) solvers to check weakest preconditions, which allows for efficient verification and optimization of data plane behaviors.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If multiple verification tools are integrated to verify cross-layer properties, then verification completeness is improved, but device complexity and integration difficulty increase

Engineering Contradiction:
Improveverification completenessVSAvoidintegration complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent merges multiple verification tools and functionalities into a single unified verification framework that can handle cross-layer properties, stateful devices, and various verification tasks simultaneously, eliminating the need to integrate multiple separate tools

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The verification framework is designed to be universal and multi-functional, capable of verifying data plane programs, control plane programs, cross-layer properties, and handling stateful devices like load balancers and firewalls within a single system

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Reliability

If verification covers comprehensive network properties including end-to-end performance and security, then verification thoroughness is improved, but verification time and computational resources increase

Engineering Contradiction:
Improveverification thoroughnessVSAvoidverification time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The verification process is segmented into distinct phases including data plane verification, control plane verification, and cross-layer property verification, allowing each aspect to be verified systematically without overwhelming computational burden

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary analysis and generates verification conditions before executing full verification, and uses caching mechanisms to store intermediate results, reducing redundant computations and verification time

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If new functionality is extended to verification tools, then verification capability is improved, but tool complexity and difficulty of extension increase

Engineering Contradiction:
Improveverification capabilityVSAvoidtool complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The verification framework is designed with universal interfaces and standardized mechanisms that allow new functionality to be extended without increasing overall system complexity, supporting verification of various network devices and protocols through a common architecture

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS11720373B2Data plane program verification
Publication Date: 2023.08.08 BAREFOOT NETWORKS INC
  • US11720373B2 patent drawing
  • US11720373B2 patent drawing
  • US11720373B2 patent drawing

AI summary

A method for verifying data plane programs is provided in some embodiments. Because the behavior of a data plane program (e.g., a program written in the P4 language) is determined in part by the control plane populating match-action tables with specific forwarding rules, in some embodiments, programmers are provided with a way to document assumptions about the control plane using annotations (e.g., in the form of “assertions” or “assumptions” about the state based on the unknown control plane contribution). In some embodiments, annotations are added automatically to verify common properties, including checking that every header read or written is valid, that every expression has a well-defined value, and that all standard metadata is manipulated correctly. The method in some embodiments translates programs from a first language (e.g., P4) to a second language (e.g., Guarded Command Language (GCL)) for verification by a satisfiability modulo theory (SMT) solver.