Table of Contents
Fetching ...

Relational Network Verification

Xieyang Xu, Yifei Yuan, Zachary Kincaid, Arvind Krishnamurthy, Ratul Mahajan, David Walker, Ennan Zhai

TL;DR

The value of relational reasoning is demonstrated by developing Rela, a high-level relational specification language and verification tool for network changes that compiles input specifications and network snapshot representations to finite state automata, and it then verifies compliance by checking automaton equivalence.

Abstract

Relational network verification is a new approach to validating network changes. In contrast to traditional network verification, which analyzes specifications for a single network snapshot, relational network verification analyzes specifications concerning two network snapshots (e.g., pre- and post-change snapshots) and captures their similarities and differences. Relational change specifications are compact and precise because they specify the flows or paths that change between snapshots and then simply mandate that other behaviors of the network "stay the same", without enumerating them. To achieve similar guarantees, single-snapshot specifications need to enumerate all flow and path behaviors that are not expected to change, so we can check that nothing has accidentally changed. Thus, precise single-snapshot specifications are proportional to network size, which makes them impractical to generate for many real-world networks. To demonstrate the value of relational reasoning, we develop a high-level relational specification language and a tool called Rela to validate network changes. Rela first compiles input specifications and network snapshot representations to finite state transducers. It then checks compliance using decision procedures for automaton equivalence. Our experiments using data on complex changes to a global backbone (with over 10^3 routers) find that Rela specifications need fewer than 10 terms for 93% of them and it validates 80% of them within 20 minutes.

Relational Network Verification

TL;DR

The value of relational reasoning is demonstrated by developing Rela, a high-level relational specification language and verification tool for network changes that compiles input specifications and network snapshot representations to finite state automata, and it then verifies compliance by checking automaton equivalence.

Abstract

Relational network verification is a new approach to validating network changes. In contrast to traditional network verification, which analyzes specifications for a single network snapshot, relational network verification analyzes specifications concerning two network snapshots (e.g., pre- and post-change snapshots) and captures their similarities and differences. Relational change specifications are compact and precise because they specify the flows or paths that change between snapshots and then simply mandate that other behaviors of the network "stay the same", without enumerating them. To achieve similar guarantees, single-snapshot specifications need to enumerate all flow and path behaviors that are not expected to change, so we can check that nothing has accidentally changed. Thus, precise single-snapshot specifications are proportional to network size, which makes them impractical to generate for many real-world networks. To demonstrate the value of relational reasoning, we develop a high-level relational specification language and a tool called Rela to validate network changes. Rela first compiles input specifications and network snapshot representations to finite state transducers. It then checks compliance using decision procedures for automaton equivalence. Our experiments using data on complex changes to a global backbone (with over 10^3 routers) find that Rela specifications need fewer than 10 terms for 93% of them and it validates 80% of them within 20 minutes.
Paper Structure (25 sections, 16 equations, 7 figures, 1 table)

This paper contains 25 sections, 16 equations, 7 figures, 1 table.

Figures (7)

  • Figure 1: An example network change in a global WAN. T1 and T2 denote aggregate traffic bundles.
  • Figure 2: The syntax of Rela's front-end language.
  • Figure 3: RIR Syntax (top) and semantics of selected features (bottom).
  • Figure 4: Rela to RIR translation.
  • Figure 5: Distribution of spec size in our dataset.
  • ...and 2 more figures