/pna

Portable NIC Architecture

Primary LanguageP4Apache License 2.0Apache-2.0

Portable NIC Architecture

The contents of this repository are a work in progress, intended to lead towards a published Portable NIC Architecture specification published by P4.org.

Getting started

If you are new to the Portable NIC Architecture, we recommend starting with the 18-minute video Portable NIC Architecture Update to get a quick introduction to the basic ideas.

The latest version of the specification is given by:

HTML and PDF versions of the latest released version, and for the latest working draft versions (udpated within an hour or so after each commit to this repository), can be found on the P4.org specifications page here.

Meetings to discuss changes to this specification

P4.org architecture work group meetings are held on most Mondays as of 2022-2023. See the calendar on the P4.org Working Groups page for dates, times, and instructions for joining the meetings.

Notes from past meetings are maintained in a Google Docs document here. Notes from new meetings are added at the end of the document.

Issues are tracked using Github issues on this repository and suggested changes are made by creating Github pull requests.

Some public files related to the P4.org architecture work group are stored in this Google Drive folder: P4 Architecture Working Group Google Drive folder

In particular, the meeting-recordings sub-folder there contains recordings of some recent meetings. Here is a direct link to that sub-folder: meeting-recordings Google Drive folder

Setup instructions for building specification from source

See the README for the P4_16 language specification for instructions on installing software that enables you to produce HTML and PDF versions of the PNA specification from its Madoko source file.

Spec release process

Note: The following instructions were copied from the corresponding README of the Portable Switch Architecture specification, and may need some modifications when we reach the point of releasing a PNA specification.

  • increment version number in the document and commit
  • merge to master and tag the commit with pna-version (e.g. pna-v0.9)
  • generate the PDF and HTML
  • checkout the gh-pages branch and copy to /docs as PNA-.[html,pdf]
  • update links in /index.html
  • add files, commit and push the gh-pages branch
  • checkout master, change the Title note to (working draft), commit and push

Someday we may write a script to do this.