Skip to content
/ cairn Public

License

Apache-2.0, CC-BY-4.0 licenses found

Licenses found

Apache-2.0
LICENSE
CC-BY-4.0
LICENSE-docs
Notifications You must be signed in to change notification settings

google/cairn

CAIRN: Constraint Aware IR for Networking

CAIRN (Constraint Aware IR for Networking) is a configurable abstract model of packet processing hardware architecture, and an accompanying P4 compiler toolchain targeting this model.

Status

This project is currently under active development, and not feature complete yet.

Development guide

Operating system

The following installation and building scripts have been tested on Ubuntu 22.04. If developing on other OSes, you are on your own to figure out these processes. The easiest way to set up a reproducible development environment is probably using a Docker container.

Installation

Clone this repo and update all submodules:

git clone git@github.com:google/cairn.git
cd cairn
git submodule update --init --recursive

Install dependencies:

./tools/install-dependencies-ubuntu.sh

Build p4c with CAIRN backend:

./tools/build.sh

Usage

At repo root, run:

mkdir -p scratch
p4c-cairn \
  -o scratch/test_out.p4 \
  --showIR \
  compiler/testdata/eth.p4

Disclaimer

This is not an officially supported Google product.

License

This software is distributed under the terms of the Apache License (Version 2.0).

See LICENSE for details.

The non-source code materials in this project are licensed under Creative Commons - Attribution CC-BY 4.0, https://creativecommons.org/licenses/by/4.0/legalcode.

See LICENSE-docs for details.

About

No description, website, or topics provided.

Resources

License

Apache-2.0, CC-BY-4.0 licenses found

Licenses found

Apache-2.0
LICENSE
CC-BY-4.0
LICENSE-docs

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •