swXtch API

Prev Next

The swXtch API base URL is http://{swXtch-ctrl-ip}:{port}

Services

services

  • Returns information about available service endpoints.

Endpoint:

<base_url>/swx/services

Request:

Empty

Response:

text/html

Example Response →

$ curl localhost/swx/services
SWXTCH SERVICES API
/install/swx-bridge-1.0.0-centos9-1.x86_64.rpm                                                      Download latest swx-bridge-1.0.0-centos9-1.x86_64.rpm package
/install/swx-bridge-1.0.0-centos9-1.x86_64.rpm.sig.b64                                              Download signature file swx-bridge-1.0.0-centos9-1.x86_64.rpm.sig.b64
/install/swx-bridge-docker.tar.gz                                                                   Download latest swx-bridge-docker.tar.gz package
/install/swx-bridge-docker.tar.gz.sig.b64                                                           Download signature file swx-bridge-docker.tar.gz.sig.b64
/install/swx-bridge_1.0.0_ubuntu20.04_amd64.deb                                                     Download latest swx-bridge_1.0.0_ubuntu20.04_amd64.deb package
/install/swx-bridge_1.0.0_ubuntu20.04_amd64.deb.sig.b64                                             Download signature file swx-bridge_1.0.0_ubuntu20.04_amd64.deb.sig.b64
/install/swx-bridge_1.0.0_ubuntu24.04_amd64.deb                                                     Download latest swx-bridge_1.0.0_ubuntu24.04_amd64.deb package
/install/swx-bridge_1.0.0_ubuntu24.04_amd64.deb.sig.b64                                             Download signature file swx-bridge_1.0.0_ubuntu24.04_amd64.deb.sig.b64
/install/swx-dpdk-kmods.tar.xz                                                                      Download latest swx-dpdk-kmods.tar.xz package
/install/swx-dpdk-kmods.tar.xz.sig.b64                                                              Download signature file swx-dpdk-kmods.tar.xz.sig.b64
/install/swx-dpdk-perf                                                                              Download latest swx-dpdk-perf package
/install/swx-dpdk-perf.sig.b64                                                                      Download signature file swx-dpdk-perf.sig.b64
/install/swx-tools-1.0.0-centos8-1.x86_64.rpm                                                       Download latest swx-tools-1.0.0-centos8-1.x86_64.rpm package
/install/swx-tools-1.0.0-centos8-1.x86_64.rpm.sig.b64                                               Download signature file swx-tools-1.0.0-centos8-1.x86_64.rpm.sig.b64
/install/swx-tools-1.0.0-centos9-1.x86_64.rpm                                                       Download latest swx-tools-1.0.0-centos9-1.x86_64.rpm package
/install/swx-tools-1.0.0-centos9-1.x86_64.rpm.sig.b64                                               Download signature file swx-tools-1.0.0-centos9-1.x86_64.rpm.sig.b64
/install/swx-tools_1.0.0_ubuntu20.04_amd64.deb                                                      Download latest swx-tools_1.0.0_ubuntu20.04_amd64.deb package
/install/swx-tools_1.0.0_ubuntu20.04_amd64.deb.sig.b64                                              Download signature file swx-tools_1.0.0_ubuntu20.04_amd64.deb.sig.b64
/install/swx-tools_1.0.0_ubuntu22.04_amd64.deb                                                      Download latest swx-tools_1.0.0_ubuntu22.04_amd64.deb package
/install/swx-tools_1.0.0_ubuntu22.04_amd64.deb.sig.b64                                              Download signature file swx-tools_1.0.0_ubuntu22.04_amd64.deb.sig.b64
/install/swx-tools_1.0.0_ubuntu24.04_amd64.deb                                                      Download latest swx-tools_1.0.0_ubuntu24.04_amd64.deb package
/install/swx-tools_1.0.0_ubuntu24.04_amd64.deb.sig.b64                                              Download signature file swx-tools_1.0.0_ubuntu24.04_amd64.deb.sig.b64
/install/swx-wxckedeye-docker.tar.gz                                                                Download latest swx-wxckedeye-docker.tar.gz package
/install/swx-wxckedeye-docker.tar.gz.sig.b64                                                        Download signature file swx-wxckedeye-docker.tar.gz.sig.b64
/install/swx-xnic-1.0.0-centos8-1.x86_64.rpm                                                        Download latest swx-xnic-1.0.0-centos8-1.x86_64.rpm package
/install/swx-xnic-1.0.0-centos8-1.x86_64.rpm.sig.b64                                                Download signature file swx-xnic-1.0.0-centos8-1.x86_64.rpm.sig.b64
/install/swx-xnic-1.0.0-centos9-1.x86_64.rpm                                                        Download latest swx-xnic-1.0.0-centos9-1.x86_64.rpm package
/install/swx-xnic-1.0.0-centos9-1.x86_64.rpm.sig.b64                                                Download signature file swx-xnic-1.0.0-centos9-1.x86_64.rpm.sig.b64
/install/swx-xnic-1.0.0-x86_64.msi                                                                  Download latest swx-xnic-1.0.0-x86_64.msi package
/install/swx-xnic-1.0.0-x86_64.msi.sig.b64                                                          Download signature file swx-xnic-1.0.0-x86_64.msi.sig.b64
/install/swx-xnic_1.0.0_ubuntu20.04_amd64.deb                                                       Download latest swx-xnic_1.0.0_ubuntu20.04_amd64.deb package
/install/swx-xnic_1.0.0_ubuntu20.04_amd64.deb.sig.b64                                               Download signature file swx-xnic_1.0.0_ubuntu20.04_amd64.deb.sig.b64
/install/swx-xnic_1.0.0_ubuntu22.04_amd64.deb                                                       Download latest swx-xnic_1.0.0_ubuntu22.04_amd64.deb package
/install/swx-xnic_1.0.0_ubuntu22.04_amd64.deb.sig.b64                                               Download signature file swx-xnic_1.0.0_ubuntu22.04_amd64.deb.sig.b64
/install/swx-xnic_1.0.0_ubuntu24.04_amd64.deb                                                       Download latest swx-xnic_1.0.0_ubuntu24.04_amd64.deb package
/install/swx-xnic_1.0.0_ubuntu24.04_amd64.deb.sig.b64                                               Download signature file swx-xnic_1.0.0_ubuntu24.04_amd64.deb.sig.b64
/install/timebeat-2.1.4-amd64.deb                                                                   Download latest timebeat-2.1.4-amd64.deb package
/install/timebeat-2.1.4-amd64.deb.sig.b64                                                           Download signature file timebeat-2.1.4-amd64.deb.sig.b64
/install/timebeat-2.1.4-windows-x86_64.zip                                                          Download latest timebeat-2.1.4-windows-x86_64.zip package
/install/timebeat-2.1.4-windows-x86_64.zip.sig.b64                                                  Download signature file timebeat-2.1.4-windows-x86_64.zip.sig.b64
/install/timebeat-2.1.4-x86_64.rpm                                                                  Download latest timebeat-2.1.4-x86_64.rpm package
/install/timebeat-2.1.4-x86_64.rpm.sig.b64                                                          Download signature file timebeat-2.1.4-x86_64.rpm.sig.b64
/install/wXckedEye.tgz                                                                              Download latest wXckedEye.tgz package
/install/wXckedEye.tgz.sig.b64                                                                      Download signature file wXckedEye.tgz.sig.b64
/install/api.sh                                                                                     Download script api.sh
/install/api.sh.sig.b64                                                                             Download signature file api.sh.sig.b64
/install/assets.sh                                                                                  Download script assets.sh
/install/assets.sh.sig.b64                                                                          Download signature file assets.sh.sig.b64
/install/distro.sh                                                                                  Download script distro.sh
/install/distro.sh.sig.b64                                                                          Download signature file distro.sh.sig.b64
/install/docker.sh                                                                                  Download script docker.sh
/install/docker.sh.sig.b64                                                                          Download signature file docker.sh.sig.b64
/install/logging.sh                                                                                 Download script logging.sh
/install/logging.sh.sig.b64                                                                         Download signature file logging.sh.sig.b64
/install/packager.sh                                                                                Download script packager.sh
/install/packager.sh.sig.b64                                                                        Download signature file packager.sh.sig.b64
/install/swx-bridge-install.sh                                                                      Download script swx-bridge-install.sh
/install/swx-bridge-install.sh.sig.b64                                                              Download signature file swx-bridge-install.sh.sig.b64
/install/swx-dpdk-driver-toolkit.sh                                                                 Download script swx-dpdk-driver-toolkit.sh
/install/swx-dpdk-driver-toolkit.sh.sig.b64                                                         Download signature file swx-dpdk-driver-toolkit.sh.sig.b64
/install/swx-dpdk-perf-install.sh                                                                   Download script swx-dpdk-perf-install.sh
/install/swx-dpdk-perf-install.sh.sig.b64                                                           Download signature file swx-dpdk-perf-install.sh.sig.b64
/install/swx-hugepages-toolkit.sh                                                                   Download script swx-hugepages-toolkit.sh
/install/swx-hugepages-toolkit.sh.sig.b64                                                           Download signature file swx-hugepages-toolkit.sh.sig.b64
/install/swx-tools-install.sh                                                                       Download script swx-tools-install.sh
/install/swx-tools-install.sh.sig.b64                                                               Download signature file swx-tools-install.sh.sig.b64
/install/swx-xnic-install.ps1                                                                       Download script swx-xnic-install.ps1
/install/swx-xnic-install.ps1.sig.b64                                                               Download signature file swx-xnic-install.ps1.sig.b64
/install/swx-xnic-install.sh                                                                        Download script swx-xnic-install.sh
/install/swx-xnic-install.sh.sig.b64                                                                Download signature file swx-xnic-install.sh.sig.b64
/install/swx-xnic-instance-install.ps1                                                              Download script swx-xnic-instance-install.ps1
/install/swx-xnic-instance-install.ps1.sig.b64                                                      Download signature file swx-xnic-instance-install.ps1.sig.b64
/install/swx-xnic-k8s-install.sh                                                                    Download script swx-xnic-k8s-install.sh
/install/swx-xnic-k8s-install.sh.sig.b64                                                            Download signature file swx-xnic-k8s-install.sh.sig.b64
/install/swxtch-update-linux-cmdline.sh                                                             Download script swxtch-update-linux-cmdline.sh
/install/swxtch-update-linux-cmdline.sh.sig.b64                                                     Download signature file swxtch-update-linux-cmdline.sh.sig.b64
/install/swxtch.crt                                                                                 Download script swxtch.crt
/install/swxtch.crt.sig.b64                                                                         Download signature file swxtch.crt.sig.b64
/install/tachyon-live-install.sh                                                                    Download script tachyon-live-install.sh
/install/tachyon-live-install.sh.sig.b64                                                            Download signature file tachyon-live-install.sh.sig.b64
/install/timebeat-client-install.ps1                                                                Download script timebeat-client-install.ps1
/install/timebeat-client-install.ps1.sig.b64                                                        Download signature file timebeat-client-install.ps1.sig.b64
/install/timebeat-client-install.sh                                                                 Download script timebeat-client-install.sh
/install/timebeat-client-install.sh.sig.b64                                                         Download signature file timebeat-client-install.sh.sig.b64
/install/timebeat-server-install.sh                                                                 Download script timebeat-server-install.sh
/install/timebeat-server-install.sh.sig.b64                                                         Download signature file timebeat-server-install.sh.sig.b64
/install/timebeat-setup.sh                                                                          Download script timebeat-setup.sh
/install/timebeat-setup.sh.sig.b64                                                                  Download signature file timebeat-setup.sh.sig.b64
/install/timebeat.sh                                                                                Download script timebeat.sh
/install/timebeat.sh.sig.b64                                                                        Download signature file timebeat.sh.sig.b64
/install/tools.sh                                                                                   Download script tools.sh
/install/tools.sh.sig.b64                                                                           Download signature file tools.sh.sig.b64
/install/xnic_ds_installer.sh                                                                       Download script xnic_ds_installer.sh
/install/xnic_ds_installer.sh.sig.b64                                                               Download signature file xnic_ds_installer.sh.sig.b64

