sonic-net / DASH

Disaggregated APIs for SONiC Hosts
Apache License 2.0
84 stars 91 forks source link

DASH pipeline packet flow update proposal. #449

Closed r12f closed 12 months ago

r12f commented 1 year ago

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:

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.

KrisNey-MSFT commented 1 year ago

[like] Kristina Moore reacted to your message:


From: Riff @.> Sent: Friday, November 3, 2023 7:13:20 PM To: sonic-net/DASH @.> Cc: Kristina Moore @.>; Comment @.> Subject: Re: [sonic-net/DASH] DASH pipeline packet flow update proposal. (PR #449)

@r12f commented on this pull request.


In documentation/general/dash-sai-pipeline-packet-flow.mdhttps://github.com/sonic-net/DASH/pull/449#discussion_r1382112919:

+| IP Mapping | Exact Match | Source IP or Destination IP | Publish metadata from matched VNET and VNET mapping entry | +| Port Mapping | Range Match | Source Port + Destination Port | Publish metadata from matched port mapping entry | + +For more on the metadata publishing, please refer to the metadata publishing section below. + +#### 5.9.2. Pipeline profile and stage connections + +Ideally, when DASH initializes or whenever we create a new pipeline, by simply creating multiple numbers of different types of matching stages and connecting them in different ways, we can easily implement different pipeline and network functions. + +| Stage 0 | Stage 1 | Stage 2 | Stage 3 | Stage 4 | +| ------- | ------- | ------- | ------- | ------- | +| Routing 0 | IP Mapping 0 | Port Mapping | X | X | +| Routing 0 | Routing 1 | IP Mapping 0 | IP Mapping 1 | Port Mapping | +| Routing 0 | IP Mapping 0 | Port Mapping | Routing 1 | IP Mapping 1 | + +However, in reality, it might make the pipeline hard to implement, model, debug and validate or test at this moment. For example, changing matching fields, matching type and connection dynamically on pipeline creation is simply beyond the ability of P4, which is used by our behavior model today as well as many vendor's ASIC SDKs.

p4 annotations will help generating the sai headers, but sadly, it won't be able to help much in this case. :(

— Reply to this email directly, view it on GitHubhttps://github.com/sonic-net/DASH/pull/449#discussion_r1382112919, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AFJSI6DTD5FVGBOUDG5J5GTYCU65BAVCNFSM6AAAAAA5U5YA32VHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMYTOMJTGM4DONJSGQ. You are receiving this because you commented.Message ID: @.***>