Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Distributed Data Plane Verification HLD #948

Open
wants to merge 43 commits into
base: master
Choose a base branch
from

Conversation

xiangq27
Copy link

We propose a distributed data plane verification feature. This feature allows commodity network switches to perform data plane checking by running lightweight computation tasks with its own FIB/ACL and neighbor messages as input.

@ghost
Copy link

ghost commented Feb 24, 2022

CLA assistant check
All CLA requirements met.

@xiangq27
Copy link
Author

@baiwei0427 Could you also help review this HLD? Thanks!

@yxieca yxieca force-pushed the master branch 2 times, most recently from 8498931 to 8837dc2 Compare April 15, 2022 16:51
.gitignore Outdated



.DS_Store
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file should not be included

issues (e.g., software bugs, faulty hardware, protocol misconfigurations, and oversight negligence). They can happen in
all types of networks (e.g., enterprise networks, wide area networks and data center networks), and have both disastrous
financial and social consequences. Data plane verification (DPV) is important for finding such network errors.
Current DPV tools employ a centralized architecture, where a server collects the data planes of all devices and verifies them.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Give some references to "Current DPV tools"

The picture below demonstrates the architecture and workflow of distributed data plane verification.


![system](img/system-diagram.jpg)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The system-diagram.jpg should give more details. For example, what container to add? How do new containers interact with existing components?

A series of demos of the proposed feature can be found at [distributeddpvdemo.tech](DDPV-Demos). All demos are conducted on a small testbed of commodity switches installed with SONiC or ONL. A technical report of the detailed design of DDPV can be found at [https://arxiv.org/abs/2205.07808](arXiv).

# Requirements
* The ddpv container needs to have access to the device data plane (i.e., FIB and ACL) stored in the database container.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is better to mention names of concrete tables that store those information


# Requirements
* The ddpv container needs to have access to the device data plane (i.e., FIB and ACL) stored in the database container.
* The ddpv container at neighboring switches needs to use sockets to exchange verification messages.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you assume that all the switches run SONiC with ddpv container?

@linux-foundation-easycla
Copy link

linux-foundation-easycla bot commented Sep 9, 2022

CLA Signed

The committers listed above are authorized under a signed CLA.

@xiangq27
Copy link
Author

xiangq27 commented Sep 9, 2022

@baiwei0427 We have updated the HLD document based on your feedback. Could you help take a look to see if we have addressed all your comments? Thanks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants