package org.opendaylight.openflowplugin.openflow.samples.consumer;
import java.util.concurrent.ExecutionException;
-import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.AddFlowInput;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.AddFlowOutput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.SalFlowService;
-import org.opendaylight.yangtools.yang.common.RpcResult;
public class SimpleDropFirewall {
private final SalFlowService flowService;
- public SimpleDropFirewall(SalFlowService flowService) {
+ public SimpleDropFirewall(final SalFlowService flowService) {
this.flowService = flowService;
}
- public boolean addFlow(AddFlowInput flow) throws InterruptedException,
- ExecutionException, TimeoutException {
- Future<RpcResult<AddFlowOutput>> result = flowService.addFlow(flow);
-
- return result.get(5, TimeUnit.SECONDS).isSuccessful();
+ public boolean addFlow(final AddFlowInput flow) throws InterruptedException, ExecutionException, TimeoutException {
+ return flowService.addFlow(flow).get(5, TimeUnit.SECONDS).isSuccessful();
}
}
*/
package org.opendaylight.openflowplugin.openflow.samples.consumer;
-import java.util.Collections;
import java.util.List;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.DropActionCase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.DropActionCaseBuilder;
-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.flow.service.rev130819.AddFlowInput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.AddFlowInputBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.MatchBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.ApplyActionsCaseBuilder;
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.list.Instruction;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.list.InstructionBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeRef;
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._4.match.TcpMatchBuilder;
+import org.opendaylight.yangtools.yang.binding.util.BindingMap;
public class SimpleDropFirewallCli {
/**
* Form of input is: node name node-connector number source ip-address destinatinon ip-address.
*
- * @param cliInput
- * Parsed input from CLI
+ * @param cliInput Parsed input from CLI
*/
public AddFlowInput createTcpFlow(final List<String> cliInput) {
- AddFlowInputBuilder ret = new AddFlowInputBuilder();
- ret.setNode(nodeFromString(cliInput.get(0)));
-
- // We construct a match
- MatchBuilder match = new MatchBuilder();
-
- Ipv4MatchBuilder ipv4Match = new Ipv4MatchBuilder();
-
- ipv4Match.setIpv4Source(new Ipv4Prefix(cliInput.get(3)));
- ipv4Match.setIpv4Destination(new Ipv4Prefix(cliInput.get(4)));
-
- match.setLayer3Match(ipv4Match.build());
-
- match.setLayer4Match(new TcpMatchBuilder().build());
-
- ret.setMatch(match.build());
-
- DropActionCase dropAction = new DropActionCaseBuilder().build();
-
- ActionBuilder action = new ActionBuilder();
- action.setAction(dropAction);
-
- List<Action> actions = Collections.singletonList(action.build());
- //
- ApplyActionsCaseBuilder aaBldr = new ApplyActionsCaseBuilder();
- aaBldr.setApplyActions(new ApplyActionsBuilder().setAction(actions).build());
-
- InstructionBuilder instructionBldr = new InstructionBuilder();
- instructionBldr.setInstruction(aaBldr.build());
-
- List<Instruction> isntructions = Collections.singletonList(instructionBldr.build());
- InstructionsBuilder instructionsBldr = new InstructionsBuilder();
- instructionsBldr.setInstruction(isntructions);
-
- ret.setInstructions(instructionsBldr.build());
-
- return ret.build();
+ return new AddFlowInputBuilder()
+ .setNode(nodeFromString(cliInput.get(0)))
+ // We construct a match
+ .setMatch(new MatchBuilder()
+ .setLayer3Match(new Ipv4MatchBuilder()
+ .setIpv4Source(new Ipv4Prefix(cliInput.get(3)))
+ .setIpv4Destination(new Ipv4Prefix(cliInput.get(4)))
+ .build())
+ .setLayer4Match(new TcpMatchBuilder().build())
+ .build())
+ .setInstructions(new InstructionsBuilder()
+ .setInstruction(BindingMap.of(new InstructionBuilder()
+ .setInstruction(new ApplyActionsCaseBuilder()
+ .setApplyActions(new ApplyActionsBuilder()
+ .setAction(BindingMap.of(new ActionBuilder()
+ .setOrder(0)
+ .setAction(new DropActionCaseBuilder().build())
+ .build()))
+ .build())
+ .build())
+ .build()))
+ .build())
+ .build();
}
- private NodeRef nodeFromString(final String string) {
+ private static NodeRef nodeFromString(final String string) {
// TODO Auto-generated method stub
return null;
}
-
}