<packaging>bundle</packaging>
<properties>
- <!-- used for filtering the integration test resource -->
- <ovsdbserver.ipaddress>192.168.56.10</ovsdbserver.ipaddress>
- <ovsdbserver.port>6640</ovsdbserver.port>
<skip.integrationtest>true</skip.integrationtest>
</properties>
<dependencies>
});
//for (int i = 0; i < 5 && results.isEmpty(); i++) { //wait 5 seconds to get a result
- for (int i = 0; i < 500 ; i++) { //wait 5 seconds to get a result
+ for (int i = 0; i < 5 ; i++) { //wait 5 seconds to get a result
System.out.println("waiting");
Thread.sleep(1000);
}
import io.netty.util.CharsetUtil;
import java.io.IOException;
-import java.io.InputStream;
import java.net.InetAddress;
import java.util.Properties;
import java.util.concurrent.ExecutionException;
+import junit.framework.Assert;
+
import org.opendaylight.ovsdb.lib.jsonrpc.JsonRpcDecoder;
import org.opendaylight.ovsdb.lib.jsonrpc.JsonRpcEndpoint;
import org.opendaylight.ovsdb.lib.jsonrpc.JsonRpcServiceBinderHandler;
import com.fasterxml.jackson.databind.ObjectMapper;
public abstract class OvsdbTestBase implements OvsdbRPC.Callback{
- private final static String identifier = "TEST";
-
- public Properties loadProperties() throws IOException {
- InputStream is = this
- .getClass()
- .getClassLoader()
- .getResourceAsStream(
- "org/opendaylight/ovsdb/lib/message/integration-test.properties");
- if (is == null) {
- throw new IOException("Unable to load integration-test.properties");
- }
- Properties props = new Properties();
- props.load(is);
+ private final static String SERVER_IPADDRESS = "ovsdbserver.ipaddress";
+ private final static String SERVER_PORT = "ovsdbserver.port";
+ private final static String DEFAULT_SERVER_PORT = "6640";
+ public Properties loadProperties() {
+ Properties props = new Properties(System.getProperties());
return props;
}
public OvsdbRPC getTestConnection() throws IOException {
Properties props = loadProperties();
- String address = props.getProperty("ovsdbserver.ipaddress");
- String port = props.getProperty("ovsdbserver.port", "6640");
+ String address = props.getProperty(SERVER_IPADDRESS);
+ String port = props.getProperty(SERVER_PORT, DEFAULT_SERVER_PORT);
+ if (address == null) {
+ Assert.fail("Integration Test requires a valid ovsdbserver.ipaddress value.\n" +
+ "Usage : mvn -Pintegrationtest -Dovsdbserver.ipaddress=x.x.x.x -Dovsdbserver.port=yyyy verify");
+ }
Channel channel = this.connect(address, port);
if (channel == null) {
- throw new IOException("Failed to connecto to ovsdb server");
+ throw new IOException("Failed to connect to ovsdb server");
}
try {
return this.handleNewConnection(channel);
+++ /dev/null
-ovsdbserver.ipaddress=192.168.111.135
-ovsdbserver.port=5000
\ No newline at end of file
<properties>
<!-- used for filtering the integration test resource -->
- <ovsdbserver.ipaddress>192.168.56.10</ovsdbserver.ipaddress>
- <ovsdbserver.port>6640</ovsdbserver.port>
<skip.integrationtest>true</skip.integrationtest>
</properties>
<dependencies>
package org.opendaylight.ovsdb.plugin;
import java.io.IOException;
-import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
+import junit.framework.Assert;
+
import org.opendaylight.controller.sal.connection.ConnectionConstants;
import org.opendaylight.controller.sal.core.Node;
import org.opendaylight.controller.sal.core.NodeConnector;
public abstract class OvsdbTestBase {
private final static String identifier = "TEST";
+ private final static String SERVER_IPADDRESS = "ovsdbserver.ipaddress";
+ private final static String SERVER_PORT = "ovsdbserver.port";
+ private final static String DEFAULT_SERVER_PORT = "6640";
public Properties loadProperties() throws IOException {
- InputStream is = this
- .getClass()
- .getClassLoader()
- .getResourceAsStream(
- "org/opendaylight/ovsdb/lib/message/integration-test.properties");
- if (is == null) {
- throw new IOException("Unable to load integration-test.properties");
- }
- Properties props = new Properties();
- props.load(is);
-
+ Properties props = new Properties(System.getProperties());
return props;
}
}
public TestObjects getTestConnection() throws IOException {
+ Properties props = loadProperties();
+ String address = props.getProperty(SERVER_IPADDRESS);
+ String port = props.getProperty(SERVER_PORT, DEFAULT_SERVER_PORT);
+
+ if (address == null) {
+ Assert.fail("Usage : mvn -Pintegrationtest -Dovsdbserver.ipaddress=x.x.x.x -Dovsdbserver.port=yyyy verify");
+ }
+
Node.NodeIDType.registerIDType("OVS", String.class);
NodeConnector.NodeConnectorIDType.registerIDType("OVS", String.class,
"OVS");
connectionService.setInventoryServiceInternal(inventoryService);
Map<ConnectionConstants, String> params = new HashMap<ConnectionConstants, String>();
- Properties props = loadProperties();
- params.put(ConnectionConstants.ADDRESS,
- props.getProperty("ovsdbserver.ipaddress"));
- params.put(ConnectionConstants.PORT,
- props.getProperty("ovsdbserver.port", "6640"));
+
+ params.put(ConnectionConstants.ADDRESS, address);
+ params.put(ConnectionConstants.PORT, port);
Node node = connectionService.connect(identifier, params);
if (node == null) {
import org.junit.Test;
import org.opendaylight.controller.sal.core.Node;
-import org.opendaylight.controller.sal.core.NodeConnector;
-import org.opendaylight.controller.sal.connection.ConnectionConstants;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.util.HashMap;
-import java.util.Map;
-
-public class OvsdbTestDeletePortIT {
+public class OvsdbTestDeletePortIT extends OvsdbTestBase {
private static final Logger logger = LoggerFactory
.getLogger(OvsdbTestAddPortIT.class);
@Test
public void deletePort() throws Throwable{
- Node.NodeIDType.registerIDType("OVS", String.class);
- NodeConnector.NodeConnectorIDType.registerIDType("OVS", String.class, "OVS");
-
- ConnectionService connectionService = new ConnectionService();
- connectionService.init();
- String identifier = "TEST";
- Map<ConnectionConstants, String> params = new HashMap<ConnectionConstants, String>();
- params.put(ConnectionConstants.ADDRESS, "10.12.0.78");
- params.put(ConnectionConstants.PORT, "6634");
+ TestObjects testObjects = getTestConnection();
+ ConnectionService connectionService = testObjects.connectionService;
+ Node node = testObjects.node;
- Node node = connectionService.connect(identifier, params);
- if(node == null){
- logger.error("Could not connect to ovsdb server");
- return;
- }
/**
* Deletes an existing port from an existing bridge
* Ex. ovs-vsctl del-port ovsbr0 tap0
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-
-<configuration>
-
- <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
- <!-- encoders are assigned the type
- ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
- <encoder>
- <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n</pattern>
- </encoder>
- </appender>
-
- <logger name="org.opendaylight.ovsdb.lib.jsonrpc.JsonRpcEndpoint" level="TRACE" additivity="false">
- <appender-ref ref="STDOUT" />
- </logger>
-
- <!--<logger name="com.lordofthejars.foo" level="INFO" additivity="false">-->
- <!--<appender-ref ref="STDOUT" />-->
- <!--</logger>-->
-
- <root level="INFO">
- <appender-ref ref="STDOUT" />
- </root>
-
-</configuration>
\ No newline at end of file
+++ /dev/null
-ovsdbserver.ipaddress=192.168.111.135
-ovsdbserver.port=5000
\ No newline at end of file
+++ /dev/null
-{
- "Bridge": {
- "788de61c-0e4f-43d8-a068-259e75aabbba": {
- "new": {
- "controller": [
- "set",
- []
- ],
- "fail_mode": [
- "set",
- []
- ],
- "name": "br0",
- "ports": [
- "set",
- [
- [
- "uuid",
- "f6018e7a-7ca5-4e72-a744-a9b434f47011"
- ],
- [
- "uuid",
- "fe3c89fd-2ff3-44d8-9f27-f9c7ac2a693d"
- ]
- ]
- ]
- }
- }
- },
- "Port": {
- "f6018e7a-7ca5-4e72-a744-a9b434f47011": {
- "new": {
- "interfaces": [
- "uuid",
- "13548b08-dca3-4d4b-9e9b-f50c237dcb9e"
- ],
- "name": "vif0",
- "tag": [
- "set",
- []
- ],
- "trunks": [
- "set",
- []
- ]
- }
- },
- "fe3c89fd-2ff3-44d8-9f27-f9c7ac2a693d": {
- "new": {
- "interfaces": [
- "uuid",
- "88ae29fb-8c91-41a9-a14f-a74126e790c0"
- ],
- "name": "br0",
- "tag": [
- "set",
- []
- ],
- "trunks": [
- "set",
- []
- ]
- }
- }
- },
- "Interface": {
- "13548b08-dca3-4d4b-9e9b-f50c237dcb9e": {
- "new": {
- "name": "vif0",
- "options": [
- "map",
- [["remote_ip","192.168.1.165"]]
- ],
- "type": ""
- }
- },
- "88ae29fb-8c91-41a9-a14f-a74126e790c0": {
- "new": {
- "name": "br0",
- "options": [
- "map",
- []
- ],
- "type": "internal"
- }
- }
- }
-
-}
+++ /dev/null
-{
- "Bridge": {
- "788de61c-0e4f-43d8-a068-259e75aabbba": {
- "new": {
- "controller": [
- "set",
- []
- ],
- "fail_mode": [
- "set",
- []
- ],
- "name": "br0",
- "ports": [
- "set",
- [
- [
- "uuid",
- "f6018e7a-7ca5-4e72-a744-a9b434f47011"
- ],
- [
- "uuid",
- "fe3c89fd-2ff3-44d8-9f27-f9c7ac2a693d"
- ]
- ]
- ]
- }
- }
- },
- "Interface": {
- "13548b08-dca3-4d4b-9e9b-f50c237dcb9e": {
- "new": {
- "name": "vif0",
- "options": [
- "map",
- []
- ],
- "type": ""
- }
- },
- "88ae29fb-8c91-41a9-a14f-a74126e790c0": {
- "new": {
- "name": "br0",
- "options": [
- "map",
- []
- ],
- "type": "internal"
- }
- }
- },
- "Open_vSwitch": {
- "987c42d0-eab0-43d9-a32b-4246973706c2": {
- "new": {
- "bridges": [
- "uuid",
- "788de61c-0e4f-43d8-a068-259e75aabbba"
- ],
- "cur_cfg": 7,
- "manager_options": [
- "set",
- []
- ],
- "ovs_version": "1.4.3"
- }
- }
- },
- "Port": {
- "f6018e7a-7ca5-4e72-a744-a9b434f47011": {
- "new": {
- "interfaces": [
- "uuid",
- "13548b08-dca3-4d4b-9e9b-f50c237dcb9e"
- ],
- "name": "vif0",
- "tag": [
- "set",
- []
- ],
- "trunks": [
- "set",
- []
- ]
- }
- },
- "fe3c89fd-2ff3-44d8-9f27-f9c7ac2a693d": {
- "new": {
- "interfaces": [
- "uuid",
- "88ae29fb-8c91-41a9-a14f-a74126e790c0"
- ],
- "name": "br0",
- "tag": [
- "set",
- []
- ],
- "trunks": [
- "set",
- []
- ]
- }
- }
- }
-}
+++ /dev/null
-{
- "id": 0,
- "result": {
- "tables": {
- "Port": {
- "columns": {
- "name": {
- "mutable": false,
- "type": "string"
- },
- "statistics": {
- "ephemeral": true,
- "type": {
- "key": "string",
- "min": 0,
- "value": "integer",
- "max": "unlimited"
- }
- },
- "vlan_mode": {
- "type": {
- "key": {
- "type": "string",
- "enum": [
- "set",
- [
- "access",
- "native-tagged",
- "native-untagged",
- "trunk"
- ]
- ]
- },
- "min": 0
- }
- },
- "qos": {
- "type": {
- "key": {
- "type": "uuid",
- "refTable": "QoS"
- },
- "min": 0
- }
- },
- "status": {
- "ephemeral": true,
- "type": {
- "key": "string",
- "min": 0,
- "value": "string",
- "max": "unlimited"
- }
- },
- "trunks": {
- "type": {
- "key": {
- "maxInteger": 4095,
- "minInteger": 0,
- "type": "integer"
- },
- "min": 0,
- "max": 4096
- }
- },
- "mac": {
- "type": {
- "key": "string",
- "min": 0
- }
- },
- "interfaces": {
- "type": {
- "key": {
- "type": "uuid",
- "refTable": "Interface"
- },
- "max": "unlimited"
- }
- },
- "bond_downdelay": {
- "type": "integer"
- },
- "bond_mode": {
- "type": {
- "key": {
- "type": "string",
- "enum": [
- "set",
- [
- "active-backup",
- "balance-slb",
- "balance-tcp",
- "stable"
- ]
- ]
- },
- "min": 0
- }
- },
- "bond_updelay": {
- "type": "integer"
- },
- "external_ids": {
- "type": {
- "key": "string",
- "min": 0,
- "value": "string",
- "max": "unlimited"
- }
- },
- "other_config": {
- "type": {
- "key": "string",
- "min": 0,
- "value": "string",
- "max": "unlimited"
- }
- },
- "tag": {
- "type": {
- "key": {
- "maxInteger": 4095,
- "minInteger": 0,
- "type": "integer"
- },
- "min": 0
- }
- },
- "bond_fake_iface": {
- "type": "boolean"
- },
- "fake_bridge": {
- "type": "boolean"
- },
- "lacp": {
- "type": {
- "key": {
- "type": "string",
- "enum": [
- "set",
- [
- "active",
- "off",
- "passive"
- ]
- ]
- },
- "min": 0
- }
- }
- },
- "indexes": [
- [
- "name"
- ]
- ]
- },
- "Manager": {
- "columns": {
- "is_connected": {
- "ephemeral": true,
- "type": "boolean"
- },
- "target": {
- "type": "string"
- },
- "other_config": {
- "type": {
- "key": "string",
- "min": 0,
- "value": "string",
- "max": "unlimited"
- }
- },
- "external_ids": {
- "type": {
- "key": "string",
- "min": 0,
- "value": "string",
- "max": "unlimited"
- }
- },
- "max_backoff": {
- "type": {
- "key": {
- "minInteger": 1000,
- "type": "integer"
- },
- "min": 0
- }
- },
- "connection_mode": {
- "type": {
- "key": {
- "type": "string",
- "enum": [
- "set",
- [
- "in-band",
- "out-of-band"
- ]
- ]
- },
- "min": 0
- }
- },
- "status": {
- "ephemeral": true,
- "type": {
- "key": "string",
- "min": 0,
- "value": "string",
- "max": "unlimited"
- }
- },
- "inactivity_probe": {
- "type": {
- "key": "integer",
- "min": 0
- }
- }
- },
- "indexes": [
- [
- "target"
- ]
- ]
- },
- "Bridge": {
- "columns": {
- "name": {
- "mutable": false,
- "type": "string"
- },
- "flood_vlans": {
- "type": {
- "key": {
- "maxInteger": 4095,
- "minInteger": 0,
- "type": "integer"
- },
- "min": 0,
- "max": 4096
- }
- },
- "netflow": {
- "type": {
- "key": {
- "type": "uuid",
- "refTable": "NetFlow"
- },
- "min": 0
- }
- },
- "mirrors": {
- "type": {
- "key": {
- "type": "uuid",
- "refTable": "Mirror"
- },
- "min": 0,
- "max": "unlimited"
- }
- },
- "status": {
- "ephemeral": true,
- "type": {
- "key": "string",
- "min": 0,
- "value": "string",
- "max": "unlimited"
- }
- },
- "datapath_id": {
- "ephemeral": true,
- "type": {
- "key": "string",
- "min": 0
- }
- },
- "controller": {
- "type": {
- "key": {
- "type": "uuid",
- "refTable": "Controller"
- },
- "min": 0,
- "max": "unlimited"
- }
- },
- "protocols": {
- "type": {
- "key": {
- "type": "string",
- "enum": [
- "set",
- [
- "OpenFlow10",
- "OpenFlow12",
- "OpenFlow13"
- ]
- ]
- },
- "min": 0,
- "max": "unlimited"
- }
- },
- "fail_mode": {
- "type": {
- "key": {
- "type": "string",
- "enum": [
- "set",
- [
- "secure",
- "standalone"
- ]
- ]
- },
- "min": 0
- }
- },
- "ports": {
- "type": {
- "key": {
- "type": "uuid",
- "refTable": "Port"
- },
- "min": 0,
- "max": "unlimited"
- }
- },
- "external_ids": {
- "type": {
- "key": "string",
- "min": 0,
- "value": "string",
- "max": "unlimited"
- }
- },
- "flow_tables": {
- "type": {
- "key": {
- "maxInteger": 254,
- "minInteger": 0,
- "type": "integer"
- },
- "min": 0,
- "value": {
- "type": "uuid",
- "refTable": "Flow_Table"
- },
- "max": "unlimited"
- }
- },
- "sflow": {
- "type": {
- "key": {
- "type": "uuid",
- "refTable": "sFlow"
- },
- "min": 0
- }
- },
- "datapath_type": {
- "type": "string"
- },
- "other_config": {
- "type": {
- "key": "string",
- "min": 0,
- "value": "string",
- "max": "unlimited"
- }
- },
- "stp_enable": {
- "type": "boolean"
- }
- },
- "indexes": [
- [
- "name"
- ]
- ]
- },
- "Interface": {
- "columns": {
- "options": {
- "type": {
- "key": "string",
- "min": 0,
- "value": "string",
- "max": "unlimited"
- }
- },
- "name": {
- "mutable": false,
- "type": "string"
- },
- "statistics": {
- "ephemeral": true,
- "type": {
- "key": "string",
- "min": 0,
- "value": "integer",
- "max": "unlimited"
- }
- },
- "link_speed": {
- "ephemeral": true,
- "type": {
- "key": "integer",
- "min": 0
- }
- },
- "mtu": {
- "ephemeral": true,
- "type": {
- "key": "integer",
- "min": 0
- }
- },
- "mac_in_use": {
- "ephemeral": true,
- "type": {
- "key": "string",
- "min": 0
- }
- },
- "type": {
- "type": "string"
- },
- "ingress_policing_rate": {
- "type": {
- "key": {
- "minInteger": 0,
- "type": "integer"
- }
- }
- },
- "cfm_remote_opstate": {
- "ephemeral": true,
- "type": {
- "key": {
- "type": "string",
- "enum": [
- "set",
- [
- "down",
- "up"
- ]
- ]
- },
- "min": 0
- }
- },
- "status": {
- "ephemeral": true,
- "type": {
- "key": "string",
- "min": 0,
- "value": "string",
- "max": "unlimited"
- }
- },
- "mac": {
- "type": {
- "key": "string",
- "min": 0
- }
- },
- "ofport": {
- "type": {
- "key": "integer",
- "min": 0
- }
- },
- "cfm_fault_status": {
- "ephemeral": true,
- "type": {
- "key": "string",
- "min": 0,
- "max": "unlimited"
- }
- },
- "duplex": {
- "ephemeral": true,
- "type": {
- "key": {
- "type": "string",
- "enum": [
- "set",
- [
- "full",
- "half"
- ]
- ]
- },
- "min": 0
- }
- },
- "lacp_current": {
- "ephemeral": true,
- "type": {
- "key": "boolean",
- "min": 0
- }
- },
- "cfm_fault": {
- "ephemeral": true,
- "type": {
- "key": "boolean",
- "min": 0
- }
- },
- "external_ids": {
- "type": {
- "key": "string",
- "min": 0,
- "value": "string",
- "max": "unlimited"
- }
- },
- "other_config": {
- "type": {
- "key": "string",
- "min": 0,
- "value": "string",
- "max": "unlimited"
- }
- },
- "admin_state": {
- "ephemeral": true,
- "type": {
- "key": {
- "type": "string",
- "enum": [
- "set",
- [
- "down",
- "up"
- ]
- ]
- },
- "min": 0
- }
- },
- "link_state": {
- "ephemeral": true,
- "type": {
- "key": {
- "type": "string",
- "enum": [
- "set",
- [
- "down",
- "up"
- ]
- ]
- },
- "min": 0
- }
- },
- "cfm_remote_mpids": {
- "ephemeral": true,
- "type": {
- "key": "integer",
- "min": 0,
- "max": "unlimited"
- }
- },
- "cfm_mpid": {
- "type": {
- "key": "integer",
- "min": 0
- }
- },
- "ofport_request": {
- "type": {
- "key": {
- "maxInteger": 65279,
- "minInteger": 1,
- "type": "integer"
- },
- "min": 0
- }
- },
- "ingress_policing_burst": {
- "type": {
- "key": {
- "minInteger": 0,
- "type": "integer"
- }
- }
- },
- "cfm_health": {
- "ephemeral": true,
- "type": {
- "key": {
- "maxInteger": 100,
- "minInteger": 0,
- "type": "integer"
- },
- "min": 0
- }
- },
- "link_resets": {
- "ephemeral": true,
- "type": {
- "key": "integer",
- "min": 0
- }
- }
- },
- "indexes": [
- [
- "name"
- ]
- ]
- },
- "SSL": {
- "columns": {
- "ca_cert": {
- "type": "string"
- },
- "private_key": {
- "type": "string"
- },
- "bootstrap_ca_cert": {
- "type": "boolean"
- },
- "external_ids": {
- "type": {
- "key": "string",
- "min": 0,
- "value": "string",
- "max": "unlimited"
- }
- },
- "certificate": {
- "type": "string"
- }
- },
- "maxRows": 1
- },
- "Open_vSwitch": {
- "columns": {
- "ovs_version": {
- "type": {
- "key": "string",
- "min": 0
- }
- },
- "system_version": {
- "type": {
- "key": "string",
- "min": 0
- }
- },
- "bridges": {
- "type": {
- "key": {
- "type": "uuid",
- "refTable": "Bridge"
- },
- "min": 0,
- "max": "unlimited"
- }
- },
- "statistics": {
- "ephemeral": true,
- "type": {
- "key": "string",
- "min": 0,
- "value": "string",
- "max": "unlimited"
- }
- },
- "other_config": {
- "type": {
- "key": "string",
- "min": 0,
- "value": "string",
- "max": "unlimited"
- }
- },
- "external_ids": {
- "type": {
- "key": "string",
- "min": 0,
- "value": "string",
- "max": "unlimited"
- }
- },
- "next_cfg": {
- "type": "integer"
- },
- "manager_options": {
- "type": {
- "key": {
- "type": "uuid",
- "refTable": "Manager"
- },
- "min": 0,
- "max": "unlimited"
- }
- },
- "system_type": {
- "type": {
- "key": "string",
- "min": 0
- }
- },
- "ssl": {
- "type": {
- "key": {
- "type": "uuid",
- "refTable": "SSL"
- },
- "min": 0
- }
- },
- "db_version": {
- "type": {
- "key": "string",
- "min": 0
- }
- },
- "cur_cfg": {
- "type": "integer"
- }
- },
- "maxRows": 1,
- "isRoot": true
- },
- "Queue": {
- "columns": {
- "external_ids": {
- "type": {
- "key": "string",
- "min": 0,
- "value": "string",
- "max": "unlimited"
- }
- },
- "other_config": {
- "type": {
- "key": "string",
- "min": 0,
- "value": "string",
- "max": "unlimited"
- }
- },
- "dscp": {
- "type": {
- "key": {
- "maxInteger": 63,
- "minInteger": 0,
- "type": "integer"
- },
- "min": 0
- }
- }
- },
- "isRoot": true
- },
- "NetFlow": {
- "columns": {
- "engine_type": {
- "type": {
- "key": {
- "maxInteger": 255,
- "minInteger": 0,
- "type": "integer"
- },
- "min": 0
- }
- },
- "targets": {
- "type": {
- "key": "string",
- "max": "unlimited"
- }
- },
- "add_id_to_interface": {
- "type": "boolean"
- },
- "active_timeout": {
- "type": {
- "key": {
- "minInteger": -1,
- "type": "integer"
- }
- }
- },
- "external_ids": {
- "type": {
- "key": "string",
- "min": 0,
- "value": "string",
- "max": "unlimited"
- }
- },
- "engine_id": {
- "type": {
- "key": {
- "maxInteger": 255,
- "minInteger": 0,
- "type": "integer"
- },
- "min": 0
- }
- }
- }
- },
- "Mirror": {
- "columns": {
- "name": {
- "type": "string"
- },
- "output_port": {
- "type": {
- "key": {
- "refType": "weak",
- "type": "uuid",
- "refTable": "Port"
- },
- "min": 0
- }
- },
- "output_vlan": {
- "type": {
- "key": {
- "maxInteger": 4095,
- "minInteger": 1,
- "type": "integer"
- },
- "min": 0
- }
- },
- "statistics": {
- "ephemeral": true,
- "type": {
- "key": "string",
- "min": 0,
- "value": "integer",
- "max": "unlimited"
- }
- },
- "external_ids": {
- "type": {
- "key": "string",
- "min": 0,
- "value": "string",
- "max": "unlimited"
- }
- },
- "select_dst_port": {
- "type": {
- "key": {
- "refType": "weak",
- "type": "uuid",
- "refTable": "Port"
- },
- "min": 0,
- "max": "unlimited"
- }
- },
- "select_all": {
- "type": "boolean"
- },
- "select_vlan": {
- "type": {
- "key": {
- "maxInteger": 4095,
- "minInteger": 0,
- "type": "integer"
- },
- "min": 0,
- "max": 4096
- }
- },
- "select_src_port": {
- "type": {
- "key": {
- "refType": "weak",
- "type": "uuid",
- "refTable": "Port"
- },
- "min": 0,
- "max": "unlimited"
- }
- }
- }
- },
- "QoS": {
- "columns": {
- "queues": {
- "type": {
- "key": {
- "maxInteger": 4294967295,
- "minInteger": 0,
- "type": "integer"
- },
- "min": 0,
- "value": {
- "type": "uuid",
- "refTable": "Queue"
- },
- "max": "unlimited"
- }
- },
- "other_config": {
- "type": {
- "key": "string",
- "min": 0,
- "value": "string",
- "max": "unlimited"
- }
- },
- "external_ids": {
- "type": {
- "key": "string",
- "min": 0,
- "value": "string",
- "max": "unlimited"
- }
- },
- "type": {
- "type": "string"
- }
- },
- "isRoot": true
- },
- "Controller": {
- "columns": {
- "is_connected": {
- "ephemeral": true,
- "type": "boolean"
- },
- "enable_async_messages": {
- "type": {
- "key": "boolean",
- "min": 0
- }
- },
- "controller_rate_limit": {
- "type": {
- "key": {
- "minInteger": 100,
- "type": "integer"
- },
- "min": 0
- }
- },
- "target": {
- "type": "string"
- },
- "external_ids": {
- "type": {
- "key": "string",
- "min": 0,
- "value": "string",
- "max": "unlimited"
- }
- },
- "other_config": {
- "type": {
- "key": "string",
- "min": 0,
- "value": "string",
- "max": "unlimited"
- }
- },
- "local_netmask": {
- "type": {
- "key": "string",
- "min": 0
- }
- },
- "local_gateway": {
- "type": {
- "key": "string",
- "min": 0
- }
- },
- "max_backoff": {
- "type": {
- "key": {
- "minInteger": 1000,
- "type": "integer"
- },
- "min": 0
- }
- },
- "local_ip": {
- "type": {
- "key": "string",
- "min": 0
- }
- },
- "connection_mode": {
- "type": {
- "key": {
- "type": "string",
- "enum": [
- "set",
- [
- "in-band",
- "out-of-band"
- ]
- ]
- },
- "min": 0
- }
- },
- "status": {
- "ephemeral": true,
- "type": {
- "key": "string",
- "min": 0,
- "value": "string",
- "max": "unlimited"
- }
- },
- "role": {
- "ephemeral": true,
- "type": {
- "key": {
- "type": "string",
- "enum": [
- "set",
- [
- "master",
- "other",
- "slave"
- ]
- ]
- },
- "min": 0
- }
- },
- "inactivity_probe": {
- "type": {
- "key": "integer",
- "min": 0
- }
- },
- "controller_burst_limit": {
- "type": {
- "key": {
- "minInteger": 25,
- "type": "integer"
- },
- "min": 0
- }
- }
- }
- },
- "Flow_Table": {
- "columns": {
- "groups": {
- "type": {
- "key": "string",
- "min": 0,
- "max": "unlimited"
- }
- },
- "name": {
- "type": {
- "key": "string",
- "min": 0
- }
- },
- "overflow_policy": {
- "type": {
- "key": {
- "type": "string",
- "enum": [
- "set",
- [
- "evict",
- "refuse"
- ]
- ]
- },
- "min": 0
- }
- },
- "flow_limit": {
- "type": {
- "key": {
- "minInteger": 0,
- "type": "integer"
- },
- "min": 0
- }
- }
- }
- },
- "sFlow": {
- "columns": {
- "polling": {
- "type": {
- "key": "integer",
- "min": 0
- }
- },
- "targets": {
- "type": {
- "key": "string",
- "max": "unlimited"
- }
- },
- "header": {
- "type": {
- "key": "integer",
- "min": 0
- }
- },
- "agent": {
- "type": {
- "key": "string",
- "min": 0
- }
- },
- "external_ids": {
- "type": {
- "key": "string",
- "min": 0,
- "value": "string",
- "max": "unlimited"
- }
- },
- "sampling": {
- "type": {
- "key": "integer",
- "min": 0
- }
- }
- }
- }
- },
- "cksum": "2180939265 17455",
- "name": "Open_vSwitch",
- "version": "6.12.0"
- },
- "error": null
-}