import com.google.common.util.concurrent.FutureCallback;
import com.google.common.util.concurrent.MoreExecutors;
-import java.math.BigInteger;
-import java.util.ArrayList;
-import java.util.List;
import org.eclipse.osgi.framework.console.CommandInterpreter;
import org.eclipse.osgi.framework.console.CommandProvider;
import org.opendaylight.mdsal.binding.api.DataBroker;
import org.opendaylight.mdsal.binding.api.NotificationService;
import org.opendaylight.mdsal.binding.api.ReadWriteTransaction;
+import org.opendaylight.mdsal.common.api.CommitInfo;
import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
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.Ipv6FlowLabel;
import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SwPathActionCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.controller.action._case.ControllerActionBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.copy.ttl.in._case.CopyTtlInBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.dec.nw.ttl._case.DecNwTtl;
import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.dec.nw.ttl._case.DecNwTtlBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.drop.action._case.DropAction;
import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.drop.action._case.DropActionBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.flood.all.action._case.FloodAllActionBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.group.action._case.GroupActionBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.set.vlan.id.action._case.SetVlanIdActionBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.set.vlan.pcp.action._case.SetVlanPcpActionBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.sw.path.action._case.SwPathActionBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action;
import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.ActionBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.ActionKey;
import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.address.address.Ipv4Builder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNode;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.apply.actions._case.ApplyActionsBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.go.to.table._case.GoToTableBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.meter._case.MeterBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.list.Instruction;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.list.InstructionBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.list.InstructionKey;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeKey;
import org.opendaylight.yang.gen.v1.urn.opendaylight.l2.types.rev130827.EtherType;
import org.opendaylight.yang.gen.v1.urn.opendaylight.l2.types.rev130827.VlanId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.l2.types.rev130827.VlanPcp;
import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.ethernet.match.fields.EthernetDestinationBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.ethernet.match.fields.EthernetSourceBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.ethernet.match.fields.EthernetTypeBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.ipv6.match.fields.Ipv6ExtHeaderBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.ipv6.match.fields.Ipv6LabelBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.EthernetMatchBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.Icmpv6MatchBuilder;
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.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.node.error.service.rev140410.NodeErrorListener;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.binding.util.BindingMap;
+import org.opendaylight.yangtools.yang.common.Uint16;
+import org.opendaylight.yangtools.yang.common.Uint32;
+import org.opendaylight.yangtools.yang.common.Uint64;
+import org.opendaylight.yangtools.yang.common.Uint8;
import org.osgi.framework.BundleContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-@SuppressWarnings("checkstyle:MethodName")
public class OpenflowPluginBulkTransactionProvider implements CommandProvider {
-
private static final Logger LOG = LoggerFactory.getLogger(OpenflowPluginBulkTransactionProvider.class);
+
private final DataBroker dataBroker;
private final BundleContext ctx;
private final String originalFlowName = "Foo";
private final NodeErrorListener nodeErrorListener = new NodeErrorListenerLoggingImpl();
private final NotificationService notificationService;
- public OpenflowPluginBulkTransactionProvider(DataBroker dataBroker, NotificationService notificationService,
- BundleContext ctx) {
+ public OpenflowPluginBulkTransactionProvider(final DataBroker dataBroker,
+ final NotificationService notificationService, final BundleContext ctx) {
this.dataBroker = dataBroker;
this.notificationService = notificationService;
this.ctx = ctx;
createTestFlow(createTestNode(null), null, null);
}
- private NodeBuilder createTestNode(String nodeId) {
+ private static NodeBuilder createTestNode(String nodeId) {
if (nodeId == null) {
nodeId = OpenflowpluginTestActivator.NODE_ID;
}
- NodeBuilder builder = new NodeBuilder();
- builder.setId(new NodeId(nodeId));
- builder.withKey(new NodeKey(builder.getId()));
- return builder;
+ return new NodeBuilder().setId(new NodeId(nodeId));
}
@Override
return "No help";
}
- private FlowBuilder createTestFlow(NodeBuilder nodeBuilder, String flowTypeArg, String tableId) {
+ private FlowBuilder createTestFlow(final NodeBuilder nodeBuilder, final String flowTypeArg, final String tableId) {
FlowBuilder flow = new FlowBuilder();
long id = 123;
LOG.warn("flow type not understood: {}", flowType);
}
- if (null == flow.isBarrier()) {
+ if (null == flow.getBarrier()) {
flow.setBarrier(Boolean.FALSE);
}
// flow.setBufferId(12L);
- BigInteger value = BigInteger.valueOf(10);
- BigInteger outputPort = BigInteger.valueOf(4294967295L);
- flow.setCookie(new FlowCookie(value));
- flow.setCookieMask(new FlowCookie(value));
- flow.setHardTimeout(0);
- flow.setIdleTimeout(0);
+ flow.setCookie(new FlowCookie(Uint64.TEN));
+ flow.setCookieMask(new FlowCookie(Uint64.TEN));
+ flow.setHardTimeout(Uint16.ZERO);
+ flow.setIdleTimeout(Uint16.ZERO);
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));
- flow.setOutGroup(4294967295L);
+ flow.setOutGroup(Uint32.MAX_VALUE);
// set outport to OFPP_NONE (65535) to disable remove restriction for
// flow
- flow.setOutPort(outputPort);
+ flow.setOutPort(Uint64.valueOf(4294967295L));
FlowKey key = new FlowKey(new FlowId(Long.toString(id)));
flow.withKey(key);
- flow.setPriority(2);
+ flow.setPriority(Uint16.TWO);
flow.setFlowName(originalFlowName + "X" + flowType);
return flow;
}
- private short getTableId(String tableId) {
- short table = 2;
- if (tableId == null) {
- return table;
- }
-
- try {
- table = Short.parseShort(tableId);
- } catch (NumberFormatException ex) {
- // ignore exception and continue with default value
+ private static Uint8 getTableId(final String tableId) {
+ if (tableId != null) {
+ try {
+ return Uint8.valueOf(tableId);
+ } catch (IllegalArgumentException ex) {
+ // ignore exception and continue with default value
+ }
}
-
- return table;
-
+ return Uint8.TWO;
}
- public void _addFlows(CommandInterpreter ci) {
+ @SuppressWarnings("checkstyle:MethodName")
+ public void _addFlows(final CommandInterpreter ci) {
NodeBuilder tn = createTestNode(ci.nextArgument());
String flowtype = ci.nextArgument();
Integer flowcnt = Integer.parseInt(flowtype);
writeFlow(ci, tf, tf1, tf2, tf3, tn);
}
- private InstanceIdentifier<Node> nodeBuilderToInstanceId(NodeBuilder node) {
+ private static InstanceIdentifier<Node> nodeBuilderToInstanceId(final NodeBuilder node) {
return InstanceIdentifier.create(Nodes.class).child(Node.class, node.key());
}
- public void _modifyFlows(CommandInterpreter ci) {
+ @SuppressWarnings("checkstyle:MethodName")
+ public void _modifyFlows(final CommandInterpreter ci) {
NodeBuilder tn = createTestNode(ci.nextArgument());
String flowtype = ci.nextArgument();
Integer flowcnt = Integer.parseInt(flowtype);
}
writeFlow(ci, tf, tf1, tf2, tf3, tn);
-
}
+ @SuppressWarnings("checkstyle:MethodName")
public void _removeFlows(final CommandInterpreter ci) {
ReadWriteTransaction modification = dataBroker.newReadWriteTransaction();
NodeBuilder tn = createTestNode(ci.nextArgument());
modification.delete(LogicalDatastoreType.OPERATIONAL, path4);
modification.delete(LogicalDatastoreType.CONFIGURATION, nodeBuilderToInstanceId(tn));
modification.delete(LogicalDatastoreType.CONFIGURATION, path4);
- modification.commit().addCallback(new FutureCallback<Object>() {
+ modification.commit().addCallback(new FutureCallback<CommitInfo>() {
@Override
- public void onSuccess(Object notUsed) {
+ public void onSuccess(final CommitInfo notUsed) {
ci.println("Status of Group Data Loaded Transaction: success.");
}
@Override
- public void onFailure(Throwable throwable) {
+ public void onFailure(final Throwable throwable) {
LOG.error("Status of Group Data Loaded Transaction : failure.", throwable);
ci.println(String.format("Status of Group Data Loaded Transaction : failure. Reason : %s", throwable));
}
}
- private void writeFlow(final CommandInterpreter ci, FlowBuilder flow, FlowBuilder flow1, FlowBuilder flow2,
- FlowBuilder flow3, NodeBuilder nodeBuilder) {
+ private void writeFlow(final CommandInterpreter ci, final FlowBuilder flow, final FlowBuilder flow1,
+ final FlowBuilder flow2, final FlowBuilder flow3, final NodeBuilder nodeBuilder) {
ReadWriteTransaction modification = dataBroker.newReadWriteTransaction();
InstanceIdentifier<Flow> path1 = InstanceIdentifier.create(Nodes.class)
.child(Node.class, nodeBuilder.key()).augmentation(FlowCapableNode.class)
.child(Table.class, new TableKey(flow.getTableId())).child(Flow.class, flow.key());
- modification.merge(LogicalDatastoreType.OPERATIONAL, nodeBuilderToInstanceId(nodeBuilder), nodeBuilder.build(),
- true);
- modification.merge(LogicalDatastoreType.OPERATIONAL, path1, flow.build(), true);
- modification.merge(LogicalDatastoreType.CONFIGURATION, nodeBuilderToInstanceId(nodeBuilder),
- nodeBuilder.build(), true);
- modification.merge(LogicalDatastoreType.CONFIGURATION, path1, flow.build(), true);
+ modification.mergeParentStructureMerge(LogicalDatastoreType.OPERATIONAL, nodeBuilderToInstanceId(nodeBuilder),
+ nodeBuilder.build());
+ modification.mergeParentStructureMerge(LogicalDatastoreType.OPERATIONAL, path1, flow.build());
+ modification.mergeParentStructureMerge(LogicalDatastoreType.CONFIGURATION, nodeBuilderToInstanceId(nodeBuilder),
+ nodeBuilder.build());
+ modification.mergeParentStructureMerge(LogicalDatastoreType.CONFIGURATION, path1, flow.build());
InstanceIdentifier<Flow> path2 = InstanceIdentifier.create(Nodes.class)
.child(Node.class, nodeBuilder.key()).augmentation(FlowCapableNode.class)
.child(Table.class, new TableKey(flow1.getTableId())).child(Flow.class, flow1.key());
- modification.merge(LogicalDatastoreType.OPERATIONAL, nodeBuilderToInstanceId(nodeBuilder), nodeBuilder.build(),
- true);
- modification.merge(LogicalDatastoreType.OPERATIONAL, path2, flow1.build(), true);
- modification.merge(LogicalDatastoreType.CONFIGURATION, nodeBuilderToInstanceId(nodeBuilder),
- nodeBuilder.build(), true);
- modification.merge(LogicalDatastoreType.CONFIGURATION, path2, flow1.build(), true);
+ modification.mergeParentStructureMerge(LogicalDatastoreType.OPERATIONAL, nodeBuilderToInstanceId(nodeBuilder),
+ nodeBuilder.build());
+ modification.mergeParentStructureMerge(LogicalDatastoreType.OPERATIONAL, path2, flow1.build());
+ modification.mergeParentStructureMerge(LogicalDatastoreType.CONFIGURATION, nodeBuilderToInstanceId(nodeBuilder),
+ nodeBuilder.build());
+ modification.mergeParentStructureMerge(LogicalDatastoreType.CONFIGURATION, path2, flow1.build());
InstanceIdentifier<Flow> path3 = InstanceIdentifier.create(Nodes.class)
.child(Node.class, nodeBuilder.key()).augmentation(FlowCapableNode.class)
.child(Table.class, new TableKey(flow2.getTableId())).child(Flow.class, flow2.key());
- modification.merge(LogicalDatastoreType.OPERATIONAL, nodeBuilderToInstanceId(nodeBuilder), nodeBuilder.build(),
- true);
- modification.merge(LogicalDatastoreType.OPERATIONAL, path3, flow2.build(), true);
- modification.merge(LogicalDatastoreType.CONFIGURATION, nodeBuilderToInstanceId(nodeBuilder),
- nodeBuilder.build(), true);
- modification.merge(LogicalDatastoreType.CONFIGURATION, path3, flow2.build(), true);
+ modification.mergeParentStructureMerge(LogicalDatastoreType.OPERATIONAL, nodeBuilderToInstanceId(nodeBuilder),
+ nodeBuilder.build());
+ modification.mergeParentStructureMerge(LogicalDatastoreType.OPERATIONAL, path3, flow2.build());
+ modification.mergeParentStructureMerge(LogicalDatastoreType.CONFIGURATION, nodeBuilderToInstanceId(nodeBuilder),
+ nodeBuilder.build());
+ modification.mergeParentStructureMerge(LogicalDatastoreType.CONFIGURATION, path3, flow2.build());
InstanceIdentifier<Flow> path4 = InstanceIdentifier.create(Nodes.class)
.child(Node.class, nodeBuilder.key()).augmentation(FlowCapableNode.class)
.child(Table.class, new TableKey(flow3.getTableId())).child(Flow.class, flow3.key());
- modification.merge(LogicalDatastoreType.OPERATIONAL, nodeBuilderToInstanceId(nodeBuilder), nodeBuilder.build(),
- true);
- modification.merge(LogicalDatastoreType.OPERATIONAL, path4, flow3.build(), true);
- modification.merge(LogicalDatastoreType.CONFIGURATION, nodeBuilderToInstanceId(nodeBuilder),
- nodeBuilder.build(), true);
- modification.merge(LogicalDatastoreType.CONFIGURATION, path4, flow3.build(), true);
- modification.commit().addCallback(new FutureCallback<Object>() {
+ modification.mergeParentStructureMerge(LogicalDatastoreType.OPERATIONAL, nodeBuilderToInstanceId(nodeBuilder),
+ nodeBuilder.build());
+ modification.mergeParentStructureMerge(LogicalDatastoreType.OPERATIONAL, path4, flow3.build());
+ modification.mergeParentStructureMerge(LogicalDatastoreType.CONFIGURATION, nodeBuilderToInstanceId(nodeBuilder),
+ nodeBuilder.build());
+ modification.mergeParentStructureMerge(LogicalDatastoreType.CONFIGURATION, path4, flow3.build());
+ modification.commit().addCallback(new FutureCallback<CommitInfo>() {
@Override
- public void onSuccess(Object notUsed) {
+ public void onSuccess(final CommitInfo notUsed) {
ci.println("Status of Group Data Loaded Transaction: success.");
}
@Override
- public void onFailure(Throwable throwable) {
+ public void onFailure(final Throwable throwable) {
LOG.error("Status of Group Data Loaded Transaction : failure.", throwable);
ci.println(String.format("Status of Group Data Loaded Transaction : failure. Reason : %s", throwable));
}
}
private static InstructionsBuilder createDecNwTtlInstructions() {
- DecNwTtlBuilder ta = new DecNwTtlBuilder();
- DecNwTtl decNwTtl = ta.build();
- ActionBuilder ab = new ActionBuilder();
- ab.setAction(new DecNwTtlCaseBuilder().setDecNwTtl(decNwTtl).build());
-
- // Add our drop action to a list
- List<Action> actionList = new ArrayList<>();
- actionList.add(ab.build());
-
- // Create an Apply Action
- ApplyActionsBuilder aab = new ApplyActionsBuilder();
- aab.setAction(actionList);
-
- // Wrap our Apply Action in an Instruction
- InstructionBuilder ib = new InstructionBuilder();
- ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build());
- ib.withKey(new InstructionKey(0));
- ib.setOrder(0);
-
- // Put our Instruction in a list of Instructions
- InstructionsBuilder isb = new InstructionsBuilder();
- List<Instruction> instructions = new ArrayList<>();
- instructions.add(ib.build());
- isb.setInstruction(instructions);
- return isb;
+ return new InstructionsBuilder()
+ .setInstruction(BindingMap.of(new InstructionBuilder()
+ .setOrder(0)
+ .setInstruction(new ApplyActionsCaseBuilder()
+ .setApplyActions(new ApplyActionsBuilder()
+ .setAction(BindingMap.of(new ActionBuilder()
+ .setAction(new DecNwTtlCaseBuilder().setDecNwTtl(new DecNwTtlBuilder().build()).build())
+ .build()))
+ .build())
+ .build())
+ .build()));
}
private static InstructionsBuilder createMeterInstructions() {
-
- MeterBuilder aab = new MeterBuilder();
- aab.setMeterId(new MeterId(1L));
-
- 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<Instruction> instructions = new ArrayList<>();
- instructions.add(ib.build());
- isb.setInstruction(instructions);
- return isb;
+ return new InstructionsBuilder()
+ .setInstruction(BindingMap.of(new InstructionBuilder()
+ .setOrder(0)
+ .setInstruction(new MeterCaseBuilder()
+ .setMeter(new MeterBuilder().setMeterId(new MeterId(Uint32.ONE)).build())
+ .build())
+ .build()));
}
private static InstructionsBuilder createGotoTableInstructions() {
-
- GoToTableBuilder aab = new GoToTableBuilder();
- aab.setTableId((short) 2);
-
- 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<Instruction> instructions = new ArrayList<>();
- instructions.add(ib.build());
- isb.setInstruction(instructions);
- return isb;
+ return new InstructionsBuilder()
+ .setInstruction(BindingMap.of(new InstructionBuilder()
+ .setOrder(0)
+ .setInstruction(new GoToTableCaseBuilder()
+ .setGoToTable(new GoToTableBuilder().setTableId(Uint8.TWO).build())
+ .build())
+ .build()));
}
private static InstructionsBuilder createDropInstructions() {
- DropActionBuilder dab = new DropActionBuilder();
- DropAction dropAction = dab.build();
- ActionBuilder ab = new ActionBuilder();
- ab.setAction(new DropActionCaseBuilder().setDropAction(dropAction).build());
-
- // Add our drop action to a list
- List<Action> actionList = new ArrayList<>();
- actionList.add(ab.build());
-
- // Create an Apply Action
- ApplyActionsBuilder aab = new ApplyActionsBuilder();
- aab.setAction(actionList);
-
- // Wrap our Apply Action in an Instruction
- 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<Instruction> instructions = new ArrayList<>();
- instructions.add(ib.build());
- isb.setInstruction(instructions);
- return isb;
+ return new InstructionsBuilder()
+ .setInstruction(BindingMap.of(new InstructionBuilder()
+ .setOrder(0)
+ .setInstruction(new ApplyActionsCaseBuilder()
+ .setApplyActions(new ApplyActionsBuilder()
+ .setAction(BindingMap.of(new ActionBuilder()
+ .setAction(new DropActionCaseBuilder()
+ .setDropAction(new DropActionBuilder().build())
+ .build())
+ .build()))
+ .build())
+ .build())
+ .build()));
}
private static InstructionsBuilder createAppyActionInstruction() {
-
- List<Action> actionList = new ArrayList<>();
- ActionBuilder ab = new ActionBuilder();
- ControllerActionBuilder controller = new ControllerActionBuilder();
- controller.setMaxLength(5);
- ab.setAction(new ControllerActionCaseBuilder().setControllerAction(controller.build()).build());
- actionList.add(ab.build());
- // Create an Apply Action
- ApplyActionsBuilder aab = new ApplyActionsBuilder();
- aab.setAction(actionList);
-
- // Wrap our Apply Action in an Instruction
- 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<Instruction> instructions = new ArrayList<>();
- instructions.add(ib.build());
- isb.setInstruction(instructions);
- return isb;
+ return new InstructionsBuilder()
+ .setInstruction(BindingMap.of(new InstructionBuilder()
+ .setOrder(0)
+ .setInstruction(new ApplyActionsCaseBuilder()
+ .setApplyActions(new ApplyActionsBuilder()
+ .setAction(BindingMap.of(new ActionBuilder()
+ .setAction(new ControllerActionCaseBuilder()
+ .setControllerAction(new ControllerActionBuilder()
+ .setMaxLength(Uint16.valueOf(5))
+ .build())
+ .build())
+ .build()))
+ .build())
+ .build())
+ .build()));
}
private static InstructionsBuilder createSentToControllerInstructions() {
- ActionBuilder ab = new ActionBuilder();
-
- OutputActionBuilder output = new OutputActionBuilder();
- output.setMaxLength(0xffff);
- Uri value = new Uri(OutputPortValues.CONTROLLER.toString());
- output.setOutputNodeConnector(value);
- ab.setAction(new OutputActionCaseBuilder().setOutputAction(output.build()).build());
- ab.setOrder(0);
- ab.withKey(new ActionKey(0));
-
- List<Action> actionList = new ArrayList<>();
- actionList.add(ab.build());
- // Create an Apply Action
- ApplyActionsBuilder aab = new ApplyActionsBuilder();
- aab.setAction(actionList);
-
- // Wrap our Apply Action in an Instruction
- InstructionBuilder ib = new InstructionBuilder();
- ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build());
- ib.setOrder(0);
- ib.withKey(new InstructionKey(0));
-
- // Put our Instruction in a list of Instructions
- InstructionsBuilder isb = new InstructionsBuilder();
- List<Instruction> instructions = new ArrayList<>();
- instructions.add(ib.build());
- isb.setInstruction(instructions);
- return isb;
+ return new InstructionsBuilder()
+ .setInstruction(BindingMap.of(new InstructionBuilder()
+ .setOrder(0)
+ .setInstruction(new ApplyActionsCaseBuilder()
+ .setApplyActions(new ApplyActionsBuilder()
+ .setAction(BindingMap.of(new ActionBuilder()
+ .setOrder(0)
+ .setAction(new OutputActionCaseBuilder()
+ .setOutputAction(new OutputActionBuilder()
+ .setMaxLength(Uint16.MAX_VALUE)
+ .setOutputNodeConnector(new Uri(OutputPortValues.CONTROLLER.toString()))
+ .build())
+ .build())
+ .build()))
+ .build())
+ .build())
+ .build()));
}
private static InstructionsBuilder createAppyActionInstruction2() {
-
- List<Action> actionList = new ArrayList<>();
- ActionBuilder ab = new ActionBuilder();
-
- PushMplsActionBuilder push = new PushMplsActionBuilder();
- push.setEthernetType(0x8847);
- ab.setAction(new PushMplsActionCaseBuilder().setPushMplsAction(push.build()).build());
- actionList.add(ab.build());
- // Create an Apply Action
- ApplyActionsBuilder aab = new ApplyActionsBuilder();
- aab.setAction(actionList);
-
- // Wrap our Apply Action in an Instruction
- 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<Instruction> instructions = new ArrayList<>();
- instructions.add(ib.build());
- isb.setInstruction(instructions);
- return isb;
+ return new InstructionsBuilder()
+ .setInstruction(BindingMap.of(new InstructionBuilder()
+ .setOrder(0)
+ .setInstruction(new ApplyActionsCaseBuilder()
+ .setApplyActions(new ApplyActionsBuilder()
+ .setAction(BindingMap.of(new ActionBuilder()
+ .setAction(new PushMplsActionCaseBuilder()
+ .setPushMplsAction(new PushMplsActionBuilder()
+ .setEthernetType(Uint16.valueOf(0x8847))
+ .build())
+ .build())
+ .build()))
+ .build())
+ .build())
+ .build()));
}
private static InstructionsBuilder createAppyActionInstruction3() {
-
- List<Action> actionList = new ArrayList<>();
- ActionBuilder ab = new ActionBuilder();
-
- PushPbbActionBuilder pbb = new PushPbbActionBuilder();
- pbb.setEthernetType(0x88E7);
- ab.setAction(new PushPbbActionCaseBuilder().setPushPbbAction(pbb.build()).build());
- actionList.add(ab.build());
- // Create an Apply Action
- ApplyActionsBuilder aab = new ApplyActionsBuilder();
- aab.setAction(actionList);
-
- // Wrap our Apply Action in an Instruction
- 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<Instruction> instructions = new ArrayList<>();
- instructions.add(ib.build());
- isb.setInstruction(instructions);
- return isb;
+ return new InstructionsBuilder()
+ .setInstruction(BindingMap.of(new InstructionBuilder()
+ .setOrder(0)
+ .setInstruction(new ApplyActionsCaseBuilder()
+ .setApplyActions(new ApplyActionsBuilder()
+ .setAction(BindingMap.of(new ActionBuilder()
+ .setAction(new PushPbbActionCaseBuilder()
+ .setPushPbbAction(new PushPbbActionBuilder()
+ .setEthernetType(Uint16.valueOf(0x88E7))
+ .build())
+ .build())
+ .build()))
+ .build())
+ .build())
+ .build()));
}
private static InstructionsBuilder createAppyActionInstruction6() {
-
- List<Action> actionList = new ArrayList<>();
- ActionBuilder ab = new ActionBuilder();
-
- SetDlSrcActionBuilder src = new SetDlSrcActionBuilder();
- src.setAddress(new MacAddress("00:05:b9:7c:81:5f"));
- ab.setAction(new SetDlSrcActionCaseBuilder().setSetDlSrcAction(src.build()).build());
- actionList.add(ab.build());
-
- // Create an Apply Action
- ApplyActionsBuilder aab = new ApplyActionsBuilder();
- aab.setAction(actionList);
-
- // Wrap our Apply Action in an Instruction
- 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<Instruction> instructions = new ArrayList<>();
- instructions.add(ib.build());
- isb.setInstruction(instructions);
- return isb;
+ return new InstructionsBuilder()
+ .setInstruction(BindingMap.of(new InstructionBuilder()
+ .setOrder(0)
+ .setInstruction(new ApplyActionsCaseBuilder()
+ .setApplyActions(new ApplyActionsBuilder()
+ .setAction(BindingMap.of(new ActionBuilder()
+ .setAction(new SetDlSrcActionCaseBuilder()
+ .setSetDlSrcAction(new SetDlSrcActionBuilder()
+ .setAddress(new MacAddress("00:05:b9:7c:81:5f"))
+ .build())
+ .build())
+ .build()))
+ .build())
+ .build())
+ .build()));
}
private static InstructionsBuilder createAppyActionInstruction7() {
-
- List<Action> actionList = new ArrayList<>();
- ActionBuilder ab = new ActionBuilder();
-
- SetVlanIdActionBuilder vl = new SetVlanIdActionBuilder();
- VlanId vlanId = new VlanId(4012);
- vl.setVlanId(vlanId);
- ab.setAction(new SetVlanIdActionCaseBuilder().setSetVlanIdAction(vl.build()).build());
- actionList.add(ab.build());
- // Create an Apply Action
- ApplyActionsBuilder aab = new ApplyActionsBuilder();
- aab.setAction(actionList);
-
- // Wrap our Apply Action in an Instruction
- 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<Instruction> instructions = new ArrayList<>();
- instructions.add(ib.build());
- isb.setInstruction(instructions);
- return isb;
+ return new InstructionsBuilder()
+ .setInstruction(BindingMap.of(new InstructionBuilder()
+ .setOrder(0)
+ .setInstruction(new ApplyActionsCaseBuilder()
+ .setApplyActions(new ApplyActionsBuilder()
+ .setAction(BindingMap.of(new ActionBuilder()
+ .setAction(new SetVlanIdActionCaseBuilder()
+ .setSetVlanIdAction(new SetVlanIdActionBuilder()
+ .setVlanId(new VlanId(Uint16.valueOf(4012)))
+ .build())
+ .build())
+ .build()))
+ .build())
+ .build())
+ .build()));
}
private static InstructionsBuilder createAppyActionInstruction8() {
-
- List<Action> actionList = new ArrayList<>();
- ActionBuilder ab = new ActionBuilder();
-
- SetVlanPcpActionBuilder pcp = new SetVlanPcpActionBuilder();
- VlanPcp pcp1 = new VlanPcp((short) 2);
- pcp.setVlanPcp(pcp1);
- ab.setAction(new SetVlanPcpActionCaseBuilder().setSetVlanPcpAction(pcp.build()).build());
- actionList.add(ab.build());
- // Create an Apply Action
- ApplyActionsBuilder aab = new ApplyActionsBuilder();
- aab.setAction(actionList);
-
- // Wrap our Apply Action in an Instruction
- 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<Instruction> instructions = new ArrayList<>();
- instructions.add(ib.build());
- isb.setInstruction(instructions);
- return isb;
+ return new InstructionsBuilder()
+ .setInstruction(BindingMap.of(new InstructionBuilder()
+ .setOrder(0)
+ .setInstruction(new ApplyActionsCaseBuilder()
+ .setApplyActions(new ApplyActionsBuilder()
+ .setAction(BindingMap.of(new ActionBuilder()
+ .setAction(new SetVlanPcpActionCaseBuilder()
+ .setSetVlanPcpAction(new SetVlanPcpActionBuilder()
+ .setVlanPcp(new VlanPcp(Uint8.TWO))
+ .build())
+ .build())
+ .build()))
+ .build())
+ .build())
+ .build()));
}
private static InstructionsBuilder createAppyActionInstruction9() {
-
- List<Action> actionList = new ArrayList<>();
- ActionBuilder ab = new ActionBuilder();
-
- CopyTtlInBuilder ttlin = new CopyTtlInBuilder();
- ab.setAction(new CopyTtlInCaseBuilder().setCopyTtlIn(ttlin.build()).build());
- actionList.add(ab.build());
- // Create an Apply Action
- ApplyActionsBuilder aab = new ApplyActionsBuilder();
- aab.setAction(actionList);
-
- // Wrap our Apply Action in an Instruction
- 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<Instruction> instructions = new ArrayList<>();
- instructions.add(ib.build());
- isb.setInstruction(instructions);
- return isb;
+ return new InstructionsBuilder()
+ .setInstruction(BindingMap.of(new InstructionBuilder()
+ .setOrder(0)
+ .setInstruction(new ApplyActionsCaseBuilder()
+ .setApplyActions(new ApplyActionsBuilder()
+ .setAction(BindingMap.of(new ActionBuilder()
+ .setAction(new CopyTtlInCaseBuilder().setCopyTtlIn(new CopyTtlInBuilder().build()).build())
+ .build()))
+ .build())
+ .build())
+ .build()));
}
private static InstructionsBuilder createAppyActionInstruction16() {
- ActionBuilder ab = new ActionBuilder();
-
- GroupActionBuilder groupActionB = new GroupActionBuilder();
- groupActionB.setGroupId(1L);
- groupActionB.setGroup("0");
- ab.setAction(new GroupActionCaseBuilder().setGroupAction(groupActionB.build()).build());
-
- List<Action> actionList = new ArrayList<>();
- actionList.add(ab.build());
-
- // Create an Apply Action
- ApplyActionsBuilder aab = new ApplyActionsBuilder();
- aab.setAction(actionList);
-
- // Wrap our Apply Action in an Instruction
- 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<Instruction> instructions = new ArrayList<>();
- instructions.add(ib.build());
- isb.setInstruction(instructions);
- return isb;
+ return new InstructionsBuilder()
+ .setInstruction(BindingMap.of(new InstructionBuilder()
+ .setOrder(0)
+ .setInstruction(new ApplyActionsCaseBuilder()
+ .setApplyActions(new ApplyActionsBuilder()
+ .setAction(BindingMap.of(new ActionBuilder()
+ .setAction(new GroupActionCaseBuilder()
+ .setGroupAction(new GroupActionBuilder().setGroupId(Uint32.ONE).setGroup("0").build())
+ .build())
+ .build()))
+ .build())
+ .build())
+ .build()));
}
private static InstructionsBuilder createAppyActionInstruction160() {
-
- List<Action> actionList = new ArrayList<>();
- ActionBuilder ab = new ActionBuilder();
-
- FloodAllActionBuilder fldall = new FloodAllActionBuilder();
- ab.setAction(new FloodAllActionCaseBuilder().setFloodAllAction(fldall.build()).build());
- actionList.add(ab.build());
- // Create an Apply Action
- ApplyActionsBuilder aab = new ApplyActionsBuilder();
- aab.setAction(actionList);
-
- // Wrap our Apply Action in an Instruction
- 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<Instruction> instructions = new ArrayList<>();
- instructions.add(ib.build());
- isb.setInstruction(instructions);
- return isb;
+ return new InstructionsBuilder()
+ .setInstruction(BindingMap.of(new InstructionBuilder()
+ .setOrder(0)
+ .setInstruction(new ApplyActionsCaseBuilder()
+ .setApplyActions(new ApplyActionsBuilder()
+ .setAction(BindingMap.of(new ActionBuilder()
+ .setAction(new FloodAllActionCaseBuilder()
+ .setFloodAllAction(new FloodAllActionBuilder().build())
+ .build())
+ .build()))
+ .build())
+ .build())
+ .build()));
}
private static InstructionsBuilder createAppyActionInstruction26() {
- ActionBuilder ab = new ActionBuilder();
-
- SetNwDstActionBuilder setNwDstActionBuilder = new SetNwDstActionBuilder();
- Ipv4Builder ipdst = new Ipv4Builder();
- Ipv4Prefix prefixdst = new Ipv4Prefix("10.0.0.21/24");
- ipdst.setIpv4Address(prefixdst);
- setNwDstActionBuilder.setAddress(ipdst.build());
- ab.setAction(new SetNwDstActionCaseBuilder().setSetNwDstAction(setNwDstActionBuilder.build()).build());
-
- List<Action> actionList = new ArrayList<>();
- actionList.add(ab.build());
-
- // Create an Apply Action
- ApplyActionsBuilder aab = new ApplyActionsBuilder();
- aab.setAction(actionList);
-
- // Wrap our Apply Action in an Instruction
- 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<Instruction> instructions = new ArrayList<>();
- instructions.add(ib.build());
- isb.setInstruction(instructions);
- return isb;
+ return new InstructionsBuilder()
+ .setInstruction(BindingMap.of(new InstructionBuilder()
+ .setOrder(0)
+ .setInstruction(new ApplyActionsCaseBuilder()
+ .setApplyActions(new ApplyActionsBuilder()
+ .setAction(BindingMap.of(new ActionBuilder()
+ .setAction(new SetNwDstActionCaseBuilder()
+ .setSetNwDstAction(new SetNwDstActionBuilder()
+ .setAddress(new Ipv4Builder()
+ .setIpv4Address(new Ipv4Prefix("10.0.0.21/24"))
+ .build())
+ .build())
+ .build())
+ .build()))
+ .build())
+ .build())
+ .build()));
}
private static InstructionsBuilder createAppyActionInstruction27() {
- ActionBuilder ab = new ActionBuilder();
-
- SetNwSrcActionBuilder setNwsrcActionBuilder = new SetNwSrcActionBuilder();
- Ipv4Builder ipsrc = new Ipv4Builder();
- Ipv4Prefix prefixsrc = new Ipv4Prefix("10.0.23.21/24");
- ipsrc.setIpv4Address(prefixsrc);
- setNwsrcActionBuilder.setAddress(ipsrc.build());
- ab.setAction(new SetNwSrcActionCaseBuilder().setSetNwSrcAction(setNwsrcActionBuilder.build()).build());
-
- List<Action> actionList = new ArrayList<>();
- actionList.add(ab.build());
-
- // Create an Apply Action
- ApplyActionsBuilder aab = new ApplyActionsBuilder();
- aab.setAction(actionList);
-
- // Wrap our Apply Action in an Instruction
- 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<Instruction> instructions = new ArrayList<>();
- instructions.add(ib.build());
- isb.setInstruction(instructions);
- return isb;
+ return new InstructionsBuilder()
+ .setInstruction(BindingMap.of(new InstructionBuilder()
+ .setOrder(0)
+ .setInstruction(new ApplyActionsCaseBuilder()
+ .setApplyActions(new ApplyActionsBuilder()
+ .setAction(BindingMap.of(new ActionBuilder()
+ .setAction(new SetNwSrcActionCaseBuilder()
+ .setSetNwSrcAction(new SetNwSrcActionBuilder()
+ .setAddress(new Ipv4Builder()
+ .setIpv4Address(new Ipv4Prefix("10.0.23.21/24"))
+ .build())
+ .build())
+ .build())
+ .build()))
+ .build())
+ .build())
+ .build()));
}
private static InstructionsBuilder createAppyActionInstruction28() {
-
- List<Action> actionList = new ArrayList<>();
- ActionBuilder ab = new ActionBuilder();
-
- SetNwTosActionBuilder setNwTosActionBuilder = new SetNwTosActionBuilder();
- setNwTosActionBuilder.setTos(8);
- ab.setAction(new SetNwTosActionCaseBuilder().setSetNwTosAction(setNwTosActionBuilder.build()).build());
- actionList.add(ab.build());
- // Create an Apply Action
- ApplyActionsBuilder aab = new ApplyActionsBuilder();
- aab.setAction(actionList);
-
- // Wrap our Apply Action in an Instruction
- 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<Instruction> instructions = new ArrayList<>();
- instructions.add(ib.build());
- isb.setInstruction(instructions);
- return isb;
+ return new InstructionsBuilder()
+ .setInstruction(BindingMap.of(new InstructionBuilder()
+ .setOrder(0)
+ .setInstruction(new ApplyActionsCaseBuilder()
+ .setApplyActions(new ApplyActionsBuilder()
+ .setAction(BindingMap.of(new ActionBuilder()
+ .setAction(new SetNwTosActionCaseBuilder()
+ .setSetNwTosAction(new SetNwTosActionBuilder().setTos(8).build())
+ .build())
+ .build()))
+ .build())
+ .build())
+ .build()));
}
private static InstructionsBuilder createAppyActionInstruction34() {
-
- List<Action> actionList = new ArrayList<>();
- ActionBuilder ab = new ActionBuilder();
-
- SwPathActionBuilder swPathAction = new SwPathActionBuilder();
- ab.setAction(new SwPathActionCaseBuilder().setSwPathAction(swPathAction.build()).build());
- actionList.add(ab.build());
-
- // Create an Apply Action
- ApplyActionsBuilder aab = new ApplyActionsBuilder();
- aab.setAction(actionList);
-
- // Wrap our Apply Action in an Instruction
- 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<Instruction> instructions = new ArrayList<>();
- instructions.add(ib.build());
- isb.setInstruction(instructions);
- return isb;
+ return new InstructionsBuilder()
+ .setInstruction(BindingMap.of(new InstructionBuilder()
+ .setOrder(0)
+ .setInstruction(new ApplyActionsCaseBuilder()
+ .setApplyActions(new ApplyActionsBuilder()
+ .setAction(BindingMap.of(new ActionBuilder()
+ .setAction(new SwPathActionCaseBuilder()
+ .setSwPathAction(new SwPathActionBuilder().build())
+ .build())
+ .build()))
+ .build())
+ .build())
+ .build()));
}
private static MatchBuilder createLLDPMatch() {
- MatchBuilder match = new MatchBuilder();
- EthernetMatchBuilder eth = new EthernetMatchBuilder();
- EthernetTypeBuilder ethTypeBuilder = new EthernetTypeBuilder();
- ethTypeBuilder.setType(new EtherType(0x88ccL));
- eth.setEthernetType(ethTypeBuilder.build());
- match.setEthernetMatch(eth.build());
- return match;
+ return new MatchBuilder()
+ .setEthernetMatch(new EthernetMatchBuilder()
+ .setEthernetType(new EthernetTypeBuilder().setType(new EtherType(Uint32.valueOf(0x88cc))).build())
+ .build());
}
private static MatchBuilder createMatch1() {
- 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);
-
- EthernetMatchBuilder eth = new EthernetMatchBuilder();
- EthernetTypeBuilder ethTypeBuilder = new EthernetTypeBuilder();
- ethTypeBuilder.setType(new EtherType(0x0800L));
- eth.setEthernetType(ethTypeBuilder.build());
- match.setEthernetMatch(eth.build());
- return match;
+ return new MatchBuilder()
+ .setLayer3Match(new Ipv4MatchBuilder().setIpv4Destination(new Ipv4Prefix("10.0.0.1/24")).build())
+ .setEthernetMatch(new EthernetMatchBuilder()
+ .setEthernetType(new EthernetTypeBuilder().setType(new EtherType(Uint32.valueOf(0x0800))).build())
+ .build());
}
private static MatchBuilder createMatch1000() {
- MatchBuilder match = new MatchBuilder();
- Ipv4MatchBuilder ipv4Match = new Ipv4MatchBuilder();
- Ipv4Prefix prefix = new Ipv4Prefix("10.1.1.1/24");
- ipv4Match.setIpv4Destination(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 new MatchBuilder()
+ .setLayer3Match(new Ipv4MatchBuilder().setIpv4Destination(new Ipv4Prefix("10.1.1.1/24")).build())
+ .setEthernetMatch(new EthernetMatchBuilder()
+ .setEthernetType(new EthernetTypeBuilder().setType(new EtherType(Uint32.valueOf(0x0800))).build())
+ .build());
}
private static MatchBuilder createMatch2() {
- MatchBuilder match = new MatchBuilder();
- Ipv4MatchBuilder ipv4Match = new Ipv4MatchBuilder();
- Ipv4Prefix prefix = new Ipv4Prefix("10.0.0.1");
- 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 new MatchBuilder()
+ .setLayer3Match(new Ipv4MatchBuilder().setIpv4Source(new Ipv4Prefix("10.0.0.1")).build())
+ .setEthernetMatch(new EthernetMatchBuilder()
+ .setEthernetType(new EthernetTypeBuilder().setType(new EtherType(Uint32.valueOf(0x0800))).build())
+ .build());
}
private static MatchBuilder createMatch3() {
- MatchBuilder match = new MatchBuilder();
- EthernetMatchBuilder ethernetMatch = new EthernetMatchBuilder();
- EthernetSourceBuilder ethSourceBuilder = new EthernetSourceBuilder();
- ethSourceBuilder.setAddress(new MacAddress("00:00:00:00:00:01"));
- ethernetMatch.setEthernetSource(ethSourceBuilder.build());
- match.setEthernetMatch(ethernetMatch.build());
-
- return match;
+ return new MatchBuilder()
+ .setEthernetMatch(new EthernetMatchBuilder()
+ .setEthernetSource(new EthernetSourceBuilder().setAddress(new MacAddress("00:00:00:00:00:01")).build())
+ .build());
}
- private static MatchBuilder createInphyportMatch(NodeId nodeId) {
- MatchBuilder match = new MatchBuilder();
- match.setInPort(new NodeConnectorId(nodeId + ":202"));
- match.setInPhyPort(new NodeConnectorId(nodeId + ":10122"));
- return match;
+ private static MatchBuilder createInphyportMatch(final NodeId nodeId) {
+ return new MatchBuilder()
+ .setInPort(new NodeConnectorId(nodeId + ":202"))
+ .setInPhyPort(new NodeConnectorId(nodeId + ":10122"));
}
private static MatchBuilder createEthernetMatch() {
- EthernetMatchBuilder ethmatch = new EthernetMatchBuilder(); // ethernettype
- // match
- EthernetTypeBuilder ethtype = new EthernetTypeBuilder();
- 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");
- ethdest.setAddress(macdest);
- // ethdest.setMask(mask1);
-
- ethmatch.setEthernetDestination(ethdest.build());
-
- EthernetSourceBuilder ethsrc = new EthernetSourceBuilder();
- MacAddress macsrc = new MacAddress("00:00:00:00:23:ae");
- ethsrc.setAddress(macsrc);
- // ethsrc.setMask(mask2);
-
- ethmatch.setEthernetSource(ethsrc.build());
-
- MatchBuilder match = new MatchBuilder();
- match.setEthernetMatch(ethmatch.build());
- return match;
-
+ return new MatchBuilder()
+ .setEthernetMatch(new EthernetMatchBuilder()
+ .setEthernetType(new EthernetTypeBuilder().setType(new EtherType(Uint32.valueOf(0x0800))).build())
+ .setEthernetDestination(new EthernetDestinationBuilder()
+ .setAddress(new MacAddress("ff:ff:ff:ff:ff:ff"))
+ // .setMask(mask1)
+ .build())
+ .setEthernetSource(new EthernetSourceBuilder()
+ .setAddress(new MacAddress("00:00:00:00:23:ae"))
+ // .setMask(mask2)
+ .build())
+ .build());
}
private static MatchBuilder createL3IPv6Match() {
- MatchBuilder match = new MatchBuilder();
-
- EthernetMatchBuilder eth = new EthernetMatchBuilder();
- EthernetTypeBuilder ethTypeBuilder = new EthernetTypeBuilder();
- ethTypeBuilder.setType(new EtherType(0x86ddL));
- eth.setEthernetType(ethTypeBuilder.build());
- match.setEthernetMatch(eth.build());
-
- Ipv6ExtHeaderBuilder nextheader = new Ipv6ExtHeaderBuilder();
- nextheader.setIpv6Exthdr(58);
- Ipv6LabelBuilder ipv6label = new Ipv6LabelBuilder();
- Ipv6FlowLabel label = new Ipv6FlowLabel(10028L);
- ipv6label.setIpv6Flabel(label);
- // ipv6label.setFlabelMask(new byte[] { 0, 1, -1, -1 });
-
- Icmpv6MatchBuilder icmpv6match = new Icmpv6MatchBuilder(); // icmpv6
- // match
- icmpv6match.setIcmpv6Type((short) 135);
- icmpv6match.setIcmpv6Code((short) 0);
- match.setIcmpv6Match(icmpv6match.build());
-
- Ipv6MatchBuilder ipv6match = new Ipv6MatchBuilder();
- // ipv6match.setIpv6Source(srcip6);
- // ipv6match.setIpv6Destination(dstip6);
- // ipv6match.setIpv6ExtHeader(nextheader.build());
-
- ipv6match.setIpv6NdSll(new MacAddress("c2:00:54:f5:00:00"));
- ipv6match.setIpv6NdTll(new MacAddress("00:0c:29:0e:4c:67"));
- // ipv6match.setIpv6NdTarget(ndtarget);
- ipv6match.setIpv6Label(ipv6label.build());
-
- match.setLayer3Match(ipv6match.build());
-
- return match;
+ return new MatchBuilder()
+ .setEthernetMatch(new EthernetMatchBuilder()
+ .setEthernetType(new EthernetTypeBuilder().setType(new EtherType(Uint32.valueOf(0x86dd))).build())
+ .build())
+ // icmpv6
+ .setIcmpv6Match(new Icmpv6MatchBuilder()
+ .setIcmpv6Type(Uint8.valueOf(135))
+ .setIcmpv6Code(Uint8.ZERO)
+ .build())
+ .setLayer3Match(new Ipv6MatchBuilder()
+ // .setIpv6Source(srcip6)
+ // .setIpv6Destination(dstip6)
+ // .setIpv6ExtHeader(nextheader.build())
+ .setIpv6NdSll(new MacAddress("c2:00:54:f5:00:00"))
+ .setIpv6NdTll(new MacAddress("00:0c:29:0e:4c:67"))
+ // .setIpv6NdTarget(ndtarget)
+ .setIpv6Label(new Ipv6LabelBuilder()
+ .setIpv6Flabel(new Ipv6FlowLabel(Uint32.valueOf(10028)))
+ // .setFlabelMask(new byte[] { 0, 1, -1, -1 })
+ .build())
+ .build());
}
private static MatchBuilder createICMPv6Match() {
-
- MatchBuilder match = new MatchBuilder();
- EthernetMatchBuilder eth = new EthernetMatchBuilder();
- EthernetTypeBuilder ethTypeBuilder = new EthernetTypeBuilder();
- ethTypeBuilder.setType(new EtherType(0x86ddL));
- eth.setEthernetType(ethTypeBuilder.build());
- match.setEthernetMatch(eth.build());
-
- IpMatchBuilder ipmatch = new IpMatchBuilder(); // ipv4 version
- ipmatch.setIpProtocol((short) 58);
- match.setIpMatch(ipmatch.build());
-
- Icmpv6MatchBuilder icmpv6match = new Icmpv6MatchBuilder(); // icmpv6
- // match
- icmpv6match.setIcmpv6Type((short) 135);
- icmpv6match.setIcmpv6Code((short) 1);
- match.setIcmpv6Match(icmpv6match.build());
-
- return match;
+ return new MatchBuilder()
+ .setEthernetMatch(new EthernetMatchBuilder()
+ .setEthernetType(new EthernetTypeBuilder().setType(new EtherType(Uint32.valueOf(0x86dd))).build())
+ .build())
+ // ipv4 version
+ .setIpMatch(new IpMatchBuilder().setIpProtocol(Uint8.valueOf(58)).build())
+ // icmpv6
+ .setIcmpv6Match(new Icmpv6MatchBuilder()
+ .setIcmpv6Type(Uint8.valueOf(135))
+ .setIcmpv6Code(Uint8.ONE)
+ .build());
}
private static MatchBuilder createMetadataMatch() {
- MatchBuilder match = new MatchBuilder();
- MetadataBuilder metadata = new MetadataBuilder(); // metadata match
- metadata.setMetadata(BigInteger.valueOf(500L));
- // metadata.setMetadataMask(metamask);
- match.setMetadata(metadata.build());
-
- return match;
+ return new MatchBuilder()
+ .setMetadata(new MetadataBuilder()
+ .setMetadata(Uint64.valueOf(500))
+ // .setMetadataMask(metamask)
+ .build());
}
}