* feat(@vates/iscsi): 0.4.0 * feat(@vates/types): 2.5.0 * feat(@xen-orchestra/backups): 0.78.0 * feat(@xen-orchestra/backups-cli): 1.1.18 * feat(@xen-orchestra/disk-cli): 2.2.5 * feat(@xen-orchestra/immutable-backups): 3.0.9 * feat(@xen-orchestra/web-core): 0.65.0 * feat(@xen-orchestra/mixins): 0.23.0 * feat(@xen-orchestra/proxy): 0.34.0 * feat(@xen-orchestra/vmware-explorer): 1.2.0 * feat(@xen-orchestra/qa-test): 1.4.0 * feat(@xen-orchestra/rest-api): 0.41.1 * feat(@xen-orchestra/web): 0.65.0 * feat(xo-server): 5.213.0 * feat(xo-server-sdn-controller): 1.6.0 * feat(xo-web): 5.208.0 * chore(CHANGELOG): update next
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 networksprotocol:openflow-channel.js: manages OpenFlow rulesovsdb-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). |
priority |
number | No | OpenFlow priority, 0 to 65535, unique on the network, highest first. XAPI plugin only. |
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). |
priority |
number | No | The priority of the rule, required when it has one. |
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). |
priority |
number | No | OpenFlow priority, 0 to 65535, unique on the network, highest first. XAPI plugin only. |
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). |
priority |
number | No | The priority of the rule, required when it has one. |
Updates a rule at VIF or network level POST /vifs/{id}/actions/update_traffic_rule : POST /networks/{id}/actions/update_traffic_rule :
Fields
| Field | Type | Required | Description |
|---|---|---|---|
oldRule |
object | Yes | Rule to update: allow, direction, ipRange, protocol, port and priority, if set. |
newRule |
object | Yes | Fields to change, priority included. null removes the port. |
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.