services/install/{fileName}

  • Downloads installer packages (DEB/RPM) or scripts.

Endpoint:

<base_url>/swx/services/install/{fileName}

Parameters:

  • fileName (path) - Name of the file to download

Response:

  • .deb files: application/vnd.debian.binary-package

  • .rpm files: application/x-rpm

  • Scripts: application/x-sh or text/plain

Example Response →

This endpoint allows the user to download, for example, the installation scripts:

$ curl http://172.51.128.132/swx/services/install/swx-xnic-install.sh
#!/usr/bin/env bash
# xnic installation log name
_INSTALL_LOG_NAME="swx-xnic-install.log"
# Requiring uninstall the current version of xnic
_UNINSTALL_ONLY="false"
# Type of xnic to install
_TYPE_TO_INSTALL=0
# public key name
_PBKEY=./sig_public.pem
# use this nic as xnic ctrl iface
_CTRL_INTERFACE_NAME=""
# use this nic as xnic data iface
_DATA_INTERFACE_NAME=""
# Configure the xnic to override the src ip of the traffic.
_OVERRIDE_SRC_IP="false"
# if install ptp services
_PTP_INSTALL="false"
# verify the signature of the downloaded assets
_VERIFY_SIGNATURE="false"
# xnic logs root path
_LOGS_ROOT_PATH="/var/log/swxtch"
# path where find xnic services
_SERVICES_ROOT_PATH="/lib/systemd/system"
# root path of xnic files
_CONFIG_ROOT_PATH="/var/opt/swxtch"
# xnic config file name
.
.

