package org.opendaylight.openflowplugin.learningswitch;
+import com.google.common.collect.ImmutableList;
import java.util.ArrayList;
import java.util.List;
-
import org.opendaylight.openflowplugin.api.OFConstants;
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.flow.types.rev131026.instruction.list.InstructionKey;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorRef;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnector;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnectorKey;
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.match.EthernetMatch;
import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.EthernetMatchBuilder;
-import com.google.common.collect.ImmutableList;
-
-public class FlowUtils {
+public final class FlowUtils {
private FlowUtils() {
//prohibite to instantiate util class
}
/**
- * @param tableId
- * @param priority
- * @param srcMac
- * @param dstMac
- * @param dstPort
- * @return {@link FlowBuilder} forwarding all packets to controller port
+ * Returns a {@link FlowBuilder} forwarding all packets to controller port.
*/
public static FlowBuilder createDirectMacToMacFlow(final Short tableId, final int priority, final MacAddress srcMac,
final MacAddress dstMac, final NodeConnectorRef dstPort) {
MatchBuilder match = new MatchBuilder();
match.setEthernetMatch(ethernetMatch);
- Uri outputPort = dstPort.getValue().firstKeyOf(NodeConnector.class, NodeConnectorKey.class).getId();
+ Uri outputPort = dstPort.getValue().firstKeyOf(NodeConnector.class).getId();
Action outputToControllerAction = new ActionBuilder()
.setOrder(0)
}
/**
- * @param tableId
- * @param priority
- * @param flowId
- * @return {@link FlowBuilder} forwarding all packets to controller port
+ * Returns a{@link FlowBuilder} forwarding all packets to controller port.
*/
- public static FlowBuilder createFwdAllToControllerFlow(final Short tableId, final int priority, final FlowId flowId) {
- FlowBuilder allToCtrlFlow = new FlowBuilder().setTableId(tableId).setFlowName("allPacketsToCtrl").setId(flowId)
- .setKey(new FlowKey(flowId));
-
- MatchBuilder matchBuilder = new MatchBuilder();
-
+ public static FlowBuilder createFwdAllToControllerFlow(final Short tableId, final int priority,
+ final FlowId flowId) {
// Create output action -> send to controller
OutputActionBuilder output = new OutputActionBuilder();
output.setMaxLength(Integer.valueOf(0xffff));
ActionBuilder ab = new ActionBuilder();
ab.setAction(new OutputActionCaseBuilder().setOutputAction(output.build()).build());
ab.setOrder(0);
- ab.setKey(new ActionKey(0));
+ ab.withKey(new ActionKey(0));
- List<Action> actionList = new ArrayList<Action>();
+ List<Action> actionList = new ArrayList<>();
actionList.add(ab.build());
// Create an Apply Action
InstructionBuilder ib = new InstructionBuilder();
ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build());
ib.setOrder(0);
- ib.setKey(new InstructionKey(0));
+ ib.withKey(new InstructionKey(0));
// Put our Instruction in a list of Instructions
InstructionsBuilder isb = new InstructionsBuilder();
- List<Instruction> instructions = new ArrayList<Instruction>();
+ List<Instruction> instructions = new ArrayList<>();
instructions.add(ib.build());
isb.setInstruction(instructions);
+ MatchBuilder matchBuilder = new MatchBuilder();
+ FlowBuilder allToCtrlFlow = new FlowBuilder().setTableId(tableId).setFlowName("allPacketsToCtrl").setId(flowId)
+ .withKey(new FlowKey(flowId));
allToCtrlFlow
.setMatch(matchBuilder.build())
.setInstructions(isb.build())