Go to file
2024-04-22 19:14:56 -07:00
builddeps.bash RC1 2024-04-08 05:45:32 +00:00
cmd_encoder.c Release candidate 2024-04-02 04:59:26 +00:00
cmd_encoder.h Release candidate 2024-04-02 04:59:26 +00:00
completion.bash Release candidate 2024-04-02 04:59:26 +00:00
ctrl_handler.c Release candidate 2024-04-02 04:59:26 +00:00
ctrl_handler.h Release candidate 2024-04-02 04:59:26 +00:00
Doxyfile Release candidate 2024-04-02 04:59:26 +00:00
emapi_handler.c Release candidate 2024-04-02 04:59:26 +00:00
emapi_handler.h Release candidate 2024-04-02 04:59:26 +00:00
fmapi_handler.c qemu support code added 2024-04-22 19:14:56 -07:00
fmapi_handler.h Release candidate 2024-04-02 04:59:26 +00:00
LICENSE RC1 2024-04-08 05:45:32 +00:00
main.c qemu support code added 2024-04-22 19:14:56 -07:00
Makefile qemu support code added 2024-04-22 19:14:56 -07:00
options.c qemu support code added 2024-04-22 19:14:56 -07:00
options.h Release candidate 2024-04-02 04:59:26 +00:00
README.md RC1 2024-04-08 05:45:32 +00:00
testbench.bash Release candidate 2024-04-02 04:59:26 +00:00

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