services/install/{fileName}.sig.b64

  • Downloads the cryptographic signature for the installer files.

Endpoint:

<base_url>/swx/services/install/{fileName}.sig.b64

Parameters:

  • fileName (path) - Base name of the signed file

Response:

application/octet-stream - Base64 encoded signature

Example Response →

$ curl http://172.51.128.132/swx/services/install/swx-xnic-install.sh.sig.b64
RYKbbuTJmK+UEpAOZVIMGrRr3mDI7IsqZ8pbL85FRMjh0xTPVSj+eEqFe9v46uN9
srQ+nujd1zeCFxMp0p6Ntr2UhAXIcuG8o8DbC6rC4Zu1K/e4gsgf70eO1gfjbDqg
cOsZx/MomoIB+Stdc3k40fwmZ3efYr4BoMEwbWxn9ndMYK6G1y4+UEL1d0oB+uhX
3biEu7t6cuzCP5LZIjgrp21ft8g7oZ2m2XYtevv/zInjTZbsT2OMUCjRhu9jyHy2
lWfGSioOk966bvSRseok0glOqdZPEQorzHN/lQMyBLB8ueIi/u44PbzXZSi4ldmV
2DYuQVQe4BSnJ8CFz35Rs/NFDm7b7UGVAavJGEBAu8el6zJlwB5jiYGJVQbKiuy6
MnIzuOClVoHYHq9/uwGa97zpLiux5WJLHDyfVnPyDtbE61dyQhugn70+ZDhSI7HP
yrIs7p5shNjKUfD4RYogigElID8W2VRmWxzyvf7wWP8WD8KvOj2qovvbIMMbXUdW
r7j9pOVTgCEsZxVjhZRJGu79qZV91LBL0hu/ElPmORmO3BlumgVXqgd0UFrt+9Ua
XF4HeTOGekxHon12Jue7cD+WirncRCwAcq/85tst/xrYE3GlpNgVViFejS7S/A/A

