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

PTF: add basic test infra and more test cases #231

Merged
merged 8 commits into from
Oct 17, 2022

Conversation

vmytnykx
Copy link
Collaborator

This patch-set introduce PTF test cases and basic infrastructure (similar to SONiC PTF) to run PTF DASH tests. For now the test cases supports minimal set of use cases, but it is the base for future test case implementations that will cover whole overlay PTF test scenario (in progress).

Main changes:

  • Add basic PTF infra (copied from SONiC PTF) for running PTF, allows run test cases w/o SAI repo, only PTF is required. DASH repo becomes main repo for test development.
  • Add Common VNet API for all tests (to void duplicate work, can be split from this file later)
  • Add the following test cases:
    • Inbound VNI/ENI
    • Inbound Routing PA validate
    • Inbound Routing VNI match
    • Inbound Routing PA SRC IP
    • Outbound Routing Vnet direct
    • Outbound Routing direct
    • CT: just placeholder, can be used for debugging only
    • L3 Route basic: just to make sure traffic is routed
  • Run only bmv2 ready test case on CI because of missing functionality in bmv2. Once more bmv2 functionality becomes available, test_saithrift_vnet.py can be merged with this one
  • test_saithrift_vnet: removed unused libs

Future plan:

  • Topology/setup diagram
  • Test plan (in progress)
  • Check/validate BMV2 support
  • More CI integration
  • More updates and fixes
  • Update TCs to SAI PTF repo (once stable)

- Common VNet API for all tests
- Test cases:
  - Inbound VNI/ENI
  - Inbound Routing PA validate
  - Inbound Routing VNI match
  - Inbound Routing PA SRC IP
  - Outbound Routing Vnet direct
  - Outbound Routing direct
  - CT (just placeholder)
  - Route (basic)

Signed-off-by: Volodymyr Mytnyk <[email protected]>
Signed-off-by: Yuriy Harhas <[email protected]>
Copy link
Collaborator

@chrispsommers chrispsommers left a comment

Choose a reason for hiding this comment

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

