sonic-net / DASH

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

To Be Documented: SDN Controller's knowledge of flows and its control of various counters #43

Open lisahnguyen opened 2 years ago

lisahnguyen commented 2 years ago

Based on the discussion in Community meeting today, please help confirm/clarify the following understanding:

  1. SDN Controller does not need to know about the dynamically learned flows. In other words, SDN Controller won't poll the switch for the flows or expects the switch to notify it when a new flow is learned or when an existing flow is deleted.
  2. SDN Controller won't poll the switch for per flow statistics or expect the switch to stream per flow statistics to it periodically or when the flow is deleted
  3. SDN Controller will explicitly create counters for specific entities. We discuss counter per ENI and per routing entry in today's meeting. I also see counters being associated with CA to PA mapping and ACL in P4 model. Are there any other counters the SDN Controller will create?
chrispsommers commented 2 years ago

@lisahnguyen to your point # 3 above, I would hope the P4 model would declare all counters. If they are associated with table entries which the SDN controller creates, then the counters would be created "automatically."

lisahnguyen commented 2 years ago

@chrispsommers Thanks for the comment. Regarding the P4 model, I am under the impression that it is a WIP model (please correct me if my understanding is not correct). Hence, I am asking the question to see what other counters will be needed.

chrispsommers commented 2 years ago

@lisahnguyen Yes it is WIP, it is good that you bring all these points up early in the process. It is a community effort and the more eyes on it the better.

KrisNey-MSFT commented 2 years ago

Confirming that this is not the requirement, nor the statistics. Per Michal - We do not need to know for every single flow. However some statistic per flow (such as metering) we want to query statistics per bucket (not flow specific). Or scenarios where customers can do random sampling (per ENI). Dump the card (flows) for the customer to sample. Not close tracking/reporting on every single flow to the controller. More documentation will be forthcoming as we continue the project.