services/timebeatLicense

  • Downloads the Timebeat license file for PTP clock synchronization.

Endpoint:

<base_url>/swx/services/timebeatLicense

Request:

Empty

Response:

text/plain

Content-Disposition: attachment; filename=timebeat.lic

Error Responses:

  • 400 - PTP entitlement not enabled

  • 404 - License file not found

Example Response →

This is a sample of what the user can get when the license is not available:

$ curl http://172.51.128.132/swx/services/timebeatLicense
{"errorMessage":"Timebeat license file not found. Please verify your license."}

services/checksum

  • Returns the calculated SHA256 checksum for installer assets.

Endpoint:

<base_url>/swx/services/checksum

Request:

json / { "assetName": "installer-package.deb" }

Response:

json

Example Response →

$ curl http://172.51.128.132/swx/services/checksum -d '{ "assetName": "swx-xnic_1.0.0_ubuntu24.04_amd64.deb" }'
{"assetName":"swx-xnic_1.0.0_ubuntu24.04_amd64.deb","hash":"0d8b3bbb544085231f180cecf92867c3e210c5f7158a026816be67d976628097"}

services/version

  • Returns the software version and build information.

Endpoint:

<base_url>/swx/services/version

Request:

Empty

Response:

json

Example Response →

$ curl http://172.51.128.132/swx/services/version
{
    "Version": "v4.0.0",
    "Commit": "8c867c976174e7f15c843d7c8d54692362da17d1",
    "Date": "20250917.172748"
}

Adaptors

adaptors/add

  • Add new unicast adaptor (Protocols) configuration.

Endpoint:

<base_url>/swx/adaptors/add

Request:

json

{
  "protocolCode": "udp",
  "directionCode": "ingress",
  "streamIp": "239.1.1.1",
  "streamPort": 5000,
  "socketIp": "10.0.1.100",
  "socketPort": 5001,
  "listenerPort": 6000,
  "options": [
    {
      "name": "bufferSize",
      "value": "65536"
    },
    {
      "name": "ttl", 
      "value": "64"
    }
  ]
}

Response:

json / { "id": "adaptor-uuid-123" }

Error Responses:

  • 400 - Fanout not enabled or validation failed

  • 409 - Adaptor already exists

Example Response →

