sonic-net / DASH

Disaggregated APIs for SONiC Hosts
Apache License 2.0
80 stars 89 forks source link

Flow resimulation HLD. #460

Closed r12f closed 5 months ago

r12f commented 9 months ago

This is the follow up flow resimulation design for packet flow: https://github.com/sonic-net/DASH/pull/449.

Motivation

In current DASH pipeline, the flow resimulation is designed to rely on a incomplete flow table (ConnTrack Lookup stage), so both ACL and mapping table update can take effect immediately. But this design could not provide a good way to:

  1. Describe or leverage the fast path in the ASIC.
  2. Resimulate all flows in a pipeline.
  3. Provide a generic way for policy-based flow resimulation.
  4. Support learning-based flow resimulation, such as tunnel learning.
  5. Handle cases where we would like to maintain PCC.
  6. ...

Changes

The HLD is trying to describe how flow resimulation should work and the changes that we need in the pipeline.

The flow API doc is not merged into DASH yet. For reference, here is the PR, which will be moved into DASH repo later: https://github.com/sonic-net/SONiC/pull/1483.

r12f commented 9 months ago

Hi @budgrise and @chrispsommers , I have updated the doc to add new ways for reduce the memory usage of flow tracking key in the match stage entry, as well as added the clarification for hash table. Feel free to check it out again and hopefully this addresses your concerns.

r12f commented 5 months ago

due to new requirement showing up, i am going to close this PR for now and we will come back later.