Networking/NIC Software: Difference between revisions

From OpenCompute
Jump to navigation Jump to search
(initial summary from OCP global summit presentation, part 2.)
mNo edit summary
Line 4: Line 4:
:Welcome to the OCP '''Networking NIC Software''' Sub-Project.
:Welcome to the OCP '''Networking NIC Software''' Sub-Project.


Our goal is to bring together NIC vendors and hyperscaler and other users to spur discussion about relevant NIC features, and arrive at concrete specs for feature API and behavior.
Our goal is to bring together NIC vendors and hyperscaler and other users to spur discussion about relevant NIC features, and define unambiguous, concrete specifications for the API and behavior of each feature.


We aim to ensure that all vendor implementations support the actual business requirements of large users. These requirements have historically often been underspecified or shared only with individual vendors.
With this, we aim to ensure that all vendor implementations support the actual business requirements of large users. These requirements have historically often been underspecified or shared only with individual vendors (possibly under NDA). Open communication ensures that all vendors can compete, and users have choice.


For each feature, we aim to arrive at a clear specification that covers both driver API and behavioral elements, including performance: threshold values on key metrics. Additionally, we aim to develop concrete conformance tests that vendors can use to self-certify.
For each feature, after reaching consensus we publish a specification that covers both driver API and behavior: metrics and threshold values. We will share concrete conformance tests that vendors can use to self-certify.


===Charter===
===Charter===
Line 31: Line 31:
The current list of active topics are
The current list of active topics are


====Telemetry====
===Telemetry===
Define a standard set of network device and queue statistics, with standard names and unambiguous definition of each statistic's meaning.
Define a standard set of network device and queue statistics, with standard names and unambiguous definition of each statistic's meaning.


