/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.

Setup instructions

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.

Meetings to discuss changes to this specification

P4.org architecture work group meetings are held on most Mondays as of 2022. 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.

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.