Skip to content

XJTU-NetVerify/NDD

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

About

Network Decision Diagram (NDD) is a new decision diagram data structure based on the classical Binary Decision Diagram (BDD). In BDD, each node looks at a single bit, and branches based on whether the bit is true or false; while in NDD, each node looks at a field consisting of a fixed number of bits, and branches based on the value of the corresponding field. Since there can be more than 2 branches, NDD encodes the branching condition with external data structures. Currently, NDD uses BDD to represent the branching condition: if the field has $n$ bits, then the condition is a BDD with $n$ variables. In this sense, NDD can be seen as wrapping the original BDD with an outter layer of decision diagram, and therefore the name of NDD can also be interpreted as "Nested Decision Diagram".

Branches

  • Main: Featuring an efficient design of node table.
  • Reuse: Featuring the reuse of BDD node tables among all fields.
  • Original: The original prototype for NSDI '25 paper.

Benchmark

Run time (second) on different sizes of NQueens problem.

N BDD (JDD) NDD-Original NDD
10 0.5479 0.7315 0.2136
11 2.7947 2.7497 0.7619
12 22.8852 14.6047 4.1006

Detailed benchmark results are available on nqueensBenchmarkDDs

The Origin of NDD

NDD was originally proposed for network verification, where each NDD node represents a packet header field (destination IP address) We observed NDD was more efficient than BDD in terms of memory and computation. The reason is due to the locality of field-based matching semantics, NDD can significantly reduce the number of BDD nodes for each field. The figure below shows an example, where the three BDDs in (a) can be represented by three equivalent NDDs in (c), where each edge of which is labelled by per-field BDDs in (b).

fig4 drawio

Resources

Bibtex

@inproceedings{NDD,
  title={NDD: A Decision Diagram for Network Verification},
  author={Li, Zechun and Zhang, Peng and Zhang, Yichi and Yang, Hongkun},
  booktitle={22nd USENIX Symposium on Networked Systems Design and Implementation (NSDI 25)},
  pages={237--258},
  year={2025}
}

Contact

License

Apache-2.0. See LICENSE.

About

[NSDI'25] The library of Network Decision Diagram based on JDD.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages