// createDlSrcInstructions(InstructionBuilder ib, MacAddress macAddress) { // public static InstructionsBuilder create_DlSrc_NwSrc_Instructions(MacAddress macAddress, // Ipv4Prefix prefixSrc) { public static InstructionsBuilder create_DlSrc_NwSrc_outputPort_Instructions( MacAddress macAddress, Ipv4Prefix prefixSrc, String outputPort) { // ActionList List<Action> actionList = Lists.newArrayList(); // Action 1 ActionBuilder ab = new ActionBuilder(); SetDlSrcActionBuilder dlSrcActionBuilder = new SetDlSrcActionBuilder(); dlSrcActionBuilder.setAddress(macAddress); ab.setAction( new SetDlSrcActionCaseBuilder().setSetDlSrcAction(dlSrcActionBuilder.build()).build()); ab.setOrder(0); ab.setKey(new ActionKey(0)); // Action 2 ActionBuilder ab2 = new ActionBuilder(); SetNwSrcActionBuilder setNwsrcActionBuilder = new SetNwSrcActionBuilder(); Ipv4Builder ipsrc = new Ipv4Builder(); ipsrc.setIpv4Address(prefixSrc); setNwsrcActionBuilder.setAddress(ipsrc.build()); ab2.setAction( new SetNwSrcActionCaseBuilder().setSetNwSrcAction(setNwsrcActionBuilder.build()).build()); ab2.setOrder(1); ab2.setKey(new ActionKey(1)); // - have to make nodeconnectionid store table // Action 3 ActionBuilder ab3 = new ActionBuilder(); OutputActionBuilder outputActionBuilder = new OutputActionBuilder(); if (outputPort.equals("4294967291")) { outputActionBuilder.setOutputNodeConnector(new Uri("FLOOD")); } else { outputActionBuilder.setOutputNodeConnector(new Uri("output:" + outputPort)); } ab3.setAction( new OutputActionCaseBuilder().setOutputAction(outputActionBuilder.build()).build()); ab3.setOrder(2); ab3.setKey(new ActionKey(2)); actionList.add(ab.build()); actionList.add(ab2.build()); actionList.add(ab3.build()); // Action End // 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.setKey(new InstructionKey(0)); // Put our Instruction in a list of Instructions InstructionsBuilder isb = new InstructionsBuilder(); List<Instruction> instructions = new ArrayList<Instruction>(); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; }
public static InstructionsBuilder create_DlSrc_NwSrc_Controller_Instructions( MacAddress macAddress, Ipv4Prefix prefixSrc) { // ActionList List<Action> actionList = Lists.newArrayList(); // Action 1 ActionBuilder ab = new ActionBuilder(); SetDlSrcActionBuilder dlSrcActionBuilder = new SetDlSrcActionBuilder(); dlSrcActionBuilder.setAddress(macAddress); ab.setAction( new SetDlSrcActionCaseBuilder().setSetDlSrcAction(dlSrcActionBuilder.build()).build()); ab.setOrder(0); ab.setKey(new ActionKey(0)); // Action 2 ActionBuilder ab2 = new ActionBuilder(); SetNwSrcActionBuilder setNwsrcActionBuilder = new SetNwSrcActionBuilder(); Ipv4Builder ipsrc = new Ipv4Builder(); ipsrc.setIpv4Address(prefixSrc); setNwsrcActionBuilder.setAddress(ipsrc.build()); ab2.setAction( new SetNwSrcActionCaseBuilder().setSetNwSrcAction(setNwsrcActionBuilder.build()).build()); ab2.setOrder(1); ab2.setKey(new ActionKey(1)); // Action 3 ActionBuilder ab3 = new ActionBuilder(); OutputActionBuilder oab = new OutputActionBuilder(); oab.setMaxLength(65535); Uri value = new Uri("CONTROLLER"); oab.setOutputNodeConnector(value); ab3.setAction(new OutputActionCaseBuilder().setOutputAction(oab.build()).build()); ab3.setOrder(2); ab3.setKey(new ActionKey(2)); actionList.add(ab.build()); actionList.add(ab2.build()); actionList.add(ab3.build()); // Action End // 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.setKey(new InstructionKey(0)); // Put our Instruction in a list of Instructions InstructionsBuilder isb = new InstructionsBuilder(); List<Instruction> instructions = new ArrayList<Instruction>(); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; }
// public static InstructionsBuilder create_DlDst_NwDst_Instructions(MacAddress macAddress, // Ipv4Prefix prefixDst) { public static InstructionsBuilder create_DlDst_NwDst_outputPort_Instructions( MacAddress macAddress, Ipv4Prefix prefixDst, String outputPort) { // public static InstructionsBuilder // create_DlDst_NwDst_outputPort_controller_Instructions(MacAddress macAddress, Ipv4Prefix // prefixDst, String outputPort) { // ActionList List<Action> actionList = Lists.newArrayList(); // Action 1 ActionBuilder ab = new ActionBuilder(); SetDlDstActionBuilder dlDstActionBuilder = new SetDlDstActionBuilder(); dlDstActionBuilder.setAddress(macAddress); ab.setAction( new SetDlDstActionCaseBuilder().setSetDlDstAction(dlDstActionBuilder.build()).build()); ab.setOrder(0); ab.setKey(new ActionKey(0)); // Action 2 ActionBuilder ab2 = new ActionBuilder(); SetNwDstActionBuilder setNwDstActionBuilder = new SetNwDstActionBuilder(); Ipv4Builder ipDst = new Ipv4Builder(); ipDst.setIpv4Address(prefixDst); setNwDstActionBuilder.setAddress(ipDst.build()); ab2.setAction( new SetNwDstActionCaseBuilder().setSetNwDstAction(setNwDstActionBuilder.build()).build()); ab2.setOrder(1); ab2.setKey(new ActionKey(1)); // - have to make nodeconnectionid store table // Action 3 ActionBuilder ab3 = new ActionBuilder(); OutputActionBuilder outputActionBuilder = new OutputActionBuilder(); // outputActionBuilder.setOutputNodeConnector(new Uri("output:1")); outputActionBuilder.setOutputNodeConnector(new Uri("output:" + outputPort)); ab3.setAction( new OutputActionCaseBuilder().setOutputAction(outputActionBuilder.build()).build()); ab3.setOrder(2); ab3.setKey(new ActionKey(2)); // // Action 4 // ActionBuilder ab4 = new ActionBuilder(); // OutputActionBuilder outputActionBuilder2 = new OutputActionBuilder(); // outputActionBuilder2.setMaxLength(65535); // outputActionBuilder2.setOutputNodeConnector(new Uri("CONTROLLER")); // ab4.setAction(new // OutputActionCaseBuilder().setOutputAction(outputActionBuilder2.build()).build()); // ab4.setOrder(3); // ab4.setKey(new ActionKey(3)); actionList.add(ab.build()); actionList.add(ab2.build()); actionList.add(ab3.build()); // actionList.add(ab4.build()); // Action End // 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.setKey(new InstructionKey(0)); // Put our Instruction in a list of Instructions InstructionsBuilder isb = new InstructionsBuilder(); List<Instruction> instructions = new ArrayList<Instruction>(); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; }