- added presence element to empty action containers
- added sleep in order to follow port openings with some time reserve
Change-Id: Ia96c0f821455600a412df56c3d353b76184f26ef
Signed-off-by: Vaclav Demcak <vdemcak@cisco.com>
Signed-off-by: Michal Rehak <mirehak@cisco.com>
import ietf-yang-types {prefix yang; revision-date "2010-09-24";}
import opendaylight-l2-types {prefix l2t; revision-date "2013-08-27";}
import opendaylight-match-types {prefix match; revision-date "2013-10-26";}
import ietf-yang-types {prefix yang; revision-date "2010-09-24";}
import opendaylight-l2-types {prefix l2t; revision-date "2013-08-27";}
import opendaylight-match-types {prefix match; revision-date "2013-10-26";}
revision "2013-11-12" {
description "Initial revision of action service";
}
revision "2013-11-12" {
description "Initial revision of action service";
}
- }
-
- container action-types {
+ }
+
+ container action-types {
grouping action-list {
list action {
key "order";
grouping action-list {
list action {
key "order";
grouping action {
choice action {
case output-action-case {
grouping action {
choice action {
case output-action-case {
leaf output-node-connector {
type inet:uri;
}
leaf output-node-connector {
type inet:uri;
}
leaf max-length {
type uint16;
}
leaf max-length {
type uint16;
}
case set-queue-action-case {
container set-queue-action {
leaf queue {
case set-queue-action-case {
container set-queue-action {
leaf queue {
case set-mpls-ttl-action-case {
container set-mpls-ttl-action {
case set-mpls-ttl-action-case {
container set-mpls-ttl-action {
case set-nw-ttl-action-case {
container set-nw-ttl-action {
case set-nw-ttl-action-case {
container set-nw-ttl-action {
case push-pbb-action-case {
container push-pbb-action {
case push-pbb-action-case {
container push-pbb-action {
case pop-pbb-action-case {
container pop-pbb-action {
case pop-pbb-action-case {
container pop-pbb-action {
+ presence "no content action";
+ }
case push-mpls-action-case {
container push-mpls-action {
case push-mpls-action-case {
container push-mpls-action {
case dec-mpls-ttl-case {
container dec-mpls-ttl {
case dec-mpls-ttl-case {
container dec-mpls-ttl {
+ presence "no content action";
case dec-nw-ttl-case {
container dec-nw-ttl {
case dec-nw-ttl-case {
container dec-nw-ttl {
+ presence "no content action";
case drop-action-case {
container drop-action {
case drop-action-case {
container drop-action {
+ presence "no content action";
case flood-action-case {
container flood-action {
case flood-action-case {
container flood-action {
+ presence "no content action";
case flood-all-action-case {
container flood-all-action {
case flood-all-action-case {
container flood-all-action {
+ presence "no content action";
case hw-path-action-case {
container hw-path-action {
case hw-path-action-case {
container hw-path-action {
+ presence "no content action";
case loopback-action-case {
container loopback-action {
case loopback-action-case {
container loopback-action {
+ presence "no content action";
case pop-vlan-action-case {
container pop-vlan-action {
case pop-vlan-action-case {
container pop-vlan-action {
+ presence "no content action";
case push-vlan-action-case {
container push-vlan-action {
leaf ethernet-type {
case push-vlan-action-case {
container push-vlan-action {
leaf ethernet-type {
}
leaf tag { // TPID - 16 bits
type int32;
}
leaf tag { // TPID - 16 bits
type int32;
leaf pcp { // PCP - 3 bits
type int32;
}
leaf pcp { // PCP - 3 bits
type int32;
}
}
// leaf tci { //TCI = [PCP + CFI + VID]
// }
}
// leaf tci { //TCI = [PCP + CFI + VID]
// }
-// leaf header { //header = [TPID + TCI]
+// leaf header { //header = [TPID + TCI]
case copy-ttl-out-case {
container copy-ttl-out {
case copy-ttl-out-case {
container copy-ttl-out {
+ presence "no content action"
case copy-ttl-in-case {
container copy-ttl-in {
case copy-ttl-in-case {
container copy-ttl-in {
+ presence "no content action"
case set-dl-dst-action-case {
container set-dl-dst-action {
case set-dl-dst-action-case {
container set-dl-dst-action {
case set-dl-src-action-case {
container set-dl-src-action {
case set-dl-src-action-case {
container set-dl-src-action {
leaf group {
type string;
}
leaf group {
type string;
}
leaf group-id {
type uint32;
}
}
}
leaf group-id {
type uint32;
}
}
}
case set-dl-type-action-case {
container set-dl-type-action {
leaf dl-type {
case set-dl-type-action-case {
container set-dl-type-action {
leaf dl-type {
case set-next-hop-action-case {
container set-next-hop-action {
uses address;
}
}
case set-next-hop-action-case {
container set-next-hop-action {
uses address;
}
}
case set-nw-dst-action-case {
container set-nw-dst-action {
case set-nw-dst-action-case {
container set-nw-dst-action {
case set-nw-src-action-case {
container set-nw-src-action {
case set-nw-src-action-case {
container set-nw-src-action {
case set-nw-tos-action-case {
container set-nw-tos-action {
case set-nw-tos-action-case {
container set-nw-tos-action {
case set-tp-dst-action-case {
container set-tp-dst-action {
leaf port {
type inet:port-number;
case set-tp-dst-action-case {
container set-tp-dst-action {
leaf port {
type inet:port-number;
container set-tp-src-action {
leaf port {
type inet:port-number;
container set-tp-src-action {
leaf port {
type inet:port-number;
case set-vlan-id-action-case {
container set-vlan-id-action {
leaf vlan-id {
type l2t:vlan-id;
case set-vlan-id-action-case {
container set-vlan-id-action {
leaf vlan-id {
type l2t:vlan-id;
case set-vlan-pcp-action-case {
container set-vlan-pcp-action {
leaf vlan-pcp {
type l2t:vlan-pcp;
case set-vlan-pcp-action-case {
container set-vlan-pcp-action {
leaf vlan-pcp {
type l2t:vlan-pcp;
}
}
case strip-vlan-action-case {
container strip-vlan-action {
}
}
case strip-vlan-action-case {
container strip-vlan-action {
+ presence "no content action"
- case sw-path-action-case {
+ case sw-path-action-case {
container sw-path-action {
container sw-path-action {
+ presence "no content action"
+ }
+ }
import static org.ops4j.pax.exam.CoreOptions.options;
import static org.ops4j.pax.exam.CoreOptions.systemProperty;
import static org.ops4j.pax.exam.CoreOptions.options;
import static org.ops4j.pax.exam.CoreOptions.systemProperty;
+import com.google.common.base.Optional;
+import com.google.common.util.concurrent.CheckedFuture;
+import com.google.common.util.concurrent.FutureCallback;
+import com.google.common.util.concurrent.Futures;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.Deque;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.Deque;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
import javax.inject.Inject;
import javax.inject.Inject;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
import org.opendaylight.controller.sal.binding.api.NotificationProviderService;
import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
import org.opendaylight.controller.sal.binding.api.NotificationProviderService;
-import org.opendaylight.controller.test.sal.binding.it.TestHelper;
import org.opendaylight.openflowjava.protocol.impl.clients.ClientEvent;
import org.opendaylight.openflowjava.protocol.impl.clients.ScenarioHandler;
import org.opendaylight.openflowjava.protocol.impl.clients.SimpleClient;
import org.opendaylight.openflowjava.protocol.impl.clients.ClientEvent;
import org.opendaylight.openflowjava.protocol.impl.clients.ScenarioHandler;
import org.opendaylight.openflowjava.protocol.impl.clients.SimpleClient;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.google.common.base.Optional;
-import com.google.common.util.concurrent.CheckedFuture;
-import com.google.common.util.concurrent.FutureCallback;
-import com.google.common.util.concurrent.Futures;
-
/**
* covers basic handshake scenarios
*/
/**
* covers basic handshake scenarios
*/
LOG.debug("openflowPluginProvider: "+openflowPluginProvider);
scenarioPool = new ThreadPoolLoggingExecutor(1, 1, 0L, TimeUnit.MILLISECONDS, SCENARIO_POOL_QUEUE, "scenario");
//FIXME: plugin should provide service exposing startup result via future
LOG.debug("openflowPluginProvider: "+openflowPluginProvider);
scenarioPool = new ThreadPoolLoggingExecutor(1, 1, 0L, TimeUnit.MILLISECONDS, SCENARIO_POOL_QUEUE, "scenario");
//FIXME: plugin should provide service exposing startup result via future
import java.util.Deque;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.TimeUnit;
import java.util.Deque;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.TimeUnit;
import javax.inject.Inject;
import javax.inject.Inject;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.opendaylight.controller.test.sal.binding.it.TestHelper;
import org.opendaylight.openflowjava.protocol.impl.clients.ClientEvent;
import org.opendaylight.openflowjava.protocol.impl.clients.ScenarioHandler;
import org.opendaylight.openflowjava.protocol.impl.clients.SimpleClient;
import org.opendaylight.openflowjava.protocol.impl.clients.ClientEvent;
import org.opendaylight.openflowjava.protocol.impl.clients.ScenarioHandler;
import org.opendaylight.openflowjava.protocol.impl.clients.SimpleClient;
LOG.debug("openflowPluginProvider: "+openflowPluginProvider);
switchSim = createSimpleClient();
scenarioPool = new ThreadPoolLoggingExecutor(1, 1, 0L, TimeUnit.MILLISECONDS, SCENARIO_POOL_QUEUE, "scenario");
LOG.debug("openflowPluginProvider: "+openflowPluginProvider);
switchSim = createSimpleClient();
scenarioPool = new ThreadPoolLoggingExecutor(1, 1, 0L, TimeUnit.MILLISECONDS, SCENARIO_POOL_QUEUE, "scenario");
import java.util.List;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.TimeUnit;
import java.util.List;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.TimeUnit;
import javax.inject.Inject;
import javax.inject.Inject;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ConsumerContext;
import org.opendaylight.controller.sal.binding.api.BindingAwareConsumer;
import org.opendaylight.controller.sal.binding.api.NotificationService;
import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ConsumerContext;
import org.opendaylight.controller.sal.binding.api.BindingAwareConsumer;
import org.opendaylight.controller.sal.binding.api.NotificationService;
-import org.opendaylight.controller.test.sal.binding.it.TestHelper;
import org.opendaylight.openflowjava.protocol.impl.clients.ScenarioHandler;
import org.opendaylight.openflowjava.protocol.impl.clients.SimpleClient;
import org.opendaylight.openflowplugin.openflow.md.core.ThreadPoolLoggingExecutor;
import org.opendaylight.openflowjava.protocol.impl.clients.ScenarioHandler;
import org.opendaylight.openflowjava.protocol.impl.clients.SimpleClient;
import org.opendaylight.openflowplugin.openflow.md.core.ThreadPoolLoggingExecutor;
public void setUp() throws InterruptedException {
switchSim = new SimpleClient("localhost", 6653);
scenarioPool = new ThreadPoolLoggingExecutor(1, 1, 0L, TimeUnit.MILLISECONDS, SCENARIO_POOL_QUEUE, "scenario");
public void setUp() throws InterruptedException {
switchSim = new SimpleClient("localhost", 6653);
scenarioPool = new ThreadPoolLoggingExecutor(1, 1, 0L, TimeUnit.MILLISECONDS, SCENARIO_POOL_QUEUE, "scenario");