X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=test-provider%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fopenflowplugin%2Ftest%2FOpenflowpluginTestCommandProvider.java;h=29fd07aa95837d5b00a30cadfe3256ec89ec1d9c;hb=1bf6ccb5580d41856c87d4171644a2eabe457d89;hp=fe3830b2d091e73fa8df02f79ef11cf62f96c2cd;hpb=cd236f5ab5ee2ce205ccc56038f1d834acc82ab9;p=openflowplugin.git diff --git a/test-provider/src/main/java/org/opendaylight/openflowplugin/test/OpenflowpluginTestCommandProvider.java b/test-provider/src/main/java/org/opendaylight/openflowplugin/test/OpenflowpluginTestCommandProvider.java index fe3830b2d0..29fd07aa95 100644 --- a/test-provider/src/main/java/org/opendaylight/openflowplugin/test/OpenflowpluginTestCommandProvider.java +++ b/test-provider/src/main/java/org/opendaylight/openflowplugin/test/OpenflowpluginTestCommandProvider.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013 Ericsson , Inc. and others. All rights reserved. + * Copyright (c) 2013, 2015 Ericsson, Inc. and others. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 which accompanies this distribution, @@ -8,27 +8,32 @@ package org.opendaylight.openflowplugin.test; +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.Collection; import java.util.List; -import java.util.concurrent.ExecutionException; -import java.util.concurrent.Future; - +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; import org.eclipse.osgi.framework.console.CommandInterpreter; import org.eclipse.osgi.framework.console.CommandProvider; -import org.opendaylight.controller.md.sal.common.api.TransactionStatus; -import org.opendaylight.controller.md.sal.common.api.data.DataModification; +import org.opendaylight.controller.md.sal.binding.api.DataBroker; +import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction; +import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; +import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException; import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderContext; import org.opendaylight.controller.sal.binding.api.NotificationService; -import org.opendaylight.controller.sal.binding.api.data.DataBrokerService; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Dscp; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Prefix; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv6Address; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv6FlowLabel; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv6Prefix; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.PortNumber; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Uri; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev100924.MacAddress; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Dscp; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Address; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6FlowLabel; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Prefix; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress; import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.VlanCfi; import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.ControllerActionCaseBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.CopyTtlInCaseBuilder; @@ -115,13 +120,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.ta import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.Flow; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.FlowBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.FlowKey; -import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.FlowAdded; -import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.FlowRemoved; -import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.FlowUpdated; -import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.NodeErrorNotification; -import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.NodeExperimenterErrorNotification; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.SalFlowListener; -import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.SwitchFlowRemoved; +import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.FlowCookie; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.FlowModFlags; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.OutputPortValues; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.InstructionsBuilder; @@ -161,21 +161,21 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.IpMatchBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.MetadataBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.ProtocolMatchFieldsBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.TcpFlagsMatchBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.TunnelBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.VlanMatchBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._3.match.ArpMatchBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._3.match.Ipv4Match; import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._3.match.Ipv4MatchBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._3.match.Ipv6MatchBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._3.match.TunnelIpv4MatchBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._4.match.SctpMatchBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._4.match.TcpMatchBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._4.match.UdpMatchBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.protocol.match.fields.PbbBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.vlan.match.fields.VlanIdBuilder; -import org.opendaylight.yangtools.concepts.Registration; -import org.opendaylight.yangtools.yang.binding.DataObject; +import org.opendaylight.yang.gen.v1.urn.opendaylight.node.error.service.rev140410.NodeErrorListener; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -import org.opendaylight.yangtools.yang.common.RpcResult; import org.osgi.framework.BundleContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -184,528 +184,560 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { private static final Logger LOG = LoggerFactory.getLogger(OpenflowpluginTestCommandProvider.class); - private DataBrokerService dataBrokerService; - private ProviderContext pc; + private DataBroker dataBroker; private final BundleContext ctx; private FlowBuilder testFlow; - private NodeBuilder testNode; - private final String originalFlowName = "Foo"; - private final String updatedFlowName = "Bar"; - private final FlowEventListener flowEventListener = new FlowEventListener(); + private static final String ORIGINAL_FLOW_NAME = "Foo"; + private static final String UPDATED_FLOW_NAME = "Bar"; + private static final String IPV4_PREFIX = "10.0.0.1/24"; + private static final String DEST_MAC_ADDRESS = "ff:ff:ff:ff:ff:ff"; + private static final String SRC_MAC_ADDRESS = "00:00:00:00:23:ae"; + private final SalFlowListener flowEventListener = new FlowEventListenerLoggingImpl(); + private final NodeErrorListener nodeErrorListener = new NodeErrorListenerLoggingImpl(); private static NotificationService notificationService; - private Registration listener1Reg; - public OpenflowpluginTestCommandProvider(BundleContext ctx) { + public OpenflowpluginTestCommandProvider(final BundleContext ctx) { this.ctx = ctx; } - public void onSessionInitiated(ProviderContext session) { - pc = session; + public void onSessionInitiated(final ProviderContext session) { notificationService = session.getSALService(NotificationService.class); // For switch events - listener1Reg = notificationService.registerNotificationListener(flowEventListener); - dataBrokerService = session.getSALService(DataBrokerService.class); + notificationService.registerNotificationListener(flowEventListener); + notificationService.registerNotificationListener(nodeErrorListener); + dataBroker = session.getSALService(DataBroker.class); ctx.registerService(CommandProvider.class.getName(), this, null); createTestFlow(createTestNode(null), null, null); } - private NodeBuilder createTestNode(String nodeId) { + private NodeBuilder createTestNode(final String nodeId) { + String localNodeId; + if (nodeId == null) { - nodeId = OpenflowpluginTestActivator.NODE_ID; + localNodeId = OpenflowpluginTestActivator.NODE_ID; + } else { + localNodeId = nodeId; } - NodeRef nodeOne = createNodeRef(nodeId); - NodeBuilder builder = new NodeBuilder(); - builder.setId(new NodeId(nodeId)); + + final NodeBuilder builder = new NodeBuilder(); + builder.setId(new NodeId(localNodeId)); builder.setKey(new NodeKey(builder.getId())); - testNode = builder; return builder; } - final class FlowEventListener implements SalFlowListener { - - @Override - public void onFlowAdded(FlowAdded notification) { - LOG.info("flow to be added.........................." + notification.toString()); - LOG.info("added flow Xid........................." + notification.getTransactionId().getValue()); - LOG.info("-----------------------------------------------------------------------------------"); - } + private InstanceIdentifier nodeBuilderToInstanceId(final NodeBuilder node) { + return InstanceIdentifier.create(Nodes.class).child(Node.class, node.getKey()); + } - @Override - public void onFlowRemoved(FlowRemoved notification) { - LOG.debug("removed flow.........................." + notification.toString()); - LOG.debug("remove flow Xid........................." + notification.getTransactionId().getValue()); - LOG.debug("-----------------------------------------------------------------------------------"); - } + private FlowBuilder createTestFlow(final NodeBuilder nodeBuilder, final String flowTypeArg, final String tableId) { + final long TEST_ID = 123; - @Override - public void onFlowUpdated(FlowUpdated notification) { - LOG.debug("updated flow.........................." + notification.toString()); - LOG.debug("updated flow Xid........................." + notification.getTransactionId().getValue()); - LOG.debug("-----------------------------------------------------------------------------------"); - } + final FlowBuilder flow = new FlowBuilder(); + long id = TEST_ID; - @Override - public void onNodeErrorNotification(NodeErrorNotification notification) { - LOG.error("Error notification flow Xid........................." - + notification.getTransactionId().getValue()); - LOG.debug("-----------------------------------------------------------------------------------"); + String flowType = flowTypeArg; + if (flowType == null) { + flowType = "f1"; } - @Override - public void onNodeExperimenterErrorNotification(NodeExperimenterErrorNotification notification) { - // TODO Auto-generated method stub + flow.setPriority(2); + switch (flowType) { + case "f1": + id += 1; + flow.setMatch(createMatch1().build()); + flow.setInstructions(createDecNwTtlInstructions().build()); + break; + case "f2": + id += 2; + flow.setMatch(createMatch2().build()); + flow.setInstructions(createDropInstructions().build()); + break; + case "f3": + id += 3; + flow.setMatch(createMatch3().build()); + flow.setInstructions(createDropInstructions().build()); + break; + case "f4": + id += 4; + flow.setMatch(createEthernetMatch().build()); + flow.setInstructions(createDropInstructions().build()); + break; + case "f5": + id += 5; + flow.setMatch(createMatch1().build()); + flow.setInstructions(createAppyActionInstruction().build()); + break; + case "f6": + id += 6; + flow.setMatch(createMatch1().build()); + flow.setInstructions(createGotoTableInstructions().build()); + break; + case "f7": + id += 7; + flow.setMatch(createMatch1().build()); + flow.setInstructions(createMeterInstructions().build()); + break; + case "f8": + id += 8; + flow.setMatch(createMatch1().build()); + flow.setInstructions(createAppyActionInstruction1().build()); + break; + case "f9": + id += 9; + flow.setMatch(createMatch1().build()); + flow.setInstructions(createAppyActionInstruction2().build()); + break; + case "f10": + id += 10; + flow.setMatch(createMatch1().build()); + flow.setInstructions(createAppyActionInstruction3().build()); + break; + case "f11": + id += 11; + flow.setMatch(createMatch1().build()); + flow.setInstructions(createAppyActionInstruction4().build()); + break; + case "f12": + id += 12; + flow.setMatch(createMatch1().build()); + flow.setInstructions(createAppyActionInstruction5().build()); + break; + case "f13": + id += 13; + flow.setMatch(createMatch1().build()); + flow.setInstructions(createAppyActionInstruction6().build()); + break; + case "f14": + id += 14; + flow.setMatch(createMatch1().build()); + flow.setInstructions(createAppyActionInstruction7().build()); + break; + case "f15": + id += 15; + flow.setMatch(createMatch1().build()); + flow.setInstructions(createAppyActionInstruction8().build()); + break; + case "f16": + id += 16; + flow.setMatch(createMatch1().build()); + flow.setInstructions(createAppyActionInstruction9().build()); + break; + case "f17": + id += 17; + flow.setMatch(createMatch1().build()); + flow.setInstructions(createAppyActionInstruction10().build()); + break; + case "f18": + id += 18; + flow.setMatch(createMatch1().build()); + flow.setInstructions(createAppyActionInstruction11().build()); + break; + case "f19": + id += 19; + flow.setMatch(createMatch1().build()); + flow.setInstructions(createAppyActionInstruction12().build()); + break; + case "f20": + id += 20; + flow.setMatch(createMatch1().build()); + flow.setInstructions(createAppyActionInstruction13().build()); + break; + case "f21": + id += 21; + flow.setMatch(createMatch1().build()); + flow.setInstructions(createAppyActionInstruction14().build()); + break; + case "f22": + id += 22; + flow.setMatch(createMatch1().build()); + flow.setInstructions(createAppyActionInstruction15().build()); + break; + case "f23": + id += 23; + // f23 can be used as test-case for generating error notification + // if the particular group is not configured - tested + flow.setMatch(createMatch1().build()); + flow.setInstructions(createAppyActionInstruction16().build()); + break; + case "f24": + id += 24; + flow.setMatch(createMatch1().build()); + flow.setInstructions(createAppyActionInstruction17().build()); + break; + case "f25": + id += 25; + flow.setMatch(createMatch1().build()); + flow.setInstructions(createAppyActionInstruction18().build()); + break; + case "f26": + id += 26; + flow.setMatch(createMatch1().build()); + flow.setInstructions(createAppyActionInstruction19().build()); + break; + case "f27": + id += 27; + flow.setMatch(createMatch1().build()); + flow.setInstructions(createMetadataInstructions().build()); + break; + case "f28": + id += 28; + flow.setMatch(createMatch1().build()); + flow.setInstructions(createAppyActionInstruction20().build()); + break; + case "f29": + id += 29; + flow.setMatch(createMatch1().build()); + flow.setInstructions(createAppyActionInstruction21().build()); + break; + case "f30": + id += 30; + flow.setMatch(createMatch1().build()); + flow.setInstructions(createAppyActionInstruction22().build()); + break; + case "f31": + id += 31; + flow.setMatch(createMatch1().build()); + flow.setInstructions(createAppyActionInstruction23(nodeBuilder.getId()).build()); + break; + case "f32": + id += 32; + flow.setMatch(createMatch1().build()); + flow.setInstructions(createAppyActionInstruction24().build()); + break; + case "f33": + id += 33; + flow.setMatch(createMatch1().build()); + flow.setInstructions(createAppyActionInstruction25().build()); + break; + case "f34": + id += 34; + flow.setMatch(createMatch1().build()); + flow.setInstructions(createAppyActionInstruction26().build()); + break; + case "f35": + id += 35; + flow.setMatch(createMatch1().build()); + flow.setInstructions(createAppyActionInstruction27().build()); + break; + case "f36": + id += 36; + flow.setMatch(createMatch1().build()); + flow.setInstructions(createAppyActionInstruction28().build()); + break; + case "f37": + id += 37; + flow.setMatch(createMatch1().build()); + flow.setInstructions(createAppyActionInstruction29().build()); + break; + case "f38": + id += 38; + flow.setMatch(createMatch1().build()); + flow.setInstructions(createAppyActionInstruction30().build()); + break; + case "f39": + id += 39; + flow.setMatch(createMatch1().build()); + flow.setInstructions(createAppyActionInstruction31().build()); + break; + case "f40": + id += 40; + flow.setMatch(createMatch1().build()); + flow.setInstructions(createAppyActionInstruction32().build()); + break; + case "f41": + id += 41; + flow.setMatch(createMatch1().build()); + flow.setInstructions(createAppyActionInstruction33().build()); + break; + case "f42": + id += 42; + flow.setMatch(createMatch1().build()); + flow.setInstructions(createAppyActionInstruction34().build()); + break; + case "f43": + id += 43; + flow.setMatch(createICMPv6Match().build()); + flow.setInstructions(createDecNwTtlInstructions().build()); + break; + case "f44": + id += 44; + flow.setMatch(createInphyportMatch(nodeBuilder.getId()).build()); + flow.setInstructions(createDropInstructions().build()); + break; + case "f45": + id += 45; + flow.setMatch(createMetadataMatch().build()); + flow.setInstructions(createDropInstructions().build()); + break; + case "f46": + id += 46; + flow.setMatch(createL3IPv6Match().build()); + flow.setInstructions(createDecNwTtlInstructions().build()); + break; + case "f47": + id += 47; + flow.setMatch(createL4SCTPMatch().build()); + flow.setInstructions(createAppyActionInstruction().build()); + break; + case "f48": + id += 48; + flow.setMatch(createTunnelIDMatch().build()); + flow.setInstructions(createGotoTableInstructions().build()); + break; + case "f49": + id += 49; + flow.setMatch(createVlanMatch().build()); + flow.setInstructions(createMeterInstructions().build()); + break; + case "f50": + id += 50; + flow.setMatch(createPbbMatch().build()); + flow.setInstructions(createMeterInstructions().build()); + break; + case "f51": + id += 51; + flow.setMatch(createVlanMatch().build()); + flow.setInstructions(createDropInstructions().build()); + break; + case "f52": + id += 52; + flow.setMatch(createL4TCPMatch().build()); + flow.setInstructions(createDropInstructions().build()); + break; + + case "f53": + id += 53; + flow.setMatch(createL4UDPMatch().build()); + flow.setInstructions(createDropInstructions().build()); + break; + case "f54": + id += 54; + flow.setMatch(new MatchBuilder().build()); + flow.setInstructions(createSentToControllerInstructions().build()); + flow.setPriority(0); + break; + case "f55": + id += 55; + flow.setMatch(createToSMatch().build()); + flow.setInstructions(createDropInstructions().build()); + break; + case "f56": + id += 56; + flow.setMatch(createToSMatch().build()); + flow.setInstructions(createOutputInstructions("INPORT", 10).build()); + break; + case "f57": + id += 57; + flow.setMatch(createToSMatch().build()); + flow.setInstructions(createOutputInstructions("FLOOD", 20).build()); + break; + case "f58": + id += 58; + flow.setMatch(createToSMatch().build()); + flow.setInstructions(createOutputInstructions("ALL", 30).build()); + break; + case "f59": + id += 59; + flow.setMatch(createToSMatch().build()); + flow.setInstructions(createOutputInstructions("NORMAL", 40).build()); + break; + case "f60": + id += 60; + flow.setMatch(createToSMatch().build()); + flow.setInstructions(createOutputInstructions("LOCAL", 50).build()); + break; + case "f61": + id += 61; + flow.setMatch(createToSMatch().build()); + flow.setInstructions(createOutputInstructions("TABLE", 60).build()); + break; + case "f62": + id += 62; + flow.setMatch(createToSMatch().build()); + flow.setInstructions(createOutputInstructions("NONE", 70).build()); + break; + case "f63": + id += 63; + flow.setMatch(createToSMatch().build()); + flow.setInstructions(createStripVlanInstructions().build()); + flow.setBarrier(Boolean.TRUE); + break; + case "f64": + id += 64; + flow.setMatch(createMatch1().build()); + flow.setInstructions(createAppyActionInstruction35().build()); + break; + case "f65": + id += 65; + flow.setMatch(createMatch1().build()); + flow.setInstructions(createAppyActionInstruction36().build()); + break; + case "f66": + id += 66; + flow.setMatch(createMatch1().build()); + flow.setInstructions(createAppyActionInstruction37().build()); + break; + case "f67": + id += 67; + flow.setMatch(createMatch1().build()); + flow.setInstructions(createAppyActionInstruction38().build()); + break; + case "f68": + id += 68; + flow.setMatch(createL4TCPMatch().build()); + flow.setInstructions(createAppyActionInstruction39().build()); + break; + case "f69": + id += 69; + flow.setMatch(createL4UDPMatch().build()); + flow.setInstructions(createAppyActionInstruction40().build()); + break; + case "f70": + id += 70; + flow.setMatch(createL4SCTPMatch().build()); + flow.setInstructions(createAppyActionInstruction41().build()); + break; + case "f71": + id += 71; + flow.setMatch(createICMPv4Match().build()); + flow.setInstructions(createAppyActionInstruction42().build()); + break; + case "f72": + id += 72; + flow.setMatch(createArpMatch().build()); + flow.setInstructions(createAppyActionInstruction43().build()); + break; + case "f73": + id += 73; + flow.setMatch(createL3IPv6Match().build()); + flow.setInstructions(createAppyActionInstruction44().build()); + break; + case "f74": + id += 74; + flow.setMatch(createICMPv6Match().build()); + flow.setInstructions(createAppyActionInstruction45().build()); + break; + case "f75": + id += 75; + flow.setMatch(createMplsMatch().build()); + flow.setInstructions(createAppyActionInstruction46().build()); + break; + case "f76": + id += 76; + flow.setMatch(createPbbMatch().build()); + flow.setInstructions(createAppyActionInstruction47().build()); + break; + case "f77": + id += 77; + flow.setMatch(createTunnelIDMatch().build()); + flow.setInstructions(createAppyActionInstruction48().build()); + break; + case "f78": + id += 78; + flow.setMatch(createMatch33().build()); + flow.setInstructions(createDropInstructions().build()); + break; + case "f79": + id += 79; + flow.setMatch(createICMPv6Match1().build()); + flow.setInstructions(createDecNwTtlInstructions().build()); + break; + case "f80": + id += 80; + flow.setMatch(createVlanMatch().build()); + flow.setInstructions(createAppyActionInstruction88().build()); + break; + case "f81": + id += 81; + flow.setMatch(createLLDPMatch().build()); + flow.setInstructions(createSentToControllerInstructions().build()); + break; + case "f82": + id += 82; + flow.setMatch(createToSMatch().build()); + flow.setInstructions(createOutputInstructions().build()); + break; + case "f83": + // Test TCP_Flag Match + id += 83; + flow.setMatch(createTcpFlagMatch().build()); + flow.setInstructions(createDropInstructions().build()); + break; + case "f84": + id += 84; + // match vlan=10,dl_vlan_pcp=3 + flow.setMatch(createVlanMatch().build()); + // vlan_pcp=4 + flow.setInstructions(createAppyActionInstruction88().build()); + break; + case "f85": + // Test Tunnel IPv4 Src (e.g. set_field:172.16.100.200->tun_src) + id += 85; + flow.setMatch(createMatch3().build()); + flow.setInstructions(createTunnelIpv4SrcInstructions().build()); + break; + case "f86": + // Test Tunnel IPv4 Dst (e.g. set_field:172.16.100.100->tun_dst) + id += 86; + flow.setMatch(createMatch1().build()); + flow.setInstructions(createTunnelIpv4DstInstructions().build()); + break; + default: + LOG.warn("flow type not understood: {}", flowType); } - @Override - public void onSwitchFlowRemoved(SwitchFlowRemoved notification) { - LOG.debug("Switch flow removed : Cookies..................." + notification.getCookie().toString()); - LOG.debug("-----------------------------------------------------------------------------------"); + final FlowKey key = new FlowKey(new FlowId(Long.toString(id))); + if (null == flow.isBarrier()) { + flow.setBarrier(Boolean.FALSE); } - } + final BigInteger value = BigInteger.valueOf(10); + flow.setCookie(new FlowCookie(value)); + flow.setCookieMask(new FlowCookie(value)); + flow.setHardTimeout(0); + flow.setIdleTimeout(0); + flow.setInstallHw(false); + flow.setStrict(false); + flow.setContainerName(null); + flow.setFlags(new FlowModFlags(false, false, false, false, true)); + flow.setId(new FlowId("12")); + flow.setTableId(getTableId(tableId)); - private InstanceIdentifier nodeBuilderToInstanceId(NodeBuilder node) { - return InstanceIdentifier.builder(Nodes.class).child(Node.class, node.getKey()).toInstance(); + flow.setKey(key); + flow.setFlowName(ORIGINAL_FLOW_NAME + "X" + flowType); + testFlow = flow; + return flow; } - private FlowBuilder createTestFlow(NodeBuilder nodeBuilder, String flowTypeArg, String tableId) { - - FlowBuilder flow = new FlowBuilder(); - long id = 123; + private FlowBuilder createTestFlowPerfTest(final String flowTypeArg, final String tableId, final int id) { + final FlowBuilder flow = new FlowBuilder(); String flowType = flowTypeArg; + int flowId = id; + if (flowType == null) { flowType = "f1"; } + flow.setPriority(flowId); + switch (flowType) { - case "f1": - id += 1; - flow.setMatch(createMatch1().build()); - flow.setInstructions(createDecNwTtlInstructions().build()); - break; - case "f2": - id += 2; - flow.setMatch(createMatch2().build()); - flow.setInstructions(createDropInstructions().build()); - break; - case "f3": - id += 3; - flow.setMatch(createMatch3().build()); - flow.setInstructions(createDropInstructions().build()); - break; - case "f4": - id += 4; - flow.setMatch(createEthernetMatch().build()); - flow.setInstructions(createDropInstructions().build()); - break; - case "f5": - id += 5; - flow.setMatch(createMatch1().build()); - flow.setInstructions(createAppyActionInstruction().build()); - break; - case "f6": - id += 6; - flow.setMatch(createMatch1().build()); - flow.setInstructions(createGotoTableInstructions().build()); - break; - case "f7": - id += 7; - flow.setMatch(createMatch1().build()); - flow.setInstructions(createMeterInstructions().build()); - break; - case "f8": - id += 8; - flow.setMatch(createMatch1().build()); - flow.setInstructions(createAppyActionInstruction1().build()); - break; - case "f9": - id += 9; - flow.setMatch(createMatch1().build()); - flow.setInstructions(createAppyActionInstruction2().build()); - break; - case "f10": - id += 10; - flow.setMatch(createMatch1().build()); - flow.setInstructions(createAppyActionInstruction3().build()); - break; - case "f11": - id += 11; - flow.setMatch(createMatch1().build()); - flow.setInstructions(createAppyActionInstruction4().build()); - break; - case "f12": - id += 12; - flow.setMatch(createMatch1().build()); - flow.setInstructions(createAppyActionInstruction5().build()); - break; - case "f13": - id += 13; - flow.setMatch(createMatch1().build()); - flow.setInstructions(createAppyActionInstruction6().build()); - break; - case "f14": - id += 14; - flow.setMatch(createMatch1().build()); - flow.setInstructions(createAppyActionInstruction7().build()); - break; - case "f15": - id += 15; - flow.setMatch(createMatch1().build()); - flow.setInstructions(createAppyActionInstruction8().build()); - break; - case "f16": - id += 16; - flow.setMatch(createMatch1().build()); - flow.setInstructions(createAppyActionInstruction9().build()); - break; - case "f17": - id += 17; - flow.setMatch(createMatch1().build()); - flow.setInstructions(createAppyActionInstruction10().build()); - break; - case "f18": - id += 18; - flow.setMatch(createMatch1().build()); - flow.setInstructions(createAppyActionInstruction11().build()); - break; - case "f19": - id += 19; - flow.setMatch(createMatch1().build()); - flow.setInstructions(createAppyActionInstruction12().build()); - break; - case "f20": - id += 20; - flow.setMatch(createMatch1().build()); - flow.setInstructions(createAppyActionInstruction13().build()); - break; - case "f21": - id += 21; - flow.setMatch(createMatch1().build()); - flow.setInstructions(createAppyActionInstruction14().build()); - break; - case "f22": - id += 22; - flow.setMatch(createMatch1().build()); - flow.setInstructions(createAppyActionInstruction15().build()); - break; - case "f23": - id += 23; - // f23 can be used as test-case for generating error notification - // if the particular group is not configured - tested - flow.setMatch(createMatch1().build()); - flow.setInstructions(createAppyActionInstruction16().build()); - break; - case "f24": - id += 24; - flow.setMatch(createMatch1().build()); - flow.setInstructions(createAppyActionInstruction17().build()); - break; - case "f25": - id += 25; - flow.setMatch(createMatch1().build()); - flow.setInstructions(createAppyActionInstruction18().build()); - break; - case "f26": - id += 26; - flow.setMatch(createMatch1().build()); - flow.setInstructions(createAppyActionInstruction19().build()); - break; - case "f27": - id += 27; - flow.setMatch(createMatch1().build()); - flow.setInstructions(createMetadataInstructions().build()); - break; - case "f28": - id += 28; - flow.setMatch(createMatch1().build()); - flow.setInstructions(createAppyActionInstruction20().build()); - break; - case "f29": - id += 29; - flow.setMatch(createMatch1().build()); - flow.setInstructions(createAppyActionInstruction21().build()); - break; - case "f30": - id += 30; - flow.setMatch(createMatch1().build()); - flow.setInstructions(createAppyActionInstruction22().build()); - break; - case "f31": - id += 31; - flow.setMatch(createMatch1().build()); - flow.setInstructions(createAppyActionInstruction23(nodeBuilder.getId()).build()); - break; - case "f32": - id += 32; - flow.setMatch(createMatch1().build()); - flow.setInstructions(createAppyActionInstruction24().build()); - break; - case "f33": - id += 33; - flow.setMatch(createMatch1().build()); - flow.setInstructions(createAppyActionInstruction25().build()); - break; - case "f34": - id += 34; - flow.setMatch(createMatch1().build()); - flow.setInstructions(createAppyActionInstruction26().build()); - break; - case "f35": - id += 35; - flow.setMatch(createMatch1().build()); - flow.setInstructions(createAppyActionInstruction27().build()); - break; - case "f36": - id += 36; - flow.setMatch(createMatch1().build()); - flow.setInstructions(createAppyActionInstruction28().build()); - break; - case "f37": - id += 37; - flow.setMatch(createMatch1().build()); - flow.setInstructions(createAppyActionInstruction29().build()); - break; - case "f38": - id += 38; - flow.setMatch(createMatch1().build()); - flow.setInstructions(createAppyActionInstruction30().build()); - break; - case "f39": - id += 39; - flow.setMatch(createMatch1().build()); - flow.setInstructions(createAppyActionInstruction31().build()); - break; - case "f40": - id += 40; - flow.setMatch(createMatch1().build()); - flow.setInstructions(createAppyActionInstruction32().build()); - break; - case "f41": - id += 41; - flow.setMatch(createMatch1().build()); - flow.setInstructions(createAppyActionInstruction33().build()); - break; - case "f42": - id += 42; - flow.setMatch(createMatch1().build()); - flow.setInstructions(createAppyActionInstruction34().build()); - break; - case "f43": - id += 43; - flow.setMatch(createICMPv6Match().build()); - flow.setInstructions(createDecNwTtlInstructions().build()); - break; - case "f44": - id += 44; - flow.setMatch(createInphyportMatch(nodeBuilder.getId()).build()); - flow.setInstructions(createDropInstructions().build()); - break; - case "f45": - id += 45; - flow.setMatch(createMetadataMatch().build()); - flow.setInstructions(createDropInstructions().build()); - break; - case "f46": - id += 46; - flow.setMatch(createL3IPv6Match().build()); - flow.setInstructions(createDecNwTtlInstructions().build()); - break; - case "f47": - id += 47; - flow.setMatch(createL4SCTPMatch().build()); - flow.setInstructions(createAppyActionInstruction().build()); - break; - case "f48": - id += 48; - flow.setMatch(createTunnelIDMatch().build()); - flow.setInstructions(createGotoTableInstructions().build()); - break; - case "f49": - id += 49; - flow.setMatch(createVlanMatch().build()); - flow.setInstructions(createMeterInstructions().build()); - break; - case "f50": - id += 50; - flow.setMatch(createPbbMatch().build()); - flow.setInstructions(createMeterInstructions().build()); - break; - case "f51": - id += 51; - flow.setMatch(createVlanMatch().build()); - flow.setInstructions(createDropInstructions().build()); - break; - case "f52": - id += 52; - flow.setMatch(createL4TCPMatch().build()); - flow.setInstructions(createDropInstructions().build()); - break; - - case "f53": - id += 53; - flow.setMatch(createL4UDPMatch().build()); - flow.setInstructions(createDropInstructions().build()); - break; - case "f54": - id += 54; - flow.setMatch(new MatchBuilder().build()); - flow.setInstructions(createSentToControllerInstructions().build()); - break; - case "f55": - id += 55; - flow.setMatch(createToSMatch().build()); - flow.setInstructions(createDropInstructions().build()); - break; - case "f56": - id += 56; - flow.setMatch(createToSMatch().build()); - flow.setInstructions(createOutputInstructions("INPORT", 10).build()); - break; - case "f57": - id += 57; - flow.setMatch(createToSMatch().build()); - flow.setInstructions(createOutputInstructions("FLOOD", 20).build()); - break; - case "f58": - id += 58; - flow.setMatch(createToSMatch().build()); - flow.setInstructions(createOutputInstructions("ALL", 30).build()); - break; - case "f59": - id += 59; - flow.setMatch(createToSMatch().build()); - flow.setInstructions(createOutputInstructions("NORMAL", 40).build()); - break; - case "f60": - id += 60; - flow.setMatch(createToSMatch().build()); - flow.setInstructions(createOutputInstructions("LOCAL", 50).build()); - break; - case "f61": - id += 61; - flow.setMatch(createToSMatch().build()); - flow.setInstructions(createOutputInstructions("TABLE", 60).build()); - break; - case "f62": - id += 62; - flow.setMatch(createToSMatch().build()); - flow.setInstructions(createOutputInstructions("NONE", 70).build()); - break; - case "f63": - id += 63; - flow.setMatch(createToSMatch().build()); - flow.setInstructions(createStripVlanInstructions().build()); - flow.setBarrier(Boolean.TRUE); - break; - case "f64": - id += 64; - flow.setMatch(createMatch1().build()); - flow.setInstructions(createAppyActionInstruction35().build()); - break; - case "f65": - id += 65; - flow.setMatch(createMatch1().build()); - flow.setInstructions(createAppyActionInstruction36().build()); - break; - case "f66": - id += 66; - flow.setMatch(createMatch1().build()); - flow.setInstructions(createAppyActionInstruction37().build()); - break; - case "f67": - id += 67; - flow.setMatch(createMatch1().build()); - flow.setInstructions(createAppyActionInstruction38().build()); - break; - case "f68": - id += 68; - flow.setMatch(createL4TCPMatch().build()); - flow.setInstructions(createAppyActionInstruction39().build()); - break; - case "f69": - id += 69; - flow.setMatch(createL4UDPMatch().build()); - flow.setInstructions(createAppyActionInstruction40().build()); - break; - case "f70": - id += 70; - flow.setMatch(createL4SCTPMatch().build()); - flow.setInstructions(createAppyActionInstruction41().build()); - break; - case "f71": - id += 71; - flow.setMatch(createICMPv4Match().build()); - flow.setInstructions(createAppyActionInstruction42().build()); - break; - case "f72": - id += 72; - flow.setMatch(createArpMatch().build()); - flow.setInstructions(createAppyActionInstruction43().build()); - break; - case "f73": - id += 73; - flow.setMatch(createL3IPv6Match().build()); - flow.setInstructions(createAppyActionInstruction44().build()); - break; - case "f74": - id += 74; - flow.setMatch(createICMPv6Match().build()); - flow.setInstructions(createAppyActionInstruction45().build()); - break; - case "f75": - id += 75; - flow.setMatch(createMplsMatch().build()); - flow.setInstructions(createAppyActionInstruction46().build()); - break; - case "f76": - id += 76; - flow.setMatch(createPbbMatch().build()); - flow.setInstructions(createAppyActionInstruction47().build()); - break; - case "f77": - id += 77; - flow.setMatch(createTunnelIDMatch().build()); - flow.setInstructions(createAppyActionInstruction48().build()); - break; - case "f78": - id += 78; - flow.setMatch(createMatch33().build()); - flow.setInstructions(createDropInstructions().build()); - break; - case "f79": - id += 79; - flow.setMatch(createICMPv6Match1().build()); - flow.setInstructions(createDecNwTtlInstructions().build()); - break; - case "f80": - id += 80; - flow.setMatch(createMatch1().build()); - flow.setInstructions(createAppyActionInstruction88().build()); - break; - case "f81": - id += 81; - flow.setMatch(createLLDPMatch().build()); - flow.setInstructions(createSentToControllerInstructions().build()); - break; - case "f82": - id += 82; - flow.setMatch(createToSMatch().build()); - flow.setInstructions(createOutputInstructions().build()); - break; - default: - LOG.warn("flow type not understood: {}", flowType); + case "f1": + flowId += 1; + flow.setMatch(createMatch1().build()); + flow.setInstructions(createDecNwTtlInstructions().build()); + break; + default: + LOG.warn("flow type not understood: {}", flowType); } - FlowKey key = new FlowKey(new FlowId(Long.toString(id))); + final FlowKey key = new FlowKey(new FlowId(Long.toString(flowId))); if (null == flow.isBarrier()) { flow.setBarrier(Boolean.FALSE); } - // flow.setBufferId(new Long(12)); - BigInteger value = new BigInteger("10", 10); - // BigInteger outputPort = new BigInteger("65535", 10); - flow.setCookie(value); - flow.setCookieMask(value); + final BigInteger value = BigInteger.valueOf(10); + flow.setCookie(new FlowCookie(value)); + flow.setCookieMask(new FlowCookie(value)); flow.setHardTimeout(0); flow.setIdleTimeout(0); flow.setInstallHw(false); @@ -714,74 +746,67 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { flow.setFlags(new FlowModFlags(false, false, false, false, true)); flow.setId(new FlowId("12")); flow.setTableId(getTableId(tableId)); - // commenting setOutGroup and setOutPort, as by default - // OFPG_ANY is send - // enable setOutGroup and setOutPort to enable output filtering - // flow.setOutGroup(new Long(2)); - // set outport to OFPP_NONE (65535) to disable remove restriction for - // flow - // flow.setOutPort(outputPort); flow.setKey(key); - flow.setPriority(2); - flow.setFlowName(originalFlowName + "X" + flowType); + flow.setFlowName(ORIGINAL_FLOW_NAME + "X" + flowType); testFlow = flow; return flow; } - private FlowBuilder createtablemiss(NodeBuilder nodeBuilder, String flowTypeArg, String tableId) { - FlowBuilder flow = new FlowBuilder(); - long id = 456; - MatchBuilder matchBuilder = new MatchBuilder(); + private FlowBuilder createtablemiss() { + final FlowBuilder flow = new FlowBuilder(); + final long id = 456; + final MatchBuilder matchBuilder = new MatchBuilder(); flow.setMatch(matchBuilder.build()); flow.setInstructions(createSentToControllerInstructions().build()); flow.setPriority(0); flow.setTableId((short) 0); - FlowKey key = new FlowKey(new FlowId(Long.toString(id))); + final FlowKey key = new FlowKey(new FlowId(Long.toString(id))); flow.setKey(key); testFlow = flow; return flow; } - private short getTableId(String tableId) { - short table = 2; + private short getTableId(final String tableId) { + final short TABLE_ID = 2; + short table = TABLE_ID; try { table = Short.parseShort(tableId); - } catch (Exception ex) { - // ignore exception and continue with default value + } catch (final Exception ex) { + LOG.info("Parsing String tableId {} failed. Continuing with default tableId {}.", + tableId, table); } - return table; - } /** * @return */ private static InstructionsBuilder createDecNwTtlInstructions() { - DecNwTtlBuilder ta = new DecNwTtlBuilder(); - DecNwTtl decNwTtl = ta.build(); - ActionBuilder ab = new ActionBuilder(); + final DecNwTtlBuilder ta = new DecNwTtlBuilder(); + final DecNwTtl decNwTtl = ta.build(); + final ActionBuilder ab = new ActionBuilder(); ab.setAction(new DecNwTtlCaseBuilder().setDecNwTtl(decNwTtl).build()); - + ab.setKey(new ActionKey(0)); // Add our drop action to a list - List actionList = new ArrayList(); + final List actionList = new ArrayList(); actionList.add(ab.build()); // Create an Apply Action - ApplyActionsBuilder aab = new ApplyActionsBuilder(); + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); aab.setAction(actionList); // Wrap our Apply Action in an Instruction - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); ib.setKey(new InstructionKey(0)); ib.setOrder(0); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); instructions.add(ib.build()); + ib.setKey(new InstructionKey(0)); isb.setInstruction(instructions); return isb; } @@ -791,15 +816,16 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { */ private static InstructionsBuilder createMeterInstructions() { - MeterBuilder aab = new MeterBuilder(); - aab.setMeterId(new MeterId(new Long(1))); + final MeterBuilder aab = new MeterBuilder(); + aab.setMeterId(new MeterId(1L)); - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setInstruction(new MeterCaseBuilder().setMeter(aab.build()).build()); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); + ib.setKey(new InstructionKey(0)); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; @@ -807,16 +833,17 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { private static InstructionsBuilder createMetadataInstructions() { - WriteMetadataBuilder aab = new WriteMetadataBuilder(); - aab.setMetadata(new BigInteger("10", 10)); - aab.setMetadataMask(new BigInteger("12", 10)); + final WriteMetadataBuilder aab = new WriteMetadataBuilder(); + aab.setMetadata(BigInteger.valueOf(10)); + aab.setMetadataMask(BigInteger.valueOf(10)); - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setInstruction(new WriteMetadataCaseBuilder().setWriteMetadata(aab.build()).build()); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); + ib.setKey(new InstructionKey(0)); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; @@ -824,41 +851,43 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { private static InstructionsBuilder createGotoTableInstructions() { - GoToTableBuilder aab = new GoToTableBuilder(); - aab.setTableId((short) 2); + final GoToTableBuilder aab = new GoToTableBuilder(); + aab.setTableId((short) 5); - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setInstruction(new GoToTableCaseBuilder().setGoToTable(aab.build()).build()); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); + ib.setKey(new InstructionKey(0)); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; } private static InstructionsBuilder createDropInstructions() { - DropActionBuilder dab = new DropActionBuilder(); - DropAction dropAction = dab.build(); - ActionBuilder ab = new ActionBuilder(); + final DropActionBuilder dab = new DropActionBuilder(); + final DropAction dropAction = dab.build(); + final ActionBuilder ab = new ActionBuilder(); ab.setAction(new DropActionCaseBuilder().setDropAction(dropAction).build()); - + ab.setKey(new ActionKey(0)); // Add our drop action to a list - List actionList = new ArrayList(); + final List actionList = new ArrayList(); actionList.add(ab.build()); - + ab.setKey(new ActionKey(0)); // Create an Apply Action - ApplyActionsBuilder aab = new ApplyActionsBuilder(); + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); aab.setAction(actionList); // Wrap our Apply Action in an Instruction - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); + ib.setKey(new InstructionKey(0)); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; @@ -866,23 +895,25 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { private static InstructionsBuilder createAppyActionInstruction() { - List actionList = new ArrayList(); - ActionBuilder ab = new ActionBuilder(); - ControllerActionBuilder controller = new ControllerActionBuilder(); + final List actionList = new ArrayList(); + final ActionBuilder ab = new ActionBuilder(); + final ControllerActionBuilder controller = new ControllerActionBuilder(); controller.setMaxLength(5); ab.setAction(new ControllerActionCaseBuilder().setControllerAction(controller.build()).build()); + ab.setKey(new ActionKey(0)); actionList.add(ab.build()); // Create an Apply Action - ApplyActionsBuilder aab = new ApplyActionsBuilder(); + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); aab.setAction(actionList); // Wrap our Apply Action in an Instruction - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); + ib.setKey(new InstructionKey(0)); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; @@ -890,26 +921,28 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { private static InstructionsBuilder createAppyActionInstruction1() { - List actionList = new ArrayList(); - ActionBuilder ab = new ActionBuilder(); + final List actionList = new ArrayList(); + final ActionBuilder ab = new ActionBuilder(); - OutputActionBuilder output = new OutputActionBuilder(); + final OutputActionBuilder output = new OutputActionBuilder(); output.setMaxLength(56); - Uri value = new Uri("PCEP"); + final Uri value = new Uri("PCEP"); output.setOutputNodeConnector(value); ab.setAction(new OutputActionCaseBuilder().setOutputAction(output.build()).build()); + ab.setKey(new ActionKey(0)); actionList.add(ab.build()); // Create an Apply Action - ApplyActionsBuilder aab = new ApplyActionsBuilder(); + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); aab.setAction(actionList); // Wrap our Apply Action in an Instruction - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); + ib.setKey(new InstructionKey(0)); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; @@ -920,116 +953,116 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { // test case for Output Port works if the particular port exists // this particular test-case is for Port : 1 // tested as (addMDFlow openflow: f82) - List actionList = new ArrayList(); - ActionBuilder ab = new ActionBuilder(); - OutputActionBuilder output = new OutputActionBuilder(); + final List actionList = new ArrayList(); + final ActionBuilder ab = new ActionBuilder(); + final OutputActionBuilder output = new OutputActionBuilder(); - Uri value = new Uri("1"); + final Uri value = new Uri("1"); output.setOutputNodeConnector(value); ab.setAction(new OutputActionCaseBuilder().setOutputAction(output.build()).build()); ab.setOrder(0); ab.setKey(new ActionKey(0)); actionList.add(ab.build()); // Create an Apply Action - ApplyActionsBuilder aab = new ApplyActionsBuilder(); + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); aab.setAction(actionList); // Wrap our Apply Action in an Instruction - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); ib.setOrder(0); ib.setKey(new InstructionKey(0)); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; } private static InstructionsBuilder createSentToControllerInstructions() { - List actionList = new ArrayList(); - ActionBuilder ab = new ActionBuilder(); + final List actionList = new ArrayList(); + final ActionBuilder ab = new ActionBuilder(); - OutputActionBuilder output = new OutputActionBuilder(); - output.setMaxLength(new Integer(0xffff)); - Uri value = new Uri(OutputPortValues.CONTROLLER.toString()); + final OutputActionBuilder output = new OutputActionBuilder(); + output.setMaxLength(Integer.valueOf(0xffff)); + final Uri value = new Uri(OutputPortValues.CONTROLLER.toString()); output.setOutputNodeConnector(value); ab.setAction(new OutputActionCaseBuilder().setOutputAction(output.build()).build()); ab.setOrder(0); ab.setKey(new ActionKey(0)); actionList.add(ab.build()); // Create an Apply Action - ApplyActionsBuilder aab = new ApplyActionsBuilder(); + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); aab.setAction(actionList); // Wrap our Apply Action in an Instruction - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); ib.setOrder(0); ib.setKey(new InstructionKey(0)); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; } - private static InstructionsBuilder createOutputInstructions(String outputType, int outputValue) { - List actionList = new ArrayList(); - ActionBuilder ab = new ActionBuilder(); + private static InstructionsBuilder createOutputInstructions(final String outputType, final int outputValue) { + final List actionList = new ArrayList(); + final ActionBuilder ab = new ActionBuilder(); - OutputActionBuilder output = new OutputActionBuilder(); + final OutputActionBuilder output = new OutputActionBuilder(); output.setMaxLength(outputValue); - Uri value = new Uri(outputType); + final Uri value = new Uri(outputType); output.setOutputNodeConnector(value); ab.setAction(new OutputActionCaseBuilder().setOutputAction(output.build()).build()); ab.setOrder(0); ab.setKey(new ActionKey(0)); actionList.add(ab.build()); // Create an Apply Action - ApplyActionsBuilder aab = new ApplyActionsBuilder(); + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); aab.setAction(actionList); // Wrap our Apply Action in an Instruction - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); ib.setOrder(0); ib.setKey(new InstructionKey(0)); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; } private static InstructionsBuilder createStripVlanInstructions() { - List actionList = new ArrayList(); - ActionBuilder ab = new ActionBuilder(); + final List actionList = new ArrayList(); + final ActionBuilder ab = new ActionBuilder(); - StripVlanActionBuilder stripActionBuilder = new StripVlanActionBuilder(); + final StripVlanActionBuilder stripActionBuilder = new StripVlanActionBuilder(); ab.setAction(new StripVlanActionCaseBuilder().setStripVlanAction(stripActionBuilder.build()).build()); ab.setOrder(0); ab.setKey(new ActionKey(0)); actionList.add(ab.build()); // Create an Apply Action - ApplyActionsBuilder aab = new ApplyActionsBuilder(); + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); aab.setAction(actionList); // Wrap our Apply Action in an Instruction - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); ib.setOrder(0); ib.setKey(new InstructionKey(0)); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; @@ -1037,24 +1070,26 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { private static InstructionsBuilder createAppyActionInstruction2() { - List actionList = new ArrayList(); - ActionBuilder ab = new ActionBuilder(); + final List actionList = new ArrayList(); + final ActionBuilder ab = new ActionBuilder(); - PushMplsActionBuilder push = new PushMplsActionBuilder(); - push.setEthernetType(new Integer(0x8847)); + final PushMplsActionBuilder push = new PushMplsActionBuilder(); + push.setEthernetType(Integer.valueOf(0x8847)); ab.setAction(new PushMplsActionCaseBuilder().setPushMplsAction(push.build()).build()); + ab.setKey(new ActionKey(0)); actionList.add(ab.build()); // Create an Apply Action - ApplyActionsBuilder aab = new ApplyActionsBuilder(); + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); aab.setAction(actionList); // Wrap our Apply Action in an Instruction - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); + ib.setKey(new InstructionKey(0)); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; @@ -1062,24 +1097,26 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { private static InstructionsBuilder createAppyActionInstruction3() { - List actionList = new ArrayList(); - ActionBuilder ab = new ActionBuilder(); + final List actionList = new ArrayList(); + final ActionBuilder ab = new ActionBuilder(); - PushPbbActionBuilder pbb = new PushPbbActionBuilder(); - pbb.setEthernetType(new Integer(0x88E7)); + final PushPbbActionBuilder pbb = new PushPbbActionBuilder(); + pbb.setEthernetType(Integer.valueOf(0x88E7)); ab.setAction(new PushPbbActionCaseBuilder().setPushPbbAction(pbb.build()).build()); + ab.setKey(new ActionKey(0)); actionList.add(ab.build()); // Create an Apply Action - ApplyActionsBuilder aab = new ApplyActionsBuilder(); + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); aab.setAction(actionList); // Wrap our Apply Action in an Instruction - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); + ib.setKey(new InstructionKey(0)); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; @@ -1087,25 +1124,27 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { private static InstructionsBuilder createAppyActionInstruction4() { - List actionList = new ArrayList(); - ActionBuilder ab = new ActionBuilder(); + final List actionList = new ArrayList(); + final ActionBuilder ab = new ActionBuilder(); - PushVlanActionBuilder vlan = new PushVlanActionBuilder(); - vlan.setEthernetType(new Integer(0x8100)); + final PushVlanActionBuilder vlan = new PushVlanActionBuilder(); + vlan.setEthernetType(Integer.valueOf(0x8100)); ab.setAction(new PushVlanActionCaseBuilder().setPushVlanAction(vlan.build()).build()); + ab.setKey(new ActionKey(0)); actionList.add(ab.build()); // Create an Apply Action - ApplyActionsBuilder aab = new ApplyActionsBuilder(); + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); aab.setAction(actionList); // Wrap our Apply Action in an Instruction - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); + ib.setKey(new InstructionKey(0)); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; @@ -1113,24 +1152,26 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { private static InstructionsBuilder createAppyActionInstruction5() { - List actionList = new ArrayList(); - ActionBuilder ab = new ActionBuilder(); + final List actionList = new ArrayList(); + final ActionBuilder ab = new ActionBuilder(); - SetDlDstActionBuilder setdl = new SetDlDstActionBuilder(); + final SetDlDstActionBuilder setdl = new SetDlDstActionBuilder(); setdl.setAddress(new MacAddress("00:05:b9:7c:81:5f")); ab.setAction(new SetDlDstActionCaseBuilder().setSetDlDstAction(setdl.build()).build()); + ab.setKey(new ActionKey(0)); actionList.add(ab.build()); // Create an Apply Action - ApplyActionsBuilder aab = new ApplyActionsBuilder(); + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); aab.setAction(actionList); // Wrap our Apply Action in an Instruction - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); + ib.setKey(new InstructionKey(0)); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; @@ -1138,25 +1179,27 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { private static InstructionsBuilder createAppyActionInstruction6() { - List actionList = new ArrayList(); - ActionBuilder ab = new ActionBuilder(); + final List actionList = new ArrayList(); + final ActionBuilder ab = new ActionBuilder(); - SetDlSrcActionBuilder src = new SetDlSrcActionBuilder(); + final SetDlSrcActionBuilder src = new SetDlSrcActionBuilder(); src.setAddress(new MacAddress("00:05:b9:7c:81:5f")); ab.setAction(new SetDlSrcActionCaseBuilder().setSetDlSrcAction(src.build()).build()); + ab.setKey(new ActionKey(0)); actionList.add(ab.build()); // Create an Apply Action - ApplyActionsBuilder aab = new ApplyActionsBuilder(); + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); aab.setAction(actionList); // Wrap our Apply Action in an Instruction - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); + ib.setKey(new InstructionKey(0)); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; @@ -1164,25 +1207,27 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { private static InstructionsBuilder createAppyActionInstruction7() { - List actionList = new ArrayList(); - ActionBuilder ab = new ActionBuilder(); + final List actionList = new ArrayList(); + final ActionBuilder ab = new ActionBuilder(); - SetVlanIdActionBuilder vl = new SetVlanIdActionBuilder(); - VlanId a = new VlanId(4000); + final SetVlanIdActionBuilder vl = new SetVlanIdActionBuilder(); + final VlanId a = new VlanId(4000); vl.setVlanId(a); ab.setAction(new SetVlanIdActionCaseBuilder().setSetVlanIdAction(vl.build()).build()); + ab.setKey(new ActionKey(0)); actionList.add(ab.build()); // Create an Apply Action - ApplyActionsBuilder aab = new ApplyActionsBuilder(); + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); aab.setAction(actionList); // Wrap our Apply Action in an Instruction - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); + ib.setKey(new InstructionKey(0)); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; @@ -1190,25 +1235,27 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { private static InstructionsBuilder createAppyActionInstruction8() { - List actionList = new ArrayList(); - ActionBuilder ab = new ActionBuilder(); + final List actionList = new ArrayList(); + final ActionBuilder ab = new ActionBuilder(); - SetVlanPcpActionBuilder pcp = new SetVlanPcpActionBuilder(); - VlanPcp pcp1 = new VlanPcp((short) 2); + final SetVlanPcpActionBuilder pcp = new SetVlanPcpActionBuilder(); + final VlanPcp pcp1 = new VlanPcp((short) 2); pcp.setVlanPcp(pcp1); ab.setAction(new SetVlanPcpActionCaseBuilder().setSetVlanPcpAction(pcp.build()).build()); + ab.setKey(new ActionKey(0)); actionList.add(ab.build()); // Create an Apply Action - ApplyActionsBuilder aab = new ApplyActionsBuilder(); + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); aab.setAction(actionList); // Wrap our Apply Action in an Instruction - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); + ib.setKey(new InstructionKey(0)); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; @@ -1216,25 +1263,28 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { private static InstructionsBuilder createAppyActionInstruction88() { - List actionList = new ArrayList(); - ActionBuilder ab = new ActionBuilder(); + final List actionList = new ArrayList(); + final ActionBuilder ab = new ActionBuilder(); - SetVlanPcpActionBuilder pcp = new SetVlanPcpActionBuilder(); - VlanPcp pcp1 = new VlanPcp((short) 9); + final SetVlanPcpActionBuilder pcp = new SetVlanPcpActionBuilder(); + // the code point is a 3-bit(0-7) field representing the frame priority level + final VlanPcp pcp1 = new VlanPcp((short) 4); pcp.setVlanPcp(pcp1); ab.setAction(new SetVlanPcpActionCaseBuilder().setSetVlanPcpAction(pcp.build()).build()); + ab.setKey(new ActionKey(0)); actionList.add(ab.build()); // Create an Apply Action - ApplyActionsBuilder aab = new ApplyActionsBuilder(); + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); aab.setAction(actionList); // Wrap our Apply Action in an Instruction - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); + ib.setKey(new InstructionKey(0)); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; @@ -1242,23 +1292,25 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { private static InstructionsBuilder createAppyActionInstruction9() { - List actionList = new ArrayList(); - ActionBuilder ab = new ActionBuilder(); + final List actionList = new ArrayList(); + final ActionBuilder ab = new ActionBuilder(); - CopyTtlInBuilder ttlin = new CopyTtlInBuilder(); + final CopyTtlInBuilder ttlin = new CopyTtlInBuilder(); ab.setAction(new CopyTtlInCaseBuilder().setCopyTtlIn(ttlin.build()).build()); + ab.setKey(new ActionKey(0)); actionList.add(ab.build()); // Create an Apply Action - ApplyActionsBuilder aab = new ApplyActionsBuilder(); + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); aab.setAction(actionList); // Wrap our Apply Action in an Instruction - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); + ib.setKey(new InstructionKey(0)); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; @@ -1266,23 +1318,25 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { private static InstructionsBuilder createAppyActionInstruction10() { - List actionList = new ArrayList(); - ActionBuilder ab = new ActionBuilder(); + final List actionList = new ArrayList(); + final ActionBuilder ab = new ActionBuilder(); - CopyTtlOutBuilder ttlout = new CopyTtlOutBuilder(); + final CopyTtlOutBuilder ttlout = new CopyTtlOutBuilder(); ab.setAction(new CopyTtlOutCaseBuilder().setCopyTtlOut(ttlout.build()).build()); + ab.setKey(new ActionKey(0)); actionList.add(ab.build()); // Create an Apply Action - ApplyActionsBuilder aab = new ApplyActionsBuilder(); + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); aab.setAction(actionList); // Wrap our Apply Action in an Instruction - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); + ib.setKey(new InstructionKey(0)); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; @@ -1290,25 +1344,26 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { private static InstructionsBuilder createAppyActionInstruction11() { - List actionList = new ArrayList(); - ActionBuilder ab = new ActionBuilder(); + final List actionList = new ArrayList(); + final ActionBuilder ab = new ActionBuilder(); - DecMplsTtlBuilder mpls = new DecMplsTtlBuilder(); + final DecMplsTtlBuilder mpls = new DecMplsTtlBuilder(); ab.setAction(new DecMplsTtlCaseBuilder().setDecMplsTtl(mpls.build()).build()); + ab.setKey(new ActionKey(0)); actionList.add(ab.build()); // Create an Apply Action - ApplyActionsBuilder aab = new ApplyActionsBuilder(); + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); aab.setAction(actionList); // Wrap our Apply Action in an Instruction - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); ib.setKey(new InstructionKey(0)); ib.setOrder(0); // Put our Instruction in a list of Instruction - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; @@ -1316,24 +1371,26 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { private static InstructionsBuilder createAppyActionInstruction12() { - List actionList = new ArrayList(); - ActionBuilder ab = new ActionBuilder(); + final List actionList = new ArrayList(); + final ActionBuilder ab = new ActionBuilder(); - DecNwTtlBuilder nwttl = new DecNwTtlBuilder(); + final DecNwTtlBuilder nwttl = new DecNwTtlBuilder(); ab.setAction(new DecNwTtlCaseBuilder().setDecNwTtl(nwttl.build()).build()); + ab.setKey(new ActionKey(0)); actionList.add(ab.build()); // Create an Apply Action - ApplyActionsBuilder aab = new ApplyActionsBuilder(); + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); aab.setAction(actionList); // Wrap our Apply Action in an Instruction - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); + ib.setKey(new InstructionKey(0)); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; @@ -1341,24 +1398,26 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { private static InstructionsBuilder createAppyActionInstruction13() { - List actionList = new ArrayList(); - ActionBuilder ab = new ActionBuilder(); + final List actionList = new ArrayList(); + final ActionBuilder ab = new ActionBuilder(); - DropActionBuilder drop = new DropActionBuilder(); + final DropActionBuilder drop = new DropActionBuilder(); ab.setAction(new DropActionCaseBuilder().setDropAction(drop.build()).build()); + ab.setKey(new ActionKey(0)); actionList.add(ab.build()); // Create an Apply Action - ApplyActionsBuilder aab = new ApplyActionsBuilder(); + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); aab.setAction(actionList); // Wrap our Apply Action in an Instruction - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); + ib.setKey(new InstructionKey(0)); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; @@ -1366,23 +1425,25 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { private static InstructionsBuilder createAppyActionInstruction14() { - List actionList = new ArrayList(); - ActionBuilder ab = new ActionBuilder(); + final List actionList = new ArrayList(); + final ActionBuilder ab = new ActionBuilder(); - FloodActionBuilder fld = new FloodActionBuilder(); + final FloodActionBuilder fld = new FloodActionBuilder(); ab.setAction(new FloodActionCaseBuilder().setFloodAction(fld.build()).build()); + ab.setKey(new ActionKey(0)); actionList.add(ab.build()); // Create an Apply Action - ApplyActionsBuilder aab = new ApplyActionsBuilder(); + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); aab.setAction(actionList); // Wrap our Apply Action in an Instruction - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); + ib.setKey(new InstructionKey(0)); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; @@ -1390,23 +1451,25 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { private static InstructionsBuilder createAppyActionInstruction15() { - List actionList = new ArrayList(); - ActionBuilder ab = new ActionBuilder(); + final List actionList = new ArrayList(); + final ActionBuilder ab = new ActionBuilder(); - FloodAllActionBuilder fldall = new FloodAllActionBuilder(); + final FloodAllActionBuilder fldall = new FloodAllActionBuilder(); ab.setAction(new FloodAllActionCaseBuilder().setFloodAllAction(fldall.build()).build()); + ab.setKey(new ActionKey(0)); actionList.add(ab.build()); // Create an Apply Action - ApplyActionsBuilder aab = new ApplyActionsBuilder(); + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); aab.setAction(actionList); // Wrap our Apply Action in an Instruction - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); + ib.setKey(new InstructionKey(0)); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; @@ -1414,26 +1477,28 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { private static InstructionsBuilder createAppyActionInstruction16() { - List actionList = new ArrayList(); - ActionBuilder ab = new ActionBuilder(); + final List actionList = new ArrayList(); + final ActionBuilder ab = new ActionBuilder(); - GroupActionBuilder groupActionB = new GroupActionBuilder(); + final GroupActionBuilder groupActionB = new GroupActionBuilder(); groupActionB.setGroupId(1L); groupActionB.setGroup("0"); ab.setAction(new GroupActionCaseBuilder().setGroupAction(groupActionB.build()).build()); + ab.setKey(new ActionKey(0)); actionList.add(ab.build()); // Create an Apply Action - ApplyActionsBuilder aab = new ApplyActionsBuilder(); + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); aab.setAction(actionList); // Wrap our Apply Action in an Instruction - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); + ib.setKey(new InstructionKey(0)); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; @@ -1441,23 +1506,25 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { private static InstructionsBuilder createAppyActionInstruction17() { - List actionList = new ArrayList(); - ActionBuilder ab = new ActionBuilder(); + final List actionList = new ArrayList(); + final ActionBuilder ab = new ActionBuilder(); - HwPathActionBuilder hwPathB = new HwPathActionBuilder(); + final HwPathActionBuilder hwPathB = new HwPathActionBuilder(); ab.setAction(new HwPathActionCaseBuilder().setHwPathAction(hwPathB.build()).build()); + ab.setKey(new ActionKey(0)); actionList.add(ab.build()); // Create an Apply Action - ApplyActionsBuilder aab = new ApplyActionsBuilder(); + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); aab.setAction(actionList); // Wrap our Apply Action in an Instruction - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); + ib.setKey(new InstructionKey(0)); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; @@ -1465,24 +1532,26 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { private static InstructionsBuilder createAppyActionInstruction18() { - List actionList = new ArrayList(); - ActionBuilder ab = new ActionBuilder(); + final List actionList = new ArrayList(); + final ActionBuilder ab = new ActionBuilder(); - LoopbackActionBuilder loopbackActionBuilder = new LoopbackActionBuilder(); + final LoopbackActionBuilder loopbackActionBuilder = new LoopbackActionBuilder(); ab.setAction(new LoopbackActionCaseBuilder().setLoopbackAction(loopbackActionBuilder.build()).build()); + ab.setKey(new ActionKey(0)); actionList.add(ab.build()); // Create an Apply Action - ApplyActionsBuilder aab = new ApplyActionsBuilder(); + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); aab.setAction(actionList); // Wrap our Apply Action in an Instruction - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); + ib.setKey(new InstructionKey(0)); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; @@ -1490,24 +1559,26 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { private static InstructionsBuilder createAppyActionInstruction19() { - List actionList = new ArrayList(); - ActionBuilder ab = new ActionBuilder(); + final List actionList = new ArrayList(); + final ActionBuilder ab = new ActionBuilder(); - PopMplsActionBuilder popMplsActionBuilder = new PopMplsActionBuilder(); + final PopMplsActionBuilder popMplsActionBuilder = new PopMplsActionBuilder(); popMplsActionBuilder.setEthernetType(0XB); ab.setAction(new PopMplsActionCaseBuilder().setPopMplsAction(popMplsActionBuilder.build()).build()); + ab.setKey(new ActionKey(0)); actionList.add(ab.build()); // Create an Apply Action - ApplyActionsBuilder aab = new ApplyActionsBuilder(); + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); aab.setAction(actionList); // Wrap our Apply Action in an Instruction - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); + ib.setKey(new InstructionKey(0)); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; @@ -1515,23 +1586,25 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { private static InstructionsBuilder createAppyActionInstruction20() { - List actionList = new ArrayList(); - ActionBuilder ab = new ActionBuilder(); + final List actionList = new ArrayList(); + final ActionBuilder ab = new ActionBuilder(); - PopPbbActionBuilder popPbbActionBuilder = new PopPbbActionBuilder(); + final PopPbbActionBuilder popPbbActionBuilder = new PopPbbActionBuilder(); ab.setAction(new PopPbbActionCaseBuilder().setPopPbbAction(popPbbActionBuilder.build()).build()); + ab.setKey(new ActionKey(0)); actionList.add(ab.build()); // Create an Apply Action - ApplyActionsBuilder aab = new ApplyActionsBuilder(); + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); aab.setAction(actionList); // Wrap our Apply Action in an Instruction - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); + ib.setKey(new InstructionKey(0)); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; @@ -1539,24 +1612,26 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { private static InstructionsBuilder createAppyActionInstruction21() { - List actionList = new ArrayList(); - ActionBuilder ab = new ActionBuilder(); + final List actionList = new ArrayList(); + final ActionBuilder ab = new ActionBuilder(); - PopVlanActionBuilder popVlanActionBuilder = new PopVlanActionBuilder(); + final PopVlanActionBuilder popVlanActionBuilder = new PopVlanActionBuilder(); ab.setAction(new PopVlanActionCaseBuilder().setPopVlanAction(popVlanActionBuilder.build()).build()); + ab.setKey(new ActionKey(0)); actionList.add(ab.build()); // Create an Apply Action - ApplyActionsBuilder aab = new ApplyActionsBuilder(); + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); aab.setAction(actionList); // Wrap our Apply Action in an Instruction - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); + ib.setKey(new InstructionKey(0)); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; @@ -1564,50 +1639,54 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { private static InstructionsBuilder createAppyActionInstruction22() { - List actionList = new ArrayList(); - ActionBuilder ab = new ActionBuilder(); + final List actionList = new ArrayList(); + final ActionBuilder ab = new ActionBuilder(); - SetDlTypeActionBuilder setDlTypeActionBuilder = new SetDlTypeActionBuilder(); + final SetDlTypeActionBuilder setDlTypeActionBuilder = new SetDlTypeActionBuilder(); setDlTypeActionBuilder.setDlType(new EtherType(8L)); ab.setAction(new SetDlTypeActionCaseBuilder().setSetDlTypeAction(setDlTypeActionBuilder.build()).build()); + ab.setKey(new ActionKey(0)); actionList.add(ab.build()); // Create an Apply Action - ApplyActionsBuilder aab = new ApplyActionsBuilder(); + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); aab.setAction(actionList); // Wrap our Apply Action in an Instruction - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); + ib.setKey(new InstructionKey(0)); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; } - private static InstructionsBuilder createAppyActionInstruction23(NodeId nodeId) { + private static InstructionsBuilder createAppyActionInstruction23(final NodeId nodeId) { - List actionList = new ArrayList(); - ActionBuilder ab = new ActionBuilder(); + final List actionList = new ArrayList(); + final ActionBuilder ab = new ActionBuilder(); - SetFieldBuilder setFieldBuilder = new SetFieldBuilder(); + final SetFieldBuilder setFieldBuilder = new SetFieldBuilder(); setFieldBuilder.setInPort(new NodeConnectorId(nodeId + ":2")); + ab.setKey(new ActionKey(0)); actionList.add(ab.build()); // Create an Apply Action - ApplyActionsBuilder aab = new ApplyActionsBuilder(); + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); aab.setAction(actionList); // Wrap our Apply Action in an Instruction - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); + ib.setKey(new InstructionKey(0)); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; @@ -1615,25 +1694,27 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { private static InstructionsBuilder createAppyActionInstruction24() { - List actionList = new ArrayList(); - ActionBuilder ab = new ActionBuilder(); + final List actionList = new ArrayList(); + final ActionBuilder ab = new ActionBuilder(); - SetMplsTtlActionBuilder setMplsTtlActionBuilder = new SetMplsTtlActionBuilder(); + final SetMplsTtlActionBuilder setMplsTtlActionBuilder = new SetMplsTtlActionBuilder(); setMplsTtlActionBuilder.setMplsTtl((short) 0X1); ab.setAction(new SetMplsTtlActionCaseBuilder().setSetMplsTtlAction(setMplsTtlActionBuilder.build()).build()); + ab.setKey(new ActionKey(0)); actionList.add(ab.build()); // Create an Apply Action - ApplyActionsBuilder aab = new ApplyActionsBuilder(); + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); aab.setAction(actionList); // Wrap our Apply Action in an Instruction - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); + ib.setKey(new InstructionKey(0)); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; @@ -1641,28 +1722,30 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { private static InstructionsBuilder createAppyActionInstruction25() { - List actionList = new ArrayList(); - ActionBuilder ab = new ActionBuilder(); + final List actionList = new ArrayList(); + final ActionBuilder ab = new ActionBuilder(); - SetNextHopActionBuilder setNextHopActionBuilder = new SetNextHopActionBuilder(); - Ipv4Builder ipnext = new Ipv4Builder(); - Ipv4Prefix prefix = new Ipv4Prefix("10.0.0.1/24"); + final SetNextHopActionBuilder setNextHopActionBuilder = new SetNextHopActionBuilder(); + final Ipv4Builder ipnext = new Ipv4Builder(); + final Ipv4Prefix prefix = new Ipv4Prefix(IPV4_PREFIX); ipnext.setIpv4Address(prefix); setNextHopActionBuilder.setAddress(ipnext.build()); ab.setAction(new SetNextHopActionCaseBuilder().setSetNextHopAction(setNextHopActionBuilder.build()).build()); + ab.setKey(new ActionKey(0)); actionList.add(ab.build()); // Create an Apply Action - ApplyActionsBuilder aab = new ApplyActionsBuilder(); + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); aab.setAction(actionList); // Wrap our Apply Action in an Instruction - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); + ib.setKey(new InstructionKey(0)); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; @@ -1670,28 +1753,30 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { private static InstructionsBuilder createAppyActionInstruction26() { - List actionList = new ArrayList(); - ActionBuilder ab = new ActionBuilder(); + final List actionList = new ArrayList(); + final ActionBuilder ab = new ActionBuilder(); - SetNwDstActionBuilder setNwDstActionBuilder = new SetNwDstActionBuilder(); - Ipv4Builder ipdst = new Ipv4Builder(); - Ipv4Prefix prefixdst = new Ipv4Prefix("10.0.0.21/24"); + final SetNwDstActionBuilder setNwDstActionBuilder = new SetNwDstActionBuilder(); + final Ipv4Builder ipdst = new Ipv4Builder(); + final Ipv4Prefix prefixdst = new Ipv4Prefix("10.0.0.21/24"); ipdst.setIpv4Address(prefixdst); setNwDstActionBuilder.setAddress(ipdst.build()); ab.setAction(new SetNwDstActionCaseBuilder().setSetNwDstAction(setNwDstActionBuilder.build()).build()); + ab.setKey(new ActionKey(0)); actionList.add(ab.build()); // Create an Apply Action - ApplyActionsBuilder aab = new ApplyActionsBuilder(); + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); aab.setAction(actionList); // Wrap our Apply Action in an Instruction - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); + ib.setKey(new InstructionKey(0)); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; @@ -1699,28 +1784,30 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { private static InstructionsBuilder createAppyActionInstruction27() { - List actionList = new ArrayList(); - ActionBuilder ab = new ActionBuilder(); + final List actionList = new ArrayList(); + final ActionBuilder ab = new ActionBuilder(); - SetNwSrcActionBuilder setNwsrcActionBuilder = new SetNwSrcActionBuilder(); - Ipv4Builder ipsrc = new Ipv4Builder(); - Ipv4Prefix prefixsrc = new Ipv4Prefix("10.0.23.21/24"); + final SetNwSrcActionBuilder setNwsrcActionBuilder = new SetNwSrcActionBuilder(); + final Ipv4Builder ipsrc = new Ipv4Builder(); + final Ipv4Prefix prefixsrc = new Ipv4Prefix("10.0.23.21/24"); ipsrc.setIpv4Address(prefixsrc); setNwsrcActionBuilder.setAddress(ipsrc.build()); ab.setAction(new SetNwSrcActionCaseBuilder().setSetNwSrcAction(setNwsrcActionBuilder.build()).build()); + ab.setKey(new ActionKey(0)); actionList.add(ab.build()); // Create an Apply Action - ApplyActionsBuilder aab = new ApplyActionsBuilder(); + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); aab.setAction(actionList); // Wrap our Apply Action in an Instruction - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); + ib.setKey(new InstructionKey(0)); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; @@ -1728,24 +1815,26 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { private static InstructionsBuilder createAppyActionInstruction28() { - List actionList = new ArrayList(); - ActionBuilder ab = new ActionBuilder(); + final List actionList = new ArrayList(); + final ActionBuilder ab = new ActionBuilder(); - SetNwTosActionBuilder setNwTosActionBuilder = new SetNwTosActionBuilder(); + final SetNwTosActionBuilder setNwTosActionBuilder = new SetNwTosActionBuilder(); setNwTosActionBuilder.setTos(8); ab.setAction(new SetNwTosActionCaseBuilder().setSetNwTosAction(setNwTosActionBuilder.build()).build()); + ab.setKey(new ActionKey(0)); actionList.add(ab.build()); // Create an Apply Action - ApplyActionsBuilder aab = new ApplyActionsBuilder(); + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); aab.setAction(actionList); // Wrap our Apply Action in an Instruction - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); + ib.setKey(new InstructionKey(0)); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; @@ -1753,25 +1842,27 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { private static InstructionsBuilder createAppyActionInstruction29() { - List actionList = new ArrayList(); - ActionBuilder ab = new ActionBuilder(); + final List actionList = new ArrayList(); + final ActionBuilder ab = new ActionBuilder(); - SetNwTtlActionBuilder setNwTtlActionBuilder = new SetNwTtlActionBuilder(); + final SetNwTtlActionBuilder setNwTtlActionBuilder = new SetNwTtlActionBuilder(); setNwTtlActionBuilder.setNwTtl((short) 1); ab.setAction(new SetNwTtlActionCaseBuilder().setSetNwTtlAction(setNwTtlActionBuilder.build()).build()); + ab.setKey(new ActionKey(0)); actionList.add(ab.build()); // Create an Apply Action - ApplyActionsBuilder aab = new ApplyActionsBuilder(); + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); aab.setAction(actionList); // Wrap our Apply Action in an Instruction - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); + ib.setKey(new InstructionKey(0)); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; @@ -1779,24 +1870,26 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { private static InstructionsBuilder createAppyActionInstruction30() { - List actionList = new ArrayList(); - ActionBuilder ab = new ActionBuilder(); + final List actionList = new ArrayList(); + final ActionBuilder ab = new ActionBuilder(); - SetQueueActionBuilder setQueueActionBuilder = new SetQueueActionBuilder(); + final SetQueueActionBuilder setQueueActionBuilder = new SetQueueActionBuilder(); setQueueActionBuilder.setQueueId(1L); ab.setAction(new SetQueueActionCaseBuilder().setSetQueueAction(setQueueActionBuilder.build()).build()); + ab.setKey(new ActionKey(0)); actionList.add(ab.build()); // Create an Apply Action - ApplyActionsBuilder aab = new ApplyActionsBuilder(); + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); aab.setAction(actionList); // Wrap our Apply Action in an Instruction - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); + ib.setKey(new InstructionKey(0)); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; @@ -1804,25 +1897,27 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { private static InstructionsBuilder createAppyActionInstruction31() { - List actionList = new ArrayList(); - ActionBuilder ab = new ActionBuilder(); + final List actionList = new ArrayList(); + final ActionBuilder ab = new ActionBuilder(); - SetTpDstActionBuilder setTpDstActionBuilder = new SetTpDstActionBuilder(); + final SetTpDstActionBuilder setTpDstActionBuilder = new SetTpDstActionBuilder(); setTpDstActionBuilder.setPort(new PortNumber(109)); ab.setAction(new SetTpDstActionCaseBuilder().setSetTpDstAction(setTpDstActionBuilder.build()).build()); + ab.setKey(new ActionKey(0)); actionList.add(ab.build()); // Create an Apply Action - ApplyActionsBuilder aab = new ApplyActionsBuilder(); + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); aab.setAction(actionList); // Wrap our Apply Action in an Instruction - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); + ib.setKey(new InstructionKey(0)); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; @@ -1830,25 +1925,27 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { private static InstructionsBuilder createAppyActionInstruction32() { - List actionList = new ArrayList(); - ActionBuilder ab = new ActionBuilder(); + final List actionList = new ArrayList(); + final ActionBuilder ab = new ActionBuilder(); - SetTpSrcActionBuilder setTpSrcActionBuilder = new SetTpSrcActionBuilder(); + final SetTpSrcActionBuilder setTpSrcActionBuilder = new SetTpSrcActionBuilder(); setTpSrcActionBuilder.setPort(new PortNumber(109)); ab.setAction(new SetTpSrcActionCaseBuilder().setSetTpSrcAction(setTpSrcActionBuilder.build()).build()); + ab.setKey(new ActionKey(0)); actionList.add(ab.build()); // Create an Apply Action - ApplyActionsBuilder aab = new ApplyActionsBuilder(); + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); aab.setAction(actionList); // Wrap our Apply Action in an Instruction - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); + ib.setKey(new InstructionKey(0)); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; @@ -1856,25 +1953,27 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { private static InstructionsBuilder createAppyActionInstruction33() { - List actionList = new ArrayList(); - ActionBuilder ab = new ActionBuilder(); + final List actionList = new ArrayList(); + final ActionBuilder ab = new ActionBuilder(); - SetVlanCfiActionBuilder setVlanCfiActionBuilder = new SetVlanCfiActionBuilder(); + final SetVlanCfiActionBuilder setVlanCfiActionBuilder = new SetVlanCfiActionBuilder(); setVlanCfiActionBuilder.setVlanCfi(new VlanCfi(2)); ab.setAction(new SetVlanCfiActionCaseBuilder().setSetVlanCfiAction(setVlanCfiActionBuilder.build()).build()); + ab.setKey(new ActionKey(0)); actionList.add(ab.build()); // Create an Apply Action - ApplyActionsBuilder aab = new ApplyActionsBuilder(); + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); aab.setAction(actionList); // Wrap our Apply Action in an Instruction - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); + ib.setKey(new InstructionKey(0)); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; @@ -1882,24 +1981,26 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { private static InstructionsBuilder createAppyActionInstruction34() { - List actionList = new ArrayList(); - ActionBuilder ab = new ActionBuilder(); + final List actionList = new ArrayList(); + final ActionBuilder ab = new ActionBuilder(); - SwPathActionBuilder swPathAction = new SwPathActionBuilder(); + final SwPathActionBuilder swPathAction = new SwPathActionBuilder(); ab.setAction(new SwPathActionCaseBuilder().setSwPathAction(swPathAction.build()).build()); + ab.setKey(new ActionKey(0)); actionList.add(ab.build()); // Create an Apply Action - ApplyActionsBuilder aab = new ApplyActionsBuilder(); + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); aab.setAction(actionList); // Wrap our Apply Action in an Instruction - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); + ib.setKey(new InstructionKey(0)); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; @@ -1907,24 +2008,24 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { private static InstructionsBuilder createAppyActionInstruction35() { - List actionList = new ArrayList(); - ActionBuilder ab = new ActionBuilder(); - ActionBuilder ab1 = new ActionBuilder(); - ActionBuilder ab2 = new ActionBuilder(); + final List actionList = new ArrayList(); + final ActionBuilder ab = new ActionBuilder(); + final ActionBuilder ab1 = new ActionBuilder(); + final ActionBuilder ab2 = new ActionBuilder(); - SetFieldBuilder setFieldBuilder = new SetFieldBuilder(); - SetFieldBuilder setFieldBuilder1 = new SetFieldBuilder(); - SetFieldBuilder setFieldBuilder2 = new SetFieldBuilder(); + final SetFieldBuilder setFieldBuilder = new SetFieldBuilder(); + final SetFieldBuilder setFieldBuilder1 = new SetFieldBuilder(); + final SetFieldBuilder setFieldBuilder2 = new SetFieldBuilder(); // Ethernet - EthernetMatchBuilder ethernetMatch = new EthernetMatchBuilder(); - EthernetSourceBuilder ethSourceBuilder = new EthernetSourceBuilder(); + final EthernetMatchBuilder ethernetMatch = new EthernetMatchBuilder(); + final EthernetSourceBuilder ethSourceBuilder = new EthernetSourceBuilder(); ethSourceBuilder.setAddress(new MacAddress("00:00:00:00:00:01")); - EthernetMatchBuilder ethernetMatch1 = new EthernetMatchBuilder(); - EthernetDestinationBuilder ethDestBuilder = new EthernetDestinationBuilder(); + final EthernetMatchBuilder ethernetMatch1 = new EthernetMatchBuilder(); + final EthernetDestinationBuilder ethDestBuilder = new EthernetDestinationBuilder(); ethDestBuilder.setAddress(new MacAddress("00:00:00:00:00:02")); - EthernetMatchBuilder ethernetMatch2 = new EthernetMatchBuilder(); - EthernetTypeBuilder ethTypeBuilder = new EthernetTypeBuilder(); + final EthernetMatchBuilder ethernetMatch2 = new EthernetMatchBuilder(); + final EthernetTypeBuilder ethTypeBuilder = new EthernetTypeBuilder(); ethTypeBuilder.setType(new EtherType(0x86ddL)); ethernetMatch.setEthernetSource(ethSourceBuilder.build()); @@ -1945,16 +2046,17 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { ab2.setKey(new ActionKey(2)); actionList.add(ab2.build()); - ApplyActionsBuilder aab = new ApplyActionsBuilder(); + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); aab.setAction(actionList); - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setKey(new InstructionKey(0)); ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); + ib.setKey(new InstructionKey(0)); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; @@ -1962,19 +2064,19 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { private static InstructionsBuilder createAppyActionInstruction36() { - List actionList = new ArrayList(); - ActionBuilder ab = new ActionBuilder(); - ActionBuilder ab1 = new ActionBuilder(); + final List actionList = new ArrayList(); + final ActionBuilder ab = new ActionBuilder(); + final ActionBuilder ab1 = new ActionBuilder(); - SetFieldBuilder setFieldBuilder = new SetFieldBuilder(); - SetFieldBuilder setFieldBuilder1 = new SetFieldBuilder(); + final SetFieldBuilder setFieldBuilder = new SetFieldBuilder(); + final SetFieldBuilder setFieldBuilder1 = new SetFieldBuilder(); // Vlan - VlanMatchBuilder vlanBuilder = new VlanMatchBuilder(); - VlanMatchBuilder vlanBuilder1 = new VlanMatchBuilder(); - VlanIdBuilder vlanIdBuilder = new VlanIdBuilder(); - VlanId vlanId = new VlanId(10); - VlanPcp vpcp = new VlanPcp((short) 3); + final VlanMatchBuilder vlanBuilder = new VlanMatchBuilder(); + final VlanMatchBuilder vlanBuilder1 = new VlanMatchBuilder(); + final VlanIdBuilder vlanIdBuilder = new VlanIdBuilder(); + final VlanId vlanId = new VlanId(10); + final VlanPcp vpcp = new VlanPcp((short) 3); vlanBuilder.setVlanPcp(vpcp); vlanBuilder1.setVlanId(vlanIdBuilder.setVlanId(vlanId).setVlanIdPresent(true).build()); setFieldBuilder.setVlanMatch(vlanBuilder.build()); @@ -1986,16 +2088,16 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { ab1.setKey(new ActionKey(1)); actionList.add(ab1.build()); - ApplyActionsBuilder aab = new ApplyActionsBuilder(); + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); aab.setAction(actionList); - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setKey(new InstructionKey(0)); ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; @@ -2003,19 +2105,19 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { private static InstructionsBuilder createAppyActionInstruction37() { - List actionList = new ArrayList(); - ActionBuilder ab = new ActionBuilder(); - ActionBuilder ab1 = new ActionBuilder(); - ActionBuilder ab2 = new ActionBuilder(); + final List actionList = new ArrayList(); + final ActionBuilder ab = new ActionBuilder(); + final ActionBuilder ab1 = new ActionBuilder(); + final ActionBuilder ab2 = new ActionBuilder(); - SetFieldBuilder setFieldBuilder = new SetFieldBuilder(); - SetFieldBuilder setFieldBuilder1 = new SetFieldBuilder(); - SetFieldBuilder setFieldBuilder2 = new SetFieldBuilder(); + final SetFieldBuilder setFieldBuilder = new SetFieldBuilder(); + final SetFieldBuilder setFieldBuilder1 = new SetFieldBuilder(); + final SetFieldBuilder setFieldBuilder2 = new SetFieldBuilder(); // Ip - IpMatchBuilder ipmatch = new IpMatchBuilder(); - IpMatchBuilder ipmatch1 = new IpMatchBuilder(); - IpMatchBuilder ipmatch2 = new IpMatchBuilder(); - Dscp dscp = new Dscp((short) 3); + final IpMatchBuilder ipmatch = new IpMatchBuilder(); + final IpMatchBuilder ipmatch1 = new IpMatchBuilder(); + final IpMatchBuilder ipmatch2 = new IpMatchBuilder(); + final Dscp dscp = new Dscp((short) 3); ipmatch.setIpDscp(dscp); ipmatch1.setIpEcn((short) 2); ipmatch2.setIpProtocol((short) 120); @@ -2034,16 +2136,16 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { ab2.setKey(new ActionKey(2)); actionList.add(ab2.build()); - ApplyActionsBuilder aab = new ApplyActionsBuilder(); + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); aab.setAction(actionList); - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setKey(new InstructionKey(0)); ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; @@ -2051,17 +2153,17 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { private static InstructionsBuilder createAppyActionInstruction38() { - List actionList = new ArrayList(); - ActionBuilder ab = new ActionBuilder(); - ActionBuilder ab1 = new ActionBuilder(); + final List actionList = new ArrayList(); + final ActionBuilder ab = new ActionBuilder(); + final ActionBuilder ab1 = new ActionBuilder(); - SetFieldBuilder setFieldBuilder = new SetFieldBuilder(); - SetFieldBuilder setFieldBuilder1 = new SetFieldBuilder(); + final SetFieldBuilder setFieldBuilder = new SetFieldBuilder(); + final SetFieldBuilder setFieldBuilder1 = new SetFieldBuilder(); // IPv4 - Ipv4MatchBuilder ipv4Match = new Ipv4MatchBuilder(); - Ipv4MatchBuilder ipv4Match1 = new Ipv4MatchBuilder(); - Ipv4Prefix dstip = new Ipv4Prefix("200.71.9.5210"); - Ipv4Prefix srcip = new Ipv4Prefix("100.1.1.1"); + final Ipv4MatchBuilder ipv4Match = new Ipv4MatchBuilder(); + final Ipv4MatchBuilder ipv4Match1 = new Ipv4MatchBuilder(); + final Ipv4Prefix dstip = new Ipv4Prefix("200.71.9.5210"); + final Ipv4Prefix srcip = new Ipv4Prefix("100.1.1.1"); ipv4Match1.setIpv4Destination(dstip); ipv4Match.setIpv4Source(srcip); setFieldBuilder.setLayer3Match(ipv4Match.build()); @@ -2074,16 +2176,16 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { ab1.setKey(new ActionKey(1)); actionList.add(ab1.build()); - ApplyActionsBuilder aab = new ApplyActionsBuilder(); + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); aab.setAction(actionList); - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setKey(new InstructionKey(0)); ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; @@ -2091,18 +2193,18 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { private static InstructionsBuilder createAppyActionInstruction39() { - List actionList = new ArrayList(); - ActionBuilder ab = new ActionBuilder(); - ActionBuilder ab1 = new ActionBuilder(); + final List actionList = new ArrayList(); + final ActionBuilder ab = new ActionBuilder(); + final ActionBuilder ab1 = new ActionBuilder(); - SetFieldBuilder setFieldBuilder = new SetFieldBuilder(); - SetFieldBuilder setFieldBuilder1 = new SetFieldBuilder(); + final SetFieldBuilder setFieldBuilder = new SetFieldBuilder(); + final SetFieldBuilder setFieldBuilder1 = new SetFieldBuilder(); // Tcp - PortNumber tcpsrcport = new PortNumber(1213); - PortNumber tcpdstport = new PortNumber(646); - TcpMatchBuilder tcpmatch = new TcpMatchBuilder(); - TcpMatchBuilder tcpmatch1 = new TcpMatchBuilder(); + final PortNumber tcpsrcport = new PortNumber(1213); + final PortNumber tcpdstport = new PortNumber(646); + final TcpMatchBuilder tcpmatch = new TcpMatchBuilder(); + final TcpMatchBuilder tcpmatch1 = new TcpMatchBuilder(); tcpmatch.setTcpSourcePort(tcpsrcport); tcpmatch1.setTcpDestinationPort(tcpdstport); setFieldBuilder.setLayer4Match(tcpmatch.build()); @@ -2115,16 +2217,16 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { ab1.setKey(new ActionKey(1)); actionList.add(ab.build()); - ApplyActionsBuilder aab = new ApplyActionsBuilder(); + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); aab.setAction(actionList); - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setKey(new InstructionKey(0)); ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; @@ -2132,18 +2234,18 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { private static InstructionsBuilder createAppyActionInstruction40() { - List actionList = new ArrayList(); - ActionBuilder ab = new ActionBuilder(); - ActionBuilder ab1 = new ActionBuilder(); + final List actionList = new ArrayList(); + final ActionBuilder ab = new ActionBuilder(); + final ActionBuilder ab1 = new ActionBuilder(); - SetFieldBuilder setFieldBuilder = new SetFieldBuilder(); - SetFieldBuilder setFieldBuilder1 = new SetFieldBuilder(); + final SetFieldBuilder setFieldBuilder = new SetFieldBuilder(); + final SetFieldBuilder setFieldBuilder1 = new SetFieldBuilder(); // Udp - PortNumber udpsrcport = new PortNumber(1325); - PortNumber udpdstport = new PortNumber(42); - UdpMatchBuilder udpmatch = new UdpMatchBuilder(); - UdpMatchBuilder udpmatch1 = new UdpMatchBuilder(); + final PortNumber udpsrcport = new PortNumber(1325); + final PortNumber udpdstport = new PortNumber(42); + final UdpMatchBuilder udpmatch = new UdpMatchBuilder(); + final UdpMatchBuilder udpmatch1 = new UdpMatchBuilder(); udpmatch.setUdpDestinationPort(udpdstport); udpmatch1.setUdpSourcePort(udpsrcport); setFieldBuilder.setLayer4Match(udpmatch.build()); @@ -2156,16 +2258,16 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { ab1.setKey(new ActionKey(1)); actionList.add(ab1.build()); - ApplyActionsBuilder aab = new ApplyActionsBuilder(); + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); aab.setAction(actionList); - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setKey(new InstructionKey(0)); ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; @@ -2173,18 +2275,18 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { private static InstructionsBuilder createAppyActionInstruction41() { - List actionList = new ArrayList(); - ActionBuilder ab = new ActionBuilder(); - ActionBuilder ab1 = new ActionBuilder(); + final List actionList = new ArrayList(); + final ActionBuilder ab = new ActionBuilder(); + final ActionBuilder ab1 = new ActionBuilder(); - SetFieldBuilder setFieldBuilder = new SetFieldBuilder(); - SetFieldBuilder setFieldBuilder1 = new SetFieldBuilder(); + final SetFieldBuilder setFieldBuilder = new SetFieldBuilder(); + final SetFieldBuilder setFieldBuilder1 = new SetFieldBuilder(); // Sctp - SctpMatchBuilder sctpmatch = new SctpMatchBuilder(); - SctpMatchBuilder sctpmatch1 = new SctpMatchBuilder(); - PortNumber srcport = new PortNumber(1435); - PortNumber dstport = new PortNumber(22); + final SctpMatchBuilder sctpmatch = new SctpMatchBuilder(); + final SctpMatchBuilder sctpmatch1 = new SctpMatchBuilder(); + final PortNumber srcport = new PortNumber(1435); + final PortNumber dstport = new PortNumber(22); sctpmatch.setSctpSourcePort(srcport); sctpmatch1.setSctpDestinationPort(dstport); setFieldBuilder.setLayer4Match(sctpmatch.build()); @@ -2197,16 +2299,16 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { ab1.setKey(new ActionKey(1)); actionList.add(ab1.build()); - ApplyActionsBuilder aab = new ApplyActionsBuilder(); + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); aab.setAction(actionList); - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setKey(new InstructionKey(0)); ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; @@ -2214,15 +2316,15 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { private static InstructionsBuilder createAppyActionInstruction42() { - List actionList = new ArrayList(); - ActionBuilder ab = new ActionBuilder(); - ActionBuilder ab1 = new ActionBuilder(); - SetFieldBuilder setFieldBuilder = new SetFieldBuilder(); - SetFieldBuilder setFieldBuilder1 = new SetFieldBuilder(); + final List actionList = new ArrayList(); + final ActionBuilder ab = new ActionBuilder(); + final ActionBuilder ab1 = new ActionBuilder(); + final SetFieldBuilder setFieldBuilder = new SetFieldBuilder(); + final SetFieldBuilder setFieldBuilder1 = new SetFieldBuilder(); // Icmpv4 - Icmpv4MatchBuilder icmpv4match = new Icmpv4MatchBuilder(); - Icmpv4MatchBuilder icmpv4match1 = new Icmpv4MatchBuilder(); + final Icmpv4MatchBuilder icmpv4match = new Icmpv4MatchBuilder(); + final Icmpv4MatchBuilder icmpv4match1 = new Icmpv4MatchBuilder(); icmpv4match.setIcmpv4Type((short) 8); icmpv4match1.setIcmpv4Code((short) 0); setFieldBuilder.setIcmpv4Match(icmpv4match.build()); @@ -2235,16 +2337,16 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { ab1.setKey(new ActionKey(1)); actionList.add(ab1.build()); - ApplyActionsBuilder aab = new ApplyActionsBuilder(); + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); aab.setAction(actionList); - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setKey(new InstructionKey(0)); ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; @@ -2252,33 +2354,33 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { private static InstructionsBuilder createAppyActionInstruction43() { - List actionList = new ArrayList(); - ActionBuilder ab = new ActionBuilder(); - ActionBuilder ab1 = new ActionBuilder(); - ActionBuilder ab2 = new ActionBuilder(); - ActionBuilder ab3 = new ActionBuilder(); - ActionBuilder ab4 = new ActionBuilder(); + final List actionList = new ArrayList(); + final ActionBuilder ab = new ActionBuilder(); + final ActionBuilder ab1 = new ActionBuilder(); + final ActionBuilder ab2 = new ActionBuilder(); + final ActionBuilder ab3 = new ActionBuilder(); + final ActionBuilder ab4 = new ActionBuilder(); - SetFieldBuilder setFieldBuilder = new SetFieldBuilder(); - SetFieldBuilder setFieldBuilder1 = new SetFieldBuilder(); - SetFieldBuilder setFieldBuilder2 = new SetFieldBuilder(); - SetFieldBuilder setFieldBuilder3 = new SetFieldBuilder(); - SetFieldBuilder setFieldBuilder4 = new SetFieldBuilder(); + final SetFieldBuilder setFieldBuilder = new SetFieldBuilder(); + final SetFieldBuilder setFieldBuilder1 = new SetFieldBuilder(); + final SetFieldBuilder setFieldBuilder2 = new SetFieldBuilder(); + final SetFieldBuilder setFieldBuilder3 = new SetFieldBuilder(); + final SetFieldBuilder setFieldBuilder4 = new SetFieldBuilder(); // setting the values of ARP - MacAddress macdest = new MacAddress("ff:ff:ff:ff:ff:ff"); - MacAddress macsrc = new MacAddress("00:00:00:00:23:ae"); - Ipv4Prefix dstiparp = new Ipv4Prefix("200.71.9.52"); - Ipv4Prefix srciparp = new Ipv4Prefix("100.1.1.1"); + final MacAddress macdest = new MacAddress(DEST_MAC_ADDRESS); + final MacAddress macsrc = new MacAddress(SRC_MAC_ADDRESS); + final Ipv4Prefix dstiparp = new Ipv4Prefix("200.71.9.52"); + final Ipv4Prefix srciparp = new Ipv4Prefix("100.1.1.1"); // create ARP match action - ArpMatchBuilder arpmatch = new ArpMatchBuilder(); - ArpMatchBuilder arpmatch1 = new ArpMatchBuilder(); - ArpMatchBuilder arpmatch2 = new ArpMatchBuilder(); - ArpMatchBuilder arpmatch3 = new ArpMatchBuilder(); - ArpMatchBuilder arpmatch4 = new ArpMatchBuilder(); - ArpSourceHardwareAddressBuilder arpsrc = new ArpSourceHardwareAddressBuilder(); + final ArpMatchBuilder arpmatch = new ArpMatchBuilder(); + final ArpMatchBuilder arpmatch1 = new ArpMatchBuilder(); + final ArpMatchBuilder arpmatch2 = new ArpMatchBuilder(); + final ArpMatchBuilder arpmatch3 = new ArpMatchBuilder(); + final ArpMatchBuilder arpmatch4 = new ArpMatchBuilder(); + final ArpSourceHardwareAddressBuilder arpsrc = new ArpSourceHardwareAddressBuilder(); arpsrc.setAddress(macsrc); - ArpTargetHardwareAddressBuilder arpdst = new ArpTargetHardwareAddressBuilder(); + final ArpTargetHardwareAddressBuilder arpdst = new ArpTargetHardwareAddressBuilder(); arpdst.setAddress(macdest); arpmatch.setArpOp(2); arpmatch1.setArpSourceHardwareAddress(arpsrc.build()); @@ -2310,16 +2412,16 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { ab4.setKey(new ActionKey(4)); actionList.add(ab4.build()); - ApplyActionsBuilder aab = new ApplyActionsBuilder(); + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); aab.setAction(actionList); - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setKey(new InstructionKey(0)); ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; @@ -2327,49 +2429,32 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { private static InstructionsBuilder createAppyActionInstruction44() { - List actionLists = new ArrayList(); - ActionBuilder ab = new ActionBuilder(); - SetFieldBuilder setFieldBuilder = new SetFieldBuilder(); - ActionBuilder ab1 = new ActionBuilder(); - SetFieldBuilder setFieldBuilder1 = new SetFieldBuilder(); - /* - * ActionBuilder ab2 = new ActionBuilder(); SetFieldBuilder - * setFieldBuilder2 = new SetFieldBuilder(); ActionBuilder ab3 = new - * ActionBuilder(); SetFieldBuilder setFieldBuilder3 = new - * SetFieldBuilder(); ActionBuilder ab4 = new ActionBuilder(); - * SetFieldBuilder setFieldBuilder4 = new SetFieldBuilder(); - */ - ActionBuilder ab5 = new ActionBuilder(); - SetFieldBuilder setFieldBuilder5 = new SetFieldBuilder(); - ActionBuilder ab6 = new ActionBuilder(); - SetFieldBuilder setFieldBuilder6 = new SetFieldBuilder(); + final List actionLists = new ArrayList(); + final ActionBuilder ab = new ActionBuilder(); + final SetFieldBuilder setFieldBuilder = new SetFieldBuilder(); + final ActionBuilder ab1 = new ActionBuilder(); + final SetFieldBuilder setFieldBuilder1 = new SetFieldBuilder(); + final ActionBuilder ab5 = new ActionBuilder(); + final SetFieldBuilder setFieldBuilder5 = new SetFieldBuilder(); + final ActionBuilder ab6 = new ActionBuilder(); + final SetFieldBuilder setFieldBuilder6 = new SetFieldBuilder(); // IPv6 - Ipv6MatchBuilder ipv6Builder = new Ipv6MatchBuilder(); - Ipv6MatchBuilder ipv6Builder1 = new Ipv6MatchBuilder(); - // Ipv6MatchBuilder ipv6Builder2 = new Ipv6MatchBuilder(); - // Ipv6MatchBuilder ipv6Builder3 = new Ipv6MatchBuilder(); - // Ipv6MatchBuilder ipv6Builder4 = new Ipv6MatchBuilder(); - Ipv6MatchBuilder ipv6Builder5 = new Ipv6MatchBuilder(); - Ipv6MatchBuilder ipv6Builder6 = new Ipv6MatchBuilder(); - - Ipv6Prefix dstip6 = new Ipv6Prefix("2002::2"); - Ipv6Prefix srcip6 = new Ipv6Prefix("2001:0:0:0:0:0:0:1"); - // Ipv6Address ndtarget = new - // Ipv6Address("2001:db8:0:1:fd97:f9f0:a810:782e"); - // MacAddress ndsll = new MacAddress("c2:00:54:f5:00:00"); - // MacAddress ndtll = new MacAddress("00:0c:29:0e:4c:67"); - Ipv6ExtHeaderBuilder nextheader = new Ipv6ExtHeaderBuilder(); + final Ipv6MatchBuilder ipv6Builder = new Ipv6MatchBuilder(); + final Ipv6MatchBuilder ipv6Builder1 = new Ipv6MatchBuilder(); + final Ipv6MatchBuilder ipv6Builder5 = new Ipv6MatchBuilder(); + final Ipv6MatchBuilder ipv6Builder6 = new Ipv6MatchBuilder(); + + final Ipv6Prefix dstip6 = new Ipv6Prefix("2002::2/128"); + final Ipv6Prefix srcip6 = new Ipv6Prefix("2001:0:0:0:0:0:0:1/128"); + final Ipv6ExtHeaderBuilder nextheader = new Ipv6ExtHeaderBuilder(); nextheader.setIpv6Exthdr(58); - Ipv6LabelBuilder ipv6label = new Ipv6LabelBuilder(); - Ipv6FlowLabel label = new Ipv6FlowLabel(10028L); + final Ipv6LabelBuilder ipv6label = new Ipv6LabelBuilder(); + final Ipv6FlowLabel label = new Ipv6FlowLabel(10028L); ipv6label.setIpv6Flabel(label); ipv6Builder.setIpv6Source(srcip6); ipv6Builder1.setIpv6Destination(dstip6); - // ipv6Builder2.setIpv6NdTarget(ndtarget); - // ipv6Builder3.setIpv6NdSll(ndsll); - // ipv6Builder4.setIpv6NdTll(ndtll); ipv6Builder5.setIpv6ExtHeader(nextheader.build()); ipv6Builder6.setIpv6Label(ipv6label.build()); @@ -2383,22 +2468,6 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { ab1.setKey(new ActionKey(1)); actionLists.add(ab1.build()); - /* - * setFieldBuilder2.setLayer3Match(ipv6Builder2.build()); - * ab2.setAction(new - * SetFieldCaseBuilder().setSetField(setFieldBuilder2.build()).build()); - * ab2.setKey(new ActionKey(2)); actionLists.add(ab2.build()); - * - * setFieldBuilder3.setLayer3Match(ipv6Builder3.build()); - * ab3.setAction(new - * SetFieldCaseBuilder().setSetField(setFieldBuilder3.build()).build()); - * ab3.setKey(new ActionKey(3)); actionLists.add(ab3.build()); - * - * setFieldBuilder4.setLayer3Match(ipv6Builder4.build()); - * ab4.setAction(new - * SetFieldCaseBuilder().setSetField(setFieldBuilder4.build()).build()); - * ab4.setKey(new ActionKey(4)); actionLists.add(ab4.build()); - */ setFieldBuilder5.setLayer3Match(ipv6Builder5.build()); ab5.setAction(new SetFieldCaseBuilder().setSetField(setFieldBuilder5.build()).build()); ab5.setKey(new ActionKey(5)); @@ -2409,16 +2478,16 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { ab6.setKey(new ActionKey(6)); actionLists.add(ab6.build()); - ApplyActionsBuilder aab = new ApplyActionsBuilder(); + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); aab.setAction(actionLists); - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setKey(new InstructionKey(0)); ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; @@ -2426,15 +2495,15 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { private static InstructionsBuilder createAppyActionInstruction45() { - List actionList = new ArrayList(); - ActionBuilder ab = new ActionBuilder(); - SetFieldBuilder setFieldBuilder = new SetFieldBuilder(); - ActionBuilder ab1 = new ActionBuilder(); - SetFieldBuilder setFieldBuilder1 = new SetFieldBuilder(); + final List actionList = new ArrayList(); + final ActionBuilder ab = new ActionBuilder(); + final SetFieldBuilder setFieldBuilder = new SetFieldBuilder(); + final ActionBuilder ab1 = new ActionBuilder(); + final SetFieldBuilder setFieldBuilder1 = new SetFieldBuilder(); // Icmpv6 - Icmpv6MatchBuilder icmpv6match = new Icmpv6MatchBuilder(); - Icmpv6MatchBuilder icmpv6match1 = new Icmpv6MatchBuilder(); + final Icmpv6MatchBuilder icmpv6match = new Icmpv6MatchBuilder(); + final Icmpv6MatchBuilder icmpv6match1 = new Icmpv6MatchBuilder(); icmpv6match.setIcmpv6Type((short) 135); icmpv6match1.setIcmpv6Code((short) 0); setFieldBuilder.setIcmpv6Match(icmpv6match.build()); @@ -2447,16 +2516,16 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { ab1.setKey(new ActionKey(1)); actionList.add(ab1.build()); - ApplyActionsBuilder aab = new ApplyActionsBuilder(); + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); aab.setAction(actionList); - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setKey(new InstructionKey(0)); ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; @@ -2464,18 +2533,18 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { private static InstructionsBuilder createAppyActionInstruction46() { - List actionList = new ArrayList(); - ActionBuilder ab = new ActionBuilder(); - SetFieldBuilder setFieldBuilder = new SetFieldBuilder(); - ActionBuilder ab1 = new ActionBuilder(); - SetFieldBuilder setFieldBuilder1 = new SetFieldBuilder(); - ActionBuilder ab2 = new ActionBuilder(); - SetFieldBuilder setFieldBuilder2 = new SetFieldBuilder(); + final List actionList = new ArrayList(); + final ActionBuilder ab = new ActionBuilder(); + final SetFieldBuilder setFieldBuilder = new SetFieldBuilder(); + final ActionBuilder ab1 = new ActionBuilder(); + final SetFieldBuilder setFieldBuilder1 = new SetFieldBuilder(); + final ActionBuilder ab2 = new ActionBuilder(); + final SetFieldBuilder setFieldBuilder2 = new SetFieldBuilder(); // MPLS - ProtocolMatchFieldsBuilder protomatch = new ProtocolMatchFieldsBuilder(); - ProtocolMatchFieldsBuilder protomatch1 = new ProtocolMatchFieldsBuilder(); - ProtocolMatchFieldsBuilder protomatch2 = new ProtocolMatchFieldsBuilder(); + final ProtocolMatchFieldsBuilder protomatch = new ProtocolMatchFieldsBuilder(); + final ProtocolMatchFieldsBuilder protomatch1 = new ProtocolMatchFieldsBuilder(); + final ProtocolMatchFieldsBuilder protomatch2 = new ProtocolMatchFieldsBuilder(); protomatch.setMplsLabel((long) 36008); protomatch1.setMplsTc((short) 4); protomatch2.setMplsBos((short) 1); @@ -2494,16 +2563,16 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { ab2.setKey(new ActionKey(2)); actionList.add(ab2.build()); - ApplyActionsBuilder aab = new ApplyActionsBuilder(); + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); aab.setAction(actionList); - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setKey(new InstructionKey(0)); ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; @@ -2511,26 +2580,26 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { private static InstructionsBuilder createAppyActionInstruction47() { - List actionList = new ArrayList(); - ActionBuilder ab = new ActionBuilder(); - SetFieldBuilder setFieldBuilder = new SetFieldBuilder(); + final List actionList = new ArrayList(); + final ActionBuilder ab = new ActionBuilder(); + final SetFieldBuilder setFieldBuilder = new SetFieldBuilder(); // PBB - ProtocolMatchFieldsBuilder protomatch = new ProtocolMatchFieldsBuilder(); - protomatch.setPbb(new PbbBuilder().setPbbIsid(4L).setPbbMask((new BigInteger(new byte[] { 0, 1, 0, 0 }).longValue())).build()); + final ProtocolMatchFieldsBuilder protomatch = new ProtocolMatchFieldsBuilder(); + protomatch.setPbb(new PbbBuilder().setPbbIsid(4L).setPbbMask((new BigInteger(new byte[]{0, 1, 0, 0}).longValue())).build()); setFieldBuilder.setProtocolMatchFields(protomatch.build()); ab.setAction(new SetFieldCaseBuilder().setSetField(setFieldBuilder.build()).build()); actionList.add(ab.build()); - ApplyActionsBuilder aab = new ApplyActionsBuilder(); + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); aab.setAction(actionList); - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setKey(new InstructionKey(0)); ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; @@ -2538,35 +2607,100 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { private static InstructionsBuilder createAppyActionInstruction48() { - List actionList = new ArrayList(); - ActionBuilder ab = new ActionBuilder(); - SetFieldBuilder setFieldBuilder = new SetFieldBuilder(); + final List actionList = new ArrayList(); + final ActionBuilder ab = new ActionBuilder(); + final SetFieldBuilder setFieldBuilder = new SetFieldBuilder(); // Tunnel - TunnelBuilder tunnel = new TunnelBuilder(); + final TunnelBuilder tunnel = new TunnelBuilder(); tunnel.setTunnelId(BigInteger.valueOf(10668)); setFieldBuilder.setTunnel(tunnel.build()); ab.setAction(new SetFieldCaseBuilder().setSetField(setFieldBuilder.build()).build()); + ab.setKey(new ActionKey(0)); actionList.add(ab.build()); - ApplyActionsBuilder aab = new ApplyActionsBuilder(); + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); aab.setAction(actionList); - InstructionBuilder ib = new InstructionBuilder(); + final InstructionBuilder ib = new InstructionBuilder(); ib.setKey(new InstructionKey(0)); ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); // Put our Instruction in a list of Instructions - InstructionsBuilder isb = new InstructionsBuilder(); - List instructions = new ArrayList(); + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); + instructions.add(ib.build()); + isb.setInstruction(instructions); + return isb; + } + + private static InstructionsBuilder createTunnelIpv4DstInstructions() { + + final List actionList = new ArrayList(); + final ActionBuilder ab = new ActionBuilder(); + // Build the tunnel endpoint destination IPv4 address + final SetFieldBuilder setFieldBuilder = new SetFieldBuilder(); + final Ipv4Prefix dstIp = new Ipv4Prefix("172.16.100.100"); + // Add the mew IPv4 object as the tunnel destination + final TunnelIpv4MatchBuilder tunnelIpv4DstMatchBuilder = new TunnelIpv4MatchBuilder(); + tunnelIpv4DstMatchBuilder.setTunnelIpv4Destination(dstIp); + setFieldBuilder.setLayer3Match(tunnelIpv4DstMatchBuilder.build()); + // Add the IPv4 tunnel dst to the set_field value + ab.setAction(new SetFieldCaseBuilder().setSetField(setFieldBuilder.build()).build()); + ab.setOrder(0); + ab.setKey(new ActionKey(0)); + actionList.add(ab.build()); + // Resulting action is a per/flow src TEP (set_field:172.16.100.100->tun_dst) + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); + aab.setAction(actionList); + // Add the action to the ordered list of Instructions + final InstructionBuilder ib = new InstructionBuilder(); + ib.setOrder(0); + ib.setKey(new InstructionKey(0)); + ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); + // Add the Instruction in a list of Instructions + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); + instructions.add(ib.build()); + isb.setInstruction(instructions); + return isb; + } + + private static InstructionsBuilder createTunnelIpv4SrcInstructions() { + + final List actionList = new ArrayList(); + final ActionBuilder ab = new ActionBuilder(); + // Build the tunnel endpoint source IPv4 address + final SetFieldBuilder setFieldBuilder = new SetFieldBuilder(); + final Ipv4Prefix dstIp = new Ipv4Prefix("172.16.100.200"); + // Add the new IPv4 object as the tunnel destination + final TunnelIpv4MatchBuilder tunnelIpv4MatchBuilder = new TunnelIpv4MatchBuilder(); + tunnelIpv4MatchBuilder.setTunnelIpv4Source(dstIp); + setFieldBuilder.setLayer3Match(tunnelIpv4MatchBuilder.build()); + // Add the IPv4 tunnel src to the set_field value + ab.setAction(new SetFieldCaseBuilder().setSetField(setFieldBuilder.build()).build()); + ab.setOrder(0); + ab.setKey(new ActionKey(0)); + actionList.add(ab.build()); + // Resulting action is a per/flow src TEP (set_field:172.16.100.100->tun_src) + final ApplyActionsBuilder aab = new ApplyActionsBuilder(); + aab.setAction(actionList); + // Add the action to the ordered list of Instructions + final InstructionBuilder ib = new InstructionBuilder(); + ib.setOrder(0); + ib.setKey(new InstructionKey(0)); + ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build()); + // Put our Instruction in a list of Instructions + final InstructionsBuilder isb = new InstructionsBuilder(); + final List instructions = new ArrayList(); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; } private static MatchBuilder createLLDPMatch() { - MatchBuilder match = new MatchBuilder(); - EthernetMatchBuilder eth = new EthernetMatchBuilder(); - EthernetTypeBuilder ethTypeBuilder = new EthernetTypeBuilder(); + final MatchBuilder match = new MatchBuilder(); + final EthernetMatchBuilder eth = new EthernetMatchBuilder(); + final EthernetTypeBuilder ethTypeBuilder = new EthernetTypeBuilder(); ethTypeBuilder.setType(new EtherType(0x88ccL)); eth.setEthernetType(ethTypeBuilder.build()); match.setEthernetMatch(eth.build()); @@ -2577,67 +2711,35 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { * @return */ private static MatchBuilder createMatch1() { - MatchBuilder match = new MatchBuilder(); - Ipv4MatchBuilder ipv4Match = new Ipv4MatchBuilder(); - Ipv4Prefix prefix = new Ipv4Prefix("10.0.0.1/24"); + final MatchBuilder match = new MatchBuilder(); + final Ipv4MatchBuilder ipv4Match = new Ipv4MatchBuilder(); + final Ipv4Prefix prefix = new Ipv4Prefix(IPV4_PREFIX);; ipv4Match.setIpv4Destination(prefix); - Ipv4Match i4m = ipv4Match.build(); + final Ipv4Match i4m = ipv4Match.build(); match.setLayer3Match(i4m); - EthernetMatchBuilder eth = new EthernetMatchBuilder(); - EthernetTypeBuilder ethTypeBuilder = new EthernetTypeBuilder(); + final EthernetMatchBuilder eth = new EthernetMatchBuilder(); + final EthernetTypeBuilder ethTypeBuilder = new EthernetTypeBuilder(); ethTypeBuilder.setType(new EtherType(0x0800L)); eth.setEthernetType(ethTypeBuilder.build()); match.setEthernetMatch(eth.build()); return match; } - /** - * @return - */ - private static MatchBuilder createIPv4DstMatch() { - MatchBuilder match = new MatchBuilder(); - Ipv4MatchBuilder ipv4Match = new Ipv4MatchBuilder(); - Ipv4Prefix prefix = new Ipv4Prefix("10.0.0.1/24"); - ipv4Match.setIpv4Destination(prefix); - Ipv4Match i4m = ipv4Match.build(); - match.setLayer3Match(i4m); - - return match; - } - - /** - * @return - */ - private static MatchBuilder createIPv4SrcMatch() { - MatchBuilder match = new MatchBuilder(); - Ipv4MatchBuilder ipv4Match = new Ipv4MatchBuilder(); - Ipv4Prefix prefix = new Ipv4Prefix("10.20.30.40/24"); - ipv4Match.setIpv4Source(prefix); - Ipv4Match i4m = ipv4Match.build(); - match.setLayer3Match(i4m); - - EthernetMatchBuilder eth = new EthernetMatchBuilder(); - EthernetTypeBuilder ethTypeBuilder = new EthernetTypeBuilder(); - ethTypeBuilder.setType(new EtherType(0x0800L)); - eth.setEthernetType(ethTypeBuilder.build()); - match.setEthernetMatch(eth.build()); - return match; - } /** * @return */ private static MatchBuilder createMatch2() { - MatchBuilder match = new MatchBuilder(); - Ipv4MatchBuilder ipv4Match = new Ipv4MatchBuilder(); - Ipv4Prefix prefix = new Ipv4Prefix("10.0.0.1"); + final MatchBuilder match = new MatchBuilder(); + final Ipv4MatchBuilder ipv4Match = new Ipv4MatchBuilder(); + final Ipv4Prefix prefix = new Ipv4Prefix("10.0.0.1"); ipv4Match.setIpv4Source(prefix); - Ipv4Match i4m = ipv4Match.build(); + final Ipv4Match i4m = ipv4Match.build(); match.setLayer3Match(i4m); - EthernetMatchBuilder eth = new EthernetMatchBuilder(); - EthernetTypeBuilder ethTypeBuilder = new EthernetTypeBuilder(); + final EthernetMatchBuilder eth = new EthernetMatchBuilder(); + final EthernetTypeBuilder ethTypeBuilder = new EthernetTypeBuilder(); ethTypeBuilder.setType(new EtherType(0x0800L)); eth.setEthernetType(ethTypeBuilder.build()); match.setEthernetMatch(eth.build()); @@ -2648,9 +2750,9 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { * @return */ private static MatchBuilder createMatch3() { - MatchBuilder match = new MatchBuilder(); - EthernetMatchBuilder ethernetMatch = new EthernetMatchBuilder(); - EthernetSourceBuilder ethSourceBuilder = new EthernetSourceBuilder(); + final MatchBuilder match = new MatchBuilder(); + final EthernetMatchBuilder ethernetMatch = new EthernetMatchBuilder(); + final EthernetSourceBuilder ethSourceBuilder = new EthernetSourceBuilder(); ethSourceBuilder.setAddress(new MacAddress("00:00:00:00:00:01")); ethernetMatch.setEthernetSource(ethSourceBuilder.build()); match.setEthernetMatch(ethernetMatch.build()); @@ -2663,19 +2765,22 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { */ private static MatchBuilder createICMPv6Match1() { - MatchBuilder match = new MatchBuilder(); - EthernetMatchBuilder eth = new EthernetMatchBuilder(); - EthernetTypeBuilder ethTypeBuilder = new EthernetTypeBuilder(); + final MatchBuilder match = new MatchBuilder(); + final EthernetMatchBuilder eth = new EthernetMatchBuilder(); + final EthernetTypeBuilder ethTypeBuilder = new EthernetTypeBuilder(); ethTypeBuilder.setType(new EtherType(0x86ddL)); eth.setEthernetType(ethTypeBuilder.build()); match.setEthernetMatch(eth.build()); - IpMatchBuilder ipmatch = new IpMatchBuilder(); // ipv4 version + // ipv4 version + final IpMatchBuilder ipmatch = new IpMatchBuilder(); ipmatch.setIpProtocol((short) 256); match.setIpMatch(ipmatch.build()); - Icmpv6MatchBuilder icmpv6match = new Icmpv6MatchBuilder(); // icmpv6 - // match + // icmpv6 + final Icmpv6MatchBuilder icmpv6match = new Icmpv6MatchBuilder(); + + // match icmpv6match.setIcmpv6Type((short) 135); icmpv6match.setIcmpv6Code((short) 1); match.setIcmpv6Match(icmpv6match.build()); @@ -2685,51 +2790,47 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { private static MatchBuilder createMatch33() { - MatchBuilder match = new MatchBuilder(); - Ipv4MatchBuilder ipv4Match = new Ipv4MatchBuilder(); - Ipv4Prefix prefix = new Ipv4Prefix("10.0.0.10"); + final MatchBuilder match = new MatchBuilder(); + final Ipv4MatchBuilder ipv4Match = new Ipv4MatchBuilder(); + final Ipv4Prefix prefix = new Ipv4Prefix("10.0.0.10"); ipv4Match.setIpv4Source(prefix); - Ipv4Match i4m = ipv4Match.build(); + final Ipv4Match i4m = ipv4Match.build(); match.setLayer3Match(i4m); - EthernetMatchBuilder eth = new EthernetMatchBuilder(); - EthernetTypeBuilder ethTypeBuilder = new EthernetTypeBuilder(); + final EthernetMatchBuilder eth = new EthernetMatchBuilder(); + final EthernetTypeBuilder ethTypeBuilder = new EthernetTypeBuilder(); ethTypeBuilder.setType(new EtherType(0xfffeL)); eth.setEthernetType(ethTypeBuilder.build()); match.setEthernetMatch(eth.build()); return match; } - private static MatchBuilder createInphyportMatch(NodeId nodeId) { - MatchBuilder match = new MatchBuilder(); + private static MatchBuilder createInphyportMatch(final NodeId nodeId) { + final MatchBuilder match = new MatchBuilder(); match.setInPort(new NodeConnectorId(nodeId + ":202")); match.setInPhyPort(new NodeConnectorId(nodeId + ":10122")); return match; } private static MatchBuilder createEthernetMatch() { - MatchBuilder match = new MatchBuilder(); - - byte[] mask1 = new byte[] { (byte) -1, (byte) -1, 0, 0, 0, 0 }; - byte[] mask2 = new byte[] { (byte) -1, (byte) -1, (byte) -1, 0, 0, 0 }; - - EthernetMatchBuilder ethmatch = new EthernetMatchBuilder(); // ethernettype - // match - EthernetTypeBuilder ethtype = new EthernetTypeBuilder(); - EtherType type = new EtherType(0x0800L); + final MatchBuilder match = new MatchBuilder(); + final EthernetMatchBuilder ethmatch = new EthernetMatchBuilder(); // ethernettype + // match + final EthernetTypeBuilder ethtype = new EthernetTypeBuilder(); + final EtherType type = new EtherType(0x0800L); ethmatch.setEthernetType(ethtype.setType(type).build()); - EthernetDestinationBuilder ethdest = new EthernetDestinationBuilder(); // ethernet - // macaddress - // match - MacAddress macdest = new MacAddress("ff:ff:ff:ff:ff:ff"); + final EthernetDestinationBuilder ethdest = new EthernetDestinationBuilder(); // ethernet + // macaddress + // match + final MacAddress macdest = new MacAddress(DEST_MAC_ADDRESS); ethdest.setAddress(macdest); ethdest.setMask(new MacAddress("ff:ff:ff:00:00:00")); ethmatch.setEthernetDestination(ethdest.build()); - EthernetSourceBuilder ethsrc = new EthernetSourceBuilder(); - MacAddress macsrc = new MacAddress("00:00:00:00:23:ae"); + final EthernetSourceBuilder ethsrc = new EthernetSourceBuilder(); + final MacAddress macsrc = new MacAddress(SRC_MAC_ADDRESS); ethsrc.setAddress(macsrc); ethsrc.setMask(new MacAddress("ff:ff:00:00:00:00")); @@ -2744,11 +2845,12 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { */ private static MatchBuilder createVlanMatch() { - MatchBuilder match = new MatchBuilder(); - VlanMatchBuilder vlanBuilder = new VlanMatchBuilder(); // vlan match - VlanIdBuilder vlanIdBuilder = new VlanIdBuilder(); - VlanId vlanId = new VlanId(10); - VlanPcp vpcp = new VlanPcp((short) 3); + final MatchBuilder match = new MatchBuilder(); + // vlan match + final VlanMatchBuilder vlanBuilder = new VlanMatchBuilder(); + final VlanIdBuilder vlanIdBuilder = new VlanIdBuilder(); + final VlanId vlanId = new VlanId(10); + final VlanPcp vpcp = new VlanPcp((short) 3); vlanBuilder.setVlanPcp(vpcp); vlanIdBuilder.setVlanId(vlanId); vlanIdBuilder.setVlanIdPresent(true); @@ -2761,27 +2863,26 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { * @return */ private static MatchBuilder createArpMatch() { - MatchBuilder match = new MatchBuilder(); + final MatchBuilder match = new MatchBuilder(); - EthernetMatchBuilder ethmatch = new EthernetMatchBuilder(); - MacAddress macdest = new MacAddress("ff:ff:ff:ff:ff:ff"); - MacAddress macsrc = new MacAddress("00:00:00:00:23:ae"); + final EthernetMatchBuilder ethmatch = new EthernetMatchBuilder(); + final MacAddress macdest = new MacAddress(DEST_MAC_ADDRESS); + final MacAddress macsrc = new MacAddress(SRC_MAC_ADDRESS); - byte[] mask = new byte[] { (byte) -1, (byte) -1, 0, 0, 0, 0 }; - byte[] mask2 = new byte[] { (byte) -1, (byte) -1, (byte) -1, 0, 0, 0 }; - - EthernetTypeBuilder ethtype = new EthernetTypeBuilder(); - EtherType type = new EtherType(0x0806L); + final EthernetTypeBuilder ethtype = new EthernetTypeBuilder(); + final EtherType type = new EtherType(0x0806L); ethmatch.setEthernetType(ethtype.setType(type).build()); - Ipv4Prefix dstip = new Ipv4Prefix("200.71.9.52/10"); // ipv4 match - Ipv4Prefix srcip = new Ipv4Prefix("100.1.1.1/8"); + // ipv4 match + final Ipv4Prefix dstip = new Ipv4Prefix("200.71.9.52/10"); + final Ipv4Prefix srcip = new Ipv4Prefix("100.1.1.1/8"); - ArpMatchBuilder arpmatch = new ArpMatchBuilder(); // arp match - ArpSourceHardwareAddressBuilder arpsrc = new ArpSourceHardwareAddressBuilder(); + // arp match + final ArpMatchBuilder arpmatch = new ArpMatchBuilder(); + final ArpSourceHardwareAddressBuilder arpsrc = new ArpSourceHardwareAddressBuilder(); arpsrc.setAddress(macsrc); arpsrc.setMask(new MacAddress("ff:ff:ff:00:00:00")); - ArpTargetHardwareAddressBuilder arpdst = new ArpTargetHardwareAddressBuilder(); + final ArpTargetHardwareAddressBuilder arpdst = new ArpTargetHardwareAddressBuilder(); arpdst.setAddress(macdest); arpdst.setMask(new MacAddress("ff:ff:00:00:00:00")); arpmatch.setArpOp(2); @@ -2796,42 +2897,24 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { return match; } - /** - * @return - */ - private static MatchBuilder createIPMatch() { - MatchBuilder match = new MatchBuilder(); - EthernetMatchBuilder ethmatch = new EthernetMatchBuilder(); - EthernetTypeBuilder ethtype = new EthernetTypeBuilder(); - EtherType type = new EtherType(0x0800L); - ethmatch.setEthernetType(ethtype.setType(type).build()); - match.setEthernetMatch(ethmatch.build()); - - IpMatchBuilder ipmatch = new IpMatchBuilder(); // ipv4 version - ipmatch.setIpProtocol((short) 1); - Dscp dscp = new Dscp((short) 3); - ipmatch.setIpDscp(dscp); - ipmatch.setIpEcn((short) 2); - match.setIpMatch(ipmatch.build()); - return match; - } /** * @return */ private static MatchBuilder createL3IPv4Match() { - MatchBuilder match = new MatchBuilder(); + final MatchBuilder match = new MatchBuilder(); - EthernetMatchBuilder eth = new EthernetMatchBuilder(); - EthernetTypeBuilder ethTypeBuilder = new EthernetTypeBuilder(); + final EthernetMatchBuilder eth = new EthernetMatchBuilder(); + final EthernetTypeBuilder ethTypeBuilder = new EthernetTypeBuilder(); ethTypeBuilder.setType(new EtherType(0x0800L)); eth.setEthernetType(ethTypeBuilder.build()); match.setEthernetMatch(eth.build()); - Ipv4MatchBuilder ipv4Match = new Ipv4MatchBuilder(); - Ipv4Prefix dstip = new Ipv4Prefix("200.71.9.52/10"); // ipv4 match - Ipv4Prefix srcip = new Ipv4Prefix("100.1.1.1/8"); - Ipv4MatchBuilder ipv4match = new Ipv4MatchBuilder(); + final Ipv4MatchBuilder ipv4Match = new Ipv4MatchBuilder(); + // ipv4 match + final Ipv4Prefix dstip = new Ipv4Prefix("200.71.9.52/10"); + final Ipv4Prefix srcip = new Ipv4Prefix("100.1.1.1/8"); + final Ipv4MatchBuilder ipv4match = new Ipv4MatchBuilder(); ipv4match.setIpv4Destination(dstip); ipv4match.setIpv4Source(srcip); match.setLayer3Match(ipv4match.build()); @@ -2844,33 +2927,33 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { * @return */ private static MatchBuilder createL3IPv6Match() { - MatchBuilder match = new MatchBuilder(); + final MatchBuilder match = new MatchBuilder(); - EthernetMatchBuilder eth = new EthernetMatchBuilder(); - EthernetTypeBuilder ethTypeBuilder = new EthernetTypeBuilder(); + final EthernetMatchBuilder eth = new EthernetMatchBuilder(); + final EthernetTypeBuilder ethTypeBuilder = new EthernetTypeBuilder(); ethTypeBuilder.setType(new EtherType(0x86ddL)); eth.setEthernetType(ethTypeBuilder.build()); match.setEthernetMatch(eth.build()); - Ipv6Prefix dstip6 = new Ipv6Prefix("2002::2/64"); - Ipv6Prefix srcip6 = new Ipv6Prefix("2001:0:0:0:0:0:0:1/56"); - Ipv6Address ndtarget = new Ipv6Address("2001:db8:0:1:fd97:f9f0:a810:782e"); - MacAddress ndsll = new MacAddress("c2:00:54:f5:00:00"); - MacAddress ndtll = new MacAddress("00:0c:29:0e:4c:67"); - Ipv6ExtHeaderBuilder nextheader = new Ipv6ExtHeaderBuilder(); + final Ipv6Prefix dstip6 = new Ipv6Prefix("2002::2/64"); + final Ipv6Prefix srcip6 = new Ipv6Prefix("2001:0:0:0:0:0:0:1/56"); + final Ipv6Address ndtarget = new Ipv6Address("2001:db8:0:1:fd97:f9f0:a810:782e"); + final MacAddress ndsll = new MacAddress("c2:00:54:f5:00:00"); + final MacAddress ndtll = new MacAddress("00:0c:29:0e:4c:67"); + final Ipv6ExtHeaderBuilder nextheader = new Ipv6ExtHeaderBuilder(); nextheader.setIpv6Exthdr(58); - Ipv6LabelBuilder ipv6label = new Ipv6LabelBuilder(); - Ipv6FlowLabel label = new Ipv6FlowLabel(10028L); + final Ipv6LabelBuilder ipv6label = new Ipv6LabelBuilder(); + final Ipv6FlowLabel label = new Ipv6FlowLabel(10028L); ipv6label.setIpv6Flabel(label); ipv6label.setFlabelMask(new Ipv6FlowLabel(1L)); - Icmpv6MatchBuilder icmpv6match = new Icmpv6MatchBuilder(); // icmpv6 - // match + final Icmpv6MatchBuilder icmpv6match = new Icmpv6MatchBuilder(); // icmpv6 + // match icmpv6match.setIcmpv6Type((short) 135); icmpv6match.setIcmpv6Code((short) 0); match.setIcmpv6Match(icmpv6match.build()); - Ipv6MatchBuilder ipv6match = new Ipv6MatchBuilder(); + final Ipv6MatchBuilder ipv6match = new Ipv6MatchBuilder(); // ipv6match.setIpv6Source(srcip6); // ipv6match.setIpv6Destination(dstip6); // ipv6match.setIpv6ExtHeader(nextheader.build()); @@ -2889,19 +2972,19 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { */ private static MatchBuilder createICMPv4Match() { - MatchBuilder match = new MatchBuilder(); - EthernetMatchBuilder eth = new EthernetMatchBuilder(); - EthernetTypeBuilder ethTypeBuilder = new EthernetTypeBuilder(); + final MatchBuilder match = new MatchBuilder(); + final EthernetMatchBuilder eth = new EthernetMatchBuilder(); + final EthernetTypeBuilder ethTypeBuilder = new EthernetTypeBuilder(); ethTypeBuilder.setType(new EtherType(0x0800L)); eth.setEthernetType(ethTypeBuilder.build()); match.setEthernetMatch(eth.build()); - IpMatchBuilder ipmatch = new IpMatchBuilder(); // ipv4 version + final IpMatchBuilder ipmatch = new IpMatchBuilder(); // ipv4 version ipmatch.setIpProtocol((short) 1); match.setIpMatch(ipmatch.build()); - Icmpv4MatchBuilder icmpv4match = new Icmpv4MatchBuilder(); // icmpv4 - // match + final Icmpv4MatchBuilder icmpv4match = new Icmpv4MatchBuilder(); // icmpv4 + // match icmpv4match.setIcmpv4Type((short) 8); icmpv4match.setIcmpv4Code((short) 0); match.setIcmpv4Match(icmpv4match.build()); @@ -2913,19 +2996,19 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { */ private static MatchBuilder createICMPv6Match() { - MatchBuilder match = new MatchBuilder(); - EthernetMatchBuilder eth = new EthernetMatchBuilder(); - EthernetTypeBuilder ethTypeBuilder = new EthernetTypeBuilder(); + final MatchBuilder match = new MatchBuilder(); + final EthernetMatchBuilder eth = new EthernetMatchBuilder(); + final EthernetTypeBuilder ethTypeBuilder = new EthernetTypeBuilder(); ethTypeBuilder.setType(new EtherType(0x86ddL)); eth.setEthernetType(ethTypeBuilder.build()); match.setEthernetMatch(eth.build()); - IpMatchBuilder ipmatch = new IpMatchBuilder(); // ipv4 version + final IpMatchBuilder ipmatch = new IpMatchBuilder(); // ipv4 version ipmatch.setIpProtocol((short) 58); match.setIpMatch(ipmatch.build()); - Icmpv6MatchBuilder icmpv6match = new Icmpv6MatchBuilder(); // icmpv6 - // match + final Icmpv6MatchBuilder icmpv6match = new Icmpv6MatchBuilder(); // icmpv6 + // match icmpv6match.setIcmpv6Type((short) 135); icmpv6match.setIcmpv6Code((short) 1); match.setIcmpv6Match(icmpv6match.build()); @@ -2937,16 +3020,16 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { * @return */ private static MatchBuilder createToSMatch() { - MatchBuilder match = new MatchBuilder(); - EthernetMatchBuilder ethmatch = new EthernetMatchBuilder(); - EthernetTypeBuilder ethtype = new EthernetTypeBuilder(); - EtherType type = new EtherType(0x0800L); + final MatchBuilder match = new MatchBuilder(); + final EthernetMatchBuilder ethmatch = new EthernetMatchBuilder(); + final EthernetTypeBuilder ethtype = new EthernetTypeBuilder(); + final EtherType type = new EtherType(0x0800L); ethmatch.setEthernetType(ethtype.setType(type).build()); match.setEthernetMatch(ethmatch.build()); - IpMatchBuilder ipmatch = new IpMatchBuilder(); // ipv4 version + final IpMatchBuilder ipmatch = new IpMatchBuilder(); // ipv4 version ipmatch.setIpProtocol((short) 6); - Dscp dscp = new Dscp((short) 8); + final Dscp dscp = new Dscp((short) 8); ipmatch.setIpDscp(dscp); match.setIpMatch(ipmatch.build()); return match; @@ -2957,21 +3040,21 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { */ private static MatchBuilder createL4TCPMatch() { - MatchBuilder match = new MatchBuilder(); + final MatchBuilder match = new MatchBuilder(); - EthernetMatchBuilder eth = new EthernetMatchBuilder(); - EthernetTypeBuilder ethTypeBuilder = new EthernetTypeBuilder(); + final EthernetMatchBuilder eth = new EthernetMatchBuilder(); + final EthernetTypeBuilder ethTypeBuilder = new EthernetTypeBuilder(); ethTypeBuilder.setType(new EtherType(0x0800L)); eth.setEthernetType(ethTypeBuilder.build()); match.setEthernetMatch(eth.build()); - IpMatchBuilder ipmatch = new IpMatchBuilder(); // ipv4 version + final IpMatchBuilder ipmatch = new IpMatchBuilder(); // ipv4 version ipmatch.setIpProtocol((short) 6); match.setIpMatch(ipmatch.build()); - PortNumber srcport = new PortNumber(1213); - PortNumber dstport = new PortNumber(646); - TcpMatchBuilder tcpmatch = new TcpMatchBuilder(); // tcp match + final PortNumber srcport = new PortNumber(1213); + final PortNumber dstport = new PortNumber(646); + final TcpMatchBuilder tcpmatch = new TcpMatchBuilder(); // tcp match tcpmatch.setTcpSourcePort(srcport); tcpmatch.setTcpDestinationPort(dstport); match.setLayer4Match(tcpmatch.build()); @@ -2983,21 +3066,21 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { * @return */ private static MatchBuilder createL4UDPMatch() { - MatchBuilder match = new MatchBuilder(); + final MatchBuilder match = new MatchBuilder(); - EthernetMatchBuilder eth = new EthernetMatchBuilder(); - EthernetTypeBuilder ethTypeBuilder = new EthernetTypeBuilder(); + final EthernetMatchBuilder eth = new EthernetMatchBuilder(); + final EthernetTypeBuilder ethTypeBuilder = new EthernetTypeBuilder(); ethTypeBuilder.setType(new EtherType(0x0800L)); eth.setEthernetType(ethTypeBuilder.build()); match.setEthernetMatch(eth.build()); - IpMatchBuilder ipmatch = new IpMatchBuilder(); // ipv4 version + final IpMatchBuilder ipmatch = new IpMatchBuilder(); // ipv4 version ipmatch.setIpProtocol((short) 17); match.setIpMatch(ipmatch.build()); - PortNumber srcport = new PortNumber(1325); - PortNumber dstport = new PortNumber(42); - UdpMatchBuilder udpmatch = new UdpMatchBuilder(); // udp match + final PortNumber srcport = new PortNumber(1325); + final PortNumber dstport = new PortNumber(42); + final UdpMatchBuilder udpmatch = new UdpMatchBuilder(); // udp match udpmatch.setUdpDestinationPort(dstport); udpmatch.setUdpSourcePort(srcport); match.setLayer4Match(udpmatch.build()); @@ -3009,21 +3092,21 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { * @return */ private static MatchBuilder createL4SCTPMatch() { - MatchBuilder match = new MatchBuilder(); + final MatchBuilder match = new MatchBuilder(); - EthernetMatchBuilder eth = new EthernetMatchBuilder(); - EthernetTypeBuilder ethTypeBuilder = new EthernetTypeBuilder(); + final EthernetMatchBuilder eth = new EthernetMatchBuilder(); + final EthernetTypeBuilder ethTypeBuilder = new EthernetTypeBuilder(); ethTypeBuilder.setType(new EtherType(0x0800L)); eth.setEthernetType(ethTypeBuilder.build()); match.setEthernetMatch(eth.build()); - IpMatchBuilder ipmatch = new IpMatchBuilder(); // ipv4 version + final IpMatchBuilder ipmatch = new IpMatchBuilder(); // ipv4 version ipmatch.setIpProtocol((short) 132); match.setIpMatch(ipmatch.build()); - SctpMatchBuilder sctpmatch = new SctpMatchBuilder(); - PortNumber srcport = new PortNumber(1435); - PortNumber dstport = new PortNumber(22); + final SctpMatchBuilder sctpmatch = new SctpMatchBuilder(); + final PortNumber srcport = new PortNumber(1435); + final PortNumber dstport = new PortNumber(22); sctpmatch.setSctpSourcePort(srcport); sctpmatch.setSctpDestinationPort(dstport); match.setLayer4Match(sctpmatch.build()); @@ -3035,11 +3118,11 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { * @return */ private static MatchBuilder createMetadataMatch() { - MatchBuilder match = new MatchBuilder(); - byte[] metamask = new byte[] { (byte) -1, (byte) -1, (byte) -1, 0, 0, 0, (byte) 1, (byte) 1 }; - MetadataBuilder metadata = new MetadataBuilder(); // metadata match + final MatchBuilder match = new MatchBuilder(); + final byte[] metamask = new byte[]{(byte) -1, (byte) -1, (byte) -1, 0, 0, 0, (byte) 1, (byte) 1}; + final MetadataBuilder metadata = new MetadataBuilder(); // metadata match metadata.setMetadata(BigInteger.valueOf(500L)); - metadata.setMetadataMask(new BigInteger(metamask)); + metadata.setMetadataMask(new BigInteger(1, metamask)); match.setMetadata(metadata.build()); return match; @@ -3049,15 +3132,15 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { * @return */ private static MatchBuilder createMplsMatch() { - MatchBuilder match = new MatchBuilder(); + final MatchBuilder match = new MatchBuilder(); - EthernetMatchBuilder eth = new EthernetMatchBuilder(); - EthernetTypeBuilder ethTypeBuilder = new EthernetTypeBuilder(); + final EthernetMatchBuilder eth = new EthernetMatchBuilder(); + final EthernetTypeBuilder ethTypeBuilder = new EthernetTypeBuilder(); ethTypeBuilder.setType(new EtherType(0x8847L)); eth.setEthernetType(ethTypeBuilder.build()); match.setEthernetMatch(eth.build()); - ProtocolMatchFieldsBuilder protomatch = new ProtocolMatchFieldsBuilder(); // mpls + final ProtocolMatchFieldsBuilder protomatch = new ProtocolMatchFieldsBuilder(); // mpls // match protomatch.setMplsLabel((long) 36008); protomatch.setMplsTc((short) 4); @@ -3072,17 +3155,17 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { * @return */ private static MatchBuilder createPbbMatch() { - MatchBuilder match = new MatchBuilder(); + final MatchBuilder match = new MatchBuilder(); - EthernetMatchBuilder eth = new EthernetMatchBuilder(); - EthernetTypeBuilder ethTypeBuilder = new EthernetTypeBuilder(); + final EthernetMatchBuilder eth = new EthernetMatchBuilder(); + final EthernetTypeBuilder ethTypeBuilder = new EthernetTypeBuilder(); ethTypeBuilder.setType(new EtherType(0x88E7L)); eth.setEthernetType(ethTypeBuilder.build()); match.setEthernetMatch(eth.build()); - ProtocolMatchFieldsBuilder protomatch = new ProtocolMatchFieldsBuilder(); // mpls + final ProtocolMatchFieldsBuilder protomatch = new ProtocolMatchFieldsBuilder(); // mpls // match - protomatch.setPbb(new PbbBuilder().setPbbIsid(4L).setPbbMask(new BigInteger(new byte[] { 0, 1, 0, 0 }).longValue()).build()); + protomatch.setPbb(new PbbBuilder().setPbbIsid(4L).setPbbMask(new BigInteger(new byte[]{0, 1, 0, 0}).longValue()).build()); match.setProtocolMatchFields(protomatch.build()); return match; @@ -3093,95 +3176,137 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { * @return */ private static MatchBuilder createTunnelIDMatch() { - MatchBuilder match = new MatchBuilder(); - TunnelBuilder tunnel = new TunnelBuilder(); // tunnel id match + final MatchBuilder match = new MatchBuilder(); + final TunnelBuilder tunnel = new TunnelBuilder(); // tunnel id match tunnel.setTunnelId(BigInteger.valueOf(10668)); - byte[] mask = new byte[] { (byte) -1, (byte) -1, (byte) -1, 0, 0, 0, (byte) 1, (byte) 1 }; - tunnel.setTunnelMask(new BigInteger(mask)); + final byte[] mask = new byte[]{(byte) -1, (byte) -1, (byte) -1, 0, 0, 0, (byte) 1, (byte) 1}; + tunnel.setTunnelMask(new BigInteger(1, mask)); match.setTunnel(tunnel.build()); return match; } - public void _removeMDFlow(CommandInterpreter ci) { - DataModification, DataObject> modification = dataBrokerService.beginTransaction(); - NodeBuilder tn = createTestNode(ci.nextArgument()); - String flowtype = ci.nextArgument(); + /** + * Test match for TCP_Flags + * + * @return match containing Ethertype (0x0800), IP Protocol (TCP), TCP_Flag (SYN) + */ + //FIXME: move to extensible support + private static MatchBuilder createTcpFlagMatch() { + final MatchBuilder match = new MatchBuilder(); + + // Ethertype match + final EthernetMatchBuilder ethernetType = new EthernetMatchBuilder(); + final EthernetTypeBuilder ethTypeBuilder = new EthernetTypeBuilder(); + ethTypeBuilder.setType(new EtherType(0x0800L)); + ethernetType.setEthernetType(ethTypeBuilder.build()); + match.setEthernetMatch(ethernetType.build()); + + // TCP Protocol Match + final IpMatchBuilder ipMatch = new IpMatchBuilder(); // ipv4 version + ipMatch.setIpProtocol((short) 6); + match.setIpMatch(ipMatch.build()); + + // TCP Port Match + final PortNumber dstPort = new PortNumber(80); + final TcpMatchBuilder tcpMatch = new TcpMatchBuilder(); + tcpMatch.setTcpDestinationPort(dstPort); + match.setLayer4Match(tcpMatch.build()); + /** + * Defined TCP Flag values in OVS v2.1+ + * TCP_FIN 0x001 / TCP_SYN 0x002 / TCP_RST 0x004 + * TCP_PSH 0x008 / TCP_ACK 0x010 / TCP_URG 0x020 + * TCP_ECE 0x040 / TCP_CWR 0x080 / TCP_NS 0x100 + */ + final TcpFlagsMatchBuilder tcpFlagsMatch = new TcpFlagsMatchBuilder(); + tcpFlagsMatch.setTcpFlags(0x002); + match.setTcpFlagsMatch(tcpFlagsMatch.build()); + + return match; + } + + public void _removeMDFlow(final CommandInterpreter ci) { + final ReadWriteTransaction modification = dataBroker.newReadWriteTransaction(); + final NodeBuilder tn = createTestNode(ci.nextArgument()); + final String flowtype = ci.nextArgument(); FlowBuilder tf; if (flowtype.equals("fTM")) { - tf = createtablemiss(tn, flowtype, ci.nextArgument()); + tf = createtablemiss(); } else { tf = createTestFlow(tn, flowtype, ci.nextArgument()); } - InstanceIdentifier path1 = InstanceIdentifier.builder(Nodes.class).child(Node.class, tn.getKey()) + final InstanceIdentifier path1 = InstanceIdentifier.create(Nodes.class).child(Node.class, tn.getKey()) .augmentation(FlowCapableNode.class).child(Table.class, new TableKey(tf.getTableId())) - .child(Flow.class, tf.getKey()).build(); - modification.removeConfigurationData(path1); - Future> commitFuture = modification.commit(); - try { - RpcResult result = commitFuture.get(); - TransactionStatus status = result.getResult(); - ci.println("Status of Flow Data Loaded Transaction: " + status); - - } catch (InterruptedException e) { - LOG.error(e.getMessage(), e); - } catch (ExecutionException e) { - LOG.error(e.getMessage(), e); - } + .child(Flow.class, tf.getKey()); + modification.delete(LogicalDatastoreType.CONFIGURATION, path1); + final CheckedFuture commitFuture = modification.submit(); + Futures.addCallback(commitFuture, new FutureCallback() { + @Override + public void onSuccess(final Void aVoid) { + ci.println("Status of Group Data Loaded Transaction: success."); + } + + @Override + public void onFailure(final Throwable throwable) { + LOG.error(throwable.getMessage(), throwable); + ci.println(String.format("Status of Group Data Loaded Transaction : failure. Reason : %s", throwable)); + } + }); } /** * @param ci arguments: switchId flowType tableNum - * - *
-     * e.g.: addMDFlow openflow:1 f1 42
-     * 
+ *

+ *

+     *                     e.g.: addMDFlow openflow:1 f1 42
+     *                     
*/ - public void _addMDFlow(CommandInterpreter ci) { - NodeBuilder tn = createTestNode(ci.nextArgument()); - String flowtype = ci.nextArgument(); + public void _addMDFlow(final CommandInterpreter ci) { + final NodeBuilder tn = createTestNode(ci.nextArgument()); + final String flowtype = ci.nextArgument(); FlowBuilder tf; if (flowtype.equals("fTM")) { - tf = createtablemiss(tn, flowtype, ci.nextArgument()); + tf = createtablemiss(); } else { tf = createTestFlow(tn, flowtype, ci.nextArgument()); } writeFlow(ci, tf, tn); } - private void writeFlow(CommandInterpreter ci, FlowBuilder flow, NodeBuilder nodeBuilder) { - DataModification, DataObject> modification = dataBrokerService.beginTransaction(); - InstanceIdentifier path1 = InstanceIdentifier.builder(Nodes.class) + private void writeFlow(final CommandInterpreter ci, final FlowBuilder flow, final NodeBuilder nodeBuilder) { + final ReadWriteTransaction modification = dataBroker.newReadWriteTransaction(); + final InstanceIdentifier path1 = InstanceIdentifier.create(Nodes.class) .child(Node.class, nodeBuilder.getKey()).augmentation(FlowCapableNode.class) - .child(Table.class, new TableKey(flow.getTableId())).child(Flow.class, flow.getKey()).build(); - modification.putConfigurationData(nodeBuilderToInstanceId(nodeBuilder), nodeBuilder.build()); - modification.putConfigurationData(path1, flow.build()); - Future> commitFuture = modification.commit(); - try { - RpcResult result = commitFuture.get(); - TransactionStatus status = result.getResult(); - ci.println("Status of Flow Data Loaded Transaction: " + status); - - } catch (InterruptedException e) { - LOG.error(e.getMessage(), e); - } catch (ExecutionException e) { - LOG.error(e.getMessage(), e); - } - } - - public void _modifyMDFlow(CommandInterpreter ci) { - NodeBuilder tn = createTestNode(ci.nextArgument()); - FlowBuilder tf = createTestFlow(tn, ci.nextArgument(), ci.nextArgument()); - tf.setFlowName(updatedFlowName); + .child(Table.class, new TableKey(flow.getTableId())).child(Flow.class, flow.getKey()); + modification.merge(LogicalDatastoreType.CONFIGURATION, nodeBuilderToInstanceId(nodeBuilder), nodeBuilder.build(), true); + modification.merge(LogicalDatastoreType.CONFIGURATION, path1, flow.build(), true); + final CheckedFuture commitFuture = modification.submit(); + Futures.addCallback(commitFuture, new FutureCallback() { + @Override + public void onSuccess(final Void aVoid) { + ci.println("Status of Group Data Loaded Transaction: success."); + } + + @Override + public void onFailure(final Throwable throwable) { + LOG.error(throwable.getMessage(), throwable); + ci.println(String.format("Status of Group Data Loaded Transaction : failure. Reason : %s", throwable)); + } + }); + } + + public void _modifyMDFlow(final CommandInterpreter ci) { + final NodeBuilder tn = createTestNode(ci.nextArgument()); + final FlowBuilder tf = createTestFlow(tn, ci.nextArgument(), ci.nextArgument()); + tf.setFlowName(UPDATED_FLOW_NAME); writeFlow(ci, tf, tn); - tf.setFlowName(originalFlowName); + tf.setFlowName(ORIGINAL_FLOW_NAME); writeFlow(ci, tf, tn); } - private static NodeRef createNodeRef(String string) { - NodeKey key = new NodeKey(new NodeId(string)); - InstanceIdentifier path = InstanceIdentifier.builder().node(Nodes.class).node(Node.class, key) - .toInstance(); + private static NodeRef createNodeRef(final String string) { + final NodeKey key = new NodeKey(new NodeId(string)); + final InstanceIdentifier path = InstanceIdentifier.create(Nodes.class).child(Node.class, key); return new NodeRef(path); } @@ -3190,4 +3315,180 @@ public class OpenflowpluginTestCommandProvider implements CommandProvider { public String getHelp() { return "No help"; } + + /* + * usage testSwitchFlows + * ex: _perfFlowTest 10 5 1 2 + */ + public void _perfFlowTest(final CommandInterpreter ci) { + + final String numberOfSwtichesStr = ci.nextArgument(); + final String numberOfFlowsStr = ci.nextArgument(); + final String warmupIterationsStr = ci.nextArgument(); + final String threadCountStr = ci.nextArgument(); + final String warmUpStr = ci.nextArgument(); + + Collection testResults = null; + if (testResults == null) { + testResults = new ArrayList(); + } + + int numberOfSwtiches = 0; + int numberOfFlows = 0; + int warmupIterations = 0; + boolean warmUpIterations = false; + + int threadCount = 0; + if (numberOfSwtichesStr != null && !numberOfSwtichesStr.trim().equals("")) { + numberOfSwtiches = Integer.parseInt(numberOfSwtichesStr); + } else { + numberOfSwtiches = 2; + } + + if (numberOfFlowsStr != null && !numberOfFlowsStr.trim().equals("")) { + numberOfFlows = Integer.parseInt(numberOfFlowsStr); + } else { + numberOfFlows = 2; + } + + if (warmupIterationsStr != null && !warmupIterationsStr.trim().equals("")) { + warmupIterations = Integer.parseInt(warmupIterationsStr); + } else { + warmupIterations = 2; + } + + if (threadCountStr != null && !threadCountStr.trim().equals("")) { + threadCount = Integer.parseInt(threadCountStr); + } else { + threadCount = 2; + } + if (warmUpStr != null && !warmUpStr.trim().equals("") && warmUpStr.trim().equals("true")) { + warmUpIterations = true; + } else { + warmUpIterations = false; + } + ci.println("* Test Configurations*"); + ci.println("* numberOfSwtiches:::" + numberOfSwtiches + ""); + ci.println("* numberOfFlows:::" + numberOfFlows + ""); + ci.println("* warmupIterations:::" + warmupIterations + ""); + ci.println("* Number of Threads :::" + threadCount + ""); + ci.println("* Warmup Required? :::" + warmUpIterations + ""); + + String dataPath = "openflow:1"; + NodeBuilder tn; + FlowBuilder tf; + final String tableId = "0"; + if (warmUpIterations) { + ci.println("----Warmup Started-----"); + for (int j = 1; j <= warmupIterations; j++) { + for (int i = 1; i <= numberOfSwtiches; i++) { + dataPath = "openflow:" + i; + tn = createTestNode(dataPath); + for (int flow = 1; flow < numberOfFlows; flow++) { + tf = createTestFlowPerfTest("f1", tableId, flow); + writeFlow(ci, tf, tn); + } + } + } + + ci.println("----Warmup Done-----"); + } + try { + final ExecutorService executor = Executors.newFixedThreadPool(threadCount); + int tableID = 0; + for (int t = 0; t < threadCount; t++) { + tableID = t + 1; + final Runnable tRunnable = new TestFlowThread(numberOfSwtiches, numberOfFlows, ci, t, tableID); + executor.execute(tRunnable); + } + executor.shutdown(); + executor.awaitTermination(1, TimeUnit.SECONDS); + } catch (final Exception e) { + ci.println("Exception:" + e.getMessage()); + } + } + + public class TestFlowThread implements Runnable { + + int numberOfSwitches; + int numberOfFlows; + int testTime; + CommandInterpreter ci; + int testFlowsAdded; + int theadNumber; + Collection testResults = null; + int tableID = 0; + + TestFlowThread(final int numberOfSwtiches, final int numberOfFlows, final CommandInterpreter ci, final int t, final int tableID) { + this.numberOfSwitches = numberOfSwtiches; + this.numberOfFlows = numberOfFlows; + this.ci = ci; + this.theadNumber = t; + this.tableID = tableID; + } + + @Override + public void run() { + executeFlow(); + } + + public void executeFlow() { + + String dataPath = "openflow:1"; + NodeBuilder tn; + FlowBuilder tf; + //String tableId = "0"; + + ci.println("New Thread started with id: ID_" + + this.theadNumber); + int totalNumberOfFlows = 0; + final long startTime = System.currentTimeMillis(); + + for (int i = 1; i <= this.numberOfSwitches; i++) { + dataPath = "openflow:" + i; + tn = createTestNode(dataPath); + for (int flow2 = 1; flow2 <= this.numberOfFlows; flow2++) { + tf = createTestFlowPerfTest("f1", "" + this.tableID, flow2); + writeFlow(this.ci, tf, tn); + totalNumberOfFlows++; + } + } + final long endTime = System.currentTimeMillis(); + final long timeInSeconds = Math.round((endTime - startTime) / 1000); + if (timeInSeconds > 0) { + ci.println("Total flows added in Thread:" + this.theadNumber + ": Flows/Sec::" + Math.round(totalNumberOfFlows / timeInSeconds)); + } else { + ci.println("Total flows added in Thread:" + this.theadNumber + ": Flows/Sec::" + totalNumberOfFlows); + } + } + + } + + /* + * usage testAllFlows + * ex: _perfFlowTest 1 + */ + public void _testAllFlows(final CommandInterpreter ci) { + String dataPathID = ci.nextArgument(); + final int numberOfFlows = 82; + if (dataPathID == null || dataPathID.trim().equals("")) { + dataPathID = "1"; + } + ci.println("* Test All Flows *"); + ci.println("* dataPathID:::" + dataPathID + ""); + final String dataPath = "openflow:" + dataPathID; + final String tableId = "0"; + final NodeBuilder tn = createTestNode(dataPath); + FlowBuilder tf; + for (int flow = 1; flow < numberOfFlows; flow++) { + final String flowID = "f" + flow; + try { + tf = createTestFlow(tn, flowID, tableId); + writeFlow(ci, tf, tn); + } catch (final Exception e) { + ci.println("--Test Failed--Issue found while adding flow" + flow); + break; + } + } + } }