$ curl 172.51.128.132/swx/adaptors/add -d '{
  "protocolCode": "udp",
  "directionCode": "ingress",
  "streamIp": "239.1.1.1",
  "streamPort": 5000,
  "socketIp": "10.0.1.100",
  "socketPort": 5001,
  "listenerPort": 6000,
  "options": [
    {
      "name": "bufferSize",
      "value": "65536"
    },
    {
      "name": "ttl",
      "value": "64"
    }
  ]
}'
{"id":"12415546857077395231"}


adaptors/remove

  • Removes one or more adaptor configurations.

Endpoint:

<base_url>/swx/adaptors/remove

Request:

json / { "ids": ["adaptor-uuid-123", "adaptor-uuid-456"] }

Response:

  • 200 - Success (no body)

  • json / {"errorCode":12005,"errorMessage":"The given adaptors don't exist.","data":"adaptor-uuid-123"}

Example Response →

$ curl 172.51.128.132/swx/adaptors/remove -d '{ "ids": [ "12415546857077395231" ] }'
$

adaptors/show

  • Returns the list of current adaptors configuration.

Endpoint:

<base_url>/swx/adaptors/show

Request:

Empty

Response:

json

{
  "adaptors": {
    "adaptor-uuid-123": {
      "id": "adaptor-uuid-123",
      "protocolCode": "udp",
      "directionCode": "ingress",
      "streamIp": "239.1.1.1",
      "streamPort": 5000,
      "socketIp": "10.0.1.100",
      "socketPort": 5001,
      "listenerPort": 6000,
      "options": [
        {
          "name": "bufferSize",
          "value": "65536"
        }
      ]
    }
  }
}

Example Response →

$ curl 172.51.128.132/swx/adaptors/show
{"adaptors":{"3875045238777959178":{"id":"3875045238777959178","protocolCode":"udp","directionCode":"ingress","streamIp":"239.1.1.1","streamPort":5000,"socketIp":"10.0.1.100","socketPort":5001,"listenerPort":6000,"options":[{"name":"bufferSize","value":"65536"},{"name":"ttl","value":"64"}]},"9444164746505921829":{"id":"9444164746505921829","protocolCode":"udp","directionCode":"ingress","streamIp":"239.1.1.1","streamPort":10020,"socketIp":null,"socketPort":null,"listenerPort":10021,"options":[]}}}

adaptors/state

  • Returns the runtime statistics for all adaptors.

Endpoint:

<base_url>/swx/adaptors/state

Request:

Empty

Response:

json

{
  "adaptor-uuid-123": {
    "id": "adaptor-uuid-123",
    "isConnected": true,
    "isActive": true,
    "stats": {
      "239.1.1.1:5000": {
        "packets": 1000000,
        "bytes": 1500000000,
        "packetsRate": 1000,
        "bytesRate": 1500000,
        "timestamp": 1642248600,
        "protocolId": 1,
        "protocolName": "UDP"
      }
    },
    "config": {
      "id": "adaptor-uuid-123",
      "protocolCode": "udp",
      "directionCode": "ingress"
    }
  }
}

Example Response →

$ curl 172.51.128.132/swx/adaptors/state
{"3875045238777959178":{"id":"3875045238777959178","isConnected":false,"isActive":false,"stats":{},"config":{"id":"3875045238777959178","protocolCode":"udp","directionCode":"ingress","streamIp":"239.1.1.1","streamPort":5000,"socketIp":"10.0.1.100","socketPort":5001,"listenerPort":6000,"options":[{"name":"bufferSize","value":"65536"},{"name":"ttl","value":"64"}]}},"9444164746505921829":{"id":"9444164746505921829","isConnected":false,"isActive":false,"stats":{},"config":{"id":"9444164746505921829","protocolCode":"udp","directionCode":"ingress","streamIp":"239.1.1.1","streamPort":10020,"socketIp":null,"socketPort":null,"listenerPort":10021,"options":[]}}}

adaptors/update

  • Update existing adaptor configuration.

NOTE

Only SRT adaptros that are currently in use can be updated. Also, only the POST type. For a complete list

Endpoint:

<base_url>/swx/adaptors/update

Request:

json

{
  "id": "adaptor-uuid-123",
  "options": [
    {
      "name": "bufferSize",
      "value": "131072"
    },
    {
      "name": "ttl",
      "value": "32"
    }
  ]
}

Response:

  • 200 - Success (no body)

  • json / {"errorCode":12005,"errorMessage":"The given adaptors don't exist.","data":null}

Example Response →

$ curl 172.51.128.132/swx/adaptors/update -d '{
  "id": "3875045238777959178",
  "options": [
    {
      "name": "bufferSize",
      "value": "131072"
    },
    {
      "name": "ttl",
      "value": "32"
    }
  ]
}'