Skip to content

packets go in, packets go out, you can't explain that

License

Notifications You must be signed in to change notification settings

oxidecomputer/opte

Folders and files

NameName
Last commit message
Last commit date

Latest commit

d870573 Â· Mar 4, 2025
Mar 8, 2024
Mar 4, 2025
Feb 24, 2025
Dec 20, 2024
Nov 19, 2024
Nov 19, 2024
Nov 19, 2024
Feb 21, 2025
Feb 8, 2024
Mar 8, 2024
Dec 20, 2024
Feb 21, 2025
May 21, 2024
Mar 8, 2024
May 2, 2022
Mar 3, 2025
Feb 24, 2025
May 2, 2022
Nov 19, 2024
Jan 23, 2024
Feb 21, 2025
Sep 28, 2022

Repository files navigation

Oxide Packet Transformation Engine

Installation

On helios systems, OPTE can be built and installed using the cargo xtask install command.

For ease of development, the above command will bypass pkg. OPTE can instead be installed from a new IPS package using cargo xtask install --from-package, which may require the --force-package-unfreeze flag if OPTE has been installed as a prerequisite for omicron.

Contributing

Please see the CONTRIBUTING doc if you are interested in contributing to the project.

Tests and performance

While the XDE kernel module runs only on Helios, our test suite and microbenchmarks work on Unix-like development systems.

Helios Linux/Mac/…​

cargo nextest run

cargo nextest run -p opte -p opte-api -p oxide-vpc

cargo build -p xde-tests --tests, pfexec target/debug/deps/loopback-<hash>

N/A

cargo ubench

cargo ubench

cargo kbench

N/A

N/A

cargo +nightly fuzz run parse-in, cargo +nightly fuzz run parse-out

More detail on our benchmarks can be found in bench/README.

Directory Index

dtrace

A collection of DTrace scripts for common tracing and diagnostic processes useful for understanding the runtime behavior of OPTE.

illumos-sys-hdrs

A raw interface to the types and function prototypes in the illumos uts/common/sys headers.

opte

The implementation of the generic bits of OPTE. This acts as both a library and framework which is used as the basis for implementing some type of network. For example, the oxide-vpc crate uses the opte crate to implement the Oxide VPC network.

opte-ioctl

The userland library used for interacting with OPTE.

opteadm

The command line utility used to configure and inspect OPTE. This is meant to be used by an operator, not by a client program.

oxide-vpc

An implementation of the Oxide VPC network.

pkg

A script for generating an IPS package for the xde driver.

xde

A kernel module for running OPTE in the kernel. This module allows OPTE to interface with the system and for clients to interface with OPTE. It currently focuses purely on the Oxide VPC use case.

About

packets go in, packets go out, you can't explain that

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages