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

DASH pipeline packet flow update proposal. #449

Merged
merged 55 commits into from
Nov 8, 2023

Conversation

r12f
Copy link
Collaborator

@r12f r12f commented Oct 5, 2023

Motivation

DASH pipeline packet flow is the core for data path modeling, and today, it provides a good starting point for modeling VNET traffic. However, certain behaviors of DASH pipeline is not well defined or not being flexible enough.

For example:

  • Only certain VM related scenarios are supported.
    • Inbound pipeline is not fully modeled.
    • Things like load balancer will require large change to today's pipeline, e.g. PR 348: [NAT HLD] Nat hld #348.
  • Routing types being the minimum building block makes it hard to add any new scenarios, because we have to change our behavior model for every new scenarios. This is not scalable for everyone that involved in DASH - both users or vendor implementations. E.g.:
  • Certain routing actions behaves differently under different routing types.
    • “staticencap” uses “underlay_ip” from ENI in regular scenario, while “pl_underlay_ip” in PL scenario.
    • “4to6” action uses pl_sip_encoding field from ENI to encode the overlay_sip, while in ST, it uses only overlay_sip.
  • DASH object contains fields from Microsoft only scenarios, such as private link.

And this PR is to:

Change summary

This proposal is not indented to redesign the SAI API and DASH packet flow today, but mostly focusing on a few extensions in today's DASH model.

  • Exposing routing type table and make routing actions as the new building block.
    • To transit to the model, we could have them both co-exist side by side, sharing the same name. Until we are ready to switched over.
  • Simplify the pipeline as entry matching and metadata publishing and removing majority of the special logics for any routing actions.
  • Adding port mapping stage to the existing pipeline and model the inbound pipeline the same way as outbound.

Copy link
Collaborator

@KrisNey-MSFT KrisNey-MSFT left a comment

Choose a reason for hiding this comment

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

I made a few suggestions

documentation/general/dash-sai-pipeline-packet-flow.md Outdated Show resolved Hide resolved
documentation/general/dash-sai-pipeline-packet-flow.md Outdated Show resolved Hide resolved
documentation/general/dash-sai-pipeline-packet-flow.md Outdated Show resolved Hide resolved
documentation/general/dash-sai-pipeline-packet-flow.md Outdated Show resolved Hide resolved
documentation/general/dash-sai-pipeline-packet-flow.md Outdated Show resolved Hide resolved
documentation/general/dash-sai-pipeline-packet-flow.md Outdated Show resolved Hide resolved
documentation/general/dash-sai-pipeline-packet-flow.md Outdated Show resolved Hide resolved
Copy link
Collaborator

@KrisNey-MSFT KrisNey-MSFT left a comment

Choose a reason for hiding this comment

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

Did a bit more...will finish later

documentation/general/dash-sai-pipeline-packet-flow.md Outdated Show resolved Hide resolved
documentation/general/dash-sai-pipeline-packet-flow.md Outdated Show resolved Hide resolved
documentation/general/dash-sai-pipeline-packet-flow.md Outdated Show resolved Hide resolved
documentation/general/dash-sai-pipeline-packet-flow.md Outdated Show resolved Hide resolved
documentation/general/dash-sai-pipeline-packet-flow.md Outdated Show resolved Hide resolved
documentation/general/dash-sai-pipeline-packet-flow.md Outdated Show resolved Hide resolved
documentation/general/dash-sai-pipeline-packet-flow.md Outdated Show resolved Hide resolved
documentation/general/dash-sai-pipeline-packet-flow.md Outdated Show resolved Hide resolved
documentation/general/dash-sai-pipeline-packet-flow.md Outdated Show resolved Hide resolved
documentation/general/dash-sai-pipeline-packet-flow.md Outdated Show resolved Hide resolved
Copy link
Collaborator

@KrisNey-MSFT KrisNey-MSFT left a comment

Choose a reason for hiding this comment

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

Last of my potential edits

documentation/general/dash-sai-pipeline-packet-flow.md Outdated Show resolved Hide resolved
documentation/general/dash-sai-pipeline-packet-flow.md Outdated Show resolved Hide resolved
documentation/general/dash-sai-pipeline-packet-flow.md Outdated Show resolved Hide resolved
documentation/general/dash-sai-pipeline-packet-flow.md Outdated Show resolved Hide resolved
documentation/general/dash-sai-pipeline-packet-flow.md Outdated Show resolved Hide resolved
documentation/general/dash-sai-pipeline-packet-flow.md Outdated Show resolved Hide resolved
documentation/general/dash-sai-pipeline-packet-flow.md Outdated Show resolved Hide resolved
documentation/general/dash-sai-pipeline-packet-flow.md Outdated Show resolved Hide resolved
documentation/general/dash-sai-pipeline-packet-flow.md Outdated Show resolved Hide resolved
r12f and others added 2 commits November 3, 2023 12:06
@KrisNey-MSFT
Copy link
Collaborator

KrisNey-MSFT commented Nov 3, 2023 via email

Copy link
Collaborator

@KrisNey-MSFT KrisNey-MSFT left a comment

Choose a reason for hiding this comment

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

approving

@KrisNey-MSFT KrisNey-MSFT merged commit e560e19 into sonic-net:main Nov 8, 2023
3 checks passed
@r12f r12f deleted the user/r12f/pipeline branch November 8, 2023 17:54
@r12f r12f mentioned this pull request Nov 11, 2023
clarklee-guizhao added a commit to clarklee-guizhao/DASH that referenced this pull request Dec 3, 2023
* main: (75 commits)
  [dash-SAI] Enable warnings as errors (sonic-net#466)
  [SAI] wrong code generated in libsai sonic-net#415 (sonic-net#463)
  Fix incorrect IP in SONiC-DASH HLD VNET to VNET example. (sonic-net#459)
  DASH pipeline packet flow update proposal. (sonic-net#449)
  [libsai] Add attr name logging when doing get api (sonic-net#451)
  Build libsai deb packages in github workflow (sonic-net#450)
  Add Private Link mapping (sonic-net#327)
  [SAI] Update SAI submodule to the latest origin/master (sonic-net#446)
  [dash] Add libsai-debs target to create libsai debian packages (sonic-net#444)
  update p4 compile dependancy to avoid parallel  docker runs (sonic-net#443)
  [dash] Refactor libsai (sonic-net#438)
  [dash] Update SAI to latest v1.13 (sonic-net#435)
  [dash-pipeline] Refactor Makefiles (sonic-net#432)
  Remove ACL tags from BM (sonic-net#425)
  [submodule] Update SAI submodule to origin/master (sonic-net#431)
  [sai-api-gen] Write files only when changes are detected (sonic-net#429)
  Adds SAI_ROUTE_ENTRY_ATTR_PACKET_ACTION api to dash_underlay_routing (sonic-net#422)
  [SAI] Add missing check for api initialized
  [SAI] Print oids in hex form
  [SAI] Change asserts to return error codes and add missing switch api
  ...
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