youtube image
From YouTube: DASH Behavioral Model WG Jan 26 2023


Push ST/PL bmv2 PR308 to next week Feb 2 2023

Q: Andy: match, key gen ID, will this be in P4, per ENI (Y), CP will decide updates (batch or real-time),
will the key gen entries be replaced?

From former HA notes:
It is the implementation - depends upon your hardware and what is optimal for the technology provider. Packet triggered here…
Config level of the VNIC/ENI, change config/policies on the ENI, config version changes from 0 to 'not zero', cache the version for the ENI that is maintained IN the connection, look at version maintained in the connection for the ENI (from when the last packet triggered the fixup), and tells datapath whether an update to the State in the connection is needed, packet will go through policy lookup and update. (For every connection we will have a cached version). Will not transit the EST flow for forwarding…or do we use the flow entry that is there? We don't have to update the flow (per se). Gen ID should make it's way into the P4 code. Andy: Aggressively delete old or let them be aged out? Not sure if this is defined in P4 model.

Hanif: In P4 community, has bmv2 caught up?
Andy: Open Source PLang projects review: majority of code is delivered via paid developers
BMV has been in maintenance mode
Would a switch from bmv2 to dpdk go smoothly today? Likely not… w/reference model & control plane changes (src & dest address list-match-type, etc…) - no simple datapath implementation at high speed. No path into DPDK.

On the other hand, people are working on P4 DPDK (useful, performant, c/be turned commercial). BMV2 is local…
No idea if we have gaps/feature support.
Andy: does it even compile? Gaps? Run through P4C DPDK Compiler.
Chris: workflow? 1) execution engine P4 DPDK 2) Compiler 3) P4 code in behavioral model
P4 code to SAI header file (autogeneration) not platform dependent
libsai IS platform dependent

Volodymyr: and

Reshma: TDI integrating into sync_d of SONiC as a direct call (not an RPC call)
Want to implement DASH onto DPDK
Connection tracking will be DASH connection tracking
range port list and list port list (in bmv2) upstreamed into Andy to check? Power of 2 ranges accepted only?

DPDK can be a replacement for bmv2 - may need to make choices in terms of implementation