Skip to content

JackrabbitLabs/jack

Repository files navigation

Overview

Jack is a CLI tool that implements the CXL 2.0 Fabric Management API specification. It is intended to be used to configure and monitor CXL compliant hardware devices such as switches, accelerators or memory controllers.

Supported Operating System Versions

  • Ubuntu 23.10
  • Fedora 38, 39

Note: Ubuntu 22.04 is not supported. This is due to some newer PCI features that are missing from the 5.15 Linux kernel that ships with Ubuntu 22.04.

Building

  1. Install OS libraries

Install the following build packages to compile the software on the following operating systems.

Ubuntu:

apt install build-essential libglib2.0-dev libyaml-dev libpci-dev

Fedora:

  1. Build Dependencies

To clone and build dependencies run:

./builddeps.bash
  1. Build

After building the required dependencies run:

make

Usage

Jack connects to a target device using MCTP over TCP. When using Jack with an endpoint such as CSE (CXL Switch Emulator), the user first starts the CSE application using a config file that defines a virtualized CXL switch environment with the following command.

cse -lc config.yaml

Once the target endpoint is running, Jack can be used to query or configure the CXL endpoint.

Example Commands

To obtain identity information about the endpoint:

jack show id

To obtain information about the capabilities of the endpoint:

jack show switch

To show the status of the ports of the endpoint use show port. This displays the devices that are connected to the endpoint.

jack show port

To show information about what ports are connected to a Virtual CXL Switch (VCS).

jack show vcs 0

To unbind a port (or a Logical Device) from a VCS:

jack port unbind -c 0 -b 4

To bind a port (or a Logical Device) to a VCS:

jack port bind -p 4 -l 0 -c 0 -b 4

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published