Hi @vmytnykx I am not sure why copying platform_helper/ is necessary since SAI is already a submodule in the dash project. You have access to everything under SAI/PTF already. In addition, the saithrift-client docker image has a copy of SAI/ptf directory embedded in it, see link below. Is this mainly for convenience so you have these utils in your host workspace in a "nearby" directory which makes importing easier? The philosophy was to put all tools in the container and not rely on host workspace (but that's subjective). My main concern with copying is that it doesn't automatically keep up with changes in the original repo (SAI) and can create a maintenance issue in the future.

Nevertheless, I don't see anything "wrong" with this change, it just might not be needed.

https://github.com/Azure/DASH/blob/d003f4e95fcf6438224782d3f1ee9e3aa53d17d5/dash-pipeline/dockerfiles/Dockerfile.saithrift-client#L16

aputriax and others added 3 commits September 27, 2022 21:45
- created two subfolders in root: functional and scale
- removed outdated bmv2_model folder
- moved all existing content of test-cases to test-cases/scale

Signed-off-by: Anton Putria <[email protected]>
@KrisNey-MSFT
Copy link
Collaborator

KrisNey-MSFT commented Sep 28, 2022

@prsunny would you please take a look comment? Once we have stabilized, we can push more files.
Prince provided link to the PR: [https://github.com/sonic-net/sonic-mgmt/pull/6017
Physical topology can be used
How does .py test become converted to sonic-mgmt test framework? Need alignment re: how to use test cases in the framework, but it would be good to have a method to use the test cases. Exactly how to identify the details would be good to do.

@chrispsommers
Copy link
Collaborator

@mgheorghe Please note your tests were moved into new scale/ directory. Are you OK with this?

| Folder | Description |
| --- | --- |
| functional | Tests to verify essential functionality using low-rate traffic (SAI PTF).
| scale | Tests with hight-rate traffic and complex configuration to verify scaling real-world scenarios.
Copy link
Collaborator

Choose a reason for hiding this comment

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

hight - typo


| Folder/File | Description |
| --- | --- |
| saidashvnet.py | VNET-to-VNET test cases
Copy link
Collaborator

Choose a reason for hiding this comment

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

Need to add saidashvnet to .wordlist.txt to pass spellcheck.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Is is possible to add all project files to the exclude list automatically?

Copy link
Collaborator

Choose a reason for hiding this comment

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

There might be some more customization available, see https://github.com/rojopolis/spellcheck-github-actions

Copy link
Collaborator

Choose a reason for hiding this comment

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

I used backticks for the filenames. It works.

Copy link
Collaborator

@chrispsommers chrispsommers left a comment

Choose a reason for hiding this comment

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

See spellcheck issues.

@chrispsommers
Copy link
Collaborator

chrispsommers commented Oct 11, 2022

Hi @vmytnykx just checking with you, is this ready to merge in your opinion? LGTM.

@chrispsommers
Copy link
Collaborator

@aputriax if we merge this now, will it impact sai-challenger pending merges in any significant way?

@aputriax
Copy link
Collaborator

@aputriax if we merge this now, will it impact sai-challenger pending merges in any significant way?

It should not. Since files are going to be placed in two different folders: functional and scale.

@chrispsommers
Copy link
Collaborator

Merging, this has been ready for some time and there were no objections or feedback other than my original comments, which were addressed.

@chrispsommers chrispsommers merged commit d43fa2e into sonic-net:main Oct 17, 2022
chrispsommers added a commit that referenced this pull request Oct 18, 2022
* Added SAI-Challenger to CI setup.

    1. Added SAI-Challenger submodule.
    2. Added SAI-Challenger basic test.
    3. Changed Makefile to build/start/stop SAI-Challenger.

Signed-off-by: Maksym Hedeon <[email protected]>

* Added saithrift to SAI-Challenger client docker image

- Added saithrift to SAI-Challenger client docker image
- Changed SAI-C submodule branch

Signed-off-by: Maksym Hedeon <[email protected]>

* Update example vnet test.

    1. Added SAI-Challenger submodule.
    2. Added SAI-Challenger basic test.
    3. Changed Makefile to build/start/stop SAI-Challenger.

Signed-off-by: Kostiantyn Goloveshko <[email protected]>
Co-authored-by: Maksym Hedeon <[email protected]>

* Add vnet outbound test based on SAI description.

Signed-off-by: Maksym Prytoliuk <[email protected]>

* Fixup double network host usage for sai-challenger-client

Signed-off-by: Konstantin Goloveshko <[email protected]>

* Kdt 17: Update docker environment (#8)

* Added cgyang submodule
* Updated docker env for thrift tests
* Makefile refactor

Signed-off-by: Maksym Hedeon <[email protected]>

* Fixup VNET inbound cleanup removals in test config.

Signed-off-by: Konstantin Goloveshko <[email protected]>

* Update CA_TO_PA entry in outbound test

Signed-off-by: Maksym Prytoliuk <[email protected]>

* Add vnet scenarios in DASH config format.

* Added dash-style VNET inbound routing test
* Added dash-style VNET outbound routing test
* Read config from json (temp workaround)
* Added JSON setup configs for testbed

Signed-off-by: Anton Putria <[email protected]>
Co-authored-by: Maksym Prytoliuk <[email protected]>

* Fixed saigen links.

Signed-off-by: Anton Putria <[email protected]>

* Fixes in test scanario.

Signed-off-by: Anton Putria <[email protected]>

* Fixed path to saigen. Fixed inbound test.

Signed-off-by: Anton Putria <[email protected]>

* Update submodule

Signed-off-by: Anton Putria <[email protected]>

* Final test fixes to align with submodue version.

Signed-off-by: Anton Putria <[email protected]>

* Fixed VNET outbound test scenario.

Signed-off-by: Anton Putria <[email protected]>

* Outbound test passes with traffic

Fixed configuration based on changes in main.

Signed-off-by: Maksym Prytoliuk <[email protected]>

* Update documentation

- Added dash-test-sai-challenger.md doc file under test/docs
- Updated Makefile make run-saic-test-thrift target with passing parameters.

Signed-off-by: Maksym Hedeon <[email protected]>

* Updated SAI-Challenger submodule.

Signed-off-by: Anton Putria <[email protected]>

* Improvements to SAI-Challenger docker flows.

- Use docker hub to pull images
- Fixed make run-saic-tests to do not show errors
- Updated manuals

Signed-off-by: Anton Putria <[email protected]>

* Update dash-test-sai-challenger.md

Signed-off-by: Mircea Dan Gheorghe <[email protected]>

* Add bmv2 SAI port attributes (num_active, port_list), dflt vlan, dflt vrf)

* Added SAI-Challenger docker build verification to GitHub actions

- Added SAI-Challenger docker verification action.
- Fixed spellchecker and docker build issues.

Signed-off-by: Anton Putria <[email protected]>

* Add default .1Q bridge to bmv2

Signed-off-by: Maksym Prytoliuk <[email protected]>

* Fixed SAI-Challenger user guide and file namings.

Signed-off-by: Anton Putria <[email protected]>

* Scaled VNET outbound test using snappi and saigen. (1st edition)

- Split scale and simple tests / jsons
- Updated ixia controller version
- Added dash_helper for traffic profile scaling.

Signed-off-by: Maksym Hedeon <[email protected]>

* spellcheck

* Move saichallenger client docker to ACR.

* Fix .yml formatting.

* Fix dependency in action file.

* Add missing .env file

* remove space in action script, add .env dependencies

* fix include path

* Add saichalleneger tests to run-all-tests and CI

* Fix docker image name.

* Correct mixup in image names.

* Remove stray hyphen

* Run saichallenger workflows on any branch PR.

* Added few more VNET scenario examples.

- Extended VNET traffic scenarios.
- Added docstrings for helper methods.
- Removed unused code.

Signed-off-by: Anton Putria <[email protected]>
Co-authored-by: Maksym Hedeon <[email protected]>

* Slides from DASH WG Meeting (SAI Challenger Episode 2) (#254)

* Add outbound diagram

Signed-off-by: Maksym Prytoliuk <[email protected]>

* Added inbound to xfail test results. (#44)

- Marked VNET Inbound Routing with xfail
- Added pytest.ini with marks definitions.
- Decreased duration of tests.

Signed-off-by: Anton Putria <[email protected]>

* Scaling test configuration documentation

- Added scaling approach documentation.
- Vnet2vnet traffic scaling scenario description.
- Added docstring to the test cases.
- Added more test examples.

Signed-off-by: Anton Putria <[email protected]>
Co-authored-by: Maksym Hedeon <[email protected]>
Co-authored-by: Maksym Prytoliuk <[email protected]>

* Submodule update and rename

* Rename and update the SAI-Challenger submodule
* Enabled additional tests based on the fixes in the SAI-Challenger.
* Renamed test folder.

Signed-off-by: Anton Putria <[email protected]>

* PTF: add basic test infra and more test cases (#231)

* ptf: add vnet sample test cases for dash

- Common VNet API for all tests
- Test cases:
  - Inbound VNI/ENI
  - Inbound Routing PA validate
  - Inbound Routing VNI match
  - Inbound Routing PA SRC IP
  - Outbound Routing Vnet direct
  - Outbound Routing direct
  - CT (just placeholder)
  - Route (basic)

Signed-off-by: Volodymyr Mytnyk <[email protected]>
Signed-off-by: Yuriy Harhas <[email protected]>

* ptf: run only bmv2 ready test case on CI

Signed-off-by: Volodymyr Mytnyk <[email protected]>

* ptf: test_saithrift_vnet: removed unused libs

Signed-off-by: Volodymyr Mytnyk <[email protected]>

* test-cases folder restructure.

- created two subfolders in root: functional and scale
- removed outdated bmv2_model folder
- moved all existing content of test-cases to test-cases/scale

Signed-off-by: Anton Putria <[email protected]>

* Moved saidashvnet.py to a proper location.

Signed-off-by: Anton Putria <[email protected]>

* Fixed ENI creation in Outbound tests

Signed-off-by: Yuriy Harhas <[email protected]>

* Spellchecker related fixes.

Signed-off-by: Anton Putria <[email protected]>

* Updated VNET test cases based on the PR #238.

Signed-off-by: Yuriy Harhas <[email protected]>

Signed-off-by: Volodymyr Mytnyk <[email protected]>
Signed-off-by: Yuriy Harhas <[email protected]>
Signed-off-by: Anton Putria <[email protected]>
Co-authored-by: Anton Putria <[email protected]>
Co-authored-by: Yuriy Harhas <[email protected]>

Signed-off-by: Maksym Hedeon <[email protected]>
Signed-off-by: Kostiantyn Goloveshko <[email protected]>
Signed-off-by: Maksym Prytoliuk <[email protected]>
Signed-off-by: Konstantin Goloveshko <[email protected]>
Signed-off-by: Anton Putria <[email protected]>
Signed-off-by: Mircea Dan Gheorghe <[email protected]>
Signed-off-by: Volodymyr Mytnyk <[email protected]>
Signed-off-by: Yuriy Harhas <[email protected]>
Signed-off-by: Anton Putria <[email protected]>
Co-authored-by: Maksym Hedeon <[email protected]>
Co-authored-by: Kostiantyn Goloveshko <[email protected]>
Co-authored-by: Maksym Hedeon <[email protected]>
Co-authored-by: Maksym Prytoliuk <[email protected]>
Co-authored-by: Anton Putria <[email protected]>
Co-authored-by: Maksym Prytoliuk <[email protected]>
Co-authored-by: Anton Putria <[email protected]>
Co-authored-by: MirceaDan <[email protected]>
Co-authored-by: Chris Sommers <[email protected]>
Co-authored-by: Volodymyr Mytnyk <[email protected]>
Co-authored-by: Anton Putria <[email protected]>
Co-authored-by: Yuriy Harhas <[email protected]>
Co-authored-by: Chris Sommers <[email protected]>
@mgheorghe
Copy link
Collaborator

the images folder with diagrams disappeared, also the links to pictures were not updated in the MD files, this PR needs few fixes

@chrispsommers
Copy link
Collaborator

This was already merged, can @mgheorghe and @aputriax please figure out if a remedial PR is required? Thanks.

@aputriax
Copy link
Collaborator

@mgheorghe, the images folder stays as is on the same place, only the link has been broken due to renaming. I've created PR #262 with fixes. I also added a missed link to one README.md and fixed spellchecker. Please verify it. Thanks!

chrispsommers added a commit that referenced this pull request Nov 1, 2022
…ion branches (#272)

* Create dash-docker-p4c-bmv2-acr.yml

* Update Makefile

* Experimenting with ACR publish workflows

Revert p4c-bmv2 tag

* Update and rename dash-docker-p4c-bmv2-acr.yml to dash-p4c-bmv2-docker-acr.yml

* Experimental ACR publish; change regname

Use sonicdash ACR for p4c-bmv2. No publish yet.

* Update dash-p4c-bmv2-docker-acr.yml

Publish to ACR using secrets

* Fix macro errors

* Update dash-p4c-bmv2-docker-acr.yml

Force trigger.

* Uncomment docker push command

* Build dash-grpc:1.43.2 docker and publish to ACR

* Add CI script for saithrift-bldr-docker

* Remove superfluous ACR publish steps from regular docker build CI script.

* Add CI scripts to build and publish remaining docker images to Azure Container Registery (ACR).

* Publish docker images to ACR and use those in build process. (#208)

* Add CI script for saithrift-bldr-docker

* Remove superfluous ACR publish steps from regular docker build CI script.

* Add CI scripts to build and publish remaining docker images to Azure Container Registery (ACR).

Co-authored-by: Chris Sommers <[email protected]>

* Use make target to publish to ACR (just bmv2-bldr as first candidate).

* Incremental progress - publish to ACRs (#212)

* Add CI script for saithrift-bldr-docker

* Remove superfluous ACR publish steps from regular docker build CI script.

* Add CI scripts to build and publish remaining docker images to Azure Container Registery (ACR).

* Use make target to publish to ACR (just bmv2-bldr as first candidate).

Co-authored-by: Chris Sommers <[email protected]>

* Call docker publish make targets from all CI scripts which publish.

* Incremental progress publishing dockers to ACR (#213)

* Add CI script for saithrift-bldr-docker

* Remove superfluous ACR publish steps from regular docker build CI script.

* Add CI scripts to build and publish remaining docker images to Azure Container Registery (ACR).

* Use make target to publish to ACR (just bmv2-bldr as first candidate).

* Call docker publish make targets from all CI scripts which publish.

Co-authored-by: Chris Sommers <[email protected]>

* Added SAI-Challenger to CI setup.

    1. Added SAI-Challenger submodule.
    2. Added SAI-Challenger basic test.
    3. Changed Makefile to build/start/stop SAI-Challenger.

Signed-off-by: Maksym Hedeon <[email protected]>

* Added saithrift to SAI-Challenger client docker image

- Added saithrift to SAI-Challenger client docker image
- Changed SAI-C submodule branch

Signed-off-by: Maksym Hedeon <[email protected]>

* Update example vnet test.

    1. Added SAI-Challenger submodule.
    2. Added SAI-Challenger basic test.
    3. Changed Makefile to build/start/stop SAI-Challenger.

Signed-off-by: Kostiantyn Goloveshko <[email protected]>
Co-authored-by: Maksym Hedeon <[email protected]>

* Add vnet outbound test based on SAI description.

Signed-off-by: Maksym Prytoliuk <[email protected]>

* Fixup double network host usage for sai-challenger-client

Signed-off-by: Konstantin Goloveshko <[email protected]>

* Kdt 17: Update docker environment (#8)

* Added cgyang submodule
* Updated docker env for thrift tests
* Makefile refactor

Signed-off-by: Maksym Hedeon <[email protected]>

* Fixup VNET inbound cleanup removals in test config.

Signed-off-by: Konstantin Goloveshko <[email protected]>

* Update CA_TO_PA entry in outbound test

Signed-off-by: Maksym Prytoliuk <[email protected]>

* Add vnet scenarios in DASH config format.

* Added dash-style VNET inbound routing test
* Added dash-style VNET outbound routing test
* Read config from json (temp workaround)
* Added JSON setup configs for testbed

Signed-off-by: Anton Putria <[email protected]>
Co-authored-by: Maksym Prytoliuk <[email protected]>

* Fixed saigen links.

Signed-off-by: Anton Putria <[email protected]>

* Fixes in test scanario.

Signed-off-by: Anton Putria <[email protected]>

* Fixed path to saigen. Fixed inbound test.

Signed-off-by: Anton Putria <[email protected]>

* Update submodule

Signed-off-by: Anton Putria <[email protected]>

* Final test fixes to align with submodue version.

Signed-off-by: Anton Putria <[email protected]>

* Spellcheck - add to wordslist

* Sync to main via intermediate dev branch. (#216)

* AMD-Pensando HA Proposal document

* Add CI script for saithrift-bldr-docker

* Remove superfluous ACR publish steps from regular docker build CI script.

* Add CI scripts to build and publish remaining docker images to Azure Container Registery (ACR).

* SAI apigen support for tables with no action parameters and a single action (#207)

* Update .wordlist.txt

* Use make target to publish to ACR (just bmv2-bldr as first candidate).

* Call docker publish make targets from all CI scripts which publish.

* Doc dash as submodule (#203)

* Document third-party workflows using DASH as a Git submodule.

* Add URL to sample project.

* Incorporate review feedback (typo; missing file).

* Spellcheck fixes.

* Spellcheck

* Add .wordlist.txt to CI triggers.

* Spellcheck wordlist.

Co-authored-by: Chris Sommers <[email protected]>

* Split SAI API (#201)

Make APIs compatible with SONiC bulk infra

Signed-off-by: Marian Pritsak <[email protected]>

* Add APP_DB to SAI mapping (#102)

* Add APP_DB to SAI mapping

* Spellcheck - add to wordslist

Signed-off-by: Marian Pritsak <[email protected]>
Co-authored-by: Sanjay Thyamagundalu <[email protected]>
Co-authored-by: Chris Sommers <[email protected]>
Co-authored-by: Mukesh Moopath Velayudhan <[email protected]>
Co-authored-by: KrisNey-MSFT <[email protected]>
Co-authored-by: Marian Pritsak <[email protected]>

* Incremental progress publishing dockers to ACR (#219)

* AMD-Pensando HA Proposal document

* Add CI script for saithrift-bldr-docker

* Remove superfluous ACR publish steps from regular docker build CI script.

* Add CI scripts to build and publish remaining docker images to Azure Container Registery (ACR).

* SAI apigen support for tables with no action parameters and a single action (#207)

* Update .wordlist.txt

* Use make target to publish to ACR (just bmv2-bldr as first candidate).

* Call docker publish make targets from all CI scripts which publish.

* Doc dash as submodule (#203)

* Document third-party workflows using DASH as a Git submodule.

* Add URL to sample project.

* Incorporate review feedback (typo; missing file).

* Spellcheck fixes.

* Spellcheck

* Add .wordlist.txt to CI triggers.

* Spellcheck wordlist.

Co-authored-by: Chris Sommers <[email protected]>

* Split SAI API (#201)

Make APIs compatible with SONiC bulk infra

Signed-off-by: Marian Pritsak <[email protected]>

* Add APP_DB to SAI mapping (#102)

* Add APP_DB to SAI mapping

* Spellcheck - add to wordslist

* Fix docker & Makefile perms (#202)

* Incremental work on docker permissions fixes.

* More progress on docker and make permissions issues.

* Trial remove -u root from CI file.

* Makefile and CI file perms

* Fix CI docker flags

* Final purge of obs sudo commands to fix perms.

* Test for veth's before deleting.

Co-authored-by: Chris Sommers <[email protected]>

* Fix ipv6 packet noise (#211)

* Ensure ipv6 disabled on veth's prior to PTF tests, fix #205.

* CHange docker registrey for ixia-c to Google cloud (was Dockerhub). No functional change but new b uilds will pull new image into workspaces.

* Move ipv6 disable code to a separate shell script. Call it after deploy-ixiac target.

Co-authored-by: Chris Sommers <[email protected]>

Signed-off-by: Marian Pritsak <[email protected]>
Co-authored-by: Sanjay Thyamagundalu <[email protected]>
Co-authored-by: Chris Sommers <[email protected]>
Co-authored-by: Mukesh Moopath Velayudhan <[email protected]>
Co-authored-by: KrisNey-MSFT <[email protected]>
Co-authored-by: Marian Pritsak <[email protected]>

* Remove publish steps from non-ACR CI scripts (consequence of merge).

* Incremental progress publishing dockers to ACR. (#220)

* AMD-Pensando HA Proposal document

* Add CI script for saithrift-bldr-docker

* Remove superfluous ACR publish steps from regular docker build CI script.

* Add CI scripts to build and publish remaining docker images to Azure Container Registery (ACR).

* SAI apigen support for tables with no action parameters and a single action (#207)

* Update .wordlist.txt

* Use make target to publish to ACR (just bmv2-bldr as first candidate).

* Call docker publish make targets from all CI scripts which publish.

* Doc dash as submodule (#203)

* Document third-party workflows using DASH as a Git submodule.

* Add URL to sample project.

* Incorporate review feedback (typo; missing file).

* Spellcheck fixes.

* Spellcheck

* Add .wordlist.txt to CI triggers.

* Spellcheck wordlist.

Co-authored-by: Chris Sommers <[email protected]>

* Split SAI API (#201)

Make APIs compatible with SONiC bulk infra

Signed-off-by: Marian Pritsak <[email protected]>

* Add APP_DB to SAI mapping (#102)

* Add APP_DB to SAI mapping

* Spellcheck - add to wordslist

* Fix docker & Makefile perms (#202)

* Incremental work on docker permissions fixes.

* More progress on docker and make permissions issues.

* Trial remove -u root from CI file.

* Makefile and CI file perms

* Fix CI docker flags

* Final purge of obs sudo commands to fix perms.

* Test for veth's before deleting.

Co-authored-by: Chris Sommers <[email protected]>

* Fix ipv6 packet noise (#211)

* Ensure ipv6 disabled on veth's prior to PTF tests, fix #205.

* CHange docker registrey for ixia-c to Google cloud (was Dockerhub). No functional change but new b uilds will pull new image into workspaces.

* Move ipv6 disable code to a separate shell script. Call it after deploy-ixiac target.

Co-authored-by: Chris Sommers <[email protected]>

* Remove publish steps from non-ACR CI scripts (consequence of merge).

Signed-off-by: Marian Pritsak <[email protected]>
Co-authored-by: Sanjay Thyamagundalu <[email protected]>
Co-authored-by: Chris Sommers <[email protected]>
Co-authored-by: Mukesh Moopath Velayudhan <[email protected]>
Co-authored-by: KrisNey-MSFT <[email protected]>
Co-authored-by: Marian Pritsak <[email protected]>

* Trial of env var to define docker img

* Add docker .env variable to CI triggers.

* Fix stray conflict markers in Makefile.

* Fix CI triggers.

* Use .env files to define docker images. Fix CI triggers. Remove some docker image CI triggers.

* add missing path

* Fix path.

* Trivial change to force a CI build.

* Change Makefile to force CI rebuild.

* Trivial change to docker image .env file to test CI triggers.

* Change .env file to force CI.

* Change grpc docker .env file to trigger CI rebuild.

* Change saithrift-bldr docker .env to force CI rebuild.

* Change saithrift-client .env file to force CI rebuild/

* Fixed VNET outbound test scenario.

Signed-off-by: Anton Putria <[email protected]>

* Trial docker build/conditional publish.

* Get env variable into context.

* Correct env filename

* Debugging env vars & docker save

* Fix CI syntax

* Add Makefile targets to upload/download docker image tarball artifact.

* Revert to simple conditional job for build+publish.

* Conditional CI for non-publish docker job.

* Outbound test passes with traffic

Fixed configuration based on changes in main.

Signed-off-by: Maksym Prytoliuk <[email protected]>

* Add conditionals to all docker build/publish workflows: run build-only in forks, run build-publish in main repo.

* Documenting Docker workflows.

* Spellcheck fixes.

* Spellcheck fixes.

* Add screen cap of skipped job.

* Spellcheck

* Update PR from dev branch (sync to main) (#224)

* Update program-scale-testing-requirements-draft.md

Update Scale #'s per Keysight/MSFT call; document is a version which needs an update.

* Fix Spelling (#221)

* Update AMD-Pensando_HA_Proposal.md

Explicitly add 'parallel' to state synchronization stages (per @lguohan )

* Update AMD-Pensando_HA_Proposal.md (#210)

* SAI apigen support for tables with no action parameters and a single action (#207)

* Update .wordlist.txt

* Update AMD-Pensando_HA_Proposal.md

* Doc dash as submodule (#203)

* Document third-party workflows using DASH as a Git submodule.

* Add URL to sample project.

* Incorporate review feedback (typo; missing file).

* Spellcheck fixes.

* Spellcheck

* Add .wordlist.txt to CI triggers.

* Spellcheck wordlist.

Co-authored-by: Chris Sommers <[email protected]>

* Split SAI API (#201)

Make APIs compatible with SONiC bulk infra

Signed-off-by: Marian Pritsak <[email protected]>

* Add APP_DB to SAI mapping (#102)

* Add APP_DB to SAI mapping

* Update .wordlist.txt

Updating w/Chris

Signed-off-by: Marian Pritsak <[email protected]>
Co-authored-by: Mukesh Moopath Velayudhan <[email protected]>
Co-authored-by: Chris Sommers <[email protected]>
Co-authored-by: Chris Sommers <[email protected]>
Co-authored-by: Marian Pritsak <[email protected]>

Signed-off-by: Marian Pritsak <[email protected]>
Co-authored-by: Mukesh Moopath Velayudhan <[email protected]>
Co-authored-by: Chris Sommers <[email protected]>
Co-authored-by: Chris Sommers <[email protected]>
Co-authored-by: Marian Pritsak <[email protected]>

* Update .wordlist.txt

* Slide deck for today's SAI Challenger presentation

* [doc]: Fix the typo of TCP UDP protocol number (#223)

According to: https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml, the ptotocol number of TCP should be 6, and the UDP's should be 17.

* Proofreading, image clarity.

Signed-off-by: Marian Pritsak <[email protected]>
Co-authored-by: KrisNey-MSFT <[email protected]>
Co-authored-by: Mukesh Moopath Velayudhan <[email protected]>
Co-authored-by: Chris Sommers <[email protected]>
Co-authored-by: Marian Pritsak <[email protected]>
Co-authored-by: Ze Gan <[email protected]>

* Use env variable for DASH_ACR_LOGIN_SERVER instead of secret.

* Use literal expression instead of env variable.

* Use literal expression for ACR repository instead of secret.

* Clarify docker publishing.

* Spellcheck.

* Document another dockerfile workflow.

* spellcheck

* CI triggers on PR to any branch, not just main.

* Update documentation

- Added dash-test-sai-challenger.md doc file under test/docs
- Updated Makefile make run-saic-test-thrift target with passing parameters.

Signed-off-by: Maksym Hedeon <[email protected]>

* Updated SAI-Challenger submodule.

Signed-off-by: Anton Putria <[email protected]>

* Improvements to SAI-Challenger docker flows.

- Use docker hub to pull images
- Fixed make run-saic-tests to do not show errors
- Updated manuals

Signed-off-by: Anton Putria <[email protected]>

* Fixes per review feedback #225 (comment):
 - fix image; (docxkerhub->ACR in one case
 - replace "local" with "host"
Expand on instructions for writing and running PTF tests (from verbal feedback in WG meeting, not an issue or PR review).
Discovered an oversight in the dockerfile .env files which prevented overriding image macros (had to replace = with ?=); tested fix.

* Spellcheck.

* Spellcheck.

* Update dash-test-sai-challenger.md

Signed-off-by: Mircea Dan Gheorghe <[email protected]>

* Add bmv2 SAI port attributes (num_active, port_list), dflt vlan, dflt vrf)

* Added SAI-Challenger docker build verification to GitHub actions

- Added SAI-Challenger docker verification action.
- Fixed spellchecker and docker build issues.

Signed-off-by: Anton Putria <[email protected]>

* Add default .1Q bridge to bmv2

Signed-off-by: Maksym Prytoliuk <[email protected]>

* Fixed SAI-Challenger user guide and file namings.

Signed-off-by: Anton Putria <[email protected]>

* Spellcheck

* Scaled VNET outbound test using snappi and saigen. (1st edition)

- Split scale and simple tests / jsons
- Updated ixia controller version
- Added dash_helper for traffic profile scaling.

Signed-off-by: Maksym Hedeon <[email protected]>

* spellcheck

* Move saichallenger client docker to ACR.

* Fix .yml formatting.

* Fix dependency in action file.

* Add missing .env file

* remove space in action script, add .env dependencies

* fix include path

* Add saichalleneger tests to run-all-tests and CI

* Fix docker image name.

* Correct mixup in image names.

* Remove stray hyphen

* Run saichallenger workflows on any branch PR.

* Added few more VNET scenario examples.

- Extended VNET traffic scenarios.
- Added docstrings for helper methods.
- Removed unused code.

Signed-off-by: Anton Putria <[email protected]>
Co-authored-by: Maksym Hedeon <[email protected]>

* Slides from DASH WG Meeting (SAI Challenger Episode 2) (#254)

* Add outbound diagram

Signed-off-by: Maksym Prytoliuk <[email protected]>

* Added inbound to xfail test results. (#44)

- Marked VNET Inbound Routing with xfail
- Added pytest.ini with marks definitions.
- Decreased duration of tests.

Signed-off-by: Anton Putria <[email protected]>

* Scaling test configuration documentation

- Added scaling approach documentation.
- Vnet2vnet traffic scaling scenario description.
- Added docstring to the test cases.
- Added more test examples.

Signed-off-by: Anton Putria <[email protected]>
Co-authored-by: Maksym Hedeon <[email protected]>
Co-authored-by: Maksym Prytoliuk <[email protected]>

* Submodule update and rename

* Rename and update the SAI-Challenger submodule
* Enabled additional tests based on the fixes in the SAI-Challenger.
* Renamed test folder.

Signed-off-by: Anton Putria <[email protected]>

* PTF: add basic test infra and more test cases (#231)

* ptf: add vnet sample test cases for dash

- Common VNet API for all tests
- Test cases:
  - Inbound VNI/ENI
  - Inbound Routing PA validate
  - Inbound Routing VNI match
  - Inbound Routing PA SRC IP
  - Outbound Routing Vnet direct
  - Outbound Routing direct
  - CT (just placeholder)
  - Route (basic)

Signed-off-by: Volodymyr Mytnyk <[email protected]>
Signed-off-by: Yuriy Harhas <[email protected]>

* ptf: run only bmv2 ready test case on CI

Signed-off-by: Volodymyr Mytnyk <[email protected]>

* ptf: test_saithrift_vnet: removed unused libs

Signed-off-by: Volodymyr Mytnyk <[email protected]>

* test-cases folder restructure.

- created two subfolders in root: functional and scale
- removed outdated bmv2_model folder
- moved all existing content of test-cases to test-cases/scale

Signed-off-by: Anton Putria <[email protected]>

* Moved saidashvnet.py to a proper location.

Signed-off-by: Anton Putria <[email protected]>

* Fixed ENI creation in Outbound tests

Signed-off-by: Yuriy Harhas <[email protected]>

* Spellchecker related fixes.

Signed-off-by: Anton Putria <[email protected]>

* Updated VNET test cases based on the PR #238.

Signed-off-by: Yuriy Harhas <[email protected]>

Signed-off-by: Volodymyr Mytnyk <[email protected]>
Signed-off-by: Yuriy Harhas <[email protected]>
Signed-off-by: Anton Putria <[email protected]>
Co-authored-by: Anton Putria <[email protected]>
Co-authored-by: Yuriy Harhas <[email protected]>

* Adding updated license files (#266)

* Fixbug: SAI Server crash on DASH ACL API (#264)

1. Fix duplicate SAI ID
2. Wrong search action
3. Double delete entry if SAI write error
4. Wrong format of error message

Signed-off-by: Ze Gan <[email protected]>

* Add VNET v6 PTF test case; Fix v4 PTF test case to address test hang issue (#263)

This PR adds VNET v6 test case and also fixes the PTF thrift client issue (the v6 test case just hangs) #237. This is a joint work with @chrispsommers and @aputriax.

* Fixed links in the README after renaming folders. (#262)

Signed-off-by: Anton Putria <[email protected]>

Signed-off-by: Anton Putria <[email protected]>

* Correct CI file, was publishing wrong image. Some prior merge must have caused a mixup.

Signed-off-by: Maksym Hedeon <[email protected]>
Signed-off-by: Kostiantyn Goloveshko <[email protected]>
Signed-off-by: Maksym Prytoliuk <[email protected]>
Signed-off-by: Konstantin Goloveshko <[email protected]>
Signed-off-by: Anton Putria <[email protected]>
Signed-off-by: Marian Pritsak <[email protected]>
Signed-off-by: Mircea Dan Gheorghe <[email protected]>
Signed-off-by: Volodymyr Mytnyk <[email protected]>
Signed-off-by: Yuriy Harhas <[email protected]>
Signed-off-by: Anton Putria <[email protected]>
Signed-off-by: Ze Gan <[email protected]>
Co-authored-by: Chris Sommers <[email protected]>
Co-authored-by: Maksym Hedeon <[email protected]>
Co-authored-by: Kostiantyn Goloveshko <[email protected]>
Co-authored-by: Maksym Hedeon <[email protected]>
Co-authored-by: Maksym Prytoliuk <[email protected]>
Co-authored-by: Anton Putria <[email protected]>
Co-authored-by: Maksym Prytoliuk <[email protected]>
Co-authored-by: Anton Putria <[email protected]>
Co-authored-by: Sanjay Thyamagundalu <[email protected]>
Co-authored-by: Mukesh Moopath Velayudhan <[email protected]>
Co-authored-by: KrisNey-MSFT <[email protected]>
Co-authored-by: Marian Pritsak <[email protected]>
Co-authored-by: Ze Gan <[email protected]>
Co-authored-by: MirceaDan <[email protected]>
Co-authored-by: Volodymyr Mytnyk <[email protected]>
Co-authored-by: Anton Putria <[email protected]>
Co-authored-by: Yuriy Harhas <[email protected]>
Co-authored-by: Mohammad Hanif <[email protected]>

ca_to_pa_entry = sai_thrift_outbound_ca_to_pa_entry_t(switch_id=self.switch_id,
dst_vnet_id=dst_vnet_id, dip=sai_ipaddress(dip))
sai_thrift_create_outbound_ca_to_pa_entry(self.client, ca_to_pa_entry,
Copy link
Contributor

Choose a reason for hiding this comment

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

@vmytnykx
as per p4 outbound code, the overlay dmac is always provided as part of the ca to pa mapping data.

action set_tunnel_mapping(IPv4Address underlay_dip,
EthernetAddress overlay_dmac,
bit<1> use_dst_vnet_vni) {
if (use_dst_vnet_vni == 1)
meta.vnet_id = meta.dst_vnet_id;
meta.encap_data.overlay_dmac = overlay_dmac;
meta.encap_data.underlay_dip = underlay_dip;
}

any reason the dmac is not provided in those testcases?

eth_dst=self.NEIGH_DMAC,
ip_dst="10.10.2.2",
ip_src="10.10.20.20",
ip_ttl=64)
Copy link
Contributor

@vincent-xs vincent-xs Dec 1, 2022

Choose a reason for hiding this comment

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

@vmytnykx
since the packet is routed, shouldn't the TTL be decremented?

vijasrin pushed a commit to vijasrin/DASH that referenced this pull request Dec 8, 2022
* ptf: add vnet sample test cases for dash

- Common VNet API for all tests
- Test cases:
  - Inbound VNI/ENI
  - Inbound Routing PA validate
  - Inbound Routing VNI match
  - Inbound Routing PA SRC IP
  - Outbound Routing Vnet direct
  - Outbound Routing direct
  - CT (just placeholder)
  - Route (basic)

Signed-off-by: Volodymyr Mytnyk <[email protected]>
Signed-off-by: Yuriy Harhas <[email protected]>

* ptf: run only bmv2 ready test case on CI

Signed-off-by: Volodymyr Mytnyk <[email protected]>

* ptf: test_saithrift_vnet: removed unused libs

Signed-off-by: Volodymyr Mytnyk <[email protected]>

* test-cases folder restructure.

- created two subfolders in root: functional and scale
- removed outdated bmv2_model folder
- moved all existing content of test-cases to test-cases/scale

Signed-off-by: Anton Putria <[email protected]>

* Moved saidashvnet.py to a proper location.

Signed-off-by: Anton Putria <[email protected]>

* Fixed ENI creation in Outbound tests

Signed-off-by: Yuriy Harhas <[email protected]>

* Spellchecker related fixes.

Signed-off-by: Anton Putria <[email protected]>

* Updated VNET test cases based on the PR sonic-net#238.

Signed-off-by: Yuriy Harhas <[email protected]>

Signed-off-by: Volodymyr Mytnyk <[email protected]>
Signed-off-by: Yuriy Harhas <[email protected]>
Signed-off-by: Anton Putria <[email protected]>
Co-authored-by: Anton Putria <[email protected]>
Co-authored-by: Yuriy Harhas <[email protected]>
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.

6 participants