Files
Xen-Orchestra-xen-orchestra…/packages/xo-server-sdn-controller
Bastien Nollet 6a4415ea1d feat: technical release (#10318)
* feat(@vates/nbd-client): 3.5.1

* feat(@vates/types): 2.0.0

* feat(@xen-orchestra/acl): 1.6.1

* feat(@xen-orchestra/backup-archive): 1.1.2

* feat(@xen-orchestra/xapi): 8.10.4

* feat(@xen-orchestra/backups): 0.74.1

* feat(@xen-orchestra/web-core): 0.60.0

* feat(@xen-orchestra/mcp): 1.4.2

* feat(@xen-orchestra/proxy): 0.31.8

* feat(@xen-orchestra/rest-api): 0.39.0

* feat(@xen-orchestra/web): 0.59.0

* feat(xo-server): 5.207.4

* feat(xo-server-ipmi-sensors): 2.1.1

* feat(xo-server-openmetrics): 1.9.1

* feat(xo-server-sdn-controller): 1.5.0

* chore(CHANGELOG): update next
2026-08-28 14:56:02 +02:00
..
2026-06-05 14:12:57 +02:00
2026-08-28 14:56:02 +02:00
2026-06-05 14:12:57 +02:00

xo-server-sdn-controller

Creates pool-wide and cross-pool private networks

Usage

XO Server plugin that allows the creation of pool-wide and cross-pool private networks, a bit similar to XenServer's DVCS.

Please see the plugin's official documentation.

Features

  • create pool-wide or cross-pool private networks
  • add OpenFlow rules to VMs

Architecture

  • private-network: logic for private networks
  • protocol:
    • openflow-channel.js: manages OpenFlow rules
    • ovsdb-client.js: manages private networks
  • utils/tls-helper.js: small class to create connections using TLS

Rest Routes

Some rest api routes are undocumented in the swagger, here is how to use them :

Creates a new rule POST /vifs/{id}/actions/add_traffic_rule :

Fields

Field Type Required Description
allow string (boolean-like) Yes Indicates whether the rule allows or denies traffic. Expected values: "true" or "false".
direction string Yes Traffic direction the rule applies to. Values: "from", "to", "both".
ipRange string Yes IP address or range. Example: "111.168.1.2" or "111.168.1.0/24".
port string No Port or port range. Empty string means all ports. Example: "80" or "1000-2000".
protocol string Yes Network protocol. Common values: "TCP", "UDP", "IP" (any protocol).

Deletes a new rule POST /vifs/{id}/actions/delete_traffic_rule :

Fields

Field Type Required Description
direction string Yes Traffic direction the rule applies to. Values: "from", "to", "both".
ipRange string Yes IP address or range. Example: "111.168.1.2" or "111.168.1.0/24".
port string No Port or port range. Empty string means all ports. Example: "80" or "1000-2000".
protocol string Yes Network protocol. Common values: "TCP", "UDP", "IP" (any protocol).

Creates a new rule at network level POST /networks/{id}/actions/add_traffic_rule :

Fields

Field Type Required Description
allow string (boolean-like) Yes Indicates whether the rule allows or denies traffic. Expected values: "true" or "false".
direction string Yes Traffic direction the rule applies to. Values: "from", "to", "both".
ipRange string Yes IP address or range. Example: "111.168.1.2" or "111.168.1.0/24".
port string No Port or port range. Empty string means all ports. Example: "80" or "1000-2000".
protocol string Yes Network protocol. Common values: "TCP", "UDP", "IP" (any protocol).

Deletes a new rule at network level POST /networks/{id}/actions/delete_traffic_rule :

Fields

Field Type Required Description
direction string Yes Traffic direction the rule applies to. Values: "from", "to", "both".
ipRange string Yes IP address or range. Example: "111.168.1.2" or "111.168.1.0/24".
port string No Port or port range. Empty string means all ports. Example: "80" or "1000-2000".
protocol string Yes Network protocol. Common values: "TCP", "UDP", "IP" (any protocol).

Contributions

Contributions are very welcomed, either on the documentation or on the code.

You may:

  • report any issue you've encountered;
  • fork and create a pull request.

License

AGPL-3.0-or-later © Vates SAS