DASH Workgroup Meeting Minutes 8/30/2023

1 view
Skip to first unread message

Kristina Moore

unread,
Sep 1, 2023, 6:00:53 PM9/1/23
to sonic-dash-t...@googlegroups.com, sonic...@googlegroups.com, Sudarshan, Reshma, Marian Pritsak, Chris Sommers, Michal Zygmunt, Fingerhut, John Andy, James Grantham, Mircea Dan Gheorghe, John C Carney, Prince Sunny, Guohan Lu, rmukh...@nvidia.com, Mohammad Hanif, Jae Park, Pranjal Shrivastava, Neeraj Motwani, Anton Putrya, Srinivasan, Vijay, Veerappan, Senthilnathan, Kumaresh Perumal, amith.prabha...@keysight.com, Kristina Moore, Kamil Cudnik, Sandeep Balani, Ariff Premji, White, Joseph L, Madhavan, Sandeep, Rita Hui, Singhai, Anjali, Matty Kadosh, Sanders, Mark, Oleksandr Kholodnyi, Ivan Lee, sonic smartswitch leads

Hello DASH Community –thank you for your time on Wednesday, it was a great P4 discussion - thanks @Marian Pritsak!

In summary, we covered P4/Pipeline Q&A initiated by DreamBig Semiconductor.  Discussed the merge of a few PRs and creation of 2 new Issues. 

Change this week:  I’m placing the detailed notes here (above the fold) this week, as they are super interesting.

  1. We discussed the generic resource monitoring system, it was noted that it allows users to query any object type.  A SAI-Proposal-Generic-Resource-Monitoring link was provided (an explanation of the resource type annotation in the P4 code) in the meeting chat.   
  2. Also with respect to P4, we discussed the ‘resource type’ field in the P4 model, which is associated with individual attributes rather than the table itself.
  3. Object(s) annotation, which allows the programmer to specify which object types are allowed to be passed with an attribute. 
  4. Showed the ‘resource type’ field in a table, and how it is associated with individual attributes. Marian provided an example of how an IP address attribute can be marked as a resource type and how an object type is passed along with the table ID. 
  5. Moved on to the need for validation checks when using object IDs in SAI metadata.
  6. Marian explained that the programmer must explicitly specify which object types are allowed to be passed with the attribute.  With respect to the API generated from the P4 code, Marian clarified that the API allows users to specify which table and stage they want to program. DreamBig Semi indicated their understanding of the control plane creating an equal group with rules and attaching it to the ENI.
  7. The implementation of the pipeline with distinct tables and pointers for each stage and direction
  8. BMV2: which is a fixed set of tables used to model virtual tables. Marian explained that each ENI may have a unique set of tables, and that the user must specify which ACLs to look up for each ENI.
  9. The process of attaching a group to an ENI (Elastic Network Interface)
  10. Discussed the user's intention to set a field in the ENI to determine which ACLs to look up for the ENI.
  11. The process of attaching a group to different places in the pipeline; the need for separate tables in the pipeline and the need to do 6 lookups
  12. The need to replicate tables in order to achieve the desired result in BMV2
  13. Marian explained that when a rule is created, it will be copied across all six tables – optimal way to achieve the desired outcome is to replicate and create multiple lookups; the five tuple is fixed and that it changes with each lookup

More discussion:  @Kamil Cudnik continues refinement work within the DASH Repo in the background. 

Issue415: [SAI] wrong code generated in libsai – in Review
related to code being generated in the code generator generating possibly cosmetic error(s). Marian suggested that the object ID should be built as a struct, with the upper bits being the object type and the lower bits being the ID within that type.  Kamil suggested that the variable should be shadowed and a new function should be added to utils.CPP.  Also discussed the BMV2 ID value, which is 16 bits, and the possibility of manually converting the ID into 64 bits, which would ensure that the cycle generated is unique and that an object type can be derived from it.

Issue428: Clarification on Service Tunnel Inbound Processing – Created
Service Tunnel processing and how to process packets that arrive double tunneled. Asking if the description in the HLD implies that a V4 entry is created for outbound and a V6 entry for inbound.  Request more detailed descriptions of inbound packets in the HLD section.

As always, with respect to any of our DASH meetings High Availability (Tuesdays), Community (Wednesdays), or Behavioral Model (Thursdays) – please let me know if there are PRs, Q&A, or items you would like to discuss or present. 

The DASH YouTube channel link is here to subscribe / access WG content (and click the bell to receive notifications). 

See you on 9/6/2023 (unless we break for Labor Day Week?  I’ll send a poll…)


Meeting Title:  SONiC-DASH-Workgroup Community Meeting #82

Attendees (21):

DASH Group to join: https://groups.google.com/g/sonic-dash     

DASH-Test-Workgroup Group to join: https://groups.google.com/g/sonic-dash-test-workgroup

 

Agrawal, Ashutosh - Intel

Jeevan  - Arista

McCollum, Macy - Intel

Oleksandr Ivantsiv - NVidia