Line 43: Line 43:
Develop industry standard support for [https://legacy.netdevconf.info/0x12/session.html?evolving-from-afap-teaching-nics-about-time Earliest Departure Time] (EDT) stateless rate limiting offload.
Develop industry standard support for [https://legacy.netdevconf.info/0x12/session.html?evolving-from-afap-teaching-nics-about-time Earliest Departure Time] (EDT) stateless rate limiting offload.


====Flow Steering====
===Flow Steering===
Device queues are the basis for scalable networking, as well as task isolation and userspace queues.
Device queues are the basis for scalable networking, as well as task isolation and userspace queues.


Line 53: Line 53:
# a common queue interface for userspace network stacks like DPDK and [https://research.google/pubs/pub48630/ Google SNAP].
# a common queue interface for userspace network stacks like DPDK and [https://research.google/pubs/pub48630/ Google SNAP].


====HW Crypto===
===HW Crypto==


TLS, QUIC, IPSec and other cryptographic protocols cover a huge fraction of all traffic.
TLS, QUIC, IPSec and other cryptographic protocols cover a huge fraction of all traffic.
Line 65: Line 65:
# PSP: scalable tunnel and transport mode protocol developed at Google ([https://github.com/google/psp/blob/main/doc/PSP_Arch_Spec.pdf spec on github])
# PSP: scalable tunnel and transport mode protocol developed at Google ([https://github.com/google/psp/blob/main/doc/PSP_Arch_Spec.pdf spec on github])


===Timestamping==
===Time Measurement===
Expand hardware capabilities from PTP to include high-frequency high-precision timestamping.
Expand hardware capabilities from PTP to include high-rate, high-precision timestamps on every packet. Both Rx and Tx.


This forms the basis for advanced congestion control (e.g., [https://dl.acm.org/doi/pdf/10.1145/3387514.3406591 Swift] and accurate latency measurement, among potentially others.
Accurate time measurement is essential to advanced congestion control (e.g., [https://dl.acm.org/doi/pdf/10.1145/3387514.3406591 Swift] and fleetwide health measurement and even applications such as a globally distributed database ([https://research.google/pubs/pub39966/ Spanner]), among potentially others.


==Project Leadership==
==Project Leadership==

Revision as of 23:53, 4 April 2022

OCP-networking-v1-17a3x.png

Welcome

Welcome to the OCP Networking NIC Software Sub-Project.

Our goal is to bring together NIC vendors and hyperscaler and other users to spur discussion about relevant NIC features, and define unambiguous, concrete specifications for the API and behavior of each feature.

With this, we aim to ensure that all vendor implementations support the actual business requirements of large users. These requirements have historically often been underspecified or shared only with individual vendors (possibly under NDA). Open communication ensures that all vendors can compete, and users have choice.

For each feature, after reaching consensus we publish a specification that covers both driver API and behavior: metrics and threshold values. We will share concrete conformance tests that vendors can use to self-certify.

Charter

The focus is on traditional NIC networking features.

Significant developments are taking place in SmartNICs. For now, features not strictly related to the core network transmit and receive path are out of scope. This includes on-board co-processors operating systems, control plane offload and offload of non networking interfaces, such as NVME (storage).

Public

This Sub-Project is open to the public and we want to welcome all those who would like to be involved.

Disclaimer: Please do not submit any confidential information to the Project Community. All presentation materials, proposals, meeting minutes and/or supporting documents are published by OCP and are open to the public in accordance to OCP's Bylaws and IP Policy. This can be found on the OCP OCP Policies page. If you have any questions please contact OCP.

Documents

- NICs for Hyperscale Deployments: 2021 OCP Global Summit introductory presentation

Topics

The area is open for innovation, and new topics are encouraged.

The current list of active topics are

Telemetry

Define a standard set of network device and queue statistics, with standard names and unambiguous definition of each statistic's meaning.

For Linux based deployments, this builds on and extends the standard rtnl_link_stats64 and replaces much of the free-form current driver interface exposed through ethtool -S.

Traffic Engineering

Standardize state-of-the-art TE mechanisms.

Develop common support for stateless generic tunneling offload: combine TCP segmentation offload (an indispensible offload for many workloads) with arbitrary tunnel protocols, instead of building an offload for each tunnel protocol. Because hyperscalers may use protocols, protocol stacks and protocol variants --proprietary or not-- that the vendor cannot always anticipate.

Develop industry standard support for Earliest Departure Time (EDT) stateless rate limiting offload.

Flow Steering

Device queues are the basis for scalable networking, as well as task isolation and userspace queues.

Define

  1. a common interface for configuring devices queues and RSS groups, including dynamically without device down.
  2. a common interface for steering flows to queue (groups), including expectations on datapath performance and scalability.

Additionally, define

  1. a common queue interface for userspace network stacks like DPDK and Google SNAP.

=HW Crypto

TLS, QUIC, IPSec and other cryptographic protocols cover a huge fraction of all traffic.

Hardware support for offload of these and other protocols is uneven.

Define key requirements, such as support for specific cryptographic algorithms like ChaCha2020-Poly1305, specific protocols such as QUIC and resulting requiremnts, such as framing and stream re-synchronization.

Current protocols under active work are

  1. QUIC: rfc 9000
  2. PSP: scalable tunnel and transport mode protocol developed at Google (spec on github)

Time Measurement

Expand hardware capabilities from PTP to include high-rate, high-precision timestamps on every packet. Both Rx and Tx.

Accurate time measurement is essential to advanced congestion control (e.g., Swift and fleetwide health measurement and even applications such as a globally distributed database (Spanner), among potentially others.

Project Leadership

Incubation Committee Representative

- Jason Forrester (Target)

Sub-Project Leads

- Jakub Kicinski (Meta)
- Willem de Bruijn (Google)

Get Involved

- Main Networking Project Mailing List
- OCP website
- OCP Calendar

Regular Project Calls

TBD

This page has:

- the agenda for upcoming calls
- complete information on how to join the call
- minutes from past calls.

Recordings from Past Calls

Specs and Designs

Link to the Specs and Designs page -http://www.opencompute.org/wiki/Networking/SpecsAndDesigns

Past Workshops