Alberto Villarreal - Keysight

Kamil Cudnik - MSFT

Mircea Dan Gheorghe - Keysight

Saad Mazhar - DreamBig Semi

Bud Grise - XSightLabs

Kristina Moore - MSFT

Mohammad Hanif - Broadcom

Sunil Kumar C Suvarneshwar - Arista

Chris Sommers - Keysight

Kumaresh Perumal - MSFT

murali Venkateshaiah - Cisco

Vincent Legrand - XSightLabs

Faisal Masood - DreamBig Semi

Marian Pritsak - NVidia

mxiao - Arista

Yakiv Huryk - NVidia

 

Discussion - PRs/Issues/Documentation for review, comments, suggestions

 

DASH Community Upcoming Project Action Items

 

 

A screenshot of a computer

Description automatically generated

 

 

Discuss:


High Availability high level design / initial proposal documents are published for consumption/review if you would like to take a look.  Please reach out to Riff Jiang with any feedback or questions:

·        PR: https://github.com/sonic-net/SONiC/pull/1445

·        Doc: https://github.com/r12f/SONiC/blob/user/r12f/ha/doc/smart-switch/high-availability/smart-switch-ha-hld.md

·        Slides: https://github.com/r12f/SONiC/blob/user/r12f/ha/doc/smart-switch/high-availability/smart-switch-ha-overview-slides.pdf

 

 

PR422: Adds SAI_ROUTE_ENTRY_ATTR_PACKET_ACTION api to dash_underlay_routing - Keysight requested to merge

PR429: sai-api-gen] Write files only when changes are detected - Merged

PR425: Remove ACL tags from BM - Kumaresh, Kristina, Chris reviewed - Merged
PR415: [SAI] wrong code generated in libsai - in Review
PR428: Clarification on Service Tunnel Inbound Processing - Created

 

 Introduction/Welcome: 

None this week 

Next Week:

Please contact Kristina

 

                  

Sticky for Links/Data:

 

 

DASH Groups to join to receive Invites, Meeting Notes, and Comms

DASH: https://groups.google.com/g/sonic-dash    

 

DASH-Test-Workgroup Group: https://groups.google.com/g/sonic-dash-test-workgroup  

If anyone knows other people who would like info re: our community, please have them joins these groups for receive Comms, etc…

Links to Recording 

Teams/Sharepoint:

SONiC-DASH Workgroup Community Meeting-20230830_090321-Meeting Recording.mp4
 

YouTube:
https://youtu.be/bxitnRrQlhY

HA moved to SmartSwitch LF group

Behavioral Model Call next week

8/30/2023 Community Call; please request access via the link if you are not able to view/listen

 

 

Azure DASH GitHub Repo:                     

https://github.com/sonic-net/DASH

 


Test/Docs folder:

https://github.com/Azure/DASH/blob/main/test/docs/dash-test-workflow-saithrift.md

Ideal test workflow is here, converted to .md

SAI Thrift     

SAI Thrift PR

Client server needed for testing

P4

https://opennetworking.org/p4/ and https://p4.org/working-groups/

Open source, domain-specific programming language for network devices, specifying packet processing for data plane devices (switches, routers, NICs, filters, etc.)

PINS

https://opennetworking.org/pins/

 

PNA consortium spec

https://p4.org/p4-spec/docs/PNA-v0.5.0.html

An architecture describing the structure and common capabilities of network interface controller (NIC) devices which process packets transiting one or more interfaces and a host system.

Describes the structure and capabilities of the pipeline, and a user program, which specifies the functionality of the programmable blocks within that pipeline. For more information, see the P4 Language Consortium specifications

IPDK

Infrastructure Programmer Development Kit (ipdk.io) and

https://github.com/ipdk-io/ipdk-io.github.io

IPDK is an open source, vendor agnostic framework of drivers and APIs for infrastructure offload and management which runs on a CPU, IPU, DPU or switch. IPDK runs in Linux and uses a set of well-established tools such as DPDK and P4 to enable network virtualization.

bmv2

https://github.com/p4lang/behavioral-model

The second version of the reference P4 software switch, nicknamed bmv2 (for behavioral model version 2). The software switch is written in C++11. It takes as input a JSON file generated from your P4 program by a P4 compiler and interprets it to implement the packet-processing behavior specified by that P4 program

DPDK

https://www.dpdk.org/

DPDK is the Data Plane Development Kit which consists of libraries to accelerate packet processing workloads running on a wide variety of CPU architectures.

     

 

Thank you again for your participation…

Kristina Moore MBA, M.S., CISSP - Azure Core Principal PM / DASH
Office: 425-722-7720     Mobile: 425-876-2040     Email: kri...@microsoft.com
DASH Group to join: https://groups.google.com/g/sonic-dash    
DASH-Test-Workgroup Group to join: https://groups.google.com/g/sonic-dash-test-workgroup

ImageTitle: LinkedIn - Description: image of LinkedIn icon

 

 

Reply all
Reply to author
Forward
0 new messages